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; } }