/// <summary> /// 返回卡编是否具有添加到点燃区域的权限 /// </summary> /// <param name="number">卡编</param> /// <returns>true|false</returns> private bool CheckAreaIg(string number) { var name = CardUtils.GetName(number); // 根据卡编获取卡片在点燃区的枚举类型 var igType = CardUtils.GetIgType(number); // 判断卡片是否超出自身添加数量以及点燃区总数量 var canAdd = (_deckVm.IgModels.AsParallel().Count(deckEntity => name.Equals(deckEntity.CName)) < CardUtils.GetMaxCount(number)) && (_deckVm.IgModels.Count < 20); switch (igType) { case Enums.IgType.Life: canAdd = canAdd && (_deckVm.IgModels.AsParallel().Count(deckEntity => CardUtils.IsLife(deckEntity.NumberEx)) < 4); break; case Enums.IgType.Void: canAdd = canAdd && (_deckVm.IgModels.AsParallel().Count(deckEntity => CardUtils.IsVoid(deckEntity.NumberEx)) < 4); break; case Enums.IgType.Normal: break; } return(canAdd); }
/// <summary> /// 获取卡组中生命恢复和虚空使者总数的集合 /// </summary> /// <returns></returns> public void UpdateDeckStatsView() { var startCount = _deckVm.UgModels.AsParallel().Count(deckEntity => CardUtils.IsStart(deckEntity.NumberEx)); var lifeCount = _deckVm.IgModels.AsParallel().Count(deckEntity => CardUtils.IsLife(deckEntity.NumberEx)); var voidCount = _deckVm.IgModels.AsParallel().Count(deckEntity => CardUtils.IsVoid(deckEntity.NumberEx)); _deckStatsVm.UpdateView(startCount, lifeCount, voidCount); }