From 3b01ea2797c4ab48ce88eb69ee2efa399b06466a Mon Sep 17 00:00:00 2001
From: auroxy <romaric.blonde@laposte.net>
Date: Mon, 5 Aug 2019 15:34:32 +0200
Subject: [PATCH] unlimited card draw

---
 Assets/Scripts/Alterations/AddScoreOnCardDraw.cs | 2 ++
 Assets/Scripts/CardEvents.cs                     | 3 ++-
 Assets/Scripts/Deck/Hand.cs                      | 1 +
 Assets/Scripts/GameManager.cs                    | 2 ++
 Assets/Scripts/Ui/HandUi.cs                      | 1 +
 5 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/Assets/Scripts/Alterations/AddScoreOnCardDraw.cs b/Assets/Scripts/Alterations/AddScoreOnCardDraw.cs
index 8b1ba11..ea4ff0d 100644
--- a/Assets/Scripts/Alterations/AddScoreOnCardDraw.cs
+++ b/Assets/Scripts/Alterations/AddScoreOnCardDraw.cs
@@ -8,6 +8,7 @@ public class AddScoreOnCardDraw : Alteration
     public AddScoreOnCardDraw(AlterationInfo info, AlterationPool pool) : base(info, pool)
     {
         CardEvent<Card>.Register(Event.CARD_DRAW, OnCardPlayed);
+        CardEvent<Card>.Register(Event.EXTRA_CARD_DRAW, OnCardPlayed);
     }
 
     public void OnCardPlayed(Card card)
@@ -22,6 +23,7 @@ public class AddScoreOnCardDraw : Alteration
     public override void CleanUp()
     {
         CardEvent<Card>.Unregister(Event.CARD_DRAW, OnCardPlayed);
+        CardEvent<Card>.Unregister(Event.EXTRA_CARD_DRAW, OnCardPlayed);
         mPool.Remove(this);
     }
 }
diff --git a/Assets/Scripts/CardEvents.cs b/Assets/Scripts/CardEvents.cs
index dff366c..7c06a97 100644
--- a/Assets/Scripts/CardEvents.cs
+++ b/Assets/Scripts/CardEvents.cs
@@ -8,7 +8,8 @@ public enum Event
     CARD_PLAYED,
     CARD_DRAW,
     CARD_DISCARD,
-    CARD_EFFECT_APPLIED
+    CARD_EFFECT_APPLIED,
+    EXTRA_CARD_DRAW
 }
 
 public class CardEvent<T>
diff --git a/Assets/Scripts/Deck/Hand.cs b/Assets/Scripts/Deck/Hand.cs
index 31644ed..1715686 100644
--- a/Assets/Scripts/Deck/Hand.cs
+++ b/Assets/Scripts/Deck/Hand.cs
@@ -61,6 +61,7 @@ public class Hand : MonoBehaviour
             newCard.transform.SetParent(transform);
             newCard.gameObject.SetActive(true);
             newCard.GetComponent<CardUi>().Show();
+            CardEvent<Card>.Trigger(Event.EXTRA_CARD_DRAW, newCard);
         }
         else
         {
diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs
index 7cd231e..62636d7 100644
--- a/Assets/Scripts/GameManager.cs
+++ b/Assets/Scripts/GameManager.cs
@@ -106,6 +106,7 @@ public class GameManager : MonoBehaviour
         currentState = GameState.FIGHT;
 
         CardEvent<Card>.Register(global::Event.CARD_DRAW, OnCardDraw);
+        CardEvent<Card>.Register(global::Event.EXTRA_CARD_DRAW, OnCardDraw);
         CardEvent<Card>.Register(global::Event.CARD_DISCARD, OnCardDiscard);
         mIsRegistered = true;
     }
@@ -113,6 +114,7 @@ public class GameManager : MonoBehaviour
     public void StartDraft()
     {
         CardEvent<Card>.Unregister(global::Event.CARD_DRAW, OnCardDraw);
+        CardEvent<Card>.Unregister(global::Event.EXTRA_CARD_DRAW, OnCardDraw);
         CardEvent<Card>.Unregister(global::Event.CARD_DISCARD, OnCardDiscard);
         mIsRegistered = false;
 
diff --git a/Assets/Scripts/Ui/HandUi.cs b/Assets/Scripts/Ui/HandUi.cs
index 39d4001..8ee0a8b 100644
--- a/Assets/Scripts/Ui/HandUi.cs
+++ b/Assets/Scripts/Ui/HandUi.cs
@@ -12,6 +12,7 @@ public class HandUi : MonoBehaviour
     private void Awake()
     {
         CardEvent<Card>.Register(Event.CARD_DRAW, OnCardEvent);
+        CardEvent<Card>.Register(Event.EXTRA_CARD_DRAW, OnCardEvent);
         CardEvent<Card>.Register(Event.CARD_DISCARD, OnCardEvent);
     }
 
-- 
GitLab