void CreateDeck() { currentDeck = initialDeck; for (int cLoop = 0; cLoop < initialDeck.cards.Count; cLoop++) { CardSceneObj c = CardManager.instance.GetCard(); RectTransform rt = c.GetComponent <RectTransform>(); rt.SetParent(hand.handTransform); rt.position = hand.startTransform.position; c.GetComponent <CardSceneObj>().SetupCard(initialDeck.cards[cLoop]); drawDeck.Add(c.GetComponent <CardSceneObj>()); } }
public void AddCardToExhaustPile(CardSceneObj card) { owner.exhaustPile.Add(card.card); exhausePileSizeText.text = owner.exhaustPile.Count.ToString(); //card.gameObject.SetActive(false); Vector3 targetPos = Vector3.zero; RectTransform rt = card.GetComponent <RectTransform>(); targetPos.z = 10000; rt.position = targetPos; }
public void AddCard(CardSceneObj c) { RectTransform rt = c.GetComponent <RectTransform>(); rt.position = startTransform.position; //cardSceneObj.card = c; cards.Add(c); c.isWaitingToPlay = false; //gapSize = handWidth / cards.Count; //twistPerCard = totalTwist / cards.Count; //startTwist = -1f * (totalTwist / 2f); c.SetHand(this); //statUI.SetStats(); }
public void EndDrag(PointerEventData eventData, CardSceneObj card) { // -- if somehow we have managed to play card twice (OnDrop & OnDragEnd at once etc...) //if (card.isWaitingToPlay) //{ // return; //} // -- what are we over? RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(eventData.position); if (Physics.Raycast(ray, out hit, 1000)) { if (CanPlayCard(card)) { if (hit.transform.gameObject.tag == "Player") { // hit player TurnController.instance.AddCardToPlayedQueue(card); owner.actions -= card.card.ActionCost; owner.mana -= card.card.ManaCost; card.isWaitingToPlay = true; cards.Remove(card); Vector3 targetPos = Vector3.zero; RectTransform rt = card.GetComponent <RectTransform>(); targetPos.z = 10000; rt.position = targetPos; // -- Send to proper pile - done at end of sequence not at start if (card.card.exhaust) { // -- send to exhaust pile AddCardToExhaustPile(card); } else { // -- send to discard pile AddCardToDiscardPile(card); } OnScreenDebug.instance.Log(card.card.Name); } else if (hit.transform.gameObject.tag == "Enemy") { TurnController.instance.AddCardToPlayedQueue(card); // hit enemy owner.actions -= card.card.ActionCost; owner.mana -= card.card.ManaCost; card.isWaitingToPlay = true; cards.Remove(card); // -- Send to proper pile - done at end of sequence not at start if (card.card.exhaust) { // -- send to exhaust pile AddCardToExhaustPile(card); } else { // -- send to discard pile AddCardToDiscardPile(card); } OnScreenDebug.instance.Log(card.card.Name); } else { // hit nowt if (card.card.TargetFlags == Card.Targets.None) { TurnController.instance.AddCardToPlayedQueue(card); //card.PlayCard(); owner.actions -= card.card.ActionCost; owner.mana -= card.card.ManaCost; card.isWaitingToPlay = true; cards.Remove(card); Vector3 targetPos = Vector3.zero; RectTransform rt = card.GetComponent <RectTransform>(); targetPos.z = 10000; rt.position = targetPos; // -- Send to proper pile - done at end of sequence not at start if (card.card.exhaust) { // -- send to exhaust pile AddCardToExhaustPile(card); } else { // -- send to discard pile AddCardToDiscardPile(card); } OnScreenDebug.instance.Log(card.card.Name); } } } } card.isDragged = false; // owner.statUI.SetStats(owner); UpdateDeckSizes(); }