protected JsonRotation(long skillID, List <AbstractCastEvent> skillCasts, Dictionary <string, JsonLog.SkillDesc> skillDesc) { if (!skillDesc.ContainsKey("s" + skillID)) { SkillItem skill = skillCasts.First().Skill; skillDesc["s" + skillID] = new JsonLog.SkillDesc(skill); } Id = skillID; Skills = skillCasts.Select(x => new JsonSkill(x)).ToList(); }
protected JsonDamageDist(long id, List <AbstractDamageEvent> list, ParsedLog log, Dictionary <string, JsonLog.SkillDesc> skillDesc, Dictionary <string, JsonLog.BuffDesc> buffDesc) { IndirectDamage = list.Exists(x => x is NonDirectDamageEvent); if (IndirectDamage) { if (!buffDesc.ContainsKey("b" + id)) { if (log.Buffs.BuffsByIds.TryGetValue(id, out Buff buff)) { buffDesc["b" + id] = new JsonLog.BuffDesc(buff); } else { SkillItem skill = list.First().Skill; var auxBoon = new Buff(skill.Name, id, skill.Icon); buffDesc["b" + id] = new JsonLog.BuffDesc(auxBoon); } } } else { if (!skillDesc.ContainsKey("s" + id)) { SkillItem skill = list.First().Skill; skillDesc["s" + id] = new JsonLog.SkillDesc(skill); } } Hits = list.Count; Id = id; Min = int.MaxValue; Max = int.MinValue; foreach (AbstractDamageEvent dmgEvt in list) { TotalDamage += dmgEvt.Damage; Min = Math.Min(Min, dmgEvt.Damage); Max = Math.Max(Max, dmgEvt.Damage); if (IndirectDamage) { Flank += dmgEvt.IsFlanking ? 1 : 0; Crit += dmgEvt.HasCrit ? 1 : 0; Glance += dmgEvt.HasGlanced ? 1 : 0; } ShieldDamage += dmgEvt.ShieldDamage; } }