<aside>
đ Items marked with a âď¸are exclusive to the BLAST! version. Items marked with a đ will disappear in future versions.
</aside>
There are different kinds of Spawn Pattern resources.
Pattern One
Pattern Line
Pattern Circle
Pattern Custom Points
Pattern Custom Shape
Pattern Custom Area
âď¸PatternRandomizer
But each of them have these general properties :
-
Nbr : Number of bullets to spawn
-
Bullet : The ID of the Bullet Props
-
Iterations : Number of times this pattern will spawn bullets.
Set to -1 for an infinite loop. Call âď¸process_kill(process:int)
: stop a spawning process, given its ID. to stop the infinite loop.
-
Symmetrical : if the spawn / shot delay > 0, bullets will not be spawned / shot one by one but 2 by 2, starting from the center bullet. Thus doing a symmetrical effect.
-
Advanced :
-
âď¸Bullet List : Array of IDs. It can allow you to spawn multiple bullets with different Bullet Props with a single spawner. The bullet spawned by the pattern will alternate between the IDs in the list. Exemple: if there are 2 IDs, one bullet out of 2 will get the first ID.
-
âď¸Skip in list: In case some bullets are skipped (see ⣠or âŁ), they wonât count in the bullet list.
-
âď¸Skip steps : One out of x bullets will be skipped, which means they wonât spawn.
-
âď¸Skip amount : The amount of bullets that will be skipped at each step.
-
âď¸ Skip list: The index of the bullets that will be skipped. Canât be used along skip_steps.
-
âď¸Temp Count : this resource will be erased from memory after being used by this many spawners. A resource is considered used after a spawner has shot all its iterations. Set to 0 to disable. Set to 1 to create a one-time resource that will get disposed of as soon as it has been used, taking no place in memory.
-
Spawning :
- On interrupt: when the bulletsâs parent node is deleted, they can either get destroyed, shot immediately or continue with the normal cooldown.
- Forced Angle
- Angle: pattern rotation angle in radian. Independant from the bullet's shooting angle.
- âď¸Angle mouse: Instead of a forced angle, the mouse cursor will be targeted.
- âď¸Angle Target : Instead of a forced angle, the specified node will be targeted.
- Wait :
- behavior : pattern behavior between the time the bullets spawn and theyâre shot in the case where the spawner is moving. Either the pattern stays at the positon it was spawned, either it follows the spawnerâs position & rotation. More options available soon.
- tween momentum : When the bullet is ready to be shot, it will go in the opposite direction first, as if theyâre building momentum before being shot (this is purely visual and doesnât change anything about the shot). Set to none to disable. Other values are the tween transition types.
- tween length : distance from the spawn position to which the bullet is gonna go while âbuilding momentumâ.
- tween time : time itâs gonna take for the bullet to reach the total length.
-
Shooting :
- Angle : If â 0 (TODO : change that), all bullets will be shot with that angle, regarding of their own shot angle or the patterns angle above.
- Target : Instead of a forced angle, the specified node will be targeted.
- Look at mouse: Instead of a forced angle, the mouse cursor will be targeted.
- Pattern look at : When a target is selectionned, if true, the pattern looks at the target and a unique angle is derived from it for all the bullets. If false, all the bullets will target the target upon shooting and their trajectories will all meet at the target's position.
- âď¸Impulse : initial speed boost when spawning.
-
Cooldowns :
- Spawn : cooldown between 2 iterations.
- Shoot : cooldown between the spawn of all the bullets and the shot.
- A
cooldown_shoot
= 0 will make it so it doesnât wait for all the bullets to spawn in order to start shooting. They will shoot as soon as theyâre spawned, unless a cooldown_next_shoot
is present.
- Next spawn : cooldown between 2 bullets of a same iteration ( ex : nbr = 3 â cooldown between 1 & 2 and 2 & 3)
- Next shoot : cooldown between 2 shots of a same iteration. Allows for each bullet to be shot at different times.
- âď¸ Layers: Adds extra-cooldowns between some iterations. The x (int) value is the number of iterations before the next extra-cooldown. The y (float) value is the value of the extra-cooldown. Once the end of the array is reached, it loops back.
- Stasis : bullets are spawned but never shot. Similar to setting the speed to 0, but here, bullets will never go through the code related to movement, unlike bullets with 0 speed.
-
đLayers (to be removed, do not use) :
- đNbr : number of layers to the itĂŠration. DiffĂŠrents layers CAN have similar but diffĂŠrent properties. For example : a circle pattern with the bullets spawning with an offset of x radians.
- đCooldown Spawn : cooldown between 2 layers
- đPos offset : position offset between 2 layers
- đSpeed offset : speed diffĂŠrence between 2 layers
- đAngle offset : angle diffĂŠrence between 2 layers
- đNbr offset : difference of number of bullets between 2 layers
-
âď¸Random : ⣠used to randomise other properties.
<aside>
âď¸ If you update from an obsolete version that was using the layer properties, know that the feature that intends to replace layers is the function âď¸spawn_list(spawner:Array, id:PackedStringArray, loops:int=0, shared_area:Array[String]=["0"], process_id:int=-1, cust_bullet)
: spawn a list of patterns one by one. Itâs used exactly like spawn()
except that all the arguments are arrays. Loop
determines if it loops back to the start of the list once it reaches the end. id
is the list of pattern spawned. For each pattern of index i, the spawner i and shared area i will be used. If those lists have less items than i, the last item of the list will be used. So if you donât want to change the shared_area, just input a list with a single item for example..
</aside>