/// <summary> /// 获取指定卡牌的评分 /// </summary> /// <param name="Card">卡牌数据</param> public static DataBenchmark CardBenchmark(ParsedCardData Card) { var MAX = Math.Pow(10, Round); double Restrict(double min, double value, double max) { var r = value > min ? value : min; return(r < max ? r : max); } double Attack = (Math.Round(Card.AttackArray[10] / AttackBenchmark, Round)) * MAX, Defend = (Math.Round(Card.HpArray[10] / DefendBenchmark, Round) + (Card.Race == 5 || Card.Race == 97 || Card.Race == 99 || Card.Race == 100 ? DefendBenchmark_Race5Buff : 0)) * MAX, Mobility = (Math.Round((MobilityBenchmark - Card.Wait) / MobilityBenchmark, Round)) * MAX, Stability = (Math.Round(StabilityBenchmark * 0.5 / StabilityBenchmark, Round)) * MAX, Cost = (Math.Round((CostBenchmark - Card.Cost) / CostBenchmark, Round)) * MAX; return(new DataBenchmark { Attack = Restrict(0, Attack, MAX), Defend = Restrict(0, Defend, MAX), Mobility = Restrict(0, Mobility, MAX), Stability = Restrict(0, Stability, MAX), Cost = Restrict(0, Cost, MAX), }); }
/// <summary> /// 获取奖励卡牌的地图 /// </summary> public KeyValuePair <ParsedMapStageData, int>[] CardData_GetRewardInMapStage(ParsedCardData card) { if (!CardData_RewardInMapStage.ContainsKey(card)) { CardData_RuneData_SkillData_InitMapStageRelationLists(); } return(CardData_RewardInMapStage[card]); }
/// <summary> /// 获取卡牌所有召唤物 /// </summary> public ParsedCardData[] CardData_GetAllSummoneeCards(ParsedCardData card) { if (!CardData_AllSummoneeCards.ContainsKey(card)) { CardData_InitCardRelationLists(); } return(CardData_AllSummoneeCards[card]); }
/// <summary> /// 获取卡牌所有技能 /// </summary> public ParsedSkillData[] CardData_GetAllSkills(ParsedCardData card) { if (!CardData_AllSkills.ContainsKey(card)) { CardData_InitSkillRelationLists(); } return(CardData_AllSkills[card]); }
/// <summary> /// 获取卡牌是否为战斗性卡牌 /// </summary> public bool CardData_GetIsBattleCard(ParsedCardData card) { if (!CardData_IsBattleCard.ContainsKey(card)) { CardData_InitSkillRelationLists(); } return(CardData_IsBattleCard[card]); }
public IActionResult Detail(string id) { try { var dbContext = new MkhxCoreContext(); var dm = GameDataManager.Get(Request); var cardList = dm.CardList; ParsedCardData card = cardList.FirstOrDefault(m => m.CardId + "" == id || m.CardName == id); ViewData["id"] = id; if (card == null) { return(new NotFoundResult()); } else { if (!int.TryParse(id, out int CardId)) // 如果使用了名称选取,则跳转为编号选取,避免Edge浏览器Header编码问题 { return(new RedirectResult($"/carddata/{card.CardId}", false)); } { var picture = dbContext.Picture.ToArray().Where(m => m.Name.Split(' ').Contains(card.CardName)).ToArray(); ViewData["picture"] = picture; } { var SummonerCards = dm.CardData_GetAllSummonerCards(card); ViewData["SummonerCards"] = SummonerCards; } { var SummoneeCards = dm.CardData_GetAllSummoneeCards(card); ViewData["SummoneeCards"] = SummoneeCards; } { var ShowInMapStageLevel = dm.CardData_GetShowInMapStageLevel(card); ViewData["ShowInMapStageLevel"] = ShowInMapStageLevel; } { var RewardInMapStage = dm.CardData_GetRewardInMapStage(card); var ChipRewardInMapStage = dm.CardData_GetChipRewardInMapStage(card); var list = new List <KeyValuePair <ParsedMapStageData, int> >(); list.AddRange(RewardInMapStage); list.AddRange(ChipRewardInMapStage); ViewData["RewardInMapStage"] = list.Distinct().ToArray(); } { var RewardInMapStageLevel = dm.CardData_GetRewardInMapStageLevel(card); var ChipRewardInMapStageLevel = dm.CardData_GetChipRewardInMapStageLevel(card); var list = new List <KeyValuePair <ParsedMapStageDetailLevelData, int> >(); list.AddRange(RewardInMapStageLevel); list.AddRange(ChipRewardInMapStageLevel); ViewData["RewardInMapStageLevel"] = list.Distinct().ToArray(); } { var vc = Request.Cookies["vc"] ?? ""; if (!vc.Contains((char)(card.CardId + 1024))) { Response.Cookies.Append("vc", vc + ((char)(card.CardId + 1024))); dbContext.PvCounter.Add(new PvCounter { Id = Guid.NewGuid(), Time = DateTime.Now, Ip = Request.HttpContext.Connection.RemoteIpAddress.ToString(), Ua = Request.Headers["User-Agent"], Type = "card", Name = card.CardName, }); var timeDelete = DateTime.Now.AddDays(-7); dbContext.PvCounter.RemoveRange(dbContext.PvCounter.Where(m => m.Time < timeDelete)); dbContext.SaveChanges(); } } return(View(card)); } } catch (NeedVersionSelectedException) { return(View("Blank")); } }
/// <summary> /// 获取奖励卡牌碎片的关卡 /// </summary> public KeyValuePair <ParsedMapStageDetailLevelData, int>[] CardData_GetChipRewardInMapStageLevel(ParsedCardData card) { if (!CardData_ChipRewardInMapStageLevel.ContainsKey(card)) { CardData_RuneData_SkillData_InitMapStageRelationLists(); } return(CardData_ChipRewardInMapStageLevel[card]); }