diff options
13 files changed, 260 insertions, 64 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java b/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java index d124251..2ac5319 100644 --- a/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java +++ b/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java @@ -11,35 +11,91 @@ public class AffixMods { private static Map<String, ModifierEffect> prefixes; private static Map<String, ModifierEffect> suffixes; - private static List<WeightedRandomAffix> prefixGen; - private static List<WeightedRandomAffix> suffixGen; + private static List<WeightedRandomAffix> generalPrefixGen; + private static List<WeightedRandomAffix> generalSuffixGen; + + private static List<WeightedRandomAffix> ringPrefixGen; + private static List<WeightedRandomAffix> ringSuffixGen; + + private static List<WeightedRandomAffix> braceletPrefixGen; + private static List<WeightedRandomAffix> braceletSuffixGen; + + private static List<WeightedRandomAffix> necklacePrefixGen; + private static List<WeightedRandomAffix> necklaceSuffixGen; + + private static List<WeightedRandomAffix> earringsPrefixGen; + private static List<WeightedRandomAffix> earringsSuffixGen; public static void initializeAffixes(FMLPreInitializationEvent fpie) { prefixes = new HashMap<String, ModifierEffect>(); suffixes = new HashMap<String, ModifierEffect>(); - - prefixGen = new LinkedList<WeightedRandomAffix>(); - suffixGen = new LinkedList<WeightedRandomAffix>(); - + + generalPrefixGen = new LinkedList<WeightedRandomAffix>(); + generalSuffixGen = new LinkedList<WeightedRandomAffix>(); + + ringPrefixGen = new LinkedList<WeightedRandomAffix>(); + ringSuffixGen = new LinkedList<WeightedRandomAffix>(); + + braceletPrefixGen = new LinkedList<WeightedRandomAffix>(); + braceletSuffixGen = new LinkedList<WeightedRandomAffix>(); + + necklacePrefixGen = new LinkedList<WeightedRandomAffix>(); + necklaceSuffixGen = new LinkedList<WeightedRandomAffix>(); + + earringsPrefixGen = new LinkedList<WeightedRandomAffix>(); + earringsSuffixGen = new LinkedList<WeightedRandomAffix>(); + ModifierEffect health1 = new HealthAffix(1); ModifierEffect health2 = new HealthAffix(2); ModifierEffect health3 = new HealthAffix(3); - + ModifierEffect health4 = new HealthAffix(4); + ModifierEffect health5 = new HealthAffix(5); + ModifierEffect health6 = new HealthAffix(6); + prefixes.put("health1", health1); prefixes.put("health2", health2); prefixes.put("health3", health3); - - prefixGen.add(new WeightedRandomAffix("health1", 10)); - prefixGen.add(new WeightedRandomAffix("health2", 7)); - prefixGen.add(new WeightedRandomAffix("health3", 5)); - + prefixes.put("health4", health4); + prefixes.put("health5", health5); + prefixes.put("health6", health6); + suffixes.put("health1", health1); suffixes.put("health2", health2); suffixes.put("health3", health3); - - suffixGen.add(new WeightedRandomAffix("health1", 10)); - suffixGen.add(new WeightedRandomAffix("health2", 7)); - suffixGen.add(new WeightedRandomAffix("health3", 5)); + suffixes.put("health4", health4); + suffixes.put("health5", health5); + suffixes.put("health6", health6); + + WeightedRandomAffix wraHealth1 = new WeightedRandomAffix("health1", 10); + WeightedRandomAffix wraHealth2 = new WeightedRandomAffix("health2", 8); + WeightedRandomAffix wraHealth3 = new WeightedRandomAffix("health3", 6); + WeightedRandomAffix wraHealth4 = new WeightedRandomAffix("health4", 4); + WeightedRandomAffix wraHealth5 = new WeightedRandomAffix("health5", 2); + WeightedRandomAffix wraHealth6 = new WeightedRandomAffix("health6", 1); + + generalPrefixGen.add(wraHealth1); + generalPrefixGen.add(wraHealth2); + generalPrefixGen.add(wraHealth3); + ringPrefixGen.add(wraHealth1); + ringPrefixGen.add(wraHealth2); + braceletPrefixGen.add(wraHealth2); + braceletPrefixGen.add(wraHealth3); + necklacePrefixGen.add(wraHealth4); + necklacePrefixGen.add(wraHealth5); + earringsPrefixGen.add(wraHealth5); + earringsPrefixGen.add(wraHealth6); + + generalSuffixGen.add(wraHealth1); + generalSuffixGen.add(wraHealth2); + generalSuffixGen.add(wraHealth3); + ringSuffixGen.add(wraHealth1); + ringSuffixGen.add(wraHealth2); + braceletSuffixGen.add(wraHealth2); + braceletSuffixGen.add(wraHealth3); + necklaceSuffixGen.add(wraHealth4); + necklaceSuffixGen.add(wraHealth5); + earringsSuffixGen.add(wraHealth5); + earringsSuffixGen.add(wraHealth6); } public static ModifierEffect getPrefix(String prefix) { @@ -50,14 +106,58 @@ public class AffixMods { return suffixes.get(suffix); } - public static String pickPrefix(Random random) { - WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, prefixGen)); + public static String pickPrefix(Random random, int jewelType) { + List<WeightedRandomAffix> pickList = generalPrefixGen; + + if (random.nextInt(3) != 0) { + switch (jewelType) { + case 0: + pickList = ringPrefixGen; + break; + case 1: + pickList = braceletPrefixGen; + break; + case 2: + pickList = necklacePrefixGen; + break; + case 3: + pickList = earringsPrefixGen; + break; + case -1: + default: + pickList = generalPrefixGen; + } + } + + WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, pickList)); return wra.getAffix(random); } - public static String pickSuffix(Random random) { - WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, suffixGen)); + public static String pickSuffix(Random random, int jewelType) { + List<WeightedRandomAffix> pickList = generalSuffixGen; + + if (random.nextInt(3) != 0) { + switch (jewelType) { + case 0: + pickList = ringSuffixGen; + break; + case 1: + pickList = braceletSuffixGen; + break; + case 2: + pickList = necklaceSuffixGen; + break; + case 3: + pickList = earringsSuffixGen; + break; + case -1: + default: + pickList = generalSuffixGen; + } + } + + WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, pickList)); return wra.getAffix(random); } diff --git a/src/main/java/darkknight/jewelrycraft/affixes/DamageAffix.java b/src/main/java/darkknight/jewelrycraft/affixes/DamageAffix.java index 2cbfce3..ec7b044 100644 --- a/src/main/java/darkknight/jewelrycraft/affixes/DamageAffix.java +++ b/src/main/java/darkknight/jewelrycraft/affixes/DamageAffix.java @@ -20,7 +20,7 @@ public class DamageAffix extends ModifierEffect { this.mult = mult; } - + @Override public void onEntityHurt(ItemStack item, EntityPlayer player, LivingHurtEvent event, ItemBaseJewelry jewelry) { event.ammount += befFlat; diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseInsomnia.java b/src/main/java/darkknight/jewelrycraft/curses/CurseInsomnia.java new file mode 100644 index 0000000..47c46ba --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseInsomnia.java @@ -0,0 +1,36 @@ +package darkknight.jewelrycraft.curses; + +import darkknight.jewelrycraft.api.Curse; +import darkknight.jewelrycraft.util.Variables; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; + +public class CurseInsomnia extends Curse { + public CurseInsomnia(String name, int txtID, String texturepack) { + super(name, txtID, texturepack); + } + + @Override + public String getDescription() { + return StatCollector.translateToLocal("curse." + Variables.MODID + ".insomnia.description"); + } + + @Override + public String getDisplayName() { + return StatCollector.translateToLocal("curse." + Variables.MODID + ".insomnia"); + } + + @Override + public void playerSleepAction(World worldObj, EntityPlayer player, PlayerSleepInBedEvent event) { + event.result = EntityPlayer.EnumStatus.OTHER_PROBLEM; + + if (!worldObj.isRemote) { + player.addChatMessage( + new ChatComponentText(EnumChatFormatting.DARK_RED + "You toss and turn, but can't get to sleep")); + } + } +} diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseList.java b/src/main/java/darkknight/jewelrycraft/curses/CurseList.java index f123863..e76407d 100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseList.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseList.java @@ -11,7 +11,6 @@ public class CurseList { public static Curse flaming;
public static Curse blind;
public static Curse greed;
- public static Curse incredibleDevotion;
public static Curse infamy;
public static Curse midasTouch;
@@ -22,13 +21,14 @@ public class CurseList { public static Curse deathsTouch;
public static Curse scionOfHell;
public static Curse moneyEqualsPower;
+
public static Curse doubleDown;
-
+ public static Curse incredibleDevotion;
+ public static Curse insomnia;
+
// Not yet implemented
public static Curse sacredOath;
- // None at the moment :)
-
public static void preInit(FMLPreInitializationEvent e) {
rotten = new CurseRottenHeart(Variables.MODNAME + ":" + "Rotten Heart", 0, CURSE_TEXPACK);
@@ -62,5 +62,8 @@ public class CurseList { CURSE_TEXPACK);
//sacredOath = new CurseSacredOath(Variables.MODNAME + ":" + "Sacred Oath", 21, CURSE_TEXPACK);
+
+ insomnia = new CurseInsomnia(Variables.MODNAME + ":" + "Insomnia", 22,
+ CURSE_TEXPACK);
}
}
diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemBaseJewelry.java b/src/main/java/darkknight/jewelrycraft/item/ItemBaseJewelry.java index c658f8d..6ee4add 100755 --- a/src/main/java/darkknight/jewelrycraft/item/ItemBaseJewelry.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemBaseJewelry.java @@ -34,7 +34,13 @@ public abstract class ItemBaseJewelry extends Item { setCreativeTab(JewelrycraftMod.jewelrycraft);
}
-
+
+ /**
+ * @return Returns the id of the type, 0 is for ring, 1 is for bracelet, 2 is
+ * for necklace and 3 is for earrings
+ */
+ public abstract int type();
+
@Override
public boolean requiresMultipleRenderPasses() {
return true;
diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemBracelet.java b/src/main/java/darkknight/jewelrycraft/item/ItemBracelet.java index fe01d89..a10548c 100755 --- a/src/main/java/darkknight/jewelrycraft/item/ItemBracelet.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemBracelet.java @@ -15,6 +15,11 @@ public class ItemBracelet extends ItemBaseJewelry { public ItemBracelet() {
}
+ @Override
+ public int type() {
+ return 1;
+ }
+
/**
* @param iconRegister
*/
diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemEarrings.java b/src/main/java/darkknight/jewelrycraft/item/ItemEarrings.java index e8f4052..fffc21a 100755 --- a/src/main/java/darkknight/jewelrycraft/item/ItemEarrings.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemEarrings.java @@ -15,6 +15,10 @@ public class ItemEarrings extends ItemBaseJewelry { public ItemEarrings() {
}
+ @Override
+ public int type() {
+ return 3;
+ }
/**
* @param iconRegister
*/
diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemNecklace.java b/src/main/java/darkknight/jewelrycraft/item/ItemNecklace.java index 8f67ab6..6287289 100755 --- a/src/main/java/darkknight/jewelrycraft/item/ItemNecklace.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemNecklace.java @@ -15,6 +15,11 @@ public class ItemNecklace extends ItemBaseJewelry { public ItemNecklace() {
}
+ @Override
+ public int type() {
+ return 2;
+ }
+
/**
* @param iconRegister
*/
diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemRing.java b/src/main/java/darkknight/jewelrycraft/item/ItemRing.java index 87ca8d8..6c209ce 100755 --- a/src/main/java/darkknight/jewelrycraft/item/ItemRing.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemRing.java @@ -15,6 +15,11 @@ public class ItemRing extends ItemBaseJewelry { public ItemRing() {
}
+ @Override
+ public int type() {
+ return 0;
+ }
+
/**
* @param iconRegister
*/
diff --git a/src/main/java/darkknight/jewelrycraft/tileentity/TileEntityShadowEye.java b/src/main/java/darkknight/jewelrycraft/tileentity/TileEntityShadowEye.java index 4cfbbc8..9b4930f 100755 --- a/src/main/java/darkknight/jewelrycraft/tileentity/TileEntityShadowEye.java +++ b/src/main/java/darkknight/jewelrycraft/tileentity/TileEntityShadowEye.java @@ -5,9 +5,11 @@ import java.util.ArrayList; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import darkknight.jewelrycraft.affixes.AffixMods;
+import darkknight.jewelrycraft.api.IJewelryItem;
import darkknight.jewelrycraft.block.BlockHandPedestal;
import darkknight.jewelrycraft.block.BlockList;
import darkknight.jewelrycraft.config.ConfigHandler;
+import darkknight.jewelrycraft.item.ItemBaseJewelry;
import darkknight.jewelrycraft.model.ModelShadowEye;
import darkknight.jewelrycraft.util.JewelryNBT;
import darkknight.jewelrycraft.util.JewelrycraftUtil;
@@ -15,6 +17,7 @@ import darkknight.jewelrycraft.util.Variables; import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
@@ -64,11 +67,18 @@ public class TileEntityShadowEye extends TileEntity { super.updateEntity();
StringBuilder er = new StringBuilder();
boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata, er);
- boolean centerHasItem = false, hasMods = false, hasAffixes = false;
+ boolean centerHasItem = false, centerIsJewelry = false, hasMods = false, hasAffixes = false;
if (valid) {
TileEntity te = worldObj.getTileEntity(xCoord, yCoord - 3, zCoord);
if (te instanceof TileEntityHandPedestal) {
- centerHasItem = ((TileEntityHandPedestal) te).heldItemStack != null;
+ ItemStack heldItemStack = ((TileEntityHandPedestal) te).heldItemStack;
+
+ centerHasItem = heldItemStack != null;
+ if (centerHasItem) {
+ Item heldItem = heldItemStack.getItem();
+
+ centerIsJewelry = heldItem instanceof IJewelryItem || heldItem instanceof ItemBaseJewelry;
+ }
}
hasMods = getNumberOfItems(worldObj, xCoord, yCoord, zCoord) > 0;
@@ -76,10 +86,10 @@ public class TileEntityShadowEye extends TileEntity { hasAffixes = worldObj.getBlock(xCoord, yCoord + 2, zCoord) == Blocks.enchanting_table;
}
- boolean canStartRitual = valid && centerHasItem && (hasMods || hasAffixes);
+ boolean canStartRitual = valid && (centerHasItem && centerIsJewelry) && (hasMods || hasAffixes);
if (!canStartRitual && valid) {
- if (!centerHasItem) {
- er.append("Center pedestal requires an item");
+ if (!centerHasItem || !centerIsJewelry) {
+ er.append("Center pedestal requires a piece of jewelry");
} else if (!hasMods && !hasAffixes) {
er.append("Need at least one modifier, or an enchanting table for affixes.");
} else {
@@ -110,36 +120,11 @@ public class TileEntityShadowEye extends TileEntity { if (opening == 2 && timer <= 0 && t == 10 && shouldAddData) {
addData(worldObj, xCoord, yCoord, zCoord);
TileEntityHandPedestal pedstl = (TileEntityHandPedestal) worldObj.getTileEntity(xCoord, yCoord - 3, zCoord);
- if (pedstl != null && pedstl.getHeldItemStack() != null) {
- JewelryNBT.addModifiers(pedstl.getHeldItemStack(), pedestalItems);
-
- if (!worldObj.isRemote)
- if (worldObj.getBlock(xCoord, yCoord + 2, zCoord) == Blocks.enchanting_table) {
- if (worldObj.rand.nextBoolean()) {
- JewelryNBT.addPrefix(pedstl.getHeldItemStack(), AffixMods.pickPrefix(worldObj.rand));
- target.addChatMessage(new ChatComponentText(
- EnumChatFormatting.DARK_PURPLE + "The item is infused with a prefix"));
- } else if (target.experienceLevel > 2) {
- target.addExperienceLevel(-2);
- JewelryNBT.addPrefix(pedstl.getHeldItemStack(), AffixMods.pickPrefix(worldObj.rand));
- if (!worldObj.isRemote)
- target.addChatMessage(new ChatComponentText(
- EnumChatFormatting.DARK_PURPLE + "You infuse the item with a prefix"));
- }
-
- if (worldObj.rand.nextBoolean()) {
- JewelryNBT.addSuffix(pedstl.getHeldItemStack(), AffixMods.pickSuffix(worldObj.rand));
- if (!worldObj.isRemote)
- target.addChatMessage(new ChatComponentText(
- EnumChatFormatting.DARK_PURPLE + "The item is infused with a suffix"));
- } else if (target.experienceLevel > 2) {
- target.addExperienceLevel(-2);
- JewelryNBT.addSuffix(pedstl.getHeldItemStack(), AffixMods.pickSuffix(worldObj.rand));
- if (!worldObj.isRemote)
- target.addChatMessage(new ChatComponentText(
- EnumChatFormatting.DARK_PURPLE + "You infuse the item with a suffix"));
- }
- }
+ ItemStack centerItem = pedstl == null ? null : pedstl.getHeldItemStack();
+ if (pedstl != null && centerItem != null) {
+ if (!worldObj.isRemote) {
+ modifyJewelry(centerItem);
+ }
}
revertPedestals(worldObj, xCoord, yCoord, zCoord);
@@ -186,6 +171,51 @@ public class TileEntityShadowEye extends TileEntity { }
}
+ private void modifyJewelry(ItemStack centerItem) {
+ Item itm = centerItem.getItem();
+
+ int jewelType = -1;
+
+ if (itm instanceof IJewelryItem) {
+ IJewelryItem jewelryItem = (IJewelryItem) itm;
+
+ jewelType = jewelryItem.type();
+ } else if (itm instanceof ItemBaseJewelry) {
+ ItemBaseJewelry jewelry = (ItemBaseJewelry) itm;
+
+ jewelType = jewelry.type();
+ }
+
+ JewelryNBT.addModifiers(centerItem, pedestalItems);
+
+ if (worldObj.getBlock(xCoord, yCoord + 2, zCoord) == Blocks.enchanting_table) {
+ if (worldObj.rand.nextBoolean()) {
+ JewelryNBT.addPrefix(centerItem, AffixMods.pickPrefix(worldObj.rand, jewelType));
+ target.addChatMessage(
+ new ChatComponentText(EnumChatFormatting.DARK_PURPLE + "The item is infused with a prefix"));
+ } else if (target.experienceLevel > 2) {
+ target.addExperienceLevel(-2);
+ JewelryNBT.addPrefix(centerItem, AffixMods.pickPrefix(worldObj.rand, jewelType));
+ if (!worldObj.isRemote)
+ target.addChatMessage(new ChatComponentText(
+ EnumChatFormatting.DARK_PURPLE + "You infuse the item with a prefix"));
+ }
+
+ if (worldObj.rand.nextBoolean()) {
+ JewelryNBT.addSuffix(centerItem, AffixMods.pickSuffix(worldObj.rand, jewelType));
+ if (!worldObj.isRemote)
+ target.addChatMessage(new ChatComponentText(
+ EnumChatFormatting.DARK_PURPLE + "The item is infused with a suffix"));
+ } else if (target.experienceLevel > 2) {
+ target.addExperienceLevel(-2);
+ JewelryNBT.addSuffix(centerItem, AffixMods.pickSuffix(worldObj.rand, jewelType));
+ if (!worldObj.isRemote)
+ target.addChatMessage(new ChatComponentText(
+ EnumChatFormatting.DARK_PURPLE + "You infuse the item with a suffix"));
+ }
+ }
+ }
+
public boolean isValidStructure(World world, int x, int y, int z, int metadata, StringBuilder err) {
if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2) {
// Layers from top to bottom
diff --git a/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java b/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java index 7a85cff..ef5d19f 100755 --- a/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java +++ b/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java @@ -381,8 +381,8 @@ public class JewelrycraftUtil { JewelryNBT.addGem(jewelry, gem);
}
- String prefix = AffixMods.pickPrefix(random);
- String suffix = AffixMods.pickSuffix(random);
+ String prefix = AffixMods.pickPrefix(random, effType);
+ String suffix = AffixMods.pickSuffix(random, effType);
if (random.nextBoolean())
JewelryNBT.addPrefix(jewelry, prefix);
diff --git a/src/main/resources/assets/jewelrycraft2/lang/en_US.lang b/src/main/resources/assets/jewelrycraft2/lang/en_US.lang index 91d393c..b87ee5e 100755 --- a/src/main/resources/assets/jewelrycraft2/lang/en_US.lang +++ b/src/main/resources/assets/jewelrycraft2/lang/en_US.lang @@ -133,6 +133,7 @@ curse.jewelrycraft2.scionofhell.description=The infernal lord sends his regards curse.jewelrycraft2.doubledown.description=All or nothing
curse.jewelrycraft2.incredibledevotion.description=How far are you willing to go? curse.jewelrycraft2.sacredoath.description=Swear upon it (NYI)
+curse.jewelrycraft2.sacredoath.description=Wide awake and watching
curse.jewelrycraft2.blind=Blind
curse.jewelrycraft2.flamingsoul=Flaming Soul
@@ -149,7 +150,8 @@ curse.jewelrycraft2.moneyEqualsPower=Money = Power curse.jewelrycraft2.scionofhell=Scion of Hell
curse.jewelrycraft2.doubledown=Double Down
curse.jewelrycraft2.incredibledevotion=Incredible Devotion
-Curse.jewelrycraft2.sacredoath=Sacred Oath +curse.jewelrycraft2.sacredoath=Sacred Oath
+curse.jewelrycraft2.insomnia=Insomnia curse.jewelrycraft2.activated=You got cursed, press C to open the tab to see the active curses.
diff --git a/src/main/resources/assets/jewelrycraft2/textures/gui/jewelrycraft2_curses_0.png b/src/main/resources/assets/jewelrycraft2/textures/gui/jewelrycraft2_curses_0.png Binary files differindex 6e5b606..1709a98 100755 --- a/src/main/resources/assets/jewelrycraft2/textures/gui/jewelrycraft2_curses_0.png +++ b/src/main/resources/assets/jewelrycraft2/textures/gui/jewelrycraft2_curses_0.png |
