示例#1
0
        public void Initialize()
        {
            PhotonPlayerHandler.OnLeftAsObservable()
            .Where(_ => !MainStateEntity.Check(MainState.Wait, MainState.Result))
            .Where(_ => PhotonNetwork.IsMasterClient)
            .Subscribe(_ => ChangeStateError())
            .AddTo(Disposable);

            MainStateEntity.OnChangeStateAsObservable(MainState.Error)
            .Subscribe(_ => Disconnect())
            .AddTo(Disposable);
        }
示例#2
0
        public void Initialize()
        {
            // 入力
            KeyboardKeyHandlerList.Select(x => x.OnDownAsObservable())
            .Merge()
            .Subscribe(Set)
            .AddTo(Disposable);

            // 送信
            KeyboardSendButtonHandler.OnDownAsObservable()
            .Where(_ => !KeyboardEntity.IsEmpty())
            .Subscribe(_ =>
            {
                switch (MainStateEntity.State)
                {
                case MainState.Wait:
                    Comment();
                    break;

                case MainState.StagePlay:
                    SendChat();
                    break;
                }
            })
            .AddTo(Disposable);

            //  削除
            KeyboardDeleteButtonHandler.OnDownAsObservable()
            .Subscribe(_ => Delete())
            .AddTo(Disposable);

            // Owenrの場合、徐々に文字が増えていく
            TimerEntity.OnUpdateTimerAsObservable()
            .Where(_ => PlayerEntity.IsOwner(PhotonNetwork.LocalPlayer))
            .Where(_ => MainStateEntity.Check(MainState.StagePlay))
            .Subscribe(time =>
            {
                var unlockKey = UnlockKeyList.List.ElementAtOrDefault(KeyboardEntity.UnlockKeyIndex);
                if (unlockKey != null && time >= unlockKey.ThresholdTime)
                {
                    foreach (var i in KeyboardEntity.EnableOwner(unlockKey.Count))
                    {
                        KeyboardKeyRendererList[i].Enable();
                    }

                    KeyboardEntity.IncreaseUnlockKeyIndex();
                    KeyboardListRenderer.PlayEnableSound();
                    InfoEntity.Set($"新しく {unlockKey.Count}文字 追加されました");
                }
            })
            .AddTo(Disposable);
        }
示例#3
0
        public void Initialize()
        {
            AudioPlayer.Play(AudioType.Main1);

            WaitLeaveRoomButtonHandler.OnDownAsObservable()
            .Where(_ => MainStateEntity.Check(MainState.Wait))
            .Subscribe(_ => LeaveRoom())
            .AddTo(Disposable);

            PhotonPlayerHandler.OnEnterAsObservable()
            .Where(_ => MainStateEntity.Check(MainState.Wait))
            .Subscribe(player => SetInfo($"{player.NickName} さんがルームに参加しました"))
            .AddTo(Disposable);

            // 待機中にプレイヤーの情報に変更があれば描画する
            Observable.Merge(
                PhotonPlayerHandler.OnEnterAsObservable().AsUnitObservable(),
                PhotonPlayerHandler.OnLeftAsObservable().AsUnitObservable(),
                PhotonPlayerHandler.OnUpdateCustomPropertyAsObservable().AsUnitObservable()
                )
            .Where(_ => MainStateEntity.Check(MainState.Wait))
            .Subscribe(_ =>
            {
                OnUpdatedPlayerList();
                PlaySE();
            })
            .AddTo(Disposable);

            // 人数が上限に達したらホストが状態変更のリクエストを投げる
            PhotonPlayerHandler.OnEnterAsObservable()
            .Where(_ => PhotonNetwork.CurrentRoom.PlayerCount == PhotonNetwork.CurrentRoom.MaxPlayers)
            .Where(_ => PhotonNetwork.MasterClient.UserId != null)
            .Where(_ => PhotonNetwork.IsMasterClient)
            .Subscribe(_ => ChangeReadyStateRequest())
            .AddTo(Disposable);

            PhotonPlayerHandler.OnLeftAsObservable()
            .Where(_ => MainStateEntity.Check(MainState.Wait))
            .Subscribe(player => SetInfo($"{player.NickName} さんがルームから退出しました"))
            .AddTo(Disposable);

            OnUpdatedPlayerList();
            SetInfo("3人揃うまでお待ちください コメントを変更することができます");
        }