Пример #1
0
        private static bool Prefix(TrainingFieldCampaignBehavior __instance)
        {
            if (!CultureStartOptions.FreePlayLoadedOnCondition())
            {
                //foreach (CharacterObject troop in PartyBase.MainParty.MemberRoster..ToList<CharacterObject>())
                //{
                // if (!troop.IsPlayerCharacter)
                // {
                //    PartyBase.MainParty.MemberRoster.RemoveTroop(troop, 1, default(UniqueTroopDescriptor), 0);

                // }
                // }
                //Setting Various extra values to try and match usual complete tutorial phase to make sure events fire.
                AccessTools.Field(typeof(TrainingFieldCampaignBehavior), "_talkedWithBrotherForTheFirstTime").SetValue(__instance, true);
                TutorialPhase.Instance.PlayerTalkedWithBrotherForTheFirstTime();

                Hero brother = (Hero)AccessTools.Property(typeof(StoryModeHeroes), "ElderBrother").GetValue(null);
                brother.ChangeState(Hero.CharacterStates.Disabled);
                //Believe this is line missed that is causing all the brother issues
                brother.Clan = CampaignData.NeutralFaction;


                StoryMode.StoryMode.Current.MainStoryLine.CompleteTutorialPhase(true);
                Vec2 StartPos = GetSettlementLoc(CSCharCreationOption.CSOptionSettlement());
                MobileParty.MainParty.Position2D = StartPos;
                MapState mapstate;
                mapstate = (GameStateManager.Current.ActiveState as MapState);
                mapstate.Handler.TeleportCameraToMainParty();
                SelectClanName();
                CSApplyChoices.ApplyStoryOptions();
            }
            return(false);
        }
Пример #2
0
        private static void CSAddCompanion(int NoToAdd)
        {
            Hero mainhero = Hero.MainHero;

            for (int i = 0; i < NoToAdd; i++)
            {
                string          Locculture = CSCharCreationOption.CSOptionSettlement().Culture.StringId;
                CharacterObject wanderer   = (from x in CharacterObject.Templates
                                              where x.Occupation == Occupation.Wanderer && (x.Culture.StringId == mainhero.Culture.StringId || x.Culture.StringId == Locculture)
                                              select x).GetRandomElementInefficiently <CharacterObject>();
                Settlement randomElement = (from settlement in Settlement.All
                                            where settlement.Culture == wanderer.Culture && settlement.IsTown
                                            select settlement).GetRandomElementInefficiently <Settlement>();
                Hero hero = HeroCreator.CreateSpecialHero(wanderer, randomElement, null, null, 33);
                Campaign.Current.GetCampaignBehavior <IHeroCreationCampaignBehavior>().DeriveSkillsFromTraits(hero, wanderer);
                GiveGoldAction.ApplyBetweenCharacters(null, hero, 2000, true);
                CSSetEquip(hero, 4);
                hero.HasMet = true;
                hero.Clan   = randomElement.OwnerClan;
                hero.ChangeState(Hero.CharacterStates.Active);
                AddCompanionAction.Apply(Clan.PlayerClan, hero);
                AddHeroToPartyAction.Apply(hero, MobileParty.MainParty, true);
                CampaignEventDispatcher.Instance.OnHeroCreated(hero, false);
            }
        }
Пример #3
0
        private static bool Prefix(CharacterCreation characterCreation)
        {
            CharacterObject.PlayerCharacter.Culture = CharacterCreationContent.Instance.Culture;
            Clan.PlayerClan.Culture = CharacterCreationContent.Instance.Culture;
            Settlement settlement = CSCharCreationOption.cultureSettlement(Hero.MainHero);

            Clan.PlayerClan.UpdateHomeSettlement(settlement);
            Hero.MainHero.BornSettlement = Clan.PlayerClan.HomeSettlement;

            return(false);
        }
Пример #4
0
        public static Settlement CSOptionSettlement()
        {
            int opt = CSCharCreationOption.CSLocationOption;

            switch (opt)
            {
            case 0:
                return(CSCharCreationOption.cultureSettlement(Hero.MainHero));

            case 1:
                return(CSCharCreationOption.RandcultureSettlement());

            case 2:
                return(Settlement.Find("town_A8"));

            case 3:
                return(Settlement.Find("town_B2"));

            case 4:
                return(Settlement.Find("town_EW2"));

            case 5:
                return(Settlement.Find("town_S2"));

            case 6:
                return(Settlement.Find("town_K4"));

            case 7:
                return(Settlement.Find("town_V3"));

            case 8:
                return(CSCharCreationOption.cultureSettlement(Hero.MainHero));

            default:
                return(Settlement.Find("tutorial_training_field"));
            }
        }