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 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 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); } } }
private void BuildCurStats(MChar c) { c.GetCurStats().Init(c.GetBaseStats()); }