protected void ConnectCallback(NodeScript node, string input, int sourceInstruction, bool success)
    {
        if (!success)
        {
            player.PrintToConsole("Connection attempt failed to send");
            return;
        }

        Regex pattern = new Regex(@"^(" + P.DATA + @")\s+(" + P.INT + @")");
        Match match   = pattern.Match(input);

        // Format
        // XXX: Add option to force Connect ignoring safe mode
        string address = match.Groups[1].Value;
        double d_address;

        AlphaNumeral.StringToDbl(address, out d_address);

        NodeScript targetNode = NodeManager.GetNode(d_address, true);

        /* XXX:
         * if( targetNode == null ) {
         *      player.connectedNode = null;
         *      PacketGraphicScript packet = PacketGraphicManager.GetPacket();
         *      player.cameraFocus.MoveTo();
         * }*/

        // Connect to new Node
        player.connectedNode = targetNode;

        // Camera pan to new Node
        player.cameraFocus.MoveTo(NodeGraphicManager.GetGraphic(targetNode),
                                  GameManager.gameOptions.packetTravelTime);
    }
Exemple #2
0
    string GetLostCommand(string input, out bool success)
    {
        double address = NodeManager.GetRandomAddress();

        NodeGraphicManager.DisplayNode(NodeGraphicManager.GetGraphic(player.connectedNode).transform.position, address);

        return(Connect(address.ToString(), true, out success));
    }
Exemple #3
0
    public static void CreatePacketGraphic(NodeScript source, NodeScript target)
    {
        Vector3    vrot           = Random.onUnitSphere;
        Quaternion rot            = Quaternion.Euler(vrot);
        GameObject packetGraphics = GameObject.Instantiate(packetPrefab, NodeGraphicManager.GetGraphic(source).transform.position,
                                                           rot, gameObject.transform) as GameObject;

        PacketGraphicScript graphicsScript = packetGraphics.GetComponent <PacketGraphicScript>();

        graphicsScript.MoveTo(target);
        packets.Add(graphicsScript);
    }
    protected string ResetCommand(string input, out bool success)
    {
        success = true;

        NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(localNode);

        graphic.HideDisplay();
        graphic.ShowMemory(false);
        player.cameraFocus.Offset(Vector3.zero);
        player.cameraFocus.SetDistance(4);

        return("Resetting view...");
    }
Exemple #5
0
    public void MoveTo(NodeScript target)
    {
        Vector3 v_target;

        if (target == null || !NodeGraphicManager.NodeIsVisible(target))
        {
            v_target = Random.onUnitSphere * 40;
        }
        else
        {
            v_target = NodeGraphicManager.GetGraphic(target).transform.position;
        }
        positionTween.StartTween(transform.position, v_target, GameManager.gameOptions.packetTravelTime);
    }
    protected string ReadLogCommand(string input, out bool success)
    {
        success = false;

        /* XXX: Left for later use for log filtering
         * Regex pattern = new Regex(@"");
         * Match match = pattern.Match(input);
         * if( !match.Success ) {
         *      return "ReadLog invalid format";
         * }*/

        LogDetails detail;

        switch (input)
        {
        case "all":
            detail = LogDetails.ALL;
            break;

        case "command":
            detail = LogDetails.COMMAND;
            break;

        case "":
        case "response":
            detail = LogDetails.RESPONSE;
            break;

        default:
            return("ReadLog invalid format");
        }

        NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(localNode);

        graphic.DisplayLog(detail);

        player.cameraFocus.Offset(new Vector3(-0.5f, 0, 2.5f));

        graphic.ShowMemory(false);
        success = true;
        return("Opening log...");
    }
    protected string ReadMemoryCommand(string input, out bool success)
    {
        success = false;

        if (input.Length != 0)
        {
            if (input.ToLower() == "static")
            {
                return("Static not implemented...");

                /*for( int i = GameManager.gameOptions.nodeMemoryLength; i < player.connectedNode.GetMemoryLength(); i++ ) {
                 *      Memory memory = player.connectedNode.GetMemory(i);
                 *      output += FormatMemory(i, memory, false);
                 * }*/
            }
            else
            {
                int    index;
                int    subIndex;
                string error = localNode.ParseMemoryIndex(input, out index, out subIndex);
                if (error != null)
                {
                    return(error);
                }
                NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(localNode);
                graphic.RotateMemory(index);
            }
        }
        else
        {
            NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(localNode);
            graphic.SetRotationSpeed(graphic.memoryRotationSpeed);
        }
        NodeGraphicManager.GetGraphic(localNode).ShowMemory(true);
        player.cameraFocus.Offset(new Vector3(1.5f, 0, 0));

        success = true;
        return("Opening Memory...");
    }
Exemple #8
0
    public static void DisplayPacket(NodeScript source, NodeScript target)
    {
        // Determine if sourceNode needs graphic
        if (!NodeGraphicManager.NodeIsVisible(source) &&
            target != null &&
            NodeGraphicManager.NodeIsVisible(target))
        {
            foreach (PlayerScript console in GameManager.GetConsoles().Values)
            {
                if (target == console.connectedNode)
                {
                    NodeGraphicScript graphic = NodeGraphicManager.GetGraphic(target);
                    NodeGraphicManager.DisplayNode(graphic.transform.position, source);
                    break;
                }
            }
        }

        // Show packet graphics
        if (NodeGraphicManager.NodeIsVisible(source))
        {
            PacketGraphicManager.CreatePacketGraphic(source, target);
        }
    }