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; } }
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; }