Esempio n. 1
0
        private void moveTo(int dir)
        {
            Room checkRoom = map.getRoomAt(currentRoom, dir);

            if (checkRoom != null)
            {
                Vector2 start = checkRoom.getLocationStartFrom(dir);
                if (!start.Equals(Vector2.Zero))
                {
                    player.position        = start;
                    player.currentPosition = start;
                    entryPoint             = start;
                    Room tempRoom = currentRoom;
                    currentRoom.sadakoPositionInRoom = sadako.position;
                    currentRoom = checkRoom;
                    lurkDelay   = 0;
                    if (sadako.disturbed)
                    {
                        transferRoomViaChase(start, sadako.wayPoints.Count, currentRoom);
                    }
                    else
                    {
                        float difference = player.maxPresence - tempRoom.roomPresence;
                        int   threshold  = (int)(difference / 1000);

                        int chance = rand.Next(0, threshold);

                        if (chance == 0 && sadakoRoom != currentRoom)
                        {
                            transferSadakoRandomly(currentRoom);
                        }
                        if (chance == 1 && sadakoRoom != tempRoom)
                        {
                            transferSadakoRandomly(tempRoom);
                        }
                    }
                    sadako.wayPoints = new List <Vector2>();
                    sadako.wayPoints.Add(player.position);
                }

                if (currentRoom == sadakoRoom)
                {
                    sadako.disable  = false;
                    sadako.position = currentRoom.sadakoPositionInRoom;
                }
                else
                {
                    sadako.disable = true;
                }
            }
        }
Esempio n. 2
0
        private void moveSadakoTo(int dir)
        {
            Room checkRoom = map.getRoomAt(currentRoom, dir);

            if (checkRoom != null)
            {
                Vector2 start = checkRoom.getLocationStartFrom(dir);
                if (!start.Equals(Vector2.Zero))
                {
                    sadako.teleport(checkRoom);
                    checkRoom.sadakoPositionInRoom = sadako.position;
                    sadakoRoom     = checkRoom;
                    sadako.disable = true;
                }
            }
        }