From 0449dba7a1a35aa9de36e95cf6730d7ca928ff7b Mon Sep 17 00:00:00 2001 From: Steve Date: Fri, 16 Jun 2017 18:34:44 +0100 Subject: [PATCH] Tweaks to suspicion logic - reduce significantly if the player shoot or kills a civilian craft. Limit reduction to -10%. --- src/battle/ai.c | 2 +- src/battle/bullets.c | 9 ++++++++- src/battle/entities.c | 9 ++++++++- src/battle/player.c | 10 ++++++++-- 4 files changed, 25 insertions(+), 5 deletions(-) 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)); } }