Garrison Size

Users who are viewing this thread

Solution
In Taleworlds.CampaignSystem.Settlement

// TaleWorlds.CampaignSystem.Settlement
using TaleWorlds.Core;
using TaleWorlds.Localization;

public void AddGarrisonParty(bool addInitialGarrison = false)
{
PartyTemplateObject defaultPartyTemplate = Culture.DefaultPartyTemplate;
defaultPartyTemplate.IncrementNumberOfCreated();
TextObject textObject = GameTexts.FindText("str_garrison_party_name");
textObject.SetTextVariable("MAJOR_PARTY_LEADER", Name);
MobileParty mobileParty = MBObjectManager.Instance.CreateObject<MobileParty>($"garrison_party_{base.StringId}_{OwnerClan.StringId}_{defaultPartyTemplate.NumberOfCreated}");
mobileParty.IsGarrison = true;
mobileParty.HomeSettlement = this;
float randomFloat =...
In Taleworlds.CampaignSystem.Settlement

// TaleWorlds.CampaignSystem.Settlement
using TaleWorlds.Core;
using TaleWorlds.Localization;

public void AddGarrisonParty(bool addInitialGarrison = false)
{
PartyTemplateObject defaultPartyTemplate = Culture.DefaultPartyTemplate;
defaultPartyTemplate.IncrementNumberOfCreated();
TextObject textObject = GameTexts.FindText("str_garrison_party_name");
textObject.SetTextVariable("MAJOR_PARTY_LEADER", Name);
MobileParty mobileParty = MBObjectManager.Instance.CreateObject<MobileParty>($"garrison_party_{base.StringId}_{OwnerClan.StringId}_{defaultPartyTemplate.NumberOfCreated}");
mobileParty.IsGarrison = true;
mobileParty.HomeSettlement = this;
float randomFloat = MBRandom.RandomFloat;
int troopNumberLimit = addInitialGarrison ? ((int)((float)mobileParty.Party.PartySizeLimit * (0.4f + 0.3f * (1f - randomFloat * randomFloat)))) : 0;
mobileParty.InitializeMobileParty(textObject, defaultPartyTemplate, GatePosition, 0f, 0f, MobileParty.PartyTypeEnum.GarrisonParty, troopNumberLimit);
mobileParty.Party.Owner = OwnerClan.Leader;
mobileParty.Party.Visuals.SetMapIconAsDirty();
mobileParty.InitializePartyTrade(0);
mobileParty.Ai.DisableAi();
mobileParty.Aggressiveness = 0f;
Town.GarrisonParty = mobileParty;
CampaignEventDispatcher.Instance.PartyEncountered(mobileParty.Party, Party);
}
 
Upvote 0
Solution
Back
Top Bottom