@@ -22,10 +22,11 @@ public class BoomBox : Solid {
22
22
SpeedMax = 24f
23
23
} ;
24
24
25
+ protected Circle _boomCollider ;
26
+
25
27
private readonly float _initialDelay ;
26
28
private readonly Sprite _sprite ;
27
29
private readonly Sprite _boomSprite ;
28
- protected BoomCollider _boomCollider ;
29
30
private readonly SoundSource _sfx ;
30
31
private readonly float _startupTime = 1.5f ;
31
32
private float _angryResetTimer = 0f ;
@@ -63,7 +64,7 @@ public BoomBox(Vector2 position, string activationId, float initialDelay, bool s
63
64
_boomSprite . CenterOrigin ( ) ;
64
65
_boomSprite . Position = new Vector2 ( Width / 2 , Height / 2 ) ;
65
66
66
- _boomCollider = new BoomCollider ( position + new Vector2 ( Width / 2 , Height / 2 ) ) ;
67
+ _boomCollider = new Circle ( 40f , X + Width / 2 , Y + Height / 2 ) ;
67
68
Add ( _sfx = new SoundSource ( ) ) ;
68
69
_sfx . Position = new Vector2 ( Width / 2 , Height / 2 ) ;
69
70
Add ( new LightOcclude ( 0.2f ) ) ;
@@ -145,7 +146,6 @@ private IEnumerator WindDownSequence() {
145
146
146
147
public override void Added ( Scene scene ) {
147
148
base . Added ( scene ) ;
148
- scene . Add ( _boomCollider ) ;
149
149
Activator . HandleStartup ( scene ) ;
150
150
}
151
151
@@ -172,6 +172,11 @@ public override void Update() {
172
172
}
173
173
}
174
174
175
+ public override void DebugRender ( Camera camera ) {
176
+ base . DebugRender ( camera ) ;
177
+ _boomCollider . Render ( camera , Collidable ? Color . Red : Color . DarkRed ) ;
178
+ }
179
+
175
180
private void HandleAngryMode ( ) {
176
181
CheckForAngryMode ( ) ;
177
182
if ( _angryMode ) {
@@ -216,7 +221,7 @@ private void Explode() {
216
221
( Scene as Level ) . Displacement . AddBurst ( Center , 0.35f , 4f , 64f , 0.5f ) ;
217
222
Player player = Scene . Tracker . GetEntity < Player > ( ) ;
218
223
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 ) ) {
220
225
if ( player . Bottom < Top && player . Top > Bottom ) {
221
226
player . ExplodeLaunch ( Center , false , true ) ;
222
227
} else {
@@ -226,11 +231,5 @@ private void Explode() {
226
231
227
232
Collidable = true ;
228
233
}
229
-
230
- protected class BoomCollider : Entity {
231
- public BoomCollider ( Vector2 position ) : base ( position ) {
232
- Collider = new Circle ( 40f , 0 , 0 ) ;
233
- }
234
- }
235
234
}
236
235
}
0 commit comments