Author Topic: I have done something wrong - How I learned to love Staring into the Abyss  (Read 20282 times)

Offline ptarth

  • Arcen Volunteer
  • Hero Member Mark III
  • *****
  • Posts: 1,166
  • I'm probably joking.
I have created Starward Rogue: Spirograph(tm) Edition. It can generate a new random pattern in the time it takes SR to reload the xml.

Day of the Dead anyone?

PS. Yes, it absolutely tanks system performance because my shots are not optimized at all.
Note: This post contains content that is meant to be whimsical. Any belittlement or trivialization of complex issues is only intended to lighten the mood and does not reflect upon the merit of those positions.

Offline Misery

  • Arcen Volunteer
  • Core Member Mark V
  • *****
  • Posts: 4,109
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #1 on: February 01, 2016, 06:04:28 pm »
This looks like the sort of thing that happens whenever I have too much free time on my hands.

Offline PokerChen

  • Hero Member Mark III
  • *****
  • Posts: 1,088
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #2 on: February 01, 2016, 06:27:27 pm »
Hmm... an off the left field question, do you think you could make lightning?

Offline TheVampire100

  • Master Member
  • *****
  • Posts: 1,382
  • Ordinary Vampire
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #3 on: February 01, 2016, 06:29:25 pm »
You know what this remembers me of? Immortal Defense. It's Tower Defense game with similiar flashy graphics like Starward Rogue. There was this one defense tower, the Danmaku Point, who had something similiar as attack.
I suggest you check the game out.

Offline ptarth

  • Arcen Volunteer
  • Hero Member Mark III
  • *****
  • Posts: 1,166
  • I'm probably joking.
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #4 on: February 01, 2016, 07:11:17 pm »
Hmm... an off the left field question, do you think you could make lightning?

Sure. Go find a carpet, rub your feet across it. Touch a doorknob.

I think you should be able to, its just multistage mirv-style bullet. You'd use a lot of rand_angle to get the angle to vary. To get varying distances would be trickier, possibly have some predefined variable distance bolt patterns you randomly spawned from each branching point on the bolt.

I've got two concerns.
System performance. In the previously attached images, there are approximately 1500 bullets and frame rate was tanked to 10. Part of it is because I'm doing nested loops worth of nested loops. Another part comes from all the hitbox and collision detection that's going on.

The seconds is that, is that all of this is cosmetic. For the most part, the important thing is that you have a big round bullet moving through space. You could actually grab each one of these complete patterns, make a png out of it and use it as a bullet at a fraction of the system drain. I might actually look into doing that too. Although currently each bullet can be destroyed leaving partial patterns, by making a shot out of it, the entire shot would be all or nothing.

When I was playing with making pixel shot flags I was hitting the same problem. I'm sure Misery has problems with it with his boss patterns too, and I'm also reasonable sure that's what the shots_use_performance_sensitive_logic attribute if so.
Note: This post contains content that is meant to be whimsical. Any belittlement or trivialization of complex issues is only intended to lighten the mood and does not reflect upon the merit of those positions.

Offline Misery

  • Arcen Volunteer
  • Core Member Mark V
  • *****
  • Posts: 4,109
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #5 on: February 01, 2016, 07:46:19 pm »
Hmm... an off the left field question, do you think you could make lightning?

Sure. Go find a carpet, rub your feet across it. Touch a doorknob.

I think you should be able to, its just multistage mirv-style bullet. You'd use a lot of rand_angle to get the angle to vary. To get varying distances would be trickier, possibly have some predefined variable distance bolt patterns you randomly spawned from each branching point on the bolt.

I've got two concerns.
System performance. In the previously attached images, there are approximately 1500 bullets and frame rate was tanked to 10. Part of it is because I'm doing nested loops worth of nested loops. Another part comes from all the hitbox and collision detection that's going on.

The seconds is that, is that all of this is cosmetic. For the most part, the important thing is that you have a big round bullet moving through space. You could actually grab each one of these complete patterns, make a png out of it and use it as a bullet at a fraction of the system drain. I might actually look into doing that too. Although currently each bullet can be destroyed leaving partial patterns, by making a shot out of it, the entire shot would be all or nothing.

When I was playing with making pixel shot flags I was hitting the same problem. I'm sure Misery has problems with it with his boss patterns too, and I'm also reasonable sure that's what the shots_use_performance_sensitive_logic attribute if so.
\
Yes, if I remember correctly that attribute was added after Battleswarm nearly killed everyone's computers with what used to be the green pattern.  Later patterns then caused the "screw it, bullets dont even check for wall collisions anymore" attribute.

Offline Ayrix

  • Newbie Mark III
  • *
  • Posts: 42
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #6 on: February 01, 2016, 08:20:53 pm »
Hmm... an off the left field question, do you think you could make lightning?
also been pondering that one

so you need a bullet that leaves a trail of bullets (real y easy),
sometimes changes angle but only like +-10 degrees (easy)
sometimes branches into 2 of itself (use interval_mult?)
sometimes dies part way (make the branch version use a random lifespan, but the main one a longer fixed one)


would need to be killed by the firing system's range_actual
use some effects that can do things like only works x% of the time, but that means the bullet generator has to be an EntitySystem.


Edit: so I tried it.
results thus far:
the good
the random path looks right

the bad
branching is not that easy, the thing walking the path to generate the bullets must be an EntitySystem (which therefore needs an Entity)

this system fires bullets constantly, and can use either interval_mult or  chance_out_of_100_to_happen to cause the branches.
then there'll be the clean up to make sure it all dies together.
« Last Edit: February 01, 2016, 11:04:28 pm by Ayrix »

Offline PokerChen

  • Hero Member Mark III
  • *****
  • Posts: 1,088
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #7 on: February 02, 2016, 07:17:41 am »
Quote from: ptarth
I've got two concerns.
Seems a workable ceiling would be several hundred bullets on the screen, but then would have to include laptops in that estimate.

In the end, you would have to simplify with a .png solution. You could try to save the bullet patterns in sectors of ~30 degrees and have 12 of them plus the center (or 24 of them in two rings + 1).

branching is not that easy, the thing walking the path to generate the bullets must be an EntitySystem (which therefore needs an Entity)
I suspect a system_to_attach_to_shot variable can work as a valid entity system to spawn randomised patterns? So, you can avoid having an entity like my frozen orbs.

Offline Ayrix

  • Newbie Mark III
  • *
  • Posts: 42
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #8 on: February 02, 2016, 12:36:37 pm »
don't seem to be able to get an entity system to attach to a shot (or bullet)
defining a new shot type (with attached system) next.

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #9 on: February 02, 2016, 12:53:02 pm »
On performance: if you set use_performance_sensitive_logic and never_collides_with_terrain true on all the bullets in that absurdity, what's the framerate?

Iirc 1500 bullets shouldn't be _too_ bad as long as it isn't having to check the extra stuff.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Ayrix

  • Newbie Mark III
  • *
  • Posts: 42
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #10 on: February 02, 2016, 01:44:18 pm »


the blue ones should not have the same speed as the green
Also the game HATES using the shot type I have the firing system on as one of the bullets it can shoot.

Code: [Select]
<bullet_pattern name="LightningB">


<bullet angle="0" speed="0" shot_type="BulletPointedGreen" />
<bullet angle="0" speed="50" interval_mult="7" shot_type="BulletPointedBlue"/>
 </bullet_pattern>

on the other hand volleys of
Code: [Select]
</bullet_pattern>

<bullet_pattern name="LightningA">
<bullet angle="0" speed="100" do_not_do_rest_of_logic_on_early_death="true">

<loop iterations="-1" suppress_loop_bug="true">
 <change relative="true" angle="0" angle_rand="-15,15"/>
 <spawn>
 <bullet_pattern>
  <bullet angle="0" speed="0" shot_type="BulletPointedGreen"/>
 </bullet_pattern>
 
 </spawn>
 <wait time="0.5"/>
 </loop>
</bullet>

</bullet_pattern>
looks to do an Itano circus so awesome for multi-missile patterns
« Last Edit: February 02, 2016, 02:19:44 pm by Ayrix »

Offline ptarth

  • Arcen Volunteer
  • Hero Member Mark III
  • *****
  • Posts: 1,166
  • I'm probably joking.
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #11 on: February 02, 2016, 02:41:27 pm »
On performance: if you set use_performance_sensitive_logic and never_collides_with_terrain true on all the bullets in that absurdity, what's the framerate?

Iirc 1500 bullets shouldn't be _too_ bad as long as it isn't having to check the extra stuff.

I already had those tags on, so a blazing 6 to 10 fps for me.

Code: [Select]
  <var name="RotaryRandomShot">
    <bullet angle="[ANGLE]" speed="0" shot_type="[SHOT]" use_performance_sensitive_logic="true" rotates_around_firing_entity="false" moves_with_firing_entity="true" spawns_offset_from_firing_entity="[SPOSX],[SPOSY]" never_collides_with_terrain="true" dumbfire="true" offset_is_relative_to_parent_bullet_instead_of_firing_entity="true" >
        <change offset_from_parent="[SPOSX],[SPOSY]" time="0"/>
<loop iterations="40">   
<change relative="true" angle="[ROTDIR]" time="[ROTSPEED]"/>
    </loop>
      <die />
    </bullet>
  </var>

  <var name="RotaryVarRandom">
    <bullet speed="200" angle="[DIRECTION]" shot_type="[SHOT]" rotates_around_firing_entity="false" moves_with_firing_entity="false"  dumbfire="false" is_invisible_and_does_not_collide_with_ships="true" use_performance_sensitive_logic="true" never_collides_with_terrain="true">
      <spawn>
        <bullet_pattern>
          $RotaryRandomShot ANGLE=30
          $RotaryRandomShot ANGLE=60
          $RotaryRandomShot ANGLE=90
          $RotaryRandomShot ANGLE=120
          $RotaryRandomShot ANGLE=150
          $RotaryRandomShot ANGLE=180
          $RotaryRandomShot ANGLE=210
          $RotaryRandomShot ANGLE=240
          $RotaryRandomShot ANGLE=270
          $RotaryRandomShot ANGLE=300
          $RotaryRandomShot ANGLE=330
          $RotaryRandomShot ANGLE=360
        </bullet_pattern>
      </spawn>
  <wait time='[FAR]'/>
  <change speed='0'/>
      <loop iterations="4">
  <wait time="10"/>
      </loop>
    </bullet>
  </var>

<root>
<bullet_pattern name="RotarySliderPattern1">
$RotaryVarRandom SPEED=200 SHOT=ReverseClipperEmblazonedYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=0 FAR=1
$RotaryVarRandom SPEED=200 SHOT=BowtieRed SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=0 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern2">
$RotaryVarRandom SPEED=200 SHOT=MolarGolden SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=36 FAR=1
$RotaryVarRandom SPEED=200 SHOT=ReverseRocketYellow SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=36 FAR=1
$RotaryVarRandom SPEED=200 SHOT=CardinalTrueBlue SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=36 FAR=1
$RotaryVarRandom SPEED=200 SHOT=SpikeTrueBlue SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=36 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern3">
$RotaryVarRandom SPEED=200 SHOT=FangsEmblazonedYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=72 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern4">
$RotaryVarRandom SPEED=200 SHOT=StarshipBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=108 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern5">
$RotaryVarRandom SPEED=200 SHOT=ShardHaloWhite SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=144 FAR=1
$RotaryVarRandom SPEED=200 SHOT=DrillRed SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=144 FAR=1
$RotaryVarRandom SPEED=200 SHOT=PlaneGreen SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=144 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern6">
$RotaryVarRandom SPEED=200 SHOT=TrinityRed SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=180 FAR=1
$RotaryVarRandom SPEED=200 SHOT=QuadYellow SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=180 FAR=1
$RotaryVarRandom SPEED=200 SHOT=FourNeedlesYellow SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=180 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern7">
$RotaryVarRandom SPEED=200 SHOT=QuadEmblazonedYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=216 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern8">
$RotaryVarRandom SPEED=200 SHOT=ThreeProngGolden SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=252 FAR=1
$RotaryVarRandom SPEED=200 SHOT=ReverseRocketEmblazonedYellow SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=252 FAR=1
$RotaryVarRandom SPEED=200 SHOT=ReverseMolarYellow SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=252 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern9">
$RotaryVarRandom SPEED=200 SHOT=PayloadEmblazonedYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=288 FAR=1
$RotaryVarRandom SPEED=200 SHOT=SpikeBlue SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=288 FAR=1
$RotaryVarRandom SPEED=200 SHOT=DoubleFlatPink SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=288 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern10">
$RotaryVarRandom SPEED=200 SHOT=SpikeBurningRed SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=324 FAR=1
$RotaryVarRandom SPEED=200 SHOT=SmallTorchBurningRed SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=324 FAR=1
$RotaryVarRandom SPEED=200 SHOT=CrossHaloWhite SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=324 FAR=1
$RotaryVarRandom SPEED=200 SHOT=DonutBurningRed SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=324 FAR=1
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern11">
$RotaryVarRandom SPEED=200 SHOT=VNeedleGreen SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=0 FAR=2
$RotaryVarRandom SPEED=200 SHOT=DiamondEmblazonedYellow SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=0 FAR=2
$RotaryVarRandom SPEED=200 SHOT=ShardPink SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=0 FAR=2
$RotaryVarRandom SPEED=200 SHOT=ReverseMolarPurple SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=0 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern12">
$RotaryVarRandom SPEED=200 SHOT=SmallTorchPurple SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=36 FAR=2
$RotaryVarRandom SPEED=200 SHOT=DonutHaloWhite SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=36 FAR=2
$RotaryVarRandom SPEED=200 SHOT=HexagonRed SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=36 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern13">
$RotaryVarRandom SPEED=200 SHOT=CrossTrueBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=72 FAR=2
$RotaryVarRandom SPEED=200 SHOT=ReverseRocketTrueBlue SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=72 FAR=2
$RotaryVarRandom SPEED=200 SHOT=JointPurple SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=72 FAR=2
$RotaryVarRandom SPEED=200 SHOT=WideDoublePurple SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=72 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern14">
$RotaryVarRandom SPEED=200 SHOT=SpineYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=108 FAR=2
$RotaryVarRandom SPEED=200 SHOT=HexishellPurple SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=108 FAR=2
$RotaryVarRandom SPEED=200 SHOT=BarbedNeedleBlue SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=108 FAR=2
$RotaryVarRandom SPEED=200 SHOT=NeedleGreen SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=108 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern15">
$RotaryVarRandom SPEED=200 SHOT=TrinityEmblazonedYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=144 FAR=2
$RotaryVarRandom SPEED=200 SHOT=PinTrueBlue SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=144 FAR=2
$RotaryVarRandom SPEED=200 SHOT=BarbedNeedlePurple SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=144 FAR=2
$RotaryVarRandom SPEED=200 SHOT=QuadEmblazonedYellow SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=144 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern16">
$RotaryVarRandom SPEED=200 SHOT=CrabHaloWhite SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=180 FAR=2
$RotaryVarRandom SPEED=200 SHOT=RocketPink SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=180 FAR=2
$RotaryVarRandom SPEED=200 SHOT=ThreeProngBlue SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=180 FAR=2
$RotaryVarRandom SPEED=200 SHOT=DoubleFlatHaloWhite SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=180 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern17">
$RotaryVarRandom SPEED=200 SHOT=CrabEmblazonedYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=216 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern18">
$RotaryVarRandom SPEED=200 SHOT=ReverseMolarWhite SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=252 FAR=2
$RotaryVarRandom SPEED=200 SHOT=ArrowPink SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=252 FAR=2
$RotaryVarRandom SPEED=200 SHOT=QuadRed SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=252 FAR=2
$RotaryVarRandom SPEED=200 SHOT=ReverseProngGreen SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=252 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern19">
$RotaryVarRandom SPEED=200 SHOT=HexishellGreen SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=288 FAR=2
$RotaryVarRandom SPEED=200 SHOT=ReverseClipperPink SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=288 FAR=2
$RotaryVarRandom SPEED=200 SHOT=DiamondWhite SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=288 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern20">
$RotaryVarRandom SPEED=200 SHOT=VNeedleWhite SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=324 FAR=2
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern21">
$RotaryVarRandom SPEED=200 SHOT=BoneHaloWhite SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=0 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern22">
$RotaryVarRandom SPEED=200 SHOT=ClawTrueBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=18 FAR=3
$RotaryVarRandom SPEED=200 SHOT=WideDoublePurple SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=18 FAR=3
$RotaryVarRandom SPEED=200 SHOT=ReverseProngWhite SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=18 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern23">
$RotaryVarRandom SPEED=200 SHOT=NeedleEmblazonedYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=36 FAR=3
$RotaryVarRandom SPEED=200 SHOT=HookRed SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=36 FAR=3
$RotaryVarRandom SPEED=200 SHOT=FangsTrueBlue SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=36 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern24">
$RotaryVarRandom SPEED=200 SHOT=ClawYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=54 FAR=3
$RotaryVarRandom SPEED=200 SHOT=FangsBlue SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=54 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern25">
$RotaryVarRandom SPEED=200 SHOT=ZigzagBurningRed SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=72 FAR=3
$RotaryVarRandom SPEED=200 SHOT=NeedlePink SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=72 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern26">
$RotaryVarRandom SPEED=200 SHOT=RocketBurningRed SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=90 FAR=3
$RotaryVarRandom SPEED=200 SHOT=ReverseBoneEmblazonedYellow SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=90 FAR=3
$RotaryVarRandom SPEED=200 SHOT=CrossBurningRed SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=90 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern27">
$RotaryVarRandom SPEED=200 SHOT=StarshipBurningRed SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=108 FAR=3
$RotaryVarRandom SPEED=200 SHOT=BoneTrueBlue SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=108 FAR=3
$RotaryVarRandom SPEED=200 SHOT=BarbedNeedlePink SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=108 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern28">
$RotaryVarRandom SPEED=200 SHOT=HookTrueBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=126 FAR=3
$RotaryVarRandom SPEED=200 SHOT=ShardTrueBlue SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=126 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern29">
$RotaryVarRandom SPEED=200 SHOT=BarbedNeedleBurningRed SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=144 FAR=3
$RotaryVarRandom SPEED=200 SHOT=JointEmblazonedYellow SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=144 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern30">
$RotaryVarRandom SPEED=200 SHOT=SpikeBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=162 FAR=3
$RotaryVarRandom SPEED=200 SHOT=RocketBurningRed SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=162 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern31">
$RotaryVarRandom SPEED=200 SHOT=HexishellPurple SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=180 FAR=3
$RotaryVarRandom SPEED=200 SHOT=ReverseRocketBlue SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=180 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern32">
$RotaryVarRandom SPEED=200 SHOT=ReverseRocketGreen SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=198 FAR=3
$RotaryVarRandom SPEED=200 SHOT=NeedleGreen SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=198 FAR=3
$RotaryVarRandom SPEED=200 SHOT=WideDoubleGreen SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=198 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern33">
$RotaryVarRandom SPEED=200 SHOT=VNeedleGolden SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=216 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern34">
$RotaryVarRandom SPEED=200 SHOT=ReverseRocketGreen SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=234 FAR=3
$RotaryVarRandom SPEED=200 SHOT=FourNeedlesTrueBlue SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=234 FAR=3
$RotaryVarRandom SPEED=200 SHOT=ReverseShardEmblazonedYellow SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=234 FAR=3
$RotaryVarRandom SPEED=200 SHOT=NeedlePurple SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=234 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern35">
$RotaryVarRandom SPEED=200 SHOT=JointPink SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=252 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern36">
$RotaryVarRandom SPEED=200 SHOT=DonutWhite SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=270 FAR=3
$RotaryVarRandom SPEED=200 SHOT=ReverseMolarGreen SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=270 FAR=3
$RotaryVarRandom SPEED=200 SHOT=RocketRed SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=270 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern37">
$RotaryVarRandom SPEED=200 SHOT=ShardEmblazonedYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=288 FAR=3
$RotaryVarRandom SPEED=200 SHOT=ReverseClipperPink SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=288 FAR=3
$RotaryVarRandom SPEED=200 SHOT=BarbedNeedleEmblazonedYellow SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=288 FAR=3
$RotaryVarRandom SPEED=200 SHOT=QuadEmblazonedBlue SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=288 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern38">
$RotaryVarRandom SPEED=200 SHOT=ReverseRocketPurple SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=306 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern39">
$RotaryVarRandom SPEED=200 SHOT=ReverseProngYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=324 FAR=3
$RotaryVarRandom SPEED=200 SHOT=SpikeWhite SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=324 FAR=3
$RotaryVarRandom SPEED=200 SHOT=CardinalBlue SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=324 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern40">
$RotaryVarRandom SPEED=200 SHOT=CrossBurningRed SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=342 FAR=3
$RotaryVarRandom SPEED=200 SHOT=TorchRed SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=342 FAR=3
$RotaryVarRandom SPEED=200 SHOT=FatCrossYellow SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=342 FAR=3
$RotaryVarRandom SPEED=200 SHOT=DonutHaloWhite SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=342 FAR=3
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern41">
$RotaryVarRandom SPEED=200 SHOT=StarshipPink SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=0 FAR=4
$RotaryVarRandom SPEED=200 SHOT=StarshipPurple SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=0 FAR=4
$RotaryVarRandom SPEED=200 SHOT=SpinePurple SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=0 FAR=4
$RotaryVarRandom SPEED=200 SHOT=HexishellTrueBlue SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=0 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern42">
$RotaryVarRandom SPEED=200 SHOT=DoubleFlatHaloWhite SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=18 FAR=4
$RotaryVarRandom SPEED=200 SHOT=TorchRed SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=18 FAR=4
$RotaryVarRandom SPEED=200 SHOT=SmallTorchBurningRed SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=18 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern43">
$RotaryVarRandom SPEED=200 SHOT=NeedleHaloWhite SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=36 FAR=4
$RotaryVarRandom SPEED=200 SHOT=SpireRed SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=36 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern44">
$RotaryVarRandom SPEED=200 SHOT=WingsTrueBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=54 FAR=4
$RotaryVarRandom SPEED=200 SHOT=DiamondWhite SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=54 FAR=4
$RotaryVarRandom SPEED=200 SHOT=DoubleFlatPurple SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=54 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern45">
$RotaryVarRandom SPEED=200 SHOT=ReverseProngGolden SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=72 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern46">
$RotaryVarRandom SPEED=200 SHOT=ShardBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=90 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern47">
$RotaryVarRandom SPEED=200 SHOT=BowtieHaloWhite SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=108 FAR=4
$RotaryVarRandom SPEED=200 SHOT=StarshipHaloWhite SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=108 FAR=4
$RotaryVarRandom SPEED=200 SHOT=BowtieTrueBlue SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=108 FAR=4
$RotaryVarRandom SPEED=200 SHOT=PinYellow SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=108 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern48">
$RotaryVarRandom SPEED=200 SHOT=JointBurningRed SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=126 FAR=4
$RotaryVarRandom SPEED=200 SHOT=ClipperWhite SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=126 FAR=4
$RotaryVarRandom SPEED=200 SHOT=JointGolden SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=126 FAR=4
$RotaryVarRandom SPEED=200 SHOT=ReverseRocketHaloWhite SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=126 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern49">
$RotaryVarRandom SPEED=200 SHOT=FangsTrueBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=144 FAR=4
$RotaryVarRandom SPEED=200 SHOT=ShardWhite SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=144 FAR=4
$RotaryVarRandom SPEED=200 SHOT=ReverseRocketPurple SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=144 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern50">
$RotaryVarRandom SPEED=200 SHOT=ThreeProngBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=162 FAR=4
$RotaryVarRandom SPEED=200 SHOT=ToothEmblazonedYellow SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=162 FAR=4
$RotaryVarRandom SPEED=200 SHOT=BowtieGreen SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=162 FAR=4
$RotaryVarRandom SPEED=200 SHOT=DiamondYellow SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=162 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern51">
$RotaryVarRandom SPEED=200 SHOT=TrinityYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=180 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern52">
$RotaryVarRandom SPEED=200 SHOT=ZigzagBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=198 FAR=4
$RotaryVarRandom SPEED=200 SHOT=TrinityWhite SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=198 FAR=4
$RotaryVarRandom SPEED=200 SHOT=HookEmblazonedYellow SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=198 FAR=4
$RotaryVarRandom SPEED=200 SHOT=NeedleWhite SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=198 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern53">
$RotaryVarRandom SPEED=200 SHOT=ToothBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=216 FAR=4
$RotaryVarRandom SPEED=200 SHOT=BarbedNeedleTrueBlue SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=216 FAR=4
$RotaryVarRandom SPEED=200 SHOT=BowtieWhite SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=216 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern54">
$RotaryVarRandom SPEED=200 SHOT=TeardropGolden SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=234 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern55">
$RotaryVarRandom SPEED=200 SHOT=ThreeProngGreen SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=252 FAR=4
$RotaryVarRandom SPEED=200 SHOT=FatCrossPink SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=252 FAR=4
$RotaryVarRandom SPEED=200 SHOT=ReverseProngGolden SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=252 FAR=4
$RotaryVarRandom SPEED=200 SHOT=PayloadEmblazonedYellow SCALE=0.5 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=1 SPOSY=1 DIRECTION=252 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern56">
$RotaryVarRandom SPEED=200 SHOT=WideDoubleGolden SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=270 FAR=4
$RotaryVarRandom SPEED=200 SHOT=ReverseProngYellow SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=270 FAR=4
$RotaryVarRandom SPEED=200 SHOT=ReverseMolarRed SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=270 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern57">
$RotaryVarRandom SPEED=200 SHOT=HookPurple SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=288 FAR=4
$RotaryVarRandom SPEED=200 SHOT=ReverseMolarGreen SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=288 FAR=4
$RotaryVarRandom SPEED=200 SHOT=RocketTrueBlue SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=288 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern58">
$RotaryVarRandom SPEED=200 SHOT=FourNeedlesBlue SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=306 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern59">
$RotaryVarRandom SPEED=200 SHOT=ReverseShardPink SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=324 FAR=4
</bullet_pattern>
<bullet_pattern name="RotarySliderPattern60">
$RotaryVarRandom SPEED=200 SHOT=SpikeEmblazonedYellow SCALE=3 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=50 DIRECTION=342 FAR=4
$RotaryVarRandom SPEED=200 SHOT=SpireBurningRed SCALE=2 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=25 DIRECTION=342 FAR=4
$RotaryVarRandom SPEED=200 SHOT=SmallTorchRed SCALE=1 ROTSPEED=.25 ROTDIR=-90 OFFSETANGLE=285 OFFSETDIST=100 SPOSX=-25 SPOSY=5 DIRECTION=342 FAR=4
</bullet_pattern>
</root>
Note: This post contains content that is meant to be whimsical. Any belittlement or trivialization of complex issues is only intended to lighten the mood and does not reflect upon the merit of those positions.

Offline Ayrix

  • Newbie Mark III
  • *
  • Posts: 42
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #12 on: February 02, 2016, 07:19:59 pm »
real spirograph is better.
The purple shots are static

turning it all into a Var could be tricky, but would open up some fun stuff.


Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #13 on: February 02, 2016, 07:23:59 pm »
I already had those tags on, so a blazing 6 to 10 fps for me.

(followed by the code block that shall not be named)

I find myself in sudden agreement with the name of this thread.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Hearteater

  • Core Member
  • *****
  • Posts: 2,334
Re: I have done something wrong - How I learned to love Staring into the Abyss
« Reply #14 on: February 02, 2016, 07:39:20 pm »
How are you handling collisions? Are you brute forcing the list of all shots, or doing broad/narrow passes in a spatial partitioning system? If you aren't, maybe allow us to declare a parent bullet for a bullet_pattern whose hitbox contains all child bullets. This way you could skip all the child collision checks if the parent doesn't collide. The parent would normally be an invisible bullet, although in the case of a box-like bullet full of bullets the parent bullet would be visible.