public List <ICardTarget> FilterTargets(List <ICardTarget> cardTargets, Card card)
        {
            List <ICardTarget> filtterTargets = new List <ICardTarget>();

            // RECORREMOS LOS TARGETS POSIBLES
            for (int i = 0; i < cardTargets.Count; i++)
            {
                bool allPass = true;

                // APLICAMOS CADA FILTRO QUE TENGA LA CARTA
                for (int x = 0; x < card.CardData.cardTargetFiltters.Count; x++)
                {
                    ICardTarget cardTarget = card.CardData.cardTargetFiltters[x].CheckTarget(cardTargets[i]);

                    if (cardTarget == null)
                    {
                        allPass = false;
                    }
                }

                if (allPass)
                {
                    if (filtterTargets.Contains(cardTargets[i]) == false)
                    {
                        filtterTargets.Add(cardTargets[i]);
                    }
                }
            }

            return(filtterTargets);
        }
Exemple #2
0
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            if (base.CheckTarget(cardTarget) == null)
            {
                return(null);
            }

            IOcuppy ocuppier = cardTarget.GetOcuppy();

            if (ocuppier == null)
            {
                return(null);
            }
            Kimboko kim = (Kimboko)ocuppier;

            if (kim == null)
            {
                return(null);
            }
            if (kim.UnitType != unitType)
            {
                return(null);
            }

            return(cardTarget);
        }
 public override ICardTarget CheckTarget(ICardTarget cardTarget)
 {
     IOcuppy occupier = cardTarget.GetOcuppy();
     if (occupier == null) return null;
     for (int i = 0; i < actionStatus.Count; i++)
     {
         if (occupier.Abilities[abilityType].actionStatus != actionStatus[i])
         {
             return null;
         }
     }
     return base.CheckTarget(cardTarget);
 }
Exemple #4
0
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            IOcuppy ocuppier = cardTarget.GetOcuppy();

            if (ocuppier == null)
            {
                return(null);
            }
            if (ocuppier.OccupierType != ocuppierType)
            {
                return(null);
            }
            return(base.CheckTarget(cardTarget));
        }
Exemple #5
0
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            IOcuppy ocuppier = cardTarget.GetOcuppy();

            if (ocuppier == null)
            {
                return(null);
            }
            if (abilityComparisonIDFiltter.IsValidStat(ocuppier) == false)
            {
                return(null);
            }
            return(base.CheckTarget(cardTarget));
        }
 public override ICardTarget CheckTarget(ICardTarget cardTarget)
 {
     if (cardTarget.CardTargetType != CARDTARGETTYPE.UNIT || cardTarget.CardTargetType != CARDTARGETTYPE.BASENEXO || cardTarget.CardTargetType != CARDTARGETTYPE.BOARDOBJECT)
     {
         return null;
     }
     IOcuppy occupier = cardTarget.GetOcuppy();
     if (occupier == null) return null;
     rDToCheck.SetOcuppier(occupier);
     rDToCheckAgainst.SetOcuppier(occupier);
     ResultDataValidator validator = new ResultDataValidator(comparationType, rDToCheck, rDToCheckAgainst);
     if (validator.IsValid() == false ) return null;
     return base.CheckTarget(cardTarget);
 }
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            Tile tile = (Tile)cardTarget;

            if (tile == null)
            {
                return(null);
            }
            if (tile.IsOccupied() != isOcupied)
            {
                return(null);
            }
            return(base.CheckTarget(cardTarget));
        }
Exemple #8
0
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            IOcuppy ocuppier = cardTarget.GetOcuppy();

            if (ocuppier == null)
            {
                return(null);
            }
            if (statModifierComparisonTypeFiltter.IsValidStatModifierType(ocuppier) == false)
            {
                return(null);
            }
            return(base.CheckTarget(cardTarget));
        }
Exemple #9
0
    ICardTarget GetTarget(PointerEventData eventData)
    {
        ICardTarget cardTarget = null;

        foreach (var item in eventData.hovered)
        {
            var find = item.GetComponent <ICardTarget>();
            if (find != null)
            {
                cardTarget = find;
                break;
            }
        }
        return(cardTarget);
    }
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            //TODO: IsAlly no se setea desde ningun lado, asi que es una chotada
            IOcuppy ocuppier = cardTarget.GetOcuppy();

            if (ocuppier == null)
            {
                return(null);
            }
            if (ocuppier.IsAlly != isAlly)
            {
                return(null);
            }
            return(base.CheckTarget(cardTarget));
        }
Exemple #11
0
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            if (cardTarget.CardTargetType != cardTargetType)
            {
                return(null);
            }
            Tile tile = (Tile)cardTarget; // POSICION DE LA UNIT EN EL CAMPO DE BATALLA

            if (tile == null)
            {
                return(null);
            }

            CardFiltter targetTeamEnemyFiltter = new TargetEnemyTeamFiltter();
            CardFiltter targetTeamAllyFiltter  = new TargetAllyTeamFiltter();

            // SI ES ALIADO TENEMOS QUE CHEQUEAR LA POSICION EN X - 1
            // SI ES ENEMIGO TENEMOS QUE CHEQUEAR LA POSICION EN X + 1
            int positionToCheckX = tile.GetGridPosition().x;

            if (targetTeamEnemyFiltter.CheckTarget(cardTarget) == null)
            {
                positionToCheckX += 1;
            }
            else if (targetTeamAllyFiltter.CheckTarget(cardTarget) == null)
            {
                positionToCheckX -= 1;
            }

            if (GridArray == null)
            {
                return(null);
            }

            // ACA CHEQUEAMOS QUE EN NUESTRO GRID ARRAY EXISTA ESA TILE
            // NO ESTAMOS VERIFICANDO QUE NO LO MANDEMOS A UNA TILE DEL NEXO... JEJE
            // ESO YA SE DEBERIA HABER CHEQUEADO ANTES
            if (GridArray.GetLength(0) <= positionToCheckX)
            {
                // SI EXISTE ENTONCES VAMOS A VERIFICAR SI ESTA OCUPADA
                if (GridArray[positionToCheckX, tile.position.posY].IsOccupied() == true)
                {
                    return(null);
                }
            }

            return(base.CheckTarget(cardTarget));
        }
Exemple #12
0
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            cardTarget = base.CheckTarget(cardTarget);
            if (cardTarget == null)
            {
                return(null);
            }
            Player player = (Player)cardTarget;

            switch (cardState)
            {
            case CARDSTATES.DECK:
                cardDataToCheck = new SimpleIResultData(player.Deck.Count);
                break;

            case CARDSTATES.HAND:
                cardDataToCheck = new SimpleIResultData(player.PlayersHands.Count);
                break;

            case CARDSTATES.CEMENTERY:
                cardDataToCheck = new SimpleIResultData(player.Graveyard.Count);
                break;

            case CARDSTATES.WAITFORUSE:
                cardDataToCheck = new SimpleIResultData(0);
                break;

            case CARDSTATES.WAITFORUSEWITHTARGET:
                cardDataToCheck = new SimpleIResultData(0);
                break;

            default:
                cardDataToCheck = new SimpleIResultData(0);
                break;
            }

            ResultDataValidator validator = new ResultDataValidator(comparationType, cardDataToCheck, rdToCheckAgainst);

            if (validator.IsValid() == false)
            {
                return(null);
            }

            return(cardTarget);
        }
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            if (cardTarget.CardTargetType != cardTargetType)
            {
                return(null);
            }
            Tile tile = (Tile)cardTarget;

            if (tile == null)
            {
                return(null);
            }
            if (tile.tileType != tileType)
            {
                return(null);
            }
            return(base.CheckTarget(cardTarget));
        }
        public override ICardTarget CheckTarget(ICardTarget cardTarget)
        {
            if (cardTarget.CardTargetType != CARDTARGETTYPE.BASENEXO)
            {
                return(null);
            }
            IOcuppy occupier = cardTarget.GetOcuppy();

            if (occupier == null)
            {
                return(null);
            }
            Player player = (Player)cardTarget;

            if (player == null)
            {
                return(null);
            }
            return(base.CheckTarget(cardTarget));
        }
Exemple #15
0
    public void OnEndDrag(PointerEventData eventData)
    {
        graphic.anchoredPosition = Vector2.zero;

        ICardTarget cardTarget = GetTarget(eventData);

        if (cardTarget != null)
        {
            var target = cardTarget.GetCard();
            var self   = GetComponent <ICardTarget>().GetCard();

            if (self.player == target.player)
            {
                CardData.instance.SetCard(self, new Card(self.player, target.blockIndex, self.symbol, target.location));
            }
        }

        GetComponent <CanvasGroup>().blocksRaycasts = true;
        graphic.localScale = Vector3.one;
    }
Exemple #16
0
 public virtual ICardTarget CheckTarget(ICardTarget cardTarget)
 {
     return(cardTarget);
 }
        public override void OnCardEffectApply(ICardTarget cardTarget)
        {
            IOcuppy ocuppier = cardTarget.GetOcuppy();

            if (ocuppier == null)
            {
                return;
            }

            switch (statModifierType)
            {
            case STATMODIFIERTYPE.BUFF:
                // SI ES VIDA NUNCA SE PUEDE CURAR MAS QUE EL MAXIMO
                if (statID == 0)
                {
                    // max 4 actual 3 to add 2
                    // 4 - 3 = 1   2 > 1   2 = 1
                    int maxDiference = ocuppier.Stats[statType].MaxStatValue - ocuppier.Stats[statType].ActualStatValue;
                    if (amountToModify > maxDiference)
                    {
                        amountToModify = maxDiference;
                    }
                }
                else
                {
                    // S ES OTRO STAT VAMOS A AUMENTAR EL MAXIMO
                    int diferenceToAdd = ocuppier.Stats[statType].MaxStatValue - ocuppier.Stats[statType].ActualStatValue;
                    if (amountToModify > diferenceToAdd)
                    {
                        // max 2 actual 2 diference to add = 0

                        // PERO SI ES MOVE RANGE ATTACK RANGE NO PUEDE SER MAS QUE 3
                        if (statID == 1 || statID == 2)
                        {
                            if (ocuppier.Stats[statType].MaxStatValue > 2)
                            {
                                amountToModify = 1;
                                return;
                            }
                        }
                        int newAmount = ocuppier.Stats[statType].MaxStatValue + amountToModify - diferenceToAdd;

                        ocuppier.Stats[statType].ChangeMaxStatValue(newAmount);
                    }
                }

                break;

            case STATMODIFIERTYPE.NERF:
                int difference = ocuppier.Stats[statType].ActualStatValue - amountToModify;
                if (difference < 0)
                {
                    // attack 1, le va a sacar 2 == -1  2 +-1 = 1
                    amountToModify += difference;
                }
                break;

            default:
                break;
            }

            StatModification statModification = new StatModification(ocuppier, ocuppier.Stats[statType], amountToModify, statModifierType);

            ocuppier.Stats[statType].AddStatModifier(statModification);
            ocuppier.Stats[statType].ApplyModifications();
        }
Exemple #18
0
 public virtual void OnCardEffectApply(ICardTarget cardTarget)
 {
 }