public override void OnDrop(PointerEventData eventData) { MinorArcanaCard card = eventData.pointerDrag.GetComponent <MinorArcanaCard>(); Debug.Log(card); base.OnDrop(eventData); }
public void DrawNewCard() { Deck deck = GameObject.Find("Deck").GetComponent <Deck>(); MinorArcanaCard card = deck.Draw(); card.MoveCard(this.gameObject.transform); _hand.Add(card); card.ChangeEffect(); }
public void Shuffle() { var newDeck = _deck.ToArray(); // Knuth shuffle algorithm :: courtesy of Wikipedia :) for (int t = 0; t < newDeck.Length; t++) { MinorArcanaCard tmp = newDeck[t]; int r = Random.Range(t, newDeck.Length); newDeck[t] = newDeck[r]; newDeck[r] = tmp; } _deck = new Stack <MinorArcanaCard>(newDeck); }
void Start() { _deck = new Stack <MinorArcanaCard>(); // Use this for initialization //by card //by suit foreach (var suit in MinorArcanaCard.Suits) { foreach (var value in MinorArcanaCard.Values) { MinorArcanaCard minorCard = (Instantiate(Resources.Load("Prefabs/MinorArcanaCard")) as GameObject).GetComponent <MinorArcanaCard>(); minorCard.SetCard(suit, value, this.gameObject.transform); _deck.Push(minorCard); } } Shuffle(); }
//private IDictionary<string, CardEffect> _cardDictionary = new Dictionary<string, CardEffect>(); public CardEffect NewCardEffect(MajorArcanaCard majorCard, MinorArcanaCard minorCard) { //look for key var key = _buildKey(majorCard, minorCard); Debug.Log(key); CardEffect effect; if (_cardDictionary.ContainsKey(key)) { _cardDictionary.TryGetValue(key, out effect); return(effect); } else { // add to dictionary, body and wheel of fortune //based on suit and value string[] aspectMajor = majorCard.AspectCardName.Split(':'); if (aspectMajor[0] == "Divine") { effect = new DivineEffect(0); } else if (aspectMajor[0] == "Mind") { effect = new MindEffect(0); } else if (aspectMajor[0] == "Body") { effect = new BodyEffect(0, 0); } else { effect = new BodyEffect(-1, -1); } _cardDictionary.Add(key, effect); return(effect); } }
private string _buildKey(MajorArcanaCard major, MinorArcanaCard minorArcanaCard) { //get the selected major arcana and aspect return(major.AspectCardName + ":" + minorArcanaCard.CardKey); }
public virtual void OnDrop(PointerEventData eventData) { MinorArcanaCard c = eventData.pointerDrag.GetComponent <MinorArcanaCard>(); c.Play(); }
public void Add(MinorArcanaCard minorArcanaCard) { _graveyard.Add(minorArcanaCard); }