mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Improved code for AI tooltips.
RangeChangeDesire: improved code for better balance. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8785 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -257,12 +257,13 @@ void SoldierTooltip( SOLDIERTYPE* pSoldier )
|
||||
}
|
||||
swprintf(pStrInfo, L"%s|A|I |Morale/|R|C|D: %d/%d\n", pStrInfo, pSoldier->aiData.bAIMorale, RangeChangeDesire(pSoldier));
|
||||
swprintf(pStrInfo, L"%s|Last |Action: %d\n", pStrInfo, pSoldier->aiData.bLastAction);
|
||||
swprintf(pStrInfo, L"%s|OpponentsSeen: %d |LastTurn: %d, |Public %d\n", pStrInfo, pSoldier->aiData.bOppCnt, CountSeenEnemiesLastTurn(pSoldier), CountSeenEnemiesLastTurn(pSoldier));
|
||||
swprintf(pStrInfo, L"%s|OpponentsSeen: %d\n", pStrInfo, pSoldier->aiData.bOppCnt);
|
||||
swprintf(pStrInfo, L"%s|SeenLastTurn: %d, |Public %d\n", pStrInfo, CountSeenEnemiesLastTurn(pSoldier), CountSeenEnemiesLastTurn(pSoldier));
|
||||
swprintf(pStrInfo, L"%s|Friends|Black: %d\n", pStrInfo, CountFriendsBlack(pSoldier));
|
||||
swprintf(pStrInfo, L"%s|Soldier Level: %d |Diff: %d\n", pStrInfo, pSoldier->stats.bExpLevel, SoldierDifficultyLevel(pSoldier));
|
||||
INT32 usOrigin;
|
||||
swprintf(pStrInfo, L"%s|Roaming |Range: %d\n", pStrInfo, RoamingRange(pSoldier, &usOrigin));
|
||||
swprintf(pStrInfo, L"%s|Aware |of |Opposition: %d\n", pStrInfo, gTacticalStatus.Team[pSoldier->bTeam].bAwareOfOpposition);
|
||||
swprintf(pStrInfo, L"%s|Team |Aware: %d\n", pStrInfo, gTacticalStatus.Team[pSoldier->bTeam].bAwareOfOpposition);
|
||||
swprintf(pStrInfo, L"%s|Collapsed %d |BreathCollapsed %d\n", pStrInfo, pSoldier->bCollapsed, pSoldier->bBreathCollapsed);
|
||||
if (pSoldier->ubPreviousAttackerID != NOBODY && MercPtrs[pSoldier->ubPreviousAttackerID])
|
||||
{
|
||||
@@ -274,7 +275,8 @@ void SoldierTooltip( SOLDIERTYPE* pSoldier )
|
||||
}
|
||||
|
||||
swprintf(pStrInfo, L"%s|Visible %d |Moved %d\n", pStrInfo, pSoldier->bVisible, pSoldier->aiData.bMoved);
|
||||
swprintf(pStrInfo, L"%s|Noise %d %d %d |Public |Noise %d %d %d\n", pStrInfo, pSoldier->aiData.sNoiseGridno, pSoldier->bNoiseLevel, pSoldier->aiData.ubNoiseVolume, gsPublicNoiseGridNo[pSoldier->bTeam], gbPublicNoiseLevel[pSoldier->bTeam], gubPublicNoiseVolume[pSoldier->bTeam]);
|
||||
swprintf(pStrInfo, L"%s|Noise %d %d %d\n", pStrInfo, pSoldier->aiData.sNoiseGridno, pSoldier->bNoiseLevel, pSoldier->aiData.ubNoiseVolume);
|
||||
swprintf(pStrInfo, L"%s|Public |Noise %d %d %d\n", pStrInfo, gsPublicNoiseGridNo[pSoldier->bTeam], gbPublicNoiseLevel[pSoldier->bTeam], gubPublicNoiseVolume[pSoldier->bTeam]);
|
||||
|
||||
// show watched locations:
|
||||
INT8 bLoop;
|
||||
|
||||
+15
-14
@@ -3111,25 +3111,26 @@ INT32 RangeChangeDesire( SOLDIERTYPE * pSoldier )
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (pSoldier->aiData.bAttitude)
|
||||
{
|
||||
case DEFENSIVE: iRangeFactorMultiplier += -1; break;
|
||||
case BRAVESOLO: iRangeFactorMultiplier += 2; break;
|
||||
case BRAVEAID: iRangeFactorMultiplier += 2; break;
|
||||
case CUNNINGSOLO: iRangeFactorMultiplier += 0; break;
|
||||
case CUNNINGAID: iRangeFactorMultiplier += 0; break;
|
||||
case ATTACKSLAYONLY:
|
||||
case AGGRESSIVE: iRangeFactorMultiplier += 1; break;
|
||||
}
|
||||
|
||||
if(IS_MERC_BODY_TYPE(pSoldier))
|
||||
INT8 bBonus = -1;
|
||||
if (IS_MERC_BODY_TYPE(pSoldier))
|
||||
{
|
||||
if (!AICheckHasGun(pSoldier))
|
||||
iRangeFactorMultiplier += 2; // if we have no weapons, try to get closer to enemy
|
||||
bBonus = 2; // if we have no weapons, try to get closer to enemy
|
||||
else if (GuySawEnemy(pSoldier, SEEN_LAST_TURN) && AICheckShortWeaponRange(pSoldier))
|
||||
iRangeFactorMultiplier += 1; // bonus if weapon range is short
|
||||
bBonus = 1; // bonus if weapon range is short
|
||||
}
|
||||
|
||||
switch (pSoldier->aiData.bAttitude)
|
||||
{
|
||||
case DEFENSIVE: iRangeFactorMultiplier += max(-1, bBonus); break;
|
||||
case BRAVESOLO: iRangeFactorMultiplier += max(2, bBonus); break;
|
||||
case BRAVEAID: iRangeFactorMultiplier += max(2, bBonus); break;
|
||||
case CUNNINGSOLO: iRangeFactorMultiplier += max(0, bBonus); break;
|
||||
case CUNNINGAID: iRangeFactorMultiplier += max(0, bBonus); break;
|
||||
case ATTACKSLAYONLY:
|
||||
case AGGRESSIVE: iRangeFactorMultiplier += max(1, bBonus); break;
|
||||
}
|
||||
|
||||
if ( gTacticalStatus.bConsNumTurnsWeHaventSeenButEnemyDoes > 0 )
|
||||
{
|
||||
iRangeFactorMultiplier += gTacticalStatus.bConsNumTurnsWeHaventSeenButEnemyDoes;
|
||||
|
||||
Reference in New Issue
Block a user