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