示例#1
0
    public void UnitUseItem(string itemName)
    {
        // TODO: add some defence...
        gameBoard.HideIndicatorPlanes();

        if (ACTION_READY)
        {
            // Disable unit MOVE_REMAINING and IS_ACTIVE
            MOVE_REMAINING = false;
            ACTION_READY   = false;


            gameBoard.entityMenu.SetAttackMenu();

            // Remove item from player inventory (only here, for own player...)
            gameBoard.PLAYER_INVENTORY.Remove(itemName);

            // Do item stuff
            switch (itemName)
            {
            case "Health Potion":
                gameBoard.effectDisplayer.CreatePopupText(HealthPotion.UseHealthPotion(this).ToString()
                                                          , new Vector3(transform.position.x, gameBoard.TileArray[(int)transform.position.x, (int)transform.position.z].tile_elevation + 1f, transform.position.z)
                                                          , Color.green);

                break;

            case "Mana Potion":
                gameBoard.effectDisplayer.CreatePopupText(ManaPotion.UseManaPotion(this).ToString()
                                                          , new Vector3(transform.position.x, gameBoard.TileArray[(int)transform.position.x, (int)transform.position.z].tile_elevation + 1f, transform.position.z)
                                                          , Color.blue);

                break;
            }

            // Refresh selected entity
            gameBoard.RefreshSelectedEntity();

            // GOTO next turn
            gameBoard.turnManager.CoroutineAdvanceTurn(entityName + " UnitUseItem");
            gameBoard.turnManager.SetTurnProcessingFalse(entityName + " UnitUseItem");
            ACTION_PROCESSING = false;
        }
    }