-
Notifications
You must be signed in to change notification settings - Fork 1
/
EndlessPlayer.cs
69 lines (62 loc) · 2.23 KB
/
EndlessPlayer.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
67
68
69
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.ModLoader.IO;
using static Terraria.ModLoader.ModContent;
namespace TrueEndless
{
class EndlessPlayer : ModPlayer
{
public bool infinity = false;
public bool usedInfinity = false;
private readonly EndlessConfigServer cfgs = GetInstance<EndlessConfigServer>();
private readonly EndlessItem eI = GetInstance<EndlessItem>();
public bool HasInfinity => infinity || (cfgs.StartEnaled && !usedInfinity);
// saves infinity and usedInfinity variables
public override TagCompound Save()
{
return new TagCompound
{
{"infinityItems", infinity},
{"usedInfinity", usedInfinity}
};
}
// loads infinity and usedInfinity variables
public override void Load(TagCompound tag)
{
infinity = tag.GetBool("infinityItems");
usedInfinity = tag.GetBool("usedInfinity");
}
// applies endless buff potions in piggy bank and co. if enabled in the config
public override void PreUpdateBuffs()
{
if (cfgs.PiggyBankPotions)
{
foreach (Item item in player.bank.item) // piggy bank
{
EndlessPotion(item);
}
foreach (Item item in player.bank2.item) // safe
{
EndlessPotion(item);
}
foreach (Item item in player.bank3.item) // defender forge
{
EndlessPotion(item);
}
}
}
// if an item is an endless potion, applies its effect
public void EndlessPotion(Item item)
{
if (HasInfinity && !eI.IsntEndlessSpecific(item) && eI.IsEndlessPotion(item))
{
player.AddBuff(item.buffType, 2);
}
}
public override bool ConsumeAmmo(Item weapon, Item ammo)
{
return !(HasInfinity && !eI.IsntEndlessSpecific(ammo) && (eI.IsEndlessAmmo(ammo) || eI.IsEndlessSpecific(ammo)));
}
}
}