v0.3.2: tweaks to tengu's visuals and jump behaviour
This commit is contained in:
parent
a1d5858e47
commit
0c29e09d7a
|
@ -95,12 +95,18 @@ public class Tengu extends Mob {
|
||||||
int beforeHitHP = HP;
|
int beforeHitHP = HP;
|
||||||
super.damage(dmg, src);
|
super.damage(dmg, src);
|
||||||
|
|
||||||
|
int hpBracket = HP > HT/2 ? 12 : 20;
|
||||||
|
|
||||||
//phase 1 of the fight is over
|
//phase 1 of the fight is over
|
||||||
if (beforeHitHP > HT/2 && HP <= HT/2){
|
if (beforeHitHP > HT/2 && HP <= HT/2){
|
||||||
HP = HT/2;
|
HP = HT/2;
|
||||||
yell("Let's make this interesting...");
|
yell("Let's make this interesting...");
|
||||||
((PrisonBossLevel)Dungeon.level).progress();
|
((PrisonBossLevel)Dungeon.level).progress();
|
||||||
BossHealthBar.bleed(true);
|
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..." );
|
yell( "Free at last..." );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean getCloser( int target ) {
|
|
||||||
if (Level.fieldOfView[target]) {
|
|
||||||
jump();
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return super.getCloser( target );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean canAttack( Char enemy ) {
|
protected boolean canAttack( Char enemy ) {
|
||||||
return new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE).collisionPos == enemy.pos;
|
return new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE).collisionPos == enemy.pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//tengu's attack is always visible
|
||||||
@Override
|
@Override
|
||||||
protected boolean doAttack( Char enemy ) {
|
protected boolean doAttack(Char enemy) {
|
||||||
timeToJump--;
|
sprite.attack( enemy.pos );
|
||||||
if (timeToJump <= 0) {
|
spend( attackDelay() );
|
||||||
jump();
|
return true;
|
||||||
return true;
|
}
|
||||||
} else {
|
|
||||||
return super.doAttack( enemy );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void jump() {
|
private void jump() {
|
||||||
timeToJump = JUMP_DELAY;
|
timeToJump = JUMP_DELAY;
|
||||||
|
|
||||||
for (int i=0; i < 3; i++) {
|
for (int i=0; i < 4; i++) {
|
||||||
int trapPos;
|
int trapPos;
|
||||||
do {
|
do {
|
||||||
trapPos = Random.Int( Level.LENGTH );
|
trapPos = Random.Int( Level.LENGTH );
|
||||||
|
|
Loading…
Reference in New Issue
Block a user