forked from gardenappl/BossExpertise
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExpertPlayer.cs
66 lines (61 loc) · 1.45 KB
/
ExpertPlayer.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
using Terraria;
using Terraria.ModLoader;
namespace BossExpertise
{
public class ExpertPlayer : ModPlayer
{
public override void Load()
{
On.Terraria.Player.IsAValidEquipmentSlotForIteration += HookIsAValidEquipmentSlotForIteration;
}
public override void Unload()
{
On.Terraria.Player.IsAValidEquipmentSlotForIteration -= HookIsAValidEquipmentSlotForIteration;
}
private static bool HookIsAValidEquipmentSlotForIteration(On.Terraria.Player.orig_IsAValidEquipmentSlotForIteration orig, Player self, int slot)
{
if (slot < 10)
{
if (slot == 8)
{
goto DemonHeartSlot;
}
if (slot == 9)
{
goto MasterModeSlot;
}
}
else
{
if (slot == 18)
{
goto DemonHeartSlot;
}
if (slot == 19)
{
goto MasterModeSlot;
}
}
return true;
DemonHeartSlot:
bool result = self.extraAccessory;
bool cantUseExpertModeSlot = (!Main.expertMode && !(BossExpertise.CurrentDifficulty > 0 && ModContent.GetInstance<Config>().SlotsWorksInNormal)) && !Main.gameMenu;
if (cantUseExpertModeSlot)
{
result = false;
}
return result;
MasterModeSlot:
result = true;
bool cantUseMasterModeSlot = (!Main.masterMode && !(BossExpertise.CurrentDifficulty > 1 && ModContent.GetInstance<Config>().SlotsWorksInNormal)) && !Main.gameMenu;
if (cantUseMasterModeSlot)
{
result = false;
}
return result;
orig(self, slot);
}
}
}