コード例 #1
0
        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));
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
ファイル: Spawner.cs プロジェクト: Jirow13/CustomSpawns
        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);
            }
        }