Code
2205/// Picks a random Personality for this minor2206void CvMinorCivAI::DoPickPersonality()2207{22082209 FlavorTypes eFlavorCityDefense = NO_FLAVOR;2210 FlavorTypes eFlavorDefense = NO_FLAVOR;2211 FlavorTypes eFlavorOffense = NO_FLAVOR;2212 for(int iFlavorLoop = 0; iFlavorLoop < GC.getNumFlavorTypes(); iFlavorLoop++)2213 {2214 if(GC.getFlavorTypes((FlavorTypes)iFlavorLoop) == "FLAVOR_CITY_DEFENSE")2215 {2216 eFlavorCityDefense = (FlavorTypes)iFlavorLoop;2217 }2218 if(GC.getFlavorTypes((FlavorTypes)iFlavorLoop) == "FLAVOR_DEFENSE")2219 {2220 eFlavorDefense = (FlavorTypes)iFlavorLoop;2221 }2222 if(GC.getFlavorTypes((FlavorTypes)iFlavorLoop) == "FLAVOR_OFFENSE")2223 {2224 eFlavorOffense = (FlavorTypes)iFlavorLoop;2225 }2226 }22272228 CvFlavorManager* pFlavorManager = m_pPlayer->GetFlavorManager();2229 int* pFlavors = pFlavorManager->GetAllPersonalityFlavors();22302231 MinorCivPersonalityTypes eRandPersonality = (MinorCivPersonalityTypes) GC.getGame().getJonRandNum(NUM_MINOR_CIV_PERSONALITY_TYPES, "Minor Civ AI: Picking Personality for this Game (should happen only once per player)");2232#if defined(MOD_API_EXTENSIONS)2233 SetPersonality(eRandPersonality);2234#else2235 m_ePersonality = eRandPersonality;2236#endif22372238 switch(eRandPersonality)2239 {2240 case MINOR_CIV_PERSONALITY_FRIENDLY:2241#if defined(MOD_AI_MP_DIPLOMACY)2242 if (MOD_AI_MP_DIPLOMACY) {2243 pFlavors[eFlavorCityDefense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorCityDefense] + 2, 2, 2, 12) - 2;2244 pFlavors[eFlavorDefense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorDefense] + 2, 2, 2, 12) - 2;2245 pFlavors[eFlavorOffense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorOffense] + 2, 2, 2, 12) - 2;2246 } else {2247#endif2248 pFlavors[eFlavorCityDefense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorCityDefense], -2, 0, 10);2249 pFlavors[eFlavorDefense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorDefense], -2, 0, 10);2250 pFlavors[eFlavorOffense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorOffense], -2, 0, 10);2251#if defined(MOD_AI_MP_DIPLOMACY)2252 }2253#endif2254 pFlavorManager->ResetToBasePersonality();2255 break;2256 case MINOR_CIV_PERSONALITY_HOSTILE:2257#if defined(MOD_AI_MP_DIPLOMACY)2258 if (MOD_AI_MP_DIPLOMACY) {2259 pFlavors[eFlavorCityDefense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorCityDefense] - 2, 2, -2, 8) + 2;2260 pFlavors[eFlavorDefense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorDefense] - 2, 2, -2, 8) + 2;2261 pFlavors[eFlavorOffense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorOffense] - 2, 2, -2, 8) + 2;2262 } else {2263#endif2264 pFlavors[eFlavorCityDefense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorCityDefense], 2, 0, 10);2265 pFlavors[eFlavorDefense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorDefense], 2, 0, 10);2266 pFlavors[eFlavorOffense] = pFlavorManager->GetAdjustedValue(pFlavors[eFlavorOffense], 2, 0, 10);2267#if defined(MOD_AI_MP_DIPLOMACY)2268 }2269#endif2270 pFlavorManager->ResetToBasePersonality();2271 break;2272 }2273}