From afb045be9160e7a41d440aebad1c0d73edb54926 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 8 Apr 2024 13:04:53 -0400 Subject: [PATCH] v2.4.0: added descriptions for monk and gladiator empowered abilities --- .../assets/messages/actors/actors.properties | 12 ++++++- .../actors/buffs/Combo.java | 33 ++++++++++++++++--- .../actors/buffs/MonkEnergy.java | 27 +++++++++++---- 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 59307fd23..e0132b65b 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -156,14 +156,19 @@ actors.buffs.combo.prompt=Select a target to attack. actors.buffs.combo.desc=The gladiator builds momentum as they land successful blows. Each attack increases the combo counter by one, but taking too long between hits will reset the combo counter to 0.\n\nBuilding combo unlocks special combo attacks that cannot miss! A different attack is unlocked at 2, 4, 6, 8, and 10 combo count. Some moves reset combo and some do not, but each move can only be used once per combo session.\n\nCurrent combo: %1$d.\n\nTurns until Combo is lost: %2$s. actors.buffs.combo$combomove.clobber.name=clobber actors.buffs.combo$combomove.clobber.desc=Knocks an enemy back 2 tiles, but deals no damage and cannot knock into pits. Increments combo by 1. +actors.buffs.combo$combomove.clobber.empower_desc=Knocks an enemy back _3 tiles, inflicts vertigo, and can knock into pits,_ but deals no damage. Increments combo by 1. actors.buffs.combo$combomove.slam.name=slam actors.buffs.combo$combomove.slam.desc=Deals %d%% (combo*20%%) of your damage blocking power as bonus damage. Resets combo when used. +actors.buffs.combo$combomove.slam.empower_desc=_Leaps up to %1$d tile(s)_ and deals %2$d%% (combo*20%%) of your damage blocking power as bonus damage. Resets combo when used. actors.buffs.combo$combomove.parry.name=parry actors.buffs.combo$combomove.parry.desc=Blocks the next attack within 1 turn when activated, and instantly retaliates to it. Resets combo if nothing is parried. +actors.buffs.combo$combomove.parry.empower_desc=Blocks _all attacks_ within 1 turn when activated, and instantly retaliates to them. Resets combo if nothing is parried. actors.buffs.combo$combomove.crush.name=crush -actors.buffs.combo$combomove.crush.desc=Deals %d%% (combo*25%%) of your melee damage to the primary target, and half that damage to all other enemies in a 7x7 AOE. Resets combo when used. +actors.buffs.combo$combomove.crush.desc=Deals %d%% (combo*25%%) damage to the primary target, and half that damage to all other enemies in a 7x7 AOE. Resets combo when used. +actors.buffs.combo$combomove.crush.empower_desc=_Leaps up to %1$d tile(s)_ and deals %2$d%% (combo*25%%) damage to the primary target, and half that damage to all other enemies in a 7x7 AOE. Resets combo when used. actors.buffs.combo$combomove.fury.name=fury actors.buffs.combo$combomove.fury.desc=Hits an enemy once for each combo you have, each hit deals 60% damage and can trigger enchantments. Resets combo when used. +actors.buffs.combo$combomove.fury.empower_desc=_Leaps up to %d tile(s)_ and hits an enemy once for each combo you have, each hit deals 60%% damage and can trigger enchantments. Resets combo when used. 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 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. @@ -286,17 +291,22 @@ actors.buffs.monkenergy.desc=As she defeats enemies, the Monk gains energy that actors.buffs.monkenergy.desc_cooldown=The Monk has recently used an ability, and must wait before using another.\n\nCurrent cooldown: %d turns. actors.buffs.monkenergy$monkability$flurry.name=flurry of blows actors.buffs.monkenergy$monkability$flurry.desc=Two instant strikes that deal %1$d-%2$d damage and ignore armor. This ability has no cooldown if the Monk just successfully attacked an enemy. +actors.buffs.monkenergy$monkability$flurry.empower_desc=Two instant strikes that deal %1$d-%2$d damage, ignore armor, _and use your weapon's enchantment._ No cooldown if the Monk just attacked. actors.buffs.monkenergy$monkability$focus.name=focus actors.buffs.monkenergy$monkability$focus.desc=The Monk takes a turn to focus, letting her parry the next physical attack made against her within 30 turns. +actors.buffs.monkenergy$monkability$focus.empower_desc=The Monk _instantly focuses,_ letting her parry the next physical attack made against her within 30 turns. actors.buffs.monkenergy$monkability$focus$focusbuff.name=focused actors.buffs.monkenergy$monkability$focus$focusbuff.desc=The Monk is focused on her surroundings, anticipating the next physical attack made against her. While focused, she is guaranteed to parry the next incoming physical attack.\n\nTurns remaining: %s. actors.buffs.monkenergy$monkability$dash.name=dash actors.buffs.monkenergy$monkability$dash.prompt=Choose a Location actors.buffs.monkenergy$monkability$dash.desc=An instant dash up to 3 tiles away. This ability can go over hazards, but not through enemies or solid terrain. +actors.buffs.monkenergy$monkability$dash.empower_desc=An instant dash up to _6 tiles_ away. This ability can go over hazards, but not through enemies or solid terrain. actors.buffs.monkenergy$monkability$dragonkick.name=dragon kick actors.buffs.monkenergy$monkability$dragonkick.desc=A devastating kick that deals %1$d-%2$d damage and ignores armor. The kick knocks the target away and paralyzes them for each tile they travel. +actors.buffs.monkenergy$monkability$dragonkick.empower_desc=A devastating kick that deals _%1$d-%2$d damage_ and ignores armor. The kick knocks _all adjacent targets_ away and paralyzes them for each tile they travel. actors.buffs.monkenergy$monkability$meditate.name=meditate actors.buffs.monkenergy$monkability$meditate.desc=The Monk focuses energy into her body for 5 turns. This clears most negative effects and grants her 8 turns of wand and artifact recharging. +actors.buffs.monkenergy$monkability$meditate.empower_desc=The Monk focuses energy into her body for 5 turns. This clears most negative effects and grants her 8 turns of wand and artifact recharging. _She also gains 80% damage resistance while meditating, and slowly heals for 20% of her missing HP._ actors.buffs.ooze.name=caustic ooze actors.buffs.ooze.heromsg=Caustic ooze eats your flesh. Wash it away! diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java index 36168585f..e539bc1a6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java @@ -227,14 +227,37 @@ public class Combo extends Buff implements ActionIndicator.Action { public String desc(int count){ switch (this){ - default: - return Messages.get(this, name() + ".desc"); + case CLOBBER: default: + if (count >= 7 && Dungeon.hero.pointsInTalent(Talent.ENHANCED_COMBO) >= 1){ + return Messages.get(this, name() + ".empower_desc"); + } else { + return Messages.get(this, name() + ".desc"); + } case SLAM: - return Messages.get(this, name() + ".desc", count*20); + if (count >= 3 && Dungeon.hero.pointsInTalent(Talent.ENHANCED_COMBO) >= 3){ + return Messages.get(this, name() + ".empower_desc", count/3, count*20); + } else { + return Messages.get(this, name() + ".desc"); + } + case PARRY: + if (count >= 9 && Dungeon.hero.pointsInTalent(Talent.ENHANCED_COMBO) >= 2){ + return Messages.get(this, name() + ".empower_desc"); + } else { + return Messages.get(this, name() + ".desc"); + } case CRUSH: - return Messages.get(this, name() + ".desc", count*25); + if (count >= 3 && Dungeon.hero.pointsInTalent(Talent.ENHANCED_COMBO) >= 3){ + return Messages.get(this, name() + ".empower_desc", count/3, count*25); + } else { + return Messages.get(this, name() + ".desc", count*25); + } + case FURY: + if (count >= 3 && Dungeon.hero.pointsInTalent(Talent.ENHANCED_COMBO) >= 3){ + return Messages.get(this, name() + ".empower_desc", count/3); + } else { + return Messages.get(this, name() + ".desc"); + } } - } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java index e7c03a53e..c84d1f170 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java @@ -263,7 +263,7 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { @Override public int indicatorColor() { if (abilitiesEmpowered(Dungeon.hero)){ - return 0x99CC33; + return 0xAAEE22; } else { return 0xA08840; } @@ -289,7 +289,11 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { } public String desc(){ - return Messages.get(this, "desc"); + if (Buff.affect(Dungeon.hero, MonkEnergy.class).abilitiesEmpowered(Dungeon.hero)){ + return Messages.get(this, "empower_desc"); + } else { + return Messages.get(this, "desc"); + } } public abstract int energyCost(); @@ -320,8 +324,14 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { @Override public String desc() { - //hero unarmed damage - return Messages.get(this, "desc", 1, Dungeon.hero.STR()-8); + if (Buff.affect(Dungeon.hero, MonkEnergy.class).abilitiesEmpowered(Dungeon.hero)){ + //hero unarmed damage + return Messages.get(this, "empower_desc", 1, Dungeon.hero.STR()-8); + } else { + //hero unarmed damage + return Messages.get(this, "desc", 1, Dungeon.hero.STR()-8); + } + } @Override @@ -535,8 +545,13 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { @Override public String desc() { - //3x hero unarmed damage - return Messages.get(this, "desc", 3, 3*(Dungeon.hero.STR()-8)); + if (Buff.affect(Dungeon.hero, MonkEnergy.class).abilitiesEmpowered(Dungeon.hero)){ + //4.5x hero unarmed damage (rounds the result) + return Messages.get(this, "empower_desc", 5, Math.round(4.5f*(Dungeon.hero.STR()-8))); + } else { + //3x hero unarmed damage + return Messages.get(this, "desc", 3, 3*(Dungeon.hero.STR()-8)); + } } @Override