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); }
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); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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; }
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(); }
public virtual void OnCardEffectApply(ICardTarget cardTarget) { }