public static CriticalInfo CriticalStrike() { CriticalInfo critical = new CriticalInfo(); critical.Id = "c01"; critical.Name = "Critical Strike"; critical.Chance = 80.0f; critical.Multiple = 2.0f; critical.Bonus = 0.0f; critical.StackType = System.DamageSystem.StackType.Diminishing; critical.Stacks = new List <System.DamageSystem.IDamageModification>(); critical.CanEvade = true; critical.CanIgnoreArmor = false; critical.CanIgnoreBlock = false; return(critical); }
public float CalculateDamage() { float damage = 0; rawDamage = DamageAmount; increasedDamage = 0; reducedDamage = 0; foreach (DictionaryEntry entry in PrePassive.Modifications) { CriticalInfo modifier = entry.Value as CriticalInfo; modifier.Critical(this); } foreach (DictionaryEntry entry in Critical.Modifications) { CriticalInfo modifier = entry.Value as CriticalInfo; modifier.Critical(this); } foreach (DictionaryEntry entry in Evasion.Modifications) { EvasionInfo modifier = entry.Value as EvasionInfo; modifier.Evade(this); } foreach (DictionaryEntry entry in Reduction.Modifications) { ReductionInfo modifier = entry.Value as ReductionInfo; modifier.Reduce(this); } foreach (DictionaryEntry entry in PostPassive.Modifications) { CriticalInfo modifier = entry.Value as CriticalInfo; modifier.Critical(this); } return(damage); }