diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Amok.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Amok.java index a4c974317..5e63576d2 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Amok.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Amok.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Amok extends FlavourBuff { @@ -43,15 +44,11 @@ public class Amok extends FlavourBuff { @Override public String toString() { - return "Amok"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Amok causes a state of great rage and confusion in its target.\n" + - "\n" + - "When a creature is amoked, they will attack whatever is near them, whether they be friend or foe.\n" + - "\n" + - "The amok will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barkskin.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barkskin.java index eed0789b0..007908864 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barkskin.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Barkskin.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Barkskin extends Buff { @@ -61,16 +62,11 @@ public class Barkskin extends Buff { @Override public String toString() { - return "Barkskin"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Your skin is hardened, it feels rough and solid like bark.\n" + - "\n" + - "The hardened skin increases your effective armor, allowing you to better defend against physical attack. " + - "The armor bonus will decrease by one point each turn until it expires.\n" + - "\n" + - "Your armor is currently increased by " + level +"."; + return Messages.get(this, "desc", level); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java index 09097f1e3..e315203d6 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bleeding.java @@ -23,9 +23,9 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.ResultDescriptions; import com.shatteredpixel.shatteredpixeldungeon.effects.Splash; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.shatteredpixel.shatteredpixeldungeon.utils.Utils; import com.watabou.utils.Bundle; import com.watabou.utils.PointF; import com.watabou.utils.Random; @@ -64,7 +64,7 @@ public class Bleeding extends Buff { @Override public String toString() { - return "Bleeding"; + return Messages.get(this, "name"); } @Override @@ -81,7 +81,7 @@ public class Bleeding extends Buff { if (target == Dungeon.hero && !target.isAlive()) { Dungeon.fail( ResultDescriptions.BLEEDING ); - GLog.n( "You bled to death..." ); + GLog.n( Messages.get(this, "ondeath") ); } spend( TICK ); @@ -100,11 +100,6 @@ public class Bleeding extends Buff { @Override public String desc() { - return "That wound is leaking a worrisome amount of blood.\n" + - "\n" + - "Bleeding causes damage every turn. Each turn the damage decreases by a random amount, " + - "until the bleeding eventually stops.\n" + - "\n" + - "The bleeding can currently deal " + level + " max damage."; + return Messages.get(this, "desc", level); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bless.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bless.java index d33975518..190bd03a6 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bless.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bless.java @@ -20,7 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; -import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Bless extends FlavourBuff { @@ -36,15 +36,11 @@ public class Bless extends FlavourBuff { @Override public String toString() { - return "Blessed"; + return Messages.get(this, "name"); } @Override public String desc() { - return "A great burst of focus, some say it is inspired by the gods.\n" + - "\n" + - "Blessing significantly increases accuracy and evasion, making the blessed much more effective in combat.\n" + - "\n" + - "This blessing will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Blindness.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Blindness.java index 68d3a4e7e..e0c976247 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Blindness.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Blindness.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Blindness extends FlavourBuff { @@ -42,17 +43,11 @@ public class Blindness extends FlavourBuff { @Override public String toString() { - return "Blinded"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Blinding turns the surrounding world into a dark haze.\n" + - "\n" + - "While blinded, a character can't see more than one tile infront of themselves, rendering ranged " + - "attacks useless and making it very easy to lose track of distant enemies. Additionally, a blinded " + - "hero is unable to read scrolls or books.\n" + - "\n" + - "The blindness will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java index 68a93ed3c..dd8721d1a 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import java.text.DecimalFormat; @@ -85,7 +86,9 @@ public class Buff extends Actor { //to handle the common case of showing how many turns are remaining in a buff description. protected String dispTurns(float input){ - return input == 1 ? "1 more turn" : new DecimalFormat("#.##").format(input) + " more turns"; + return input == 1 ? + Messages.get(Buff.class, "1moreturn") : + Messages.get(Buff.class, "#moreturns", new DecimalFormat("#.##").format(input)); } //creates a fresh instance of the buff and attaches that, this allows duplication. diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java index ba93293b4..0975fbd32 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Burning.java @@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.food.MysteryMeat; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements.Resistance; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; @@ -146,7 +147,7 @@ public class Burning extends Buff implements Hero.Doom { @Override public String toString() { - return "Burning"; + return Messages.get(this, "name"); } public static float duration( Char ch ) { @@ -156,14 +157,7 @@ public class Burning extends Buff implements Hero.Doom { @Override public String desc() { - return "Few things are more distressing than being engulfed in flames.\n" + - "\n" + - "Fire will deal damage every turn until it is put out by water, expires, or it is resisted. " + - "Fire can be extinquished by stepping into water, or from the splash of a shattering potion. \n" + - "\n" + - "Additionally, the fire may ignite flammable terrain or items that it comes into contact with.\n" + - "\n" + - "The burning will last for " + dispTurns(left) + ", or until it is resisted or extinquished."; + return Messages.get(this, "desc", dispTurns(left)); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Charm.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Charm.java index 826a4cf8c..b2d515e40 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Charm.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Charm.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements.Resistance; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.utils.Bundle; @@ -54,7 +55,7 @@ public class Charm extends FlavourBuff { @Override public String toString() { - return "Charmed"; + return Messages.get(this, "name"); } public static float durationFactor( Char ch ) { @@ -64,11 +65,6 @@ public class Charm extends FlavourBuff { @Override public String desc() { - return "A charm is manipulative magic that can make enemies temporarily adore eachother.\n" + - "\n" + - "Characters affected by charm are unable to directly attack the enemy they are charmed by. " + - "Attacking other targets is still possible however.\n" + - "\n" + - "The charm will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Chill.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Chill.java index 7a6e73d71..d9552004f 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Chill.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Chill.java @@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.food.FrozenCarpaccio; import com.shatteredpixel.shatteredpixeldungeon.items.food.MysteryMeat; import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; @@ -102,17 +103,11 @@ public class Chill extends FlavourBuff { @Override public String toString() { - return "Chilled"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Not quite frozen, but still much too cold.\n" + - "\n" + - "Chilled targets perform all actions more slowly, depending on how many turns are left in the effect. " + - "At it's worst, this is equivalent to being slowed.\n" + - "\n" + - "This chilled will last for " + dispTurns() + ", " + - "and is currently reducing speed by " + new DecimalFormat("#.##").format((1f-speedFactor())*100f) + "%"; + return Messages.get(this, "desc", dispTurns(), new DecimalFormat("#.##").format((1f-speedFactor())*100f)); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java index d596f420d..da84499e5 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java @@ -22,13 +22,12 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; public class Combo extends Buff { - private static String TXT_COMBO = "%d hit combo!"; - public int count = 0; @Override @@ -38,7 +37,7 @@ public class Combo extends Buff { @Override public String toString() { - return "Combo"; + return Messages.get(this, "name"); } public int hit( Char enemy, int damage ) { @@ -49,7 +48,7 @@ public class Combo extends Buff { Badges.validateMasteryCombo( count ); - GLog.p( TXT_COMBO, count ); + GLog.p( Messages.get(this, "combo", count) ); postpone( 1.41f - count / 10f ); return (int)(damage * (count - 2) / 5f); @@ -69,13 +68,9 @@ public class Combo extends Buff { @Override public String desc() { - return "Through building momentum, the gladiator deals bonus damage.\n" + - "\n" + - "Your combo will keep building with quick attacks that do not miss. " + - "The higher your combo gets, the faster your attacks will need to be. " + - "failing to land a hit quickly enough will reset the combo.\n" + - "\n" + - (count <= 2 ? "Your combo has not built up enough to give you bonus damage yet." : - "Your combo is currently giving you " + ((count - 2) * 20f) + " % bonus damage."); + return Messages.get(this, "desc") + + (count <= 2 ? + Messages.get(this, "notenough") : + Messages.get(this, "bonusdmg", ((count - 2) * 20f))); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Corruption.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Corruption.java index 55ae73fad..c242e1ef0 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Corruption.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Corruption.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; @@ -59,16 +60,11 @@ public class Corruption extends Buff { @Override public String toString() { - return "Corrupted"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Corruption seeps into the essence of a being, twisting them against their former nature.\n" + - "\n" + - "Corrupted creatures will attack and aggravate their allies, and ignore their former enemies. " + - "Corruption is damaging as well, and will slowly cause its target to succumb.\n" + - "\n" + - "Corruption is permanent, its effects only end in death."; + return Messages.get(this, "desc"); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Cripple.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Cripple.java index c9d5a574b..816bfedc6 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Cripple.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Cripple.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Cripple extends FlavourBuff { @@ -37,15 +38,11 @@ public class Cripple extends FlavourBuff { @Override public String toString() { - return "Crippled"; + return Messages.get(this, "name"); } @Override public String desc() { - return "You're pretty sure legs aren't meant to bend that way.\n" + - "\n" + - "Crippled halves movement speed, making moving a tile usually take two turns instead of one.\n" + - "\n" + - "This cripple will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Drowsy.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Drowsy.java index 5b73184f2..2344e5e27 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Drowsy.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Drowsy.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.utils.Random; @@ -54,15 +55,11 @@ public class Drowsy extends Buff { @Override public String toString() { - return "Drowsy"; + return Messages.get(this, "name"); } @Override public String desc() { - return "A magical force is making it difficult to stay awake.\n" + - "\n" + - "The hero can resist drowsiness by taking damage or by being at full health.\n" + - "\n" + - "After " + dispTurns(cooldown()+1) + ", the target will fall into a deep magical sleep."; + return Messages.get(this, "desc", dispTurns(cooldown()+1)); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/EarthImbue.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/EarthImbue.java index 4c53b58e0..55bfed4e0 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/EarthImbue.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/EarthImbue.java @@ -23,10 +23,8 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.EarthParticle; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; -import com.watabou.utils.Bundle; - -import java.util.HashSet; public class EarthImbue extends FlavourBuff { @@ -44,16 +42,12 @@ public class EarthImbue extends FlavourBuff { @Override public String toString() { - return "Imbued with Earth"; + return Messages.get(this, "name"); } @Override public String desc() { - return "You are inbued with the power of earth!\n" + - "\n" + - "All physical attacks will command roots to lock the enemy in place while the effect lasts.\n" + - "\n" + - "You are imbued for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java index 3d17762fc..fe480cb20 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java @@ -24,6 +24,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.utils.Bundle; @@ -85,17 +86,12 @@ public class FireImbue extends Buff { @Override public String toString() { - return "Imbued with Fire"; + return Messages.get(this, "name"); } @Override public String desc() { - return "You are imbued with the power of fire!\n" + - "\n" + - "All physical attacks will have a chance to light enemies ablaze. " + - "Additionally, you are completely immune to the effects of fire.\n" + - "\n" + - "You are imbued for " + dispTurns(left) + "."; + return Messages.get(this, "desc", dispTurns(left)); } { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FlavourBuff.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FlavourBuff.java index 90598c379..d250643c4 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FlavourBuff.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FlavourBuff.java @@ -20,9 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; -import java.text.DecimalFormat; - -//buff whose only logic is to wait and detach after a time. +//buff whose only internal logic is to wait and detach after a time. public class FlavourBuff extends Buff { @Override @@ -34,7 +32,6 @@ public class FlavourBuff extends Buff { //flavour buffs can all just rely on cooldown() protected String dispTurns() { //add one turn as buffs act last, we want them to end at 1 visually, even if they end at 0 internally. - float visualTurnsLeft = cooldown()+1f; - return visualTurnsLeft == 1 ? "1 more turn" : new DecimalFormat("#.##").format(visualTurnsLeft) + " more turns"; + return dispTurns(cooldown()+1f); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Frost.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Frost.java index cc9ce031b..b53d91f5e 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Frost.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Frost.java @@ -30,6 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.food.MysteryMeat; import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements.Resistance; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; @@ -108,17 +109,12 @@ public class Frost extends FlavourBuff { @Override public String toString() { - return "Frozen"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Not to be confused with freezing solid, this more benign freezing simply encases the target in ice.\n" + - "\n" + - "Freezing acts similarly to paralysis, making it impossible for the target to act. " + - "Unlike paralysis, freezing is immediately cancelled if the target takes damage, as the ice will shatter.\n" + - "\n" + - "The freeze will last for " + dispTurns() + ", or until the target takes damage.\n"; + return Messages.get(this, "desc", dispTurns()); } public static float duration( Char ch ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Fury.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Fury.java index 12be55f61..334dea552 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Fury.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Fury.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Fury extends Buff { @@ -48,15 +49,11 @@ public class Fury extends Buff { @Override public String toString() { - return "Furious"; + return Messages.get(this, "name"); } @Override public String desc() { - return "You are angry, enemies won't like you when you're angry.\n" + - "\n" + - "A great rage burns within you, increasing the damage you deal with physical attacks by 50%. \n" + - "\n" + - "This rage will last as long as you are injured below 50% health.\n"; + return Messages.get(this, "desc"); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/GasesImmunity.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/GasesImmunity.java index 27c14fba2..18037230c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/GasesImmunity.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/GasesImmunity.java @@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ParalyticGas; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.StenchGas; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.VenomGas; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class GasesImmunity extends FlavourBuff { @@ -38,7 +39,7 @@ public class GasesImmunity extends FlavourBuff { @Override public String toString() { - return "Immune to gases"; + return Messages.get(this, "name"); } { @@ -51,11 +52,6 @@ public class GasesImmunity extends FlavourBuff { @Override public String desc() { - return "some strange force is filtering out the air around you, it's not causing you any harm, but it blocks " + - "out everything but air so effectively you can't even smell anything!\n" + - "\n" + - "You are immune to the effects of all gasses while this buff lasts.\n" + - "\n" + - "You will be immune for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Hunger.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Hunger.java index e03f21287..38850b7ce 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Hunger.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Hunger.java @@ -26,14 +26,12 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.ResultDescriptions; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass; -import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.Artifact; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.HornOfPlenty; -import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Bundle; -import com.watabou.utils.Random; public class Hunger extends Buff implements Hero.Doom { @@ -42,10 +40,6 @@ public class Hunger extends Buff implements Hero.Doom { public static final float HUNGRY = 260f; public static final float STARVING = 360f; - private static final String TXT_HUNGRY = "You are hungry."; - private static final String TXT_STARVING = "You are starving!"; - private static final String TXT_DEATH = "You starved to death..."; - private float level; private float partialDamage; @@ -93,7 +87,7 @@ public class Hunger extends Buff implements Hero.Doom { boolean statusUpdated = false; if (newLevel >= STARVING) { - GLog.n( TXT_STARVING ); + GLog.n( Messages.get(this, "onstarving") ); hero.resting = false; hero.damage( 1, this ); statusUpdated = true; @@ -102,7 +96,7 @@ public class Hunger extends Buff implements Hero.Doom { } else if (newLevel >= HUNGRY && level < HUNGRY) { - GLog.w( TXT_HUNGRY ); + GLog.w( Messages.get(this, "onhungry") ); statusUpdated = true; } @@ -131,7 +125,7 @@ public class Hunger extends Buff implements Hero.Doom { Artifact.ArtifactBuff buff = target.buff( HornOfPlenty.hornRecharge.class ); if (buff != null && buff.isCursed()){ energy *= 0.67f; - GLog.n("The cursed horn steals some of the food energy as you eat."); + GLog.n( Messages.get(this, "cursedhorn") ); } if (!Dungeon.isChallenged(Challenges.NO_FOOD)) @@ -169,9 +163,9 @@ public class Hunger extends Buff implements Hero.Doom { @Override public String toString() { if (level < STARVING) { - return "Hungry"; + return Messages.get(this, "hungry"); } else { - return "Starving"; + return Messages.get(this, "starving"); } } @@ -179,16 +173,12 @@ public class Hunger extends Buff implements Hero.Doom { public String desc() { String result; if (level < STARVING) { - result = "You can feel your stomach calling out for food, but it's not too urgent yet.\n\n"; + result = Messages.get(this, "desc_intro_hungry"); } else { - result = "You're so hungry it hurts.\n\n"; + result = Messages.get(this, "desc_intro_starving"); } - result += "Hunger slowly increases as you spend time in the dungeon, eventually you will begin to starve. " + - "While starving you will slowly lose health instead of regenerating it.\n" + - "\n" + - "Rationing is important! If you have health to spare starving isn't a bad idea if it means there will " + - "be more food later. Effective rationing can make food last a lot longer!\n\n"; + result += Messages.get(this, "desc"); return result; } @@ -199,6 +189,6 @@ public class Hunger extends Buff implements Hero.Doom { Badges.validateDeathFromHunger(); Dungeon.fail( ResultDescriptions.HUNGER ); - GLog.n( TXT_DEATH ); + GLog.n( Messages.get(this, "ondeath") ); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Invisibility.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Invisibility.java index d7866964c..def3f0766 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Invisibility.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Invisibility.java @@ -24,6 +24,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourglass; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; @@ -65,17 +66,12 @@ public class Invisibility extends FlavourBuff { @Override public String toString() { - return "Invisible"; + return Messages.get(this, "name"); } @Override public String desc() { - return "You are completely blended into the surrounding terrain, making you impossible to see.\n" + - "\n" + - "While 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" + - "\n" + - "This invisibility will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } public static void dispel() { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Levitation.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Levitation.java index 24e01b8e9..73a96c712 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Levitation.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Levitation.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; @@ -60,17 +61,11 @@ public class Levitation extends FlavourBuff { @Override public String toString() { - return "Levitating"; + return Messages.get(this, "name"); } @Override public String desc() { - return "A magical force is levitating you over the ground, making you feel weightless.\n" + - "\n " + - "While levitating you ignore all ground-based effects. Traps won't trigger, water won't put out fire, " + - "plants won't be trampled, roots will miss you, and you will hover right over pits. " + - "Be careful, as all these things can come into effect the second the levitation ends!\n" + - "\n" + - "You are levitating for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Light.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Light.java index 4c2bc2603..98f6e992b 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Light.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Light.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; @@ -63,15 +64,11 @@ public class Light extends FlavourBuff { @Override public String toString() { - return "Illuminated"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Even in the Darkest Dungeon, a steady light at your side is always comforting.\n" + - "\n" + - "Light helps keep darkness at bay, allowing you to see a reasonable distance despite the environment.\n" + - "\n" + - "The light will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/LockedFloor.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/LockedFloor.java index 8fee16917..567a44a8a 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/LockedFloor.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/LockedFloor.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.utils.Bundle; @@ -71,18 +72,11 @@ public class LockedFloor extends Buff { @Override public String toString() { - return "Floor is Locked"; + return Messages.get(this, "name"); } @Override public String desc() { - return "The current floor is locked, and you are unable to leave it!\n" + - "\n" + - "While a floor is locked, you will not gain hunger or take damage from starving. In addition, " + - "if you do not work towards defeating this floor's boss, passive regeneration effects will also stop.\n " + - "\n" + - "Additionally, if you are revived by an unblessed ankh while the floor is locked, then it will reset.\n" + - "\n" + - "Kill this floor's boss to break the lock.\n"; + return Messages.get(this, "desc"); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MagicalSleep.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MagicalSleep.java index cb16b2741..2c8d6af44 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MagicalSleep.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MagicalSleep.java @@ -23,13 +23,13 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; public class MagicalSleep extends Buff { private static final float STEP = 1f; - public static final float SWS = 1.5f; @Override public boolean attachTo( Char target ) { @@ -37,11 +37,11 @@ public class MagicalSleep extends Buff { if (target instanceof Hero) if (target.HP == target.HT) { - GLog.i("You are too healthy, and resist the urge to sleep."); + GLog.i(Messages.get(this, "toohealthy")); detach(); return true; } else { - GLog.i("You fall into a deep magical sleep."); + GLog.i(Messages.get(this, "fallasleep")); } else if (target instanceof Mob) ((Mob)target).state = ((Mob)target).SLEEPING; @@ -60,7 +60,7 @@ public class MagicalSleep extends Buff { target.HP = Math.min(target.HP+1, target.HT); ((Hero) target).resting = true; if (target.HP == target.HT) { - GLog.p("You wake up feeling refreshed and healthy."); + GLog.p(Messages.get(this, "wakeup")); detach(); } } @@ -84,15 +84,11 @@ public class MagicalSleep extends Buff { @Override public String toString() { - return "Magical Sleep"; + return Messages.get(this, "name"); } @Override public String desc() { - return "This character has fallen into a deep magical sleep which they will not wake from naturally.\n" + - "\n" + - "Magical sleep is similar to regular sleep, except that only damage will cause the target to wake up. \n" + - "\n" + - "For the hero, magical sleep has some restorative properties, allowing them to rapidly heal while resting."; + return Messages.get(this, "desc"); } } \ No newline at end of file diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MindVision.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MindVision.java index 0a38a94d9..256ccada0 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MindVision.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MindVision.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class MindVision extends FlavourBuff { @@ -40,7 +41,7 @@ public class MindVision extends FlavourBuff { @Override public String toString() { - return "Mind vision"; + return Messages.get(this, "name"); } @Override @@ -51,12 +52,6 @@ public class MindVision extends FlavourBuff { @Override public String desc() { - return "Somehow you are able to see all creatures on this floor through your mind. It's a weird feeling.\n" + - "\n" + - "All characters on this floor are visible to you as long as you have mind vision. " + - "Seeing a creature through mind vision counts as it being seen or nearby for " + - "the purposes of many magical effects.\n" + - "\n" + - "The mind vision will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java index 569b7f9bd..4c52a457b 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java @@ -23,14 +23,12 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.ResultDescriptions; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.shatteredpixel.shatteredpixeldungeon.utils.Utils; import com.watabou.utils.Random; public class Ooze extends Buff { - - private static final String TXT_HERO_KILLED = "%s killed you..."; { type = buffType.NEGATIVE; @@ -43,16 +41,12 @@ public class Ooze extends Buff { @Override public String toString() { - return "Caustic ooze"; + return Messages.get(this, "name"); } @Override public String desc() { - return "This sticky acid clings to flesh, slowly melting it away.\n" + - "\n" + - "Ooze will deal consistent damage until it is washed off in water.\n" + - "\n" + - "Ooze does not expire on its own and must be removed with water."; + return Messages.get(this, "desc"); } @Override @@ -64,7 +58,7 @@ public class Ooze extends Buff { target.damage( 1, this ); if (!target.isAlive() && target == Dungeon.hero) { Dungeon.fail( ResultDescriptions.OOZE ); - GLog.n( TXT_HERO_KILLED, toString() ); + GLog.n( Messages.get(this, "ondeath") ); } spend( TICK ); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Paralysis.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Paralysis.java index d97c4d32e..e66d83682 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Paralysis.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Paralysis.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements.Resistance; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; @@ -63,17 +64,12 @@ public class Paralysis extends FlavourBuff { @Override public String toString() { - return "Paralysed"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Oftentimes the worst thing to do is nothing at all.\n" + - "\n" + - "Paralysis completely halts all actions, forcing the target to wait until the effect wears off. " + - "The pain from taking damage can also cause characters to snap out of paralysis.\n" + - "\n" + - "This paralysis will last for " + dispTurns() + ", or until it is resisted through pain.\n"; + return Messages.get(this, "desc", dispTurns()); } public static float duration( Char ch ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Poison.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Poison.java index b8200c848..4492eaf1f 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Poison.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Poison.java @@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PoisonParticle; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements.Resistance; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Bundle; @@ -66,16 +67,12 @@ public class Poison extends Buff implements Hero.Doom { @Override public String toString() { - return "Poisoned"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Poison works its way through the body, slowly impairing its internal functioning.\n" + - "\n" + - "Poison deals damage each turn proportional to how long until it expires.\n" + - "\n" + - "This poison will last for " + dispTurns(left) + "."; + return Messages.get(this, "desc", dispTurns(left)); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Recharging.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Recharging.java index 819a23d90..a6616bcc5 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Recharging.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Recharging.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Recharging extends FlavourBuff { @@ -31,7 +32,7 @@ public class Recharging extends FlavourBuff { @Override public String toString() { - return "Recharging"; + return Messages.get(this, "name"); } //want to process partial turns for this buff, and not count it when it's expiring. @@ -45,10 +46,6 @@ public class Recharging extends FlavourBuff { @Override public String desc() { - return "Energy is coursing through you, improving the rate that your wands and staffs charge.\n" + - "\n" + - "Each turn this buff will increase current charge by one quarter, in addition to regular recharge. \n" + - "\n" + - "The recharging will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Roots.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Roots.java index e2ed136e2..6ea5f2bfb 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Roots.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Roots.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Roots extends FlavourBuff { @@ -52,15 +53,11 @@ public class Roots extends FlavourBuff { @Override public String toString() { - return "Rooted"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Roots(magical or natural) grab at the feet, forcing them down to the ground.\n" + - "\n" + - "Roots lock a target in place, making it impossible for them to move, but other actions are not affected.\n" + - "\n" + - "The roots will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Shadows.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Shadows.java index 9e4978566..c72ef0fcc 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Shadows.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Shadows.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; @@ -97,17 +98,11 @@ public class Shadows extends Invisibility { @Override public String toString() { - return "Shadowmelded"; + return Messages.get(this, "name"); } @Override public String desc() { - return "You are blended into the shadows around you, granting you invisibility and slowing your metabolism.\n" + - "\n" + - "While you are invisible enemies are unable to attack or follow you. " + - "Most physical attacks and magical effects (such as scrolls and wands) will immediately cancel invisibility. " + - "Additionally, while shadowmelded, your rate of hunger is slowed.\n" + - "\n" + - "You will remain shadowmelded until you leave the shadows or an enemy comes into contact with you."; + return Messages.get(this, "desc"); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Slow.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Slow.java index 86060b848..a17e4a9f1 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Slow.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Slow.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements.Resistance; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Slow extends FlavourBuff { @@ -39,16 +40,12 @@ public class Slow extends FlavourBuff { @Override public String toString() { - return "Slowed"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Slowing magic affects the target's rate of time, to them everything is moving super-fast.\n" + - "\n" + - "A slowed character performs all actions in twice the amount of time they would normally take.\n" + - "\n" + - "This slow will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } public static float duration( Char ch ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java index 8bd3d1ca9..3740108e5 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SnipersMark.java @@ -20,8 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; -import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; -import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.utils.Bundle; @@ -51,15 +50,11 @@ public class SnipersMark extends FlavourBuff { @Override public String toString() { - return "Sniper's mark"; + return Messages.get(this, "name"); } @Override public String desc() { - Char ch = (Char)Actor.findById(object); - return "The sniper is honed in " + ((ch == null) ? "on a lost target" : "on the nearby " + ch.name ) + ", " + - "gaining increased attack speed and armor penetration while attacking it.\n" + - "\n" + - "The sniper will remain honed in until she switches targets, stops attacking, or the target dies."; + return Messages.get(this, "desc"); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SoulMark.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SoulMark.java index f1a2da8a2..4c6064e33 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SoulMark.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/SoulMark.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; @@ -44,14 +45,11 @@ public class SoulMark extends FlavourBuff { @Override public String toString() { - return "Soul Marked"; + return Messages.get(this, "name"); } @Override public String desc() { - return "The warlock has tapped into the soul of this creature. " + - "He will heal and satisfy his hunger as it takes physical damage.\n" + - "\n" + - "This mark will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Terror.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Terror.java index 3987c9cf1..54b86813c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Terror.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Terror.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.utils.Bundle; @@ -55,17 +56,12 @@ public class Terror extends FlavourBuff { @Override public String toString() { - return "Terrified"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Terror is manipulative magic which forces its target into an uncontrollable panic.\n" + - "\n" + - "Terrified characters are forced to run away from their opponent, trying to put as many doors and " + - "walls between them as possible. The shock of pain is enough to break this effect, however.\n" + - "\n" + - "This terror will last for " + dispTurns() + ", or until the target takes damage."; + return Messages.get(this, "desc", dispTurns()); } public static void recover( Char target ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java index 3df48f702..3df7bd88e 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.utils.Bundle; @@ -73,17 +74,12 @@ public class ToxicImbue extends Buff { @Override public String toString() { - return "Imbued with Toxicity"; + return Messages.get(this, "name"); } @Override public String desc() { - return "You are imbued with poisonous energy!\n" + - "\n" + - "As you move around toxic gas will constantly billow forth from you, damaging your enemies. " + - "You are immune to toxic gas and poison for the duration of the effect.\n" + - "\n" + - "You are imbued for " + dispTurns(left) + "."; + return Messages.get(this, "desc", dispTurns(left)); } { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Venom.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Venom.java index b644d0dd0..d7f8216b1 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Venom.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Venom.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.watabou.utils.Bundle; @@ -60,16 +61,12 @@ public class Venom extends Poison implements Hero.Doom { @Override public String toString() { - return "Venomed"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Venom is a extremely caustic and dangerous poison.\n" + - "\n" + - "Unlike poison, whose damage lowers over time, venom does increasing damage the longer it stays on a target.\n" + - "\n" + - "This venom will last for " + dispTurns(left) + ", and is currently dealing " + damage + " damage."; + return Messages.get(this, "desc", dispTurns(left), damage); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Vertigo.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Vertigo.java index 63a739317..d8944b6f8 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Vertigo.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Vertigo.java @@ -18,6 +18,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements.Resistance; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Vertigo extends FlavourBuff { @@ -35,17 +36,12 @@ public class Vertigo extends FlavourBuff { @Override public String toString() { - return "Vertigo"; + return Messages.get(this, "name"); } @Override public String desc() { - return "Walking in a straight line can be difficult when the whole world is spinning.\n" + - "\n" + - "While under the effects of vertigo, characters who attempt to move will go in a random direction, " + - "instead of the one they intended to go in. \n" + - "\n" + - "This Vertigo effect with last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } public static float duration( Char ch ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Weakness.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Weakness.java index 753ca643f..28954f294 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Weakness.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Weakness.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements.Resistance; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Weakness extends FlavourBuff { @@ -40,7 +41,7 @@ public class Weakness extends FlavourBuff { @Override public String toString() { - return "Weakened"; + return Messages.get(this, "name"); } @Override @@ -69,10 +70,6 @@ public class Weakness extends FlavourBuff { @Override public String desc() { - return "Your gear suddenly feels a lot heavier.\n" + - "\n" + - "Weakening magic is affecting you, reducing your effective strength by 2 points.\n" + - "\n" + - "This weakness will last for " + dispTurns() + "."; + return Messages.get(this, "desc", dispTurns()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java b/src/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java index 3e047a766..97f933448 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/messages/Messages.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.messages; +import java.util.Locale; import java.util.ResourceBundle; public class Messages { @@ -27,24 +28,25 @@ public class Messages { private static ResourceBundle strings = ResourceBundle.getBundle("com.shatteredpixel.shatteredpixeldungeon.messages.messages"); - public static String get(String key){ - return get(null, key); + public static String get(String key, Object...args){ + return get(null, key, args); } //stuffing static variables with results from this means the app needs to restart for locale changes to take effect. //so be careful with where you're calling this, never assign its result to a static value (including enum variables) - public static String get(Object o, String k){ - return get(o.getClass(), k); + public static String get(Object o, String k, Object...args){ + return get(o.getClass(), k, args); } - public static String get(Class c, String k){ + public static String get(Class c, String k, Object...args){ String key; if (c != null){ key = c.getName().replace("com.shatteredpixel.shatteredpixeldungeon.", ""); key += "." + k; } else key = k; - return strings.getString(key.toLowerCase()); + if (args.length > 0) return String.format(Locale.ENGLISH, strings.getString(key.toLowerCase()), args); + else return strings.getString(key.toLowerCase()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/messages/messages.properties b/src/com/shatteredpixel/shatteredpixeldungeon/messages/messages.properties index ffdf5353e..b9d2c450c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/messages/messages.properties +++ b/src/com/shatteredpixel/shatteredpixeldungeon/messages/messages.properties @@ -12,7 +12,100 @@ actors.blobs.waterofhealth.desc=Power of health radiates from the water of this actors.blobs.wateroftransmutation.desc=Power of change radiates from the water of this well. Throw an item into the well to turn it into something else. actors.blobs.web.desc=Everything is covered with a thick web here. - +actors.buffs.amok.name=Amok +actors.buffs.amok.desc=Amok causes a state of great rage and confusion in its target.\n\nWhen a creature is amoked, they will attack whatever is near them, whether they be friend or foe.\n\nThe amok will last for %s. +actors.buffs.barkskin.name=Barkskin +actors.buffs.barkskin.desc=Your skin is hardened, it feels rough and solid like bark.\n\nThe hardened skin increases your effective armor, allowing you to better defend against physical attack. The armor bonus will decrease by one point each turn until it expires.\n\nYour armor is currently increased by %d. +actors.buffs.bleeding.name=Bleeding +actors.buffs.bleeding.ondeath=You bled to death... +actors.buffs.bleeding.desc=That wound is leaking a worrisome amount of blood.\n\nBleeding causes damage every turn. Each turn the damage decreases by a random amount, until the bleeding eventually stops.\n\nThe bleeding can currently deal %d max damage. +actors.buffs.bless.name=Blessed +actors.buffs.bless.desc=A great burst of focus, some say it is inspired by the gods.\n\nBlessing significantly increases accuracy and evasion, making the blessed much more effective in combat.\n\nThis blessing will last for %s. +actors.buffs.blindness.name=Blinded +actors.buffs.blindness.desc=Blinding turns the surrounding world into a dark haze.\n\nWhile blinded, a character can't see more than one tile infront of themselves, rendering ranged attacks useless and making it very easy to lose track of distant enemies. Additionally, a blinded hero is unable to read scrolls or books.\n\nThe blindness will last for %s. +actors.buffs.buff.1moreturn=1 more turn +actors.buffs.buff.#moreturns=%s more turns +actors.buffs.burning.name=Burning +actors.buffs.burning.desc=Few things are more distressing than being engulfed in flames.\n\nFire will deal damage every turn until it is put out by water, expires, or it is resisted.Fire can be extinquished by stepping into water, or from the splash of a shattering potion.\n\nAdditionally, the fire may ignite flammable terrain or items that it comes into contact with.\n\nThe burning will last for %s, or until it is resisted or extinquished. +actors.buffs.charm.name=Charmed +actors.buffs.charm.desc=A charm is manipulative magic that can make enemies temporarily adore eachother.\n\nCharacters affected by charm are unable to directly attack the enemy they are charmed by. Attacking other targets is still possible however.\n\nThe charm will last for %s. +actors.buffs.chill.name=Chilled +actors.buffs.chill.desc=Not quite frozen, but still much too cold.\n\nChilled targets perform all actions more slowly, depending on how many turns are left in the effect. At it's worst, this is equivalent to being slowed.\n\nThis chill will last for %s, and is currently reducing speed by %s%% +actors.buffs.combo.name=Combo +actors.buffs.combo.combo=%d hit combo! +actors.buffs.combo.desc="Through building momentum, the gladiator deals bonus damage.\n\nYour combo will keep building with quick attacks that do not miss. The higher your combo gets, the faster your attacks will need to be. failing to land a hit quickly enough will reset the combo.\n\n" +actors.buffs.combo.notenough=Your combo has not built up enough to give you bonus damage yet. +actors.buffs.combo.bonusdmg=Your combo is currently giving you %f%% bonus damage. +actors.buffs.corruption.name=Corrupted +actors.buffs.corruption.desc=Corruption seeps into the essence of a being, twisting them against their former nature.\n\nCorrupted creatures will attack and aggravate their allies, and ignore their former enemies. Corruption is damaging as well, and will slowly cause its target to succumb.\n\nCorruption is permanent, its effects only end in death. +actors.buffs.cripple.name=Crippled +actors.buffs.cripple.desc=You're pretty sure legs aren't meant to bend that way.\n\nCrippled halves movement speed, making moving a tile usually take two turns instead of one.\n\nThis cripple will last for %s. +actors.buffs.drowsy.name=Drowsy +actors.buffs.drowsy.desc=A magical force is making it difficult to stay awake.\n\nThe hero can resist drowsiness by taking damage or by being at full health.\n\nAfter %s, the target will fall into a deep magical sleep. +actors.buffs.earthimbue.name=Imbued with Earth +actors.buffs.earthimbue.desc=You are inbued with the power of earth!\n\nAll physical attacks will command roots to lock the enemy in place while the effect lasts.\n\nYou are imbued for %s. +actors.buffs.fireimbue.name=Imbued with Fire +actors.buffs.fireimbue.desc=You are imbued with the power of fire!\n\nAll physical attacks will have a chance to light enemies ablaze. Additionally, you are completely immune to the effects of fire.\n\nYou are imbued for %s. +actors.buffs.frost.name=Frozen +actors.buffs.frost.desc=Not to be confused with freezing solid, this more benign freezing simply encases the target in ice.\n\nFreezing acts similarly to paralysis, making it impossible for the target to act. Unlike paralysis, freezing is immediately cancelled if the target takes damage, as the ice will shatter.\n\nThe freeze will last for %s, or until the target takes damage. +actors.buffs.fury.name=Furious +actors.buffs.fury.desc=You are angry, enemies won't like you when you're angry.\n\nA great rage burns within you, increasing the damage you deal with physical attacks by 50%.\n\nThis rage will last as long as you are injured below 50% health. +actors.buffs.gasesimmunity.name=Immune to gases +actors.buffs.gasesimmunity.desc=Some strange force is filtering out the air around you, it's not causing you any harm, but it blocks out everything but air so effectively you can't even smell anything!\n\n"You are immune to the effects of all gasses while this buff lasts.\n\nYou will be immune for %s. +actors.buffs.hunger.hungry=Hungry +actors.buffs.hunger.starving=Starving +actors.buffs.hunger.onhungry=You are hungry. +actors.buffs.hunger.onstarving=You are starving! +actors.buffs.hunger.ondeath=You starved to death... +actors.buffs.hunger.cursedhorn=The cursed horn steals some of the food energy as you eat. +actors.buffs.hunger.desc_intro_hungry=You can feel your stomach calling out for food, but it's not too urgent yet.\n\n +actors.buffs.hunger.desc_intro_starving=You're so hungry it hurts.\n\n +actors.buffs.hunger.desc=Hunger slowly increases as you spend time in the dungeon, eventually you will begin to starve. While starving you will slowly lose health instead of regenerating it.\n\nRationing is important! If you have health to spare starving isn't a bad idea if it means there will be more food later. Effective rationing can make food last a lot longer! +actors.buffs.invisibility.name=Invisible +actors.buffs.invisibility.desc=You are completely blended into the surrounding terrain, making you impossible to see.\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\nThis invisibility will last for %s. +actors.buffs.levitation.name=Levitating +actors.buffs.levitation.desc=A magical force is levitating you over the ground, making you feel weightless.\n\nWhile levitating you ignore all ground-based effects. Traps won't trigger, water won't put out fire, plants won't be trampled, roots will miss you, and you will hover right over pits. Be careful, as all these things can come into effect the second the levitation ends!\n\nYou are levitating for %s. +actors.buffs.light.name=Illuminated +actors.buffs.light.desc=Even in the Darkest Dungeon, a steady light at your side is always comforting.\n\nLight helps keep darkness at bay, allowing you to see a reasonable distance despite the environment.\n\nThe light will last for %s. +actors.buffs.lockedfloor.name=Floor is Locked +actors.buffs.lockedfloor.desc=The current floor is locked, and you are unable to leave it!\n\nWhile a floor is locked, you will not gain hunger or take damage from starving. In addition, if you do not work towards defeating this floor's boss, passive regeneration effects will also stop.\n\nAdditionally, if you are revived by an unblessed ankh while the floor is locked, then it will reset.\n\nKill this floor's boss to break the lock. +actors.buffs.magicalsleep.name=Magical Sleep +actors.buffs.magicalsleep.toohealthy=You are too healthy, and resist the urge to sleep. +actors.buffs.magicalsleep.fallasleep=You fall into a deep magical sleep. +actors.buffs.magicalsleep.wakeup=You wake up feeling refreshed and healthy. +actors.buffs.magicalsleep.desc=This character has fallen into a deep magical sleep which they will not wake from naturally.\n\nMagical sleep is similar to regular sleep, except that only damage will cause the target to wake up.\n\nFor the hero, magical sleep has some restorative properties, allowing them to rapidly heal while resting. +actors.buffs.mindvision.name=Mind vision +actors.buffs.mindvision.desc=Somehow you are able to see all creatures on this floor through your mind. It's a weird feeling.\n\nAll characters on this floor are visible to you as long as you have mind vision. Seeing a creature through mind vision counts as it being seen or nearby for the purposes of many magical effects.\n\nThe mind vision will last for %s. +actors.buffs.ooze.name=Caustic ooze +actors.buffs.ooze.ondeath=You melt away... +actors.buffs.ooze.desc=This sticky acid clings to flesh, slowly melting it away.\n\nOoze will deal consistent damage until it is washed off in water.\n\nOoze does not expire on its own and must be removed with water. +actors.buffs.paralysis.name=Paralysed +actors.buffs.paralysis.desc=Oftentimes the worst thing to do is nothing at all.\n\nParalysis completely halts all actions, forcing the target to wait until the effect wears off. The pain from taking damage can also cause characters to snap out of paralysis.\n\nThis paralysis will last for %s, or until it is resisted through pain. +actors.buffs.poison.name=Poisoned +actors.buffs.poison.ondeath=You died from poison... +actors.buffs.poison.desc=Poison works its way through the body, slowly impairing its internal functioning.\n\nPoison deals damage each turn proportional to how long until it expires.\n\nThis poison will last for %s. +actors.buffs.recharging.name=Recharging +actors.buffs.recharging.desc=Energy is coursing through you, improving the rate that your wands and staffs charge.\n\nEach turn this buff will increase current charge by one quarter, in addition to regular recharge.\n\nThe recharging will last for %s. +actors.buffs.roots.name=Rooted +actors.buffs.roots.desc=Roots(magical or natural) grab at the feet, forcing them down to the ground.\n\nRoots lock a target in place, making it impossible for them to move, but other actions are not affected.\n\nThe roots will last for %s. +actors.buffs.shadows.name=Shadowmelded +actors.buffs.shadows.desc=You are blended into the shadows around you, granting you invisibility and slowing your metabolism.\n\nWhile you are invisible enemies are unable to attack or follow you. Most physical attacks and magical effects (such as scrolls and wands) will immediately cancel invisibility. Additionally, while shadowmelded, your rate of hunger is slowed.\n\nYou will remain shadowmelded until you leave the shadows or an enemy comes into contact with you. +actors.buffs.slow.name=Slowed +actors.buffs.slow.desc=Slowing magic affects the target's rate of time, to them everything is moving super-fast.\n\nA slowed character performs all actions in twice the amount of time they would normally take.\n\nThis slow will last for %s. +actors.buffs.snipersmark.name=Sniper's mark +actors.buffs.snipersmark.desc=The sniper is honed in on a nearby target, gaining increased attack speed and armor penetration while attacking it.\n\nThe sniper will remain honed in until she switches targets, stops attacking, or the target dies. +actors.buffs.soulmark.name=Soul Marked +actors.buffs.soulmark.desc=The warlock has tapped into the soul of this creature. He will heal and satisfy his hunger as it takes physical damage.\n\nThis mark will last for %s. +actors.buffs.terror.name=Terrified +actors.buffs.terror.desc=Terror is manipulative magic which forces its target into an uncontrollable panic.\n\nTerrified characters are forced to run away from their opponent, trying to put as many doors and walls between them as possible. The shock of pain is enough to break this effect, however.\n\nThis terror will last for %s, or until the target takes damage. +actors.buffs.toxicimbue.name=Imbued with Toxicity +actors.buffs.toxicimbue.desc=You are imbued with poisonous energy!\n\nAs you move around toxic gas will constantly billow forth from you, damaging your enemies. You are immune to toxic gas and poison for the duration of the effect.\n\nYou are imbued for %s. +actors.buffs.venom.name=Venomed +actors.buffs.venom.desc=Venom is a extremely caustic and dangerous poison.\n\nUnlike poison, whose damage lowers over time, venom does increasing damage the longer it stays on a target.\n\nThis venom will last for %s, and is currently dealing %d damage. +actors.buffs.vertigo.name=Vertigo +actors.buffs.vertigo.desc=Walking in a straight line can be difficult when the whole world is spinning.\n\nWhile under the effects of vertigo, characters who attempt to move will go in a random direction, instead of the one they intended to go in.\n\nThis Vertigo effect with last for %s. +actors.buffs.weakness.name=Weakened +actors.buffs.weakness.desc=Your gear suddenly feels a lot heavier.\n\nWeakening magic is affecting you, reducing your effective strength by 2 points.\n\nThis weakness will last for %s. actors.hero.hero.leave=One does not simply leave Pixel Dungeon. actors.hero.hero.level_up=level up! @@ -74,4 +167,4 @@ actors.hero.herosubclass.sniper_desc=The _Sniper_ is able to detect weak points actors.hero.herosubclass.warden=warden actors.hero.herosubclass.warden_desc=Having a strong connection with forces of nature allows the _Warden_ to gain additional health from dew, armor from trampling grass, and seeds and dew from plants. -items.bags.bag.name=backpack \ No newline at end of file +items.bags.bag.name=backpack