From 5b801dc44d2910f27d48491e9dec144063788d10 Mon Sep 17 00:00:00 2001 From: James Melkonian Date: Sat, 19 Mar 2022 12:07:31 -0700 Subject: [PATCH] Adjust harvester boss arena offset --- CHANGELOG.md | 1 + world/src/site2/plot/gnarling.rs | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 867bdd4c69..77265cb645 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Players can no longer push waypoints around - Sites will now also be placed near the edge of the map - Fix a bug causing NPCs to jitter on interaction and randomly run away. +- Harvester boss arenas should be more accessible and easier to exit ## [0.12.0] - 2022-02-19 diff --git a/world/src/site2/plot/gnarling.rs b/world/src/site2/plot/gnarling.rs index 2013d3978b..a84f289ffe 100644 --- a/world/src/site2/plot/gnarling.rs +++ b/world/src/site2/plot/gnarling.rs @@ -369,8 +369,10 @@ impl GnarlingFortification { } } if area.contains_point(self.tunnels.end.xy() - self.origin) { + let boss_room_offset = (self.tunnels.end.xy() - self.tunnels.start.xy()) + .map(|e| if e < 0 { -20 } else { 20 }); supplement.add_entity(harvester_boss( - self.tunnels.end - 5 * Vec3::unit_z(), + self.tunnels.end + boss_room_offset - 2 * Vec3::unit_z(), dynamic_rng, )); } @@ -1696,14 +1698,17 @@ impl Structure for GnarlingFortification { 9.0, ); + let boss_room_offset = + (self.tunnels.end.xy() - self.tunnels.start.xy()).map(|e| if e < 0 { -20 } else { 20 }); + let boss_room = painter.ellipsoid(Aabb { - min: (self.tunnels.end.xy() - 30).with_z(self.tunnels.end.z - 10), - max: (self.tunnels.end.xy() + 30).with_z(self.tunnels.end.z + 10), + min: (self.tunnels.end.xy() + boss_room_offset - 30).with_z(self.tunnels.end.z - 10), + max: (self.tunnels.end.xy() + boss_room_offset + 30).with_z(self.tunnels.end.z + 10), }); let boss_room_clear = painter.ellipsoid(Aabb { - min: (self.tunnels.end.xy() - 29).with_z(self.tunnels.end.z - 9), - max: (self.tunnels.end.xy() + 29).with_z(self.tunnels.end.z + 9), + min: (self.tunnels.end.xy() + boss_room_offset - 29).with_z(self.tunnels.end.z - 9), + max: (self.tunnels.end.xy() + boss_room_offset + 29).with_z(self.tunnels.end.z + 9), }); let random_field = RandomField::new(self.seed);