INIT
INT:%canRespawn=0
CHARACTER:%parent=__Me
FLOAT3:%spawnPos=null
INT:%hasChild=0
EVENTS
EVENT RespawnCharacter
VARS
CHARACTERTEMPLATE:_root
FLOAT3:_myPos
CHARACTER:_child
ON
OnInit()
ACTIONS
IF "c1&c2&c3&c4&c5"
IsEqual(%canRespawn, 1)
CharacterIsDead(__Me)
CharacterGetTemplate(__Me, _root)
GetPosition(__Me, _myPos)
IsEqual(%hasChild, 0)
THEN
IF "c1"
IsEqual(%spawnPos, null)
THEN
Set(%spawnPos, _myPos)
ENDIF
SpawnCharacter(_child, _root, %spawnPos, 0)
SetVar(_child, "parent", __Me)
Set(%hasChild, 1)
Set(%canRespawn, 0)
ENDIF
EVENT ProgenyDeath
VARS
FLOAT3:_myPos
ON
OnDie(__Me,_,_,_)
ACTIONS
IF "!c1&c2"
IsEqual(__Me, %parent)
GetPosition(__Me, _myPos)
THEN
SetVar(%parent, "hasChild", INT:0)
SetVar(%parent, "spawnPos", _myPos)
CharacterEvent(%parent, "CheckForRespawn")
ENDIF