public void AddCardAtIndex(CardAsset cardAsset, int UniqueID, int index) { GameObject card = Instantiate(ViewManager.Instance.cardOnBoardPrefab, slots.Children[index].transform.position, Quaternion.identity) as GameObject; CardOnBoardView cardView = card.GetComponent <CardOnBoardView>(); cardView.cardAsset = cardAsset; cardView.displayCardOnBoardVisual(); foreach (Transform transform in card.GetComponentsInChildren <Transform>()) { transform.tag = owner.ToString() + "CardOnFrontRow"; } card.transform.SetParent(slots.transform); cardsInRow.Insert(index, card); WhereIsCard whereIsCard = card.GetComponent <WhereIsCard>(); whereIsCard.Slot = index; whereIsCard.VisualState = VisualStates.LowBoardFrontRow; IDHolder id = card.AddComponent <IDHolder>(); id.UniqueID = UniqueID; ShiftSlotsGameObjectAccordingToNumberOfCardsOnBoard(); PlaceCardsOnNewSlots(); Command.CommandExecutionComplete(); }
public void GivePlayerACard(CardAsset cardAsset, int UniqueID) { GameObject card = CreateACardAtPosition(cardAsset, slots.Children[0].transform.localPosition); foreach (Transform transform in card.GetComponentsInChildren <Transform>()) { transform.tag = owner.ToString() + "Card"; } AddCard(card); WhereIsCard whereIsCard = card.GetComponent <WhereIsCard>(); IDHolder id = card.AddComponent <IDHolder>(); id.UniqueID = UniqueID; Sequence sequence = DOTween.Sequence(); sequence.Append(card.transform.DOLocalMove(slots.Children[0].transform.localPosition, 0)); if (TakeCardsOpenly) { sequence.Insert(0f, card.transform.DORotate(Vector3.zero, 0)); } sequence.OnComplete(() => ChangeLastCardStatusToInHand(card, whereIsCard)); }
// Core functionality void Awake() { spriteRenderer = GetComponent <SpriteRenderer>(); lineRenderer = GetComponentInChildren <LineRenderer>(); lineRenderer.sortingLayerName = "AboveEverything"; triangle = transform.Find("Triangle"); triangleSR = triangle.GetComponent <SpriteRenderer>(); cardView = GetComponentInParent <CardOnBoardView>(); whereIsThisCard = GetComponentInParent <WhereIsCard>(); }
void PlaceCardsOnNewSlots() { foreach (GameObject gameObject in cardsInHand) { gameObject.transform.DOLocalMoveX(slots.Children[cardsInHand.IndexOf(gameObject)].transform.localPosition.x, 0.3f); WhereIsCard whereIsCard = gameObject.GetComponent <WhereIsCard>(); whereIsCard.Slot = cardsInHand.IndexOf(gameObject); whereIsCard.SetHandSortingOrder(); } }
void ChangeLastCardStatusToInHand(GameObject card, WhereIsCard whereIsCard) { if (owner == AreaPosition.Bottom) { whereIsCard.VisualState = VisualStates.BottomPlayerHand; } else { whereIsCard.VisualState = VisualStates.TopPlayerHand; } whereIsCard.SetHandSortingOrder(); Command.CommandExecutionComplete(); }
void Awake() { whereIsCard = GetComponent <WhereIsCard>(); card = GetComponent <CardView>(); }