Ejemplo n.º 1
0
 private void SetTileSprite(FloorManager floor, Sprite sprite, int row, int column)
 {
     floor.GetTileAtPosition(row, column)
     .GetComponentInChildren <Path>(true)
     .GetComponentInChildren <SpriteRenderer>(true)
     .sprite = sprite;
 }
Ejemplo n.º 2
0
    // Update is called once per frame
    public void OnUpdate(Player player)
    {
        FloorManager current         = dungeon.GetCurrentFloor();
        bool         wasMovementUsed = false;
        int          currentIndex    = Position;

        int rowToCheck    = current.GetRowOfIndex(currentIndex);
        int columnToCheck = current.GetColumnOfIndex(currentIndex);

        if (IsKeyValid(KeyCode.W, KeyCode.UpArrow))
        {
            keysDown.Add(KeyCode.W);
            keysDown.Add(KeyCode.UpArrow);
            wasMovementUsed = true;
            rowToCheck--;
        }
        else if (IsKeyValid(KeyCode.A, KeyCode.LeftArrow))
        {
            keysDown.Add(KeyCode.A);
            keysDown.Add(KeyCode.LeftArrow);
            wasMovementUsed = true;
            columnToCheck--;
        }
        else if (IsKeyValid(KeyCode.S, KeyCode.DownArrow))
        {
            keysDown.Add(KeyCode.S);
            keysDown.Add(KeyCode.DownArrow);
            wasMovementUsed = true;
            rowToCheck++;
        }
        else if (IsKeyValid(KeyCode.D, KeyCode.RightArrow))
        {
            keysDown.Add(KeyCode.D);
            keysDown.Add(KeyCode.RightArrow);
            wasMovementUsed = true;
            columnToCheck++;
        }
        if (wasMovementUsed && current.IsRowColumnValid(rowToCheck, columnToCheck))
        {
            current.GetTileAtPosition(rowToCheck, columnToCheck).Interact(player);
            if (autofireTimer > AUTOFIRE_DELAY)
            {
                cooldown = 0;
            }
        }

        bool isKeyHeldDown = false;

        foreach (KeyCode key in keysDown)
        {
            if (Input.GetKey(key))
            {
                isKeyHeldDown = true;
            }
        }
        if (!isKeyHeldDown)
        {
            keysDown.Clear();
            autofireTimer = 0;
            cooldown      = 0;
        }
        else
        {
            autofireTimer += Time.deltaTime;
            if (autofireTimer > AUTOFIRE_DELAY)
            {
                cooldown += Time.deltaTime;
            }
        }
    }