Esempio n. 1
0
        public void Move(Direction direction)
        {
            Debug.Log(direction);

            if (!canSlide)
            {
                return;
            }
            if (!map.CanSlide())
            {
                return;
            }

            var switchTile = false;

            switch (direction)
            {
            case Direction.Left:
                if (currentPosition.x > 0)
                {
                    currentPosition.x--;
                    switchTile = true;
                }
                break;

            case Direction.Right:
                if (currentPosition.x < width - 1)
                {
                    currentPosition.x++;
                    switchTile = true;
                }
                break;

            case Direction.Up:
                if (currentPosition.y < height - 1)
                {
                    currentPosition.y++;
                    switchTile = true;
                }
                break;

            case Direction.Down:
                if (currentPosition.y > 0)
                {
                    currentPosition.y--;
                    switchTile = true;
                }
                break;
            }

            if (switchTile)
            {
                map.Slide(direction);
                currentTile.OnLeave();
                currentTile = mapTiles[currentPosition.x][currentPosition.y];
                currentTile.OnGoto();

                CharacterGroup.instance.timmy.sadness   += 2;
                CharacterGroup.instance.sister.sadness  += 2;
                CharacterGroup.instance.uncle.sadness   += 2;
                CharacterGroup.instance.grandpa.sadness += 2;
            }

            hasTeleported = false;
        }