Beispiel #1
0
 public Spell(SpellName spellname,
     SpellTalentSchool talentSchool,
     SpellSchool directSpellSchool = default(SpellSchool),
     SpellSchool DoTSpellSchool = default(SpellSchool),
     double duration = 0,
     bool hasteAffectsDuration = false,
     double baseCasttime = 0,
     double flatCasttimeReduction = 0,
     double percentualCasttimeReduction = 0,
     double hasteFactor = 1,
     double cooldown = 0,
     double manaCostOfBaseMana = 0,
     double manaCostFactor = 1,
     double requiredBuffUptimeFactor = 1,
     Reagent reagent = Reagent.None,
     double averageDirectBaseDamage = 0,
     double averageDoTBaseDamage = 0,
     double SPDirectScaling = 0,
     double SPDoTScaling = 0,
     double APDirectScaling = 0,
     double APDoTScaling = 0,
     bool channeled = false,
     int numOfTicks = 1,
     double directDamageFactor = 1,
     double DoTDamageFactor = 1,
     bool directCanCrit = true,
     bool DoTCanCrit = false,
     double directCritChance = 0,
     double DoTCritChance = 0,
     double directCritDamageFactor = 1.5,
     double DoTCritDamageFactor = 1.5)
 {
     this.spellname = spellname;
     this.talentSchool = talentSchool;
     this.directSpellSchool = directSpellSchool;
     this.duration = duration;
     this.hasteAffectsDuration = hasteAffectsDuration;
     this.baseCasttime = baseCasttime;
     this.flatCasttimeReduction = flatCasttimeReduction;
     this.percentualCasttimeReduction = percentualCasttimeReduction;
     this.effectiveCasttime = ((baseCasttime * (1 - (percentualCasttimeReduction / 100))) - flatCasttimeReduction) / hasteFactor;
     this.hasteFactor = hasteFactor;
     this.cooldown = cooldown;
     this.effectiveCooldown = cooldown;
     this.manaCostOfBaseMana = manaCostOfBaseMana;
     this.manaCostFactor = manaCostFactor;
     this.requiredBuffUptimeFactor = requiredBuffUptimeFactor;
     this.averageDirectBaseDamage = averageDirectBaseDamage;
     this.averageDoTBaseDamage = averageDoTBaseDamage;
     this.SPDirectScaling = SPDirectScaling;
     this.SPDoTScaling = SPDoTScaling;
     this.APDirectScaling = APDirectScaling;
     this.APDoTScaling = APDoTScaling;
     this.reagent = reagent;
     this.channeled = channeled;
     this.numOfTicks = numOfTicks;
     this.directDamageFactor = directDamageFactor;
     this.DoTDamageFactor = DoTDamageFactor;
     this.directCanCrit = directCanCrit;
     this.DoTCanCrit = DoTCanCrit;
     this.directCritChance = directCritChance;
     this.DoTCritChance = DoTCritChance;
     this.directCritDamageFactor = directCritDamageFactor;
     this.DoTCritDamageFactor = DoTCritDamageFactor;
 }