Exemplo n.º 1
0
        public void Initialize()
        {
            MainStateHandler.OnChangeAsObservable()
            .Subscribe(Change)
            .AddTo(Disposable);

            MainStateEntity.OnChangeStateAsObservable()
            .Subscribe(Render)
            .AddTo(Disposable);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
        public void Initialize()
        {
            MainStateEntity.OnChangeStateAsObservable(MainState.Result)
            .Subscribe(_ =>
            {
                Disconnect();
                Render();
            })
            .AddTo(Disposable);

            TweetButtonHandler.OnDownAsObservable()
            .Subscribe(_ => Tweet())
            .AddTo(Disposable);
        }
Exemplo n.º 5
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人揃うまでお待ちください コメントを変更することができます");
        }
Exemplo n.º 6
0
        public void Initialize()
        {
            MainStateEntity.OnChangeStateAsObservable(MainState.StageReady)
            .Subscribe(_ =>
            {
                Setup();
                Render();
            })
            .AddTo(Disposable);

            // RPC経由で全ユーザに答えをセットする
            StageReadyHandler.OnSetAnswerAsObservable()
            .Delay(TimeSpan.FromMilliseconds(300))
            .Subscribe(answer =>
            {
                SetAnswer(answer);
                SetInfo();
            })
            .AddTo(Disposable);
        }
Exemplo n.º 7
0
 public void Initialize()
 {
     MainStateEntity.OnChangeStateAsObservable(MainState.Ready)
     .Subscribe(_ => Render())
     .AddTo(Disposable);
 }
Exemplo n.º 8
0
 private void Change(MainState state)
 => MainStateEntity.Change(state);