TModLoader v1.4.4.9
TModLoader source code documentation
Loading...
Searching...
No Matches

◆ Hurt() [4/4]

double Terraria.Player.Hurt ( PlayerDeathReason damageSource,
int Damage,
int hitDirection,
out HurtInfo info,
bool pvp = false,
bool quiet = false,
int cooldownCounter = -1,
bool dodgeable = true,
float armorPenetration = 0f,
float scalingArmorPenetration = 0f,
float knockback = 4::5f )
inline

Definition at line 37009 of file Player.cs.

37010 {
37011 info = default(HurtInfo);
37013 {
37014 return 0.0;
37015 }
37016 if (creativeGodMode)
37017 {
37018 return 0.0;
37019 }
37021 {
37022 return 0.0;
37023 }
37024 bool flag = !immune;
37025 bool flag2 = false;
37026 switch (cooldownCounter)
37027 {
37028 case 0:
37029 case 1:
37030 case 3:
37031 case 4:
37033 break;
37034 case 2:
37035 flag2 = true;
37036 cooldownCounter = -1;
37037 break;
37038 }
37039 if (flag)
37040 {
37041 HurtModifiers hurtModifiers = new HurtModifiers();
37042 hurtModifiers.DamageSource = damageSource;
37043 hurtModifiers.PvP = pvp;
37044 hurtModifiers.CooldownCounter = cooldownCounter;
37045 hurtModifiers.Dodgeable = dodgeable;
37046 hurtModifiers.HitDirection = hitDirection;
37047 HurtModifiers modifiers = hurtModifiers;
37049 modifiers.ArmorPenetration += armorPenetration;
37050 modifiers.ScalingArmorPenetration += scalingArmorPenetration;
37051 if (flag2)
37052 {
37053 modifiers.Knockback.Base += 6f;
37054 modifiers.KnockbackImmunityEffectiveness *= 0.8f;
37055 }
37057 info = modifiers.ToHurtInfo(Damage, statDefense, pvp ? 0.5f : DefenseEffectiveness.Value, knockback, noKnockback);
37058 if (dodgeable)
37059 {
37060 if (whoAmI == Main.myPlayer && PlayerLoader.FreeDodge(this, in info))
37061 {
37062 return 0.0;
37063 }
37064 if (whoAmI == Main.myPlayer && blackBelt && Main.rand.Next(10) == 0)
37065 {
37066 NinjaDodge();
37067 return 0.0;
37068 }
37069 if (whoAmI == Main.myPlayer && brainOfConfusionItem != null && !brainOfConfusionItem.IsAir && Main.rand.Next(6) == 0 && FindBuffIndex(321) == -1)
37070 {
37072 return 0.0;
37073 }
37074 if (whoAmI == Main.myPlayer && shadowDodge)
37075 {
37076 ShadowDodge();
37077 return 0.0;
37078 }
37079 if (whoAmI == Main.myPlayer && PlayerLoader.ConsumableDodge(this, in info))
37080 {
37081 return 0.0;
37082 }
37083 }
37084 Hurt(info, quiet);
37085 return info.Damage;
37086 }
37087 return 0.0;
37088 }
int whoAmI
The index of this Entity within its specific array. These arrays track the entities in the world....
Definition Entity.cs:16
bool IsAir
Definition Item.cs:965
static bool ConsumableDodge(Player player, in Player.HurtInfo info)
static bool ImmuneTo(Player player, PlayerDeathReason damageSource, int cooldownCounter, bool dodgeable)
static bool FreeDodge(Player player, in Player.HurtInfo info)
static void ModifyHurt(Player player, ref Player.HurtModifiers modifiers)
This is where all ModPlayer hooks are gathered and called.
void ShadowDodge()
Definition Player.cs:36828
void ApplyVanillaHurtEffectModifiers(ref HurtModifiers modifiers)
Definition Player.cs:37160
Item brainOfConfusionItem
Definition Player.cs:1378
bool creativeGodMode
Definition Player.cs:2046
int FindBuffIndex(int type)
Definition Player.cs:5676
ref float armorPenetration
Definition Player.cs:3384
void NinjaDodge()
Definition Player.cs:36862
DefenseStat statDefense
The defense value of this player. The Defense wiki pageteaches how player defense affects incoming d...
Definition Player.cs:2075
MultipliableFloat DefenseEffectiveness
Determines how effective the player's F:Terraria.Player.statDefense is at reducing incoming damage....
Definition Player.cs:2081
double Hurt(PlayerDeathReason damageSource, int Damage, int hitDirection, bool pvp, bool quiet, bool Crit, int cooldownCounter, bool dodgeable=true, float armorPenetration=0f)
Definition Player.cs:36998
static bool AllowShimmerDodge(PlayerDeathReason damageSource, int cooldownCounter, bool dodgeable)
Definition Player.cs:37573
int[] hurtCooldowns
Definition Player.cs:3259
void BrainOfConfusionDodge()
Definition Player.cs:36851

References Terraria.Player.AllowShimmerDodge(), Terraria.Player.ApplyVanillaHurtEffectModifiers(), Terraria.Player.armorPenetration, Terraria.Player.blackBelt, Terraria.Player.BrainOfConfusionDodge(), Terraria.Player.brainOfConfusionItem, Terraria.ModLoader.PlayerLoader.ConsumableDodge(), Terraria.Player.creativeGodMode, Terraria.GameContent.Damage, Terraria.Player.DefenseEffectiveness, Terraria.Player.FindBuffIndex(), Terraria.ModLoader.PlayerLoader.FreeDodge(), Terraria.Player.Hurt(), Terraria.Player.hurtCooldowns, Terraria.Player.immune, Terraria.ModLoader.PlayerLoader.ImmuneTo(), Terraria.Item.IsAir, Terraria.ModLoader.PlayerLoader.ModifyHurt(), Terraria.Main.myPlayer, Terraria.Player.NinjaDodge(), Terraria.Player.noKnockback, Terraria.Main.rand, Terraria.Player.shadowDodge, Terraria.Player.ShadowDodge(), Terraria.Player.shimmering, Terraria.Player.statDefense, Terraria.ModLoader.MultipliableFloat.Value, and Terraria.Entity.whoAmI.

+ Here is the call graph for this function: