From 35a647a42a290a55e6709a80c7d965750481ec38 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 4 Jan 2025 13:37:19 -0500 Subject: [PATCH] v3.0.0: Cleric T1 buffs: - holy tome recharge speed +33% - searing light dmg +1 - shield of light adjusted, +2 now gives more armor, not more duration --- .../src/main/assets/messages/actors/actors.properties | 6 +++--- .../shatteredpixeldungeon/actors/Char.java | 5 +++-- .../actors/hero/spells/ShieldOfLight.java | 11 +++++++---- .../items/artifacts/HolyTome.java | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index f435f4718..4de5a7283 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -636,7 +636,7 @@ actors.hero.spells.recallinscription$useditemtracker.desc=The Cleric has recentl actors.hero.spells.shieldoflight.name=shield of light actors.hero.spells.shieldoflight.short_desc=Grants temporary armor against a target. -actors.hero.spells.shieldoflight.desc=The Cleric creates a thin barrier of light between themselves and an enemy, increasing their armor's block power against that enemy by 2-4 for %d turns.\n\nThis spell takes no time to cast, but cannot be used against multiple targets simultaneously. +actors.hero.spells.shieldoflight.desc=The Cleric creates a thin barrier of light between themselves and an enemy, increasing their armor's block power against that enemy by %1$d-%2$d for 4 turns.\n\nThis spell takes no time to cast, but cannot be used against multiple targets simultaneously. actors.hero.spells.shieldoflight$shieldoflighttracker.name=shield of light actors.hero.spells.shieldoflight$shieldoflighttracker.desc=A thin shield of light is standing between the Cleric and an enemy. It's not strong enough to outright block attacks, but will soften them.\n\nTurns Remaining: %s @@ -1086,9 +1086,9 @@ actors.hero.talent.satiated_spells.desc=_+1:_ Eating food causes the Cleric to g actors.hero.talent.holy_intuition.title=holy intuition actors.hero.talent.holy_intuition.desc=_+1:_ The Cleric can cast _Holy Intuition,_ a spell that reveals whether an item is cursed at the cost of _3 charges._\n\n_+2:_ The Cleric can cast _Holy Intuition,_ a spell that reveals whether an item is cursed at the cost of _2 charges._ actors.hero.talent.searing_light.title=searing light -actors.hero.talent.searing_light.desc=_+1:_ The Cleric's physical attacks on enemies illuminated by _Guiding Light_ deal _+3 damage._\n\n_+2:_ The Cleric's physical attacks on enemies illuminated by _Guiding Light_ deal _+5 damage._ +actors.hero.talent.searing_light.desc=_+1:_ The Cleric's physical attacks on enemies illuminated by _Guiding Light_ deal _+4 damage._\n\n_+2:_ The Cleric's physical attacks on enemies illuminated by _Guiding Light_ deal _+6 damage._ actors.hero.talent.shield_of_light.title=shield of light -actors.hero.talent.shield_of_light.desc=_+1:_ The Cleric can cast _Shield of Light,_ a spell that is cast instantly and grants them 2-4 armor against a target for _4 turns_ at the cost of 1 charge.\n\n_+2:_ The Cleric can cast _Shield of Light,_ a spell that is cast instantly and grants them 2-4 armor against a target for _6 turns_ at the cost of 1 charge. +actors.hero.talent.shield_of_light.desc=_+1:_ The Cleric can cast _Shield of Light,_ a spell that is cast instantly and grants them _2-4 armor_ against a target for 4 turns at the cost of 1 charge.\n\n_+2:_ The Cleric can cast _Shield of Light,_ a spell that is cast instantly and grants them _3-6 armor_ against a target for 4 turns at the cost of 1 charge. actors.hero.talent.enlightening_meal.title=Enlightening Meal actors.hero.talent.enlightening_meal.desc=_+1:_ Eating food takes the Cleric 1 turn and grants them _1 charge_ on their holy tome.\n\n_+2:_ Eating food takes the Cleric 1 turn and grants them _1.5 charges_ on their holy tome. diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java index 2171a82bd..280e04eae 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java @@ -404,7 +404,7 @@ public abstract class Char extends Actor { if (enemy.buff(GuidingLight.Illuminated.class) != null){ enemy.buff(GuidingLight.Illuminated.class).detach(); if (this == Dungeon.hero && Dungeon.hero.hasTalent(Talent.SEARING_LIGHT)){ - dmg += 1 + 2*Dungeon.hero.pointsInTalent(Talent.SEARING_LIGHT); + dmg += 2 + 2*Dungeon.hero.pointsInTalent(Talent.SEARING_LIGHT); } if (this != Dungeon.hero && Dungeon.hero.subClass == HeroSubClass.PRIEST){ enemy.damage(10, GuidingLight.INSTANCE); @@ -666,7 +666,8 @@ public abstract class Char extends Actor { ShieldOfLight.ShieldOfLightTracker shield = buff( ShieldOfLight.ShieldOfLightTracker.class); if (shield != null && shield.object == enemy.id()){ - damage -= Random.NormalIntRange(2, 4); + int min = 1 + Dungeon.hero.pointsInTalent(Talent.SHIELD_OF_LIGHT); + damage -= Random.NormalIntRange(min, 2*min); damage = Math.max(damage, 0); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/ShieldOfLight.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/ShieldOfLight.java index 52925ebe6..2a14baafc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/ShieldOfLight.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/ShieldOfLight.java @@ -70,7 +70,7 @@ public class ShieldOfLight extends TargetedClericSpell { hero.sprite.operate(hero.pos); //1 turn less as the casting is instant - Buff.prolong( hero, ShieldOfLightTracker.class, 1f + 2f*hero.pointsInTalent(Talent.SHIELD_OF_LIGHT)).object = ch.id(); + Buff.prolong( hero, ShieldOfLightTracker.class, 3f).object = ch.id(); hero.busy(); hero.sprite.operate(hero.pos); @@ -82,13 +82,17 @@ public class ShieldOfLight extends TargetedClericSpell { @Override public String desc() { - return Messages.get(this, "desc", 2+2*Dungeon.hero.pointsInTalent(Talent.SHIELD_OF_LIGHT)) + "\n\n" + Messages.get(this, "charge_cost", (int)chargeUse(Dungeon.hero)); + int min = 1 + Dungeon.hero.pointsInTalent(Talent.SHIELD_OF_LIGHT); + int max = 2*min; + return Messages.get(this, "desc", min, max) + "\n\n" + Messages.get(this, "charge_cost", (int)chargeUse(Dungeon.hero)); } public static class ShieldOfLightTracker extends FlavourBuff { public int object = 0; + private static final float DURATION = 4; + { type = buffType.POSITIVE; } @@ -100,8 +104,7 @@ public class ShieldOfLight extends TargetedClericSpell { @Override public float iconFadePercent() { - float duration = 2f + 2f* Dungeon.hero.pointsInTalent(Talent.SHIELD_OF_LIGHT); - return Math.max(0, (duration - visualcooldown()) / duration); + return Math.max(0, (DURATION - visualcooldown()) / DURATION); } private static final String OBJECT = "object"; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/HolyTome.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/HolyTome.java index f4c37715f..6e4cc87bb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/HolyTome.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/HolyTome.java @@ -286,7 +286,7 @@ public class HolyTome extends Artifact { if (Regeneration.regenOn()) { float missing = (chargeCap - charge); if (level() > 7) missing += 5*(level() - 7)/3f; - float turnsToCharge = (60 - missing); + float turnsToCharge = (45 - missing); turnsToCharge /= RingOfEnergy.artifactChargeMultiplier(target); float chargeToGain = (1f / turnsToCharge); if (!isEquipped(Dungeon.hero)){