public override void step()
		{
			foreach (var m in ownerPlayer.board.minions)
			{
				if ( m.Value.minionState == Assets.Scripts.Engine.Minions.Minion.MinionState.DEAD)
					continue;
				
				// calculate the distance of each minion to this minion
				var dist = (m.Value.getWorldPosition() - worldPosition).magnitude;
				
				// if the minion in the range then deal amage
				if (dist < RADIUS_DEFAULT)
				{
					// server should deal damage.
                    GameUtilities.Damage damageFire = new GameUtilities.Damage((DEFAULT_DAMAGE / dist) * Chronos.deltaTime, GameUtilities.DamageType.FIRE);
                    GameUtilities.Damage damagePoison = new GameUtilities.Damage((DEFAULT_DAMAGE / dist) * Chronos.deltaTime, GameUtilities.DamageType.POISON);
					m.Value.dealDamage(damageFire);
					m.Value.dealDamage(damagePoison);
				}
			}
			
			remainingDuration -= Chronos.deltaTime;
			if (remainingDuration <= 0)
				destroyable = true;
		}
        public override void step()
        {
            foreach (var player in ownerPlayer.game.players)
                foreach (var m in player.board.minions)
                {
                    if (m.Value.minionState == Science_Wars_Server.Minions.Minion.MinionState.DEAD)
                        continue;

                    // calculate the distance of each minion to this minion
                    var dist = (m.Value.getWorldPosition() - worldPosition).magnitude;

                    // if the minion in the range then add deal damage
                    if (dist < RADIUS_DEFAULT)
                    {
                        GameUtilities.Damage damage = new GameUtilities.Damage(dmgPerSecond * Chronos.deltaTime, GameUtilities.DamageType.PHYSICAL);
                        // bu çok gecici bir şey olduğu için network'den yollamak sıkıntı yaratıcak latency'den dolayı bunun yerine client bu olayı simule edicek.
                        NailTrapSlowEffect slowEffect = new NailTrapSlowEffect(slowAmount);
                        m.Value.dealDamage(damage,ownerPlayer,false);
                        if(m.Value.addEffect(slowEffect))
                        {
                            Messages.OutgoingMessages.Game.GAddEffectOnMinionNailTrapSlow.sendMessage(m.Value.game.players, m.Value, slowEffect);
                        }
                    }
                }

            remainingDuration -= Chronos.deltaTime;
            if (remainingDuration <= 0)
                destroyable = true;
        }
        public override void step()
        {
            foreach (var m in ownerPlayer.board.minions)
            {
                if (m.Value.minionState == Assets.Scripts.Engine.Minions.Minion.MinionState.DEAD)
                {
                    continue;
                }

                // calculate the distance of each minion to this minion
                var dist = (m.Value.getWorldPosition() - worldPosition).magnitude;

                // if the minion in the range then deal amage
                if (dist < RADIUS_DEFAULT)
                {
                    // server should deal damage.
                    GameUtilities.Damage damage = new GameUtilities.Damage(110.0f * Chronos.deltaTime, GameUtilities.DamageType.FIRE);
                    m.Value.dealDamage(damage);
                }
            }

            remainingDuration -= Chronos.deltaTime;
            if (remainingDuration <= 0)
            {
                destroyable = true;
            }
        }
        public override void step()
        {
            foreach (var player in ownerPlayer.game.players)
            {
                foreach (var m in player.board.minions)
                {
                    if (m.Value.minionState == Science_Wars_Server.Minions.Minion.MinionState.DEAD)
                    {
                        continue;
                    }

                    // calculate the distance of each minion to this minion
                    var dist = (m.Value.getWorldPosition() - worldPosition).magnitude;

                    // if the minion in the range then add deal damage
                    if (dist < RADIUS_DEFAULT)
                    {
                        GameUtilities.Damage damageFire   = new GameUtilities.Damage((DEFAULT_DAMAGE / dist) * Chronos.deltaTime, GameUtilities.DamageType.FIRE);
                        GameUtilities.Damage damagePoison = new GameUtilities.Damage((DEFAULT_DAMAGE / dist) * Chronos.deltaTime, GameUtilities.DamageType.POISON);
                        m.Value.dealDamage(damageFire, ownerPlayer, false);
                        m.Value.dealDamage(damagePoison, ownerPlayer, false);
                    }
                }
            }

            remainingDuration -= Chronos.deltaTime;
            if (remainingDuration <= 0)
            {
                destroyable = true;
            }
        }
Esempio n. 5
0
        public override void step()
        {
            foreach (var player in ownerPlayer.game.players)
            {
                foreach (var m in player.board.minions)
                {
                    if (m.Value.minionState == Science_Wars_Server.Minions.Minion.MinionState.DEAD)
                    {
                        continue;
                    }

                    // calculate the distance of each minion to this minion
                    var dist = (m.Value.getWorldPosition() - worldPosition).magnitude;

                    // if the minion in the range then add deal damage
                    if (dist < RADIUS_DEFAULT)
                    {
                        GameUtilities.Damage damage = new GameUtilities.Damage(dmgPerSecond * Chronos.deltaTime, GameUtilities.DamageType.PHYSICAL);
                        // bu çok gecici bir şey olduğu için network'den yollamak sıkıntı yaratıcak latency'den dolayı bunun yerine client bu olayı simule edicek.
                        NailTrapSlowEffect slowEffect = new NailTrapSlowEffect(slowAmount);
                        m.Value.dealDamage(damage, ownerPlayer, false);
                        if (m.Value.addEffect(slowEffect))
                        {
                            Messages.OutgoingMessages.Game.GAddEffectOnMinionNailTrapSlow.sendMessage(m.Value.game.players, m.Value, slowEffect);
                        }
                    }
                }
            }

            remainingDuration -= Chronos.deltaTime;
            if (remainingDuration <= 0)
            {
                destroyable = true;
            }
        }
        public override void step()
        {
            foreach (var player in ownerPlayer.game.players)
                foreach (var m in player.board.minions)
                {
                    if (m.Value.minionState == Science_Wars_Server.Minions.Minion.MinionState.DEAD)
                        continue;

                    // calculate the distance of each minion to this minion
                    var dist = (m.Value.getWorldPosition() - worldPosition).magnitude;

                    // if the minion in the range then add deal damage
                    if (dist < RADIUS_DEFAULT)
                    {
                        GameUtilities.Damage damage = new GameUtilities.Damage(110.0f * Chronos.deltaTime / DURATION_DEFAUT,GameUtilities.DamageType.FIRE);
                        m.Value.dealDamage(damage,ownerPlayer,false);
                    }
                }

            remainingDuration -= Chronos.deltaTime;
            if (remainingDuration <= 0)
                destroyable = true;
        }