@@ -37,9 +37,9 @@ public class ArcBulletType extends BulletType{
37
37
38
38
public boolean drawZone = false ;
39
39
public float zoneLayer = Layer .bullet ;
40
- public float targetRadius = 12f , zoneRadius = 3f * 8f ;
41
- public float shortSpikeWidth = -1f , shortSpike = -1f ;
42
- public float longSpikeWidth = -1f , longSpike = -1f ;
40
+ public float targetRadius = 12f , zoneRadius = 3f * 8f , progressRadius = - 1f ;
41
+ public float spikesWidth1 = -1f , spikesLength1 = -1f ;
42
+ public float spikesWidth2 = -1f , spikesLength2 = -1f ;
43
43
public float spokeWidth = 2f , spokeLength = 8f ;
44
44
public float spikeSpin = 0.5f ;
45
45
public float zoneLifeOffset = 0f ;
@@ -79,10 +79,11 @@ public void initDrawSize(float range){
79
79
80
80
@ Override
81
81
public void init (){
82
- if (longSpike < 0 ) longSpike = zoneRadius / 2f ;
83
- if (shortSpike < 0 ) shortSpike = longSpike / 2f ;
84
- if (shortSpikeWidth < 0 ) shortSpikeWidth = shortSpike / 2f ;
85
- if (longSpikeWidth < 0 ) longSpikeWidth = shortSpikeWidth ;
82
+ if (spikesLength2 < 0 ) spikesLength2 = zoneRadius / 2f ;
83
+ if (spikesLength1 < 0 ) spikesLength1 = spikesLength2 / 2f ;
84
+ if (spikesWidth1 < 0 ) spikesWidth1 = spikesLength1 / 2f ;
85
+ if (spikesWidth2 < 0 ) spikesWidth2 = spikesWidth1 ;
86
+ if (progressRadius < 0 ) progressRadius = Math .max ((drawZone ? zoneRadius + Math .max (spikesLength1 , spikesLength2 ) / 2f : 0f ), targetRadius + spokeLength / 2f ) + 4f ;
86
87
87
88
if (fragBullet instanceof ArcBulletType a ){
88
89
a .isInheritive = true ;
@@ -253,7 +254,7 @@ public void updateTrail(Bullet b){
253
254
254
255
@ Override
255
256
public void draw (Bullet b ){
256
- if ( drawZone ) drawTargetZone (b );
257
+ drawTargetZone (b );
257
258
Draw .z (layer );
258
259
drawTrail (b );
259
260
}
@@ -277,16 +278,18 @@ public void drawTargetZone(Bullet b){
277
278
PMDrawf .ring (x , y , zoneRadius , zoneRadius + 2f );
278
279
for (int i = 0 ; i < 4 ; i ++){
279
280
float a = ang + 90 * i ;
280
- Drawf .tri (x + Angles .trnsx (a , zoneRadius ), y + Angles .trnsy (a , zoneRadius ), shortSpikeWidth , shortSpike , a + 180 );
281
+ Drawf .tri (x + Angles .trnsx (a , zoneRadius ), y + Angles .trnsy (a , zoneRadius ), spikesWidth1 , spikesLength1 , a + 180 );
282
+ Drawf .tri (x + Angles .trnsx (a , zoneRadius ), y + Angles .trnsy (a , zoneRadius ), spikesWidth1 , spikesLength1 / 2f , a );
281
283
}
282
284
for (int i = 0 ; i < 4 ; i ++){
283
285
float a = ang + 45 + 90 * i ;
284
- Drawf .tri (x + Angles .trnsx (a , zoneRadius ), y + Angles .trnsy (a , zoneRadius ), longSpikeWidth , longSpike , a + 180 );
286
+ Drawf .tri (x + Angles .trnsx (a , zoneRadius ), y + Angles .trnsy (a , zoneRadius ), spikesWidth2 , spikesLength2 , a + 180 );
287
+ Drawf .tri (x + Angles .trnsx (a , zoneRadius ), y + Angles .trnsy (a , zoneRadius ), spikesWidth2 , spikesLength2 / 2f , a );
285
288
}
286
289
}
287
290
288
- float fin = zoneLifeOffset + b .fin () * ( 1f - zoneLifeOffset ) ;
289
- PMDrawf .progressRing (x , y , zoneRadius + 4f , zoneRadius + 8f , fin );
291
+ float fin = b .fin () / lifetimeScl ;
292
+ PMDrawf .progressRing (x , y , progressRadius , progressRadius + 4f , fin );
290
293
291
294
PMDrawf .ring (x , y , targetRadius , targetRadius + 2f );
292
295
Lines .stroke (spokeWidth );
0 commit comments