示例#1
0
        private static void setUnlockedMinionsAndTowers(bool[] unlockedScienceNodes)
        {
            //for the time being, I sat all the tower and minions as available
            unlockedMinions = new bool[TypeIdGenerator.getMinionCount()];
            unlockedTowers  = new bool[TypeIdGenerator.getTowerCount()];

            for (int i = 0; i < unlockedScienceNodes.Length; ++i)
            {
                if (unlockedScienceNodes[i])
                {
                    ScienceNode.scienceNodeInst[TypeIdGenerator.getScienceNodeTypes(i)].unlock();
                }
            }
        }
示例#2
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);
            }
        }
示例#3
0
        private void setUnlockedMinionsAndTowers(bool[] unlockedScienceNodes)
        {
            unlockedTowers  = new bool[TypeIdGenerator.getTowerTypeCount()];
            unlockedMinions = new bool[TypeIdGenerator.getMinionTypeCount()];

            for (int i = 0; i < unlockedScienceNodes.Length; ++i)
            {
                if (unlockedScienceNodes[i])
                {
                    ScienceNode tmpNode = null;
                    if (ScienceNode.scienceNodeInst.TryGetValue(TypeIdGenerator.getScienceNodeTypes(i), out tmpNode))
                    {
                        if (tmpNode != null)
                        {
                            tmpNode.unlock(this);
                        }
                    }
                }
            }
        }