aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/Monster.cpp
diff options
context:
space:
mode:
authorqwasdrizzel <145519042+qwasdrizzel@users.noreply.github.com>2026-03-16 21:44:26 -0500
committerGitHub <noreply@github.com>2026-03-16 21:44:26 -0500
commitce739f6045ec72127491286ea3f3f21e537c1b55 (patch)
treef33bd42a47c1b4a7b2153a7fb77127ee3b407db9 /Minecraft.World/Monster.cpp
parent255a18fe8e9b57377975f82e2b227afe2a12eda0 (diff)
parent5a59f5d146b43811dde6a5a0245ee9875d7b5cd1 (diff)
Merge branch 'smartcmd:main' into main
Diffstat (limited to 'Minecraft.World/Monster.cpp')
-rw-r--r--Minecraft.World/Monster.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/Minecraft.World/Monster.cpp b/Minecraft.World/Monster.cpp
index 174a706c..ad19a36d 100644
--- a/Minecraft.World/Monster.cpp
+++ b/Minecraft.World/Monster.cpp
@@ -46,7 +46,7 @@ shared_ptr<Entity> Monster::findAttackTarget()
#endif
shared_ptr<Player> player = level->getNearestAttackablePlayer(shared_from_this(), 16);
- if (player != NULL && canSee(player) ) return player;
+ if (player != nullptr && canSee(player) ) return player;
return shared_ptr<Player>();
}
@@ -60,7 +60,14 @@ bool Monster::hurt(DamageSource *source, float dmg)
if (sourceEntity != shared_from_this())
{
- attackTarget = sourceEntity;
+ if (sourceEntity->instanceof(eTYPE_PLAYER))
+ {
+ if (!dynamic_pointer_cast<Player>(sourceEntity)->abilities.invulnerable)
+ {
+ attackTarget = sourceEntity;
+ }
+ }
+ else attackTarget = sourceEntity;
}
return true;
}
@@ -75,7 +82,7 @@ bool Monster::hurt(DamageSource *source, float dmg)
*/
bool Monster::doHurtTarget(shared_ptr<Entity> target)
{
- float dmg = (float) getAttribute(SharedMonsterAttributes::ATTACK_DAMAGE)->getValue();
+ float dmg = static_cast<float>(getAttribute(SharedMonsterAttributes::ATTACK_DAMAGE)->getValue());
int knockback = 0;