This repository has been archived by the owner on Jul 5, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChallengeRunesPlayer.cs
78 lines (75 loc) · 2.86 KB
/
ChallengeRunesPlayer.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
70
71
72
73
74
75
76
77
78
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.DataStructures;
using Terraria.ID;
using Terraria.ModLoader;
namespace ChallengeRunes
{
public class ChallengeRunesPlayer : ModPlayer
{
public override bool PreHurt(bool pvp, bool quiet, ref int damage, ref int hitDirection, ref bool crit, ref bool customDamage, ref bool playSound, ref bool genGore, ref PlayerDeathReason damageSource)
{
bool armageddon = ChallengeRunes.CheckRune(player, "armageddon");
bool defiled = ChallengeRunes.CheckRune(player, "defiled");
if (armageddon)
{
foreach (NPC npc in Main.npc)
{
if (npc.boss && npc.active)
{
PlayerDeathReason armageddonDeath = PlayerDeathReason.ByCustomReason(player.name + " failed Armageddon.");
Main.PlaySound(SoundID.NPCDeath59.WithVolume(0.5f), player.Center);
player.KillMe(armageddonDeath, 1.0, 0, false);
ChallengeRunes.RemoveRune(player, "armageddon");
}
}
}
if (defiled && damageSource.SourceNPCIndex > 0)
{
damage *= 2;
}
return base.PreHurt(pvp, quiet, ref damage, ref hitDirection, ref crit, ref customDamage, ref playSound, ref genGore, ref damageSource);
}
public override void PostUpdateBuffs()
{
if(ChallengeRunes.CheckRune(player, "frozen"))
player.allDamageMult *= 0.5f;
if(ChallengeRunes.CheckRune(player, "scorched"))
{
player.lifeRegen = 0;
}
EmitDusts();
}
public void EmitDusts()
{
if (ChallengeRunes.CheckRune(player, "armageddon"))
{
if (Main.rand.Next(0, 15) == 0)
{
Dust.NewDust(player.Center, 5, 5, 264, -0.5f, 0, 0, new Color(255, 0, 255), 1f);
}
}
if (ChallengeRunes.CheckRune(player, "defiled"))
{
if (Main.rand.Next(0, 15) == 0)
{
Dust.NewDust(player.Center, 5, 5, 264, -0.25f, 0, 0, new Color(0, 255, 0), 1f);
}
}
if (ChallengeRunes.CheckRune(player, "frozen"))
{
if (Main.rand.Next(0, 15) == 0)
{
Dust.NewDust(player.Center, 5, 5, 264, 0.25f, 0, 0, new Color(135, 245, 255), 1f);
}
}
if (ChallengeRunes.CheckRune(player, "scorched"))
{
if (Main.rand.Next(0, 15) == 0)
{
Dust.NewDust(player.Center, 5, 5, 264, 0.5f, 0, 0, new Color(255, 150, 55), 1f);
}
}
}
}
}