Esempio n. 1
0
    void Dialogue()
    {
        if (currentNode == null)
        {
            //find conversation root node
            System.Collections.Generic.List <NodeEditorFramework.Node> nodes = interactTarget.InteractionTree.nodes;
            RootNode root = null;
            for (var i = 0; i < nodes.Count; ++i)
            {
                if (nodes[i] is RootNode)
                {
                    RootNode cur = (RootNode)nodes[i];
                    if (cur.Name == interactTarget.Root)
                    {
                        root = cur;
                        break;
                    }
                }
            }
            if (root != null)
            {
                currentNode = root.Outputs[0].GetNodeAcrossConnection();
                done        = false;
            }
            else
            {
                State = States.Explore;
                Debug.Log(string.Format("Could not find root node \"{0}\" in InteractionTree!"));
            }
        }
        else  //if there is a node to be done
        {
            if (!done)
            {
                DialogueNode d = (DialogueNode)currentNode;
                Debug.Log(interactTarget.gameObject.name + " says: " + d.DialogueText);
                done = true;
            }
        }

        if (Input.GetButtonDown("Submit"))
        {
            if (currentNode != null)
            {
                //get the next node along
                currentNode = currentNode.Outputs[0].GetNodeAcrossConnection();
                done        = false;
                if (currentNode == null)
                {
                    State = States.Explore;
                    Debug.Log("Conversation over!");
                }
            }
        }
    }
Esempio n. 2
0
    // Update is called once per frame
    void Update()
    {
        //Input phase split out - I like to do this but it's optional
        switch (state)
        {
        case Player.States.Idle:
            if (Input.GetKeyDown(KeyCode.W))
            {
                state = Player.States.Moving;
            }
            if (Input.GetKeyDown(KeyCode.S))
            {
                state = Player.States.Reverse;
            }
            break;

        case Player.States.Moving:

            if (Input.GetKeyDown(KeyCode.S))
            {
                state = Player.States.Idle;
            }
            break;

        case Player.States.Reverse:
            if (!Input.GetKey(KeyCode.S))
            {
                state = Player.States.Idle;
            }
            break;
        }
        //Movement phase
        switch (state)
        {
        case Player.States.Idle:
            currentSpeed = Mathf.Lerp(currentSpeed, 0, Time.deltaTime);                     //Or MoveTowards
            break;

        case Player.States.Moving:
            currentSpeed = Mathf.Lerp(currentSpeed, maxSpeed, Time.deltaTime);                     //Or MoveTowards
            break;

        case Player.States.Reverse:
            currentSpeed = Mathf.Lerp(currentSpeed, maxReverseSpeed, Time.deltaTime);                     //Or MoveTowards
            break;
        }
        //Actually move
        transform.position += Vector3.right * currentSpeed * Time.deltaTime;

        transform.LookAt(new Vector3(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, 0f, transform.rotation.z));
        print(Camera.main.ScreenToWorldPoint(Input.mousePosition));
    }
Esempio n. 3
0
        private void MoveView()
        {
            KeyboardState keys = Keyboard.GetState();

            Player.States state = player.getState();
            //player pressing up
            if (state == Player.States.WalkUp)
            {
                viewCorner[1] = viewCorner[1] - 1;
                if (viewCorner[1] < 0)
                {
                    viewCorner[1] = 0;
                }
            }
            else
            {
                //player pressing down
                if (state == Player.States.WalkDown)
                {
                    viewCorner[1] = viewCorner[1] + 1;
                    if (viewCorner[1] > tileMatrix.GetLength(0) - 10)
                    {
                        viewCorner[1] = tileMatrix.GetLength(0) - 10;
                    }
                }
                else
                {
                    //player pressing left
                    if (state == Player.States.WalkLeft)
                    {
                        viewCorner[0] = viewCorner[0] - 1;
                        if (viewCorner[0] < 0)
                        {
                            viewCorner[0] = 0;
                        }
                    }
                    else
                    {
                        //player pressing right
                        if (state == Player.States.WalkRight)
                        {
                            viewCorner[0] = viewCorner[0] + 1;
                            if (viewCorner[0] > tileMatrix[0].GetLength(0) - 10)
                            {
                                viewCorner[0] = tileMatrix[0].GetLength(0) - 10;
                            }
                        }
                    }
                }
            }
        }
Esempio n. 4
0
 public void ChangeState(Player.States state)
 {
     if (state == Player.States.IDLE)
     {
         stateMachine.ChangeState(0);
     }
     else if (state == Player.States.WALKING)
     {
         stateMachine.ChangeState(1);
     }
     else if (state == States.ATTACKING)
     {
         stateMachine.ChangeState(2);
     }
 }
Esempio n. 5
0
    void Explore()
    {
        //handle movement input
        int movement = Mathf.RoundToInt(Input.GetAxisRaw("Horizontal"));

        transform.position += new Vector3(movement * walkSpeed * Time.deltaTime, 0, 0);

        if (Input.GetButtonDown("Submit"))
        {
            //Action[] ThingsToDo = interactTarget.GetActionSet();
            //State = States.Decision;
            if (interactTarget != null)
            {
                Debug.Log("Interacted with " + interactTarget);
                State = States.Dialogue;
            }
            return;
        }
    }