private static Log CreateLog(int start, int end, List <Player> PlayerList, EncounterData encounter, string append) { try { Log Log = new Log(); Log.successLevel = SuccessLevelEnum.GetByCode(encounter.GetEncounterSuccessLevel()).Name; Log.startTime = encounter.StartTime.TimeOfDay.ToString() + " " + append; Log.duration = encounter.Duration.ToString(); Log.maxHit = ValidateAndFill("MaxHitParty", encounter.GetMaxHit(false)); Log.totalHealing = ValidateAndFill("TotalHealing", encounter.Healed.ToString()); Log.targetName = encounter.GetStrongestEnemy(null); Log.mapName = ValidateAndFill("MapName", encounter.ZoneName); Log.sortBy = PluginSettings.GetSetting <string>("SortBy"); PlayerList.Where(Player => Player.number >= start && Player.number <= end).ToList().ForEach(Player => { Log.players.Add(Player); }); if (Log.players.Count > 0) { return(Log); } else { return(null); } } catch (Exception e) { return(null); } }
public static Log ACTEncounterToModel(EncounterData encounter) { Log Log = new Log(); Log.successLevel = SuccessLevelEnum.GetByCode(encounter.GetEncounterSuccessLevel()).Name; Log.startTime = encounter.StartTime.TimeOfDay.ToString(); Log.duration = encounter.Duration.ToString(); Log.maxHit = ValidateAndFill("MaxHitParty", encounter.GetMaxHit(false)); Log.totalHealing = ValidateAndFill("TotalHealing", encounter.Healed.ToString()); Log.targetName = encounter.GetStrongestEnemy(null); Log.mapName = ValidateAndFill("MapName", encounter.ZoneName); Log.sortBy = PluginSettings.GetSetting <string>("SortBy"); encounter.GetAllies().ForEach(combatant => { Player Player = new Player(); if (IsLimitBreak(combatant.Name)) { Player.playerName = combatant.Name; Player.maxHit = combatant.GetMaxHit(true); Log.players.Add(Player); } else if (!IsLimitBreak(combatant.Name) && GetCustomColumnData(combatant, "Job") != "") { Player.playerJob = GetCustomColumnData(combatant, "Job").ToUpper(); Player.playerName = FormatName(combatant.Name); Player.damagePercentage = ValidateAndFill("DamagePerc", combatant.DamagePercent); Player.dps = Math.Round(combatant.EncDPS).ToString(); Player.maxHit = FormatSkill(ValidateAndFill("MaxHitIndividual", combatant.GetMaxHit(true))); Player.healingPercentage = ValidateAndFill("HealingPerc", combatant.HealedPercent); Player.hps = ValidateAndFill("HPS", Math.Round(combatant.EncHPS).ToString()); Player.maxHeal = FormatSkill(ValidateAndFill("MaxHeal", combatant.GetMaxHeal(true, false))); Player.overhealPercentage = ValidateAndFill("OverHealPerc", GetCustomColumnData(combatant, "OverHealPct")); Player.deaths = ValidateAndFill("Deaths", combatant.Deaths.ToString()); Player.crit = ValidateAndFill("Crit", Math.Round(combatant.CritDamPerc).ToString()); Player.dh = ValidateAndFill("DirectHit", GetCustomColumnData(combatant, "DirectHitPct")); Player.dhCrit = ValidateAndFill("DirectHitCrit", GetCustomColumnData(combatant, "CritDirectHitPct")); Player.critHealPercentage = ValidateAndFill("CritHealPerc", Math.Round(combatant.CritHealPerc).ToString()); Log.players.Add(Player); } }); if (Log.players.Count == 0 || Log.duration == "00:00:00") { return(null); } return(Log); }
// Needed to import this code to allow a setup from a blank state instead of the default state. // Blank state setup is the only way to enable the plugin when switching from some other plugin // that changed the default state. private string EncounterFormatSwitch(EncounterData Data, List<CombatantData> SelectiveAllies, string VarName, string Extra) { long damage = 0; long healed = 0; int swings = 0; int hits = 0; int crits = 0; int heals = 0; int critheals = 0; int cures = 0; int misses = 0; int hitfail = 0; float tohit = 0; double dps = 0; double hps = 0; long healstaken = 0; long damagetaken = 0; long powerdrain = 0; long powerheal = 0; int kills = 0; int deaths = 0; switch (VarName) { case "maxheal": return Data.GetMaxHeal(true, false); case "MAXHEAL": return Data.GetMaxHeal(false, false); case "maxhealward": return Data.GetMaxHeal(true, true); case "MAXHEALWARD": return Data.GetMaxHeal(false, true); case "maxhit": return Data.GetMaxHit(true); case "MAXHIT": return Data.GetMaxHit(false); case "duration": return Data.DurationS; case "DURATION": return Data.Duration.TotalSeconds.ToString("0"); case "damage": foreach (CombatantData cd in SelectiveAllies) damage += cd.Damage; return damage.ToString(); case "damage-m": foreach (CombatantData cd in SelectiveAllies) damage += cd.Damage; return (damage / 1000000.0).ToString("0.00"); case "DAMAGE-k": foreach (CombatantData cd in SelectiveAllies) damage += cd.Damage; return (damage / 1000.0).ToString("0"); case "DAMAGE-m": foreach (CombatantData cd in SelectiveAllies) damage += cd.Damage; return (damage / 1000000.0).ToString("0"); case "healed": foreach (CombatantData cd in SelectiveAllies) healed += cd.Healed; return healed.ToString(); case "swings": foreach (CombatantData cd in SelectiveAllies) swings += cd.Swings; return swings.ToString(); case "hits": foreach (CombatantData cd in SelectiveAllies) hits += cd.Hits; return hits.ToString(); case "crithits": foreach (CombatantData cd in SelectiveAllies) crits += cd.CritHits; return crits.ToString(); case "crithit%": foreach (CombatantData cd in SelectiveAllies) crits += cd.CritHits; foreach (CombatantData cd in SelectiveAllies) hits += cd.Hits; float critdamperc = (float)crits / (float)hits; return critdamperc.ToString("0'%"); case "heals": foreach (CombatantData cd in SelectiveAllies) heals += cd.Heals; return heals.ToString(); case "critheals": foreach (CombatantData cd in SelectiveAllies) critheals += cd.CritHits; return critheals.ToString(); case "critheal%": foreach (CombatantData cd in SelectiveAllies) critheals += cd.CritHeals; foreach (CombatantData cd in SelectiveAllies) heals += cd.Heals; float crithealperc = (float)critheals / (float)heals; return crithealperc.ToString("0'%"); case "cures": foreach (CombatantData cd in SelectiveAllies) cures += cd.CureDispels; return cures.ToString(); case "misses": foreach (CombatantData cd in SelectiveAllies) misses += cd.Misses; return misses.ToString(); case "hitfailed": foreach (CombatantData cd in SelectiveAllies) hitfail += cd.Blocked; return hitfail.ToString(); case "TOHIT": foreach (CombatantData cd in SelectiveAllies) tohit += cd.ToHit; tohit /= SelectiveAllies.Count; return tohit.ToString("0"); case "DPS": case "ENCDPS": foreach (CombatantData cd in SelectiveAllies) damage += cd.Damage; dps = damage / Data.Duration.TotalSeconds; return dps.ToString("0"); case "DPS-k": case "ENCDPS-k": foreach (CombatantData cd in SelectiveAllies) damage += cd.Damage; dps = damage / Data.Duration.TotalSeconds; return (dps / 1000.0).ToString("0"); case "ENCHPS": foreach (CombatantData cd in SelectiveAllies) healed += cd.Healed; hps = healed / Data.Duration.TotalSeconds; return hps.ToString("0"); case "ENCHPS-k": foreach (CombatantData cd in SelectiveAllies) healed += cd.Healed; hps = healed / Data.Duration.TotalSeconds; return (hps / 1000.0).ToString("0"); case "tohit": foreach (CombatantData cd in SelectiveAllies) tohit += cd.ToHit; tohit /= SelectiveAllies.Count; return tohit.ToString("F"); case "dps": case "encdps": foreach (CombatantData cd in SelectiveAllies) damage += cd.Damage; dps = damage / Data.Duration.TotalSeconds; return dps.ToString("F"); case "dps-k": case "encdps-k": foreach (CombatantData cd in SelectiveAllies) damage += cd.Damage; dps = damage / Data.Duration.TotalSeconds; return (dps / 1000.0).ToString("F"); case "enchps": foreach (CombatantData cd in SelectiveAllies) healed += cd.Healed; hps = healed / Data.Duration.TotalSeconds; return hps.ToString("F"); case "enchps-k": foreach (CombatantData cd in SelectiveAllies) healed += cd.Healed; hps = healed / Data.Duration.TotalSeconds; return (hps / 1000.0).ToString("F"); case "healstaken": foreach (CombatantData cd in SelectiveAllies) healstaken += cd.HealsTaken; return healstaken.ToString(); case "damagetaken": foreach (CombatantData cd in SelectiveAllies) damagetaken += cd.DamageTaken; return damagetaken.ToString(); case "powerdrain": foreach (CombatantData cd in SelectiveAllies) powerdrain += cd.PowerDamage; return powerdrain.ToString(); case "powerheal": foreach (CombatantData cd in SelectiveAllies) powerheal += cd.PowerReplenish; return powerheal.ToString(); case "kills": foreach (CombatantData cd in SelectiveAllies) kills += cd.Kills; return kills.ToString(); case "deaths": foreach (CombatantData cd in SelectiveAllies) deaths += cd.Deaths; return deaths.ToString(); case "title": return Data.Title; default: return VarName; } }