Skip to content
Extraits de code Groupes Projets
Valider af69421c rédigé par auroxy's avatar auroxy
Parcourir les fichiers

Correction draw limit

parent 053f3d2a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -62,6 +62,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler ...@@ -62,6 +62,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
if (Player.Instance.Energy < mCost) if (Player.Instance.Energy < mCost)
return; return;
Player.Instance.Energy -= mCost; Player.Instance.Energy -= mCost;
gameObject.GetComponentInParent<Hand>().Discard(this);
CardEvent<Card>.Trigger(Event.CARD_PLAYED, this); CardEvent<Card>.Trigger(Event.CARD_PLAYED, this);
Effect endEffect = null; Effect endEffect = null;
for (int i = 0; i < mEffectMultiplicator; i++) for (int i = 0; i < mEffectMultiplicator; i++)
...@@ -79,8 +80,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler ...@@ -79,8 +80,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
break; break;
} }
} }
CardEvent<Card>.Trigger(Event.CARD_EFFECT_APPLIED, this); CardEvent<Card>.Trigger(Event.CARD_EFFECT_APPLIED, this);
gameObject.GetComponentInParent<Hand>().Discard(this);
} }
else else
{ {
......
...@@ -8,6 +8,8 @@ public class Deck : MonoBehaviour ...@@ -8,6 +8,8 @@ public class Deck : MonoBehaviour
private List<Card> totalCards; private List<Card> totalCards;
[SerializeField] [SerializeField]
private List<Card> deckPreview;
public Stack<Card> currentDeck; public Stack<Card> currentDeck;
[SerializeField] [SerializeField]
...@@ -20,12 +22,14 @@ public class Deck : MonoBehaviour ...@@ -20,12 +22,14 @@ public class Deck : MonoBehaviour
{ {
totalCards = new List<Card>(GetComponentsInChildren<Card>()); totalCards = new List<Card>(GetComponentsInChildren<Card>());
currentDeck = new Stack<Card>(); currentDeck = new Stack<Card>();
foreach (Card card in totalCards) foreach (Card card in totalCards)
{ {
initializer.InitCard(card); initializer.InitCard(card);
card.gameObject.SetActive(false); card.gameObject.SetActive(false);
currentDeck.Push(card); currentDeck.Push(card);
} }
deckPreview = currentDeck.ToList();
} }
} }
...@@ -35,8 +39,13 @@ public class Deck : MonoBehaviour ...@@ -35,8 +39,13 @@ public class Deck : MonoBehaviour
if(currentDeck.Count == 0) if(currentDeck.Count == 0)
{ {
Reshuffle(); Reshuffle();
} }
return currentDeck.Pop(); Card result = currentDeck.Pop();
deckPreview = currentDeck.ToList();
return result;
} }
...@@ -70,6 +79,7 @@ public class Deck : MonoBehaviour ...@@ -70,6 +79,7 @@ public class Deck : MonoBehaviour
totalCards.Insert(j, card); totalCards.Insert(j, card);
} }
PutCardInDeck(card); PutCardInDeck(card);
deckPreview = currentDeck.ToList();
} }
public void PutCardInDeck(Card card) public void PutCardInDeck(Card card)
...@@ -97,6 +107,7 @@ public class Deck : MonoBehaviour ...@@ -97,6 +107,7 @@ public class Deck : MonoBehaviour
Card tmp = dump.Pop(); Card tmp = dump.Pop();
PutCardInDeck(tmp); PutCardInDeck(tmp);
ShuffleDeck(); ShuffleDeck();
deckPreview = currentDeck.ToList();
} }
if(currentDeck.Count == 0) if(currentDeck.Count == 0)
{ {
......
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using System.Linq;
public class Dump : MonoBehaviour public class Dump : MonoBehaviour
{ {
[SerializeField]
private List<Card> dumpPreview;
public Stack<Card> dumpStack; public Stack<Card> dumpStack;
public static Dump Instance public static Dump Instance
...@@ -24,6 +28,7 @@ public class Dump : MonoBehaviour ...@@ -24,6 +28,7 @@ public class Dump : MonoBehaviour
} }
dumpStack = new Stack<Card>(); dumpStack = new Stack<Card>();
dumpPreview = dumpStack.ToList();
} }
public void Discard(Card card) public void Discard(Card card)
...@@ -38,24 +43,12 @@ public class Dump : MonoBehaviour ...@@ -38,24 +43,12 @@ public class Dump : MonoBehaviour
{ {
CardEvent<Card>.Trigger(Event.CARD_DISCARD, card); CardEvent<Card>.Trigger(Event.CARD_DISCARD, card);
card.transform.SetParent(transform); 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 () public Stack<Card> Recycle ()
{ {
Stack<Card> result = new Stack<Card>(); Stack<Card> result = new Stack<Card>();
...@@ -64,13 +57,16 @@ public class Dump : MonoBehaviour ...@@ -64,13 +57,16 @@ public class Dump : MonoBehaviour
{ {
result.Push(dumpStack.Pop()); result.Push(dumpStack.Pop());
} }
dumpPreview = dumpStack.ToList();
return result; return result;
} }
public Card Draw() public Card Draw()
{ {
return dumpStack.Pop();
Card result = dumpStack.Pop();
dumpPreview = dumpStack.ToList();
return result;
} }
......
...@@ -33,13 +33,12 @@ public class Hand : MonoBehaviour ...@@ -33,13 +33,12 @@ public class Hand : MonoBehaviour
public void Draw() public void Draw()
{ {
Debug.Log("Drawing");
Card newCard = deck.Draw(); Card newCard = deck.Draw();
hand.Add(newCard);
if(hand.Count < MaxHandSize) if (hand.Count <= MaxHandSize)
{ {
hand.Add(newCard);
newCard.transform.SetParent(transform); newCard.transform.SetParent(transform);
newCard.gameObject.SetActive(true); newCard.gameObject.SetActive(true);
newCard.GetComponent<CardUi>().Show(); newCard.GetComponent<CardUi>().Show();
...@@ -47,17 +46,17 @@ public class Hand : MonoBehaviour ...@@ -47,17 +46,17 @@ public class Hand : MonoBehaviour
} }
else else
{ {
Discard(newCard);
Discard(newCard,true);
} }
} }
public void ExtraDraw() public void ExtraDraw()
{ {
Card newCard = deck.Draw(); Card newCard = deck.Draw();
hand.Add(newCard);
if (hand.Count < MaxHandSize) if (hand.Count <= MaxHandSize)
{ {
hand.Add(newCard);
newCard.transform.SetParent(transform); newCard.transform.SetParent(transform);
newCard.gameObject.SetActive(true); newCard.gameObject.SetActive(true);
newCard.GetComponent<CardUi>().Show(); newCard.GetComponent<CardUi>().Show();
...@@ -65,7 +64,7 @@ public class Hand : MonoBehaviour ...@@ -65,7 +64,7 @@ public class Hand : MonoBehaviour
} }
else else
{ {
Discard(newCard); Discard(newCard,true);
} }
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter