CvMinorCivAI::DoTurnStatus()
- Defined in
- CvMinorCivAI.cpp, line 2971
- Class
- CvMinorCivAI
- Hook name
CivHooks::CvMinorCivAI_DoTurnStatus
Hooks
static bool BeforeCvMinorCivAI_DoTurnStatus(CvMinorCivAI* self);static void AfterCvMinorCivAI_DoTurnStatus(CvMinorCivAI* self);static void ReplaceCvMinorCivAI_DoTurnStatus(void (*original)(CvMinorCivAI*), CvMinorCivAI* self);CivRegisterBefore<CivHooks::CvMinorCivAI_DoTurnStatus>(host, &BeforeCvMinorCivAI_DoTurnStatus);CivRegisterAfter<CivHooks::CvMinorCivAI_DoTurnStatus>(host, &AfterCvMinorCivAI_DoTurnStatus);CivRegisterReplace<CivHooks::CvMinorCivAI_DoTurnStatus>(host, &ReplaceCvMinorCivAI_DoTurnStatus);
Code
2970/// Update what our status is2971void CvMinorCivAI::DoTurnStatus()2972{2973 int iWeight = 0;29742975 PlayerProximityTypes eProximity;29762977 CvPlayer* pPlayer;2978 CvTeam* pTeam;2979 PlayerTypes ePlayer;2980 for(int iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)2981 {2982 ePlayer = (PlayerTypes) iPlayerLoop;2983 pPlayer = &GET_PLAYER(ePlayer);2984 pTeam = &GET_TEAM(pPlayer->getTeam());29852986 eProximity = pPlayer->GetProximityToPlayer(GetPlayer()->GetID());29872988 // Check how close the player is2989 switch(eProximity)2990 {2991 // DISTANT: Elevated if we're at war2992 case PLAYER_PROXIMITY_DISTANT:2993 break;2994// if (IsAtWarWithPlayersTeam(ePlayer))2995// {2996// iWeight += 10;2997// }29982999 // FAR: Elevated if they're an aggressor OR we're at war (note the ELSE IF)3000 case PLAYER_PROXIMITY_FAR:3001 break;3002// if (pTeam->IsMinorCivAggressor())3003// {3004// iWeight += 10;3005// }3006// else if (IsAtWarWithPlayersTeam(ePlayer))3007// {3008// iWeight += 10;3009// }30103011 // CLOSE: Elevated if they're an aggressor, critical if we're at war3012 case PLAYER_PROXIMITY_CLOSE:3013 if(pTeam->IsMinorCivAggressor())3014 {3015 iWeight += 10;3016 }3017 if(pTeam->IsMinorCivWarmonger())3018 {3019 iWeight += 20;3020 }3021 break;30223023 // NEIGHBORS: Pretty much anything makes the situation critical3024 case PLAYER_PROXIMITY_NEIGHBORS:3025 if(pTeam->IsMinorCivAggressor())3026 {3027 iWeight += 20;3028 }3029 if(IsAtWarWithPlayersTeam(ePlayer))3030 {3031 iWeight += 20;3032 }3033 break;3034 default:3035 break;3036 }3037 }30383039 // Do the final math3040 if(iWeight >= 20)3041 {3042 m_eStatus = MINOR_CIV_STATUS_CRITICAL;3043 }3044 else if(iWeight >= 10)3045 {3046 m_eStatus = MINOR_CIV_STATUS_ELEVATED;3047 }3048 else3049 {3050 m_eStatus = MINOR_CIV_STATUS_NORMAL;3051 }3052}
Calls
- CvMinorCivAI::GetPlayer()
- CvMinorCivAI::IsAtWarWithPlayersTeam(PlayerTypes)
- CvPlayer::GetID() const
- CvPlayer::GetProximityToPlayer(PlayerTypes) const
- CvPlayer::getTeam() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvTeam::getTeam(TeamTypes)
- CvTeam::IsMinorCivAggressor() const
- CvTeam::IsMinorCivWarmonger() const