public override void OnHit(Being target) { Damage.DamageBeing(target); IsAlive = false; Speed *= 0.15f; target.AddBuff(new BurnBuff(Creator, target, TimeSpan.FromSeconds(2), Damage.Damage * 0.35f, AbilityTypes.SkeletonKingBlast)); }
public override void OnHit(Being target) { Damage.DamageBeing(target); IsAlive = false; Speed *= 0.15f; target.AddBuff(new BurnBuff(Creator, target, EnemyConstants.DemonMissileBurnLength, Damage.Damage * EnemyConstants.DemonMissileBurnDamagePercentage, AbilityTypes.Range)); }
public override void OnHit(Being target) { Damage.DamageBeing(target); IsAlive = false; Speed *= 0.15f; target.AddBuff(new ColdBuff(target, EnemyConstants.FrostDemonColdLength, EnemyConstants.FrostDemonSlowAmount)); }
public override void OnHit(Being target) { var zerd = (Zerd)Creator; Damage.DamageBeing(target); IsAlive = false; Speed *= 0.15f; var slowLevel = AbilityConstants.ColdSpeedFactor * zerd.SkillValue(SkillType.ImprovedIceball, true); var coldLength = TimeSpan.FromMilliseconds(AbilityConstants.IceballColdLength.TotalMilliseconds * zerd.SkillValue(SkillType.BitterCold, true)); target.AddBuff(new ColdBuff(target, coldLength, slowLevel)); if (zerd.SkillPoints(SkillType.ColdExplosion) > 0) { var explosionSlowLevel = zerd.SkillValue(SkillType.ColdExplosion, false) * slowLevel / 100f; Damage.Damage *= zerd.SkillValue(SkillType.ColdExplosion, false) / 100f; foreach (var e in Creator.Enemies().Where(e => target.Position.DistanceBetween(e.Position) < AbilityConstants.IceballExplosionDistance && e != target)) { e.AddBuff(new ColdBuff(target, coldLength, explosionSlowLevel)); Damage.DamageBeing(e); } } }
protected override bool Execute() { var knockback = new GameObjects.Knockback(Being.Facing, AbilityConstants.LavaBlastKnockbackLength, AbilityConstants.LavaBlastKnockback); var damage = AbilityConstants.LavaBlastDamage * Being.SkillValue(SkillType.FireMastery, true); Globals.GameState.Missiles.Add(new LavaBlastMissile(Being as Zerd, new GameObjects.DamageInstance(knockback, damage, DamageTypes.Fire, Being, AbilityTypes.LavaBlast), Being.Position)); Being.AddBuff(BuffTypes.BlazingSpeed); return(base.Execute()); }
protected override bool Execute() { LastDashMilliseconds = (float)Level.TimeIntoLevel.TotalMilliseconds; LastLevel = Level.CurrentLevel; LastPosition = new Vector2(Being.Position.X, Being.Position.Y); Rewound = false; Being.AddBuff(BuffTypes.Dash); Cooldown = TimeSpan.FromSeconds(FullCooldown.TotalSeconds - Being.SkillValue(SkillType.Dancer, false)); return(true); }
public override void OnHit(Being target) { if (target.HealthPercentage < PlayerSkills.IcicleKillPercent && !(target is SkeletonKing)) { target.Health = 0; } Damage.DamageBeing(target); IsActive = false; target.AddBuff(new FrozenBuff(target, AbilityConstants.IcicleColdLength)); }
protected override bool Execute() { Being.AddBuff(BuffTypes.BlazingSpeed); Being.Mana -= ManaCost; if (Being.Mana < 0) { Being.Mana = 0; } Cooldown = TimeSpan.FromSeconds(FullCooldown.TotalSeconds); return(true); }
protected override bool Execute() { var knockback = new Knockback(Being.Facing, AbilityConstants.FireballKnockbackLength, AbilityConstants.FireballKnockback); var damage = AbilityConstants.FireballDamage * Being.SkillValue(SkillType.ImprovedFireball, true) * Being.SkillValue(SkillType.FireMastery, true) * Being.AbilityValue(AbilityUpgradeType.FireballDamage, true); Globals.GameState.Missiles.Add(new FireballMissile(Being as Zerd, new DamageInstance(knockback, damage, DamageTypes.Fire, Being, AbilityTypes.Fireball), Being.Position)); // replenish mana based on bonuses Being.Mana += AbilityConstants.FireballManaCost * (Being.AbilityValue(AbilityUpgradeType.FireballMana) / 100f); Being.AddBuff(BuffTypes.BlazingSpeed); return(base.Execute()); }
public override void OnHit(Being target) { if (TargetsHit.Contains(target)) { return; } Distance -= AbilityConstants.LavaBlastDistanceLossPerHit; TargetsHit.Add(target); var oldDamage = Damage.Damage; Damage.Damage += Origin.DistanceBetween(Position) * ((Zerd)Creator).SkillValue(SkillType.Sniper, true) / 100f; Damage.DamageBeing(target); target.AddBuff(new BurnBuff(Creator, target, TimeSpan.FromMilliseconds(AbilityConstants.LavaBlastBurnLength), Damage.Damage * AbilityConstants.LavaBlastBurnDamagePercentage, AbilityTypes.LavaBlast)); Damage.Damage = oldDamage; }
public override void OnHit(Being target) { var zerd = (Zerd)Creator; Damage.Damage += Origin.DistanceBetween(Position) * zerd.SkillValue(SkillType.Sniper, true) / 100f; Damage.DamageBeing(target); IsAlive = false; Speed *= 0.15f; var burnDamage = Damage.Damage * AbilityConstants.FireballBurnDamagePercentage; target.AddBuff(new BurnBuff(Creator, target, AbilityConstants.FireballBurnLength, burnDamage, AbilityTypes.Fireball)); if (zerd.SkillPoints(SkillType.FireballExplosion) > 0) { var explosionBurnLevel = zerd.SkillValue(SkillType.FireballExplosion, false) * burnDamage / 100f; Damage.Damage *= zerd.SkillValue(SkillType.FireballExplosion, false) / 100f; foreach (var e in Creator.Enemies().Where(e => target.Position.DistanceBetween(e.Position) < AbilityConstants.FireballExplosionDistance && e != target)) { e.AddBuff(new BurnBuff(zerd, target, AbilityConstants.FireballBurnLength, explosionBurnLevel, AbilityTypes.Fireball)); Damage.DamageBeing(e); } } }
protected override bool Execute() { Being.AddBuff(BuffTypes.Sprint); return(base.Execute()); }