Bazaar developer reference

CvMinorCivAI::GetStatusChangeDetails(PlayerTypes, bool, bool, bool)

Defined in
CvMinorCivAI.cpp, line 10695
Class
CvMinorCivAI
Hook name
CivHooks::CvMinorCivAI_GetStatusChangeDetails

Hooks

static bool BeforeCvMinorCivAI_GetStatusChangeDetails(CvMinorCivAI* self, PlayerTypes ePlayer, bool bAdd, bool bFriends, bool bAllies, CvString& result);static void AfterCvMinorCivAI_GetStatusChangeDetails(CvMinorCivAI* self, PlayerTypes ePlayer, bool bAdd, bool bFriends, bool bAllies, CvString& result);static CvString ReplaceCvMinorCivAI_GetStatusChangeDetails(CvString (*original)(CvMinorCivAI*, PlayerTypes, bool, bool, bool), CvMinorCivAI* self, PlayerTypes ePlayer, bool bAdd, bool bFriends, bool bAllies);CivRegisterBefore<CivHooks::CvMinorCivAI_GetStatusChangeDetails>(host, &BeforeCvMinorCivAI_GetStatusChangeDetails);CivRegisterAfter<CivHooks::CvMinorCivAI_GetStatusChangeDetails>(host, &AfterCvMinorCivAI_GetStatusChangeDetails);CivRegisterReplace<CivHooks::CvMinorCivAI_GetStatusChangeDetails>(host, &ReplaceCvMinorCivAI_GetStatusChangeDetails);

Code

10695CvString CvMinorCivAI::GetStatusChangeDetails(PlayerTypes ePlayer, bool bAdd, bool bFriends, bool bAllies)10696{10697	Localization::String strDetailedInfo;1069810699	MinorCivTraitTypes eTrait = GetTrait();1070010701	if(eTrait == MINOR_CIV_TRAIT_CULTURED)10702	{10703		int iCultureBonusAmount = 0;10704		if (bFriends)10705		{10706			iCultureBonusAmount += GetCultureFlatFriendshipBonus(ePlayer) + GetCulturePerBuildingFriendshipBonus(ePlayer);10707		}10708		if (bAllies)10709		{10710			iCultureBonusAmount += GetCultureFlatAlliesBonus(ePlayer) + GetCulturePerBuildingAlliesBonus(ePlayer);10711		}10712		if (!bAdd)10713		{10714			iCultureBonusAmount = -iCultureBonusAmount;10715		}1071610717		if(bAllies && bAdd)		// Now Allies (includes jump from nothing through Friends to Allies)10718		{10719			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_ALLIES_CULTURE");10720			strDetailedInfo << iCultureBonusAmount;10721		}10722		else if(bFriends && bAdd)		// Now Friends10723		{10724			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_FRIENDS_CULTURE");10725			strDetailedInfo << iCultureBonusAmount;10726		}10727		else if(!bAdd)		// Bonus diminished (or removed)10728		{10729			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_LOST_CULTURE");10730			strDetailedInfo << iCultureBonusAmount;10731		}10732	}10733	else if(eTrait == MINOR_CIV_TRAIT_MILITARISTIC)10734	{10735		if(bAllies && bAdd)		// Now Allies (includes jump from nothing through Friends to Allies)10736			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_ALLIES_MILITARISTIC");10737		else if(bFriends && bAdd)		// Now Friends10738			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_FRIENDS_MILITARISTIC");10739		else if(bFriends && !bAdd)		// No longer Friends (includes drop from Allies down to nothing) - this should be before the Allies check!10740			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_LOST_FRIENDS_MILITARISTIC");10741		else if(bAllies && !bAdd)		// No longer Allies10742			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_LOST_ALLIES_MILITARISTIC");10743	}10744	else if(eTrait == MINOR_CIV_TRAIT_MARITIME)10745	{10746		int iCapitalFoodTimes100 = 0;10747		int iOtherCitiesFoodTimes100 = 0;1074810749		if(bFriends)	// Friends bonus10750		{10751			iCapitalFoodTimes100 += GetFriendsCapitalFoodBonus(ePlayer);10752			iOtherCitiesFoodTimes100 += GetFriendsOtherCityFoodBonus(ePlayer);10753		}10754		if(bAllies)		// Allies bonus10755		{10756			iCapitalFoodTimes100 += GetAlliesCapitalFoodBonus(ePlayer);10757			iOtherCitiesFoodTimes100 += GetAlliesOtherCityFoodBonus(ePlayer);10758		}1075910760		if(!bAdd)		// Flip amount of we're taking bonuses away10761		{10762			iCapitalFoodTimes100 = -iCapitalFoodTimes100;10763			iOtherCitiesFoodTimes100 = -iOtherCitiesFoodTimes100;10764		}1076510766		// Now that we've changed the gameplay, add together the two so the DISPLAY looks right10767		iCapitalFoodTimes100 += iOtherCitiesFoodTimes100;10768		float fCapitalFood = float(iCapitalFoodTimes100) / 100;10769		float fOtherCitiesFood = float(iOtherCitiesFoodTimes100) / 100;10770		//iCapitalFood += iOtherCitiesFood;1077110772		if(bAllies && bAdd)		// Now Allies (includes jump from nothing through Friends to Allies)10773		{10774			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_ALLIES_MARITIME");10775			strDetailedInfo << fCapitalFood << fOtherCitiesFood;10776		}10777		else if(bFriends && bAdd)		// Now Friends10778		{10779			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_FRIENDS_MARITIME");10780			strDetailedInfo << fCapitalFood << fOtherCitiesFood;10781		}10782		else if(!bAdd)		// Bonus diminished (or removed)10783		{10784			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_LOST_MARITIME");10785			strDetailedInfo << fCapitalFood << fOtherCitiesFood;10786		}10787	}10788	else if(eTrait == MINOR_CIV_TRAIT_MERCANTILE)10789	{10790		int iHappinessBonus = 0;1079110792		if(bFriends)	// Friends bonus10793		{10794			iHappinessBonus += GetHappinessFlatFriendshipBonus(ePlayer) + GetHappinessPerLuxuryFriendshipBonus(ePlayer);10795		}10796		if(bAllies)		// Allies bonus10797		{10798			iHappinessBonus += GetHappinessFlatAlliesBonus(ePlayer) + GetHappinessPerLuxuryAlliesBonus(ePlayer);10799		}10800		if(!bAdd)		// Flip amount of we're taking bonuses away10801		{10802			iHappinessBonus = -iHappinessBonus;10803		}1080410805		if(bAllies && bAdd)		// Now Allies (includes jump from nothing through Friends to Allies)10806		{10807			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_ALLIES_MERCANTILE");10808			strDetailedInfo << iHappinessBonus;10809		}10810		else if(bFriends && bAdd)		// Now Friends10811		{10812			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_FRIENDS_MERCANTILE");10813			strDetailedInfo << iHappinessBonus;10814		}10815		else if(!bAdd)		// Bonus diminished (or removed)10816		{10817			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_LOST_MERCANTILE");10818			strDetailedInfo << iHappinessBonus;10819		}10820	}1082110822	// Religious10823	if(eTrait == MINOR_CIV_TRAIT_RELIGIOUS)10824	{10825		int iFaithBonusAmount = 0;10826		if (bFriends)10827		{10828			iFaithBonusAmount += GetFaithFlatFriendshipBonus(ePlayer);10829		}10830		if (bAllies)10831		{10832			iFaithBonusAmount += GetFaithFlatAlliesBonus(ePlayer);10833		}10834		if (!bAdd)10835		{10836			iFaithBonusAmount = -iFaithBonusAmount;10837		}1083810839		if(bAllies && bAdd)		// Now Allies (includes jump from nothing through Friends to Allies)10840		{10841			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_ALLIES_RELIGIOUS");10842			strDetailedInfo << iFaithBonusAmount;10843		}10844		else if(bFriends && bAdd)		// Now Friends10845		{10846			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_NOW_FRIENDS_RELIGIOUS");10847			strDetailedInfo << iFaithBonusAmount;10848		}10849		else if(!bAdd)		// Bonus diminished (or removed)10850		{10851			strDetailedInfo = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_LOST_RELIGIOUS");10852			strDetailedInfo << iFaithBonusAmount;10853		}10854	}1085510856	return strDetailedInfo.toUTF8();10857}

Calls

Called by