Esempio n. 1
0
 /// <summary>
 /// 获取符文所有技能
 /// </summary>
 public ParsedSkillData[] RuneData_GetAllSkills(ParsedRuneData rune)
 {
     if (!RuneData_AllSkills.ContainsKey(rune))
     {
         RuneData_InitSkillRelationLists();
     }
     return(RuneData_AllSkills[rune]);
 }
 /// <summary>
 /// 获取奖励符文的地图
 /// </summary>
 public KeyValuePair <ParsedMapStageData, int>[] RuneData_GetRewardInMapStage(ParsedRuneData rune)
 {
     if (!RuneData_RewardInMapStage.ContainsKey(rune))
     {
         CardData_RuneData_SkillData_InitMapStageRelationLists();
     }
     return(RuneData_RewardInMapStage[rune]);
 }
 /// <summary>
 /// 获取符文出现的关卡
 /// </summary>
 public KeyValuePair <ParsedMapStageDetailLevelData, int>[] RuneData_GetShowInMapStageLevel(ParsedRuneData rune)
 {
     if (!RuneData_ShowInMapStageLevel.ContainsKey(rune))
     {
         CardData_RuneData_SkillData_InitMapStageRelationLists();
     }
     return(RuneData_ShowInMapStageLevel[rune]);
 }
        public IActionResult Detail(string id)
        {
            try
            {
                var dbContext = new MkhxCoreContext();
                var dm        = GameDataManager.Get(Request);
                var runeList  = dm.RuneList;

                ParsedRuneData rune = runeList.FirstOrDefault(m => m.RuneId + "" == id || m.RuneName == id);

                if (rune == null)
                {
                    return(new NotFoundResult());
                }
                else
                {
                    if (!int.TryParse(id, out int RuneId))  //  如果使用了名称选取,则跳转为编号选取,避免Edge浏览器Header编码问题
                    {
                        return(new RedirectResult($"/runedata/{rune.RuneId}", false));
                    }

                    {
                        var ShowInMapStageLevel = dm.RuneData_GetShowInMapStageLevel(rune);
                        ViewData["ShowInMapStageLevel"] = ShowInMapStageLevel;
                    }
                    {
                        var RewardInMapStage = dm.RuneData_GetRewardInMapStage(rune);
                        var list             = new List <KeyValuePair <ParsedMapStageData, int> >();
                        list.AddRange(RewardInMapStage);
                        ViewData["RewardInMapStage"] = list.Distinct().ToArray();
                    }
                    {
                        var RewardInMapStageLevel = dm.RuneData_GetRewardInMapStageLevel(rune);
                        var list = new List <KeyValuePair <ParsedMapStageDetailLevelData, int> >();
                        list.AddRange(RewardInMapStageLevel);
                        ViewData["RewardInMapStageLevel"] = list.Distinct().ToArray();
                    }
                    {
                        var vr = Request.Cookies["vr"] ?? "";
                        if (!vr.Contains((char)(rune.RuneId + 1024)))
                        {
                            Response.Cookies.Append("vr", vr + ((char)(rune.RuneId + 1024)));
                            dbContext.PvCounter.Add(new PvCounter
                            {
                                Id   = Guid.NewGuid(),
                                Time = DateTime.Now,
                                Ip   = Request.HttpContext.Connection.RemoteIpAddress.ToString(),
                                Ua   = Request.Headers["User-Agent"],
                                Type = "rune",
                                Name = rune.RuneName,
                            });
                            var timeDelete = DateTime.Now.AddDays(-7);
                            dbContext.PvCounter.RemoveRange(dbContext.PvCounter.Where(m => m.Time < timeDelete));
                            dbContext.SaveChanges();
                        }
                    }
                    return(View(rune));
                }
            }
            catch (NeedVersionSelectedException)
            {
                return(View("Blank"));
            }
        }