public override void InitializeCard(int IDInGame, Player ownerPlayer, CardData CardData)
        {
            base.InitializeCard(IDInGame, ownerPlayer, CardData);

            // TARGET UNIT
            // FILTTERS QUE SEA DE TIPO UNIT Y QUE TENGA UN STAT DETERMINADO
            CardFiltter targetOccupierType = new TargetUnitOccupierTypeFiltter();
            CardFiltter statIDFiltter      = new TargetHealthStatIDFiltter();

            // VERIFICAMOS QUE LA VIDA ACTUAL NO SEA MAYOR A LA VIDA MAXIMA PARA PODER CURARLO
            int             statID                       = 0;
            STATAMOUNTTYPE  amountType                   = STATAMOUNTTYPE.ACTUAL;
            STATAMOUNTTYPE  amountTypeToCheck            = STATAMOUNTTYPE.MAX;
            StatIResultData statDataToCheckAgainst       = new StatIResultData(statID, amountTypeToCheck);
            COMPARATIONTYPE comparationType              = COMPARATIONTYPE.LESS;
            CardFiltter     targetHealtStatAmountFiltter = new TargetHealtStatAmountFiltter(amountType, statDataToCheckAgainst, comparationType);

            CardData.cardTargetFiltters.Add(targetOccupierType);
            CardData.cardTargetFiltters.Add(statIDFiltter);
            CardData.cardTargetFiltters.Add(targetHealtStatAmountFiltter);


            // EFFECT HP + 1
            int        hpStatID = 0;
            int        amount   = 1;
            CardEffect statModificationEffect = new BuffStatModificationEffect(hpStatID, amount);

            CardData.cardEffects = new List <CardEffect>();

            CardData.cardEffects.Add(statModificationEffect);
        }
        public override void InitializeCard(int IDInGame, Player ownerPlayer, CardData CardData)
        {
            base.InitializeCard(IDInGame, ownerPlayer, CardData);

            // TARGET UNIT
            // FILTTERS QUE SEA DE TIPO UNIT Y QUE TENGA UN STAT DETERMINADO
            CardFiltter targetOccupierType = new TargetUnitOccupierTypeFiltter();
            CardFiltter statIDFiltter      = new TargetAttackPowerIDFiltter();

            // VERIFICAMOS QUE EL ATAQUE ACTUAL NO SEA MENOR A 0
            int             amountLessThan  = 0;
            STATAMOUNTTYPE  amountType      = STATAMOUNTTYPE.ACTUAL;
            COMPARATIONTYPE comparationType = COMPARATIONTYPE.GREATER;
            CardFiltter     targetAttackPowStatAgainstSimple = new TargetAttackPowerStatAmountAgainstSimplFiltter(amountType, amountLessThan, comparationType);

            CardData.cardTargetFiltters.Add(targetOccupierType);
            CardData.cardTargetFiltters.Add(statIDFiltter);
            CardData.cardTargetFiltters.Add(targetAttackPowStatAgainstSimple);


            // EFFECTS BUFF ATTACK ACTUALSTAT/MAXSTAT - 1
            int        statID = 2;
            int        amount = 1;
            CardEffect statModificationEffect = new NerfStatModificationEffect(statID, amount);

            CardData.cardEffects = new List <CardEffect>();

            CardData.cardEffects.Add(statModificationEffect);
        }
 public StatIResultData(int statID, STATAMOUNTTYPE statAmountType, IOcuppy ocuppy)
 {
     this.statID         = statID;
     statType            = (STATTYPE)statID;
     this.statAmountType = statAmountType;
     this.ocuppy         = ocuppy;
     resultDataType      = RESULTDATATYPE.STAT;
 }
 public TargetAttackPowerStatAmountFiltter(STATAMOUNTTYPE statAmountType, StatIResultData rDToCheckAgainst, COMPARATIONTYPE comparationType) : base(comparationType, FILTTER_ID)
 {
     rDToCheck             = new StatIResultData(STAT_ID, statAmountType);
     this.rDToCheckAgainst = rDToCheckAgainst;
 }
 public TargetHealtStatAmountAgainstSimplFiltter(STATAMOUNTTYPE statAmountType, int simpleAmount, COMPARATIONTYPE comparationType) : base(comparationType, FILTTER_ID)
 {
     rDToCheck        = new StatIResultData(STAT_ID, statAmountType);
     rDToCheckAgainst = new SimpleIResultData(simpleAmount);
 }
 public StatIResultData(int statID, STATAMOUNTTYPE statAmountType)
 {
     this.statID         = statID;
     this.statAmountType = statAmountType;
     resultDataType      = RESULTDATATYPE.STAT;
 }