public void CalculateFinalValueUsingFormula_Test() { StatSheet sheet = new StatSheet(); Stat dexterity = sheet.Get(StatType.Dexterity); dexterity.BaseValue = 100f; Stat crit = sheet.Get(StatType.CriticalHit); Assert.That(dexterity.Value, Is.EqualTo(100f)); Assert.That(crit.BaseValue, Is.EqualTo(0f)); Assert.That(crit.Value, Is.EqualTo(15f)); }
public void UpdatesWhenDependentStatUpdates_Test() { StatSheet sheet = new StatSheet(); Stat dexterity = sheet.Get(StatType.Dexterity); dexterity.BaseValue = 100f; Stat crit = sheet.Get(StatType.CriticalHit); Assert.That(dexterity.Value, Is.EqualTo(100f)); Assert.That(crit.BaseValue, Is.EqualTo(0f)); Assert.That(crit.Value, Is.EqualTo(15f)); dexterity.AddModifier(new StatModifier(StatType.Strength, StatModifierType.Flat, 100f)); Assert.That(dexterity.Value, Is.EqualTo(200f)); Assert.That(crit.Value, Is.EqualTo(30f)); }
public void UpdatesWhenStatModifierUpdates_Test() { StatSheet sheet = new StatSheet(); Stat strength = sheet.Get(StatType.Strength); StatModifier mod = new StatModifier(StatType.Strength, StatModifierType.Flat, 9f); Assert.That(strength.Value, Is.EqualTo(0f)); strength.AddModifier(mod); Assert.That(strength.Value, Is.EqualTo(9f)); mod.Value = 42f; Assert.That(strength.Value, Is.EqualTo(42f)); }
private void drawStatSheet(StatSheet sheet) { showStats = EditorGUILayout.Foldout(showStats, "Stats"); if (showStats) { foreach (StatType type in StatFormulas.STAT_TYPES) { Stat stat = sheet.Get(type); EditorGUILayout.LabelField(type.ToString()); EditorGUI.indentLevel++; stat.BaseValue = EditorGUILayout.FloatField("Base", stat.BaseValue); // TODO Add view for StatModifier list EditorGUILayout.LabelField("Final", stat.Value.ToString()); EditorGUI.indentLevel--; } } }