public FilterUnitStrategyPattern(IOcuppy occupier)
    {
        this.occupier = occupier;
        ContextUnitFilter ctxUnit = new ContextUnitFilter(new FilterUnit());

        unit = ctxUnit.ExecuteStrategy(occupier);
    }
예제 #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);
        }
예제 #3
0
        public void Execute()
        {
            // Kimboko aCombinar

            // Kimboko combinador
            // TENEMOS QUE ELIMINAR LA UNIDAD ACTUAL DE LA LISTA DE UNIDADES DEL PLAYER
            spawnInfo.spawnerPlayer.RemoveUnit(combiner);
            // DEBERIAMOS DESOCUPAR LA TILE DONDE ESTA EL KIMBOKO ACTUAL YA QUE VA A PASAR A SER UNO NUEVO
            spawnInfo.spawnTile.Vacate();
            // DEBERIAMOS DESOCUPAR EL BOARD MANAGER ACTUAL
            game.board2DManager.RemoveOccupierPosition(combiner);

            // Kimboko combinado
            // CREAMOS EL KIMBOKO COMBINADO CON SUS NUEVOS STATS
            CombineAbilityEventInfo cmbInfo = new CombineAbilityEventInfo(combiner, spawnedKimboko, spawnInfo.spawnerPlayer, spawnInfo.spawnIndexID);

            finalCombinedKimboko = GetCombinedKimboko(cmbInfo);

            // DEBEMOS OCUPAR LA TILE CON LA NUEVA UNIDAD COMBINADA
            spawnInfo.spawnTile.OcupyTile(finalCombinedKimboko);
            // DEBEMOS AGREGARLE AL PLAYER EL NUEVO KIMBOKO COMBINADO
            spawnInfo.spawnerPlayer.AddUnit(finalCombinedKimboko);
            // DEBEMOS AGREGARLE AL BOARD MANAGER LA NUEVA UNIDAD COMBINADA
            PositionerDemo.Position pos = new PositionerDemo.Position(spawnInfo.spawnTile.position.posX, spawnInfo.spawnTile.position.posY);
            game.board2DManager.AddModifyOccupierPosition(finalCombinedKimboko, pos);
            finalCombinedKimboko.SetPosition(pos);

            executionState = COMMANDEXECUTINSTATE.FINISH;
        }
예제 #4
0
        private Kimboko GetNewKimboko(SpawnAbilityEventInfo spawnInfo)
        {
            Kimboko kimboko = null;

            switch (spawnInfo.spawnUnitType)
            {
            case UNITTYPE.X:
                KimbokoXFactory kimbokoXFac = new KimbokoXFactory();
                kimboko = kimbokoXFac.CreateKimboko(spawnInfo.spawnIndexID, spawnInfo.spawnerPlayer);
                break;

            case UNITTYPE.Y:
                KimbokoYFactory kimbokoYFac = new KimbokoYFactory();
                kimboko = kimbokoYFac.CreateKimboko(spawnInfo.spawnIndexID, spawnInfo.spawnerPlayer);
                break;

            case UNITTYPE.Z:
                KimbokoZFactory kimbokoZFac = new KimbokoZFactory();
                kimboko = kimbokoZFac.CreateKimboko(spawnInfo.spawnIndexID, spawnInfo.spawnerPlayer);
                break;

            case UNITTYPE.COMBINE:
                break;

            case UNITTYPE.FUSION:
                break;

            default:
                break;
            }

            return(kimboko);
        }
예제 #5
0
 public ISpawnCombineCommand(Kimboko spawnedKimboko, SpawnAbilityEventInfo spawnInfo, Kimboko combiner, IGame game)
 {
     logInsert           = true;
     this.combiner       = combiner;
     this.game           = game;
     this.spawnInfo      = spawnInfo;
     this.spawnedKimboko = spawnedKimboko;
 }
예제 #6
0
        private Kimboko GetCombinedKimboko(CombineAbilityEventInfo cmbInfo)
        {
            List <Kimboko> kimbokosTocombine = new List <Kimboko>();

            kimbokosTocombine.Add(cmbInfo.combiner);
            kimbokosTocombine.Add(cmbInfo.kimbokoToCombine);
            Kimboko kimboko = null;
            KimbokoCombineFactory kimbokoCombFac = new KimbokoCombineFactory(kimbokosTocombine);

            kimboko = kimbokoCombFac.CreateKimboko(cmbInfo.IndexID, cmbInfo.player);
            return(kimboko);
        }
예제 #7
0
        public void Execute()
        {
            kimboko = GetNewKimboko(spawnInfo);
            kimboko.SetGoAnimContainer(new GameObjectAnimatorContainer(kimbokoGO, kimbokoGO.GetComponent <Animator>()));
            spawnInfo.spawnTile.OcupyTile(kimboko);
            spawnInfo.spawnerPlayer.AddUnit(kimboko);

            PositionerDemo.Position pos = new PositionerDemo.Position(spawnInfo.spawnTile.position.posX, spawnInfo.spawnTile.position.posY);
            game.board2DManager.AddModifyOccupierPosition(kimboko, pos);
            kimboko.SetPosition(pos);
            executionState = COMMANDEXECUTINSTATE.FINISH;
        }
예제 #8
0
        public void Execute()
        {
            // Kimboko aCombinar
            // TENEMOS QUE ELIMINAR LA UNIDAD ACTUAL DE LA LISTA DE UNIDADES DEL PLAYER QUE SE VA A COMBINAR
            combInfo.player.RemoveUnit(combInfo.kimbokoToCombine);

            // TENEMOS QUE SACARLO DE SU TILE Y DESOCUPARLA
            fromTile = game.board2DManager.GetUnitPosition(combInfo.kimbokoToCombine);
            fromTile.Vacate();
            game.board2DManager.RemoveOccupierPosition(combInfo.kimbokoToCombine);

            // Kimboko combinador
            // TENEMOS QUE ELIMINAR LA UNIDAD ACTUAL DE LA LISTA DE UNIDADES DEL PLAYER
            combInfo.player.RemoveUnit(combInfo.combiner);

            // DEBERIAMOS DESOCUPAR LA TILE DONDE ESTA EL KIMBOKO ACTUAL YA QUE VA A PASAR A SER UNO NUEVO
            // DONDE VOY A COMBINAR
            combineTile = game.board2DManager.GetUnitPosition(combInfo.combiner);
            combineTile.Vacate();

            // DEBERIAMOS DESOCUPAR EL BOARD MANAGER ACTUAL
            game.board2DManager.RemoveOccupierPosition(combInfo.combiner);

            // Kimboko combinado
            // CREAMOS EL KIMBOKO COMBINADO CON SUS NUEVOS STATS
            finalCombinedKimboko = GetCombinedKimboko(combInfo);

            // DEBEMOS OCUPAR LA TILE CON LA NUEVA UNIDAD COMBINADA
            combineTile.OcupyTile(finalCombinedKimboko);
            // DEBEMOS AGREGARLE AL PLAYER EL NUEVO KIMBOKO COMBINADO
            combInfo.player.AddUnit(finalCombinedKimboko);
            // DEBEMOS AGREGARLE AL BOARD MANAGER LA NUEVA UNIDAD COMBINADA
            PositionerDemo.Position pos = new PositionerDemo.Position(combineTile.position.posX, combineTile.position.posY);
            game.board2DManager.AddModifyOccupierPosition(finalCombinedKimboko, pos);
            finalCombinedKimboko.SetPosition(pos);

            executionState = COMMANDEXECUTINSTATE.FINISH;
        }
 public UNITTYPE evolvedType; // A QUE TIPO EVOLUCIONO
 public EvolveAbilityEventInfo(Kimboko evolver, UNITTYPE startType, UNITTYPE evolvedType)
 {
     this.evolver     = evolver;
     this.evolvedType = evolvedType;
     this.startType   = startType;
 }
        public Kimboko fusioner; // QUIEN SE FUSIONO

        public FusionAbilityEventInfo(Kimboko fusioner)
        {
            this.fusioner = fusioner;
        }