-
Notifications
You must be signed in to change notification settings - Fork 0
/
DialogueSystem.cs
51 lines (47 loc) · 1.42 KB
/
DialogueSystem.cs
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
using MonoMod;
#pragma warning disable CS0626, CS0414
namespace Pepperoni.Patches
{
[MonoModPatch("global::DialogueSystem")]
class DialogueSystem : global::DialogueSystem
{
[MonoModIgnore] private bool SetCostumePortraits;
private portrait[] noidPortraits;
private extern void orig_Start();
private void Start()
{
noidPortraits = new portrait[5];
for (int k = 0; k < 4; k++)
{
noidPortraits[k] = Portraits[k];
}
// eye blink?
noidPortraits[4] = Portraits[7];
orig_Start();
}
private extern void orig_ParseScriptFile(string Text);
private void ParseScriptFile(string Text)
{
Text = ModHooks.Instance.OnParseScript(Text);
orig_ParseScriptFile(Text);
}
/// <summary>
/// Should be invoked if the mod changes character type to update the dialogue portrait
/// </summary>
public void UpdateCostumePortrait()
{
if (PlayerMachine.CurrentCostume == Costumes.Default)
{
for (int k = 0; k < 4; k++)
{
Portraits[k] = noidPortraits[k];
}
Portraits[7] = noidPortraits[4];
}
else
{
SetCostumePortraits = false;
}
}
}
}