예제 #1
0
        public override void processMessage(NetWorker.Utilities.RawMessage message)
        {
            Player p = Engine.Game.getUserById(message.getInt("uid")).player;

            if(p!= null)
                Engine.Game.setPlayerHealth(p, message.getInt("h"));
        }
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
            int minionInstanceId = message.getInt("miid");
            int boardId = message.getInt("tbid");
            int towerIndexOnBoard = message.getInt("tiob");

            Minion minion = Engine.Game.getMinionById(minionInstanceId);

            if (minion == null)
            {
                Debug.Log("LaserTower: targetlanacak minion oyunda yok!");
                return;
            }

            Board board = Engine.Game.getBoardById(boardId);

            if( board != null && board.towers.Length > towerIndexOnBoard && towerIndexOnBoard >= 0)
            {
                Tower tower = board.towers[towerIndexOnBoard];
                if (tower != null && tower is LaserTower)
                {
                    Runner.Graphics.tower_laserTower_target((LaserTower)tower, minion);
                }
            }
            
		}
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
			Minion minion = Engine.Game.getMinionById(message.getInt("iid"));
            Minion minionToHookTo = Engine.Game.getMinionById(message.getInt("tiid"));

            if (minion != null && minionToHookTo != null && minion is RoboHookMinion)
                ((RoboHookMinion)minion).hook(minionToHookTo);
		}
예제 #4
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"));

			if(	board.AddTower(tower,tower.indexOnBoard))
				Runner.Graphics.createTower(tower);
        }
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
			int minionInstanceId = message.getInt("miid");
			int boardId = message.getInt("tbid");
			int towerIndexOnBoard = message.getInt("tiob");
			
			Minion minion = Engine.Game.getMinionById(minionInstanceId);
            DroseraTower tower = (DroseraTower)Engine.Game.getBoardById(boardId).towers[towerIndexOnBoard];
            Runner.Graphics.tower_droseraTower_bite(tower, minion);
		}
예제 #6
0
        public override void processMessage(NetWorker.Utilities.RawMessage message)
        {
            int cash = message.getInt("c");
            int income = message.getInt("i");

            PlayerMe.cash = cash;
            PlayerMe.income = income;

            Runner.Graphics.updateCashAndIncome();
        }
예제 #7
0
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
			Board board = Engine.Game.getBoardById(message.getInt("bid"));
			Tower tower = board.towers[message.getInt("iob")];

			ITowerEffect effect = (ITowerEffect) Activator.CreateInstance(TypeIdGenerator.getTowerEffectClass(message.getInt("tid")));
			
			if (tower != null)
				tower.effects.AddLast(effect);
		}
예제 #8
0
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
			Minion minion = Engine.Game.getMinionById(message.getInt("iid"));
			MinionEffect effect = (MinionEffect) Activator.CreateInstance(TypeIdGenerator.getMinionEffectClass(message.getInt("tid")));

            if (minion != null)
            {
                minion.effects.AddLast(effect);
                Runner.Graphics.addMinionEffect(minion, effect);
            }
		}
예제 #9
0
        public override void processMessage(NetWorker.Utilities.RawMessage message)
        {
            Minion minion = Engine.Game.getMinionById(message.getInt("iid"));
            Board board = Engine.Game.getBoardById(message.getInt("bid"));
            
			if (board != null && minion != null && !board.minions.ContainsKey(minion.instanceId))
                board.AddMinion(minion);

			if (minion != null)
			{
	            minion.position.pathPosition.pointIndex = message.getInt("cid");
	            minion.position.pathPosition.ratio = message.getFloat("t");
			}
        }
예제 #10
0
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
            int instanceId = message.getInt("iid");
            int typeId = message.getInt("tid");
            User ownerUser = Engine.Game.getUserById(message.getInt("uid"));
            float[] position = message.getFloatArray("pos");

            if (ownerUser != null)
            {
                AreaEffect areaEffect = (AreaEffect)Activator.CreateInstance(TypeIdGenerator.getAreaEffectClass(typeId), instanceId, ownerUser.player, new Vector3(position[0],position[1],position[2]));
                Engine.Game.AddAreaEffect(areaEffect);
                Runner.Graphics.createAreaEffect(areaEffect);                
            }
		}
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
			int instanceId = message.getInt("iid");
			int typeId = message.getInt("tid");
			User ownerUser = Engine.Game.getUserById(message.getInt("uid"));
			float[] position = message.getFloatArray("pos");
			float dmgPerSecond = message.getFloat ("dps");
			float slowAmount = message.getFloat ("sa");
			
			if (ownerUser != null)
			{
				NailTrapAreaEffect areaEffect = new NailTrapAreaEffect(instanceId,ownerUser.player,new Vector3(position[0],position[1],position[2]),slowAmount,dmgPerSecond);
				Engine.Game.AddAreaEffect(areaEffect);
				Runner.Graphics.createAreaEffect(areaEffect);                
			}
		}
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
            int minionInstanceId = message.getInt("miid");
            int boardId = message.getInt("tbid");
            int towerIndexOnBoard = message.getInt("tiob");

            Board board = Engine.Game.getBoardById(boardId);

            if( board != null && board.towers.Length > towerIndexOnBoard && towerIndexOnBoard >= 0)
            {
                Tower tower = board.towers[towerIndexOnBoard];
                if (tower != null && tower is LaserTower)
                {
                    Runner.Graphics.tower_laserTower_untarget((LaserTower)tower, minionInstanceId);
                }
            }
            
		}
예제 #13
0
        public override void processMessage(NetWorker.Utilities.RawMessage message)
        {
            Minion minion = Engine.Game.getMinionById(message.getInt("iid"));

            if (minion != null)
            {
                minion.minionState = Minion.MinionState.ALIVE;
                minion.stats.health = 264;
                minion.stats.baseMovementSpeed = 1.1f;
                Runner.Graphics.minion_zombie_raise((ZombieMinion)minion);
            }
        }
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
			Minion minion = Engine.Game.getMinionById(message.getInt("iid"));
			float slowAmount = message.getFloat ("sa");
			NailTrapSlowEffect effect = new NailTrapSlowEffect (slowAmount);
			
			if (minion != null)
			{
				minion.effects.AddLast(effect);
				Runner.Graphics.addMinionEffect(minion, effect);
			}
		}
        public override void processMessage(NetWorker.Utilities.RawMessage message)
        {
            Minion minion = Engine.Game.getMinionById(message.getInt("iid"));
            float runBackTime = message.getFloat("t");

            TrypanophobiaEffect effect = new TrypanophobiaEffect(runBackTime);

            if (minion != null)
            {
                minion.effects.AddLast(effect);
                Runner.Graphics.addMinionEffect(minion, effect);
            }
        }
예제 #16
0
        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)
		{
            int instanceId = message.getInt("iid");                        
            int[] minionIds = message.getIntArray("miid");            
            for (int i = 0; i < minionIds.Length; i++)
            {
                Minion m = Engine.Game.getMinionById(minionIds[i]);
                if (m != null)
                {
                    Runner.Graphics.tower_blackHoleTower_teleportStart(m);
                    m.moveCustomDistance(-2.0f);
                    Runner.Graphics.tower_blackHoleTower_teleportEnd(m);
                }
            }
		}
예제 #18
0
        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)
        {
            Minion minion = Engine.Game.getMinionById(message.getInt("iid"));

            if (minion != null && minion is QuantumSoldierMinion)
            {
                ((QuantumSoldierMinion)minion).teleport();
                Runner.Graphics.minion_quantumSoldier_teleport(minion);
            }

            int[] minionInstanceIDs = message.getIntArray("mids");
            float dist = message.getFloat("ds");

            for(int i = 0; i < minionInstanceIDs.Length; i++)
            {
                Minion minionToTp = Engine.Game.getMinionById(minionInstanceIDs[i]);
                minionToTp.moveCustomDistance(dist);
            }
        }
예제 #20
0
        public override void processMessage(NetWorker.Utilities.RawMessage message, User user)
        {
            int nodetypeid = message.getInt("tid");
            // Get type of science node to access its ScienceNode instance.
            // Find parent of it and check if the user has already unlocked it or not.
            // If successfull access database and change it.
            try
            {
                Type nodeType = TypeIdGenerator.getScienceNodeTypes(nodetypeid);
                ScienceNode newNode = ScienceTrees.ScienceNodes.ScienceNode.scienceNodeInst[nodeType];

                //int parentNodeId = TypeIdGenerator.getScienceNodeIds(newNode.parent.GetType());
                //if (user.unlockedScienceNodes[parentNodeId] && !user.unlockedScienceNodes[nodetypeid] )
                if (!user.unlockedScienceNodes[nodetypeid])
                {
                    // TODO: try to spend science points
                    user.unlockedScienceNodes[nodetypeid] = true;
                    bool[] unlockedScienceNodesWithDdId = new bool[user.unlockedScienceNodes.Length];
                    for (int i = 0; i < user.unlockedScienceNodes.Length; i++ )
                    {

                        Type tmpNodeType = TypeIdGenerator.getScienceNodeTypes(i);
                        ScienceNode tmpNode = ScienceTrees.ScienceNodes.ScienceNode.scienceNodeInst[tmpNodeType];
                        int tmpDbId = ScienceNode.scienceNodeDbIds[tmpNode];
                        if (user.unlockedScienceNodes[i])
                            unlockedScienceNodesWithDdId[tmpDbId] = true;
                        else
                            unlockedScienceNodesWithDdId[tmpDbId] = false;

                    }
                    newNode.unlock(user);
                    Runner.dal.openScienceNode(user.id, unlockedScienceNodesWithDdId);
                    LUnlockNodeResult.sendMessage(user, true);
                }
                else
                    LUnlockNodeResult.sendMessage(user,false);
            }

            catch
            {
                LUnlockNodeResult.sendMessage(user,false);
            }
        }
예제 #21
0
 public override void processMessage(NetWorker.Utilities.RawMessage message)
 {
     Minion minion = Engine.Game.getMinionById(message.getInt("iid"));
     if (minion != null)
         minion.stats.health = message.getFloat("h");                
 }
예제 #22
0
 public override void processMessage(NetWorker.Utilities.RawMessage message)
 {
     Minion minion = Engine.Game.getMinionById(message.getInt("iid"));
     if(minion!=null)
         minion.destroyable = true;
 }
		public override void processMessage(NetWorker.Utilities.RawMessage message)
		{
			SeedTower ownerTower = (SeedTower)Engine.Game.getBoardById(message.getInt("bid")).towers[message.getInt("iob")]; //TODO check yapmak lazim bu indexler dogru mu, bu element null mi gelmis.
			ownerTower.seedCountInStack = message.getInt("sc");
		}