Exemple #1
0
        void ConnectionService_onPlayerConnect(ConnectionService con)
        {
            //Create a player instance
            Player player = new Player(con);

            Players.Add(player);
            Connections.Add(con, player);
            //Try to find a room for the player. If no room is found, create one.
            Room room;

            if (SearchingRooms.Count > 0)
            {
                room = SearchingRooms.First();
            }
            else
            {
                room = new Room(IDGen.GenerateRoomID());
                AllRooms.Add(room.RoomID, room);
                SearchingRooms.Add(room);
            }
            if (room.AddPlayer(player))
            {
                SearchingRooms.Remove(room);
            }
        }
Exemple #2
0
        public PathFinder_VisitAll(Mapper mapper, params Room[] roomId)
            : base()
        {
            map = mapper;
            foreach (Room u in roomId)
            {
                if (!AllRooms.Contains(u))
                {
                    AllRooms.Add(u);
                }
            }

            if (_grid[0] == null)
            {
                for (int i = 0; i < _grid.Length; i++)
                {
                    _grid[i] = new List <uint[]>(512);
                }
            }

            for (int i = 0; i < _grid.Length; i++)
            {
                _grid[i].Clear();
            }
        }
        static void Main(string[] args)
        {
            ActorSystem system = ActorSystem.Create("MyChatServer");

            IActorRef userManeger = system.ActorOf <UserManagerActor>();

            CreateUsers(userManeger);

            var roomManager = system.ActorOf <RoomManagerActor>("RoomManager");

            roomManager.Tell(new CreateRoom(Guid.NewGuid(), "Subject1"));
            //roomManager.Tell(new CreateRoom(Guid.NewGuid(), "Subject2"));

            Task <AllRooms> task = roomManager.Ask <AllRooms>(new ListAllRooms());

            AllRooms taskResult = task.Result;

            Guid roomGuid = Guid.Empty;

            foreach (KeyValuePair <Guid, string> room in taskResult.Rooms)
            {
                Console.WriteLine("{0}:{1}", room.Key, room.Value);
                roomGuid = room.Key;
            }

            roomManager.Tell(new JoinRoom(Guid.NewGuid(), roomGuid));
            roomManager.Tell(new JoinRoom(Guid.NewGuid(), roomGuid));
            roomManager.Tell(new JoinRoom(Guid.NewGuid(), roomGuid));
            roomManager.Tell(new JoinRoom(Guid.NewGuid(), roomGuid));


            Console.WriteLine("press any key");
            Console.ReadLine();
            system.Terminate();
        }
        async Task ExecuteRefreshCommand()
        {
            if (IsBusy)
            {
                return;
            }
            IsBusy = true;

            try
            {
                await CloudService.SyncOfflineCacheAsync();

                var table = await CloudService.GetTableAsync <Room>();

                var list = await table.ReadAllRoomsAsync();

                AllRooms.Clear();
                DisplayedRooms.Clear();
                foreach (var room in list)
                {
                    AllRooms.Add(room);
                    DisplayedRooms.Add(room);
                    SortRooms(DisplayedRooms, room);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"[RoomListViewModel] Error loading items: {ex.Message}");
            }
            finally
            {
                IsBusy = false;
            }
        }
        private async Task LoadRooms()
        {
            var rooms = (await _roomService.GetAll()).ToList();

            AllRooms.Clear();
            rooms.ForEach(room => AllRooms.Add(new RoomBindableViewModel(room)));
            CurrentlySelectedRoom = AllRooms.FirstOrDefault();
        }
Exemple #6
0
        /// <summary>
        /// Creates a Room.
        /// </summary>
        /// <param name="no">The no of the room.</param>
        /// <param name="floor">The floor the room is on.</param>
        /// <param name="type">The type of the room.</param>
        /// <param name="furnitureList">The list of furniture in the room.</param>
        public Room(int no, short floor, string type, List <Furniture> furnitureList)
        {
            No    = no;
            Floor = floor;
            Type  = type;
            foreach (var f in furnitureList)
            {
                FurnitureList.Add(f);
                //Database.MakeRoomFurnitureTriple(this, f);
            }

            AllRooms.Add(this);
        }
Exemple #7
0
        void ConnectionService_onPlayerDisconnect(ConnectionService con)
        {
            //Remove player if it disconnects
            Player player = Connections[con];

            if (player.MyRoomID != 0)
            {
                //Remove player from room; if room has no more players, remove the room
                Room room = AllRooms[player.MyRoomID];
                if (room.RemovePlayer(player))
                {
                    AllRooms.Remove(room.RoomID);
                    SearchingRooms.Remove(room);
                }
            }
            Connections.Remove(con);
            Players.Remove(player);
        }
Exemple #8
0
            public static void Postfix(CounterArea __instance)
            {
                if (!PlayerControl.LocalPlayer.Is(RoleEnum.Spy))
                {
                    return;
                }
                if (!AllRooms.ContainsKey(__instance.RoomType))
                {
                    return;
                }
                var list = AllRooms[__instance.RoomType];

                for (int i = 0; i < __instance.myIcons.Count; i++)
                {
                    var poolable = __instance.myIcons.ToArray()[i];
                    var rend     = poolable.GetComponent <SpriteRenderer>();
                    if (rend != null && list.Count > i)
                    {
                        PlayerControl.SetPlayerMaterialColors(list[i], rend);
                    }
                }
            }
Exemple #9
0
    private void RandomizePatrolPath()
    {
        Node spawnPoint = PathRequestManager.instance.grid.NodeFromWorldPoint(rb.position);

        spawnPoint  = PathRequestManager.instance.grid.GetWalkableNeighbor(spawnPoint);
        rb.position = PathRequestManager.instance.grid.WorldPointFromNode(spawnPoint);
        AllRooms startRoom = References.rf.enemyManager.startRoom;

        Node pointOne   = PathRequestManager.instance.grid.NodeFromWorldPoint(new Vector2(transform.position.x + UnityEngine.Random.Range(5f, 20f), transform.position.y));
        Node pointTwo   = PathRequestManager.instance.grid.NodeFromWorldPoint(new Vector2(transform.position.x, transform.position.y + UnityEngine.Random.Range(5f, 20f)));
        Node pointThree = PathRequestManager.instance.grid.NodeFromWorldPoint(new Vector2(transform.position.x + UnityEngine.Random.Range(-5f, -20f), transform.position.y));

        pointOne   = PathRequestManager.instance.grid.GetWalkableNeighbor(pointOne);
        pointTwo   = PathRequestManager.instance.grid.GetWalkableNeighbor(pointTwo);
        pointThree = PathRequestManager.instance.grid.GetWalkableNeighbor(pointThree);

        patrolPoints[0] = PathRequestManager.instance.grid.WorldPointFromNode(pointOne);
        patrolPoints[1] = PathRequestManager.instance.grid.WorldPointFromNode(pointTwo);
        patrolPoints[2] = PathRequestManager.instance.grid.WorldPointFromNode(pointThree);

        state.ChangeState(patrolState);
    }
Exemple #10
0
    public void GenerateEnemies(List <AllRooms> rooms)
    {
        enemies = new List <BaseEnemy>();
        foreach (var room in rooms)
        {
            if (room.roomType == RoomType.Start)
            {
                startRoom = room;
                continue;
            }

            int howManyEnemies = Random.Range(1, 3);
            for (int i = 0; i < howManyEnemies; i++)
            {
                int        enemy      = Random.Range(0, loadEnemies.Length);
                bool       legitSpawn = false;
                Vector2Int spawnPoint = Vector2Int.zero;
                Vector2    playerPos  = References.rf.playerEquipment.transform.position;
                while (!legitSpawn)
                {
                    spawnPoint = new Vector2Int(Random.Range(2, References.rf.levelGenerator.worldSizeX - 2), Random.Range(2, References.rf.levelGenerator.worldSizeY - 2));
                    legitSpawn = PathRequestManager.instance.grid.NodeFromWorldPoint(spawnPoint).walkable == 2;
                    Vector2 tooClose = new Vector2(Mathf.Abs(spawnPoint.x - playerPos.x), Mathf.Abs(spawnPoint.y - playerPos.y));
                    if (tooClose.x < 10 || tooClose.y < 10)
                    {
                        legitSpawn = false;
                    }
                }
                Vector2   spawn  = spawnPoint;
                var       obj    = Instantiate(loadEnemies[enemy], spawn, Quaternion.identity);
                BaseEnemy _enemy = obj.GetComponent <BaseEnemy>();
                enemies.Add(_enemy);
                _enemy.gameObject.SetActive(false);
            }
        }
        enemyCount = enemies.Count;
    }
Exemple #11
0
 public _Internal_PathFinder_VisitAll(params Room[] roomId)
 {
     AllRooms.AddRange(roomId);
 }
Exemple #12
0
 public Game(Player player, Room room)
 {
     Player      = player;
     CurrentRoom = room;
     AllRooms.Add(CurrentRoom);
 }
        private void Rooms_Clicked(object sender, RoutedEventArgs e)
        {
            AllRooms wr = new AllRooms();

            wr.Show();
        }