From 4c56360184d27e200fcbe181121527db9cb00a4f Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 27 Sep 2018 19:33:41 -0400 Subject: [PATCH] v0.7.0: adjusted isSimilar logic and added some placeholder items --- core/src/main/assets/items.png | Bin 18576 -> 18664 bytes .../actors/hero/Belongings.java | 15 +++++++++++- .../items/bombs/Bomb.java | 2 +- .../items/food/Blandfruit.java | 10 ++++---- .../items/food/MysteryMeat.java | 19 +++++++++++++++ .../shatteredpixeldungeon/items/keys/Key.java | 2 +- .../items/stones/Runestone.java | 23 ++++++++++++++++++ .../shatteredpixeldungeon/plants/Plant.java | 18 ++++++++++++++ .../sprites/ItemSpriteSheet.java | 10 ++++++-- .../messages/items/items.properties | 6 ++++- .../messages/journal/journal.properties | 2 +- .../messages/plants/plants.properties | 1 + 12 files changed, 96 insertions(+), 12 deletions(-) diff --git a/core/src/main/assets/items.png b/core/src/main/assets/items.png index 44cc1786ec4e3d2e3c12f893371c84db881a6fec..44015b8c3bd6102fead840ad18e57c3babae49c7 100644 GIT binary patch literal 18664 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 I>zopr0L~_0g8%>k diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Belongings.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Belongings.java index 7628805f0..c93d73f35 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Belongings.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Belongings.java @@ -40,6 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.utils.Bundle; import com.watabou.utils.Random; +import java.util.ArrayList; import java.util.Iterator; public class Belongings implements Iterable { @@ -152,7 +153,7 @@ public class Belongings implements Iterable { public Item getSimilar( Item similar ){ for (Item item : this) { - if (item.isSimilar(similar)) { + if (similar.isSimilar(item)) { return item; } } @@ -160,6 +161,18 @@ public class Belongings implements Iterable { return null; } + public ArrayList getAllSimilar( Item similar ){ + ArrayList result = new ArrayList<>(); + + for (Item item : this) { + if (similar.isSimilar(item)) { + result.add(item); + } + } + + return result; + } + public void identify() { for (Item item : this) { item.identify(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java index e24400294..51957b4dd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java @@ -79,7 +79,7 @@ public class Bomb extends Item { @Override public boolean isSimilar(Item item) { - return item.getClass() == getClass() && this.fuse == ((Bomb) item).fuse; + return super.isSimilar(item) && this.fuse == ((Bomb) item).fuse; } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Blandfruit.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Blandfruit.java index 96d8ef5e7..e0d16ce78 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Blandfruit.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Blandfruit.java @@ -69,12 +69,12 @@ public class Blandfruit extends Food { @Override public boolean isSimilar( Item item ) { - if (item instanceof Blandfruit){ - if (potionAttrib == null){ - if (((Blandfruit)item).potionAttrib == null) + if ( super.isSimilar(item) ){ + Blandfruit other = (Blandfruit) item; + if (potionAttrib == null && other.potionAttrib == null) { return true; - } else if (((Blandfruit)item).potionAttrib != null){ - if (((Blandfruit)item).potionAttrib.getClass() == potionAttrib.getClass()) + } else if (potionAttrib != null && other.potionAttrib != null + && potionAttrib.isSimilar(other.potionAttrib)){ return true; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/MysteryMeat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/MysteryMeat.java index b4e6b6e2b..25404c103 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/MysteryMeat.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/MysteryMeat.java @@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Slow; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; @@ -71,4 +72,22 @@ public class MysteryMeat extends Food { break; } } + + public static class PlaceHolder extends MysteryMeat { + + { + image = ItemSpriteSheet.MEAT_HOLDER; + } + + @Override + public boolean isSimilar(Item item) { + return item instanceof MysteryMeat || item instanceof StewedMeat + || item instanceof ChargrilledMeat || item instanceof FrozenCarpaccio; + } + + @Override + public String info() { + return ""; + } + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/keys/Key.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/keys/Key.java index 2200cce73..d66a447d2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/keys/Key.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/keys/Key.java @@ -43,7 +43,7 @@ public abstract class Key extends Item { @Override public boolean isSimilar( Item item ) { - return item.getClass() == getClass() && ((Key)item).depth == depth; + return super.isSimilar(item) && ((Key)item).depth == depth; } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/Runestone.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/Runestone.java index 55f4c9a4d..6a47d8354 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/Runestone.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/Runestone.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.stones; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; public abstract class Runestone extends Item { @@ -56,4 +57,26 @@ public abstract class Runestone extends Item { public int price() { return 10 * quantity; } + + public static class PlaceHolder extends Runestone { + + { + image = ItemSpriteSheet.STONE_HOLDER; + } + + @Override + protected void activate(int cell) { + //does nothing + } + + @Override + public boolean isSimilar(Item item) { + return item instanceof Runestone; + } + + @Override + public String info() { + return ""; + } + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Plant.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Plant.java index 2c0e6bdb0..b3184f984 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Plant.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Plant.java @@ -40,6 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.SandalsOfNature; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundlable; import com.watabou.utils.Bundle; @@ -205,5 +206,22 @@ public abstract class Plant implements Bundlable { public String info() { return Messages.get( Seed.class, "info", desc() ); } + + public static class PlaceHolder extends Seed { + + { + image = ItemSpriteSheet.SEED_HOLDER; + } + + @Override + public boolean isSimilar(Item item) { + return item instanceof Plant.Seed; + } + + @Override + public String info() { + return ""; + } + } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index 548334d84..6936d3b9c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -45,7 +45,10 @@ public class ItemSpriteSheet { public static final int ARTIFACT_HOLDER = PLACEHOLDERS+5; public static final int POTION_HOLDER = PLACEHOLDERS+6; public static final int SCROLL_HOLDER = PLACEHOLDERS+7; - public static final int SOMETHING = PLACEHOLDERS+8; + public static final int SEED_HOLDER = PLACEHOLDERS+8; + public static final int STONE_HOLDER = PLACEHOLDERS+9; + public static final int MEAT_HOLDER = PLACEHOLDERS+10; + public static final int SOMETHING = PLACEHOLDERS+11; static{ assignItemRect(NULLWARN, 16, 7); assignItemRect(WEAPON_HOLDER, 14, 14); @@ -53,8 +56,11 @@ public class ItemSpriteSheet { assignItemRect(WAND_HOLDER, 14, 14); assignItemRect(RING_HOLDER, 8, 10); assignItemRect(ARTIFACT_HOLDER, 15, 15); - assignItemRect(POTION_HOLDER, 10, 14); + assignItemRect(POTION_HOLDER, 12, 14); assignItemRect(SCROLL_HOLDER, 15, 14); + assignItemRect(SEED_HOLDER, 10, 10); + assignItemRect(STONE_HOLDER, 14, 12); + assignItemRect(MEAT_HOLDER, 15, 11); assignItemRect(SOMETHING, 8, 13); } diff --git a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties index cdc9b675b..a2e2a9e8a 100644 --- a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties +++ b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties @@ -447,6 +447,7 @@ items.food.mysterymeat.legs=You can't feel your legs! items.food.mysterymeat.not_well=You are not feeling well. items.food.mysterymeat.stuffed=You are stuffed. items.food.mysterymeat.desc=Eat at your own risk! +items.food.mysterymeat$placeholder.name=meat items.food.pasty.pasty=pasty items.food.pasty.pie=pumpkin pie @@ -934,6 +935,7 @@ items.spells.featherfall.light=You feel light as a feather! items.spells.featherfall.desc=This spell manipulates gravity's effect on the caster, allowing them to fall great distances without harm for a short time. Each use of the spell will only provide enough protection for one chasm. items.spells.spell.ac_cast=CAST +items.spells.spell.no_magic=You can't cast spells while magic immune. items.spells.magicalinfusion.name=magical infusion items.spells.magicalinfusion.inv_title=Infuse an item @@ -943,7 +945,7 @@ items.spells.magicalinfusion.desc=This spell will infuse a weapon or armor with items.spells.magicalporter.name=magical porter items.spells.magicalporter.inv_title=Port an item items.spells.magicalporter.nowhere=There is nowhere for you to port an item to. -items.spells.magicalporter.desc=This spell will magical transport any item it is cast on. Unlike a merchant's beacon however, the items will be transported to the entrance of the next boss floor. +items.spells.magicalporter.desc=This spell will magically transport any item it is cast on. Unlike a merchant's beacon however, the items will be transported to the entrance of the next boss floor. items.spells.phaseshift.name=phase shift items.spells.phaseshift.tele_fail=The teleportation magic fails. @@ -965,6 +967,8 @@ items.spells.targetedspell.inv_title=Infuse an item ###runestones items.stones.inventorystone.ac_use=USE +items.stones.runestone$placeholder.name=runestone + items.stones.stoneofaggression.name=stone of aggression items.stones.stoneofaggression.desc=When this stone is thrown near an enemy, it will afflict them with aggression magic.\n\nAn enemy under the influence of aggression will be forced to attack you instead of any allies, if any allies are nearby. items.stones.stoneofaggression$aggression.name=Aggression diff --git a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties index 6fe3aa913..d05b190e3 100644 --- a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties +++ b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties @@ -48,7 +48,7 @@ journal.document.alchemy_guide.tele_spells.body=Combining certain ingredients in journal.document.alchemy_guide.item_spells.title=Item Manipulation Spells journal.document.alchemy_guide.item_spells.body=Item manipulation spells affect the items in your inventory in a variety of different ways.\n\n\nMagical infusion is created by mixing a scroll of upgrade with a stone of enchantment.\n\nCurse infusion is created by mixing a scroll of remove curse with a cursed metal shard.\n\nAlchemize is created by mixing a scroll of recharging with a potion of liquid flame.\n\nRecycle is created by mixing a scroll of transmutation with a scroll of mirror image. journal.document.alchemy_guide.enviro_spells.title=Environmental Spells -journal.document.alchemy_guide.enviro_spells.body=Environmental spells give you new ways to change or interact with the terrain of the dungeon.\n\n\nReclaim trap is created by mixing a scroll of recharging with a cursed metal shard.\n\nAqua blast is created by mixing a scroll of identify with a potion of storm clouds.\n\nFeatherfall is created by mixing a scroll of lullaby, a potion of levitation, and a good amount of alchemical energy. +journal.document.alchemy_guide.enviro_spells.body=Environmental spells give you new ways to change or interact with the terrain of the dungeon.\n\n\nReclaim trap is created by mixing a scroll of recharging with a cursed metal shard.\n\nAqua blast is created by mixing a scroll of identify with a potion of storm clouds.\n\nFeather fall is created by mixing a scroll of lullaby, a potion of levitation, and a good amount of alchemical energy. journal.notes$landmark.well_of_health=well of health journal.notes$landmark.well_of_awareness=well of awareness diff --git a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/plants/plants.properties b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/plants/plants.properties index 91a2c5d8c..2933062ee 100644 --- a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/plants/plants.properties +++ b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/plants/plants.properties @@ -32,6 +32,7 @@ plants.icecap$seed.name=seed of icecap plants.plant$seed.seed_of=seed of %s plants.plant$seed.ac_plant=PLANT plants.plant$seed.info=Throw this seed to the place where you want to grow a plant.\n\n%s +plants.plant$seed$placeholder.name=seed plants.rotberry.name=Rotberry plants.rotberry.desc=The berries of a young rotberry shrub taste like sweet, sweet death.\n\nGiven several days, this rotberry shrub will grow into another rot heart.