/// <summary> /// Disables given connect card, unsubscribing the task listener /// among other things /// </summary> /// <param name="card"></param> private void DisableConnectCard(ConnectCard card) { var cardGameObject = m_cardsDict[card]; cardGameObject.SetActive(false); cardGameObject.GetComponent <ConnectCardAbstract>().m_TaskFinished -= OnConnectCardFinishedTask; }
/// <summary> /// Enables given connect card, and sets it up /// </summary> /// <param name="card"></param> private void EnableConnectCard(ConnectCard card) { var cardGameObject = m_cardsDict[card]; cardGameObject.SetActive(true); cardGameObject.GetComponent <ConnectCardAbstract>().m_TaskFinished += OnConnectCardFinishedTask; m_ActiveCardGO = cardGameObject; }
/// <summary> /// Tries replacing old card with new card /// </summary> /// <param name="oldCard"></param> /// <param name="newCard"></param> private void ReplaceCard(ConnectCard oldCard, ConnectCard newCard) { var activeCardCount = m_cardsDict.Count(p => p.Value.activeInHierarchy); if (activeCardCount != 1) { Debug.LogError($"Wont replace card :: active card count {activeCardCount} is not 1"); return; } if (m_cardsDict[oldCard] != m_ActiveCardGO) { var newOldCard = m_cardsDict.Where(p => p.Value == m_ActiveCardGO).First().Key; DisableConnectCard(newOldCard); } else { DisableConnectCard(oldCard); } EnableConnectCard(newCard); }