public void PlayContents(IEventContents eventContentes)
        {
            Debug.Assert(this.currentEventContents != null, "currentEventContentsがありません");
            this.currentEventContents.OnExit();

            // 終わった段階で終了状態にする
            if (this.currentEventContents.TargetPlayerEventModel != null)
            {
                this.currentEventContents.TargetPlayerEventModel.ToDone();
                playerEventRepository.Store(this.currentEventContents.TargetPlayerEventModel);
            }

            // 報酬がなければ次のイベントに移動する
            if (this.currentEventContents.TargetPlayerEventModel == null)
            {
                this.currentEventContents = eventContentes;
                eventContentes.OnEnter();
                return;
            }

            // 報酬の受け取り
            this.currentEventContentsExecuterState = EventContentsExecuterState.RewardReceive;
            var receiveReceiver = new RewardReceiver(this.currentEventContents.TargetPlayerEventModel);

            receiveReceiver.OnEndReceiveObservable.Subscribe(_ => {
                //報酬受取の終わったタイミングで次のイベントを起動する
                this.currentEventContentsExecuterState = EventContentsExecuterState.ContentsPlaying;
                this.currentEventContents = eventContentes;
                eventContentes.OnEnter();
            });
            receiveReceiver.ReceiveRewardAndShowModel();
        }
Exemple #2
0
 public void OnEnter()
 {
     GameManager.Instance.TimeManager.Pause();
     rewardReceiver.ReceiveRewardAndShowModel();
     this.receiveRewardDisposable = rewardReceiver.OnEndReceiveObservable.Subscribe(_ => {
         GameManager.Instance.GameModeManager.Back();
     });
 }