Hooks
static bool BeforeCvMinorCivAI_DoThreateningBarbKilled(CvMinorCivAI* self, PlayerTypes eKillingPlayer, int iX, int iY);static void AfterCvMinorCivAI_DoThreateningBarbKilled(CvMinorCivAI* self, PlayerTypes eKillingPlayer, int iX, int iY);static void ReplaceCvMinorCivAI_DoThreateningBarbKilled(void (*original)(CvMinorCivAI*, PlayerTypes, int, int), CvMinorCivAI* self, PlayerTypes eKillingPlayer, int iX, int iY);CivRegisterBefore<CivHooks::CvMinorCivAI_DoThreateningBarbKilled>(host, &BeforeCvMinorCivAI_DoThreateningBarbKilled);CivRegisterAfter<CivHooks::CvMinorCivAI_DoThreateningBarbKilled>(host, &AfterCvMinorCivAI_DoThreateningBarbKilled);CivRegisterReplace<CivHooks::CvMinorCivAI_DoThreateningBarbKilled>(host, &ReplaceCvMinorCivAI_DoThreateningBarbKilled);
Code
3372/// Player killed a threatening barb, so reward him!3373/// NOTE: Player can get credit even if we haven't sent him a notification (ex. is only one barb, player is far away)3374void CvMinorCivAI::DoThreateningBarbKilled(PlayerTypes eKillingPlayer, int iX, int iY)3375{3376 CvAssertMsg(eKillingPlayer >= 0, "eMajor is expected to be non-negative (invalid Index)");3377 CvAssertMsg(eKillingPlayer < MAX_MAJOR_CIVS, "eMajor is expected to be within maximum bounds (invalid Index)");33783379 if (IsThreateningBarbariansEventActiveForPlayer(eKillingPlayer))3380 {3381 ChangeFriendshipWithMajor(eKillingPlayer, /*12*/ GC.getFRIENDSHIP_PER_BARB_KILLED());33823383 ChangeAngerFreeIntrusionCounter(eKillingPlayer, 5);33843385 Localization::String strMessage = Localization::Lookup("TXT_KEY_NOTIFICATION_MINOR_BARB_KILLED");3386 strMessage << GetPlayer()->getNameKey();3387 Localization::String strSummary = Localization::Lookup("TXT_KEY_NOTIFICATION_SM_MINOR_BARB_KILLED");3388 strSummary << GetPlayer()->getNameKey();33893390 AddNotification(strMessage.toUTF8(), strSummary.toUTF8(), eKillingPlayer, iX, iY);3391 }3392}