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)); }
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()); }
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); }
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); }
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 }
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(); }
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 }
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)); }
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); } }
/// <summary> /// 游戏结束 /// </summary> public static void Over(OverType overType) { War.Over(overType, false); }