override internal List <Unit> onEventTime(double currentTime) { movingSpell.moveIgnoreEdges(currentTime); if (currentTime <= duration) { Hero closest = null; double minDist2 = 0.0; foreach (Hero potentialTarget in potentialTargets) { double dist2 = potentialTarget.Distance2(movingSpell); if (dist2 <= Math.Pow(radius + Const.EPSILON, 2) && (closest == null || dist2 < minDist2)) { minDist2 = dist2; closest = potentialTarget; } } if (closest != null) { Const.game.events.Add(new StunEvent(closest, 0, 2)); doDamage(closest, (int)(closest.maxMana * dmgMultiplier), attacker); return(createListOfUnit()); } } return(EMPTYLIST); }
override internal List <Unit> onEventTime(double currentTime) { movingSpell.moveIgnoreEdges(currentTime); double dist2 = movingSpell.Distance2(unit); double compareDist = Math.Pow(radius, 2); if (currentTime <= duration && dist2 <= compareDist) { doDamage(unit, (int)(damage + damageByTime * currentTime), attacker); } movingSpell.moveIgnoreEdges(currentTime * -1); return(EMPTYLIST); }