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); } }
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); }
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); } } } }
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); } }