Beispiel #1
0
        public RoomManager(IRoomController controller, UserId currentUserId, GamePrefabs prefabs)
        {
            this.prefabs       = prefabs;
            this.currentUserId = currentUserId;
            this.Controller    = controller;
            this.MatchList     = new List <MatchManager>();

            //this.prefabs.StartMatchButton.onClick.AddListener(OnStartMatchClicked);
            Controller.MatchCreatedEvent += OnMatchCreated;
            Controller.RoomStartedEvent  += OnRoomStarted;
            Controller.RoomEndedEvent    += OnRoomEnded;
            Controller.UserJoinedEvent   += OnUserJoined;
            Controller.UserLeftEvent     += OnUserLeft;
            this.type = GameType.Single;

            this.prefabs.SetupMatchButton.onClick.AddListener(OnSetupMatchClicked);
            this.prefabs.ReturnToListButton.onClick.AddListener(OnReturnToListClicked);
            this.prefabs.CreateMatchButton.onClick.AddListener(OnCreateMatchClicked);

            //TODO: Move AI management
            if (controller is LocalRoomController)
            {
                this.aiPlayers = 5;

                this.aiList = new List <UserState>();
                if (this.Controller is LocalRoomController Local)
                {
                    this.currentUser = Local.AddPlayer(this.currentUserId);
                    for (int i = 0; i < aiPlayers; i++)
                    {
                        var user = new UserId();
                        aiList.Add(Local.AddPlayer(new UserId()));
                    }
                }

                for (int i = 0; i < 3; i++)
                {
                    Controller.CreateMatch(new MatchOptions()
                    {
                        Name        = "Match " + i.ToString(),
                        Style       = MatchStyle.Rounds,
                        Rounds      = 3,
                        TimerLength = 10f,
                    });
                }
            }

            var existing = this.Controller.GetMatches();

            foreach (var match in existing)
            {
                this.OnMatchCreated(this, (this.Controller, match));
            }
        }