/**
* @file
* @brief JS sidecar for space.dpl — maybeAddSize() inline size prefix + switch blocks.
* Invoked via `script: space.js`. See notes/reference/dpl-design.md (the JS bridge).
*/
import _ from "lodash";
// 50% chance of a "{size} " prefix (space-joined), else "".
function maybeAddSize() {
return _.random(0.0, 1.0, true) < 0.5 ? "{size} " : "";
}
/**
* Generate the space scene (ported from v2 scene/space.js).
* @returns {string} The generated prompt fragment.
*/
export default function () {
let prompt = "space, outer space";
if (_.random(0.0, 1.0, true) < 0.5) {
switch (_.random(0, 1, false)) {
case 0:
prompt += ", astronaut";
break;
case 1:
prompt += ", {#portrait-person}";
break;
}
}
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", {#ship}";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", satellite";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", nebula";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", galaxy";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", quasars";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", abell cluster";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", solar system";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", universe";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", cosmos";
if (_.random(0.0, 1.0, true) < 0.5) prompt += `, {#color} ${maybeAddSize()}sun`;
if (_.random(0.0, 1.0, true) < 0.5) prompt += `, {#color} ${maybeAddSize()}moon`;
if (_.random(0.0, 1.0, true) < 0.5) {
switch (_.random(0, 1, false)) {
case 0:
prompt += `, {#color} ${maybeAddSize()}planet`;
break;
case 1:
prompt += `, {#color} ${maybeAddSize()}{planet}`;
break;
}
}
if (_.random(0.0, 1.0, true) < 0.5) prompt += `, {#color} ${maybeAddSize()}star`;
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", shooting star";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", comet";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", meteor";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", meteor shower";
if (_.random(0.0, 1.0, true) < 0.5) prompt += `, ${maybeAddSize()}astronomical object`;
if (_.random(0.0, 1.0, true) < 0.5) prompt += `, ${maybeAddSize()}celestial object`;
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", neutron stars";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", exoplanet";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", supernova";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", gamma ray burst";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", pulsar";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", black hole";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", constellations";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", void";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", colorful";
if (_.random(0.0, 1.0, true) < 0.5) prompt += ", beautiful";
prompt += ", {#mystical}";
return prompt;
}