diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 3df48c07109fb1b426d96d6c1c4d31e03d64aa78..f796f0f9b815e8a7824cb2c49a0595138f7183a7 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -667,7 +667,7 @@ RectTransform: m_Children: - {fileID: 569274362} m_Father: {fileID: 481556386} - m_RootOrder: 6 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 1} m_AnchorMax: {x: 0.5, y: 1} @@ -767,12 +767,12 @@ RectTransform: m_LocalScale: {x: 0, y: 0, z: 0} m_Children: - {fileID: 783529343} - - {fileID: 374355139} + - {fileID: 66537583} - {fileID: 1288275031} - {fileID: 577289746} - - {fileID: 66537583} - {fileID: 872592475} - {fileID: 479419672} + - {fileID: 374355139} - {fileID: 1744303087} - {fileID: 1251018139} - {fileID: 134461203} @@ -1191,7 +1191,7 @@ PrefabInstance: - target: {fileID: 139765660913410017, guid: d0234dba4f26d784da07183cd1e0aa62, type: 3} propertyPath: m_RootOrder - value: 1 + value: 6 objectReference: {fileID: 0} - target: {fileID: 139765660913410017, guid: d0234dba4f26d784da07183cd1e0aa62, type: 3} @@ -2301,6 +2301,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: db8123992f78b004a888a3ac87945fe3, type: 3} m_Name: m_EditorClassIdentifier: + dumpPreview: [] --- !u!1 &1324837648 GameObject: m_ObjectHideFlags: 0 @@ -2802,7 +2803,7 @@ PrefabInstance: - target: {fileID: 3072710562047330836, guid: 4f4f0547ba7cb524d99380ce8b591908, type: 3} propertyPath: m_RootOrder - value: 4 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3072710562047330836, guid: 4f4f0547ba7cb524d99380ce8b591908, type: 3} @@ -3585,7 +3586,7 @@ PrefabInstance: - target: {fileID: 6477196409435443291, guid: bdc35112fe6b03a4a93248988eb89992, type: 3} propertyPath: m_RootOrder - value: 5 + value: 4 objectReference: {fileID: 0} - target: {fileID: 6477196409435443291, guid: bdc35112fe6b03a4a93248988eb89992, type: 3} diff --git a/Assets/Scripts/Cards/Card.cs b/Assets/Scripts/Cards/Card.cs index 9e580926292c6ac4eeccdbce46e90e2aac7de7cb..5591d62505c8765e6517e67d2542671a71ecca4c 100644 --- a/Assets/Scripts/Cards/Card.cs +++ b/Assets/Scripts/Cards/Card.cs @@ -62,6 +62,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler if (Player.Instance.Energy < mCost) return; Player.Instance.Energy -= mCost; + gameObject.GetComponentInParent<Hand>().Discard(this); CardEvent<Card>.Trigger(Event.CARD_PLAYED, this); Effect endEffect = null; for (int i = 0; i < mEffectMultiplicator; i++) @@ -79,8 +80,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler break; } } - CardEvent<Card>.Trigger(Event.CARD_EFFECT_APPLIED, this); - gameObject.GetComponentInParent<Hand>().Discard(this); + CardEvent<Card>.Trigger(Event.CARD_EFFECT_APPLIED, this); } else { diff --git a/Assets/Scripts/Deck/Deck.cs b/Assets/Scripts/Deck/Deck.cs index e965846fdc05c8ecc456b4ab11d5e284ee9752cc..b4d7a9882f8a3a1c8bebda9aa7163aefaa9d95f5 100644 --- a/Assets/Scripts/Deck/Deck.cs +++ b/Assets/Scripts/Deck/Deck.cs @@ -8,6 +8,8 @@ public class Deck : MonoBehaviour private List<Card> totalCards; [SerializeField] + private List<Card> deckPreview; + public Stack<Card> currentDeck; [SerializeField] @@ -20,12 +22,14 @@ public class Deck : MonoBehaviour { totalCards = new List<Card>(GetComponentsInChildren<Card>()); currentDeck = new Stack<Card>(); + foreach (Card card in totalCards) { initializer.InitCard(card); card.gameObject.SetActive(false); currentDeck.Push(card); } + deckPreview = currentDeck.ToList(); } } @@ -35,8 +39,13 @@ public class Deck : MonoBehaviour if(currentDeck.Count == 0) { Reshuffle(); + } - return currentDeck.Pop(); + Card result = currentDeck.Pop(); + deckPreview = currentDeck.ToList(); + return result; + + } @@ -70,6 +79,7 @@ public class Deck : MonoBehaviour totalCards.Insert(j, card); } PutCardInDeck(card); + deckPreview = currentDeck.ToList(); } public void PutCardInDeck(Card card) @@ -97,6 +107,7 @@ public class Deck : MonoBehaviour Card tmp = dump.Pop(); PutCardInDeck(tmp); ShuffleDeck(); + deckPreview = currentDeck.ToList(); } if(currentDeck.Count == 0) { diff --git a/Assets/Scripts/Deck/Dump.cs b/Assets/Scripts/Deck/Dump.cs index 028f065b4fbe7a549d75dc130e1cfc419de3ab86..9b4bb9e7431c1989d92fe1f6c79fdd376658c8f9 100644 --- a/Assets/Scripts/Deck/Dump.cs +++ b/Assets/Scripts/Deck/Dump.cs @@ -1,9 +1,13 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using System.Linq; public class Dump : MonoBehaviour { + [SerializeField] + private List<Card> dumpPreview; + public Stack<Card> dumpStack; public static Dump Instance @@ -24,6 +28,7 @@ public class Dump : MonoBehaviour } dumpStack = new Stack<Card>(); + dumpPreview = dumpStack.ToList(); } public void Discard(Card card) @@ -38,24 +43,12 @@ public class Dump : MonoBehaviour { CardEvent<Card>.Trigger(Event.CARD_DISCARD, card); card.transform.SetParent(transform); - card.gameObject.SetActive(false); dumpStack.Push(card); - } + card.gameObject.SetActive(false); + dumpStack.Push(card); + dumpPreview = dumpStack.ToList(); - public void Init() - { - if (Instance == null) - { - Instance = this; - } - else if(Instance != this) - { - DestroyImmediate(this); - } - - dumpStack = new Stack<Card>(); } - public Stack<Card> Recycle () { Stack<Card> result = new Stack<Card>(); @@ -64,13 +57,16 @@ public class Dump : MonoBehaviour { result.Push(dumpStack.Pop()); } - + dumpPreview = dumpStack.ToList(); return result; } public Card Draw() { - return dumpStack.Pop(); + + Card result = dumpStack.Pop(); + dumpPreview = dumpStack.ToList(); + return result; } diff --git a/Assets/Scripts/Deck/Hand.cs b/Assets/Scripts/Deck/Hand.cs index 171568636803ce05c4867b5a4fe5d81feb7128b1..475b27a2c472a4c13cd77c9af56841d442728c90 100644 --- a/Assets/Scripts/Deck/Hand.cs +++ b/Assets/Scripts/Deck/Hand.cs @@ -33,13 +33,12 @@ public class Hand : MonoBehaviour public void Draw() { - Debug.Log("Drawing"); Card newCard = deck.Draw(); - - if(hand.Count < MaxHandSize) + hand.Add(newCard); + if (hand.Count <= MaxHandSize) { - hand.Add(newCard); + newCard.transform.SetParent(transform); newCard.gameObject.SetActive(true); newCard.GetComponent<CardUi>().Show(); @@ -47,17 +46,17 @@ public class Hand : MonoBehaviour } else { - Discard(newCard); + + Discard(newCard,true); } } public void ExtraDraw() { Card newCard = deck.Draw(); - - if (hand.Count < MaxHandSize) + hand.Add(newCard); + if (hand.Count <= MaxHandSize) { - hand.Add(newCard); newCard.transform.SetParent(transform); newCard.gameObject.SetActive(true); newCard.GetComponent<CardUi>().Show(); @@ -65,7 +64,7 @@ public class Hand : MonoBehaviour } else { - Discard(newCard); + Discard(newCard,true); } }