public NewValeurStat(ValeurPersoStat valeurPerso) { this.StatId = valeurPerso.Stat.Id; this.Id = valeurPerso.PersoId; this.NomStat = valeurPerso.Stat.Nom; this.Valeur = valeurPerso.Valeur; }
/// <summary> /// retourne la valeur d'une stat pour le personnage /// </summary> /// <param name="stat"></param> /// <returns></returns> private int GetValueStat(Stat stat) { int retour = 0; ValeurRaceStat valeurStatRace = Race.Stat.FirstOrDefault(s => s.Stat == stat); ValeurSousRaceStat valeurStatSousRace = SousRace.Stat.FirstOrDefault(s => s.Stat == stat); ValeurClasseStat valeurStatClasse = Classe.Stat.FirstOrDefault(s => s.Stat == stat); ValeurPersoStat valeurStatPerso = Stats.FirstOrDefault(s => s.Stat == stat); ValeurBuffStat valeurStatBuf = Buff.FirstOrDefault(s => s.Stat == stat); int statRace = 0; int statSousRace = 0; int statClasse = 0; int statPerso = 0; int statBuf = 0; if (valeurStatRace != null) { statRace = valeurStatRace.Valeur; } if (valeurStatSousRace != null) { statSousRace = valeurStatSousRace.Valeur; } if (valeurStatClasse != null) { statClasse = valeurStatClasse.Valeur; } if (valeurStatPerso != null) { statPerso = valeurStatPerso.Valeur; } if (valeurStatBuf != null) { statBuf = valeurStatBuf.Valeur; } int bonus = 0; if (stat.StatUtils != null) { foreach (StatUtil util in stat.StatUtils) { int tmp = (GetValueStat(util.StatUtile) * util.Valeur) / 100; bonus += tmp; } } if (stat.Type == Stat.Typestats.Base) { return(((statRace + statSousRace + statPerso) * (100 + statClasse * Lvl)) / 100 + statBuf + bonus); } else { return(statRace + statSousRace + statPerso + (statClasse * Lvl) + statBuf + bonus); } }