Skip to content

Commit d2bcd89

Browse files
committed
Added ability to toggle phase parsing on and off in settings window
1 parent b965a82 commit d2bcd89

File tree

9 files changed

+96
-28
lines changed

9 files changed

+96
-28
lines changed

LuckParser/App.config

+3
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@
6464
<setting name="ShowEstimates" serializeAs="String">
6565
<value>False</value>
6666
</setting>
67+
<setting name="ParsePhases" serializeAs="String">
68+
<value>True</value>
69+
</setting>
6770
</LuckParser.Properties.Settings>
6871
</userSettings>
6972
</configuration>

LuckParser/Controllers/Controller1.cs

+20-16
Original file line numberDiff line numberDiff line change
@@ -714,7 +714,7 @@ private void CreateDPSGraph(StreamWriter sw, int phase_index)
714714
//Generate DPS graph
715715
sw.Write("<div id=\"DPSGraph"+ phase_index + "\" style=\"height: 600px;width:1200px; display:inline-block \"></div>");
716716
sw.Write("<script>");
717-
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data)[phase_index];
717+
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14])[phase_index];
718718
sw.Write("var data = [");
719719
int maxDPS = 0;
720720
List<Point> totalDpsAllPlayers = new List<Point>();
@@ -1233,7 +1233,7 @@ private void CreateCompTable(StreamWriter sw) {
12331233
/// <param name="fight_duration">Duration of the fight</param>
12341234
private void CreateDPSTable(StreamWriter sw, int phase_index) {
12351235
//generate dps table
1236-
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data)[phase_index];
1236+
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14])[phase_index];
12371237
sw.Write("<script> $(function () { $('#dps_table"+ phase_index + "').DataTable({ \"order\": [[4, \"desc\"]]});});</script>");
12381238
sw.Write("<table class=\"display table table-striped table-hover compact\" cellspacing=\"0\" width=\"100%\" id=\"dps_table" + phase_index + "\">");
12391239
{
@@ -1349,7 +1349,7 @@ private void CreateDPSTable(StreamWriter sw, int phase_index) {
13491349
/// <param name="fight_duration">Duration of the fight</param>
13501350
private void CreateDMGStatsTable(StreamWriter sw, int phase_index) {
13511351
//generate dmgstats table
1352-
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data)[phase_index];
1352+
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14])[phase_index];
13531353
sw.Write("<script> $(function () { $('#dmgstats_table"+ phase_index + "').DataTable({ \"order\": [[3, \"desc\"]]});});</script>");
13541354
sw.Write("<table class=\"display table table-striped table-hover compact\" cellspacing=\"0\" width=\"100%\" id=\"dmgstats_table"+ phase_index + "\">");
13551355
{
@@ -1480,7 +1480,7 @@ private void CreateDMGStatsTable(StreamWriter sw, int phase_index) {
14801480
/// <param name="fight_duration">Duration of the fight</param>
14811481
private void CreateDefTable(StreamWriter sw, int phase_index) {
14821482
//generate Tankstats table
1483-
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data)[phase_index];
1483+
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14])[phase_index];
14841484
sw.Write("<script> $(function () { $('#defstats_table"+ phase_index + "').DataTable({ \"order\": [[3, \"desc\"]]});});</script>");
14851485
sw.Write("<table class=\"display table table-striped table-hover compact\" cellspacing=\"0\" width=\"100%\" id=\"defstats_table"+ phase_index+"\">");
14861486
{
@@ -1670,7 +1670,7 @@ private void CreateSupTable(StreamWriter sw, int phase_index) {
16701670
/// <param name="table_id">id of the table</param>
16711671
private void CreateUptimeTable(StreamWriter sw, List<Boon> list_to_use, string table_id, int phase_index)
16721672
{
1673-
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data);
1673+
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14]);
16741674
//Generate Boon table------------------------------------------------------------------------------------------------
16751675
sw.Write("<script> $(function () { $('#" + table_id+ phase_index + "').DataTable({ \"order\": [[0, \"asc\"]]});});</script>");
16761676
List<List<string>> footList = new List<List<string>>();
@@ -1911,7 +1911,7 @@ private void CreateGenSquadTable(StreamWriter sw, List<Boon> list_to_use, string
19111911
/// <param name="settingsSnap">Settings to use</param>
19121912
private void CreatePlayerTab(StreamWriter sw, bool[] settingsSnap, int phase_index)
19131913
{
1914-
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data);
1914+
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14]);
19151915
PhaseData phase = phases[phase_index];
19161916
long start = phase.getStart() + boss_data.getFirstAware();
19171917
long end = phase.getEnd() + boss_data.getFirstAware();
@@ -2202,7 +2202,7 @@ private void CreatePlayerTab(StreamWriter sw, bool[] settingsSnap, int phase_ind
22022202
private void CreateSimpleRotationTab(StreamWriter sw,Player p,int simpleRotSize, int phase_index) {
22032203
if (SnapSettings[6])//Display rotation
22042204
{
2205-
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data)[phase_index];
2205+
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14])[phase_index];
22062206
List<CastLog> casting = p.getCastLogs(boss_data, combat_data.getCombatList(), agent_data, phase.getStart(), phase.getEnd());
22072207
GW2APISkill autoSkill = null;
22082208
int autosCount = 0;
@@ -2527,7 +2527,7 @@ private void CreateDMGDistTableBody(StreamWriter sw, bool toBoss, List<CastLog>
25272527
/// <param name="p">The player</param>
25282528
private void CreateDMGDistTable(StreamWriter sw, AbstractMasterPlayer p, bool toBoss, int phase_index)
25292529
{
2530-
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data)[phase_index];
2530+
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14])[phase_index];
25312531
List<CastLog> casting = p.getCastLogs(boss_data, combat_data.getCombatList(), agent_data, phase.getStart(), phase.getEnd());
25322532
List<DamageLog> damageLogs = p.getJustPlayerDamageLogs(toBoss ? boss_data.getInstid() : 0, boss_data, combat_data.getCombatList(), agent_data, phase.getStart(), phase.getEnd());
25332533
string finalDPSdata = HTMLHelper.getFinalDPS(boss_data, combat_data, agent_data, p, boss, phase_index);
@@ -2564,7 +2564,7 @@ private void CreateDMGDistTable(StreamWriter sw, AbstractMasterPlayer p, Minions
25642564
string finalDPSdata = HTMLHelper.getFinalDPS(boss_data, combat_data, agent_data, p, boss, phase_index);
25652565
int totalDamage = toBoss ? Int32.Parse(finalDPSdata.Split('|')[7]) : Int32.Parse(finalDPSdata.Split('|')[1]);
25662566
string tabid = p.getInstid() +"_"+phase_index + "_" + minions.getInstid() + (toBoss ? "_boss" : "");
2567-
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data)[phase_index];
2567+
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14])[phase_index];
25682568
List<CastLog> casting = minions.getCastLogs(boss_data, combat_data.getCombatList(), agent_data, phase.getStart(), phase.getEnd());
25692569
List<DamageLog> damageLogs = minions.getDamageLogs(toBoss ? boss_data.getInstid() : 0, boss_data, combat_data.getCombatList(), agent_data, phase.getStart(), phase.getEnd());
25702570
int finalTotalDamage = damageLogs.Count > 0 ? damageLogs.Sum(x => x.getDamage()) : 0;
@@ -2593,7 +2593,7 @@ private void CreateDMGDistTable(StreamWriter sw, AbstractMasterPlayer p, Minions
25932593
/// <param name="p">The player</param>
25942594
private void CreateDMGTakenDistTable(StreamWriter sw, Player p, int phase_index)
25952595
{
2596-
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data)[phase_index];
2596+
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14])[phase_index];
25972597
List<DamageLog> damageLogs = p.getDamageTakenLogs(boss_data, combat_data.getCombatList(), agent_data,mech_data, phase.getStart(), phase.getEnd());
25982598
List<SkillItem> s_list = skill_data.getSkillList();
25992599
int finalTotalDamage = damageLogs.Count > 0 ? damageLogs.Sum(x => x.getDamage()) : 0;
@@ -2736,7 +2736,7 @@ private void CreateDMGTakenDistTable(StreamWriter sw, Player p, int phase_index)
27362736
/// <param name="sw">Stream writer</param>
27372737
private void CreateMechanicTable(StreamWriter sw, int phase_index) {
27382738
Dictionary<string,List<Mechanic>> presMech = new Dictionary<string, List<Mechanic>>();
2739-
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data)[phase_index];
2739+
PhaseData phase = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14])[phase_index];
27402740
foreach (Mechanic item in mech_data.GetMechList(boss_data.getID()))
27412741
{
27422742
if (mech_data.GetMDataLogs().FirstOrDefault(x => x.GetSkill() == item.GetSkill()) != null)
@@ -2960,7 +2960,7 @@ private void CreateCondiUptimeTable(StreamWriter sw,Boss boss, int phase_index)
29602960
private void CreateBossSummary(StreamWriter sw, int phase_index)
29612961
{
29622962
//generate Player list Graphs
2963-
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data);
2963+
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14]);
29642964
PhaseData phase = phases[phase_index];
29652965
List<CastLog> casting = boss.getCastLogsActDur(boss_data, combat_data.getCombatList(), agent_data, phase.getStart(), phase.getEnd());
29662966
List<SkillItem> s_list = skill_data.getSkillList();
@@ -3151,6 +3151,7 @@ public void CreateHTML(StreamWriter sw, bool[] settingsSnap)
31513151
{
31523152

31533153
SnapSettings = settingsSnap;
3154+
HTMLHelper.SnapSettings = settingsSnap;
31543155
double fight_duration = (boss_data.getAwareDuration()) / 1000.0;
31553156
TimeSpan duration = TimeSpan.FromSeconds(fight_duration);
31563157
string durationString = duration.ToString("mm") + "m " + duration.ToString("ss") + "s";
@@ -3160,7 +3161,7 @@ public void CreateHTML(StreamWriter sw, bool[] settingsSnap)
31603161
}
31613162
string bossname = FilterStringChars(boss_data.getName());
31623163
setPresentBoons(settingsSnap);
3163-
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data);
3164+
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data,SnapSettings[14]);
31643165
// HTML STARTS
31653166
sw.Write("<!DOCTYPE html><html lang=\"en\">");
31663167
{
@@ -3617,11 +3618,13 @@ public void CreateHTML(StreamWriter sw, bool[] settingsSnap)
36173618
}
36183619
public void CreateSoloHTML(StreamWriter sw, bool[] settingsSnap)
36193620
{
3620-
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data);
3621+
List<PhaseData> phases = boss.getPhases(boss_data, combat_data.getCombatList(), agent_data, SnapSettings[14]);
36213622
double fight_duration = (boss_data.getAwareDuration()) / 1000.0;
36223623
Player p = p_list[0];
36233624
List<CastLog> casting = p.getCastLogsActDur(boss_data, combat_data.getCombatList(), agent_data, 0, boss_data.getAwareDuration());
36243625
List<SkillItem> s_list = skill_data.getSkillList();
3626+
SnapSettings = settingsSnap;
3627+
HTMLHelper.SnapSettings = settingsSnap;
36253628

36263629
CreateDPSTable(sw, 0);
36273630
CreateDMGStatsTable(sw, 0);
@@ -3746,12 +3749,13 @@ public void CreateSoloHTML(StreamWriter sw, bool[] settingsSnap)
37463749
sw.Write("</div>");
37473750
}
37483751
//Creating CSV---------------------------------------------------------------------------------
3749-
public void CreateCSV(StreamWriter sw,String delimiter)
3752+
public void CreateCSV(StreamWriter sw,String delimiter, bool[] settingsSnap)
37503753
{
37513754
double fight_duration = (boss_data.getAwareDuration()) / 1000.0;
37523755
TimeSpan duration = TimeSpan.FromSeconds(fight_duration);
37533756
String durationString = duration.ToString("mm") +":" + duration.ToString("ss") ;
3754-
3757+
SnapSettings = settingsSnap;
3758+
HTMLHelper.SnapSettings = settingsSnap;
37553759
sw.Write("Group" + delimiter +
37563760
"Class" + delimiter +
37573761
"Character" + delimiter +

LuckParser/Controllers/HTMLHelper.cs

+11-9
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ namespace LuckParser.Controllers
1010
{
1111
class HTMLHelper
1212
{
13-
13+
14+
public static bool[] SnapSettings;
15+
1416
public static string getFinalDPS(BossData b_data, CombatData c_data, AgentData a_data, AbstractPlayer p, Boss boss, int phase_index)
1517
{
1618
int totalboss_dps = 0;
@@ -25,7 +27,7 @@ public static string getFinalDPS(BossData b_data, CombatData c_data, AgentData a
2527
int totalAllcondi_damage = 0;
2628
int totalAllphys_dps = 0;
2729
int totalAllphys_damage = 0;
28-
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data)[phase_index];
30+
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data, SnapSettings[14])[phase_index];
2931
double fight_duration = (phase.getDuration()) / 1000.0;
3032

3133
double damage = 0.0;
@@ -87,7 +89,7 @@ public static string getFinalDPS(BossData b_data, CombatData c_data, AgentData a
8789
public static string[] getFinalStats(BossData b_data, CombatData c_data, AgentData a_data, Player p, Boss boss, int phase_index)
8890
{
8991
String[] statsArray;
90-
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data)[phase_index];
92+
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data, SnapSettings[14])[phase_index];
9193
long start = phase.getStart() + b_data.getFirstAware();
9294
long end = phase.getEnd() + b_data.getFirstAware();
9395
List<DamageLog> damage_logs = p.getDamageLogs(0, b_data, c_data.getCombatList(), a_data, phase.getStart(), phase.getEnd());
@@ -235,7 +237,7 @@ public static string[] getFinalStats(BossData b_data, CombatData c_data, AgentDa
235237
}
236238
public static string[] getFinalDefenses(BossData b_data, CombatData c_data, AgentData a_data, MechanicData m_data, Player p, Boss boss, int phase_index)
237239
{
238-
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data)[phase_index];
240+
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data, SnapSettings[14])[phase_index];
239241
long start = phase.getStart() + b_data.getFirstAware();
240242
long end = phase.getEnd() + b_data.getFirstAware();
241243
List<DamageLog> damage_logs = p.getDamageTakenLogs(b_data, c_data.getCombatList(), a_data, m_data, phase.getStart(), phase.getEnd());
@@ -295,7 +297,7 @@ public static string[] getFinalDefenses(BossData b_data, CombatData c_data, Agen
295297
//(currently not correct)
296298
public static string[] getFinalSupport(BossData b_data, CombatData c_data, AgentData a_data, Player p, Boss boss, int phase_index)
297299
{
298-
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data)[phase_index];
300+
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data, SnapSettings[14])[phase_index];
299301
long start = phase.getStart() + b_data.getFirstAware();
300302
long end = phase.getEnd() + b_data.getFirstAware();
301303
// List<DamageLog> damage_logs = p.getDamageTakenLogs(b_data, c_data.getCombatList(), getAgentData());
@@ -318,7 +320,7 @@ public static string[] getFinalSupport(BossData b_data, CombatData c_data, Agent
318320
}
319321
public static Dictionary<int, string> getfinalboons(BossData b_data, CombatData c_data, SkillData s_data, AgentData a_data, Boss boss, Player p, int phase_index)
320322
{
321-
List<PhaseData> phases = boss.getPhases(b_data, c_data.getCombatList(), a_data);
323+
List<PhaseData> phases = boss.getPhases(b_data, c_data.getCombatList(), a_data, SnapSettings[14]);
322324
BoonDistribution boon_distrib = p.getBoonDistribution(b_data, s_data, c_data.getCombatList(), phases, phase_index);
323325
Dictionary<int, string> rates = new Dictionary<int, string>();
324326
long fight_duration = phases[phase_index].getEnd() - phases[phase_index].getStart();
@@ -347,7 +349,7 @@ public static Dictionary<int, string> getfinalboons(BossData b_data, CombatData
347349
{
348350
return getfinalboons(b_data, c_data, s_data, a_data, boss, p, phase_index);
349351
}
350-
List<PhaseData> phases = boss.getPhases(b_data, c_data.getCombatList(), a_data);
352+
List<PhaseData> phases = boss.getPhases(b_data, c_data.getCombatList(), a_data, SnapSettings[14]);
351353
long fight_duration = phases[phase_index].getDuration();
352354
Dictionary<Player, BoonDistribution> boon_logsDist = new Dictionary<Player, BoonDistribution>();
353355
foreach (Player player in trgetPlayers)
@@ -394,7 +396,7 @@ public static Dictionary<int, string> getfinalboons(BossData b_data, CombatData
394396
}
395397
public static Dictionary<int, string> getfinalcondis(BossData b_data, CombatData c_data, SkillData s_data, AgentData a_data, Boss boss, AbstractPlayer p, int phase_index)
396398
{
397-
List<PhaseData> phases = boss.getPhases(b_data, c_data.getCombatList(), a_data);
399+
List<PhaseData> phases = boss.getPhases(b_data, c_data.getCombatList(), a_data, SnapSettings[14]);
398400
BoonDistribution boon_distrib = p.getBoonDistribution(b_data, s_data, c_data.getCombatList(),phases, phase_index);
399401
Dictionary<int, string> rates = new Dictionary<int, string>();
400402
PhaseData phase = phases[phase_index];
@@ -429,7 +431,7 @@ public static List<Point> getDPSGraph(BossData b_data, CombatData c_data, AgentD
429431
}
430432

431433
List<Point> dmgList = new List<Point>();
432-
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data)[phase_index];
434+
PhaseData phase = boss.getPhases(b_data, c_data.getCombatList(), a_data, SnapSettings[14])[phase_index];
433435
List<DamageLog> damage_logs = p.getDamageLogs(dstid, b_data, c_data.getCombatList(), a_data, phase.getStart(), phase.getEnd());
434436
// fill the graph, full precision
435437
List<double> dmgListFull = new List<double>();

LuckParser/MainForm.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,8 @@ void m_DoWork(Logger logger, Cancellation cancel, DoWorkEventArgs e)
163163
Properties.Settings.Default.SimpleRotation,
164164
Properties.Settings.Default.ShowAutos,
165165
Properties.Settings.Default.LargeRotIcons,
166-
Properties.Settings.Default.ShowEstimates
166+
Properties.Settings.Default.ShowEstimates,
167+
Properties.Settings.Default.ParsePhases
167168
};
168169
for (int i = 0; i < lvFileList.Items.Count; i++)
169170
{
@@ -224,7 +225,7 @@ void m_DoWork(Logger logger, Cancellation cancel, DoWorkEventArgs e)
224225
}
225226
else
226227
{
227-
control.CreateCSV(sw, ",");
228+
control.CreateCSV(sw, ",",settingsSnap);
228229
}
229230
}
230231
}

0 commit comments

Comments
 (0)