Esempio n. 1
0
        public void OnEnter()
        {
            GameManager.Instance.TimeManager.Pause();

            // 変化前の情報
            Currency     prevCurrency        = GameManager.Instance.Wallet.Current;
            Satisfaction currentSatisfaction = this.satisfactionCalculater.CalcFieldSatisfaction();

            // 日銭の計算と付与を行う
            var dailyEarn = dailyEarnCalculater.CalcEarnFromSatisfaction();

            GameManager.Instance.Wallet.Push(dailyEarn);
            GameManager.Instance.EffectManager.PlayEarnEffect(dailyEarn, GameManager.Instance.MouseHomeManager.HomePostion);

            // 変化後の計算
            Currency nextCurrency = GameManager.Instance.Wallet.Current;

            // 一日の終りダイアログを出す
            this.DoDailyEnd();
            GameManager.Instance.GameUIManager.DailyEndPresenter.Show();
            GameManager.Instance.GameUIManager.DailyEndPresenter.SetCurrentChangeInfo(prevCurrency, nextCurrency, currentSatisfaction);
            this.disposable = GameManager.Instance.GameUIManager.DailyEndPresenter.OnClose
                              .SelectMany(_ => {
                // 一日の始まりダイアログを出す
                this.DoDailyStart();
                GameManager.Instance.GameUIManager.DailyStartPresenter.Show();
                return(GameManager.Instance.GameUIManager.DailyStartPresenter.OnClose);
            })
                              .Subscribe(_ => {
                // 選択画面に移動する
                GameManager.Instance.GameModeManager.EnqueueChangeMode(GameModeGenerator.GenerateSelectMode());
            });
        }
Esempio n. 2
0
        /// <summary>
        /// 満足度から稼ぎを計算する
        /// </summary>
        /// <returns>稼ぎ</returns>
        public Currency CalcEarnFromSatisfaction()
        {
            var          satisfactionCalculater = new SatisfactionCalculater(playerOnegaiRepository);
            Satisfaction currentSatisfaction    = satisfactionCalculater.CalcFieldSatisfaction();
            Currency     currency = new Currency((long)(currentSatisfaction.Value * DailyEarnCalculater.SatisfactionMultiRate));

            return(currency);
        }
Esempio n. 3
0
        public Satisfaction CalcFieldSatisfaction()
        {
            Satisfaction satisfaction = new Satisfaction(0);

            satisfaction += GameManager.Instance.MonoManager.GetAllSatisfaction();
            satisfaction += playerOnegaiRepository.GetAllSatisfaction();
            return(satisfaction);
        }
Esempio n. 4
0
        public Satisfaction GetAllSatisfaction()
        {
            Satisfaction satisfaction = new Satisfaction(0);

            foreach (var monoViewModel in monoViewModels)
            {
                satisfaction += monoViewModel.GetCurrentSatisfaction();
            }
            return(satisfaction);
        }
Esempio n. 5
0
        public Satisfaction GetAllSatisfaction()
        {
            Satisfaction allSatisfaction = new Satisfaction(0);

            foreach (var playerOnegaiModel in this.GetClear())
            {
                allSatisfaction += playerOnegaiModel.OnegaiModel.Satisfaction;
            }
            return(allSatisfaction);
        }
Esempio n. 6
0
        public void SetCurrentChangeInfo(Currency currentCurrency, Currency nextCurrency, Satisfaction currentSatisfaction)
        {
            var deltaCurrency = nextCurrency - currentCurrency;

            this.dailyEndView.UpdateView(
                currentCurrency.ToString(),
                deltaCurrency.ToString(),
                nextCurrency.ToString(),
                currentSatisfaction.ToString(),
                DailyEarnCalculater.SatisfactionMultiRate.ToString(),
                "まあまあだね"
                );
        }