public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { var stacks = unit.GetModifierStacks("modifier_shadow_demon_shadow_poison"); if (stacks <= 0) { return(new Damage()); } var lvl = this.Owner.Abilities.FirstOrDefault(x => x.Id == AbilityId.shadow_demon_shadow_poison)?.Level ?? 1; var stackDamage = this.DamageData.GetValue(lvl); var maxStacks = this.maxStacksData.GetValue(lvl); var multiplyStacks = Math.Min(stacks, maxStacks); var damage = (int)Math.Pow(2, multiplyStacks - 1) * stackDamage; var overflowStacks = Math.Max(stacks - maxStacks, 0); if (overflowStacks > 0) { var overflowDamage = this.overflowDamageData.GetValue(this.Level); damage += overflowStacks * overflowDamage; } return(new Damage { [this.DamageType] = (int)damage }); }
public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { var baseDamage = this.DamageData.GetValue(this.Level); var stackDamage = this.stackDamageData.GetValue(this.Level); var stacks = unit.GetModifierStacks("modifier_bristleback_quill_spray"); return(new Damage { [this.DamageType] = Math.Min(baseDamage + (stacks * stackDamage), this.maxDamageData.GetValue(this.Level)) }); }
public float AmplifierValue(Unit9 source, Unit9 target) { if (this.Level == 0) { return(0); } var amplify = (this.amplifierData.GetValue(this.Level) / -100) * target.GetModifierStacks(this.AmplifierModifierNames[0]); return(Math.Max(amplify, this.maxDamageReductionData.GetValue(this.Level) / -100f)); }
// Token: 0x06000FE7 RID: 4071 RVA: 0x000288FC File Offset: 0x00026AFC public override Damage GetRawDamage(Unit9 unit, float?remainingHealth = null) { float value = this.DamageData.GetValue(this.Level); float value2 = this.stackDamageData.GetValue(this.Level); int modifierStacks = unit.GetModifierStacks("modifier_bristleback_quill_spray"); Damage damage = new Damage(); DamageType damageType = this.DamageType; damage[damageType] = Math.Min(value + (float)modifierStacks * value2, this.maxDamageData.GetValue(this.Level)); return(damage); }
public override bool IsIntersecting(Unit9 unit, bool checkPrediction) { if (!base.IsIntersecting(unit, checkPrediction)) { return(false); } if (unit.GetModifierStacks("modifier_bristleback_quill_spray") < 5) { return(false); } return(true); }
public float AmplifierValue(Unit9 source, Unit9 target) { return(target.GetModifierStacks(this.AmplifierModifierNames[0]) / -100f); }