From 3e63023f5b6efd323bd4f9dabbf4bc185bead544 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 13 Feb 2023 16:36:52 -0500 Subject: [PATCH] v2.0.0: fixed fly swarms never splitting on ascent --- .../shatteredpixeldungeon/actors/mobs/Swarm.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Swarm.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Swarm.java index 8ecdadc5f..9b79c2a71 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Swarm.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Swarm.java @@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AllyBuff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AscensionChallenge; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ChampionEnemy; @@ -83,7 +84,10 @@ public class Swarm extends Mob { @Override public int defenseProc( Char enemy, int damage ) { - if (HP >= damage + 2) { + //accounting for reduced damage on ascension + int effectiveDmg = (int)Math.ceil(damage / AscensionChallenge.statModifier(this)); + + if (HP >= effectiveDmg + 2) { ArrayList candidates = new ArrayList<>(); int[] neighbours = {pos + 1, pos - 1, pos + Dungeon.level.width(), pos - Dungeon.level.width()}; @@ -99,7 +103,7 @@ public class Swarm extends Mob { if (candidates.size() > 0) { Swarm clone = split(); - clone.HP = (HP - damage) / 2; + clone.HP = (HP - effectiveDmg) / 2; clone.pos = Random.element( candidates ); clone.state = clone.HUNTING;