class LifeFactory : AbstractRole { @Attribute var spacingX = -60 @Attribute var spacingY = 0 override fun activated() { val additionalLives = DrunkInvaders.instance.lives -1 for ( i in 0 until additionalLives ) { val lifeA = actor.createChild("life").apply { x += spacingX * i y += spacingY * i scaleXY = actor.scaleXY direction.radians = actor.direction.radians (role as Life).index = i } } actor.die() } override fun tick() { } }