private static MobileParty CreatePartyInstance(Settlement spawnedSettlement, Clan clan, PartyTemplateObject templateObject, Track.PartyTypeEnum partyType, TextObject partyName = null) { if (clan.IsBanditFaction) { return(BanditPartyComponent.CreateBanditParty(templateObject.StringId + "_" + 1, clan, spawnedSettlement.Hideout, false)); } return(MobileParty.CreateParty(templateObject.StringId + "_" + 1, null)); }
public static MobileParty SpawnParty(Settlement spawnedSettlement, Clan clan, PartyTemplateObject templateObject, Track.PartyTypeEnum partyType, TextObject partyName = null) { try { if (templateObject == null) { ErrorHandler.ShowPureErrorMessage( "Party Template with ID " + templateObject.StringId + " possibly does not exist. It was tried to be assigned to " + templateObject.StringId); return(null); } //get name and show message. TextObject textObject = partyName ?? clan.Name; ModDebug.ShowMessage("CustomSpawns: Spawning " + textObject.ToString() + " at " + spawnedSettlement.GatePosition + " in settlement " + spawnedSettlement.Name.ToString(), DebugMessageType.Spawn); //create. MobileParty mobileParty = CreatePartyInstance(spawnedSettlement, clan, templateObject, partyType, partyName); if (mobileParty == null) { return(null); //must have had some issue. or maybe it was just the wind. } mobileParty.InitializeMobilePartyAroundPosition(ConstructTroopRoster(templateObject, mobileParty.Party), new TroopRoster(mobileParty.Party), spawnedSettlement.GatePosition, 0); //initialize InitParty(mobileParty, textObject, clan, spawnedSettlement); return(mobileParty); } catch (Exception e) { ErrorHandler.ShowPureErrorMessage("Possible invalid spawn data. Spawning of party terminated."); ErrorHandler.HandleException(e, "party spawning"); return(null); } }
public static MobileParty SpawnParty(Settlement spawnedSettlement, Clan clan, PartyTemplateObject templateObject, Track.PartyTypeEnum partyType, TextObject partyName = null) { try { //get name and show message. TextObject textObject = partyName ?? clan.Name; ModDebug.ShowMessage("CustomSpawns: Spawning " + textObject.ToString() + " at " + spawnedSettlement.GatePosition + " in settlement " + spawnedSettlement.Name.ToString(), DebugMessageType.Spawn); //create. MobileParty mobileParty = MBObjectManager.Instance.CreateObject <MobileParty>(templateObject.StringId + "_" + 1); mobileParty.InitializeMobileParty(textObject, ConstructTroopRoster(templateObject, mobileParty.Party), new TroopRoster(mobileParty.Party), spawnedSettlement.GatePosition, 0); //initialize Spawner.InitParty(mobileParty, textObject, clan, spawnedSettlement); return(mobileParty); } catch (Exception e) { ErrorHandler.ShowPureErrorMessage("Possible invalid spawn data. Spawning of party terminated."); ErrorHandler.HandleException(e, "party spawning"); return(null); } }