v2.2.0: crystal guardians are no longer attackable by allies when downed

This commit is contained in:
Evan Debenham
2023-10-04 15:22:16 -04:00
parent 098ab9d772
commit 3de2cae9ea
@@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Doom;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.effects.Splash;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
@@ -135,6 +136,16 @@ public class CrystalGuardian extends Mob{
return super.isAlive();
}
@Override
public boolean isInvulnerable(Class effect) {
if (recovering){
//while recovering, immune to chars that aren't the hero or spire
// this is sort of a hack to prevent allies from attacking downed guardians
return super.isInvulnerable(effect) || (Char.class.isAssignableFrom(effect) && !Hero.class.isAssignableFrom(effect) && !CrystalSpire.class.isAssignableFrom(effect));
}
return super.isInvulnerable(effect);
}
public CrystalGuardian(){
super();
switch (Random.Int(3)){