v0.3.2: tweaks to tengu's visuals and jump behaviour

This commit is contained in:
Evan Debenham 2015-11-03 18:52:54 -05:00
parent a1d5858e47
commit 0c29e09d7a

View File

@ -95,12 +95,18 @@ public class Tengu extends Mob {
int beforeHitHP = HP;
super.damage(dmg, src);
int hpBracket = HP > HT/2 ? 12 : 20;
//phase 1 of the fight is over
if (beforeHitHP > HT/2 && HP <= HT/2){
HP = HT/2;
yell("Let's make this interesting...");
((PrisonBossLevel)Dungeon.level).progress();
BossHealthBar.bleed(true);
//if tengu has lost a certain amount of hp, jump
} else if (beforeHitHP / hpBracket != HP / hpBracket) {
jump();
}
}
@ -125,36 +131,23 @@ public class Tengu extends Mob {
yell( "Free at last..." );
}
@Override
protected boolean getCloser( int target ) {
if (Level.fieldOfView[target]) {
jump();
return true;
} else {
return super.getCloser( target );
}
}
@Override
protected boolean canAttack( Char enemy ) {
return new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE).collisionPos == enemy.pos;
}
//tengu's attack is always visible
@Override
protected boolean doAttack( Char enemy ) {
timeToJump--;
if (timeToJump <= 0) {
jump();
protected boolean doAttack(Char enemy) {
sprite.attack( enemy.pos );
spend( attackDelay() );
return true;
} else {
return super.doAttack( enemy );
}
}
}
private void jump() {
timeToJump = JUMP_DELAY;
for (int i=0; i < 3; i++) {
for (int i=0; i < 4; i++) {
int trapPos;
do {
trapPos = Random.Int( Level.LENGTH );