/// <summary> /// Execute the Abilities effect. /// </summary> /// <param name="name">The ability name.</param> public UnitFlags Execute(UnitManager source, Vector3 mousePos) { if ((source.Flags & disableFlags) == 0) { cooldown = cooldownTime / source.Stats.cooldownRate; targetPos = mousePos; abilityFlags = new UnitFlags(windup.Start (source, mousePos, ref current)); if (current.endOnCollision) { source.AddCollisionCallback (NextPhase); } return abilityFlags; } else { return null; } }
public UnitFlags NextPhase(UnitManager source) { if (current != null) { abilityFlags.Flags = current.End (source, targetPos, ref current); if (current == null) { return abilityFlags; } else { if (current.endOnCollision) { source.AddCollisionCallback (NextPhase); } return null; } } return null; }