Beispiel #1
0
        public static void sendMessage(ICollection <Player> receiverPlayers, Minion minion, ICollection <Minion> otherMinions)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GMinion_QuantumSoldier_teleport)));


            if (receiverPlayers != null && receiverPlayers.Count != 0)
            {
                msg.putInt("iid", minion.instanceId);
                msg.putFloat("ds", 1.3f);

                int [] minionInstanceIDs = new int[otherMinions.Count];

                int index = 0;
                foreach (var minionTarget in otherMinions)
                {
                    minionInstanceIDs[index++] = minionTarget.instanceId;
                }

                msg.putIntArray("mids", minionInstanceIDs);

                foreach (var receiverPlayer in receiverPlayers)
                {
                    receiverPlayer.user.session.client.SendMessage(msg);
                }
            }
        }
        public static void sendMessage()
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GLoadingStateResult)));
            Network.server.SendMessage(msg);
        }
Beispiel #3
0
        public static void sendMessage(ICollection <Player> receiverPlayers, Minion minion)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GCreateMinionResult)));

            if (receiverPlayers != null && receiverPlayers.Count != 0)
            {
                msg.putInt("iid", minion.instanceId);
                if (minion.ownerPlayer != null)
                {
                    msg.putInt("uid", minion.ownerPlayer.id);
                }
                else
                {
                    msg.putInt("uid", -1);
                }
                msg.putInt("tid", TypeIdGenerator.getMinionId(minion.GetType()));
                msg.putInt("bid", minion.position.board.instanceId);
                msg.putInt("cid", minion.position.pathPosition.pointIndex);
                msg.putFloat("t", minion.position.pathPosition.ratio);

                foreach (var receiverPlayer in receiverPlayers)
                {
                    receiverPlayer.user.session.client.SendMessage(msg);
                }
            }
        }
        public static void sendMessage(ICollection <Player> receiverPlayers, Missile missile)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GCreateMissileInfo)));

            // STATCODE
            PlayerStats pStats = missile.ownerTower.board.player.game.statTracker.getPlayerStatsOfPlayer(missile.ownerTower.board.player);

            pStats.missilesFired += 1;

            if (receiverPlayers != null && receiverPlayers.Count != 0)
            {
                msg.putInt("iid", missile.instanceId);
                msg.putInt("bid", missile.ownerTower.board.instanceId);
                msg.putInt("iob", missile.ownerTower.indexOnBoard);
                msg.putInt("tid", TypeIdGenerator.getMissileId(missile.GetType()));
                msg.putInt("mid", missile.targetMinion.instanceId);

                foreach (var receiverPlayer in receiverPlayers)
                {
                    receiverPlayer.user.session.client.SendMessage(msg);
                }
            }
        }
Beispiel #5
0
        public static void sendMessage(User receiver)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(EnterLobby)));

            receiver.session.client.SendMessage(msg);
        }
Beispiel #6
0
        public static void sendMessage()
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GQuitGameRequest)));
            Network.server.SendMessage(msg);
            Runner.Graphics.destroyGame();
        }
        public static void sendMessage(bool result)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GReadyStateResult)));
            msg.putBool("r", result);
            Network.server.SendMessage(msg);
        }
Beispiel #8
0
        public static void sendMessage(Type nodeType)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(LUnlockNodeRequest)));
            msg.putInt("tid", TypeIdGenerator.getScienceNodeIds(nodeType));
            Network.server.SendMessage(msg);
        }
        static public void sendMessage(int minionTypeId)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GCreateMinionRequest)));
            msg.putInt("tid", minionTypeId);
            Network.server.SendMessage(msg);
        }
        static public void sendMessage(int towerTypeId, int indexOnBoard)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GCreateTowerRequest)));
            msg.putInt("tid", towerTypeId);
            msg.putInt("iob", indexOnBoard);
            Network.server.SendMessage(msg);
        }
Beispiel #11
0
        public override void processMessage(RawMessage message)
        {
            ResourceLoader.loadResources();

            Engine.Game.players     = new LinkedList <Player>();
            Engine.Game.statPlayers = new List <Player> ();
            Engine.Game.clearOldGameData();

            foreach (RawMessage msg in message.getRawMessageArray("users"))
            {
                int uid = msg.getInt("uid");

                Board board = (Board)Activator.CreateInstance(TypeIdGenerator.getBoardType(msg.getInt("btid")));
                //TODO exception handle et yukaridaki bi sinifin icinde. Eger hata gelmisse adamin clienti ya bozulmus
                // ya oynanmis ya da eskimis demektir. ona gore bi hata mesaji bastir.
                board.scienceType = (ScienceType)Enum.Parse(typeof(ScienceType), msg.getUTF8String("st"));
                board.instanceId  = msg.getInt("biid");

                if (uid == UserMe.self.id)
                {
                    PlayerMe.self      = new Player(msg.getInt("hps"), board);
                    PlayerMe.cash      = msg.getInt("cash");
                    PlayerMe.income    = msg.getInt("inc");
                    PlayerMe.self.user = UserMe.self;
                    UserMe.self.player = PlayerMe.self;

                    setAvailableMinionsOfPlayer();
                    setAvailableTowersOfPlayer();

                    Engine.Game.players.AddLast(PlayerMe.self);
                    Engine.Game.statPlayers.Add(PlayerMe.self);
                    board.player = PlayerMe.self;
                }
                else
                {
                    User u = new User(msg.getUTF8String("un"), uid, new Player(msg.getInt("hps"), board));
                    u.player.user = u;
                    board.player  = u.player;
                    Engine.Game.players.AddLast(u.player);
                    Engine.Game.statPlayers.Add(u.player);
                }
            }

            float dist = Engine.Game.calculateBoardDistanceToCenter(Engine.Game.players.Count);

            for (int i = 0; i < Engine.Game.players.Count; i++)
            {
                Vector3 rotation = new Vector3(0, i * 360.0f / Engine.Game.players.Count, 0);
                Engine.Game.players.ElementAt(i).board.rotation = rotation;

                Engine.Game.players.ElementAt(i).board.position  = new Vector3(Mathf.Cos(-1 * rotation.y * (Mathf.PI / 180.0f)) * dist, 0, Mathf.Sin(-1 * rotation.y * (Mathf.PI / 180.0f)) * dist);
                Engine.Game.players.ElementAt(i).board.nextBoard = Engine.Game.players.ElementAt((i + 1) % Engine.Game.players.Count).board;
                Engine.Game.players.ElementAt(i).board.prevBoard = Engine.Game.players.ElementAt((i + Engine.Game.players.Count - 1) % Engine.Game.players.Count).board;
            }

            Engine.Game.setState(Engine.Game.GameState.LOADING);
        }
Beispiel #12
0
        /// <summary>
        /// Checks whether this tower's parent is a node with given id as parameter.
        /// </summary>
        /// <param name="parentId">Id of the parent</param>
        /// <returns>If found, returns tower node of the parent, otherwise returns null.</returns>
        public TowerNode checkParent(int parentId)
        {
            if (TypeIdGenerator.getTowerId(parent.towerType) == parentId)
            {
                return(parent);
            }

            return(null);
        }
        static public void sendMessage(Engine.Towers.Tower tower, int upgradedTowerTypeId)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GUpgradeTowerRequest)));
            msg.putInt("tid", upgradedTowerTypeId);
            msg.putInt("iob", tower.indexOnBoard);
            Network.server.SendMessage(msg);
        }
Beispiel #14
0
        public static void sendMessage(User user)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(LReturnQueue)));
            user.userState = User.UserState.LOBBY;
            Runner.queue.addUser(user);
            user.session.client.SendMessage(msg);
        }
Beispiel #15
0
        public static void sendMessage(User user, bool result)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(LCancelQueueResult)));
            msg.putBool("r", result);

            user.session.client.SendMessage(msg);
        }
        public bool getUserData(int userId, int scienceNodeCount, out Models.UserDataModel userData)
        {
            userData = new Models.UserDataModel();
            MySqlCommand com = client.CreateCommand();

            com.CommandText = "SELECT * FROM userdata WHERE userid=" + userId;
            com.Connection  = client;

            MySqlDataReader reader = null;

            try
            {
                reader = com.ExecuteReader(new System.Data.CommandBehavior());

                if (reader.Read())  // tek column okusak yeter, o yuzden while yapmadim.
                {
                    userData.userId     = userId;
                    userData.physPoints = (int)reader["physpoints"];
                    userData.chemPoints = (int)reader["chempoints"];
                    userData.bioPoints  = (int)reader["biopoints"];

                    byte[] scienceNodesByte = (byte[])reader["unlockedsciencenodes"];

                    bool[] unlockedScienceNodeDbIds = new bool[scienceNodeCount];

                    for (int i = 0; i < scienceNodeCount && i < scienceNodesByte.Length * 8; i++)
                    {
                        unlockedScienceNodeDbIds[i] = (scienceNodesByte[i / 8] & (1 << (i % 8))) != 0;
                    }

                    userData.unlockedScienceNodes = new bool[scienceNodeCount];

                    foreach (var nodeDbIdPair in ScienceNode.scienceNodeDbIds)  // dbId'leri, typeId ye donusturuyoruz. Cunku db disinda bize lazim degil dbId. indexlerde hep typeId lazim.
                    {
                        userData.unlockedScienceNodes[TypeIdGenerator.getScienceNodeIds(nodeDbIdPair.Key.GetType())] = unlockedScienceNodeDbIds[nodeDbIdPair.Value];
                    }

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }
            finally
            {
                try
                {
                    reader.Close();
                }
                catch { }
            }
        }
Beispiel #17
0
        /// <summary>
        /// Checks whether this miinion's parent is a node with given id as parameter.
        /// </summary>
        /// <param name="parentId">Id of the parent</param>
        /// <returns>If found, returns miinion node of the parent, otherwise returns null.</returns>
        public MinionNode checkParent(int parentId)
        {
            if (TypeIdGenerator.getMinionId(parent.minionType) == parentId)
            {
                return(parent);
            }

            return(null);
        }
Beispiel #18
0
        public static void sendMessage(string text)
        {
            // TODO User state check
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GChatMessage)));
            msg.putUTF8String("cmd", text);
            Network.server.SendMessage(msg);
        }
Beispiel #19
0
        static public void sendMessage(int currentMinionTypeId, int upgradedMinionTypeId)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GUpgradeMinionRequest)));
            msg.putInt("tid", currentMinionTypeId);
            msg.putInt("utid", upgradedMinionTypeId);

            Network.server.SendMessage(msg);
        }
Beispiel #20
0
        public void updateCashAndIncome()
        {
            // muhtemelen burada hicbir is yapmaya gerek yok. adamin para gostergesinin etrafinda isiklar cikartabiliriz paranin degistigine vurgu yapmak icin.
            uiControllerGame.setMoney(PlayerMe.cash, PlayerMe.income);

            foreach (var button in uiControllerGame.towerAndMinionButtons)    // paramizin yetmedigi butonlari kirmizi yapalim
            {
                if (typeof(Minion).IsAssignableFrom(button.Key))
                {
                    if (TypeIdGenerator.getMinionClass(TypeIdGenerator.getMinionId(button.Key)).getCost() > PlayerMe.cash)
                    {
                        foreach (var obj in button.Value.transform.GetComponentsInChildren <UISlicedSprite>(true))
                        {
                            if (obj.gameObject.transform.name == "NotEnoughMoneyLayer")
                            {
                                obj.gameObject.SetActive(true);
                            }
                        }
                    }
                    else
                    {
                        foreach (var obj2 in button.Value.transform.GetComponentsInChildren <UISlicedSprite>(true))
                        {
                            if (obj2.gameObject.transform.name == "NotEnoughMoneyLayer")
                            {
                                obj2.gameObject.SetActive(false);
                            }
                        }
                    }
                }
                else if (typeof(Tower).IsAssignableFrom(button.Key))
                {
                    if (TypeIdGenerator.getTowerClass(TypeIdGenerator.getTowerId(button.Key)).getCost() > PlayerMe.cash)
                    {
                        foreach (var obj in button.Value.transform.GetComponentsInChildren <UISlicedSprite>(true))
                        {
                            if (obj.gameObject.transform.name == "NotEnoughMoneyLayer")
                            {
                                obj.gameObject.SetActive(true);
                            }
                        }
                    }
                    else
                    {
                        foreach (var obj2 in button.Value.transform.GetComponentsInChildren <UISlicedSprite>(true))
                        {
                            if (obj2.gameObject.transform.name == "NotEnoughMoneyLayer")
                            {
                                obj2.gameObject.SetActive(false);
                            }
                        }
                    }
                }
            }
        }
        private bool checkIfMinionUpgradableTo(int currentMinionTypeId, Type upgradedMinionType)
        {
            MinionNode tn = TypeIdGenerator.getMinionNodeInst(upgradedMinionType);

            if (tn == null)
            {
                return(false);
            }

            return(tn.checkParent(currentMinionTypeId) != null);
        }
        private bool checkIfTowerUpgradableTo(int currentTowerTypeId, Type upgradingTowerType)
        {
            TowerNode tn = TypeIdGenerator.getTowerNodeInst(upgradingTowerType);

            if (tn == null)
            {
                return(false);
            }

            return(tn.checkParent(currentTowerTypeId) != null);
        }
        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);
            }
        }
Beispiel #24
0
        public static void sendMessage(Player player)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GCashAndIncomeInfo)));

            msg.putInt("c", player.cash);
            msg.putInt("i", player.income);

            player.user.session.client.SendMessage(msg);
        }
Beispiel #25
0
        public static void sendMessage(ICollection <Player> players, bool result)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GReadyStateResult)));
            msg.putBool("r", result);

            foreach (Player player in players)
            {
                player.user.session.client.SendMessage(msg);
            }
        }
Beispiel #26
0
 void Update()
 {
     lock (messages)
     {
         RawMessage msg;
         while (messages.Count != 0)
         {
             msg = messages.Dequeue();
             TypeIdGenerator.getMessageClass(msg.getInt("id")).processMessage(msg);
         }
     }
 }
        public static void sendMessage(ICollection <Player> receiverPlayers, float seconds)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GEnterStartCountdown)));
            msg.putFloat("s", seconds);

            foreach (var player in receiverPlayers)
            {
                player.user.session.client.SendMessage(msg);
            }
        }
Beispiel #28
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);
            }
        }
Beispiel #29
0
        /// <summary>
        /// Checks whether this tower node has a children with given id
        /// </summary>
        /// <param name="childId">Id of the child</param>
        /// <returns>If found, returns tower node of the child, otherwise returns null.</returns>
        public TowerNode checkChildren(int childId)
        {
            foreach (TowerNode node in children)
            {
                if (TypeIdGenerator.getTowerId(node.towerType) == childId)
                {
                    return(node);
                }
            }

            return(null);
        }
Beispiel #30
0
        /// <summary>
        /// Checks whether this miinion node has a children with given id
        /// </summary>
        /// <param name="childId">Id of the child</param>
        /// <returns>If found, returns miinion node of the child, otherwise returns null.</returns>
        public MinionNode checkChildren(int childId)
        {
            foreach (MinionNode node in children)
            {
                if (TypeIdGenerator.getMinionId(node.minionType) == childId)
                {
                    return(node);
                }
            }

            return(null);
        }