public override void OnGameEnd(Game game) { if (ModSettings.Settings.DebugMode) { GarrisonRecruitmentReport.WriteReport(); } }
private void OnDailyTick() { var settlements = ModSettings.Settings.GarrisonRecruitment.EnabledForAI ? Settlement.All : Hero.MainHero.Clan.Settlements; foreach (var settlement in settlements) { if (CheckEligibility(settlement)) { var dailyNumberOfRecruits = (int)Math.Ceiling(ModSettings.Settings.GarrisonRecruitment.DailyNumberOfRecruits); var garrisonSizeLimit = Campaign.Current.Models.PartySizeLimitModel.GetPartyMemberSizeLimit(settlement.Town.GarrisonParty.Party); var currentGarrisonSize = settlement.Town.GarrisonParty.MemberRoster.TotalManCount; var numberOfTroopsToAdd = (int)Math.Min(dailyNumberOfRecruits, garrisonSizeLimit.ResultNumber - currentGarrisonSize); var troop = GetTroopToAdd(settlement); if (troop != null) { settlement.Town.GarrisonParty.MemberRoster.AddToCounts(troop, numberOfTroopsToAdd); if (settlement.OwnerClan.Leader.StringId == Hero.MainHero.StringId) { Logger.Log($"{numberOfTroopsToAdd} {troop.Name} were added to {settlement.Name}'s guarrison", true); } if (ModSettings.Settings.DebugMode) { GarrisonRecruitmentReport.AddEntry(settlement, troop, numberOfTroopsToAdd); } } else { Logger.Log($"{settlement.Culture.Name} or {settlement.OwnerClan.Culture} have missing troop data"); } } } }