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); }