v2.5.2: now only some flying chars visually fall into pits on death

This commit is contained in:
Evan Debenham
2024-09-17 11:40:04 -04:00
parent f05e638840
commit bc4a368903
9 changed files with 47 additions and 3 deletions
@@ -30,7 +30,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Adrenaline; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Adrenaline;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AllyBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AllyBuff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok; 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.ArcaneArmor;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AscensionChallenge; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AscensionChallenge;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barkskin; 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.Haste;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hex; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hex;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger; 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.LifeLink;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicalSleep; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicalSleep;
@@ -897,7 +897,7 @@ public abstract class Char extends Actor {
destroy(); destroy();
if (src != Chasm.class) { if (src != Chasm.class) {
sprite.die(); 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(); ((MobSprite) sprite).fall();
} }
} }
@@ -225,6 +225,12 @@ public class SpiritHawk extends ArmorAbility {
return result; return result;
} }
@Override
public void die(Object cause) {
flying = false;
super.die(cause);
}
@Override @Override
protected void spend(float time) { protected void spend(float time) {
super.spend(time); super.spend(time);
@@ -63,6 +63,12 @@ public class Bat extends Mob {
return super.drRoll() + Random.NormalIntRange(0, 4); return super.drRoll() + Random.NormalIntRange(0, 4);
} }
@Override
public void die(Object cause) {
flying = false;
super.die(cause);
}
@Override @Override
public int attackProc( Char enemy, int damage ) { public int attackProc( Char enemy, int damage ) {
damage = super.attackProc( enemy, damage ); damage = super.attackProc( enemy, damage );
@@ -81,6 +81,12 @@ public class Bee extends Mob {
if (bundle.contains(ALIGMNENT)) alignment = bundle.getEnum( ALIGMNENT, Alignment.class); 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 ) { public void spawn( int level ) {
this.level = level; this.level = level;
@@ -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 //used so resistances can differentiate between melee and magical attacks
public static class LightBeam {} public static class LightBeam {}
@@ -122,6 +122,12 @@ public abstract class Elemental extends Mob {
return super.act(); return super.act();
} }
@Override
public void die(Object cause) {
flying = false;
super.die(cause);
}
@Override @Override
protected boolean canAttack( Char enemy ) { protected boolean canAttack( Char enemy ) {
if (super.canAttack(enemy)){ if (super.canAttack(enemy)){
@@ -155,6 +155,12 @@ public class Eye extends Mob {
super.damage(dmg, src); 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 //used so resistances can differentiate between melee and magical attacks
public static class DeathGaze{} public static class DeathGaze{}
@@ -36,6 +36,8 @@ public class Rat extends Mob {
HP = HT = 8; HP = HT = 8;
defenseSkill = 2; defenseSkill = 2;
flying = true;
maxLvl = 5; maxLvl = 5;
} }
@@ -75,6 +75,12 @@ public class Swarm extends Mob {
if (generation > 0) EXP = 0; if (generation > 0) EXP = 0;
} }
@Override
public void die(Object cause) {
flying = false;
super.die(cause);
}
@Override @Override
public int damageRoll() { public int damageRoll() {
return Random.NormalIntRange( 1, 4 ); return Random.NormalIntRange( 1, 4 );