private void btnLuu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { gridViewNguoiDung.FocusedRowHandle = -1; TList <TaiKhoan> listAppUser = bindingSourceNguoiDung.DataSource as TList <TaiKhoan>; if (listAppUser != null) { if (XtraMessageBox.Show("Bạn có muốn lưu các thay đổi không ?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { try { bindingSourceNguoiDung.EndEdit(); TList <PMS.Entities.HeThong> listAppSystems = DataServices.HeThong.GetByUserId(_userID); foreach (TaiKhoan user in listAppUser) { PMS.Entities.HeThong objHeThong = listAppSystems.Find(p => p.UserId == _userID && p.ParentId == user.MaTaiKhoan); if (user.Chon) { if (objHeThong == null) { listAppSystems.Add(new PMS.Entities.HeThong() { UserId = _userID, ParentId = user.MaTaiKhoan }); } } else { if (objHeThong != null) { objHeThong.MarkToDelete(); } } } if (listAppSystems.IsValid) { DataServices.HeThong.Save(listAppSystems); DevExpress.XtraEditors.XtraMessageBox.Show("Bạn đã lưu các thay đổi thành công.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("Có {0} dòng dữ liệu không hợp lệ.", listAppSystems.InvalidItems.Count), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } catch { XtraMessageBox.Show("Đã xảy ra lỗi trong quá trình lưu các thay đổi.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
public bool Doing() { TList <EmbattleQueue> queueList = GetPriorityQueue(); if (queueList.Count != 2) { return(false); } EmbattleQueue roleA = queueList[0]; EmbattleQueue roleD = queueList[1]; //原因:空阵BUG if (roleA.GeneralCount == 0 && roleD.GeneralCount == 0) { new BaseLog().SaveLog("战斗双方佣兵不存在"); return(false); } if (roleA.Role == EmbattleRole.RoleA) { if (roleA.GeneralCount > 0 && roleD.GeneralCount == 0) { return(true); } if (roleA.GeneralCount == 0 && roleD.GeneralCount > 0) { return(false); } } else if (roleA.Role == EmbattleRole.RoleD) { if (roleA.GeneralCount > 0 && roleD.GeneralCount == 0) { return(false); } if (roleA.GeneralCount == 0 && roleD.GeneralCount > 0) { return(true); } } queueList.Foreach(item => { var general = (CombatGeneral)item.NextGeneral(); if (general != null) { general.SelfAbilityInfoList.ForEach(SelfAbility => { SelfAbilityEffect selfAbilityEffect = new SelfAbilityEffect(); selfAbilityEffect.GeneralID = general.GeneralID; selfAbilityEffect.EffectID1 = SelfAbility.EffectID1; selfAbilityEffect.FntHeadID = SelfAbility.FntHeadID; selfAbilityEffect.IsIncrease = SelfAbility.IsIncrease; selfAbilityEffect.Position = general.Position; selfAbilityEffect.Role = item.Role.ToShort(); processContainer.SelfAbilityEffectList.Add(selfAbilityEffect); }); } }); //原因:闪避高时死锁 bool isCombatOut = false; int index = 0; while (roleA.HasCombat() && roleD.HasCombat()) { if (index >= MaxCount) { isCombatOut = true; //防止死锁 new BaseLog().SaveLog(string.Format("[{0}]战斗超出最大回合数,判攻方输", _combatType)); break; } //设置重新一轮 roleA.ResetGeneralQueue(); roleD.ResetGeneralQueue(); DoSingle(queueList); index++; } foreach (var item in priorityList) { if (item.Number > BoutNum) { BoutNum = item.Number; } //恢复血量 double resumeLife = ConfigEnvSet.GetDouble("Combat.ResumeLifeNum"); //领土战直接恢复100% if (_combatType == CombatType.Country && item.IsOver) { resumeLife = 1; } if ((_combatType == CombatType.Country && item.IsOver) || (_combatType != CombatType.Country && item.IsOver)) { if (item.Role == EmbattleRole.RoleA) { DoResumeLife(processContainer.AttackList, resumeLife); } else { DoResumeLife(processContainer.DefenseList, resumeLife); } } } ; //超出判断攻方输 if (isCombatOut && roleA.Role == EmbattleRole.RoleA) { return(false); } if (isCombatOut && roleA.Role == EmbattleRole.RoleD) { return(true); } return(!priorityList.Find(m => m.Role == EmbattleRole.RoleA).IsOver); }