public void EffectSerializationTest() { int damageAmount = 5; DamageEffect.DamageType typeOfDamage = DamageEffect.DamageType.Bludgeoning; Effect damage1 = new DamageEffect(typeOfDamage, damageAmount); string json = JsonConvert.SerializeObject(damage1); Effect returnedEffect = JsonConvert.DeserializeObject <Effect>(json); DamageEffect damage2 = returnedEffect as DamageEffect; Assert.AreEqual(damageAmount, damage2.StaticAmount); Assert.AreEqual(typeOfDamage, damage2.TypeOfDamage); Assert.AreEqual(Effect.EffectType.Damage, damage2.TypeOfEffect); }
public void TakeDamage(DamageEffect.DamageType typeOfDamage, int amount) { if (typeOfDamage == DamageEffect.DamageType.Fire && HasTrait("Born of Flame")) { return; } Vitality.Value -= amount; //TODO: check for 0? //TODO: trait system? if (HasTrait("Fragile Chalice")) { Mana.Value -= 1; } if (Vitality.Value <= 0) { if (OnDeath != null) { OnDeath(this, this); } } }