Spoiler
The setup as far as the parent goes works properly with the orbs spawning in a neat ring and higher elevation. When the orbs themselves start their looping state, only the first one is moving properly while the rest do not move even though they are identical to one another. The vars for the loop
for each orb are set remotely by the parent with the sole difference being adding 292 or 293 to the angle.
The one sprite working correctly has a lot of excess gains when the parent moves so I'm going to try vels or movesprite anyway but I'm expecting to run into this same problem again where a portion of code is seemingly not being executed beyond the first instance of a sprite.
On the right side in the gif is the one orbitting around and on the left is a stationary ring.
All of the sprites properly despawn when their particular PARENT dies so the state is definitely functioning for each orb.
The setup as far as the parent goes works properly with the orbs spawning in a neat ring and higher elevation. When the orbs themselves start their looping state, only the first one is moving properly while the rest do not move even though they are identical to one another. The vars for the loop
for each orb are set remotely by the parent with the sole difference being adding 292 or 293 to the angle.
The one sprite working correctly has a lot of excess gains when the parent moves so I'm going to try vels or movesprite anyway but I'm expecting to run into this same problem again where a portion of code is seemingly not being executed beyond the first instance of a sprite.
On the right side in the gif is the one orbitting around and on the left is a stationary ring.
All of the sprites properly despawn when their particular PARENT dies so the state is definitely functioning for each orb.
//parent spawns the orbs
{
getactor[THISACTOR].x PPX
getactor[THISACTOR].y PPY
getactor[THISACTOR].z PPZ
getactor[THISACTOR].ang ANGVAR
setvarvar PXVAR PPX
setvarvar PYVAR PPY
setvarvar ZVAR PPZ
addvar PPX 672
addvar PPY 672
subvar ZVAR 6400
espawn RORBULE
state ORBULES
espawn RORBULE
addvar ANGVAR 293
state RORBULES
espawn RORBULE
addvar ANGVAR 292
state RORBULES
espawn RORBULE
addvar ANGVAR 293
state RORBULES
espawn RORBULE
addvar ANGVAR 292
state RORBULES
espawn RORBULE
addvar ANGVAR 293
state RORBULES
espawn RORBULE
addvar ANGVAR 292
state RORBULES
setvar ORBSUP 1
}
//
//parent adjusts each orb once after espawn
state RORBULES
rotatepoint PXVAR PYVAR PPX PPY ANGVAR XVAR YVAR
setactor[RETURN].x XVAR
setactor[RETURN].y YVAR
setactor[RETURN].z ZVAR
setav[RETURN].PARENT THISACTOR
setav[RETURN].XVAR XVAR
setav[RETURN].YVAR YVAR
setav[RETURN].ZVAR ZVAR
setav[RETURN].PXVAR PXVAR
setav[RETURN].PYVAR PYVAR
setav[RETURN].PZVAR PPZ
setav[RETURN].ANGVAR ANGVAR
ends
//orb
actor RORBULE
state RORBSTATE
enda
//run by each orb indefinitely
state RORBSTATE
ifg sprite[queenp].extra 0
{
ifcount 8
{
setvarvar PPX PXVAR
setvarvar PPY PYVAR
setvarvar PPZ PZVAR
setvarvar XVAR2 XVAR
setvarvar YVAR2 YVAR
getactor[PARENT].x PXVAR
getactor[PARENT].y PYVAR
getactor[PARENT].z PZVAR
subvarvar PPX PXVAR
addvarvar XVAR2 PPX
subvarvar PPY PYVAR
addvarvar YVAR2 PPY
subvarvar PPZ PZVAR
addvarvar ZVAR PPZ
addvar ANGVAR 8
rotatepoint PXVAR PYVAR XVAR2 YVAR2 ANGVAR XVAR YVAR
setactor[RETURN].x XVAR
setactor[RETURN].y YVAR
setactor[RETURN].z ZVAR
resetcount
}
else
killit
ends