Ejemplo n.º 1
0
    void updateInput()
    {
        if (_isTouched)
        {
            gameObject.transform.position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, gameObject.transform.position.z);

            if (Level.instance.getNearestChair(Input.mousePosition) != null)
            {
                if (!Level.instance.getNearestChair(Input.mousePosition).isLeft)
                {
                    gameObject.transform.rotation = Quaternion.AngleAxis(180, new Vector3(0, 1, 0));
                }
                else
                {
                    gameObject.transform.rotation = Quaternion.AngleAxis(0, new Vector3(0, 1, 0));
                }

                _sprite.Play("sit_happy");
            }
            else if (Level.instance.getNearestSeating(Input.mousePosition) != null)
            {
                if (!Level.instance.getNearestSeating(Input.mousePosition).isLeft)
                {
                    gameObject.transform.rotation = Quaternion.AngleAxis(180, new Vector3(0, 1, 0));
                }
                else
                {
                    gameObject.transform.rotation = Quaternion.AngleAxis(0, new Vector3(0, 1, 0));
                }

                _sprite.Play("sit_happy");
            }
            else
            {
                _sprite.Play("hello");
            }

            if (Input.GetMouseButtonUp(0))
            {
                if (Level.instance.getNearestChair(Input.mousePosition) != null)
                {
                    ChairObject chair = Level.instance.getNearestChair(Input.mousePosition);

                    if (chair.isFree)
                    {
                        if (!chair.isLeft)
                        {
                            gameObject.transform.rotation = Quaternion.AngleAxis(180, new Vector3(0, 1, 0));
                        }

                        // replace this hell to method
                        gameObject.transform.position = new Vector3(chair.gameObject.transform.position.x + _desc.seatOffset.x, chair.gameObject.transform.position.y + _desc.seatOffset.y, -1);
                        seatPosition     = chair;
                        placement.isFree = true;
                        if (waitSeatPosition)
                        {
                            waitSeatPosition.isFree = true;
                        }
                        chair.isFree   = false;
                        chair.customer = this;

                        setState(CustomerStateDeprecated.MAKE_ORDER);
                    }
                }
                else if (Level.instance.getNearestSeating(Input.mousePosition) != null)
                {
                    SeatPlaceObject seat = Level.instance.getNearestSeating(Input.mousePosition);

                    if (seat.isFree)
                    {
                        if (!seat.isLeft)
                        {
                            gameObject.transform.rotation = Quaternion.AngleAxis(180, new Vector3(0, 1, 0));
                        }

                        // replace this hell to method
                        gameObject.transform.position = new Vector3(seat.gameObject.transform.position.x + _desc.seatOffset.x, seat.gameObject.transform.position.y + _desc.seatOffset.y, -1);
                        waitSeatPosition = seat;
                        placement.isFree = true;
                        seat.isFree      = false;
                        seat.customer    = this;

                        setState(CustomerStateDeprecated.WAITING_SIT);
                    }
                }
                else
                {
                    gameObject.transform.position = placement.transform.position;
                }

                _isTouched = false;
            }
        }
    }
    void updateInput()
    {
        if (_isTouched)
        {
            gameObject.transform.position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, gameObject.transform.position.z);

            if (Level.instance.getNearestChair(Input.mousePosition) != null)
            {
                if (!Level.instance.getNearestChair(Input.mousePosition).isLeft)
                    gameObject.transform.rotation = Quaternion.AngleAxis(180, new Vector3(0, 1, 0));
                else
                    gameObject.transform.rotation = Quaternion.AngleAxis(0, new Vector3(0, 1, 0));

                _sprite.Play("sit_happy");
            }
            else if(Level.instance.getNearestSeating(Input.mousePosition) != null)
            {
                if (!Level.instance.getNearestSeating(Input.mousePosition).isLeft)
                    gameObject.transform.rotation = Quaternion.AngleAxis(180, new Vector3(0, 1, 0));
                else
                    gameObject.transform.rotation = Quaternion.AngleAxis(0, new Vector3(0, 1, 0));

                _sprite.Play("sit_happy");
            }
            else
            {
                _sprite.Play("hello");
            }

            if (Input.GetMouseButtonUp(0))
            {
                if (Level.instance.getNearestChair(Input.mousePosition) != null)
                {
                    ChairObject chair = Level.instance.getNearestChair(Input.mousePosition);

                    if (chair.isFree)
                    {
                        if (!chair.isLeft)
                        {
                            gameObject.transform.rotation = Quaternion.AngleAxis(180, new Vector3(0, 1, 0));
                        }

                        // replace this hell to method
                        gameObject.transform.position = new Vector3(chair.gameObject.transform.position.x+_desc.seatOffset.x, chair.gameObject.transform.position.y+_desc.seatOffset.y, -1);
                        seatPosition = chair;
                        placement.isFree = true;
                        if (waitSeatPosition)
                            waitSeatPosition.isFree = true;
                        chair.isFree = false;
                        chair.customer = this;

                        setState(CustomerStateDeprecated.MAKE_ORDER);
                    }
                }
                else if (Level.instance.getNearestSeating(Input.mousePosition) != null)
                {
                    SeatPlaceObject seat = Level.instance.getNearestSeating(Input.mousePosition);

                    if (seat.isFree)
                    {
                        if (!seat.isLeft)
                        {
                            gameObject.transform.rotation = Quaternion.AngleAxis(180, new Vector3(0, 1, 0));
                        }

                        // replace this hell to method
                        gameObject.transform.position = new Vector3(seat.gameObject.transform.position.x+_desc.seatOffset.x, seat.gameObject.transform.position.y+_desc.seatOffset.y, -1);
                        waitSeatPosition = seat;
                        placement.isFree = true;
                        seat.isFree = false;
                        seat.customer = this;

                        setState(CustomerStateDeprecated.WAITING_SIT);
                    }
                }
                else
                {
                    gameObject.transform.position = placement.transform.position;
                }

                _isTouched = false;
            }
        }
    }