private MChar BuildHelper(PreCharParams preCharParams) { var character = new MChar(preCharParams.Race); if (preCharParams.Race != ERace.Critter && preCharParams.Race != ERace.None) { var racialPerks = RaceParamsTable.Instance.Table[preCharParams.Race].DefaultPerks; PerkMediator.Instance.SetCharacterPerks(character, racialPerks); } PerkMediator.Instance.SetCharacterPerks(character, preCharParams.Perks); this.BuildBaseClassHelper(preCharParams, character); this.BuildAbilities(preCharParams, character); this.BuildCharStats(preCharParams, character); this.BuildClassPrimaryStats(character); var secondary = GetSecondaryStats(character.GetBaseStats().GetPrimaryStats()); character.GetBaseStats().SetSecondaryStats(secondary); this.BuildClassSecondaryStats(character); this.BuildCurStats(character); this.BuildCurPoints(character); character.SetType(preCharParams.Type); character.SetParams(preCharParams); this.BuildCharMount(preCharParams, character); character.SetAIRole(preCharParams.AIRole); return(character); }
private void BuildBaseClassHelper(PreCharParams p, MChar c) { var builder = new ClassBuilder(); foreach (var kvp in p.Classes) { var toAdd = builder.Build(kvp.Key); toAdd.Level = kvp.Value; c.GetBaseClasses().Add(kvp.Key, toAdd); } }
private void BuildClassSecondaryStats(MChar c) { foreach (var kvp in c.GetBaseClasses()) { var stats = kvp.Value.GetParams(); foreach (var stat in stats.SecondaryStats) { c.GetBaseStats().AddStat(stat.Key, stat.Value); } } }
public void SetCharacterPerks(MChar c, List <EPerk> perks) { foreach (var proto in perks) { var perk = PerkFactory.Instance.CreateNewObject(proto); if (perk != null) { perk.Init(); c.AddPerk(perk); } } }
private void BuildCharStats(PreCharParams preCharParams, MChar character) { var raceStats = this.GetRaceStats(preCharParams); if (raceStats == null) { var specificStats = PredefinedCharTable.Instance.Table[preCharParams.Name]; character.GetBaseStats().SetPrimaryStats(specificStats.Stats); } else { character.GetBaseStats().SetPrimaryStats(raceStats); } }
private void BuildCharMount(PreCharParams preCharParams, MChar character) { if (preCharParams.Type == Enum.ECharType.Humanoid) { var builder = new MountBuilder(); this.BuildArmorHelper(character, preCharParams); this.BuildWeaponHelper(character, preCharParams); var mountParams = this.GetMountParams(preCharParams); if (mountParams != null) { character.SetMount(builder.Build(mountParams)); } } }
private void BuildAbilities(PreCharParams p, MChar c) { foreach (var kvp in p.AbilityEffectDict) { var ability = AbilityFactory.Instance.CreateNewObject(kvp.Key); ability.Data.Effects.AddRange(kvp.Value); c.GetAbilitiesContainer().AddAbility(ability); } var wpnAbs = WeaponAbilityFactory.Instance.CreateNewObject(p.WpnAbilities); foreach (var v in wpnAbs) { c.GetAbilitiesContainer().AddAbility(v); } }
private void BuildWeaponHelper(MChar c, PreCharParams p) { var rWpnParams = this.GetWpnParams(p, p.RWeapons); var lWpnParams = this.GetWpnParams(p, p.LWeapons); if (rWpnParams != null) { var weapon = WeaponFactory.Instance.CreateNewObject( rWpnParams.Name, rWpnParams.Tier); c.GetEquipment().AddWeapon(weapon, false); } if (lWpnParams != null) { var weapon = WeaponFactory.Instance.CreateNewObject( lWpnParams.Name, lWpnParams.Tier); c.GetEquipment().AddWeapon(weapon, true); } }
private void BuildArmorHelper(MChar c, PreCharParams p) { var armorParams = this.GetArmorParams(p); if (armorParams != null) { var armor = ArmorFactory.Instance.CreateNewObject( armorParams.Name, armorParams.Tier); c.GetEquipment().AddArmor(armor); } var helmParams = this.GetHelmParams(p); if (helmParams != null) { var helm = HelmFactory.Instance.CreateNewObject( helmParams.Name, helmParams.Tier); c.GetEquipment().AddHelm(helm); } }
private void BuildCurPoints(MChar c) { c.GetPoints().Init(c.GetCurStats()); }
private void BuildCurStats(MChar c) { c.GetCurStats().Init(c.GetBaseStats()); }