From 7ee1f86ee2a25fce58c61db071367004af6c6d96 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 2 Jan 2016 06:12:59 -0500 Subject: [PATCH] v0.3.4: externalized scroll strings --- .../actors/mobs/npcs/Blacksmith.java | 2 +- .../items/artifacts/LloydsBeacon.java | 3 +- .../items/scrolls/InventoryScroll.java | 12 ++-- .../items/scrolls/Scroll.java | 25 ++++---- .../items/scrolls/ScrollOfIdentify.java | 12 +--- .../items/scrolls/ScrollOfLullaby.java | 13 +--- .../items/scrolls/ScrollOfMagicMapping.java | 17 +----- .../scrolls/ScrollOfMagicalInfusion.java | 17 +----- .../items/scrolls/ScrollOfMirrorImage.java | 11 +--- .../items/scrolls/ScrollOfPsionicBlast.java | 13 +--- .../items/scrolls/ScrollOfRage.java | 15 +---- .../items/scrolls/ScrollOfRecharging.java | 14 +---- .../items/scrolls/ScrollOfRemoveCurse.java | 22 +------ .../items/scrolls/ScrollOfTeleportation.java | 24 +------- .../items/scrolls/ScrollOfTerror.java | 20 ++---- .../items/scrolls/ScrollOfUpgrade.java | 19 +----- .../items/wands/CursedWand.java | 2 +- .../levels/traps/TeleportationTrap.java | 4 +- .../messages/messages.properties | 61 +++++++++++++++++++ 19 files changed, 114 insertions(+), 192 deletions(-) diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Blacksmith.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Blacksmith.java index a8c8f990b..e306201e9 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Blacksmith.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Blacksmith.java @@ -188,7 +188,7 @@ public class Blacksmith extends NPC { ((EquipableItem)first).doUnequip( Dungeon.hero, true ); } first.upgrade(); - GLog.p( ScrollOfUpgrade.TXT_LOOKS_BETTER, first.name() ); + GLog.p( Messages.get(ScrollOfUpgrade.class, "look_better", first.name()) ); Dungeon.hero.spendAndNext( 2f ); Badges.validateItemLevelAquired( first ); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/LloydsBeacon.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/LloydsBeacon.java index 08fae26a9..a3d7e96a9 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/LloydsBeacon.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/LloydsBeacon.java @@ -39,6 +39,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.CellSelector; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene; @@ -238,7 +239,7 @@ public class LloydsBeacon extends Artifact { if (pos == -1 || Dungeon.bossLevel()) { - GLog.w(ScrollOfTeleportation.TXT_NO_TELEPORT); + GLog.w( Messages.get(ScrollOfTeleportation.class, "no_tele") ); } else if (ch.properties().contains(Char.Property.IMMOVABLE)) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/InventoryScroll.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/InventoryScroll.java index 95dc9851a..7132009a5 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/InventoryScroll.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/InventoryScroll.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; @@ -30,15 +31,9 @@ import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions; public abstract class InventoryScroll extends Scroll { - protected String inventoryTitle = "Select an item"; + protected String inventoryTitle = Messages.get(this, "inv_title"); protected WndBag.Mode mode = WndBag.Mode.ALL; - private static final String TXT_WARNING = - "Do you really want to cancel this scroll usage? " + - "It will be consumed anyway."; - private static final String TXT_YES = "Yes, I'm positive"; - private static final String TXT_NO = "No, I changed my mind"; - @Override protected void doRead() { @@ -53,7 +48,8 @@ public abstract class InventoryScroll extends Scroll { } private void confirmCancelation() { - GameScene.show( new WndOptions( name(), TXT_WARNING, TXT_YES, TXT_NO ) { + GameScene.show( new WndOptions( name(), Messages.get(this, "warning"), + Messages.get(this, "yes"), Messages.get(this, "no") ) { @Override protected void onSelect( int index ) { switch (index) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/Scroll.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/Scroll.java index aecfb7901..b67d60c1c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/Scroll.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/Scroll.java @@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.ItemStatusHandler; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.UnstableSpellbook; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; @@ -35,17 +36,12 @@ import java.util.ArrayList; import java.util.HashSet; public abstract class Scroll extends Item { - - private static final String TXT_BLINDED = "You can't read a scroll while blinded"; - - private static final String TXT_CURSED = "Your cursed spellbook prevents you from invoking this scroll's magic! " + - "A scroll of remove curse might be strong enough to still work though..."; public static final String AC_READ = "READ"; protected static final float TIME_TO_READ = 1f; - protected String initials; + protected String initials = Messages.get(this, "initials"); private static final Class[] scrolls = { ScrollOfIdentify.class, @@ -90,7 +86,7 @@ public abstract class Scroll extends Item { @SuppressWarnings("unchecked") public static void initLabels() { - handler = new ItemStatusHandler( (Class[])scrolls, runes, images ); + handler = new ItemStatusHandler<>( (Class[])scrolls, runes, images ); } public static void save( Bundle bundle ) { @@ -99,7 +95,7 @@ public abstract class Scroll extends Item { @SuppressWarnings("unchecked") public static void restore( Bundle bundle ) { - handler = new ItemStatusHandler( (Class[])scrolls, runes, images, bundle ); + handler = new ItemStatusHandler<>( (Class[])scrolls, runes, images, bundle ); } public Scroll() { @@ -125,11 +121,11 @@ public abstract class Scroll extends Item { if (action.equals( AC_READ )) { if (hero.buff( Blindness.class ) != null) { - GLog.w( TXT_BLINDED ); + GLog.w( Messages.get(this, "blinded") ); } else if (hero.buff(UnstableSpellbook.bookRecharge.class) != null && hero.buff(UnstableSpellbook.bookRecharge.class).isCursed() && !(this instanceof ScrollOfRemoveCurse)) { - GLog.n( TXT_CURSED ); + GLog.n( Messages.get(this, "cursed") ); } else { curUser = hero; curItem = detach( hero.belongings.backpack ); @@ -168,18 +164,21 @@ public abstract class Scroll extends Item { setKnown(); return super.identify(); } + + public String rune() { + return Messages.get(Scroll.class, rune); + } @Override public String name() { - return isKnown() ? name : "scroll \"" + rune + "\""; + return isKnown() ? name : Messages.get(this, "unknown_name", rune()); } @Override public String info() { return isKnown() ? desc() : - "This parchment is covered with indecipherable writing, and bears a title " + - "of rune " + rune + ". Who knows what it will do when read aloud?"; + Messages.get(this, "unknown_desc", rune()); } public String initials(){ diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfIdentify.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfIdentify.java index 32df8ee4d..72f36b3c2 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfIdentify.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfIdentify.java @@ -23,15 +23,13 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.effects.Identification; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag; public class ScrollOfIdentify extends InventoryScroll { { - initials = "Id"; - - inventoryTitle = "Select an item to identify"; mode = WndBag.Mode.UNIDENTIFED; bones = true; @@ -43,17 +41,11 @@ public class ScrollOfIdentify extends InventoryScroll { curUser.sprite.parent.add( new Identification( curUser.sprite.center().offset( 0, -16 ) ) ); item.identify(); - GLog.i( "It is " + item ); + GLog.i( Messages.get(this, "it_is", item) ); Badges.validateItemLevelAquired( item ); } - @Override - public String desc() { - return - "Permanently reveals all of the secrets of a single item."; - } - @Override public int price() { return isKnown() ? 30 * quantity : super.price(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfLullaby.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfLullaby.java index d157d1209..e6d0be69d 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfLullaby.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfLullaby.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Drowsy; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; @@ -32,10 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; public class ScrollOfLullaby extends Scroll { - - { - initials = "Lu"; - } @Override protected void doRead() { @@ -53,19 +50,13 @@ public class ScrollOfLullaby extends Scroll { Buff.affect( curUser, Drowsy.class ); - GLog.i( "The scroll utters a soothing melody. You feel very sleepy." ); + GLog.i( Messages.get(this, "sooth") ); setKnown(); readAnimation(); } - @Override - public String desc() { - return - "A soothing melody will lull all who hear it into a deep magical sleep "; - } - @Override public int price() { return isKnown() ? 50 * quantity : super.price(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMagicMapping.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMagicMapping.java index fde9d496f..8df5274fc 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMagicMapping.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMagicMapping.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; @@ -34,12 +35,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; public class ScrollOfMagicMapping extends Scroll { - private static final String TXT_LAYOUT = "You are now aware of the level layout."; - - { - initials = "MM"; - } - @Override protected void doRead() { @@ -72,7 +67,7 @@ public class ScrollOfMagicMapping extends Scroll { } Dungeon.observe(); - GLog.i( TXT_LAYOUT ); + GLog.i( Messages.get(this, "layout") ); if (noticed) { Sample.INSTANCE.play( Assets.SND_SECRET ); } @@ -86,14 +81,6 @@ public class ScrollOfMagicMapping extends Scroll { readAnimation(); } - @Override - public String desc() { - return - "When this scroll is read, an image of crystal clarity will be etched into your memory, " + - "alerting you to the precise layout of the level and revealing all hidden secrets. " + - "The locations of items and creatures will remain unknown."; - } - @Override public int price() { return isKnown() ? 25 * quantity : super.price(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMagicalInfusion.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMagicalInfusion.java index 4163eeffe..ba49db442 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMagicalInfusion.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMagicalInfusion.java @@ -27,17 +27,13 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag; public class ScrollOfMagicalInfusion extends InventoryScroll { - - private static final String TXT_INFUSE = "your %s is infused with arcane energy!"; { - initials = "MaI"; - - inventoryTitle = "Select an item to infuse"; mode = WndBag.Mode.ENCHANTABLE; bones = true; @@ -52,19 +48,12 @@ public class ScrollOfMagicalInfusion extends InventoryScroll { else ((Armor)item).upgrade(true); - GLog.p( TXT_INFUSE, item.name() ); + GLog.p( Messages.get(this, "infuse", item.name()) ); Badges.validateItemLevelAquired(item); curUser.sprite.emitter().start(Speck.factory(Speck.UP), 0.2f, 3); Enchanting.show(curUser, item); } - - @Override - public String desc() { - return - "This scroll will infuse a weapon or armor with powerful magical energy.\n\n" + - "In addition to being upgraded, A weapon will gain a magical enchantment, or armor will be imbued with a magical glyph.\n\n" + - "If the item already has an enchantment or glyph, it will never be erased by this scroll."; - } + } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMirrorImage.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMirrorImage.java index a2a0e8e97..30edf6b6b 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMirrorImage.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfMirrorImage.java @@ -35,10 +35,6 @@ public class ScrollOfMirrorImage extends Scroll { private static final int NIMAGES = 3; - { - initials = "MI"; - } - @Override protected void doRead() { @@ -73,10 +69,5 @@ public class ScrollOfMirrorImage extends Scroll { readAnimation(); } - - @Override - public String desc() { - return - "The incantation on this scroll will create illusionary twins of the reader, which will chase his enemies."; - } + } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfPsionicBlast.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfPsionicBlast.java index bb9c72d4f..566964308 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfPsionicBlast.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfPsionicBlast.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; import com.shatteredpixel.shatteredpixeldungeon.ResultDescriptions; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.Utils; import com.watabou.noosa.audio.Sample; @@ -38,8 +39,6 @@ import com.watabou.utils.Random; public class ScrollOfPsionicBlast extends Scroll { { - initials = "PB"; - bones = true; } @@ -68,18 +67,10 @@ public class ScrollOfPsionicBlast extends Scroll { if (!curUser.isAlive()) { Dungeon.fail( Utils.format(ResultDescriptions.ITEM, name )); - GLog.n("The Psionic Blast tears your mind apart..."); + GLog.n( Messages.get(this, "ondeath") ); } } - @Override - public String desc() { - return - "This scroll contains destructive energy that can be psionically channeled to tear apart " + - "the minds of all visible creatures. The power unleashed by the scroll will also temporarily " + - "blind, stun, and seriously harm the reader."; - } - @Override public int price() { return isKnown() ? 80 * quantity : super.price(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRage.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRage.java index b4be111f9..5a2878e6f 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRage.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRage.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mimic; import com.shatteredpixel.shatteredpixeldungeon.items.Heap; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; @@ -34,10 +35,6 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; public class ScrollOfRage extends Scroll { - - { - initials = "Ra"; - } @Override protected void doRead() { @@ -59,7 +56,7 @@ public class ScrollOfRage extends Scroll { } } - GLog.w( "The scroll emits an enraging roar that echoes throughout the dungeon!" ); + GLog.w( Messages.get(this, "roar") ); setKnown(); curUser.sprite.centerEmitter().start( Speck.factory( Speck.SCREAM ), 0.3f, 3 ); @@ -68,11 +65,5 @@ public class ScrollOfRage extends Scroll { readAnimation(); } - - @Override - public String desc() { - return - "When read aloud, this scroll will unleash a great roar " + - "that draws all enemies to the reader, and enrages nearby ones."; - } + } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRecharging.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRecharging.java index 5edf524ac..6f3dc84e8 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRecharging.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRecharging.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Recharging; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; @@ -33,10 +34,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; public class ScrollOfRecharging extends Scroll { public static final float BUFF_DURATION = 30f; - - { - initials = "Re"; - } @Override protected void doRead() { @@ -47,20 +44,13 @@ public class ScrollOfRecharging extends Scroll { Sample.INSTANCE.play( Assets.SND_READ ); Invisibility.dispel(); - GLog.i( "a surge of energy courses through your body, invigorating your wands."); + GLog.i( Messages.get(this, "surge") ); SpellSprite.show( curUser, SpellSprite.CHARGE ); setKnown(); readAnimation(); } - @Override - public String desc() { - return - "The raw magical power bound up in this parchment will, when released, " + - "charge up all the users wands over time."; - } - public static void charge( Hero hero ) { hero.sprite.centerEmitter().burst( EnergyParticle.FACTORY, 15 ); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRemoveCurse.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRemoveCurse.java index 26ba3736f..214fd6338 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRemoveCurse.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfRemoveCurse.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; import com.shatteredpixel.shatteredpixeldungeon.items.bags.Bag; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; @@ -32,15 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; public class ScrollOfRemoveCurse extends Scroll { - - private static final String TXT_PROCCED = - "Your pack glows with a cleansing light, and a malevolent energy disperses."; - private static final String TXT_NOT_PROCCED = - "Your pack glows with a cleansing light, but nothing happens."; - - { - initials = "RC"; - } @Override protected void doRead() { @@ -59,9 +51,9 @@ public class ScrollOfRemoveCurse extends Scroll { Weakness.detach( curUser, Weakness.class ); if (procced) { - GLog.p( TXT_PROCCED ); + GLog.p( Messages.get(this, "cleansed") ); } else { - GLog.i( TXT_NOT_PROCCED ); + GLog.i( Messages.get(this, "not_cleansed") ); } setKnown(); @@ -69,14 +61,6 @@ public class ScrollOfRemoveCurse extends Scroll { readAnimation(); } - @Override - public String desc() { - return - "The incantation on this scroll will instantly strip from " + - "the reader's weapon, armor, rings and carried items any evil " + - "enchantments that might prevent the wearer from removing them."; - } - public static boolean uncurse( Hero hero, Item... items ) { boolean procced = false; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTeleportation.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTeleportation.java index a0aea7d75..99b427180 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTeleportation.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTeleportation.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; @@ -31,16 +32,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.tweeners.AlphaTweener; public class ScrollOfTeleportation extends Scroll { - - public static final String TXT_TELEPORTED = - "In a blink of an eye you were teleported to another location of the level."; - - public static final String TXT_NO_TELEPORT = - "Strong magic aura of this place prevents you from teleporting!"; - - { - initials = "TP"; - } @Override protected void doRead() { @@ -67,7 +58,7 @@ public class ScrollOfTeleportation extends Scroll { if (pos == -1 || Dungeon.bossLevel()) { - GLog.w( TXT_NO_TELEPORT ); + GLog.w( Messages.get(ScrollOfTeleportation.class, "no_tele") ); } else { @@ -75,7 +66,7 @@ public class ScrollOfTeleportation extends Scroll { Dungeon.level.press( pos, hero ); Dungeon.observe(); - GLog.i( TXT_TELEPORTED ); + GLog.i( Messages.get(ScrollOfTeleportation.class, "tele") ); } } @@ -96,15 +87,6 @@ public class ScrollOfTeleportation extends Scroll { Sample.INSTANCE.play( Assets.SND_TELEPORT ); } - @Override - public String desc() { - return - "The spell on this parchment instantly transports the reader " + - "to a random location on the dungeon level. It can be used " + - "to escape a dangerous situation, but the unlucky reader might " + - "find himself in an even more dangerous place."; - } - @Override public int price() { return isKnown() ? 40 * quantity : super.price(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTerror.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTerror.java index 52567c5b8..56d877e2b 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTerror.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTerror.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; @@ -32,10 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; public class ScrollOfTerror extends Scroll { - - { - initials = "Te"; - } @Override protected void doRead() { @@ -59,26 +56,19 @@ public class ScrollOfTerror extends Scroll { switch (count) { case 0: - GLog.i( "The scroll emits a brilliant flash of red light" ); + GLog.i( Messages.get(this, "none") ); break; case 1: - GLog.i( "The scroll emits a brilliant flash of red light and the " + affected.name + " flees!" ); + GLog.i( Messages.get(this, "one", affected.name) ); break; default: - GLog.i( "The scroll emits a brilliant flash of red light and the monsters flee!" ); + GLog.i( Messages.get(this, "many") ); } setKnown(); readAnimation(); } - - @Override - public String desc() { - return - "A flash of red light will overwhelm all creatures in your field of view with terror, " + - "and they will turn and flee. Attacking a fleeing enemy will dispel the effect."; - } - + @Override public int price() { return isKnown() ? 50 * quantity : super.price(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfUpgrade.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfUpgrade.java index dc37d3f64..37d418ed5 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfUpgrade.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfUpgrade.java @@ -25,17 +25,13 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag; public class ScrollOfUpgrade extends InventoryScroll { - - public static final String TXT_LOOKS_BETTER = "your %s certainly looks better now"; { - initials = "Up"; - - inventoryTitle = "Select an item to upgrade"; mode = WndBag.Mode.UPGRADEABLE; bones = true; @@ -48,7 +44,7 @@ public class ScrollOfUpgrade extends InventoryScroll { item.upgrade(); upgrade( curUser ); - GLog.p( TXT_LOOKS_BETTER, item.name() ); + GLog.p( Messages.get(this, "look_better", item.name()) ); Badges.validateItemLevelAquired( item ); } @@ -56,14 +52,5 @@ public class ScrollOfUpgrade extends InventoryScroll { public static void upgrade( Hero hero ) { hero.sprite.emitter().start( Speck.factory( Speck.UP ), 0.2f, 3 ); } - - @Override - public String desc() { - return - "This scroll will upgrade a single item, improving its quality. A wand will " + - "increase in power and in number of charges; a weapon will inflict more damage " + - "or find its mark more frequently; a suit of armor will deflect additional blows; " + - "the effect of a ring on its wearer will intensify. Weapons and armor will also " + - "require less strength to use, and any curses on the item will be lifted."; - } + } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java index 09a7af064..6a304fbe4 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java @@ -167,7 +167,7 @@ public class CursedWand { } } while (pos == -1); if (pos == -1 || Dungeon.bossLevel()) { - GLog.w(ScrollOfTeleportation.TXT_NO_TELEPORT); + GLog.w( Messages.get(ScrollOfTeleportation.class, "no_tele") ); } else { ch.pos = pos; ch.sprite.place(ch.pos); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/TeleportationTrap.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/TeleportationTrap.java index a19bf4dd4..2f6ed4b88 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/TeleportationTrap.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/traps/TeleportationTrap.java @@ -30,7 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.items.Heap; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; -import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.TrapSprite; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.audio.Sample; @@ -65,7 +65,7 @@ public class TeleportationTrap extends Trap { if (pos == -1 || Dungeon.bossLevel()) { - GLog.w(ScrollOfTeleportation.TXT_NO_TELEPORT); + GLog.w( Messages.get(ScrollOfTeleportation.class, "no_tele") ); } else { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/messages/messages.properties b/src/com/shatteredpixel/shatteredpixeldungeon/messages/messages.properties index 56162c15a..e02875313 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/messages/messages.properties +++ b/src/com/shatteredpixel/shatteredpixeldungeon/messages/messages.properties @@ -600,18 +600,79 @@ items.rings.ringofsharpshooting.name=ring of sharpshooting items.rings.ringoftenacity.name=ring of tenacity items.rings.ringofwealth.name=ring of wealth +items.scrolls.scroll.kaunan=KAUNAN +items.scrolls.scroll.sowilo=SOWILO +items.scrolls.scroll.laguz=LAGUZ +items.scrolls.scroll.yngvi=YNGVI +items.scrolls.scroll.gyfu=GYFU +items.scrolls.scroll.raido=RAIDO +items.scrolls.scroll.isaz=ISAZ +items.scrolls.scroll.mannaz=MANNAZ +items.scrolls.scroll.naudiz=NAUDIZ +items.scrolls.scroll.berkanan=BERKANAN +items.scrolls.scroll.odal=ODAL +items.scrolls.scroll.tiwaz=TIWAZ +items.scrolls.scroll.unknown_name=scroll "%s" +items.scrolls.scroll.unknown_desc=This parchment is covered with indecipherable writing, and bears a title of rune %s. Who knows what it will do when read aloud? +items.scrolls.scroll.blinded=You can't read a scroll while blinded. +items.scrolls.scroll.cursed=Your cursed spellbook prevents you from invoking this scroll's magic! A scroll of remove curse might be strong enough to still work though... +items.scrolls.inventoryscroll.warning=Do you really want to cancel this scroll usage? It will be consumed anyway. +items.scrolls.inventoryscroll.yes=Yes, I'm positive +items.scrolls.inventoryscroll.no=No, I changed my mind items.scrolls.scrollofidentify.name=scroll of identify +items.scrolls.scrollofidentify.initials=Id +items.scrolls.scrollofidentify.inv_title=Select an item to identify +items.scrolls.scrollofidentify.it_is=It is %s +items.scrolls.scrollofidentify.desc=This scroll permanently reveals all of the secrets of a single item. items.scrolls.scrolloflullaby.name=scroll of lullaby +items.scrolls.scrolloflullaby.initials=Lu +items.scrolls.scrolloflullaby.sooth=The scroll utters a soothing melody. You feel very sleepy. +items.scrolls.scrolloflullaby.desc=Reading this scroll emits a soothing melody will lull all who hear it into a deep magical sleep. items.scrolls.scrollofmagicalinfusion.name=scroll of magical infusion +items.scrolls.scrollofmagicalinfusion.initials=MaI +items.scrolls.scrollofmagicalinfusion.inv_title=Select an item to infuse +items.scrolls.scrollofmagicalinfusion.infuse=your %s is infused with arcane energy! +items.scrolls.scrollofmagicalinfusion.desc=This scroll will infuse a weapon or armor with powerful magical energy.\n\nIn addition to being upgraded, A weapon will gain a magical enchantment, or armor will be imbued with a magical glyph.\n\nIf the item already has an enchantment or glyph, it will never be erased by this scroll. items.scrolls.scrollofmagicmapping.name=scroll of magic mapping +items.scrolls.scrollofmagicmapping.initials=MM +items.scrolls.scrollofmagicmapping.layout=You are now aware of the level layout. +items.scrolls.scrollofmagicmapping.desc=When this scroll is read, an image of crystal clarity will be etched into your memory, alerting you to the precise layout of the level and revealing all hidden secrets. The locations of items and creatures will remain unknown. items.scrolls.scrollofmirrorimage.name=scroll of mirror image +items.scrolls.scrollofmirrorimage.initials=MI +items.scrolls.scrollofmirrorimage.desc=The incantation on this scroll will create illusionary twins of the reader, which will chase their enemies. items.scrolls.scrollofpsionicblast.name=scroll of psionic blast +items.scrolls.scrollofpsionicblast.initials=PB +items.scrolls.scrollofpsionicblast.ondeath=The Psionic Blast tears your mind apart... +items.scrolls.scrollofpsionicblast.desc=This scroll contains destructive energy that can be channeled to tear apart the minds of all visible creatures. The power unleashed by the scroll will also temporarily blind, stun, and seriously harm the reader. items.scrolls.scrollofrage.name=scroll of rage +items.scrolls.scrollofrage.initials=Ra +items.scrolls.scrollofrage.roar=The scroll emits an enraging roar that echoes throughout the dungeon! +items.scrolls.scrollofrage.desc=When read aloud, this scroll will unleash a great roar that draws all enemies to the reader, and enrages nearby ones. items.scrolls.scrollofrecharging.name=scroll of recharging +items.scrolls.scrollofrecharging.initials=Re +items.scrolls.scrollofrecharging.surge=A surge of energy courses through your body, invigorating your wands! +items.scrolls.scrollofrecharging.desc=The raw magical power bound up in this parchment will, when released, charge up all the users wands over time. items.scrolls.scrollofremovecurse.name=scroll of remove curse +items.scrolls.scrollofremovecurse.initials=RC +items.scrolls.scrollofremovecurse.cleansed=Your pack glows with a cleansing light, and a malevolent energy disperses. +items.scrolls.scrollofremovecurse.not_cleansed=Your pack glows with a cleansing light, but nothing happens. +items.scrolls.scrollofremovecurse.desc=The incantation on this scroll will instantly strip from the reader's weapon, armor, rings and carried items any evil enchantments that might prevent the wearer from removing them. items.scrolls.scrollofteleportation.name=scroll of teleportation +items.scrolls.scrollofteleportation.initials=TP +items.scrolls.scrollofteleportation.tele=In a blink of an eye you were teleported to another location of the level. +items.scrolls.scrollofteleportation.no_tele=Strong magic aura of this place prevents you from teleporting! +items.scrolls.scrollofteleportation.desc=The spell on this parchment instantly transports the reader to a random location on the dungeon level. It can be used to escape a dangerous situation, but the unlucky reader might find themselves in an even more dangerous place. items.scrolls.scrollofterror.name=scroll of terror +items.scrolls.scrollofterror.initials=Te +items.scrolls.scrollofterror.none=The scroll emits a brilliant flash of red light. +items.scrolls.scrollofterror.one=The scroll emits a brilliant flash of red light and the %s flees! +items.scrolls.scrollofterror.many=The scroll emits a brilliant flash of red light and the monsters flee! +items.scrolls.scrollofterror.desc=A flash of red light will overwhelm all creatures in your field of view with terror, and they will turn and flee. Attacking a fleeing enemy will dispel the effect. items.scrolls.scrollofupgrade.name=scroll of upgrade +items.scrolls.scrollofupgrade.initials=Up +items.scrolls.scrollofupgrade.inv_title=Select an item to upgrade +items.scrolls.scrollofupgrade.looks_better=your %s certainly looks better now +items.scrolls.scrollofupgrade.desc=This scroll will upgrade a single item, improving its quality. A wand will increase in power and in number of charges; a weapon will inflict more damage or find its mark more frequently; a suit of armor will deflect additional blows; the effect of a ring on its wearer will intensify. Weapons and armor will also require less strength to use, and any curses on the item will be lifted. items.wands.cursedwand.ondeath=You were killed by your own %s items.wands.cursedwand.nothing=nothing happens