@@ -22,10 +22,11 @@ public class BoomBox : Solid {
2222 SpeedMax = 24f
2323 } ;
2424
25+ protected Circle _boomCollider ;
26+
2527 private readonly float _initialDelay ;
2628 private readonly Sprite _sprite ;
2729 private readonly Sprite _boomSprite ;
28- protected BoomCollider _boomCollider ;
2930 private readonly SoundSource _sfx ;
3031 private readonly float _startupTime = 1.5f ;
3132 private float _angryResetTimer = 0f ;
@@ -63,7 +64,7 @@ public BoomBox(Vector2 position, string activationId, float initialDelay, bool s
6364 _boomSprite . CenterOrigin ( ) ;
6465 _boomSprite . Position = new Vector2 ( Width / 2 , Height / 2 ) ;
6566
66- _boomCollider = new BoomCollider ( position + new Vector2 ( Width / 2 , Height / 2 ) ) ;
67+ _boomCollider = new Circle ( 40f , X + Width / 2 , Y + Height / 2 ) ;
6768 Add ( _sfx = new SoundSource ( ) ) ;
6869 _sfx . Position = new Vector2 ( Width / 2 , Height / 2 ) ;
6970 Add ( new LightOcclude ( 0.2f ) ) ;
@@ -145,7 +146,6 @@ private IEnumerator WindDownSequence() {
145146
146147 public override void Added ( Scene scene ) {
147148 base . Added ( scene ) ;
148- scene . Add ( _boomCollider ) ;
149149 Activator . HandleStartup ( scene ) ;
150150 }
151151
@@ -172,6 +172,11 @@ public override void Update() {
172172 }
173173 }
174174
175+ public override void DebugRender ( Camera camera ) {
176+ base . DebugRender ( camera ) ;
177+ _boomCollider . Render ( camera , Collidable ? Color . Red : Color . DarkRed ) ;
178+ }
179+
175180 private void HandleAngryMode ( ) {
176181 CheckForAngryMode ( ) ;
177182 if ( _angryMode ) {
@@ -216,7 +221,7 @@ private void Explode() {
216221 ( Scene as Level ) . Displacement . AddBurst ( Center , 0.35f , 4f , 64f , 0.5f ) ;
217222 Player player = Scene . Tracker . GetEntity < Player > ( ) ;
218223 Collidable = false ;
219- if ( player != null && player . CollideCheck ( _boomCollider ) && ! Scene . CollideCheck < Solid > ( player . Center , Center ) ) {
224+ if ( player != null && _boomCollider . Collide ( player ) && ! Scene . CollideCheck < Solid > ( player . Center , Center ) ) {
220225 if ( player . Bottom < Top && player . Top > Bottom ) {
221226 player . ExplodeLaunch ( Center , false , true ) ;
222227 } else {
@@ -226,11 +231,5 @@ private void Explode() {
226231
227232 Collidable = true ;
228233 }
229-
230- protected class BoomCollider : Entity {
231- public BoomCollider ( Vector2 position ) : base ( position ) {
232- Collider = new Circle ( 40f , 0 , 0 ) ;
233- }
234- }
235234 }
236235}
0 commit comments