Пример #1
0
    public FilterPlayerStrategyPattern(IOcuppy occupier)
    {
        this.occupier = occupier;
        ContextPlayerFilter ctxPlayer = new ContextPlayerFilter(new FilterPlayer());

        player = ctxPlayer.ExecuteStrategy(occupier);
    }
    public FilterUnitStrategyPattern(IOcuppy occupier)
    {
        this.occupier = occupier;
        ContextUnitFilter ctxUnit = new ContextUnitFilter(new FilterUnit());

        unit = ctxUnit.ExecuteStrategy(occupier);
    }
Пример #3
0
        public int damageAmountDeal; // CANTIDAD DE DANO A REALIZAR

        public AttackAbilityEventInfo(IOcuppy attacker, IOcuppy damageTaker, DAMAGETYPE attackType, int damageAmountDeal)
        {
            this.attacker         = attacker;
            this.damageTaker      = damageTaker;
            this.attackType       = attackType;
            this.damageAmountDeal = damageAmountDeal;
        }
        public int damageAmountRecived; // CANTIDAD DE DANO A REALIZAR

        public DamageAbilityEventInfo(IOcuppy attacker, IOcuppy damageTaker, DAMAGETYPE damageType, int damageAmountRecived)
        {
            this.attacker            = attacker;
            this.damageTaker         = damageTaker;
            this.damageType          = damageType;
            this.damageAmountRecived = damageAmountRecived;
        }
Пример #5
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 FilterOcuppierStrategyPattern(Tile til2D)
    {
        this.til2D = til2D;
        ContextOccupierFilter ctxOccupy = new ContextOccupierFilter(new FilterOccupier());

        occupier = ctxOccupy.ExecuteStrategy(til2D);
    }
Пример #7
0
 public Ability(IOcuppy performerIOcuppy, int actionPointsRequired, ABILITYTYPE AbilityType)
 {
     abilityModifier           = new List <AbilityModifier>();
     this.performerIOcuppy     = performerIOcuppy;
     this.actionPointsRequired = actionPointsRequired;
     this.AbilityType          = AbilityType;
 }
            public void CreateOcuppierStatInformationPanel(IOcuppy ocuppier)
            {
                if (ocuppier == null)
                {
                    actualSelectedOcuppier = null;
                    ClearStatInforPanel();
                    return;
                }

                if (actualSelectedOcuppier != null)
                {
                    if (actualSelectedOcuppier == ocuppier)
                    {
                        return;
                    }
                }
                ClearStatInforPanel();
                actualSelectedOcuppier = ocuppier;

                foreach (var pair in ocuppier.Stats)
                {
                    OcuppierStatsInformationUI statInfoUI = GetInformationStatInfo(ocuppier.OwnerPlayerID);
                    OcuppierStatInfo           statInfo   = new OcuppierStatInfo(pair.Value);
                    statInfoUI.SetOcuppierStatInformation(statInfo);
                    statInfoUICreated.Add(statInfoUI.gameObject);
                }
                if (ocuppier.OwnerPlayerID == 0)
                {
                    playerOneInfoPanelParent.gameObject.SetActive(true);
                }
                else
                {
                    playerTwoInfoPanelParent.gameObject.SetActive(true);
                }
            }
 public Tile GetUnitPosition(IOcuppy ocuppier)
 {
     if (occupierPositions.ContainsKey(ocuppier))
     {
         return(GetGridObject(occupierPositions[ocuppier].posX, occupierPositions[ocuppier].posY));
     }
     return(null);
 }
Пример #10
0
 public TakeCardAbility(IOcuppy performerIOcuppy) : base(performerIOcuppy, ACTIONPOINTSREQUIRED, TYPEABILITY)
 {
     actionStatus = ABILITYEXECUTIONSTATUS.WAIT;
     if (performerIOcuppy.OccupierType == OCUPPIERTYPE.PLAYER)
     {
         player = (Player)performerIOcuppy;
     }
 }
 public StatIResultData(int statID, STATAMOUNTTYPE statAmountType, IOcuppy ocuppy)
 {
     this.statID         = statID;
     statType            = (STATTYPE)statID;
     this.statAmountType = statAmountType;
     this.ocuppy         = ocuppy;
     resultDataType      = RESULTDATATYPE.STAT;
 }
Пример #12
0
    Player IFilterPlayerStrategy.FilterPlayer(IOcuppy occupier)
    {
        if (occupier != null && occupier.OccupierType == OCUPPIERTYPE.PLAYER)
        {
            return((Player)occupier);
            //Debug.Log("Estoy ocupada por un player " + selectedPlayer._ID);
        }

        return(null);
    }
Пример #13
0
        public void OnEnterMoveState(IOcuppy occupier)
        {
            // CREO LA LISTA/DICCTIONARY DE LAS POSIBLES TILES A MOVERSE CON SU HIGHLIGHT CORRESPONDIENTE
            Dictionary <Tile, HIGHLIGHTUITYPE> tileHighlightTypesDictionary = CreateHighlightUIDictionary(occupier);
            MoveAbilitySelectionUIContainer    moveUIContainer = new MoveAbilitySelectionUIContainer(tileHighlightTypesDictionary);
            MoveState moveState = new MoveState(game, game.baseStateMachine.currentState, moveUIContainer, occupier);

            game.baseStateMachine.PopState(true);
            game.baseStateMachine.PushState(moveState);
        }
Пример #14
0
    public Kimboko FilterUnitStrat(IOcuppy occupier)
    {
        if (occupier != null && occupier.OccupierType == OCUPPIERTYPE.UNIT)
        {
            return((Kimboko)occupier);
            //Debug.Log("Estoy ocupada por un player " + selectedPlayer._ID);
        }

        return(null);
    }
            public void CreateButton(IOcuppy actualOccupier, ABILITYBUTTONTYPE abilityButtonType)
            {
                Button btnAbi = Instantiate(abilityButtonPrefab);

                btnAbi.transform.SetParent(buttonParent, false);
                switch (abilityButtonType)
                {
                case ABILITYBUTTONTYPE.MOVE:
                    MoveAbilityButtonExecution moveAbilityBtnExe = new MoveAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnMove = new AbilityButton(btnAbi, moveAbilityBtnExe, null);
                    btnMove.Suscribe();
                    actualAbilityButtons.Add(btnMove);
                    break;

                case ABILITYBUTTONTYPE.ATTACK:
                    AttackAbilityButtonExecution attackAbilityBtnExe = new AttackAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnAttack = new AbilityButton(btnAbi, attackAbilityBtnExe, null);
                    btnAttack.Suscribe();
                    actualAbilityButtons.Add(btnAttack);
                    break;

                case ABILITYBUTTONTYPE.DEFEND:
                    DefenseAbilityButtonExecution defenseAbilityBtnExe = new DefenseAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnDefense = new AbilityButton(btnAbi, defenseAbilityBtnExe, null);
                    btnDefense.Suscribe();
                    actualAbilityButtons.Add(btnDefense);
                    break;

                case ABILITYBUTTONTYPE.COMBINE:
                    break;

                case ABILITYBUTTONTYPE.TAKECARD:
                    TakeCardAbilityButtonExecution takeCardAbilityBtnExe = new TakeCardAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnTakeCard = new AbilityButton(btnAbi, takeCardAbilityBtnExe, null);
                    btnTakeCard.Suscribe();
                    actualAbilityButtons.Add(btnTakeCard);
                    break;

                case ABILITYBUTTONTYPE.EVOLVE:
                    break;

                case ABILITYBUTTONTYPE.FUSION:
                    break;

                case ABILITYBUTTONTYPE.SPAWN:
                    SpawnAbilityButtonExecution spawnAbilityBtnExe = new SpawnAbilityButtonExecution(actualOccupier, gameMachine, this);
                    AbilityButton btnSpawn = new AbilityButton(btnAbi, spawnAbilityBtnExe, null);
                    btnSpawn.Suscribe();
                    actualAbilityButtons.Add(btnSpawn);
                    break;

                default:
                    break;
                }
            }
            public void SetTile(Tile selectedTile)
            {
                if (selectedTile == null)
                {
                    ClearAbilityButtons();
                    return;
                }
                IOcuppy actualOccupier = selectedTile.GetOcuppy();

                SetUnit(actualOccupier);
            }
Пример #17
0
 public override bool IsValidStat(IOcuppy ocuppy)
 {
     if (base.IsValidStat(ocuppy))
     {
         ABILITYTYPE abilityType = (ABILITYTYPE)abilityID;
         if (ocuppy.Abilities[abilityType].IsModifierApply(modifierID))
         {
             return(true);
         }
     }
     return(false);
 }
        public void RemoveOccupierPosition(IOcuppy ocuppier)
        {
            if (ocuppiersByTile[ocuppier.actualPosition.posX, ocuppier.actualPosition.posY] == ocuppier)
            {
                ocuppiersByTile[ocuppier.actualPosition.posX, ocuppier.actualPosition.posY] = null;
            }

            if (occupierPositions.ContainsKey(ocuppier))
            {
                occupierPositions.Remove(ocuppier);
            }
        }
 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);
 }
Пример #20
0
        public int distance;       // DISTANCIA QUE SE MOVIO == Vector2.Distance(posInicial, posFinal);

        public MoveAbilityEventInfo(IOcuppy moveOccupy, Tile fromTile, Tile endPosition)
        {
            Position startPosition  = new Position(fromTile.position.posX, fromTile.position.posY);
            Position finishPosition = new Position(endPosition.position.posX, endPosition.position.posY);

            this.moveOccupy  = moveOccupy;
            this.fromTile    = fromTile;
            this.endPosition = endPosition;
            Vector2 startPost = new Vector2(startPosition.posX, startPosition.posY);
            Vector2 endPost   = new Vector2(finishPosition.posX, finishPosition.posY);

            distance = Mathf.FloorToInt(Vector2.Distance(startPost, endPost));
        }
Пример #21
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));
        }
Пример #22
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));
        }
Пример #23
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));
        }
 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 void ClearAbilityButtons()
 {
     buttonParent.gameObject.SetActive(false);
     actualOccupier = null;
     if (actualAbilityButtons != null && actualAbilityButtons.Count > 0)
     {
         for (int i = 0; i < actualAbilityButtons.Count; i++)
         {
             actualAbilityButtons[i].Unsuscribe();
             Destroy(actualAbilityButtons[i].btnAbility.gameObject);
         }
         actualAbilityButtons.Clear();
     }
     isCreated = false;
 }
        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 void SetUnit(IOcuppy actualOccupier)
 {
     if (actualOccupier == null)
     {
         ClearAbilityButtons();
         return;
     }
     if (this.actualOccupier == actualOccupier)
     {
         return;
     }
     ClearAbilityButtons();
     this.actualOccupier = actualOccupier;
     buttonParent.gameObject.SetActive(true);
     StartCreationOfButtons(actualOccupier);
 }
        public StatModification(IOcuppy unitToModify, Stat statToModify, int amountToModify, STATMODIFIERTYPE statModifierType, bool notExcedMaxValue = false)
        {
            this.OcuppyToModify   = unitToModify;
            this.statToModify     = statToModify;
            this.statModifierType = statModifierType;
            if (statModifierType == STATMODIFIERTYPE.CHANGE)
            {
                int valorDeseado         = amountToModify; //
                int valorDeStatActual    = this.statToModify.ActualStatValue;
                int valorDelStatAAplicar = valorDeseado - valorDeStatActual;
                amountToModify = valorDelStatAAplicar;
            }

            this.amountToModify = amountToModify;

            actualModificationID = ModificationID;
            ModificationID++;
        }
Пример #29
0
 public bool IsValidStatModifierType(IOcuppy ocuppy)
 {
     foreach (KeyValuePair <STATTYPE, Stat> item in ocuppy.Stats)
     {
         var Value = item.Value;
         if (Value.UnitsModifiersList.Count > 0)
         {
             for (int i = 0; i < Value.UnitsModifiersList.Count; i++)
             {
                 if (Value.UnitsModifiersList[i].statModifierType == statModifierType)
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
        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));
        }