v3.0.0: divine intervention spell adjusted

This commit is contained in:
Evan Debenham
2025-01-04 14:40:41 -05:00
parent 4f18f605fd
commit 1b17ceadf2
3 changed files with 23 additions and 9 deletions

View File

@@ -567,7 +567,7 @@ actors.hero.spells.divinesense$divinesensetracker.desc=The Cleric is temporarily
actors.hero.spells.divineintervention.name=divine intervention
actors.hero.spells.divineintervention.short_desc=Massive shield boost to Cleric and allies.
actors.hero.spells.divineintervention.desc=The Cleric pours a tremendous amount of power from their tome into themselves and allies, boosting everyone to %d shielding. This spell's incredible defensive power is weighed against its very high charge cost.\n\nJust like other shielding granted by ascended form, this shielding does not decay normally, but will immediately expire when ascended form ends.
actors.hero.spells.divineintervention.desc=The Cleric pours a tremendous amount of power from their tome into themselves and allies, boosting everyone to %1$d shielding and extending Ascended Form by %2$d turns. This spell's incredible defensive power is weighed against its very high charge cost.\n\nJust like other shielding granted by ascended form, this shielding does not decay normally, but will immediately expire when ascended form ends.
actors.hero.spells.flash.name=flash
actors.hero.spells.flash.prompt=Choose a location
@@ -1121,7 +1121,7 @@ actors.hero.talent.paladint3c.title=Unknown
actors.hero.talent.paladint3c.desc=This talent hasn't been implemented yet, it currently does nothing.
actors.hero.talent.divine_intervention.title=divine intervention
actors.hero.talent.divine_intervention.desc=_+1:_ While in Ascended Form, the Cleric can cast _Divine Intervention,_ which boosts the Cleric and all allies up to _200 shielding._\n\n_+2:_ While in Ascended Form, the Cleric can cast _Divine Intervention,_ which boosts the Cleric and all allies up to _250 shielding._\n\n_+3:_ While in Ascended Form, the Cleric can cast _Divine Intervention,_ which boosts the Cleric and all allies up to _300 shielding._\n\n_+4:_ While in Ascended Form, the Cleric can cast _Divine Intervention,_ which boosts the Cleric and all allies up to _350 shielding._\n\nDivine Intervention costs a whopping 6 tome charges, and can only be cast once in the same ascended form.
actors.hero.talent.divine_intervention.desc=_+1:_ While in Ascended Form, the Cleric can cast _Divine Intervention,_ which boosts the Cleric and all allies up to _150 shielding_ and extends Ascended Form by _1 turn._\n\n_+2:_ While in Ascended Form, the Cleric can cast _Divine Intervention,_ which boosts the Cleric and all allies up to _200 shielding_ and extends Ascended Form by _2 turns._\n\n_+3:_ While in Ascended Form, the Cleric can cast _Divine Intervention,_ which boosts the Cleric and all allies up to _250 shielding_ and extends Ascended Form by _3 turns._\n\n_+4:_ While in Ascended Form, the Cleric can cast _Divine Intervention,_ which boosts the Cleric and all allies up to _300 shielding_ and extends Ascended Form by _4 turns._\n\nDivine Intervention costs a whopping 5 tome charges, and can only be cast once in the same ascended form.
actors.hero.talent.judgement.title=judgement
actors.hero.talent.judgement.desc=_+1:_ While in Ascended Form, the Cleric can cast _Judgement,_ which deals _10-20 damage_ to all visible enemies.\n\n_+2:_ While in Ascended Form, the Cleric can cast _Judgement,_ which deals _15-30 damage_ to all visible enemies.\n\n_+3:_ While in Ascended Form, the Cleric can cast _Judgement,_ which deals _20-40 damage_ to all visible enemies.\n\n_+4:_ While in Ascended Form, the Cleric can cast _Judgement,_ which deals _25-50 damage_ to all visible enemies.\n\nJudgement costs 3 tome charges. Judgement deals an additional 5-10 damage for every spell the Cleric has cast since entering ascended form or since the last cast of Judgement.
actors.hero.talent.flash.title=flash

View File

@@ -103,12 +103,17 @@ public class AscendedForm extends ArmorAbility {
public int left = 10;
public int spellCasts = 0;
public int flashCasts = 0;
public boolean divineInverventionCast = false;
public void reset(){
setShield(30);
left = (int)DURATION;
}
public void extend( int amt ){
left += amt;
}
@Override
//logic edited slightly as buff should not detach
public int absorbDamage(int dmg) {
@@ -149,6 +154,7 @@ public class AscendedForm extends ArmorAbility {
public static final String LEFT = "left";
public static final String SPELL_CASTS = "spell_casts";
public static final String FLASH_CASTS = "flash_casts";
public static final String DIVINE_INTERVENTION_CAST = "divine_intervention_cast";
@Override
public void storeInBundle(Bundle bundle) {
@@ -156,6 +162,7 @@ public class AscendedForm extends ArmorAbility {
bundle.put(LEFT, left);
bundle.put(SPELL_CASTS, spellCasts);
bundle.put(FLASH_CASTS, flashCasts);
bundle.put(DIVINE_INTERVENTION_CAST, divineInverventionCast);
}
@Override
@@ -164,6 +171,7 @@ public class AscendedForm extends ArmorAbility {
left = bundle.getInt(LEFT);
spellCasts = bundle.getInt(SPELL_CASTS);
flashCasts = bundle.getInt(FLASH_CASTS);
divineInverventionCast = bundle.getBoolean(DIVINE_INTERVENTION_CAST);
}
}

View File

@@ -48,12 +48,14 @@ public class DivineIntervention extends ClericSpell {
@Override
public float chargeUse(Hero hero) {
return 6;
return 5;
}
@Override
public boolean canCast(Hero hero) {
return super.canCast(hero) && hero.buff(AscendedForm.AscendBuff.class) != null;
return super.canCast(hero)
&& hero.buff(AscendedForm.AscendBuff.class) != null
&& !hero.buff(AscendedForm.AscendBuff.class).divineInverventionCast;
}
@Override
@@ -64,7 +66,7 @@ public class DivineIntervention extends ClericSpell {
for (Char ch : Actor.chars()){
if (ch.alignment == Char.Alignment.ALLY && ch != hero){
Buff.affect(ch, DivineShield.class).setShield(150 + 50*hero.pointsInTalent(Talent.DIVINE_INTERVENTION));
Buff.affect(ch, DivineShield.class).setShield(100 + 50*hero.pointsInTalent(Talent.DIVINE_INTERVENTION));
new Flare(6, 32).color(0xFFFF00, true).show(ch.sprite, 2f);
}
}
@@ -72,16 +74,20 @@ public class DivineIntervention extends ClericSpell {
hero.spendAndNext( 1f );
onSpellCast(tome, hero);
//we apply buffs here so that the 6 charge cost and shield boost do not stack
hero.buff(AscendedForm.AscendBuff.class).setShield(150 + 50*hero.pointsInTalent(Talent.DIVINE_INTERVENTION));
//we apply buffs here so that the 5 charge cost and shield boost do not stack
hero.buff(AscendedForm.AscendBuff.class).setShield(100 + 50*hero.pointsInTalent(Talent.DIVINE_INTERVENTION));
new Flare(6, 32).color(0xFFFF00, true).show(hero.sprite, 2f);
hero.buff(AscendedForm.AscendBuff.class).divineInverventionCast = true;
hero.buff(AscendedForm.AscendBuff.class).extend(hero.pointsInTalent(Talent.DIVINE_INTERVENTION));
}
@Override
public String desc() {
int shield = 150 + 50*Dungeon.hero.pointsInTalent(Talent.DIVINE_INTERVENTION);
return Messages.get(this, "desc", shield) + "\n\n" + Messages.get(this, "charge_cost", (int)chargeUse(Dungeon.hero));
int shield = 100 + 50*Dungeon.hero.pointsInTalent(Talent.DIVINE_INTERVENTION);
int leftBonus = Dungeon.hero.pointsInTalent(Talent.DIVINE_INTERVENTION);
return Messages.get(this, "desc", shield, leftBonus) + "\n\n" + Messages.get(this, "charge_cost", (int)chargeUse(Dungeon.hero));
}
public static class DivineShield extends ShieldBuff{