예제 #1
0
        private void OrderMouseIfSelect()
        {
            if (!GameManager.Instance.ArrangementManager.ArrangementAnnotater.IsSelectByFrame)
            {
                return;
            }

            var currentTarget = GameManager.Instance.ArrangementManager.ArrangementAnnotater.GetCurrentTarget();

            if (!GameManager.Instance.ArrangementManager.IsSetArrangement(currentTarget))
            {
                return;
            }

            var makingMono = GameManager.Instance.MonoSelectManager.SelectedMonoInfo;
            var makingArrangementResourceAmount = makingMono.ArrangementResourceAmount;
            var result = ArrangementResourceHelper.IsConsume(makingArrangementResourceAmount);

            if (!result.IsConsume)
            {
                GameManager.Instance.EffectManager.PlayError(result.GetErrorMessage(), currentTarget.CenterPosition);
                return;
            }

            // 追加して予約する
            var playerArrangementTarget = this.arrangementTargetCreateService.Execute(currentTarget);

            this.reserveArrangementService.Execute(playerArrangementTarget, makingMono);
        }
예제 #2
0
        public static void Consume(ArrangementResourceAmount amount)
        {
            var isConsumeResult = ArrangementResourceHelper.IsConsume(amount, false);

            Debug.Assert(isConsumeResult.IsConsume, isConsumeResult.SystemErrorMessage);
            GameManager.Instance.Wallet.Consume(amount.Currency);
            GameManager.Instance.ArrangementItemStore.Consume(amount.ArrangementItemAmount);
        }
예제 #3
0
        public void Execute(IPlayerArrangementTarget arrangementTarget, MonoInfo monoInfo)
        {
            // プレイヤー情報の変更
            arrangementTarget.RegisterMaking(monoInfo);
            playerArrangementTargetRepository.Store(arrangementTarget.PlayerArrangementTargetModel);

            // 予約
            ArrangementResourceHelper.ReserveConsume(arrangementTarget.MonoInfo.ArrangementResourceAmount);
            GameManager.Instance.ArrangementManager.AddArrangement(arrangementTarget);
        }
예제 #4
0
 private bool IsEnable(PlayerMonoInfo playerMonoInfo)
 {
     if (!playerMonoInfo.IsRelease)
     {
         return(true);
     }
     if (!ArrangementResourceHelper.IsConsume(playerMonoInfo.MonoInfo.ArrangementResourceAmount).IsConsume)
     {
         return(false);
     }
     return(true);
 }
예제 #5
0
        public void Execute()
        {
            ArrangementResourceHelper.ConsumeReserve();

            var reserveArrangementTarget = GameManager.Instance.ArrangementManager.ArrangementTargetStore
                                           .Where(target => target.ArrangementTargetState == ArrangementTargetState.Reserve)
                                           .ToList();

            foreach (var arrangementTarget in reserveArrangementTarget)
            {
                arrangementTarget.ToAppear();
                this.playerArrangementTargetRepository.Store(arrangementTarget.PlayerArrangementTargetModel);

                GameManager.Instance.MouseStockManager.OrderMouse(arrangementTarget);
            }

            GameManager.Instance.ArrangementPresenter.ReLoad();
        }
 public void Execute(IPlayerArrangementTarget arrangementTarget)
 {
     // 予約状況からも削除
     ArrangementResourceHelper.UnReserveConsume(arrangementTarget.MonoInfo.ArrangementResourceAmount);
     GameManager.Instance.ArrangementManager.RemoveArranement(arrangementTarget);
 }