Beispiel #1
0
 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));
 }
Beispiel #2
0
 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));
 }
Beispiel #3
0
 public override void OnHit(Being target)
 {
     Damage.DamageBeing(target);
     IsAlive = false;
     Speed  *= 0.15f;
     target.AddBuff(new ColdBuff(target, EnemyConstants.FrostDemonColdLength, EnemyConstants.FrostDemonSlowAmount));
 }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
 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);
 }
Beispiel #7
0
 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));
 }
Beispiel #8
0
 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);
 }
Beispiel #9
0
        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());
        }
Beispiel #10
0
        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;
        }
Beispiel #11
0
        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);
                }
            }
        }
Beispiel #12
0
 protected override bool Execute()
 {
     Being.AddBuff(BuffTypes.Sprint);
     return(base.Execute());
 }