Beispiel #1
0
    IEnumerator Pause(GridTile targetTile)
    {
        yield return(new WaitForSecondsRealtime(1f));

        keylisttracker++;
        currentTile.OnAttemptEnter();
        currentState = PlayerState.EXECUTING;
    }
Beispiel #2
0
    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();
            }
        }
    }