diff options
| author | qwasdrizzel <145519042+qwasdrizzel@users.noreply.github.com> | 2026-03-05 17:17:45 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-05 17:17:45 -0600 |
| commit | 0666959d312dc74903f55d1071488a90239330f1 (patch) | |
| tree | 5c6886f7ec65a7828bc6e34a469514e418bcf78b /Minecraft.World/DragonFireball.cpp | |
| parent | 9370cbc7d878df1615d8ce76bc459e8b414d0f19 (diff) | |
| parent | eed770b121aa4ce38f002db042d0137c24c6d344 (diff) | |
Merge branch 'smartcmd:main' into main
Diffstat (limited to 'Minecraft.World/DragonFireball.cpp')
| -rw-r--r-- | Minecraft.World/DragonFireball.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/Minecraft.World/DragonFireball.cpp b/Minecraft.World/DragonFireball.cpp index 32524592..335b345f 100644 --- a/Minecraft.World/DragonFireball.cpp +++ b/Minecraft.World/DragonFireball.cpp @@ -33,27 +33,27 @@ void DragonFireball::onHit(HitResult *res) { AABB *aoe = bb->grow(SPLASH_RANGE, SPLASH_RANGE / 2, SPLASH_RANGE); vector<shared_ptr<Entity> > *entitiesOfClass = level->getEntitiesOfClass(typeid(LivingEntity), aoe); - - if (entitiesOfClass != NULL && !entitiesOfClass->empty()) + if ( entitiesOfClass ) { - //for (Entity e : entitiesOfClass) - for( AUTO_VAR(it, entitiesOfClass->begin()); it != entitiesOfClass->end(); ++it) + if (!entitiesOfClass->empty()) { - //shared_ptr<Entity> e = *it; - shared_ptr<LivingEntity> e = dynamic_pointer_cast<LivingEntity>( *it ); - double dist = distanceToSqr(e); - if (dist < SPLASH_RANGE_SQ) + for (auto& it : *entitiesOfClass) { - double scale = 1.0 - (sqrt(dist) / SPLASH_RANGE); - if (e == res->entity) + shared_ptr<LivingEntity> e = dynamic_pointer_cast<LivingEntity>(it); + double dist = distanceToSqr(e); + if (dist < SPLASH_RANGE_SQ) { - scale = 1; + double scale = 1.0 - (sqrt(dist) / SPLASH_RANGE); + if (e == res->entity) + { + scale = 1; + } + e->hurt(DamageSource::dragonbreath, 8 * scale); } - e->hurt(DamageSource::dragonbreath, 8*scale); } } + delete entitiesOfClass; } - delete entitiesOfClass; level->levelEvent(LevelEvent::ENDERDRAGON_FIREBALL_SPLASH, (int) Math::round(x), (int) Math::round(y), (int) Math::round(z), 0); remove(); |
