From bc4a368903c05e0894e33fd83d03f38ea31d27a9 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 17 Sep 2024 11:40:04 -0400 Subject: [PATCH] v2.5.2: now only some flying chars visually fall into pits on death --- .../shatteredpixel/shatteredpixeldungeon/actors/Char.java | 4 ++-- .../actors/hero/abilities/huntress/SpiritHawk.java | 6 ++++++ .../shatteredpixeldungeon/actors/mobs/Bat.java | 8 +++++++- .../shatteredpixeldungeon/actors/mobs/Bee.java | 6 ++++++ .../shatteredpixeldungeon/actors/mobs/CrystalWisp.java | 6 ++++++ .../shatteredpixeldungeon/actors/mobs/Elemental.java | 6 ++++++ .../shatteredpixeldungeon/actors/mobs/Eye.java | 6 ++++++ .../shatteredpixeldungeon/actors/mobs/Rat.java | 2 ++ .../shatteredpixeldungeon/actors/mobs/Swarm.java | 6 ++++++ 9 files changed, 47 insertions(+), 3 deletions(-) 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 1a72c2624..d14776409 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java @@ -30,7 +30,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Adrenaline; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AllyBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invulnerability; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ArcaneArmor; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AscensionChallenge; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barkskin; @@ -55,6 +54,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Fury; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hex; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invulnerability; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LifeLink; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicalSleep; @@ -897,7 +897,7 @@ public abstract class Char extends Actor { destroy(); if (src != Chasm.class) { sprite.die(); - if (flying && Dungeon.level != null && sprite instanceof MobSprite && Dungeon.level.map[pos] == Terrain.CHASM){ + if (!flying && Dungeon.level != null && sprite instanceof MobSprite && Dungeon.level.map[pos] == Terrain.CHASM){ ((MobSprite) sprite).fall(); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java index 9e87d4894..675b8bdcb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/huntress/SpiritHawk.java @@ -225,6 +225,12 @@ public class SpiritHawk extends ArmorAbility { return result; } + @Override + public void die(Object cause) { + flying = false; + super.die(cause); + } + @Override protected void spend(float time) { super.spend(time); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java index 95bda1d13..dc30de132 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java @@ -62,7 +62,13 @@ public class Bat extends Mob { public int drRoll() { return super.drRoll() + Random.NormalIntRange(0, 4); } - + + @Override + public void die(Object cause) { + flying = false; + super.die(cause); + } + @Override public int attackProc( Char enemy, int damage ) { damage = super.attackProc( enemy, damage ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java index a63199cf6..ab67371ff 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java @@ -80,6 +80,12 @@ public class Bee extends Mob { potHolder = bundle.getInt( POTHOLDER ); if (bundle.contains(ALIGMNENT)) alignment = bundle.getEnum( ALIGMNENT, Alignment.class); } + + @Override + public void die(Object cause) { + flying = false; + super.die(cause); + } public void spawn( int level ) { this.level = level; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalWisp.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalWisp.java index f84cb1333..8bd2df9b6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalWisp.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalWisp.java @@ -113,6 +113,12 @@ public class CrystalWisp extends Mob{ } } + @Override + public void die(Object cause) { + flying = false; + super.die(cause); + } + //used so resistances can differentiate between melee and magical attacks public static class LightBeam {} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java index 6b5cb8dbd..45197cd53 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java @@ -121,6 +121,12 @@ public abstract class Elemental extends Mob { return super.act(); } + + @Override + public void die(Object cause) { + flying = false; + super.die(cause); + } @Override protected boolean canAttack( Char enemy ) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java index a425c85d5..6e5420555 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java @@ -154,6 +154,12 @@ public class Eye extends Mob { if (beamCharged) dmg /= 4; super.damage(dmg, src); } + + @Override + public void die(Object cause) { + flying = false; + super.die(cause); + } //used so resistances can differentiate between melee and magical attacks public static class DeathGaze{} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Rat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Rat.java index 5da456212..8aabe0489 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Rat.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Rat.java @@ -35,6 +35,8 @@ public class Rat extends Mob { HP = HT = 8; defenseSkill = 2; + + flying = true; maxLvl = 5; } 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 c3da9045c..2b87dbb69 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 @@ -74,6 +74,12 @@ public class Swarm extends Mob { generation = bundle.getInt( GENERATION ); if (generation > 0) EXP = 0; } + + @Override + public void die(Object cause) { + flying = false; + super.die(cause); + } @Override public int damageRoll() {