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

fix duplication

parent a1a354d5
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -11,14 +11,7 @@ public class DuplicateNextCard : Alteration
public void OnCardPlayed(Card card)
{
if (!card.wasDuplicated && card != null)
{
card.wasDuplicated = true;
for (int i = 0; i < mValue; i++)
{
card.ApplyDuplicated();
}
}
card.ApplyDuplicated(mValue);
if (mValidity == Validity.ONE_USE)
{
......
......@@ -23,10 +23,11 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
private DraftChoice mChoice = null; //dirty hack for ui : if you click on the card in ui it will just add it to deck
public bool wasDuplicated = false; // Further duplications should not be applied to a duplicated card
private CardUi mCardUi;
private int mEffectMultiplicator;
public List<Effect> GetEffects()
{
if (mEffects == null)
......@@ -57,10 +58,13 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
if (mChoice == null)
{
mEffectMultiplicator = 1;
if (Player.Instance.Energy < mCost)
return;
CardEvent<Card>.Trigger(Event.CARD_PLAYED, this);
Effect endEffect = null;
for (int i = 0; i < mEffectMultiplicator; i++)
{
foreach (Effect effect in mEffects)
{
if (effect is StopTurnEffect)
......@@ -69,7 +73,11 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
effect.Apply();
}
if (endEffect != null)
{
endEffect.Apply();
break;
}
}
gameObject.GetComponentInParent<Hand>().Discard(this);
Player.Instance.Energy -= mCost;
}
......@@ -81,14 +89,12 @@ public class Card : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
highlightBorder.SetActive(false);
}
/* Run all effects for a duplicated card*/
public void ApplyDuplicated()
public void ApplyDuplicated(int amount)
{
CardEvent<Card>.Trigger(Event.CARD_PLAYED, this);
foreach (Effect effect in mEffects)
{
effect.Apply();
}
if (amount > 0)
mEffectMultiplicator += amount;
}
public void OnCardPlayed(UnityAction onAnimationEnd)
......
......@@ -36,7 +36,6 @@ public class Dump : MonoBehaviour
public void DiscardNoAnim(Card card)
{
card.wasDuplicated = false;
CardEvent<Card>.Trigger(Event.CARD_DISCARD, card);
card.transform.SetParent(transform);
card.gameObject.SetActive(false); dumpStack.Push(card);
......
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