From a034ffd14f6e52facc74c3ad284cd821374f2186 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 26 Apr 2021 23:24:59 -0400 Subject: [PATCH] v0.9.3: Balance changes to the Rogue's talents: - Light Cloak charge speed up to 13/27/40% from 10/20/30% - Enhanced lethality boosted at 2/3/4 prep tiers of charge - Bounty hunter gold increased, but now has a chance to activate that scales with prep --- core/src/main/assets/messages/actors/actors.properties | 6 +++--- .../actors/buffs/Preparation.java | 10 +++++++--- .../shatteredpixeldungeon/actors/mobs/Mob.java | 7 +++++-- .../items/artifacts/CloakOfShadows.java | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 49a5ca53c..a96651b12 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -577,16 +577,16 @@ actors.hero.talent.rogues_foresight.title=rogue's foresight actors.hero.talent.rogues_foresight.desc=_+1:_ When the Rogue is on a level with a secret room, he has a _50% chance to notice_ that the level contains a secret.\n\n_+2:_ When the Rogue is on a level with a secret room, he has a _75% chance to notice_ that the level contains a secret. actors.hero.talent.light_cloak.title=light cloak -actors.hero.talent.light_cloak.desc=_+1:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _10% speed_.\n\n_+2:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _20% speed_.\n\n_+3:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _30% speed_. +actors.hero.talent.light_cloak.desc=_+1:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _13% speed_.\n\n_+2:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _27% speed_.\n\n_+3:_ The Rogue can use his cloak of shadows when it is not equipped, but it recharges at _40% speed_. actors.hero.talent.enhanced_rings.title=enhanced rings actors.hero.talent.enhanced_rings.desc=_+1:_ When the Rogue uses an artifact, his rings gain +1 upgrade for _3 turns_.\n\n_+2:_ When the Rogue uses an artifact, his rings gain +1 upgrade for _6 turns_.\n\n_+3:_When the Rogue uses an artifact, his rings gain +1 upgrade for _9 turns_. actors.hero.talent.enhanced_lethality.title=enhanced lethality -actors.hero.talent.enhanced_lethality.desc=_+1:_ The Assassin can assassinate enemies below _4/12/25/60% health_ per level of preparation, up from 3/10/20/40%.\n\n_+2:_ The Assassin can assassinate enemies below _5/14/30/80% health_ per level of preparation, up from 3/10/20/40%.\n\n_+3:_ The Assassin can assassinate enemies below _6/16/35/100% health_ per level of preparation, up from 3/10/20/40%. +actors.hero.talent.enhanced_lethality.desc=_+1:_ The Assassin can assassinate enemies below _4/13/27/67% health_ per level of preparation, up from 3/10/20/50%.\n\n_+2:_ The Assassin can assassinate enemies below _5/17/30/83% health_ per level of preparation, up from 3/10/33/50%.\n\n_+3:_ The Assassin can assassinate enemies below _6/20/40/100% health_ per level of preparation, up from 3/10/20/50%. actors.hero.talent.assassins_reach.title=assassin's reach actors.hero.talent.assassins_reach.desc=_+1:_ The Assassin's blink range per level of preparation is increased to _1/3/4/6 tiles_, from 1/2/3/4.\n\n_+2:_ The Assassin's blink range per level of preparation is increased to _2/4/6/8 tiles_, from 1/2/3/4.\n\n_+3:_ The Assassin's blink range per level of preparation is increased to _2/5/7/10 tiles_, from 1/2/3/4. actors.hero.talent.bounty_hunter.title=bounty hunter -actors.hero.talent.bounty_hunter.desc=_+1:_ When the Assassin kills an enemy with a prepared strike they drop _10 extra gold_.\n\n_+2:_ When the Assassin kills an enemy with a prepared strike they drop _20 extra gold_.\n\n_+3:_ When the Assassin kills an enemy with a prepared strike they drop _30 extra gold_. +actors.hero.talent.bounty_hunter.desc=_+1:_ When the Assassin kills an enemy with a prepared strike they have a 25/50/75/100% chance to drop _15 extra gold_, per level of preparation.\n\n_+2:_ When the Assassin kills an enemy with a prepared strike they have a 25/50/75/100% chance to drop _30 extra gold_, per level of preparation.\n\n_+3:_ When the Assassin kills an enemy with a prepared strike they have a 25/50/75/100% chance to drop _45 extra gold_, per level of preparation. actors.hero.talent.evasive_armor.title=evasive armor actors.hero.talent.evasive_armor.desc=_+1:_ While freerunning, the Freerunner gains an additional _+1 evasion_ per excess point of strength on his armor.\n\n_+2:_ While freerunning, the Freerunner gains an additional _+2 evasion_ per excess point of strength on his armor.\n\n_+3:_ While freerunning, the Freerunner gains an additional _+3 evasion_ per excess point of strength on his armor. diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java index ce1de6d2b..5a4b3d324 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Preparation.java @@ -73,9 +73,9 @@ public class Preparation extends Buff implements ActionIndicator.Action { //1st index is prep level, 2nd is talent level private static final float[][] KOThresholds = new float[][]{ {.03f, .04f, .05f, .06f}, - {.10f, .12f, .14f, .16f}, - {.20f, .25f, .30f, .35f}, - {.40f, .60f, .80f, 1.0f} + {.10f, .13f, .17f, .20f}, + {.20f, .27f, .33f, .40f}, + {.50f, .67f, .83f, 1.0f} }; public float KOThreshold(){ @@ -145,6 +145,10 @@ public class Preparation extends Buff implements ActionIndicator.Action { super.detach(); ActionIndicator.clearAction(this); } + + public int attackLevel(){ + return AttackLevel.getLvl(turnsInvis).ordinal()+1; + } public int damageRoll( Char attacker ){ return AttackLevel.getLvl(turnsInvis).damageRoll(attacker); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java index f12205095..fcbcaee17 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java @@ -742,8 +742,11 @@ public abstract class Mob extends Char { } //bounty hunter talent - if (Dungeon.hero.buff(Talent.BountyHunterTracker.class) != null){ - Dungeon.level.drop(new Gold(10 * Dungeon.hero.pointsInTalent(Talent.BOUNTY_HUNTER)), pos).sprite.drop(); + if (Dungeon.hero.buff(Talent.BountyHunterTracker.class) != null) { + Preparation prep = Dungeon.hero.buff(Preparation.class); + if (prep != null && Random.Float() < 0.25f * prep.attackLevel()) { + Dungeon.level.drop(new Gold(15 * Dungeon.hero.pointsInTalent(Talent.BOUNTY_HUNTER)), pos).sprite.drop(); + } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java index e9b7d53eb..ca88a7ad0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java @@ -220,7 +220,7 @@ public class CloakOfShadows extends Artifact { turnsToCharge /= RingOfEnergy.artifactChargeMultiplier(target); float chargeToGain = (1f / turnsToCharge); if (!isEquipped(Dungeon.hero)){ - chargeToGain *= 0.1f*Dungeon.hero.pointsInTalent(Talent.LIGHT_CLOAK); + chargeToGain *= 0.4f*Dungeon.hero.pointsInTalent(Talent.LIGHT_CLOAK)/3f; } partialCharge += chargeToGain; }