abstract class Collectable : Item { override fun collectable() = true abstract fun collected( movement : Movement ) override fun invading( movement : Movement ) { if ( movement.item.isPlayer() ) { actor.event( "collected" ) replaceAction( ScaleTo( actor, 0.1, 0.2 ) ) collected( movement ) } } override fun invaded( movement : Movement ) : boolean { actor.die() return true } }