public void Store(PlayerArrangementTargetModel playerArrangementTargetModel)
        {
            var entry = this.GetEntry(playerArrangementTargetModel.Id);

            if (entry != null)
            {
                var index = this.entrys.IndexOf(entry);
                this.entrys[index] = new PlayerArrangementTargetEntry()
                {
                    Id             = playerArrangementTargetModel.Id,
                    CenterPosition = new Position3Entry()
                    {
                        X = playerArrangementTargetModel.CenterPosition.x,
                        Y = playerArrangementTargetModel.CenterPosition.y,
                        Z = playerArrangementTargetModel.CenterPosition.z
                    },
                    Range = playerArrangementTargetModel.Range,
                    ArrangementPositions = playerArrangementTargetModel.Positions.Select(pos => new Position2Entry()
                    {
                        X = pos.x,
                        Z = pos.z
                    }).ToArray(),
                    ArrangementTargetState = playerArrangementTargetModel.State.ToString(),
                    HasMonoInfoId          = playerArrangementTargetModel.MonoInfo != null,
                    MonoInfoId             = playerArrangementTargetModel.MonoInfo != null ? playerArrangementTargetModel.MonoInfo.Id : uint.MaxValue,
                    HasMonoViewModelId     = playerArrangementTargetModel.PlayerMonoViewModel != null,
                    MonoViewModelId        = playerArrangementTargetModel.PlayerMonoViewModel != null ? playerArrangementTargetModel.PlayerMonoViewModel.Id : uint.MaxValue
                };
            }
            else
            {
                Debug.Assert(false, "要素が存在しません : " + playerArrangementTargetModel.Id.ToString());
            }
            PlayerContextMap.WriteEntry(this.entrys);
        }
Beispiel #2
0
        public void CreateAndSetMono(PlayerArrangementTargetModel playerArrangementTargetModel)
        {
            var monoViewModel          = GameManager.Instance.MonoManager.CreateMono(playerArrangementTargetModel.MonoInfo, playerArrangementTargetModel.CenterPosition);
            var foundArrangementTarget = this.arrangementTargetStore.Find(arrangementTarget => arrangementTarget.PlayerArrangementTargetModel.Equals(playerArrangementTargetModel));

            Debug.Assert(foundArrangementTarget != null, "配置ターゲットがありません");

            // 生成した viewModel をセット
            this.setMonoViewModelToArrangementService.Execute(foundArrangementTarget, monoViewModel);

            // 隣接お願いの確認
            this.AppendNearArrangement(foundArrangementTarget);
            GameManager.Instance.OnegaiMediaterManager.NearOnegaiMediater.MediateByArrangement(foundArrangementTarget);

            // 設置数のお願いの確認
            var arrangemntMonoId = playerArrangementTargetModel.MonoInfo.Id;

            this.onegaiMediater.Mediate(
                new NL.OnegaiConditions.ArrangementCount(),
                playerOnegaiRepository.GetAll().ToList()
                );

            // 配置時のイベント
            GameManager.Instance.EventManager.PushEventParameter(new NL.EventCondition.AfterArrangement());
        }
        public PlayerMouseViewModel Create(
            Vector3 position,
            MakingAmount makingAmount,
            PlayerArrangementTargetModel playerArrangementTargetModel
            )
        {
            var id    = this.MaximuId() + 1;
            var entry = new PlayerMouseViewEntry()
            {
                Id       = id,
                Position = new Position3Entry()
                {
                    X = position.x,
                    Y = position.y,
                    Z = position.z
                },
                Rotation = new Position3Entry()
                {
                    X = 0.0f,
                    Y = 0.0f,
                    Z = 0.0f
                },
                State                     = MouseViewState.None.ToString(),
                MakingAmountValue         = makingAmount.Value,
                MakingAmountMaxValue      = makingAmount.MaxValue,
                PlayerArrangementTargetId = playerArrangementTargetModel.Id
            };

            this.entrys.Add(entry);
            PlayerContextMap.WriteEntry(this.entrys);
            return(CreateByEntry(entry));
        }
Beispiel #4
0
        public void FinishMaking(PlayerArrangementTargetModel playerArrangementTargetModel)
        {
            Debug.Assert(playerArrangementTargetModel.PlayerMonoViewModel == null, "モノがセットされています。");
            Object.DisAppear(this.makingInstane);

            // ものを生成
            GameManager.Instance.ArrangementManager.CreateAndSetMono(playerArrangementTargetModel);
        }
Beispiel #5
0
 public void StartMake(PlayerArrangementTargetModel playerArrangementTargetModel)
 {
     if (!HasPreMono)
     {
         Debug.LogError("プレモノを持っていないのにMakeが呼ばれました");
     }
     GameManager.Instance.MouseStockManager.ChangeTransform(this);
     currentPreMono.StartMaking(playerArrangementTargetModel);
 }
Beispiel #6
0
 public void FinishMaking(PlayerArrangementTargetModel playerArrangementTargetModel)
 {
     if (!HasPreMono)
     {
         Debug.LogError("プレモノを持っていないのにMakeが呼ばれました");
     }
     currentPreMono.FinishMaking(playerArrangementTargetModel);
     currentPreMono = null;
 }
Beispiel #7
0
        public void StartMaking(PlayerArrangementTargetModel playerArrangementTargetModel)
        {
            this.makingInstane = Object.AppearToFloor(makingPrefab, mouse.transform.parent.gameObject, playerArrangementTargetModel.CenterPosition);

            this.preMonoView = this.makingInstane.GetComponent <PreMonoView>();
            Debug.Assert(this.preMonoView != null, "PreMonoView がセットされていません");

            this.currentMakingAmount = new MakingAmount(0, mono.MakingTime);
            this.preMonoView.UpdateView(this.currentMakingAmount.Rate);
        }
        public void Remove(PlayerArrangementTargetModel playerArrangementTargetModel)
        {
            var entry = this.GetEntry(playerArrangementTargetModel.Id);

            if (entry != null)
            {
                var index = this.entrys.IndexOf(entry);
                this.entrys.RemoveAt(index);
            }
            else
            {
                Debug.Assert(false, "要素が存在しません : " + playerArrangementTargetModel.Id.ToString());
            }
            PlayerContextMap.WriteEntry(this.entrys);
        }
 public PlayerMouseViewModel(
     uint id,
     Vector3 position,
     Vector3 rotation,
     MouseViewState state,
     MakingAmount makingAmount,
     PlayerArrangementTargetModel playerArrangementTargetModel
     )
 {
     this.Id           = id;
     this.Position     = position;
     this.Rotation     = rotation;
     this.State        = state;
     this.MakingAmount = makingAmount;
     this.PlayerArrangementTargetModel = playerArrangementTargetModel;
 }
Beispiel #10
0
 public MakingState(Mouse context, PlayerArrangementTargetModel playerArrangementTargetModel)
 {
     this.context = context;
     this.playerArrangementTargetModel = playerArrangementTargetModel;
 }
 public PlayerArrangementTarget(PlayerArrangementTargetModel playerArrangementTargetModel)
 {
     this.playerArrangementTargetModel = playerArrangementTargetModel;
 }
Beispiel #12
0
 public PlayerMouseViewModel Execute(Vector3 initialPosition, PlayerArrangementTargetModel playerArrangementTargetModel)
 {
     return(this.playerMouseViewRepository.Create(initialPosition, new MakingAmount(0, playerArrangementTargetModel.MonoInfo.MakingTime), playerArrangementTargetModel));
 }
Beispiel #13
0
 public MoveToTarget(Mouse context, PlayerArrangementTargetModel playerArrangementTargetModel)
 {
     this.context = context;
     this.playerArrangementTargetModel = playerArrangementTargetModel;
 }