-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathLiveSplit.LostJudgment.asl
141 lines (124 loc) · 5 KB
/
LiveSplit.LostJudgment.asl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
state("LostJudgment", "Steam 1.11")
{
bool Loads: 0x4322CE0, 0x310, 0x544;
bool CutsceneLoads: 0x5313844;
bool Crafting: 0x5340E84;
int Autostart: 0x041F0D88, 0x8, 0x6F8, 0x170, 0x58, 0x0, 0xA2C;
int QTE: 0x041F0D88, 0x8, 0xF68, 0xA8, 0x8;
int QTE2: 0x03EFD538, 0x148, 0x460, 0x2B8, 0x58, 0x94;
int BossHealth: 0x03B6ABB8, 0x110, 0x48, 0x0, 0x8, 0x10, 0x180;
string255 Chapter: 0x03F12E30, 0x1A8, 0x60, 0x4D0, 0xDD0;
}
state("LostJudgment", "Steam 1.12")
{
bool Loads: 0x4322CE0, 0x310, 0x544;
bool CutsceneLoads: 0x5313844;
bool Crafting: 0x5340E84;
int Autostart: 0x041F0D88, 0x8, 0x6F8, 0x170, 0x58, 0x0, 0xA2C;
int QTE: 0x041F0D88, 0x8, 0xF68, 0xA8, 0x8;
int QTE2: 0x03EFD538, 0x148, 0x460, 0x2B8, 0x58, 0x94;
int BossHealth: 0x03B6ABB8, 0x110, 0x48, 0x0, 0x8, 0x10, 0x180;
string255 Chapter: 0x03F12E30, 0x1A8, 0x60, 0x4D0, 0xDD0;
}
init
{
print(modules.First().ModuleMemorySize.ToString());
vars.Splits = new HashSet<string>();
vars.QTEs = 0;
switch(modules.First().ModuleMemorySize)
{
case 77086720:
version = "Steam 1.0";
break;
case 472219648:
version = "Steam 1.11";
break;
case 451444736:
version = "Steam 1.12";
break;
}
}
startup
{
settings.Add("LJ", true, "Lost Judgment");
settings.Add("ia\\data\\auth\\a01_070.par", false, "Prologue", "LJ");
settings.Add("c02_chapter_sequence.par", false, "Chapter 01: Black Sheep", "LJ");
settings.Add("c03_chapter_sequence.par", false, "Chapter 02: Vicious Cycle", "LJ");
settings.Add("c04_chapter_sequence.par", false, "Chapter 03: Two Sides of the Same Coin", "LJ");
settings.Add("c05_chapter_sequence.par", false, "Chapter 04: Red Knife", "LJ");
settings.Add("c06_chapter_sequence.par", false, "Chapter 05: Double Jeopardy", "LJ");
settings.Add("c07_chapter_sequence.par", false, "Chapter 06: Converging Heat", "LJ");
settings.Add("c08_chapter_sequence.par", false, "Chapter 07: Blindsided", "LJ");
settings.Add("c09_chapter_sequence.par", false, "Chapter 08: Phantom of Ijincho", "LJ");
settings.Add("c10_chapter_sequence.par", false, "Chapter 09: The Weight of Guilt", "LJ");
settings.Add("c11_chapter_sequence.par", false, "Chapter 10: Catch a Tiger", "LJ");
settings.Add("c12_chapter_sequence.par", false, "Chapter 11: Undercover", "LJ");
settings.Add("c13_chapter_sequence.par", false, "Chapter 12: To Nourish a Viper", "LJ");
settings.Add("end", false, "Final Chapter: Darkest Before the Dawn", "LJ");
settings.Add("KF", true, "The Kaito Files");
settings.Add("th_dlc\\dlc_p02_00100.par", false, "Chapter 01: What Goes Around", "KF");
settings.Add("th_dlc\\dlc_p03_00100.par", false, "Chapter 02: Like Father, Like Son", "KF");
settings.Add("th_dlc\\dlc_p04_00100.par", false, "Chapter 03: Out for Blood", "KF");
settings.Add("dlcend", false, "Chapter 04: Cat & Mouse", "KF");
if (timer.CurrentTimingMethod == TimingMethod.RealTime)
{
var timingMessage = MessageBox.Show (
"This game uses Time without Loads (Game Time) as the main timing method.\n"+
"LiveSplit is currently set to show Real Time (RTA).\n"+
"Would you like to set the timing method to Game Time?",
"LiveSplit | Lost Judgment",
MessageBoxButtons.YesNo, MessageBoxIcon.Question
);
if (timingMessage == DialogResult.Yes)
timer.CurrentTimingMethod = TimingMethod.GameTime;
}
}
update
{
if (current.Chapter == "\\jh80710_dlc_shi_hit.par" && current.QTE == 0 && old.QTE == 1)
{
vars.QTEs++;
}
}
isLoading
{
return current.Loads && !current.Crafting || current.CutsceneLoads;
}
//Autostarts after the autosave information prompt
start
{
return current.Autostart == 1 && old.Autostart != 1;
}
split
{
//Splits after each end of chapter save screen, on the story summary
if (current.Chapter != old.Chapter && (!vars.Splits.Contains(current.Chapter)))
{
vars.Splits.Add(current.Chapter);
return settings[current.Chapter.Substring(current.Chapter.Length - 24)];
}
//Splits on the final Kuwana QTE
if (current.Chapter.EndsWith("\\jh80670_c13_kwn_last.par") && current.QTE2 == 0 && old.QTE2 > 0 && !vars.Splits.Contains("end"))
{
vars.Splits.Add("end");
return settings["end"];
}
//Splits on the final Shirakaba QTE
if (current.Chapter.EndsWith("\\jh80710_dlc_shi_hit.par") && vars.QTEs > 3 && !vars.Splits.Contains("dlcend"))
{
vars.Splits.Add("dlcend");
return settings["dlcend"];
}
}
onStart
{
vars.Splits.Clear();
vars.QTEs = 0;
timer.IsGameTimePaused = true;
}
exit
{
timer.IsGameTimePaused = true;
vars.Splits.Clear();
vars.QTEs = 0;
}