v0.3.1d: added a health bar for bosses

This commit is contained in:
Evan Debenham
2015-09-13 04:52:43 -04:00
parent f09e96651b
commit 5cff3a6191
11 changed files with 170 additions and 8 deletions
@@ -25,6 +25,7 @@ import java.util.HashSet;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CapeOfThorns;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
import com.watabou.noosa.Camera;
import com.watabou.noosa.audio.Sample;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
@@ -47,6 +48,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.DM300Sprite;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.utils.Bundle;
import com.watabou.utils.Random;
public class DM300 extends Mob {
@@ -150,6 +152,7 @@ public class DM300 extends Mob {
@Override
public void notice() {
super.notice();
BossHealthBar.assignBoss(this);
yell( "Unauthorised personnel detected." );
}
@@ -182,4 +185,10 @@ public class DM300 extends Mob {
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
}
@Override
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
BossHealthBar.assignBoss(this);
}
}
@@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.GooWarn;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ElmoParticle;
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
import com.watabou.noosa.Camera;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
@@ -159,8 +160,9 @@ public class Goo extends Mob {
for (int i=0; i < Level.NEIGHBOURS9.length; i++) {
int j = pos + Level.NEIGHBOURS9[i];
GameScene.add( Blob.seed( j , 2, GooWarn.class ));
if (Level.passable[j]) {
GameScene.add(Blob.seed(j, 2, GooWarn.class));
}
}
if (Dungeon.visible[pos]) {
@@ -211,6 +213,7 @@ public class Goo extends Mob {
@Override
public void notice() {
super.notice();
BossHealthBar.assignBoss(this);
yell( "GLURP-GLURP!" );
}
@@ -240,6 +243,7 @@ public class Goo extends Mob {
super.restoreFromBundle( bundle );
pumpedUp = bundle.getInt( PUMPEDUP );
if (state != SLEEPING) BossHealthBar.assignBoss(this);
}
private static final HashSet<Class<?>> RESISTANCES = new HashSet<Class<?>>();
@@ -25,6 +25,7 @@ import java.util.HashSet;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Sample;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
@@ -80,6 +81,7 @@ public class King extends Mob {
public void restoreFromBundle( Bundle bundle ) {
super.restoreFromBundle( bundle );
nextPedestal = bundle.getBoolean( PEDESTAL );
BossHealthBar.assignBoss(this);
}
@Override
@@ -218,6 +220,7 @@ public class King extends Mob {
@Override
public void notice() {
super.notice();
BossHealthBar.assignBoss(this);
yell( "How dare you!" );
}
@@ -24,6 +24,7 @@ import java.util.HashSet;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.LloydsBeacon;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.PoisonTrap;
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Sample;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
@@ -46,6 +47,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.TenguSprite;
import com.watabou.utils.Bundle;
import com.watabou.utils.Random;
public class Tengu extends Mob {
@@ -180,7 +182,8 @@ public class Tengu extends Mob {
@Override
public void notice() {
super.notice();
yell( "Gotcha, " + Dungeon.hero.givenName() + "!" );
BossHealthBar.assignBoss(this);
yell("Gotcha, " + Dungeon.hero.givenName() + "!");
}
@Override
@@ -202,4 +205,10 @@ public class Tengu extends Mob {
public HashSet<Class<?>> resistances() {
return RESISTANCES;
}
@Override
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
BossHealthBar.assignBoss(this);
}
}
@@ -52,8 +52,10 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.LarvaSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.RottingFistSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.YogSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.shatteredpixel.shatteredpixeldungeon.utils.Utils;
import com.watabou.utils.Bundle;
import com.watabou.utils.Random;
public class Yog extends Mob {
@@ -89,6 +91,8 @@ public class Yog extends Mob {
GameScene.add( fist1 );
GameScene.add( fist2 );
notice();
}
@Override
@@ -169,6 +173,7 @@ public class Yog extends Mob {
@Override
public void notice() {
super.notice();
BossHealthBar.assignBoss(this);
yell( "Hope is an illusion..." );
}
@@ -196,7 +201,13 @@ public class Yog extends Mob {
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
}
@Override
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
BossHealthBar.assignBoss(this);
}
public static class RottingFist extends Mob {
private static final int REGENERATION = 4;