v3.0.0: holy weapon and ward now work without equipment

This commit is contained in:
Evan Debenham
2025-01-09 14:45:27 -05:00
parent 4b57537d91
commit 096761983c
2 changed files with 11 additions and 3 deletions

View File

@@ -622,7 +622,7 @@ actors.hero.spells.holyward.name=holy ward
actors.hero.spells.holyward.glyph_name=%s of light
actors.hero.spells.holyward.glyph_desc=This glyph slightly increases the amount of damage armor can block.
actors.hero.spells.holyward.short_desc=Temporarily overrides glyphs to boost armor blocking.
actors.hero.spells.holyward.desc=The Cleric imbues their worn armor with glyphs of holy light, increasing the armor's damage blocking by 1.\n\nThis glyph lasts for 50 turns, and will override any beneficial glyph the armor has for the duration.
actors.hero.spells.holyward.desc=The Cleric imbues their worn armor with glyphs of holy light, increasing the armor's damage blocking by 1.\n\nThis glyph lasts for 50 turns, and will override any beneficial glyph the armor has for the duration. The Cleric will benefit from this effect even if they have no armor.
actors.hero.spells.holyward$holyarmbuff.name=holy ward
actors.hero.spells.holyward$holyarmbuff.desc=The Cleric has imbued their worn armor with holy energy, temporarily overriding any existing glyph and causing the armor to block an extra 1 point of damage.\n\nTurns Remaining: %s.
@@ -630,7 +630,7 @@ actors.hero.spells.holyweapon.name=holy weapon
actors.hero.spells.holyweapon.ench_name=holy %s
actors.hero.spells.holyweapon.ench_desc=Enemies struck by a holy weapon will take extra magical damage.
actors.hero.spells.holyweapon.short_desc=Temporarily overrides enchantments to boost damage.
actors.hero.spells.holyweapon.desc=The Cleric enchants their worn weapon with holy energy, causing the weapon to deal an additional 2 magical damage any time they strike an enemy with it.\n\nThis enchantment lasts for 50 turns, and will override any beneficial enchantment the weapon has for the duration.
actors.hero.spells.holyweapon.desc=The Cleric enchants their worn weapon with holy energy, causing the weapon to deal an additional 2 magical damage any time they strike an enemy with it.\n\nThis enchantment lasts for 50 turns, and will override any beneficial enchantment the weapon has for the duration. Unarmed strikes can also benefit from this effect.
actors.hero.spells.holyweapon$holywepbuff.name=holy weapon
actors.hero.spells.holyweapon$holywepbuff.desc=The Cleric has imbued their worn weapon with holy energy, temporarily overriding any existing enchantment and causing the weapon to deal an extra 2 magical damage on each attack.\n\nTurns Remaining: %s.

View File

@@ -72,6 +72,8 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.duelist.El
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.huntress.NaturesPower;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.warrior.Endure;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells.HallowedGround;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells.HolyWard;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells.HolyWeapon;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mimic;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Monk;
@@ -1446,7 +1448,11 @@ public class Hero extends Char {
damage = Talent.onAttackProc( this, enemy, damage );
if (wep != null) damage = wep.proc( this, enemy, damage );
if (wep != null) {
damage = wep.proc( this, enemy, damage );
} else if (buff(HolyWeapon.HolyWepBuff.class) != null) {
enemy.damage(Math.round(2f * Weapon.Enchantment.genericProcChanceMultiplier(this)), HolyWeapon.INSTANCE);
}
switch (subClass) {
case SNIPER:
@@ -1485,6 +1491,8 @@ public class Hero extends Char {
if (belongings.armor() != null) {
damage = belongings.armor().proc( enemy, this, damage );
} else if (buff(HolyWard.HolyArmBuff.class) != null){
damage -= Math.round(1f * Armor.Glyph.genericProcChanceMultiplier(enemy));
}
WandOfLivingEarth.RockArmor rockArmor = buff(WandOfLivingEarth.RockArmor.class);