From c64a20ba2feae120e23999c86e4d11a1f8d1a524 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 29 Aug 2022 14:08:37 -0400 Subject: [PATCH] v1.4.0: fixed ring of arcana affecting some battlemage procs --- .../items/wands/WandOfBlastWave.java | 10 ++++++++-- .../items/wands/WandOfFireblast.java | 10 ++++++++-- .../items/wands/WandOfLightning.java | 10 ++++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java index a159cd72b..ac7668abb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlastWave.java @@ -182,8 +182,14 @@ public class WandOfBlastWave extends DamageWand { @Override public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { //acts like elastic enchantment - //FIXME this benefits from ring of arcana atm, change this - new Elastic().proc(staff, attacker, defender, damage); + new BlastWaveOnHit().proc(staff, attacker, defender, damage); + } + + private static class BlastWaveOnHit extends Elastic{ + @Override + protected float procChanceMultiplier(Char attacker) { + return 1f; //not affected by enchantment proc chance changers + } } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfFireblast.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfFireblast.java index 6c9e201ab..d99e2c5c9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfFireblast.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfFireblast.java @@ -145,8 +145,14 @@ public class WandOfFireblast extends DamageWand { @Override public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { //acts like blazing enchantment - //FIXME this benefits from ring of arcana atm, change this - new Blazing().proc( staff, attacker, defender, damage); + new FireBlastOnHit().proc( staff, attacker, defender, damage); + } + + private static class FireBlastOnHit extends Blazing { + @Override + protected float procChanceMultiplier(Char attacker) { + return 1f; //not affected by enchantment proc chance changers + } } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLightning.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLightning.java index fb6cc475c..63b3e03f9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLightning.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfLightning.java @@ -99,8 +99,14 @@ public class WandOfLightning extends DamageWand { @Override public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { //acts like shocking enchantment - //FIXME this benefits from ring of arcana atm, change this - new Shocking().proc(staff, attacker, defender, damage); + new LightningOnHit().proc(staff, attacker, defender, damage); + } + + private static class LightningOnHit extends Shocking { + @Override + protected float procChanceMultiplier(Char attacker) { + return 1f; //not affected by enchantment proc chance changers + } } private void arc( Char ch ) {