public void RemoveCard(string cardName) { Debug.Log("Remove card from deck:" + cardName); DeckTableControllerComponent.RemoveCardFromDeck(CardsBaseComponent.GetIdByName(cardName).ToString()); CardsInDeckNames.Remove(cardName); foreach (GameObject findedPanelOb in PanelsInDeckList) { if (findedPanelOb != null) { CardPanel findedPanel = findedPanelOb.GetComponent <CardPanel> (); if (findedPanel != null) { if (findedPanel.PanelCardName == cardName) { findedPanel.CardsNumber--; findedPanel.RefreshCardsNumber(); if (findedPanel.CardsNumber < 1) { findedPanel.DestroyPanel(); PanelsInDeckList.Remove(findedPanelOb); break; } } } else { CardViewPanel panel = findedPanelOb.GetComponent <CardViewPanel> (); if (panel != null) { if (panel.PanelPawn.GetComponent <Pawn> ().Name == cardName) { PanelsInDeckList.Remove(findedPanelOb); //Destroy (findedPanelOb); break; } } } } } }
private void AddCardToTable(string cardName, Vector3 startCardGlobalPosition, bool noAnim, List <GameObject> spawnedPawns = null) { GameObject card = null; GameObject pawn = null; if (DeckBuildV2 && spawnedPawns != null) { pawn = FindSpawnedCard(spawnedPawns, cardName); } if (pawn == null) { card = CardsBaseComponent.SpawnCardByName(cardName); } if (DeckBuildV2) { bool availble = true; if (card) { //availble = CheckCardQuantity (cardName); pawn = card.transform.Find("Pawn").gameObject; pawn.transform.SetParent(CardsInDeckPositionRoot); Destroy(card); } if (availble) { CardsInDeckNames.Add(pawn.GetComponent <Pawn>().Name); CardsInDeckNames = CardsBaseComponent.SortCardsList(CardsInDeckNames); GameObject panel = Instantiate(DeckPanelV2Prefab); if (panel != null) { panel.transform.SetParent(DeckBuildV2Table.transform, false); panel.transform.SetSiblingIndex(CardsInDeckNames.IndexOf(pawn.GetComponent <Pawn>().Name)); PanelsInDeckList.Add(panel); if (pawn != null) { CardViewPanel panelView = panel.GetComponent <CardViewPanel> (); pawn.GetComponent <KeepParentRenderLayer> ().KeepingActive = false; pawn.gameObject.GetComponent <SpriteRenderer> ().sortingOrder = 55; pawn.transform.SetParent(CardsInDeckPositionRoot); pawn.transform.position = startCardGlobalPosition; panelView.SetPawn(pawn, null); panelView.TableWidth = DeckBuildV2Table.GetComponent <RectTransform> ().rect.width; panelView.MovePawn(true); panelView.CardsControllerComp = GetComponent <CardsBaseTableController> (); pawn.transform.localScale = InTableCardScale; } } } else { DeckTableControllerComponent.RemoveCardFromDeck(cardName); } } else { GameObject panel; bool panelFinded = false; CardPanel panelComp; if (card) { card.transform.SetParent(CardsInDeckPositionRoot); card.transform.localScale = InTableCardScale; card.transform.position = startCardGlobalPosition; card.GetComponent <CardInteraction> ().SetCardOrder(3); foreach (GameObject findedPanelOb in PanelsInDeckList) { CardPanel findedPanel = findedPanelOb.GetComponent <CardPanel> (); if (findedPanel.PanelCardName == cardName) { CardInteraction CardInter = card.GetComponent <CardInteraction> (); bool availble = true; if ((CardInter.CardRarity == CardInteraction.CardRarityEnum.common) && (findedPanel.CardsNumber >= 3)) { availble = false; } else if ((CardInter.CardRarity == CardInteraction.CardRarityEnum.gold) && (findedPanel.CardsNumber >= 2)) { availble = false; } else if ((CardInter.CardRarity == CardInteraction.CardRarityEnum.diamond) && (findedPanel.CardsNumber >= 1)) { availble = false; } if (availble) { findedPanel.CardsNumber++; findedPanel.RefreshCardsNumber(); panelComp = findedPanel; //panelComp.KeepCardPosition = false; if (noAnim) { Destroy(card); } panelComp.AddCard(card); //panelComp.SmoothMoveCard (); //panelComp.KeepCardPosition = true; } else { DeckTableControllerComponent.RemoveCardFromDeck(cardName); Destroy(card); } panelFinded = true; } } if (panelFinded == false) { panel = Instantiate(CardPanel); panelComp = panel.GetComponent <CardPanel> (); panel.transform.SetParent(CardsInDeckTable, false); panelComp.PanelInDeck = true; //panelComp.KeepCardPosition = false; panelComp.PanelCardName = cardName; panelComp.AddCard(card); //panelComp.SmoothMoveCard (); panelComp.RefreshCardsNumber(); //panelComp.KeepCardPosition = true; PanelsInDeckList.Add(panel); SortList(); } } } }