public decimal GetWeight(RuneStatType statType) { switch (statType) { case RuneStatType.HpPercent: return(HpPercentWeight); case RuneStatType.HpFlat: return(ExpectedBaseHp == 0 ? 0 : (HpPercentWeight / ExpectedBaseHp) * 100); case RuneStatType.AtkPercent: return(AtkPercentWeight); case RuneStatType.AtkFlat: return(ExpectedBaseAtk == 0 ? 0 : (AtkPercentWeight / ExpectedBaseAtk) * 100); case RuneStatType.DefPercent: return(DefPercentWeight); case RuneStatType.DefFlat: return(ExpectedBaseDef == 0 ? 0 : (DefPercentWeight / ExpectedBaseDef) * 100); case RuneStatType.Spd: return(SpdWeight); case RuneStatType.CriRate: return(CritRateWeight); case RuneStatType.CriDmg: return(CritDmgWeight); case RuneStatType.Resistance: return(ResistanceWeight); case RuneStatType.Accuracy: return(AccuracyWeight); default: return(0); } }
public static string ToDisplayString(this RuneStatType runeStatType) { switch (runeStatType) { case RuneStatType.HpFlat: case RuneStatType.HpPercent: return("HP"); case RuneStatType.AtkFlat: case RuneStatType.AtkPercent: return("ATK"); case RuneStatType.DefFlat: case RuneStatType.DefPercent: return("DEF"); case RuneStatType.Spd: return("SPD"); case RuneStatType.CriRate: return("CRI Rate"); case RuneStatType.CriDmg: return("CRI Dmg"); case RuneStatType.Resistance: return("Resistance"); case RuneStatType.Accuracy: return("Accuracy"); default: throw new Exception($"Requested display string for invalid stat type ({runeStatType})"); } }
public RuneStat(RuneStatType type, short amount) { Type = type; Amount = amount; }
public static bool IsPercentStat(this RuneStatType runeStatType) { return(!(runeStatType == RuneStatType.HpFlat || runeStatType == RuneStatType.AtkFlat || runeStatType == RuneStatType.DefFlat || runeStatType == RuneStatType.Spd)); }