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