/**
* TODO will be called every turn regardless of weather it is moved or not in order to count turns in air
*/
public override void MoveAsPlanned(Vector3 newPos)
{
TurnsNotLanded++;
if (TurnsNotLanded >= MaxTurnsAirborne)
{
// Create a DieEvent
object[] arguments = new object[1];
arguments[0] = (this.gameObject.GetComponent <IdentityController>()).GetGuid();
EventManager.Instance.AddEvent(EventFactory.CreateEvent(GEventType.DieEvent, arguments));
}
else
{
// Modify the CurrentRange by the distance traveled
CurrentRange -= Vector3.Distance(newPos, this.gameObject.transform.position);
// If the unit has moved outside of its current range
if (CurrentRange < 0)
{
// Create a DieEvent
object[] arguments = new object[1];
arguments[0] = (this.gameObject.GetComponent <IdentityController>()).GetGuid();
EventManager.Instance.AddEvent(EventFactory.CreateEvent(GEventType.DieEvent, arguments));
}
else
{
base.MoveAsPlanned(newPos);
}
}
}