Exemplo n.º 1
0
        public ActionResult Create(OverType model)
        {
            ResultModel result = new ResultModel();

            try
            {
                #region 驗證Model
                if (!ModelState.IsValid)
                {
                    throw new Exception(ModelStateErrorClass.FormatToString(ModelState));
                }
                #endregion

                #region 前端資料變後端用資料ViewModel時用

                #endregion

                #region Service資料庫
                this._overtypeService.Create(model);
                #endregion

                #region  息頁面設定
                result.Status  = true;
                result.Message = "MessageComplete".ToLocalized();
                #endregion
            }
            catch (Exception ex)
            {
                #region  錯誤時錯誤訊息
                result.Status  = false;
                result.Message = ex.Message.ToString();
                #endregion
            }
            return(Json(result));
        }
Exemplo n.º 2
0
 public static void Over(OverType overType, bool isOverTime)
 {
     Debug.Log(string.Format("<color=gray>Over overType={0} War.vsmode={1}</color>", overType, War.vsmode));
     War.overType   = overType;
     War.isOverTime = isOverTime;
     War.scene.ExeUpdateHandle();
     manager.StartCoroutine(OnOver());
 }
Exemplo n.º 3
0
        public List <ProtoRoleFightResult> GetServiceEndData()
        {
            List <ProtoRoleFightResult> list = new List <ProtoRoleFightResult>();

            int buildTotal = War.scene.GetBuilds().Count;

            foreach (var kvp in legionDict)
            {
                LegionData           legionData = kvp.Value.legionData;
                int                  legionId   = legionData.legionId;
                ProtoRoleFightResult result     = new ProtoRoleFightResult();
                result.roleId      = legionData.roleId;
                result.star        = War.overType == OverType.Draw ? 1 :  kvp.Value.GetSuccessStars().Length;
                result.build_count = War.scene.GetBuilds(legionId).Count;
                result.build_total = buildTotal;
                result.team_id     = legionId;



                Debug.LogFormat("GetServiceEndData legionId={0}, result.roleId={1}, type={2}, star={3}, build_count={4}", legionId, result.roleId, legionData.type, result.star, result.build_count);
                if (War.GetRelationType(kvp.Value.legionData.legionId) != RelationType.Enemy)
                {
                    result.end_type = (int)War.overType;
                }
                else
                {
                    OverType overType = OverType.Draw;
                    switch (War.overType)
                    {
                    case OverType.Draw:
                        overType = OverType.Draw;
                        break;

                    case OverType.Lose:
                        overType = OverType.Win;
                        break;

                    case OverType.Win:
                        overType = OverType.Lose;
                        break;
                    }


                    result.end_type = (int)overType;
                }

                list.Add(result);

                //TODO Test
                //result.star = 3;
            }

            return(list);
        }
Exemplo n.º 4
0
        public List <WarOverLegionData> GetOverData()
        {
            List <WarOverLegionData> list = new List <WarOverLegionData>();

            int buildTotal = War.scene.GetBuilds().Count;

            foreach (var kvp in legionDict)
            {
                LegionData        legionData = kvp.Value.legionData;
                int               legionId   = legionData.legionId;
                WarOverLegionData result     = new WarOverLegionData();
                result.legionId   = legionData.legionId;
                result.roleId     = legionData.roleId;
                result.starCount  = kvp.Value.GetSuccessStars().Length;
                result.buildCount = War.scene.GetBuilds(legionId).Count;
                result.buildTotal = buildTotal;
                Debug.LogFormat("GetOverData legionId={0}, result.roleId={1}, type={2}, starCount={3},  buildCount={4}", legionId, result.roleId, legionData.type, result.starCount, result.buildCount);


                if (War.GetRelationType(kvp.Value.legionData.legionId) != RelationType.Enemy)
                {
                    result.overType = War.overType;
                }
                else
                {
                    OverType overType = OverType.Draw;
                    switch (War.overType)
                    {
                    case OverType.Draw:
                        overType = OverType.Draw;
                        break;

                    case OverType.Lose:
                        overType = OverType.Win;
                        break;

                    case OverType.Win:
                        overType = OverType.Lose;
                        break;
                    }


                    result.overType = overType;
                }

                list.Add(result);


                //TODO Test
                //result.starCount = 3;
            }

            return(list);
        }
Exemplo n.º 5
0
        public Model.OverType GetById(int id_overseatype)
        {
            #region 取資料
            OverType query = this.Get(id_overseatype);
            #endregion

            #region 邏輯驗證
            if (query == null)//沒有資料
            {
                throw new Exception("MessageNoData".ToLocalized());
            }
            #endregion

            #region 回傳

            return(query);

            #endregion
        }
Exemplo n.º 6
0
        static IEnumerator OnOver()
        {
            yield return(new WaitForEndOfFrame());

            yield return(new WaitForEndOfFrame());

            // 战斗流程状态
            War.processState = WarProcessState.GameOver;
            // 胜利条件
            War.winManager.OnGameOver();
            War.overType = War.winManager.GetGameOverType();
//			War.scene.Pause();
            War.scene.MaskVisiable = true;

            Debug.Log(string.Format("<color=gray>OnOver overType={0} War.vsmode={1}</color>", overType, War.vsmode));

//			// EntityMBBehaviour是否运行Update
//			War.isUpdateBehaviour = true;
            // 播放星级评价

            War.starPVPManager.OnGameOver();
            War.starManager.OnGameOver();
        }
Exemplo n.º 7
0
        public void Update(Model.OverType model)
        {
            #region 取資料
            OverType query = this.Get(model.ID_OverType);
            #endregion

            #region 邏輯驗證
            if (query == null)//沒有資料
            {
                throw new Exception("MessageNoData".ToLocalized());
            }
            #endregion

            #region 變為Models需要之型別及邏輯資料
            query.CX_OverType = model.CX_OverType;
            query.NQ_Sort     = model.NQ_Sort;
            #endregion

            #region Models資料庫
            this._repository.Update(query);
            this._unitOfWork.SaveChange();
            #endregion
        }
Exemplo n.º 8
0
        public ActionResult DeleteConfirmed(OverType model)
        {
            ResultModel result = new ResultModel();

            try
            {
                #region Service資料庫
                this._overtypeService.Delete(model);
                #endregion

                #region  息頁面設定
                result.Status  = true;
                result.Message = "MessageComplete".ToLocalized();
                #endregion
            }
            catch (Exception ex)
            {
                #region  錯誤時錯誤訊息
                result.Status  = false;
                result.Message = ex.Message.ToString();
                #endregion
            }
            return(Json(result));
        }
Exemplo n.º 9
0
        protected async Task Over(OverType overType)
        {
            if (Snapshot.Base.IsOver)
            {
                throw new StateIsOverException(Snapshot.Base.StateId.ToString(), GrainType);
            }
            if (Snapshot.Base.Version != Snapshot.Base.DoingVersion)
            {
                throw new StateInsecurityException(Snapshot.Base.StateId.ToString(), GrainType, Snapshot.Base.DoingVersion, Snapshot.Base.Version);
            }
            if (overType != OverType.None)
            {
                var versions = await ObserverUnit.GetAndSaveVersion(Snapshot.Base.StateId, Snapshot.Base.Version);

                if (versions.Any(v => v < Snapshot.Base.Version))
                {
                    throw new ObserverNotCompletedException(GrainType.FullName, Snapshot.Base.StateId.ToString());
                }
            }
            Snapshot.Base.IsOver   = true;
            Snapshot.Base.IsLatest = true;
            if (SnapshotEventVersion != Snapshot.Base.Version)
            {
                var saveTask = SaveSnapshotAsync(true, true);
                if (!saveTask.IsCompletedSuccessfully)
                {
                    await saveTask;
                }
            }
            else
            {
                await SnapshotStorage.Over(Snapshot.Base.StateId, true);
            }
            if (overType == OverType.ArchivingEvent)
            {
                if (ArchiveOptions.On)
                {
                    await DeleteAllArchive();
                }
                await ArchiveStorage.EventArichive(Snapshot.Base.StateId, Snapshot.Base.Version, Snapshot.Base.StartTimestamp);
            }
            else if (overType == OverType.DeleteEvent)
            {
                if (ArchiveOptions.On)
                {
                    await DeleteAllArchive();
                }
                await EventStorage.DeletePrevious(Snapshot.Base.StateId, Snapshot.Base.Version, Snapshot.Base.StartTimestamp);
            }
            else if (overType == OverType.DeleteAll)
            {
                if (ArchiveOptions.On)
                {
                    await DeleteAllArchive();
                }
                await EventStorage.DeletePrevious(Snapshot.Base.StateId, Snapshot.Base.Version, Snapshot.Base.StartTimestamp);

                if (SnapshotEventVersion > 0)
                {
                    await SnapshotStorage.Delete(GrainId);

                    SnapshotEventVersion = 0;
                }
            }
            else if (ArchiveOptions.On && BriefArchiveList.Count > 0)
            {
                await ArchiveStorage.Over(Snapshot.Base.StateId, true);
            }
        }
Exemplo n.º 10
0
 /// <summary>
 /// 游戏结束
 /// </summary>
 public static void Over(OverType overType)
 {
     War.Over(overType, false);
 }