/* * void UpdatePlacementOfSlots(){ * float xPos; * if (CardsInHand.Count > 0) * xPos = (slots.Children [0].transform.localPosition.x - slots.Children [CardsInHand.Count - 1].transform.localPosition.x) / 1f; * else * xPos = 0f; * Debug.Log (slots.Children [0].transform.position.ToString ()); * Debug.Log (slots.Children [CardsInHand.Count - 1].transform.position.ToString ()); * //slots.gameObject.transform.DOLocalMoveX (xPos, 0.3f); * }*/ public void PlaceCardsOnNewSlots() { foreach (GameObject g in CardsInHand) { if (g != null) { g.transform.DOLocalMoveX(slots.Children [CardsInHand.IndexOf(g)].transform.localPosition.x, 0.3f); WhereIsTheCardOrSoldier w = g.GetComponent <WhereIsTheCardOrSoldier> (); // Debug.Log(g.GetComponent<OneCardManager>().cardAsset.ScriptName.ToString()); w.Slot = CardsInHand.IndexOf(g); w.SetHandSortingOrder(); } } }
void ChangeLastCardStatusToInHand(GameObject card, WhereIsTheCardOrSoldier w) { // Debug.Log("Changing state to Hand for card: " + card.gameObject.name); if (owner == AreaPosition.blue) { w.VisualState = VisualStates.BlueHand; } else { w.VisualState = VisualStates.RedHand; } // set correct sorting order w.SetHandSortingOrder(); // end command execution for DrawACArdCommand Command.CommandExecutionComplete(); }
public void GivePlayerACard(CardAsset c, int UniqueID, bool fast = false, bool fromDeck = true) { GameObject card; if (fromDeck) { card = CreateACardAtPosition(c, DeckTransform.position, new Vector3(0f, -179f, 0f)); } else { card = CreateACardAtPosition(c, OtherCardDrawSourceTransform.position, new Vector3(0f, -179f, 0f)); } // Set a tag to reflect where this card is foreach (Transform t in card.GetComponentsInChildren <Transform>()) { t.tag = owner.ToString() + "Card"; } // pass this card to HandVisual class AddCard(card); // Bring card to front while it travels from draw spot to hand WhereIsTheCardOrSoldier w = card.GetComponent <WhereIsTheCardOrSoldier>(); w.BringToFront(); w.Slot = 0; w.VisualState = VisualStates.Transition; // pass a unique ID to this card. IDHolder id = card.AddComponent <IDHolder>(); id.UniqueID = UniqueID; // move card to the hand; Sequence s = DOTween.Sequence(); if (!fast) { // Debug.Log ("Not fast!!!"); s.Append(card.transform.DOMove(DrawPreviewSpot.position, GlobalSettings.Instance.CardTransitionTime)); if (TakeCardsOpenly) { s.Insert(0f, card.transform.DOLocalRotate(Vector3.zero, GlobalSettings.Instance.CardTransitionTime)); } else { s.Insert(0f, card.transform.DOLocalRotate(new Vector3(0f, -179f, 0f), GlobalSettings.Instance.CardTransitionTime)); } s.AppendInterval(GlobalSettings.Instance.CardPreviewTime); // displace the card so that we can select it in the scene easier. s.Append(card.transform.DOLocalMove(slots.Children[0].transform.localPosition, GlobalSettings.Instance.CardTransitionTime)); } else { // displace the card so that we can select it in the scene easier. s.Append(card.transform.DOLocalMove(slots.Children[0].transform.localPosition, GlobalSettings.Instance.CardTransitionTimeFast)); if (TakeCardsOpenly) { s.Insert(0f, card.transform.DOLocalRotate(Vector3.zero, GlobalSettings.Instance.CardTransitionTimeFast)); } else { s.Insert(0f, card.transform.DOLocalRotate(new Vector3(0f, -179f, 0f), GlobalSettings.Instance.CardTransitionTimeFast)); } } s.OnComplete(() => ChangeLastCardStatusToInHand(card, w)); }