Okay, LittleBear is right.
Some testing reveals that the witchspace-exit cloud
appears when
addShips is used.
It
does not appear when any other method of the family is used, namely
addSystemShips,
addShipsAt,
addShipsAtPrecisely and
addShipsWithinRadius.
And it certainly is
not supposed to appear with
spawn, because this method's special purpose is to replace one entity with another (like a ship with a model of its wreck). It wouldn't make sense to have the replacement pop out of witchspace.
At the end of the day this tells us that there are some subtle differences between the different methods of adding ships, which I didn't catch
here. (Another one being that all methods requiring a coordinate-system (
addShipsAt,
addShipsAtPrecisely and
addShipsWithinRadius) add their ships along the line witchpoint-planet (if "wp
x" is the chosen system), whereas
addSystemShips adds ships along a line witchpoint-
station. Again a subtle difference, which means that
addSystemShips is indeed
not a special case of
addShipsAt.)
*****
My suggestion for the true JS-implementation of adding ships would be to make the creation of the witchplace-exiting cloud an (optional) parameter of the calling method, defaulting to
true. Then we could drop the equivalent to the current
addShips as special case of the equivalent to the current
addShipsAt. With another parameter for the grade of precision to the given coordinates we could unify the equivalents of the current
addShipsAt and
addShipsAtPrecisely to one method only, and have elegantly dropped two of the current five. Then we only have left to debate whether or not we want to retain the functionality of the current
addSystemShips and its line between witchpoint and station. And how to realize the addition of a couple of ships in a given radius. (Perhaps just another optional parameter in a unified method.).
Already we would be down from five to only two different methods:
system.addShipsAt(role, number, coordScheme, vector, [radius], [precision], [witchspace cloud]) and
system.addSystemShips(role, number, fraction between wp and station, [radius], [precision], [witchspace cloud]) (why not the same three options?). (Method names subject to change by the authorities, of course.)
EDIT: And come to think of it, [precision] isn't actually needed, if we have already [radius], which all by itself gives control of the precision. So we can drop one of the parameters again, and end up with
system.addShipsAt(role, number, coordScheme, vector, [radius], [witchspace cloud]).
The current
spawnShip could be dropped altogether, because its only purpose (being able to set the orientation of the added entity) can be achieved
better through a ship-script.
So of the old family only
spawn is left, which is already a method of the Ship-class, and serves its own purpose.
The jungle of ship-adding methods would finally be gone.