v0.9.2a: mobs now awaken if they receive debuffs
This commit is contained in:
parent
5b8293db53
commit
ea7e58bd2d
|
@ -828,6 +828,14 @@ public abstract class Mob extends Char {
|
||||||
@Override
|
@Override
|
||||||
public boolean act( boolean enemyInFOV, boolean justAlerted ) {
|
public boolean act( boolean enemyInFOV, boolean justAlerted ) {
|
||||||
|
|
||||||
|
//debuffs cause mobs to wake as well
|
||||||
|
for (Buff b : buffs()){
|
||||||
|
if (b.type == Buff.buffType.NEGATIVE){
|
||||||
|
awaken(enemyInFOV);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (enemyInFOV) {
|
if (enemyInFOV) {
|
||||||
|
|
||||||
float enemyStealth = enemy.stealth();
|
float enemyStealth = enemy.stealth();
|
||||||
|
@ -839,11 +847,29 @@ public abstract class Mob extends Char {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Random.Float( distance( enemy ) + enemyStealth ) < 1) {
|
if (Random.Float( distance( enemy ) + enemyStealth ) < 1) {
|
||||||
enemySeen = true;
|
awaken(enemyInFOV);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
enemySeen = false;
|
||||||
|
spend( TICK );
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void awaken( boolean enemyInFOV ){
|
||||||
|
if (enemyInFOV) {
|
||||||
|
enemySeen = true;
|
||||||
notice();
|
notice();
|
||||||
state = HUNTING;
|
state = HUNTING;
|
||||||
target = enemy.pos;
|
target = enemy.pos;
|
||||||
|
} else {
|
||||||
|
notice();
|
||||||
|
state = WANDERING;
|
||||||
|
target = Dungeon.level.randomDestination( Mob.this );
|
||||||
|
}
|
||||||
|
|
||||||
if (alignment == Alignment.ENEMY && Dungeon.isChallenged(Challenges.SWARM_INTELLIGENCE)) {
|
if (alignment == Alignment.ENEMY && Dungeon.isChallenged(Challenges.SWARM_INTELLIGENCE)) {
|
||||||
for (Mob mob : Dungeon.level.mobs) {
|
for (Mob mob : Dungeon.level.mobs) {
|
||||||
|
@ -854,17 +880,7 @@ public abstract class Mob extends Char {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
spend(TIME_TO_WAKE_UP);
|
spend(TIME_TO_WAKE_UP);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
enemySeen = false;
|
|
||||||
spend( TICK );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user