IEnumerator Pause(GridTile targetTile) { yield return(new WaitForSecondsRealtime(1f)); keylisttracker++; currentTile.OnAttemptEnter(); currentState = PlayerState.EXECUTING; }
private void CommandControllerFix() { if (keylisttracker < inputCollector.keylist.Count) { skipRestOfMove = false; IconCollector.Instance.UpdateCommandList(); switch (inputCollector.keylist[keylisttracker]) { case "up": { if (currentTile.neighbourNorth != null) { targetTile = currentTile.neighbourNorth; } else { Debug.Log("Du försökte gå till en tile som ej existerar"); keylisttracker++; break; } targetTile.OnAttemptEnter(); if (skipRestOfMove == false) //Skip rest of move { if (!targetTile.isBlocking) { currentState = PlayerState.WAITING; keylisttracker++; StartCoroutine(Move(targetTile)); } else { Debug.Log("Du försökte gå till en tile som är blockad"); keylisttracker++; break; } } else { keylisttracker++; } break; } case "down": { if (currentTile.neighbourSouth != null) { targetTile = currentTile.neighbourSouth; } else { Debug.Log("Du försökte gå till en tile som ej existerar"); keylisttracker++; break; } targetTile.OnAttemptEnter(); if (skipRestOfMove == false) //Skip rest of move { if (!targetTile.isBlocking) { currentState = PlayerState.WAITING; StartCoroutine(Move(targetTile)); } else { Debug.Log("Du försökte gå till en tile som är blockad"); keylisttracker++; break; } } else { keylisttracker++; } break; } case "left": { if (currentTile.neighbourWest != null) { targetTile = currentTile.neighbourWest; } else { Debug.Log("Du försökte gå till en tile som ej existerar"); keylisttracker++; break; } targetTile.OnAttemptEnter(); if (skipRestOfMove == false) //Skip rest of move { if (!targetTile.isBlocking) { currentState = PlayerState.WAITING; StartCoroutine(Move(targetTile)); } else { Debug.Log("Du försökte gå till en tile som är blockad"); keylisttracker++; break; } } else { keylisttracker++; } break; } case "right": { if (currentTile.neighbourEast != null) { targetTile = currentTile.neighbourEast; } else { Debug.Log("Du försökte gå till en tile som ej existerar"); keylisttracker++; break; } targetTile.OnAttemptEnter(); if (skipRestOfMove == false) //Skip rest of move { if (!targetTile.isBlocking) { currentState = PlayerState.WAITING; StartCoroutine(Move(targetTile)); } else { Debug.Log("Du försökte gå till en tile som är blockad"); keylisttracker++; break; } } else { keylisttracker++; } break; } case "space": { targetTile = currentTile; currentState = PlayerState.WAITING; StartCoroutine(Pause(targetTile)); break; } default: print("skumma saker hände"); break; } if (keylisttracker >= inputCollector.keylist.Count - 1) { Debug.Log("keylisttracker == inputCollector.keylist.Count - 1"); inputCollector.Emptykeylist(); } } }