v0.3.4: externalized item actions

This commit is contained in:
Evan Debenham 2016-01-22 22:12:02 -05:00 committed by Evan Debenham
parent 7757b47573
commit 13b9d2f801
17 changed files with 68 additions and 77 deletions

View File

@ -33,7 +33,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
public class Amulet extends Item {
private static final String AC_END = "END THE GAME";
private static final String AC_END = "END";
{
image = ItemSpriteSheet.AMULET;
@ -50,7 +50,7 @@ public class Amulet extends Item {
@Override
public void execute( Hero hero, String action ) {
if (action == AC_END) {
if (action.equals(AC_END)) {
showAmuletScene( false );

View File

@ -58,7 +58,7 @@ public class Bomb extends Item {
//FIXME using a static variable for this is kinda gross, should be a better way
private static boolean lightingFuse = false;
private static final String AC_LIGHTTHROW = "Light & Throw";
private static final String AC_LIGHTTHROW = "LIGHTTHROW";
@Override
public boolean isSimilar(Item item) {

View File

@ -28,6 +28,8 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
import java.util.ArrayList;
public abstract class EquipableItem extends Item {
public static final String AC_EQUIP = "EQUIP";
@ -37,6 +39,13 @@ public abstract class EquipableItem extends Item {
bones = true;
}
@Override
public ArrayList<String> actions(Hero hero ) {
ArrayList<String> actions = super.actions( hero );
actions.add( isEquipped( hero ) ? AC_UNEQUIP : AC_EQUIP );
return actions;
}
@Override
public void execute( Hero hero, String action ) {
if (action.equals( AC_EQUIP )) {

View File

@ -33,13 +33,6 @@ abstract public class KindOfWeapon extends EquipableItem {
protected static final float TIME_TO_EQUIP = 1f;
@Override
public ArrayList<String> actions( Hero hero ) {
ArrayList<String> actions = super.actions( hero );
actions.add(isEquipped(hero) ? AC_UNEQUIP : AC_EQUIP);
return actions;
}
@Override
public boolean isEquipped( Hero hero ) {
return hero.belongings.weapon == this;

View File

@ -32,7 +32,6 @@ public class MerchantsBeacon extends Item {
private static final String AC_USE = "USE";
{
image = ItemSpriteSheet.BEACON;

View File

@ -78,13 +78,6 @@ public class Armor extends EquipableItem {
inscribe((Glyph) bundle.get(GLYPH));
}
@Override
public ArrayList<String> actions( Hero hero ) {
ArrayList<String> actions = super.actions( hero );
actions.add(isEquipped(hero) ? AC_UNEQUIP : AC_EQUIP);
return actions;
}
@Override
public boolean doEquip( Hero hero ) {

View File

@ -29,14 +29,13 @@ import com.watabou.utils.Bundle;
import java.util.ArrayList;
abstract public class ClassArmor extends Armor {
private static final String TXT_LOW_HEALTH = "Your health is too low!";
private static final String TXT_NOT_EQUIPPED = "You need to be wearing this armor to use its special power!";
private static final String AC_SPECIAL = "SPECIAL";
{
levelKnown = true;
cursedKnown = true;
defaultAction = special();
defaultAction = AC_SPECIAL;
bones = false;
}
@ -95,14 +94,14 @@ abstract public class ClassArmor extends Armor {
public ArrayList<String> actions( Hero hero ) {
ArrayList<String> actions = super.actions( hero );
if (hero.HP >= 3 && isEquipped( hero )) {
actions.add( special() );
actions.add( AC_SPECIAL );
}
return actions;
}
@Override
public void execute( Hero hero, String action ) {
if (action == special()) {
if (action.equals(AC_SPECIAL)) {
if (hero.HP < 3) {
GLog.w( Messages.get(this, "low_hp") );
@ -118,8 +117,7 @@ abstract public class ClassArmor extends Armor {
super.execute( hero, action );
}
}
abstract public String special();
abstract public void doSpecial();
@Override

View File

@ -36,8 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.utils.Callback;
public class HuntressArmor extends ClassArmor {
private static final String AC_SPECIAL = "SPECTRAL BLADES";
{
image = ItemSpriteSheet.ARMOR_HUNTRESS;
@ -45,11 +44,6 @@ public class HuntressArmor extends ClassArmor {
private HashMap<Callback, Mob> targets = new HashMap<Callback, Mob>();
@Override
public String special() {
return AC_SPECIAL;
}
@Override
public void doSpecial() {

View File

@ -37,17 +37,10 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
public class MageArmor extends ClassArmor {
private static final String AC_SPECIAL = "MOLTEN EARTH";
{
image = ItemSpriteSheet.ARMOR_MAGE;
}
@Override
public String special() {
return AC_SPECIAL;
}
@Override
public void doSpecial() {

View File

@ -41,17 +41,10 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
public class RogueArmor extends ClassArmor {
private static final String AC_SPECIAL = "SMOKE BOMB";
{
image = ItemSpriteSheet.ARMOR_ROGUE;
}
@Override
public String special() {
return AC_SPECIAL;
}
@Override
public void doSpecial() {
GameScene.selectCell( teleporter );

View File

@ -44,18 +44,11 @@ public class WarriorArmor extends ClassArmor {
private static int LEAP_TIME = 1;
private static int SHOCK_TIME = 3;
private static final String AC_SPECIAL = "HEROIC LEAP";
{
image = ItemSpriteSheet.ARMOR_WARRIOR;
}
@Override
public String special() {
return AC_SPECIAL;
}
@Override
public void doSpecial() {
GameScene.selectCell( leaper );

View File

@ -70,14 +70,6 @@ public class Artifact extends KindofMisc {
public Artifact(){
super();
}
@Override
public ArrayList<String> actions( Hero hero ) {
ArrayList<String> actions = super.actions( hero );
actions.add( isEquipped( hero ) ? AC_UNEQUIP : AC_EQUIP );
return actions;
}
@Override
public boolean doEquip( final Hero hero ) {

View File

@ -108,13 +108,6 @@ public class Ring extends KindofMisc {
gem = handler.label( this );
}
@Override
public ArrayList<String> actions( Hero hero ) {
ArrayList<String> actions = super.actions( hero );
actions.add( isEquipped( hero ) ? AC_UNEQUIP : AC_EQUIP );
return actions;
}
@Override
public boolean doEquip( final Hero hero ) {

View File

@ -51,9 +51,6 @@ abstract public class MissileWeapon extends Weapon {
public ArrayList<String> actions( Hero hero ) {
ArrayList<String> actions = super.actions( hero );
actions.remove( AC_EQUIP );
if (!isEquipped( hero )) {
actions.remove( AC_UNEQUIP );
}
return actions;
}

View File

@ -45,6 +45,7 @@ items.armor.clotharmor.name=cloth armor
items.armor.clotharmor.desc=This lightweight armor offers basic protection.
items.armor.huntressarmor.name=huntress cloak
items.armor.huntressarmor.ac_special=SPECTRAL BLADES
items.armor.huntressarmor.no_enemies=No enemies in sight
items.armor.huntressarmor.desc=A huntress in such cloak can create a fan of spectral blades. Each of these blades will target a single enemy in the huntress's field of view, inflicting damage depending on her currently equipped melee weapon.
@ -52,6 +53,7 @@ items.armor.leatherarmor.name=leather armor
items.armor.leatherarmor.desc=Armor made from tanned monster hide. Not as light as cloth armor but provides better protection.
items.armor.magearmor.name=mage robe
items.armor.magearmor.ac_special=MOLTEN EARTH
items.armor.magearmor.desc=Wearing this gorgeous robe, a mage can cast a spell of molten earth: all the enemies in his field of view will be set on fire and unable to move at the same time.
items.armor.mailarmor.name=mail armor
@ -61,6 +63,7 @@ items.armor.platearmor.name=plate armor
items.armor.platearmor.desc=Enormous plates of metal are joined together into a suit that provides unmatched protection to any adventurer strong enough to bear its staggering weight.
items.armor.roguearmor.name=rogue garb
items.armor.roguearmor.ac_special=SMOKE BOMB
items.armor.roguearmor.fov=You can only jump to an empty location in your field of view
items.armor.roguearmor.prompt=Choose a location to jump to
items.armor.roguearmor.desc=Wearing this dark garb, a rogue can perform a trick, that is called "smoke bomb": he blinds enemies who could see him and jumps aside.
@ -69,6 +72,7 @@ items.armor.scalearmor.name=scale armor
items.armor.scalearmor.desc=The metal scales sewn onto a leather vest create a flexible, yet protective armor.
items.armor.warriorarmor.name=warrior suit of armor
items.armor.warriorarmor.ac_special=HEROIC LEAP
items.armor.warriorarmor.prompt=Choose direction to leap
items.armor.warriorarmor.desc=While this armor looks heavy, it allows a warrior to perform heroic leap towards a targeted location, slamming down to stun all neighbouring enemies.
@ -76,6 +80,7 @@ items.armor.warriorarmor.desc=While this armor looks heavy, it allows a warrior
###artifacts
items.artifacts.alchemiststoolkit.name=alchemists toolkit
items.artifacts.alchemiststoolkit.ac_brew=BREW
##this one isn't dropped, so for now no i18n
items.artifacts.artifact.unequip_title=Unequip one item
@ -96,6 +101,7 @@ items.artifacts.capeofthorns$thorns.name=Thorns
items.artifacts.capeofthorns$thorns.desc=Your cape is radiating energy, surrounding you in a field of deflective force!\n\nAll damage you receive is reduced while the thorns effect is active. Additionally, if the attacker is next to you, the reduced amount is deflected back at the attacker.\n\nTurns of thorns remaining: %s.
items.artifacts.chaliceofblood.name=chalice of blood
items.artifacts.chaliceofblood.ac_prick=PRICK
items.artifacts.chaliceofblood.yes=Yes, I know what I'm doing
items.artifacts.chaliceofblood.no=No, I changed my mind
items.artifacts.chaliceofblood.prick_warn=Each time you use the chalice it will drain more life energy, if you are not careful this can easily kill you.\n\nAre you sure you want to offer it more life energy?
@ -108,6 +114,7 @@ items.artifacts.chaliceofblood.desc_2=Some of your blood is pooled into the chal
items.artifacts.chaliceofblood.desc_3=The chalice is filled to the brim with your life essence. You can feel the chalice pouring life energy back into you.
items.artifacts.cloakofshadows.name=cloak of shadows
items.artifacts.cloakofshadows.ac_stealth=STEALTH
items.artifacts.cloakofshadows.cooldown=Your cloak needs %d more rounds to re-energize.
items.artifacts.cloakofshadows.no_charge=Your cloak hasn't recharged enough to be usable yet.
items.artifacts.cloakofshadows.desc=A priceless magical cloak, stolen from the royal armory many years ago by the Rogue. When worn, it can be used to turn completely invisible for a short time.\n\nThe more the cloak is used, the stronger it will become, allowing the Rogue to become invisible more frequently and for longer durations.
@ -117,6 +124,7 @@ items.artifacts.cloakofshadows$cloakstealth.name=Cloaked
items.artifacts.cloakofshadows$cloakstealth.desc=Your cloak of shadows is granting you invisibility while you are shrouded by it.\n\nWhile you are invisible enemies are unable to attack or follow you. Physical attacks and magical effects (such as scrolls and wands) will immediately cancel invisibility.\n\nYou will remain cloaked until it is cancelled or your cloak runs out of charge.
items.artifacts.driedrose.name=dried rose
items.artifacts.driedrose.ac_summon=SUMMON
items.artifacts.driedrose.spawned=You have already summed the ghost.
items.artifacts.driedrose.no_charge=Your rose isn't fully charged yet.
items.artifacts.driedrose.cursed=You cannot use a cursed rose.
@ -138,6 +146,7 @@ items.artifacts.driedrose$ghosthero.introduce=My spirit is bound to this rose, i
items.artifacts.driedrose$ghosthero.desc=A frail looking ethereal figure with a humanoid shape. Its power seems tied to the rose I have.\n\nThis ghost may not be much, but it seems to be my only true friend down here.
items.artifacts.etherealchains.name=ethereal chains
items.artifacts.etherealchains.ac_cast=CAST
items.artifacts.etherealchains.no_charge=Your chains do not have enough charge.
items.artifacts.etherealchains.cursed=You can't use cursed chains.
items.artifacts.etherealchains.does_nothing=That won't do anything.
@ -150,6 +159,8 @@ items.artifacts.etherealchains.desc_equipped=The chains rest around your side, s
items.artifacts.etherealchains$chainsrecharge.levelup=Your chains grow stronger!
items.artifacts.hornofplenty.name=horn of plenty
items.artifacts.hornofplenty.ac_eat=EAT
items.artifacts.hornofplenty.ac_store=STORE
items.artifacts.hornofplenty.eat=You eat from the horn.
items.artifacts.hornofplenty.prompt=Select a piece of food
items.artifacts.hornofplenty.no_food=Your horn has no food in it to eat!
@ -162,6 +173,9 @@ items.artifacts.hornofplenty.desc_hint=Perhaps there is a way to increase the ho
items.artifacts.hornofplenty.desc_cursed=The cursed horn has bound itself to your side, it seems to be eager to take food rather than produce it.
items.artifacts.lloydsbeacon.name=lloyd's beacon
items.artifacts.lloydsbeacon.ac_zap=ZAP
items.artifacts.lloydsbeacon.ac_set=SET
items.artifacts.lloydsbeacon.ac_return=RETURN
items.artifacts.lloydsbeacon.no_charge=Your beacon does not have enough energy right now.
items.artifacts.lloydsbeacon.tele_fail=The teleportation magic fails.
items.artifacts.lloydsbeacon.prompt=Choose a location to zap.
@ -180,6 +194,8 @@ items.artifacts.sandalsofnature.name=sandals of nature
items.artifacts.sandalsofnature.name_1=shoes of nature
items.artifacts.sandalsofnature.name_2=boots of nature
items.artifacts.sandalsofnature.name_3=greaves of nature
items.artifacts.sandalsofnature.ac_feed=FEED
items.artifacts.sandalsofnature.ac_root=ROOT
items.artifacts.sandalsofnature.no_charge=They have no energy right now.
items.artifacts.sandalsofnature.prompt=Select a seed
items.artifacts.sandalsofnature.already_fed=Your footwear have already recently gained nutrients from that seed.
@ -195,6 +211,7 @@ items.artifacts.sandalsofnature.desc_ability=The footwear has gained the ability
items.artifacts.sandalsofnature.desc_seeds=You have fed the footwear %d seeds.
items.artifacts.talismanofforesight.name=talisman of foresight
items.artifacts.talismanofforesight.ac_scry=SCRY
items.artifacts.talismanofforesight.no_charge=Your talisman isn't fully charged yet.
items.artifacts.talismanofforesight.scry=The Talisman floods your mind with knowledge about the current floor.
items.artifacts.talismanofforesight.desc=A smooth stone with strange engravings on it. You feel like it's watching everything around you, keeping an eye out for anything unusual.
@ -207,6 +224,7 @@ items.artifacts.talismanofforesight$foresight.uneasy=You feel uneasy.
items.artifacts.talismanofforesight$foresight.desc=You feel very nervous, as if there is nearby unseen danger.
items.artifacts.timekeepershourglass.name=timekeeper's hourglass
items.artifacts.timekeepershourglass.ac_activate=ACTIVATE
items.artifacts.timekeepershourglass.in_use=Your hourglass is already in use.
items.artifacts.timekeepershourglass.no_charge=Your hourglass hasn't recharged enough to be usable yet.
items.artifacts.timekeepershourglass.cursed=You cannot use a cursed hourglass.
@ -225,6 +243,8 @@ items.artifacts.timekeepershourglass$sandbag.no_hourglass=You have no hourglass
items.artifacts.timekeepershourglass$sandbag.desc=This small bag of fine sand should work perfectly with your hourglass.\n\nIt seems odd that the shopkeeper would have this specific item right when you need it...
items.artifacts.unstablespellbook.name=unstable spellbook
items.artifacts.unstablespellbook.ac_read=READ
items.artifacts.unstablespellbook.ac_add=ADD
items.artifacts.unstablespellbook.blinded=You cannot read from the book while blinded.
items.artifacts.unstablespellbook.no_charge=Your spellbook is out of energy for now.
items.artifacts.unstablespellbook.cursed=You cannot read from a cursed spellbook.
@ -280,6 +300,7 @@ items.food.chargrilledmeat.name=chargrilled meat
items.food.chargrilledmeat.desc=It looks like a decent steak.
items.food.food.name=ration of food
items.food.foor.ac_eat=EAT
items.food.food.eat_msg=That food tasted delicious!
items.food.food.desc=Nothing fancy here: dried meat, some biscuits - things like that.
@ -323,6 +344,7 @@ items.keys.skeletonkey.desc=This key looks serious: its head is shaped like a sk
###potions
items.potions.potion.ac_drink=DRINK
items.potions.potion.turquoise=turquoise
items.potions.potion.crimson=crimson
items.potions.potion.azure=azure
@ -411,6 +433,7 @@ items.quest.embers.name=elemental embers
items.quest.embers.desc=Special embers which can only be harvested from young fire elementals. They radiate thermal energy.
items.quest.pickaxe.name=pickaxe
items.quest.pickaxe.ac_mine=MINE
items.quest.pickaxe.no_vein=There is no dark gold vein near you to mine.
items.quest.pickaxe.desc=This is a large and sturdy tool for breaking rocks. Probably it can be used as a weapon.
@ -481,6 +504,7 @@ items.rings.ringofwealth.desc=It's not clear what this ring does exactly, good l
###scrolls
items.scrolls.scroll.ac_read=READ
items.scrolls.scroll.kaunan=KAUNAN
items.scrolls.scroll.sowilo=SOWILO
items.scrolls.scroll.laguz=LAGUZ
@ -566,6 +590,7 @@ items.wands.cursedwand.grass=Grass explodes around you!
items.wands.cursedwand.fire=You smell burning...
items.wands.cursedwand.transmogrify=Your wand transmogrifies into a different item!
items.wands.wand.ac_zap=ZAP
items.wands.wand.fizzles=Your wand fizzles; it must not have enough charge.
items.wands.wand.self_target=You can't target yourself!
items.wands.wand.identify=You are now familiar with your %s.
@ -665,6 +690,8 @@ items.weapon.melee.mace.stats_desc=This is a slightly fast weapon.
items.weapon.melee.mace.desc=The iron head of this weapon inflicts substantial damage.
items.weapon.melee.magesstaff.name=mage's staff
items.weapon.melee.magesstaff.ac_imbue=IMBUE
items.weapon.melee.magesstaff.ac_zap=ZAP
items.weapon.melee.magesstaff.wand=wand
items.weapon.melee.magesstaff.staff=staff
items.weapon.melee.magesstaff.prompt=Select a wand to consume
@ -688,6 +715,7 @@ items.weapon.melee.quarterstaff.name=quarterstaff
items.weapon.melee.quarterstaff.desc=A staff of hardwood, its ends are shod with iron.
items.weapon.melee.shortsword.name=short sword
items.weapon.melee.shortsword.ac_reforge=REFORGE
items.weapon.melee.shortsword.desc=It is indeed quite short, just a few inches longer, than a dagger.
items.weapon.melee.spear.name=spear
@ -738,19 +766,23 @@ items.weapon.weapon.heavier=It was balanced to be heavier.
###misc items
items.amulet.name=amulet of yendor
items.amulet.ac_end=END THE GAME
items.amulet.desc=The Amulet of Yendor is the most powerful known artifact of unknown origin. It is said that the amulet is able to fulfil any wish if its owner's will-power is strong enough to "persuade" it to do it.
items.ankh.name=ankh
items.ankh.ac_bless=BLESS
items.ankh.bless=You bless the ankh with clean water.
items.ankh.desc=This ancient symbol of immortality grants the ability to return to life after death. Upon resurrection all non-equipped items are lost. Using a full dew vial, the ankh can be blessed with extra strength.
items.ankh.desc_blessed=This ancient symbol of immortality grants the ability to return to life after death. The ankh has been blessed and is now much stronger. The Ankh will sacrifice itself to save you in a moment of deadly peril.
items.armorkit.name=armor kit
items.armorkit.ac_apply=APPLY
items.armorkit.prompt=Select an armor to upgrade
items.armorkit.upgraded=You applied the armor kit to upgrade your %s
items.armorkit.desc=Using this kit of small tools and materials anybody can transform any armor into an "epic armor", which will keep all properties of the original armor, but will also provide its wearer a special ability depending on his class. No skills in tailoring, leatherworking or blacksmithing are required.
items.bomb.name=bomb
items.bomt.ac_lightthrow=LIGHT & THROW
items.bomb.snuff_fuse=You quickly snuff the bomb's fuse.
items.bomb.ondeath=Killed by an explosion
items.bomb.desc=A fairly hefty black powder bomb. An explosion from this would certainly do damage to anything nearby.\n\nIt looks like the fuse will take a couple rounds to burn down once it is lit.
@ -764,6 +796,7 @@ items.dewdrop.already_full=You already have full health.
items.dewdrop.desc=A crystal clear dewdrop.\n\nDue to the magic of this place, pure water has minor restorative properties.
items.dewvial.name=dew vial
items.dewvial.ac_drink=DRINK
items.dewvial.value=%+dHP
items.dewvial.collected=You collected a dewdrop into your dew vial.
items.dewvial.full=Your dew vial is full!
@ -776,31 +809,39 @@ items.gold.name=gold
items.gold.desc=A pile of gold coins. Collect gold coins to spend them later in a shop.
items.honeypot.name=honeypot
items.honeypot.ac_shatter=SHATTER
items.honeypot.desc=This large honeypot is only really lined with honey, instead it houses a giant bee! These sorts of massive bees usually stay in their hives, perhaps the pot is some sort of specialized trapper's cage? The bee seems pretty content inside the pot with its honey, and buzzes at you warily when you look at it.
items.honeypot$shatteredpot.name=shattered honeypot
items.honeypot$shatteredpot.desc=The pot has been shattered, only the sticky honey that lines its walls is holding it together, and it is slowly coming apart.\n\nDespite its broken state, the bee still seems to want to protect the pot.
items.item.pack_full=Your pack is too full for the %s.
items.item.prompt=Choose direction of throw
items.item.ac_drop=DROP
items.item.ac_throw=THROW
items.kindofweapon.cursed=you wince as your grip involuntarily tightens around your %s
items.merchantsbeacon.name=merchant's beacon
items.merchantsbeacon.ac_use=USE
items.merchantsbeacon.desc=This odd piece of dwarven technology allows you to communicate from great distances.\n\nAfter being activated, this beacon will let you sell items to Pixel Mart from anywhere in the dungeon.\n\nHowever, the magic within the beacon will only last for one session, so use it wisely.
items.stylus.name=arcane stylus
items.stylus.ac_inscribe=INSCRIBE
items.stylus.prompt=Select an armor to inscribe
items.stylus.inscribed=You inscribed your armor with the stylus
items.stylus.desc=This arcane stylus is made of some dark, very hard stone. Using it you can inscribe a magical glyph on your armor, but you have no power over choosing what glyph it will be, the stylus will decide it for you.
items.tomeofmastery.name=Tome of Mastery
items.tomeofmastery.ac_read=READ
items.tomeofmastery.way=You have chosen the way of the %s!
items.tomeofmastery.desc=This worn leather book is not that thick, but you feel somehow, that you can gather a lot from it. Remember though that reading this tome may require some time.
items.torch.name=torch
items.torch.ac_light=LIGHT
items.torch.desc=An adventuring staple, when a dungeon goes dark, a torch can help lead the way.
items.weightstone.name=weightstone
items.weightstone.ac_apply=APPLY
items.weightstone.select=Select a weapon to balance
items.weightstone.light=you balanced your weapon to make it lighter
items.weightstone.heavy=you balanced your weapon to make it heavier

View File

@ -119,6 +119,8 @@ public abstract class Plant implements Bundlable {
}
public static class Seed extends Item {
public static final String AC_PLANT = "PLANT";
private static final float TIME_TO_PLANT = 1f;
@ -134,7 +136,7 @@ public abstract class Plant implements Bundlable {
@Override
public ArrayList<String> actions( Hero hero ) {
ArrayList<String> actions = super.actions( hero );
actions.add( Messages.get( Seed.class, "ac_plant" ) );
actions.add( AC_PLANT );
return actions;
}
@ -149,7 +151,7 @@ public abstract class Plant implements Bundlable {
@Override
public void execute( Hero hero, String action ) {
if (action.equals( Messages.get( Seed.class, "ac_plant" ))) {
if (action.equals( AC_PLANT )) {
hero.spend( TIME_TO_PLANT );
hero.busy();

View File

@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.windows;
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
import com.shatteredpixel.shatteredpixeldungeon.ui.ItemSlot;
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
@ -66,7 +67,7 @@ public class WndItem extends Window {
if (Dungeon.hero.isAlive() && owner != null) {
for (final String action:item.actions( Dungeon.hero )) {
RedButton btn = new RedButton( action ) {
RedButton btn = new RedButton( Messages.get(item, "ac_" + action) ) {
@Override
protected void onClick() {
item.execute( Dungeon.hero, action );