コード例 #1
0
    public void SelectObject(CardObject cardObject)
    {
        //Deselect object held and tile
        if (selectedCardObject != null)
        {
            deSelectObject();
        }
        //reset Path on new selection

        if (cardObject != null)
        {
            switch (cardObject.cardType)
            {
            case CardType.Player:
            {
                //Select new object held
                selectedCardObject = cardObject;

                //EnableUI and show it
                selectionPanel.gameObject.SetActive(true);
                selectionPanel.SetObject(selectedCardObject);

                selectedCardObject.SelectedObject();
                selectedCardObject.MoveChangeObservers  += SelectedObjectMoveStateChange;
                selectedCardObject.StateChangeObservers += OnCurrentObjectStateChange;

                if (selectedCardObject.MoveTurnUsed)
                {
                    selectedCardObject.StateChange(CardState.Attack);
                }
                else
                {
                    selectedCardObject.StateChange(CardState.Move);
                }

                break;
            }

            case CardType.Enemy:
            {
                Debug.Log("Selected Enenemy");
                // TODO figure out how to look at enemy
                selectedCardObject = cardObject;
                cardObject.GetCurrentTile.ChangeColor(Color.gray);
                selectionPanel.gameObject.SetActive(true);
                selectionPanel.SetObject(cardObject);
                break;
            }

            default:
            {
                return;
            }
            }
        }
        else
        {
            selectedCardObject = null;
        }
    }