public Hero CreateRandomLeader(Clan clan, BaseSettlementInfo settlementInfo) { var templateBase = clan.Leader.CharacterObject; var characterTemplate = CharacterObject.Templates.Where(go => go.Culture == clan.Culture && (go.Occupation == Occupation.Lord || go.Occupation == Occupation.Lady)).GetRandomElement(); characterTemplate.InitializeEquipmentsOnLoad(templateBase.AllEquipments.ToList()); foreach (var attribute in CharacterAttributes.All) { characterTemplate.SetAttributeValue(attribute.AttributeEnum, 255); } foreach (var skill in SkillObject.All) { characterTemplate.SetSkillValue(skill, 255); } characterTemplate.SetSkillValue(SkillObject.GetSkill(13), 1000); var hero = HeroCreator.CreateSpecialHero(characterTemplate, settlementInfo.Settlement); hero.IsNoble = true; hero.IsMinorFactionHero = false; foreach (var perk in PerkObject.All) { hero.SetPerkValue(perk, true); } hero.ChangeState(Hero.CharacterStates.Active); Get(hero.CharacterObject).IsCustomCharacter = true; return(hero); }
public BaseBannerInfo GetBaseBanner(BaseSettlementInfo settlementInfo) { var availableBannerInfos = new List <BaseBannerInfo>(); BaseBannerInfo bannerInfo = null; foreach (var info in this.Infos.Where(i => !i.Used)) { if (info.Settlement == settlementInfo.Settlement.Name.ToString() && info.Culture == settlementInfo.Settlement.Culture.StringId) { availableBannerInfos.Add(info); break; } if (info.Culture == settlementInfo.Settlement.Culture.StringId) { availableBannerInfos.Add(info); break; } if (info.Faction == settlementInfo.CurrentFaction.StringId) { availableBannerInfos.Add(info); break; } } if (availableBannerInfos.Count > 0) { bannerInfo = availableBannerInfos.GetRandomElement(); } if (bannerInfo != null) { bannerInfo.Used = true; } return(bannerInfo); }