Skip to content
Extraits de code Groupes Projets
Valider 66d4e82d rédigé par Samir LABANE's avatar Samir LABANE
Parcourir les fichiers

fix draw

parent 9466ece0
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
public class DrawExtraCards : Alteration public class DrawExtraCards : Alteration
{ {
private int mTimeApplyed = 0;
public DrawExtraCards(AlterationInfo info, AlterationPool pool) : base(info, pool) public DrawExtraCards(AlterationInfo info, AlterationPool pool) : base(info, pool)
{ {
CardEvent<Card>.Register(Event.CARD_DRAW, OnCardDrawn); CardEvent<Card>.Register(Event.CARD_DRAW, OnCardDrawn);
CardEvent<Card>.Register(Event.CARD_EFFECT_APPLIED, OnCardEffectApplied);
} }
private void OnCardDrawn(Card param) private void OnCardDrawn(Card param)
...@@ -11,10 +14,21 @@ ...@@ -11,10 +14,21 @@
{ {
GameManager.Instance.Hand.ExtraDraw(); GameManager.Instance.Hand.ExtraDraw();
} }
if (mValue < 0)
{
if (mTimeApplyed < -mValue)
GameManager.Instance.Hand.Discard(param,true); //actually just discard it
}
}
private void OnCardEffectApplied(Card param)
{
mTimeApplyed = 0;
} }
public override void CleanUp() public override void CleanUp()
{ {
CardEvent<Card>.Unregister(Event.CARD_DRAW, OnCardDrawn); CardEvent<Card>.Unregister(Event.CARD_DRAW, OnCardDrawn);
CardEvent<Card>.Unregister(Event.CARD_EFFECT_APPLIED, OnCardEffectApplied);
} }
} }
...@@ -7,7 +7,8 @@ public enum Event ...@@ -7,7 +7,8 @@ public enum Event
SCORE_GAINED, SCORE_GAINED,
CARD_PLAYED, CARD_PLAYED,
CARD_DRAW, CARD_DRAW,
CARD_DISCARD CARD_DISCARD,
CARD_EFFECT_APPLIED
} }
public class CardEvent<T> public class CardEvent<T>
......
...@@ -61,6 +61,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler ...@@ -61,6 +61,7 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
mEffectMultiplicator = 1; mEffectMultiplicator = 1;
if (Player.Instance.Energy < mCost) if (Player.Instance.Energy < mCost)
return; return;
Player.Instance.Energy -= mCost;
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++)
...@@ -78,8 +79,8 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler ...@@ -78,8 +79,8 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
break; break;
} }
} }
CardEvent<Card>.Trigger(Event.CARD_EFFECT_APPLIED, this);
gameObject.GetComponentInParent<Hand>().Discard(this); gameObject.GetComponentInParent<Hand>().Discard(this);
Player.Instance.Energy -= mCost;
} }
else else
{ {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter