コード例 #1
0
        // GET: EnergyAbilities
        public async Task <IActionResult> Index()
        {
            var energyAbility = from ee in _context.EnergyAbility select ee;

            energyAbility = energyAbility.Where(m => m.user_id == User.Identity.Name);

            List <EnergyAbility> e = await energyAbility.OrderBy(m => m.create_time).AsNoTracking().ToListAsync();

            var lastEnergy = await _context.EnergyAbility.OrderBy(m => m.create_time).LastOrDefaultAsync(m => m.user_id == User.Identity.Name);

            EnergyList energyList = new EnergyList();

            energyList.lastlist = lastEnergy;
            energyList.list     = e;

            foreach (var x in e)
            {
                energyList.timelist.Add(x.create_time.ToString("MM-dd"));
            }

            return(View(energyList));
        }
コード例 #2
0
        private void InitReportData(List <FightResult> iterationFightResults)
        {
            nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone();
            nfi.NumberGroupSeparator = " ";

            decimal   lastChangeTimeStamp = 0;
            const int interval            = 2; // Can't go higher due to inconsistent line-values.

            foreach (var iteration in iterationFightResults)
            {
                _oneBuilder.Clear();
                TotalDamage += iteration.TotalDamage;
                TotalHits   += iteration.TotalHits;
                TotalCrits  += iteration.TotalCrits;
                if (iteration.Dps > HighestDps)
                {
                    HighestDps = iteration.Dps;
                }
                if (iteration.Dps < LowestDps)
                {
                    LowestDps = iteration.Dps;
                }

                foreach (var rr in iteration.RoundResults)
                {
                    if (lastChangeTimeStamp == 0 || lastChangeTimeStamp + interval < rr.TimeSec)
                    {
                        EnergyList.Add(new EnergySnap
                        {
                            Time      = rr.TimeSec,
                            Primary   = rr.PrimaryEnergyEnd,
                            Secondary = rr.SecondaryEnergyEnd,
                            Pgimmick  = rr.PrimaryGimmickEnd,
                            Sgimmick  = rr.SecondaryGimmickEnd
                        });

                        lastChangeTimeStamp = rr.TimeSec;
                    }

                    foreach (var a in rr.Attacks)
                    {
                        if (a.IsHit && a.IsCrit)
                        {
                            _oneBuilder.AppendLine($"<div>[{rr.TimeSec.ToString("#,0.0s", nfi)}] " +
                                                   $"{a.Spell.Name} *{a.Damage.ToString("#,##0,.0K", nfi)}* " +
                                                   $"E({rr.PrimaryEnergyEnd}/{rr.SecondaryEnergyEnd}) " +
                                                   $"R({rr.PrimaryGimmickEnd}/{rr.SecondaryGimmickEnd})</div>");
                        }
                        else if (a.IsHit && a.Spell.SpellType != SpellType.Procc)
                        {
                            _oneBuilder.AppendLine($"<div>[{rr.TimeSec.ToString("#,0.0s", nfi)}] " +
                                                   $"{a.Spell.Name} {a.Damage.ToString("#,##0,.0K", nfi)} " +
                                                   $"E({rr.PrimaryEnergyEnd}/{rr.SecondaryEnergyEnd}) " +
                                                   $"R({rr.PrimaryGimmickEnd}/{rr.SecondaryGimmickEnd})</div>");
                        }
                        else if (a.IsHit && a.Spell.SpellType == SpellType.Procc)
                        {
                            _oneBuilder.AppendLine($"<div>[{rr.TimeSec.ToString("#,0.0s", nfi)}] " +
                                                   $"[{a.Spell.Name}] proc!</div>");
                        }

                        _allSpellCast.Add(a);

                        if (_distinctSpellCast.All(s => s.Name != a.Spell.Name))
                        {
                            _distinctSpellCast.Add(a.Spell);
                        }
                    }

                    foreach (var buff in rr.Buffs)
                    {
                        if (_distinctBuffs.All(b => b.Name != buff.Name))
                        {
                            _distinctBuffs.Add(buff);
                        }
                    }
                }
            }

            _oneBuilder.AppendLine("\r\nOutput format:" +
                                   "\r\n#1 Elapsed time in Seconds" +
                                   "\r\n#2 Spellname + Damage" +
                                   "\r\n#3 Primary/Secondary Energy/Resource(Weapon)");
        }