Beispiel #1
0
        public void DailyTick()
        {
            if (this._sneaker == null || this._sneaker.IsDead)
            {
                Settlement randomSettlement = Settlement.All.Where(obj => obj.IsTown).GetRandomElement();

                CultureObject culture = randomSettlement.Culture;

                CharacterObject co = CharacterObject.CreateFrom(culture.FemaleBeggar, true);
                CharacterObject characterObject = MBObjectManager.Instance.CreateObject <CharacterObject>();
                characterObject.Culture = co.Culture;
                characterObject.Age     = (float)MBRandom.RandomInt(22, 30);
                characterObject.DefaultFormationGroup   = co.DefaultFormationGroup;
                characterObject.StaticBodyPropertiesMin = co.StaticBodyPropertiesMin;
                characterObject.StaticBodyPropertiesMax = co.StaticBodyPropertiesMax;
                characterObject.IsFemale  = true;
                characterObject.Level     = co.Level;
                characterObject.HairTags  = co.HairTags;
                characterObject.BeardTags = co.BeardTags;
                characterObject.InitializeEquipmentsOnLoad(co.AllEquipments.ToList <Equipment>());
                characterObject.Name = co.Name;

                this._sneaker      = HeroCreator.CreateSpecialHero(characterObject, randomSettlement);
                this._sneaker.Name = new TextObject("\"偷袭者\"" + this._sneaker.Name.ToString(), null);
                HeroInitPropertyUtils.InitAttributeAndFouse(this._sneaker);
                HeroInitPropertyUtils.FillBattleEquipment(this._sneaker);

                randomSettlement = Hero.MainHero.CurrentSettlement;
                if (null != randomSettlement && randomSettlement.IsTown)
                {
                    CharacterChangeLocation(this._sneaker, this._sneaker.CurrentSettlement, randomSettlement);
                    InformationManager.DisplayMessage(new InformationMessage(this._sneaker.Name.ToString() + " 出现在" + randomSettlement.Name, Colors.Blue));
                }
            }
        }
        private static Hero DealNPC(CharacterObject target, CampaignGameStarter campaignGameStarter)
        {
            Hero hero = null;

            if (null != target)
            {
                CharacterObject character = CharacterObject.OneToOneConversationCharacter;
                hero = HeroCreator.CreateSpecialHero(character, null, Clan.PlayerClan, Clan.PlayerClan);
                // hero.StringId = "sms_npc_" + System.Enum.GetName(typeof(Occupation), character.Occupation) + hero.StringId;


                hero.ChangeState(Hero.CharacterStates.Active);
                hero.CacheLastSeenInformation(hero.HomeSettlement, true);
                hero.SyncLastSeenInformation();
                HeroInitPropertyUtils.InitHeroForNPC(hero);


                AddHeroToPartyAction.Apply(hero, MobileParty.MainParty, true);
                CampaignEventDispatcher.Instance.OnHeroCreated(hero, false);
                ConversationUtils.ChangeCurrentCharaObject(campaignGameStarter, hero);

                if (hero.Age > 30)
                {
                    hero.SetBirthDay(HeroHelper.GetRandomBirthDayForAge((float)22));
                }
            }
            return(hero);
        }