Beispiel #1
0
        private void setAvailableTowersOfPlayer()
        {
            Type root = null;

            switch (PlayerMe.self.board.scienceType)
            {
            case ScienceType.PHYS:
                root = typeof(PhysicsTower);
                break;

            case ScienceType.CHEM:
                root = typeof(ChemistryTower);
                break;

            case ScienceType.BIO:
                root = typeof(BiologyTower);
                break;
            }

            PlayerMe.availableTowerTypes = new List <Type>();
            for (int i = 0; i < UserMe.unlockedTowers.Length; i++)
            {
                if (UserMe.unlockedTowers[i])
                {
                    Type      towerType = TypeIdGenerator.getTowerType(i);
                    TowerNode towerNode = TypeIdGenerator.getTowerNodeInsts(towerType);
                    if (UserMe.unlockedTowers[i] && towerNode.parent != null && towerNode.parent.towerType == root)
                    {
                        PlayerMe.availableTowerTypes.Add(towerType);
                    }
                }
            }
        }
        private bool checkScienceTypeOfTower(int typeId, ScienceType userScienceType)
        {
            Type root = null;

            switch (userScienceType)
            {
            case ScienceType.PHYS:
                root = typeof(PhysicsTower);
                break;

            case ScienceType.CHEM:
                root = typeof(ChemistryTower);
                break;

            case ScienceType.BIO:
                root = typeof(BiologyTower);
                break;
            }

            Type      type = TypeIdGenerator.getTowerType(typeId);
            TowerNode node = TypeIdGenerator.getTowerNodeInst(type);

            if (node.towerType != root && node.getRoot().towerType == root)
            {
                return(true);
            }

            return(false);
        }
        public override void processMessage(NetWorker.Utilities.RawMessage message)
        {
            Tower tower = (Tower)System.Activator.CreateInstance(TypeIdGenerator.getTowerType(message.getInt("tid")));

            tower.indexOnBoard = message.getInt("iob");

            Board board = Assets.Scripts.Engine.Game.getBoardById(message.getInt("bid"));

            if (board.AddTower(tower, tower.indexOnBoard))
            {
                Runner.Graphics.createTower(tower);
            }
        }
Beispiel #4
0
        public Runner(string ip, int port)
        {
            TypeIdGenerator.getTowerType(0);
            // db does nox exist. Do not worry about the ID and password :)
            dal = new MySQLDatabaseAccessor("127.0.0.1", 3306, "sciencewarsdb", "root", "admin");

            ResourceLoader.loadResources();
            queue = new BasicPlayerQueue(this, 2);
            server.clientArrivedEvent  += server_clientArrivedEvent;
            server.clientRemovedEvent  += server_clientRemovedEvent;
            server.messageArrivedEvent += server_messageArrivedEvent;

            server.StartServer(ip, port);
        }
    void Start()
    {
        mainMenuTabs = new TabController();
        mainMenuTabs.addTab(buttonHome, homeWindow);
        mainMenuTabs.addTab(buttonQueue, queueWindow);
        mainMenuTabs.addTab(buttonScienceTree, scienceTreeWindow);
        mainMenuTabs.selectTab(buttonHome);

        scienceTreeTabs = new TabController();
        scienceTreeTabs.addTab(buttonPhysTree, physTreeWindow);
        scienceTreeTabs.addTab(buttonChemTree, chemTreeWindow);
        scienceTreeTabs.addTab(buttonBioTree, bioTreeWindow);
        scienceTreeTabs.selectTab(buttonPhysTree);

        TypeIdGenerator.getTowerType(0);
    }
Beispiel #6
0
 public void createTower(string towerTypeId)
 {
     MouseHandler.selectedTowerType = TypeIdGenerator.getTowerType(Int32.Parse(towerTypeId));
     if (PlayerMe.cash < TypeIdGenerator.getTowerClass(Int32.Parse(towerTypeId)).getCost())
     {
         Announcement.make("[FF0000]Not enough money[-]", Announcement.ScreenPosition.MiddleBottom, 2.0f, 20.0f);
     }
     else
     {
         selectedTowerOverlayObject.transform.position = towerAndMinionButtons[MouseHandler.selectedTowerType].transform.position;
         if (!selectedTowerOverlayObject.activeInHierarchy)
         {
             selectedTowerOverlayObject.SetActive(true);
         }
     }
 }
        public override void processMessage(NetWorker.Utilities.RawMessage message, User user)
        {
            if (user.player != null && user.player.playerState == Player.PlayerState.ALIVE &&      // player hayatta mi
                (user.player.game.gameState == Science_Wars_Server.Game.GameState.PLAYTIME ||      // oyun playtime da mi
                 user.player.game.gameState == Science_Wars_Server.Game.GameState.STARTCOUNTDOWN)) // oyun startcountdownda mi
            {
                int newTowerTypeId = message.getInt("tid");
                int indexOnBoard   = message.getInt("iob");

                if (newTowerTypeId < 0 || user.unlockedTowers.Length < newTowerTypeId)  //typeId valid?
                {
                    return;
                }
                if (indexOnBoard < 0 || indexOnBoard > user.player.board.towers.Length - 1)  // indexOnBoard valid?
                {
                    return;
                }

                Tower oldTower = user.player.board.towers[indexOnBoard];
                if (oldTower == null)  // upgrade edilmek istenen noktada bir kule var mi. ( havayi mi upgrade edeceksin essoglu essek )
                {
                    return;
                }

                if (checkIfTowerUpgradableTo(TypeIdGenerator.getTowerId(oldTower.GetType()), TypeIdGenerator.getTowerType(newTowerTypeId)) == false)   // bu kule, istenen turdeki kuleye upgrade edilebilir mi?
                {
                    return;
                }

                if (user.unlockedTowers[newTowerTypeId] == true)  // bu kule unlocklanmis mi?
                {
                    Tower tower =
                        (Tower)
                        Activator.CreateInstance(TypeIdGenerator.getTowerType(newTowerTypeId), user.player.board,
                                                 indexOnBoard);

                    if (user.player.trySpendCash(tower.getCost()) && user.player.board.AddTower(tower, indexOnBoard))
                    {
                        OutgoingMessages.Game.GUpgradeTowerResult.sendMessage(user.player.game.players, tower, newTowerTypeId);
                        OutgoingMessages.Game.GCashAndIncomeInfo.sendMessage(user.player);
                    }
                }
            }
        }
        public override void processMessage(NetWorker.Utilities.RawMessage message, User user)
        {
            if (user.player != null && user.player.playerState == Player.PlayerState.ALIVE &&      // player hayatta mi
                (user.player.game.gameState == Science_Wars_Server.Game.GameState.PLAYTIME ||      // oyun playtime da mi
                 user.player.game.gameState == Science_Wars_Server.Game.GameState.STARTCOUNTDOWN)) // oyun startcountdownda mi
            {
                int typeId       = message.getInt("tid");
                int indexOnBoard = message.getInt("iob");

                if (typeId < 0 || user.unlockedTowers.Length < typeId)  //typeId valid?
                {
                    return;
                }
                if (indexOnBoard < 0 || indexOnBoard > user.player.board.towers.Length - 1)  // indexOnBoard valid?
                {
                    return;
                }

                if (checkScienceTypeOfTower(typeId, user.player.getScienceType()) == false) // player'in oyun basinda sectigi science'a ait bir kule mi bu?
                {
                    return;
                }

                if (user.unlockedTowers[typeId] == true && // bu kule unlocklanmis mi?
                    user.player.board.towers[indexOnBoard] == null)      // bu slotta baska kule var mi?
                {
                    Tower tower =
                        (Tower)
                        Activator.CreateInstance(TypeIdGenerator.getTowerType(typeId), user.player.board,
                                                 indexOnBoard);

                    if (user.player.trySpendCash(tower.getCost()) && user.player.board.AddTower(tower, indexOnBoard))
                    {
                        // STATCODE
                        PlayerStats pStats = user.player.game.statTracker.getPlayerStatsOfPlayer(user.player);
                        pStats.towersBuilt += 1;

                        OutgoingMessages.Game.GCreateTowerResult.sendMessage(user.player.game.players, tower);
                        OutgoingMessages.Game.GCashAndIncomeInfo.sendMessage(user.player);
                    }
                }
            }
        }
Beispiel #9
0
        public override void processMessage(NetWorker.Utilities.RawMessage message)
        {
            Tower tower = (Tower)System.Activator.CreateInstance(TypeIdGenerator.getTowerType(message.getInt("tid")));

            tower.indexOnBoard = message.getInt("iob");

            Board board = Assets.Scripts.Engine.Game.getBoardById(message.getInt("bid"));

            Tower oldTower = board.towers[tower.indexOnBoard];

            if (oldTower != null)
            {
                oldTower.destroyable = true;
            }

            if (board.AddTower(tower, tower.indexOnBoard))
            {
                Runner.Graphics.upgradeTower(tower);
            }
        }