public void TakeMovement_Step() { ShapeMover.Move_Custom(this, movementOrder.lMovementOrder[CurrentStep]); CurrentStep++; if (CurrentStep >= TotalMovementSteps) { if (repeatCount > 0) { // Reset if repeatable repeatCount--; CurrentStep = 0; } else if (repeatCount == -44) { // Reset forever CurrentStep = 0; } else { CurrentStep = -1; TotalMovementSteps = -1; movementOrder = null; Has_MovementOrders = false; } } }
/// <summary> /// Add new movement orders /// </summary> /// <param name="newMovement"></param> /// <param name="repeatXtimes"> enter -44 to do infinitely</param> public void Add_Movement(Movements._Movements newMovement, int repeatXtimes = 0) { Has_MovementOrders = true; movementOrder = newMovement; CurrentStep = 0; TotalMovementSteps = newMovement.lMovementOrder.Count(); repeatCount = repeatXtimes; }