Ejemplo n.º 1
0
 // Use this for initialization
 void Start()
 {
     nodeController = GetComponent <NodeController>();
     trapController = GetComponent <TrapController>();
     uiController   = GameObject.Find("In-game UI").GetComponent <UI_Controller>();
     loader         = GameObject.Find("SceneManager").GetComponent <SceneLoader>();
 }
        public async Task GetRawTransactionAsync_TransactionCannotBeFound_ReturnsNullAsync()
        {
            var txId = new uint256(12142124);

            this.pooledTransaction.Setup(p => p.GetTransaction(txId))
            .ReturnsAsync((Transaction)null)
            .Verifiable();
            var blockStore = new Mock <IBlockStore>();

            blockStore.Setup(b => b.GetTrxAsync(txId))
            .ReturnsAsync((Transaction)null)
            .Verifiable();
            this.fullNode.Setup(f => f.NodeFeature <IBlockStore>(false))
            .Returns(blockStore.Object);
            this.controller = new NodeController(this.fullNode.Object, this.LoggerFactory.Object,
                                                 this.dateTimeProvider.Object, this.chainState.Object, this.nodeSettings,
                                                 this.connectionManager.Object, this.chain, this.network, this.pooledTransaction.Object,
                                                 this.pooledGetUnspentTransaction.Object, this.getUnspentTransaction.Object, this.networkDifficulty.Object);
            string txid    = txId.ToString();
            bool   verbose = false;

            var json = (JsonResult)await this.controller.GetRawTransactionAsync(txid, verbose).ConfigureAwait(false);

            Assert.Null(json.Value);
            this.pooledTransaction.Verify();
            blockStore.Verify();
        }
    /// <summary>
    /// Takes into acount our current resource pools/rates, the nodes resource rates, the distance to nearest player, and the distance to the most threatening player.
    /// </summary>
    /// <param name="desiredNode"></param>
    /// <returns></returns>
    public float EvaluateExpansion(out NodeController desiredNode)
    {
        int   iIndex  = 0;
        float bestval = float.MinValue;

        foreach (var res in GameManager.instance.resourceList)
        {
            expansionInputs[iIndex]   = player.GetResourcePool(res);
            expansionInputs[++iIndex] = player.GetResourceRate(res);
        }

        desiredNode = null;
        foreach (var kvp in player.borderNodes)
        {
            int i = iIndex + 1;
            for (int j = 0; j < GameManager.instance.resourceList.Count; ++j, ++i)
            {
                var res = GameManager.instance.resourceList[j];
                expansionInputs[i] = kvp.Value.resourceCont.GetResourceRate(res);
            }

            expansionInputs[i]   = kvp.Value.nearestOwnedDist;
            expansionInputs[++i] = GameManager.instance.DistanceToNearestPlayerNode(kvp.Value, threatPlayer);
            expansionInputs[++i] = kvp.Value.buildingCont.GetBuildingTypeCount(BUILDING_TYPE.ECONOMIC);

            float val = nnExpansion.Evaluate(expansionInputs)[0];
            if (val > bestval)
            {
                bestval     = val;
                desiredNode = kvp.Value;
            }
        }
        return(bestval);
    }
Ejemplo n.º 4
0
    public void GenerateMap()
    {
        for (int y = 0; y < _grid.GetLength(1); y++)
        {
            for (int x = 0; x < _grid.GetLength(0); x++)
            {
                Node node = _grid[x, y];
                if (node != null)
                {
                    if (node.GetNodeType() != NodeType.BLANK)
                    {
                        GameObject     nodeGO = Instantiate(nodePrefabs[node.GetNodeType()], new Vector3(x - 5.5f, y - 9.5f, 0), nodePrefabs[node.GetNodeType()].transform.rotation);
                        NodeController nc     = nodeGO.GetComponent <NodeController>();
                        nc.SetNode(node);

                        if (node.GetNodeType() == NodeType.START_NODE)
                        {
                            NetManager.StartingNodes.Add(nc);
                            node.SetNodeType(NodeType.NODE);
                        }

                        if (node is BaseNode baseNode)
                        {
                            baseNode.SetComponentData(0);
                        }

                        NetworkServer.Spawn(nodeGO);
                        nc.color = node.GetNodeType() != NodeType.DATA_BUS ? Color.white : Color.red;
                    }
                }
            }
        }
    }
Ejemplo n.º 5
0
    /**
     * Retrieves a random neighbour of a specific node.
     * @param node the given node.
     * @return a random neighbour.
     */
    private NodeController getRandomNeighbour(NodeController node)
    {
        List <NodeController> neighbours = node.Neighbours;
        int randomNumber = Random.Range(0, neighbours.Count);

        return(neighbours[randomNumber]);
    }
    public float[] EvaluateDevelopment(NodeController node)
    {
        for (int i = 0; i < developmentInputs.Length; ++i)
        {
            developmentInputs[i] = 0.0f;
            if (i % 2 == 0)
            {
                developmentInputs[i] = player.resourceRatesList[i / 2].value;
            }
            else
            {
                developmentInputs[i] = player.resourcePoolsList[i / 2].value;
            }
        }

        return(nnDevelopment.Evaluate(developmentInputs));

        //var outputs = nnDevelopment.Evaluate(developmentInputs);

        //int highest = 0;
        //for (int i = 0; i < outputs.Length; ++i)
        //	if (outputs[i] > outputs[highest])
        //		highest = i;

        //var building = GameManager.instance.buildingList[highest];
        //return GameManager.instance.AttemptToBuyBuilding(player, node, building);
    }
Ejemplo n.º 7
0
        private void IsFill_CheckedChanged(object sender, EventArgs e)
        {
            if (this.IsFill.Checked)
            {
                this.ColorChoosen.Visible = true;
                var a = NodeController.Get_Node_Selected();
                if (a != null)
                {
                    a.setcolor(a.Color_old);
                    this.ColorChoosen.BackColor = a.Color_old;

                    // click_isfill(this, new Click_node { color_of_node = this.ColorChoosen.BackColor });
                }
            }
            else
            {
                this.ColorChoosen.Visible = false;
                var a = NodeController.Get_Node_Selected();
                if (a != null)
                {
                    a.setcolor(Color.Gainsboro);
                    // click_isfill(this, new Click_node { color_of_node = this.ColorChoosen.BackColor });
                }
            }
        }
Ejemplo n.º 8
0
        private void TextSize_ValueChanged(object sender, EventArgs e)
        {
            var a = NodeController.Get_Node_Selected();

            a.set_font(fontDialog1.Font, fontDialog1.Font.Style, float.Parse(TextSize.Value.ToString()));
            fontDialog1.Font = new Font(fontDialog1.Font.Name, float.Parse(TextSize.Value.ToString()), fontDialog1.Font.Style);
        }
Ejemplo n.º 9
0
        public SquareSetup(NodeController _northwestCorner, NodeController _northeastCorner,
                           NodeController _southeastCorner, NodeController _southwestCorner)
        {
            northwestCorner = _northwestCorner;
            northeastCorner = _northeastCorner;
            southeastCorner = _southeastCorner;
            southwestCorner = _southwestCorner;

            north = northwestCorner.nodeRight;
            east  = southeastCorner.nodeAbove;
            south = southwestCorner.nodeRight;
            west  = southwestCorner.nodeAbove;

            //
            if (northwestCorner.nodeActive)
            {
                config += 8;
            }
            if (northeastCorner.nodeActive)
            {
                config += 4;
            }
            if (southeastCorner.nodeActive)
            {
                config += 2;
            }
            if (southwestCorner.nodeActive)
            {
                config += 1;
            }
        }
Ejemplo n.º 10
0
    public void CreateFromPositionedNode(int num, PositionedNode pn)
    {
        NodeController node = Instantiate(nodePrefab, transform);

        node.Initialise(num, pn.position, pn.type);
        nodes.Add(node);
    }
Ejemplo n.º 11
0
    private void SetControllerCrossReferences(ConnectionController connectionController)
    {
        if (connectionController == null)
        {
            Debug.Log("connectionController");
        }
        if (connectionController?.StaticModel == null)
        {
            Debug.Log("StaticModel");
        }
        if (connectionController?.StaticModel?.Node1 == null)
        {
            Debug.Log("Node1");
        }
        if (nodeDictionary == null)
        {
            Debug.Log("nodeDictionary");
        }
        if (nodeDictionary[connectionController.StaticModel.Node1] == null)
        {
            Debug.Log("nodeDictionary[connectionController.StaticModel.Node1]");
        }
        NodeController nodeController1 = nodeDictionary[connectionController.StaticModel.Node1].GetComponent <NodeController>();
        NodeController nodeController2 = nodeDictionary[connectionController.StaticModel.Node2].GetComponent <NodeController>();

        nodeController1.Connections.Add(connectionController);
        nodeController2.Connections.Add(connectionController);
        connectionController.SetNodeControllers(nodeController1, nodeController2);
    }
Ejemplo n.º 12
0
        public SquareGrid(int[,] level, float squareSize)
        {
            int   nodeCountX  = level.GetLength(0);
            int   nodeCountZ  = level.GetLength(1);
            float levelWidth  = nodeCountX * squareSize;
            float levelHeight = nodeCountZ * squareSize;

            NodeController[,] nodeController = new NodeController[nodeCountX, nodeCountZ];
            for (int x = 0; x < nodeCountX; x++)
            {
                for (int z = 0; z < nodeCountZ; z++)
                {
                    Vector3 position = new Vector3(-levelWidth / 2 + x * squareSize + squareSize / 2, 0, -levelHeight / 2 + z * squareSize + squareSize / 2);
                    nodeController[x, z] = new NodeController(position, level[x, z] == 1, squareSize);
                }
            }

            squares = new SquareSetup[nodeCountX - 1, nodeCountZ - 1];
            for (int x = 0; x < nodeCountX - 1; x++)
            {
                for (int z = 0; z < nodeCountZ - 1; z++)
                {
                    squares[x, z] = new SquareSetup(nodeController[x, z + 1],
                                                    nodeController[x + 1, z + 1],
                                                    nodeController[x + 1, z],
                                                    nodeController[x, z]);
                }
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Событие, срабатывающее, при нажатии на нод из TreeView.
        /// Если была нажата левая кнопка мыши, то в ListView выводятся все товары разделов и подразделов.
        /// Если была нажата правая кнопка мыши, то открывается контекстное меню для взаимодействия с программой.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void treeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                treeView.SelectedNode = treeView.GetNodeAt(e.Location);
                Dictionary <TreeNode, List <TreeNode> > treeNodes =
                    NodeController.GetDeepestNodes(treeView.SelectedNode, new Dictionary <TreeNode, List <TreeNode> >());

                GenerateListViewItems(treeNodes);
            }

            if (e.Button == MouseButtons.Right)
            {
                treeView.SelectedNode = treeView.GetNodeAt(e.Location);
                if (treeView.SelectedNode.Tag is StorageModel)
                {
                    ChangeActionToolStripsState(
                        false, true, false, true, true, true, true);
                }
                if (treeView.SelectedNode.Tag is SectionModel)
                {
                    ChangeActionToolStripsState(
                        false, true, true, true, true, true, false);
                }
                if (treeView.SelectedNode.Tag is ProductModel)
                {
                    ChangeActionToolStripsState(
                        false, false, false, true, true, false, false);
                }

                contextMenuStrip.Show(e.Location);
            }
        }
Ejemplo n.º 14
0
    private IEnumerator FollowPath(NodeController destinationNode, int amount, NetworkIdentity sender)
    {
        Node currentWaypoint = _path[0];

        while (true)
        {
            if (Math.Abs(transform.position.x - (currentWaypoint.GetPosition().x - 5.5f)) < 0.1 &&
                Math.Abs(transform.position.y - (currentWaypoint.GetPosition().y - 9.5f)) < 0.1)
            {
                _targetIndex++;
                if (_targetIndex >= _path.Count)
                {
                    FinishedPath(destinationNode, amount, sender);
                    yield break;
                }

                Debug.Log($"{_targetIndex}:{_path.Count}");
                currentWaypoint = _path[_targetIndex];
            }

            Vector2Int newTarget = currentWaypoint.GetPosition();
            transform.position = Vector3.MoveTowards(transform.position,
                                                     new Vector3(newTarget.x - 5.5f, newTarget.y - 9.5f, 0), _speed * Time.deltaTime);

            yield return(null);
        }
    }
Ejemplo n.º 15
0
        public async Task GetRawTransactionAsync_TransactionNotInPooledTransaction_ReturnsTransactionFromBlockStoreAsync()
        {
            var txId = new uint256(12142124);

            this.pooledTransaction.Setup(p => p.GetTransaction(txId))
            .ReturnsAsync((Transaction)null);
            Transaction transaction = this.CreateTransaction();

            this.blockStore.Setup(b => b.GetTransactionById(txId))
            .Returns(transaction);
            this.controller = new NodeController(this.chainIndexer, this.chainState.Object,
                                                 this.connectionManager.Object, this.dateTimeProvider.Object, this.fullNode.Object,
                                                 this.LoggerFactory.Object, this.nodeSettings, this.network, this.asyncProvider.Object, this.selfEndpointTracker.Object, this.consensusManager.Object, this.blockStore.Object, this.getUnspentTransaction.Object,
                                                 this.networkDifficulty.Object, this.pooledGetUnspentTransaction.Object, this.pooledTransaction.Object);
            string txid    = txId.ToString();
            bool   verbose = false;

            var json = (JsonResult)await this.controller.GetRawTransactionAsync(txid, verbose).ConfigureAwait(false);

            var resultModel = (TransactionBriefModel)json.Value;

            Assert.NotNull(json);
            var model = Assert.IsType <TransactionBriefModel>(resultModel);

            Assert.Equal(transaction.ToHex(), model.Hex);
        }
Ejemplo n.º 16
0
 public Form1()
 {
     InitializeComponent();
     nodeController = new NodeController();
     aiController   = new AiController();
     PopulateUI();
 }
Ejemplo n.º 17
0
        public void CancelJobShouldReturnOkWhenSuccessful()
        {
            _workerWrapper = new WorkerWrapper(new LongRunningInvokeHandlerFake(),
                                               _nodeConfigurationFake,
                                               _nodeStartupNotification,
                                               _pingToManagerFake,
                                               _sendJobDoneTimer,
                                               _sendJobCanceledTimer,
                                               _sendJobFaultedTimer,
                                               _trySendJobDetailToManagerTimer,
                                               _jobDetailSender);

            _nodeController = new NodeController(_workerWrapper)
            {
                Request = new HttpRequestMessage()
            };

            _nodeController.PrepareToStartJob(_jobQueueItemEntity);
            _nodeController.StartJob(_jobQueueItemEntity.JobId);

            while (!_workerWrapper.IsWorking)
            {
                Thread.Sleep(200);
            }
            var actionResult = _nodeController.TryCancelJob(_jobQueueItemEntity.JobId);

            Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken()).Result.StatusCode == HttpStatusCode.OK);
        }
Ejemplo n.º 18
0
        public async Task GetTxOutAsync_IncludeInMempool_UnspentTransactionFound_ReturnsModelAsync()
        {
            var         txId           = new uint256(1243124);
            Transaction transaction    = this.CreateTransaction();
            var         unspentOutputs = new UnspentOutput(new OutPoint(transaction, 0), new Coins(1, transaction.Outputs[0], transaction.IsCoinBase));

            this.pooledGetUnspentTransaction.Setup(s => s.GetUnspentTransactionAsync(new OutPoint(txId, 0)))
            .ReturnsAsync(unspentOutputs)
            .Verifiable();
            this.controller = new NodeController(this.chainIndexer, this.chainState.Object,
                                                 this.connectionManager.Object, this.dateTimeProvider.Object, this.fullNode.Object,
                                                 this.LoggerFactory.Object, this.nodeSettings, this.network, this.asyncProvider.Object, this.selfEndpointTracker.Object, this.consensusManager.Object, this.blockStore.Object, this.getUnspentTransaction.Object,
                                                 this.networkDifficulty.Object, this.pooledGetUnspentTransaction.Object, this.pooledTransaction.Object);
            string txid           = txId.ToString();
            uint   vout           = 0;
            bool   includeMemPool = true;

            var json = (JsonResult)await this.controller.GetTxOutAsync(txid, vout, includeMemPool).ConfigureAwait(false);

            var resultModel = (GetTxOutModel)json.Value;

            this.pooledGetUnspentTransaction.Verify();
            Assert.Equal(this.chainIndexer.Tip.HashBlock, resultModel.BestBlock);
            Assert.True(resultModel.Coinbase);
            Assert.Equal(3, resultModel.Confirmations);
            Assert.Equal(new ScriptPubKey(transaction.Outputs[0].ScriptPubKey, this.network).Hex, resultModel.ScriptPubKey.Hex);
            Assert.Equal(transaction.Outputs[0].Value, resultModel.Value);
        }
Ejemplo n.º 19
0
        public MaxSystemEvents(NlmTreeListView listView, NodeController nodeControl)
        {
            // Set properties.
            ListView    = listView;
            NodeControl = nodeControl;

            // Create Events
            FilePreSave = new SystemNotificationObjectHandler(SystemNotificationCode.FilePreSave);
            FilePreSave.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onFilePreSave);

            SystemPreReset = new SystemNotificationObjectHandler(SystemNotificationCode.SystemPreReset);
            SystemPreReset.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPreReset);

            SystemPostReset = new SystemNotificationObjectHandler(SystemNotificationCode.SystemPostReset);
            SystemPostReset.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPostReset);

            SystemPreNew = new SystemNotificationObjectHandler(SystemNotificationCode.SystemPreNew);
            SystemPreNew.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPreReset);

            SystemPostNew = new SystemNotificationObjectHandler(SystemNotificationCode.SystemPostNew);
            SystemPostNew.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPostReset);

            SystemPreLoad = new SystemNotificationObjectHandler(SystemNotificationCode.FilePreOpen);
            SystemPreLoad.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPreReset);

            SystemPostLoad = new SystemNotificationObjectHandler(SystemNotificationCode.FilePostOpen);
            SystemPostLoad.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPostReset);

            SystemPostMerge = new SystemNotificationObjectHandler(SystemNotificationCode.FilePostMerge);
            SystemPostMerge.NotificationRaised += new EventHandler <SystemNotificationObjectEventArgs>(onSystemPostMerge);

            // import, dunno if we need that one
            // xref
        }
Ejemplo n.º 20
0
        public async Task ShouldReturnAllNodesWithSpecifiedNameWhenGetNodesCalled()
        {
            //Given
            const string hostname = "node1";
            var          desc     = new NodeDescription();

            desc.Hostname = hostname;
            _swarmClient.GetNodes().Returns(x => {
                return(Task.FromResult <IEnumerable <NodeListResponse> >(new [] { _any.Create <NodeListResponse>(),
                                                                                  _any.Build <NodeListResponse>().With(t => t.Description, desc).Create() }));
            });
            var nodeService    = new NodeService(_swarmClient, _loggerFactory);
            var nodeController = new NodeController(nodeService);

            //When
            var response = await nodeController.GetNode(hostname, SwarmRole.Unknown);

            var jsonResult = response as JsonResult;
            var value      = jsonResult?.Value as IEnumerable <NodeListResponse>;

            //Then
            Assert.NotNull(jsonResult);
            Assert.NotNull(value);
            Assert.Equal(200, jsonResult.StatusCode);
            Assert.Equal(1, value.Count());
        }
Ejemplo n.º 21
0
    private void Start()
    {
        _grid = new NodeController[_gridWidth, _gridHeight];
        _verticallyMatchedNodes   = new List <NodeController>();
        _horizontallyMatchedNodes = new List <NodeController>();
        _movingNodesList          = new List <NodeController>();

        for (int y = 0; y < _gridHeight; y++)
        {
            for (int x = 0; x < _gridWidth; x++)
            {
                Color          nodeColor = _colorsList[Random.Range(0, _colorsList.Count)];
                GameObject     go        = GetComponent <ObjectPooler>().GetPooledObject("Node");
                NodeController node      = go.GetComponent <NodeController>();
                node.name = "Node_" + x + "_" + y;
                node.transform.SetParent(transform);
                node.transform.localPosition = new Vector3(x * 1f + 0.5f, -y * 1f - 0.5f, 0f);
                node.PosX      = x;
                node.PosY      = y;
                node.NodeColor = nodeColor;
                _grid[x, y]    = node;
            }
        }

        transform.position = new Vector3(-_gridWidth * 0.5f, _gridHeight * 0.5f, 0f);

        EventBus.RaiseGameStarted(this);

        FindDestroyAndSettleMatchedNodes();

        EventBus.OnMoveNode          += OnMoveNode;
        EventBus.OnNodeMovementEnded += OnNodeMovementEnded;
    }
        public NodeControllerTest()
        {
            this.network = KnownNetworks.TestNet;

            this.chain             = WalletTestsHelpers.GenerateChainWithHeight(3, this.network);
            this.chainState        = new Mock <IChainState>();
            this.connectionManager = new Mock <IConnectionManager>();
            this.connectionManager.Setup(c => c.Network).Returns(this.network);
            this.dateTimeProvider = new Mock <IDateTimeProvider>();
            this.fullNode         = new Mock <IFullNode>();
            this.nodeSettings     = new NodeSettings(networksSelector: Networks.Networks.Bitcoin);
            this.peerBanning      = new Mock <IPeerBanning>();

            this.blockStore                  = new Mock <IBlockStore>();
            this.getUnspentTransaction       = new Mock <IGetUnspentTransaction>();
            this.networkDifficulty           = new Mock <INetworkDifficulty>();
            this.pooledGetUnspentTransaction = new Mock <IPooledGetUnspentTransaction>();
            this.pooledTransaction           = new Mock <IPooledTransaction>();

            this.controller = new NodeController(
                this.chain,
                this.chainState.Object,
                this.connectionManager.Object,
                this.dateTimeProvider.Object,
                this.fullNode.Object,
                this.LoggerFactory.Object,
                this.nodeSettings,
                this.network,
                this.blockStore.Object,
                this.getUnspentTransaction.Object,
                this.networkDifficulty.Object,
                this.pooledGetUnspentTransaction.Object,
                this.pooledTransaction.Object);
        }
Ejemplo n.º 23
0
        public async Task ShouldReturnAllManagerNodesInfoWhenGetNodesCalled()
        {
            //Given
            var spec = new NodeUpdateParameters();

            spec.Role = "manager";
            _swarmClient.GetNodes().Returns(x => {
                return(Task.FromResult <IEnumerable <NodeListResponse> >(new [] { _any.Create <NodeListResponse>(),
                                                                                  _any.Build <NodeListResponse>().With(t => t.Spec, spec).Create() }));
            });
            var nodeService    = new NodeService(_swarmClient, _loggerFactory);
            var nodeController = new NodeController(nodeService);

            //When
            var response = await nodeController.GetNode(null, SwarmRole.Manager);

            var jsonResult = response as JsonResult;
            var value      = jsonResult?.Value as IEnumerable <NodeListResponse>;

            //Then
            Assert.NotNull(jsonResult);
            Assert.NotNull(value);
            Assert.Equal(200, jsonResult.StatusCode);
            Assert.Equal(1, value.Count());
        }
Ejemplo n.º 24
0
    protected NodeController findMoveNode(string goal, string subgoal)
    {
        switch (goal)
        {
        case "attack":
            //gets two possible targets then randomly picks one
            GameObject[]   targets        = { Manager.findClosestEnemy(currentNode), Manager.findClosestEnemy(currentNode) };
            GameObject     enemy          = targets[Random.Range(0, 1)];
            NodeController enemyLocation  = enemy.GetComponent <Character>().getCurrentNode().GetComponent <NodeController>();
            NodeController attackLocation = null;
            switch (subgoal)
            {
            case "melee":
                //checks nodes around the enemy to find node thats the closest
                attackLocation = findClosestMeleeNode(enemyLocation);
                return(attackLocation);

                /*case "ranged":
                 *  //gets path to target and sets the target as node that has the distance of characters attack range
                 *  List<GameObject> tempPath = MapGrid.getPath(currentNode,enemyLocation.x,enemyLocation.y);
                 *  attackLocation = tempPath[rangedRange].GetComponent<NodeController>();
                 *  return attackLocation;
                 */
            }
            break;
        }
        return(null);
    }
Ejemplo n.º 25
0
        public void StartJobShouldReturnBadRequestWhenStartJobIdDoesNotMatchPrepareJobId()
        {
            _workerWrapper = new WorkerWrapper(new ShortRunningInvokeHandlerFake(),
                                               _nodeConfigurationFake,
                                               _nodeStartupNotification,
                                               _pingToManagerFake,
                                               _sendJobDoneTimer,
                                               _sendJobCanceledTimer,
                                               _sendJobFaultedTimer,
                                               _trySendJobDetailToManagerTimer,
                                               _jobDetailSender);

            _nodeController = new NodeController(_workerWrapper)
            {
                Request       = new HttpRequestMessage(),
                Configuration = new HttpConfiguration()
            };

            _nodeController.PrepareToStartJob(_jobQueueItemEntity);

            var actionResult = _nodeController.StartJob(Guid.NewGuid());

            Assert.IsTrue(actionResult.ExecuteAsync(new CancellationToken())
                          .Result.StatusCode ==
                          HttpStatusCode.BadRequest);
        }
Ejemplo n.º 26
0
        static void Main(string[] args)
        {
            var outputBus = new InMemoryBus("OutputBus");
            var controller = new NodeController(outputBus);
            var mainQueue = new QueuedHandler(controller, "Main Queue");
            controller.SetMainQueue(mainQueue);

            // Hello world service
            var hello = new HelloWorldService(mainQueue);
            outputBus.Subscribe<SystemMessage.SystemInit>(hello);
            outputBus.Subscribe<SystemMessage.StartShutdown>(hello);
            outputBus.Subscribe<HelloWorldMessage.Hi>(hello);

            // TIMER
            var timer = new TimerService(new ThreadBasedScheduler(new RealTimeProvider()));
            outputBus.Subscribe<TimerMessage.Schedule>(timer);

            Console.WriteLine("Starting everything. Press enter to initiate shutdown");

            mainQueue.Start();

            mainQueue.Publish(new SystemMessage.SystemInit());
            Console.ReadLine();
            mainQueue.Publish(new SystemMessage.StartShutdown());
            Console.ReadLine();
        }
Ejemplo n.º 27
0
    // Use this for initialization
    void Start()
    {
        nodePrefab = transform.GetComponentInChildren <NodeController>();
        foreach (Transform child in transform)
        {
            Destroy(child.gameObject);
        }
        nodePrefab.enabled = true;
        nodePrefab.GetComponent <BoxCollider2D>().enabled = true;
        for (int i = 0; i < size; ++i)
        {
            nodeGrid[i] = Instantiate(nodePrefab, transform);
            nodeGrid[i].transform.localPosition = new Vector3(
                i % width - (width - 1) / 2f,
                i / width - (width - 1) / 2f, 0);
            nodeGrid[i].name           = "Node (" + i % width + ", " + i / width + ")";
            nodeGrid[i].delta_pressure = 0.1f;
        }
        nodeGrid[0].delta_pressure = 1f;
        int j = 0;

        for (int y = 0; y < width; ++y)
        {
            for (int x = 0; x < width - 1; ++x)
            {
                connections[j++] = new NodeConnection(nodeGrid[x + y * width], nodeGrid[(x + 1) + y * width], new Vector2(1, 0));
                connections[j++] = new NodeConnection(nodeGrid[y + x * width], nodeGrid[y + (1 + x) * width], new Vector2(0, 1));
            }
        }
        transform.Translate(new Vector3(0, 0, width - 4));
    }
Ejemplo n.º 28
0
    private List<Vector2> findNeigboursForNode(NodeController node, List<Vector2> neighbours)
    {
        neighbours.Clear();
        Vector2 nodeLocation = node.getNodeCoordinates();

        for (int xOffset = -1; xOffset<=1; xOffset++)
        {
            int neighbourX = (int)nodeLocation.x + xOffset;

            if (neighbourX < 0 ||
                neighbourX >= boardWidth) continue;

            for (int yOffset = -1; yOffset<= 1; yOffset++)
            {
                int neighbourY = (int)nodeLocation.y + yOffset;

                if(neighbourY < 0 ||
                   neighbourY >= boardHeight ||
                   (neighbourX == nodeLocation.x && neighbourY == nodeLocation.y)) continue;

                Vector2 neighbourLocalCoordinates = new Vector2(neighbourX, neighbourY);
                neighbours.Add (neighbourLocalCoordinates);
            }
        }
        return neighbours;
    }
Ejemplo n.º 29
0
    public void Spawn(List <Node> path, NodeController destinationNode, int amount, NetworkIdentity sender)
    {
        _path = path;

        StopCoroutine(FollowPath(destinationNode, amount, sender));
        StartCoroutine(FollowPath(destinationNode, amount, sender));
    }
        public async Task GetTaskAsync_Verbose_BlockNotFoundOnChain_ReturnsTransactionVerboseModelWithoutBlockInformationAsync()
        {
            Transaction transaction = this.CreateTransaction();
            var         txId        = new uint256(12142124);

            this.pooledTransaction.Setup(p => p.GetTransaction(txId))
            .ReturnsAsync(transaction);
            var blockStore = new Mock <IBlockStore>();

            blockStore.Setup(b => b.GetTrxBlockIdAsync(txId))
            .ReturnsAsync((uint256)null);
            this.fullNode.Setup(f => f.NodeFeature <IBlockStore>(false))
            .Returns(blockStore.Object);
            this.controller = new NodeController(this.fullNode.Object, this.LoggerFactory.Object,
                                                 this.dateTimeProvider.Object, this.chainState.Object, this.nodeSettings,
                                                 this.connectionManager.Object, this.chain, this.network, this.pooledTransaction.Object,
                                                 this.pooledGetUnspentTransaction.Object, this.getUnspentTransaction.Object, this.networkDifficulty.Object);
            string txid    = txId.ToString();
            bool   verbose = true;

            var json = (JsonResult)await this.controller.GetRawTransactionAsync(txid, verbose).ConfigureAwait(false);

            var resultModel = (TransactionVerboseModel)json.Value;

            Assert.NotNull(resultModel);
            var model = Assert.IsType <TransactionVerboseModel>(resultModel);

            Assert.Null(model.BlockHash);
            Assert.Null(model.Confirmations);
            Assert.Null(model.Time);
            Assert.Null(model.BlockTime);
        }
Ejemplo n.º 31
0
 public NodeConnection(NodeController n0, NodeController n1, Vector2 normal)
 {
     this.n0     = n0;
     this.n1     = n1;
     this.normal = normal;
     n0.AddConnection(this);
 }
Ejemplo n.º 32
0
    //todo - doesnt work
    public GameObject findClosestBuilding(GameObject attackerNode)
    {
        Character closest = null;

        Character[] playerCharacters = EnemyManager.TeamMembers;
        int         lowestDistance   = 0;

        //go through all enemies and compare distances
        foreach (Character enemy in playerCharacters)
        {
            //Character enemyChar = enemy.GetComponent<Character>();
            //if the checked character is knocked out skip it
            if (enemy.knockedOut)
            {
                continue;
            }
            NodeController enemyNode = enemy.getCurrentNode().GetComponent <NodeController>();
            int            distance  = MapGrid.getPath(attackerNode, enemyNode.x, enemyNode.y).Count;
            //if no closest selected yet just set this one as it and move on
            if (closest == null)
            {
                closest        = enemy;
                lowestDistance = distance;
                continue;
            }
            if (distance < lowestDistance)
            {
                closest        = enemy;
                lowestDistance = distance;
            }
        }
        return(closest.gameObject);
    }
Ejemplo n.º 33
0
    // Use this for initialization
    void Start()
    {
        nodeControllerObject = Instantiate(Resources.Load<GameObject>(nodeControllerPath));
        _nodeController = nodeControllerObject.GetComponent<NodeController>();
        nodeControllerObject.transform.SetParent(transform);

        //_arrowControllerObject = transform.FindChild("ArrowController").gameObject;
        //_frameControllerObject = transform.FindChild("FrameController").gameObject;
    }
Ejemplo n.º 34
0
        public static NodeEntryPoint StartWithOptions(NodeOptions options, Action<int> termination)
        {
            var slim = new ManualResetEventSlim(false);
            var list = String.Join(Environment.NewLine,
                options.GetPairs().Select(p => String.Format("{0} : {1}", p.Key, p.Value)));

            Log.Info(list);

            var bus = new InMemoryBus("OutputBus");
            var controller = new NodeController(bus);
            var mainQueue = new QueuedHandler(controller, "Main Queue");
            controller.SetMainQueue(mainQueue);
            Application.Start(i =>
                {
                    slim.Set();
                    termination(i);
                });

            var http = new PlatformServerApiService(mainQueue, String.Format("http://{0}:{1}/", options.LocalHttpIp, options.HttpPort));

            bus.Subscribe<SystemMessage.Init>(http);
            bus.Subscribe<SystemMessage.StartShutdown>(http);

            var timer = new TimerService(new ThreadBasedScheduler(new RealTimeProvider()));
            bus.Subscribe<TimerMessage.Schedule>(timer);

            // switch, based on configuration
            AzureStoreConfiguration azureConfig;
            if (AzureStoreConfiguration.TryParse(options.StoreLocation, out azureConfig))
            {
                var storageService = new AzureStorageService(azureConfig, mainQueue);
                bus.Subscribe<ClientMessage.AppendEvents>(storageService);
                bus.Subscribe<SystemMessage.Init>(storageService);
                bus.Subscribe<ClientMessage.ImportEvents>(storageService);
                bus.Subscribe<ClientMessage.RequestStoreReset>(storageService);
            }
            else
            {
                var storageService = new FileStorageService(options.StoreLocation, mainQueue);
                bus.Subscribe<ClientMessage.AppendEvents>(storageService);
                bus.Subscribe<SystemMessage.Init>(storageService);
                bus.Subscribe<ClientMessage.ImportEvents>(storageService);
                bus.Subscribe<ClientMessage.RequestStoreReset>(storageService);
            }

            mainQueue.Start();

            mainQueue.Enqueue(new SystemMessage.Init());
            return new NodeEntryPoint(mainQueue,slim);
        }
Ejemplo n.º 35
0
 private NodeController[,] buildNetwork(NodeController[,] map)
 {
     for (int i = 0; i< boardWidth; i++)
     {
         for (int j = 0; j < boardHeight; j++)
         {
             GameObject newNode = Instantiate(nodePrefab, new Vector3(i,j,0f), Quaternion.identity) as GameObject;
             newNode.transform.parent = this.transform;
             Node newNodeView = newNode.GetComponent<Node>();
             NodeModel newNodeModel = new NodeModel(new Vector2(i,j));
             FSMSystem newNodeFSM = configureFSM();
             map[i,j] = new NodeController(newNodeModel, newNodeView, newNodeFSM);
         }
     }
     Utilities.alignGroupCenterToOrigin(transform,nodePrefab,boardWidth,boardHeight);
     return map;
 }
Ejemplo n.º 36
0
    private void connectNodes(NodeController[,] map)
    {
        List<Vector2> neighboursLocalCoordinates = new List<Vector2> ();

        for (int i = 0; i< boardWidth; i++)
        {
            for (int j = 0; j < boardHeight; j++)
            {
                NodeController node = map[i,j];
                findNeigboursForNode(node, neighboursLocalCoordinates);
                foreach( Vector2 location in neighboursLocalCoordinates)
                {
                    node.addNeighbour(map[(int)location.x, (int)location.y]);

                }
            }
        }
    }
 public void OnEnable()
 {
     nCont = (NodeController)target;
     Transform t = nCont.transform.FindChild("Node " + (node + 1) + "/Line");
     if (t != null)
     {
         Image line = t.GetComponent<Image>();
         line.color = Color.yellow;
         EditorUtility.SetDirty(line);
         EditorApplication.MarkSceneDirty();
     }
     if (nCont.prefab == null)
     {
         nCont.prefab = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/TechTree/Prefabs/Node.prefab");
         //Add Center Node
         RectTransform currentNode = ((GameObject)PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath<GameObject>("Assets/TechTree/Prefabs/CentralNode.prefab"))).GetComponent<RectTransform>();
         currentNode.SetParent(nCont.transform, false);
         currentNode.gameObject.GetComponent<NodeDataContainer>().location = 0;
     }
     EditorApplication.playmodeStateChanged += ClearColors;
 }
Ejemplo n.º 38
0
 public Idle(NodeController controller)
 {
     stateID = StateID.Idle;
     nodeController = controller;
 }
Ejemplo n.º 39
0
Archivo: Node.cs Proyecto: GotoK/H401
 public static void SetNodeController(NodeController nodeControllerScript)
 {
     Node.nodeControllerScript = nodeControllerScript;
 }
Ejemplo n.º 40
0
Archivo: Node.cs Proyecto: GotoK/H401
    // 隣接判定、ノードごとの処理
    public void NodeCheckAction(NodeController.NodeLinkTaskChecker Tc, _eLinkDir Link)
    {
        NodeDebugLog += "NodeCheckAction. CheckerID : " + Tc.ID + "\n";
        // チェック済みでスキップ
        if (bChecked) { Tc.Branch--; return; }

        // 各種変数定義
        bool bBranch = false;
        bChecked = true;
        Tc.SumNode++;
        bChain = false;

        // お隣さんを更新
        UpdateNegibor();

        // 状態表示
        Tc += (ToString() + "Action \n     Link : " + bitLink.ToStringEx() + "\nNegibor : " + Negibor.ToStringEx());
        Tc += Tc.NotFin + " : " + Tc.Branch.ToString();

        // チェックスタート
        // 接地判定(根本のみ)
        if (Link == _eLinkDir.NONE)     // 根本か確認
        {
            if (!bitLink[(int)_eLinkDir.RD] && !bitLink[(int)_eLinkDir.LD]) // 下方向チェック
            {
                Tc.Branch--;
                Tc.SumNode--;
                bChecked = false;
                return;                 // 繋がってないなら未チェックとして処理終了
            }
            // 繋がっている
            Tc += ("Ground");
        }

        // この時点で枝が繋がっている事が確定
        bChain = true;
        Tc.NodeList.Add(this);  // チェッカに自身を登録しておく

        // 終端ノードであれば、周囲チェック飛ばす
        var TempBit = new BitArray(6);
        // 除外方向設定
        TempBit.SetAll(false);
        if (Link == _eLinkDir.NONE)
        {
            TempBit.Set((int)_eLinkDir.RD, true);
            TempBit.Set((int)_eLinkDir.LD, true);
        }
        else {
            TempBit.Set((int)Link, true);
        }
        TempBit.And(bitLink).Xor(bitLink);    // 自身の道とAND後、自身の道とXOR。
        if (TempBit.isZero())                  // 比較して一致なら除外方向以外に道がない = XOR後に全0なら終端
        {
            Tc.Branch--;                      // 終端ノードであればそこで終了
            return;
        }

        // 周囲のチェック
        // この時点で、TempBitは先が壁の道を除いた自分の道を示している。
        Tc += "ExcludeFrom MyWay : " + TempBit.ToStringEx();

        for (int n = 0; n < (int)_eLinkDir.MAX; n++)
        {
            var TempBit2 = new BitArray(6);
            // 隣接ノードのうち、道が無い場所に自分の道が伸びてたらそこは途切れている。
            TempBit2 = TempBit.retAnd(Negibor.retNot());
            // ノード繋がってない
            if (TempBit2[n])
            {
                nodeControllerScript.unChainController.AddObj(this, (_eLinkDir)n);
                Tc.NotFin = true;                               // 隣と繋がってないので、枝未完成として登録
            }
        }

        Tc += ("Negibor : " + Negibor.ToStringEx());
        TempBit.And(Negibor);                       // 隣接ノードと繋がっている場所を特定
        Tc += "Linked : " + TempBit.ToStringEx();
        for (int n = 0; n < (int)_eLinkDir.MAX; n++)
        {
            if (!TempBit[n]) { continue; }          // ビット立ってないならスキップ

            // お隣さんと繋がっているので、処理引き渡しの準備
            bChain = true;

            // デバック表示
            Tc += ("Linked [" + LinkDirToString(n) + "]");

            // 接続先がおかしいならノーカンで
            Vec2Int Target = nodeControllerScript.GetDirNode(nodeID, (_eLinkDir)n);
            if (Target.x == -1) { continue; }

            // 分岐を検出してカウント
            if (!bBranch)
            {
                bBranch = true;     // 一回目ならノーカン
            }
            else {
                Tc.Branch++;        // 二回目以降は分岐なので、枝カウンタを+1
            }

            // 次へ引き渡す
            Node TgtNode = nodeControllerScript.GetNodeScript(Target);
            if (TgtNode.IsOutPuzzle)
            {
                Tc.Branch--;        // 接続先が壁なら処理飛ばして枝解決
            }
            else {
                // 周囲のActionをトリガーさせる
                Observable
                .Return(TgtNode)
                .Subscribe(_ => {
                    TgtNode.NodeCheckAction(Tc, (_eLinkDir)((n + 3 >= 6) ? (n + 3 - 6) : (n + 3)));
                }).AddTo(this);
            }
        }

        if (Tc.NotFin && Tc.Branch > 0)
        {
            Tc.Branch--;
        }
    }
Ejemplo n.º 41
0
 public void networkBuildMEthodTest()
 {
     MethodInfo buildMethod = testNetworkProbe.getMethod ("buildNetwork");
     NodeController[,] newMap = new NodeController[4, 4];
     newMap = buildMethod.Invoke(testNetwork, new object[]{newMap}) as NodeController[,];
     Assert.AreEqual (4 * 4, newMap.Length);
 }
Ejemplo n.º 42
0
		public SquareGrid(int[,] level, float squareSize){
			int nodeCountX = level.GetLength(0);
			int nodeCountZ = level.GetLength(1);
			float levelWidth = nodeCountX * squareSize;
			float levelHeight = nodeCountZ * squareSize;

			NodeController[,] nodeController = new NodeController[nodeCountX, nodeCountZ];
			for(int x = 0; x < nodeCountX; x++){
				for (int z = 0; z < nodeCountZ; z++){
					Vector3 position = new Vector3(-levelWidth/2 + x * squareSize + squareSize/2, 0, -levelHeight/2 + z * squareSize + squareSize/2);
					nodeController[x, z] = new NodeController(position, level[x, z] == 1, squareSize);
				}
			}

			squares = new SquareSetup[nodeCountX - 1, nodeCountZ -1];
			for(int x = 0; x < nodeCountX - 1; x++){
				for (int z = 0; z < nodeCountZ - 1; z++){
					squares[x, z] = new SquareSetup(nodeController[x, z + 1],
													nodeController[x + 1, z + 1],
													nodeController[x + 1, z],
													nodeController[x, z]);
												
				}
			}
		}
Ejemplo n.º 43
0
		public SquareSetup (NodeController _northwestCorner, NodeController _northeastCorner, 
							NodeController _southeastCorner, NodeController _southwestCorner){
			northwestCorner = _northwestCorner;
			northeastCorner = _northeastCorner;
			southeastCorner = _southeastCorner;
			southwestCorner = _southwestCorner;

			north = northwestCorner.nodeRight;
			east = southeastCorner.nodeAbove;
			south = southwestCorner.nodeRight;
			west = southwestCorner.nodeAbove;

			//
			if(northwestCorner.nodeActive){
				config += 8;
			}
			if(northeastCorner.nodeActive){
				config += 4;
			}
			if(southeastCorner.nodeActive){
				config += 2;
			}
			if(southwestCorner.nodeActive){
				config += 1;
			}
		}