public override void dealDamage(Damage damage, Player damageDealer, bool notifyPlayer = true)
        {
            if (nextTeleportTime <= 0)
            {
                onJumpStarted();
                nextTeleportTime = NEXT_TELEPORT_COOLDOWN_DEFAULT;
                List<Minion> minionList = new List<Minion>();

                int effectCount = 1;
                foreach (var m in this.position.board.minions)
                {
                    if (m.Value != this && (this.getWorldPosition() - m.Value.getWorldPosition()).magnitude < APPLY_EFFECT_RANGE_DEFAULT)
                    {
                        minionList.Add(m.Value);
                        m.Value.moveCustomDistance(TELEPORT_DISTANCE_DEFAULT);

                        effectCount--;

                        if (effectCount == 0)
                            break;
                    }
                }

                Messages.OutgoingMessages.Game.GMinion_QuantumSoldier_teleport.sendMessage(position.board.player.game.players, this, minionList);
                moveCustomDistance(TELEPORT_DISTANCE_DEFAULT);
                onJumpEnded();
            }
            base.dealDamage(damage, damageDealer, notifyPlayer);
        }
Example #2
0
        public override void dealDamage(Damage damage, Player damageDealer, bool notifyPlayer = true)
        {
            if (bombSent == false)
            {
                bombSent = true;

                AreaEffect areaEffect = new FogBombAreaEffect( ownerPlayer, getWorldPosition() );
                Messages.OutgoingMessages.Game.GAddAreaEffect.sendMessage(position.board.player.game.players, areaEffect);
                position.board.player.game.addAreaEffect(areaEffect);
            }

            base.dealDamage(damage, damageDealer, notifyPlayer);
        }
 public override void dealDamage(Damage damage, Player damageDealer, bool notifyPlayer = true)
 {
     if (nextTeleportTime <= 0)
     {
         onJumpStarted();
         nextTeleportTime = NEXT_TELEPORT_COOLDOWN_DEFAULT;
         List<Minion> minionList = new List<Minion> ();
         Messages.OutgoingMessages.Game.GMinion_QuantumSoldier_teleport.sendMessage(position.board.player.game.players, this, minionList);
         moveCustomDistance(TELEPORT_DISTANCE_DEFAULT);
         onJumpEnded();
     }
     base.dealDamage(damage, damageDealer, notifyPlayer);
 }
Example #4
0
        public virtual void dealDamage(Damage damage, Player damageDealer, bool notifyPlayer = true)
        {
            if (isInvulnerable() == false)
            {
                float damageReductionRatio = 1;

                foreach (DamageResistance resistance in stats.getBaseResistances())
                {
                    if (resistance.resistanceType == damage.damageType)// eger o resistance varsa...
                    {
                        damageReductionRatio = resistance.damageReductionMultiplier;// orani degistir
                        break;
                    }
                }

                stats.health -= damage.amount * damageReductionRatio; // resistance yoksa dogrudan hasari uygula

                if (stats.health <= 0 && stats.health + damage.amount * damageReductionRatio > 0)
                    killerPlayer = damageDealer;

                if(notifyPlayer)
                    Messages.OutgoingMessages.Game.GMinionHealthInfo.sendMessage(game.players, this);
            }
        }