Ejemplo n.º 1
0
        /// <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]);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 获取卡牌所有召唤物
 /// </summary>
 public ParsedCardData[] CardData_GetAllSummoneeCards(ParsedCardData card)
 {
     if (!CardData_AllSummoneeCards.ContainsKey(card))
     {
         CardData_InitCardRelationLists();
     }
     return(CardData_AllSummoneeCards[card]);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 获取卡牌所有技能
 /// </summary>
 public ParsedSkillData[] CardData_GetAllSkills(ParsedCardData card)
 {
     if (!CardData_AllSkills.ContainsKey(card))
     {
         CardData_InitSkillRelationLists();
     }
     return(CardData_AllSkills[card]);
 }
Ejemplo n.º 5
0
 /// <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]);
 }