diff --git a/src/battle/ai.c b/src/battle/ai.c index 9d8bc2a..67deb43 100644 --- a/src/battle/ai.c +++ b/src/battle/ai.c @@ -1115,7 +1115,7 @@ void checkSuspicionLevel(void) } else if (distance <= SCREEN_HEIGHT / 2) { - battle.suspicionLevel = MAX(battle.suspicionLevel - 1, 0); + battle.suspicionLevel--; } } } diff --git a/src/battle/bullets.c b/src/battle/bullets.c index 3d7091b..77ab835 100644 --- a/src/battle/bullets.c +++ b/src/battle/bullets.c @@ -187,7 +187,14 @@ static void checkCollisions(Bullet *b) if (battle.hasSuspicionLevel) { - battle.suspicionLevel -= 2; + if (e->aiFlags & (AIF_AVOIDS_COMBAT|AIF_DEFENSIVE)) + { + battle.suspicionLevel -= (MAX_SUSPICION_LEVEL * 0.1); + } + else + { + battle.suspicionLevel -= (MAX_SUSPICION_LEVEL * 0.001); + } } } diff --git a/src/battle/entities.c b/src/battle/entities.c index adfb082..b6468f1 100644 --- a/src/battle/entities.c +++ b/src/battle/entities.c @@ -178,7 +178,14 @@ void doEntities(void) if (e->killedBy == player && battle.hasSuspicionLevel) { - battle.suspicionLevel -= (MAX_SUSPICION_LEVEL * 0.12); + if (e->aiFlags & (AIF_AVOIDS_COMBAT|AIF_DEFENSIVE)) + { + battle.suspicionLevel -= (MAX_SUSPICION_LEVEL * 0.5); + } + else + { + battle.suspicionLevel -= (MAX_SUSPICION_LEVEL * 0.12); + } } if (e == player) diff --git a/src/battle/player.c b/src/battle/player.c index bce5b71..1d98091 100644 --- a/src/battle/player.c +++ b/src/battle/player.c @@ -353,9 +353,15 @@ static void handleMouse(void) fireRocket(player); } - if (battle.hasSuspicionLevel && !battle.numEnemies && !battle.suspicionCoolOff) + if (battle.hasSuspicionLevel) { - battle.suspicionLevel += (MAX_SUSPICION_LEVEL * 0.05); + if (!battle.numEnemies && !battle.suspicionCoolOff) + { + battle.suspicionLevel += (MAX_SUSPICION_LEVEL * 0.05); + } + + /* don't allow the suspicion level to drop too far */ + battle.suspicionLevel = MAX(battle.suspicionLevel, -(MAX_SUSPICION_LEVEL * 0.1)); } }