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

View File

@@ -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();
}
}

View File

@@ -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);

View File

@@ -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 );

View File

@@ -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;

View File

@@ -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 {}

View File

@@ -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 ) {

View File

@@ -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{}

View File

@@ -35,6 +35,8 @@ public class Rat extends Mob {
HP = HT = 8;
defenseSkill = 2;
flying = true;
maxLvl = 5;
}

View File

@@ -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() {