예제 #1
0
        public void TestShouldMoveShot()
        {
            ArrayList unitModels = new ArrayList();

            Stone stone = new Stone();

            unitModels.Add(stone);

            Wild wild = new Wild();

            unitModels.Add(wild);

            Tractor tractor = new Tractor();

            unitModels.Add(tractor);

            Tank tank = new Tank();

            unitModels.Add(tank);

            GuardTower guardTower = new GuardTower();

            unitModels.Add(guardTower);

            foreach (UnitModel unitModel in unitModels)
            {
                unitModel.Move("S");
                //Console.WriteLine(unitModel.GetArmmo());
            }
            Console.WriteLine();
        }
예제 #2
0
        public void TestShouldMoveForward()
        {
            ArrayList unitModels = new ArrayList();

            UnitModel stone = new Stone();

            unitModels.Add(stone);

            UnitModel wild = new Wild();

            unitModels.Add(wild);

            UnitModel tractor = new Tractor();

            unitModels.Add(tractor);

            UnitModel tank = new Tank();

            unitModels.Add(tank);

            UnitModel guardTower = new GuardTower();

            unitModels.Add(guardTower);

            foreach (UnitModel unitModel in unitModels)
            {
                unitModel.Move("F");
                Console.WriteLine(unitModel.GetPositionX().ToString() + " " + unitModel.GetPositionY().ToString());
            }
            Console.WriteLine();
        }
예제 #3
0
        public void TestShouldMoveForward()
        {
            GuardTower guardTower = new GuardTower();

            guardTower.Move("F");
            Assert.AreEqual(0, guardTower.GetPositionX());
            Assert.AreEqual(0, guardTower.GetPositionY());
        }
예제 #4
0
    public void buyItem(string s)
    {
        TileUnit tu = null;

        switch (s)
        {
        case "sawmill":
            if (gs.tryBuy(BALANCE_CONSTANTS.SAWMILL_COST))
            {
                tu = new Storage(Resource.Type.WOOD);
            }
            break;

        case "foundry":
            if (gs.tryBuy(BALANCE_CONSTANTS.FOUNDRY_COST))
            {
                tu = new Storage(Resource.Type.ORE);
            }
            break;

        case "refinery":
            if (gs.tryBuy(BALANCE_CONSTANTS.REFINERY_COST))
            {
                tu = new Storage(Resource.Type.OIL);
            }
            break;

        case "guardtower":
            if (gs.tryBuy(BALANCE_CONSTANTS.TOWER_COST))
            {
                tu = new GuardTower();
            }
            break;

        case "gunsmith":
            if (gs.tryBuy(BALANCE_CONSTANTS.GUNSMITH_COST))
            {
                tu = new GunSmith();
            }
            break;
        }
        if (tu == null)
        {
            return;
        }
        tu.gr = gr;
        var v = gs.placeItemNear(tu, new IntVec2((int)gs.player.location.x, (int)gs.player.location.y));

        if (tu is GuardTower)
        {
            gr.addGuardLight(v);
        }

        if (tu != null)
        {
            activate();
        }
    }
예제 #5
0
        public void TestShouldMoveTurnShot()
        {
            GuardTower guardTower = new GuardTower();

            guardTower.Move("T");
            Assert.AreEqual(Orientation.East, guardTower.Orientation);

            guardTower.Move("S");
            Assert.AreEqual(29, guardTower.Ammunition);
        }
예제 #6
0
    // Use this for initialization
    void Start()
    {
        Application.targetFrameRate = 60;
        QualitySettings.vSyncCount  = 0;
        gs = new GameState(100);
        gs.addClearing(new IntVec2(0, 0), 10);
        gs.tiles_[7, 6] = new HarvesterRobot(Resource.Type.WOOD);
        gs.tiles_[6, 7] = new CollectorRobot(Resource.Type.WOOD);
        gs.tiles_[7, 7] = new Storage(Resource.Type.WOOD);

        GuardTower g = new GuardTower();

        g.gr = this;
        addGuardLight(new IntVec2(8, 8));
        gs.tiles_[8, 8] = g;

        gs.player_wood = 2000;
        gs.time_hr     = 9;

        tr.Setup(gs);
        gs.player = new Player();
        pr.addPlayer(gs);
        pr.p.gr        = this; //disgusting
        gs.player.gun1 = (new Revolver()).spawn(0f);
        gs.player.gun2 = (new Revolver()).spawn(0f);

        gs.player.gun1.bulletsLeft = gs.player.gun1.getCapacity();
        gs.player.gun2.bulletsLeft = gs.player.gun2.getCapacity();

        bp.gs = gs;

        Sound.audioSource = pr.gameObject.AddComponent <AudioSource>();
        Sound.PreLoad();
        List <animSet> sets = new List <animSet>();
        int            x = 0; int y = 0;

        while (true)
        {
            animSet a;
            if (!gs.processOne(ref x, ref y, out a))//sets up animations and moves.
            {
                break;
            }
            sets.Add(a);
        }
        applyAnimSets(sets);
        gs.tick(this);

        bp.gr = this;

        ANIMSETS = new List <animSet>();
    }
예제 #7
0
        public void TestShouldTurn()
        {
            GuardTower guardTower = new GuardTower();

            guardTower.Move("T");
            Assert.AreEqual(Orientation.East, guardTower.Orientation);

            guardTower.Move("T");
            Assert.AreEqual(Orientation.South, guardTower.Orientation);

            guardTower.Move("T");
            Assert.AreEqual(Orientation.West, guardTower.Orientation);

            guardTower.Move("T");
            Assert.AreEqual(Orientation.North, guardTower.Orientation);
        }
예제 #8
0
    public void runOption(int opt)
    {
        Player   p = gs.player;
        IntVec2  v = pr.p.getLookAt();
        TileItem t = gs.getItem(v);

        if (t is Storage)
        {
            int[] costof = null;
            if (opt == 1)
            {
                switch ((t as Storage).type)
                {
                case Resource.Type.OIL: costof = BALANCE_CONSTANTS.REFINERY_WORKER_COST; break;

                case Resource.Type.WOOD: costof = BALANCE_CONSTANTS.SAWMILL_WORKER_COST; break;

                case Resource.Type.ORE: costof = BALANCE_CONSTANTS.FOUNDRY_WORKER_COST; break;
                }
                if (gs.tryBuy(costof))
                {
                    gs.placeItemNear(new HarvesterRobot((t as Storage).type), v);
                }
            }

            if (opt == 2)
            {
                switch ((t as Storage).type)
                {
                case Resource.Type.OIL: costof = BALANCE_CONSTANTS.REFINERY_COLLECTOR_COST; break;

                case Resource.Type.WOOD: costof = BALANCE_CONSTANTS.SAWMILL_COLLECTOR_COST; break;

                case Resource.Type.ORE: costof = BALANCE_CONSTANTS.FOUNDRY_COLLECTOR_COST; break;
                }
                if (gs.tryBuy(costof))
                {
                    gs.placeItemNear(new CollectorRobot((t as Storage).type), v);
                }
            }
        }

        if (t is GuardTower)
        {
            GuardTower gt = t as GuardTower;
            if (opt == 1)
            {
                if (gt.storedGun == null && p.gun1 != null)
                {
                    gt.storedGun = p.gun1;
                    p.gun1       = null;
                }
            }

            if (opt == 2)
            {
                if (gt.storedGun == null && p.gun2 != null)
                {
                    gt.storedGun = p.gun2;
                    p.gun2       = null;
                }
            }
        }

        if (t is GroundGun)
        {
            GroundGun gg = (t as GroundGun);
            if (opt == 1 && gs.player.gun1 == null)
            {
                gs.player.gun1      = gg.gun;
                gs.tiles_[v.x, v.y] = null;
            }
            if (opt == 1 && gs.player.gun1 != null)
            {
                Gun g = gg.gun;
                gg.gun         = gs.player.gun1;
                gs.player.gun1 = g;
            }

            if (opt == 2 && gs.player.gun2 == null)
            {
                gs.player.gun2      = gg.gun;
                gs.tiles_[v.x, v.y] = null;
            }
            if (opt == 2 && gs.player.gun2 != null)
            {
                Gun g = gg.gun;
                gg.gun         = gs.player.gun2;
                gs.player.gun2 = g;
            }
        }
    }