Example #1
0
        private void SendMoveRequest()
        {
            var ev = new MoveRequestEvent()
            {
                Path = _path, PartyIndex = _party.PartyIndex
            };

            ev.Sender = _player;
            _game.NetworkEvents.RunCallbacks(ev);
        }
Example #2
0
        public void SendMoveRequest(Party p, Tile t, MovementIntent intent)
        {
            var path = t.Chunk.Map.FindPath(p.Tile, t).Select(pa => new Position(pa.X, pa.Y)).ToList();
            var ev   = new MoveRequestEvent()
            {
                Path = path, PartyIndex = p.PartyIndex, Intent = intent
            };

            ev.Sender = this;
            t.Chunk.Map.World.Game.NetworkEvents.RunCallbacks(ev);
        }
Example #3
0
        public void RequestMovement(MoveRequestEvent ev)
        {
            var party = ev.Sender.Parties[ev.PartyIndex];

            Log.Debug($"{ev.Sender} requesting party {ev.PartyIndex} to move {ev.Path.Count} tiles");

            if (!party.CanMove())
            {
                ev.Sender.Send(new MessagePopupEvent(PopupType.BAD_INPUT));
                return;
            }

            var course = StartCourse(party, ev.Path, ev.Intent);

            if (course == null)
            {
                ev.Sender.Send(new MessagePopupEvent(PopupType.BAD_INPUT));
            }
        }
    // Update is called once per frame
    void Update()
    {
        position = transform.position;

        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if (Physics.Raycast (ray, out hit)) {
            Cell hitO = hit.collider.gameObject.GetComponent<Cell>();
            if (hitO != null && !hitO.isHilighted()) {
                hitO.hilight();
                if (lastTouched != null) {
                    lastTouched.hilight();
                }
                lastTouched = hitO;
            }
        }

        if (Input.GetMouseButtonDown(0))
        {
            //Camera des = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>();
            //des.ortho
            //Camera.main.orthographic = true;
            if (Physics.Raycast(ray, out hit))
            {

                //hit.collider.gameObject
                //Debug.Log ("ses: " + hit.collider.gameObject.name);

                Cell hitObject = hit.collider.gameObject.GetComponent<Cell>();
                if (hitObject == null)
                    return;
                if (!hitObject.IsEmpty())
                    return;

                Vector3 targetPos = hitObject.GetCoordinates();

                //hit.transform.SendMessage("Selected");

                if (V3Equal(position, targetPos))
                {
                    return;
                }

                //if(target.x >
                target = targetPos;
                //transform.rigidbody.velocity = new Vector3(-direction.x, 0, -direction.z);
                //player.GetComponent<PlayerMove>().MoveTo(transform.position);
                MoveRequestEvent request = new MoveRequestEvent();
                //request.to = new Vector2JSON(target.x, target.z);
                request.to = new Vector2JSON
                {
                    x = target.x,
                    y = target.z
                };

                WriteQueue.Write(request);
                //var test = WriteQueue.Read();
                //Debug.Log("test " + test);
                /*
                var incomingData = ReadQueue.Read();
                if (incomingData != null)
                {
                    Debug.Log(incomingData);
                    JSONEvent readEvent = JsonConvert.DeserializeObject<JSONEvent>(incomingData);
                    Debug.Log(readEvent);
                }
                */
                //moveTo(new Vector2(target.x, target.z)); //for testing
            }

        }
    }