Currently the pattern we use is that on each throwing_enemy.tscn instance, we override properties like projectile_sprite_frames, projectile_hit_sound_stream, etc. These are all in turn assigned to the instanced projectile.
Since commit 402f2ab it has been possible to override the projectile scene that is instanced. A logical further improvement is to remove those properties from the throwing_enemy.gd script. Instead, to customise these properties, a separate scene should be created. For example, the inkdrinkers would throw an ink_blob_projectile.tscn scene.
(This is the approach taken in #1308 but we didn't yet wire up this behaviour outside the test scene. Removing the other properties from throwing_enemy.gd, and having custom projectile scenes, is a further step in that direction.)
Currently the pattern we use is that on each
throwing_enemy.tscninstance, we override properties likeprojectile_sprite_frames,projectile_hit_sound_stream, etc. These are all in turn assigned to the instanced projectile.Since commit 402f2ab it has been possible to override the projectile scene that is instanced. A logical further improvement is to remove those properties from the
throwing_enemy.gdscript. Instead, to customise these properties, a separate scene should be created. For example, the inkdrinkers would throw anink_blob_projectile.tscnscene.(This is the approach taken in #1308 but we didn't yet wire up this behaviour outside the test scene. Removing the other properties from
throwing_enemy.gd, and having custom projectile scenes, is a further step in that direction.)