cave lineup: Mewtwo and Articuno, each where it lives

Cerulean Cave B1F and Seafoam Islands B4F. The RUNS rows gain a rung column
because a cave is where the choice actually matters: STADIUM A stages the
fight on the map and wants clear ground, and a cave floor often has none,
which is what STADIUM B's carried discs exist for. Both are on A -- checked
rather than assumed, and Cerulean Cave stages fine (noArena=0), with the
walls framing the model better than open ground does.

Worth noting for anyone reading the shot: shiny Mewtwo does NOT come out lime
green here. The Stadium values rotate its purple toward blue instead, which
is the fidelity:poor case the guide flags -- the model is right, the
divergence is Stadium's own.
This commit is contained in:
DramaticShape
2026-08-08 13:49:26 -04:00
parent 0091e6d93b
commit 55145e3faf
2 changed files with 17 additions and 11 deletions
+5 -1
View File
@@ -86,7 +86,11 @@ return function(game)
end
end
OverworldBattle.setting:setValue("stadium", game)
-- STADIUM A stages the fight on the MAP, which wants clear ground. A cave
-- floor often has none, and the mode's answer there is STADIUM B: the two
-- carried discs, which work anywhere. DS_RUNG picks between them per
-- encounter rather than forcing one choice on every location.
OverworldBattle.setting:setValue(os.getenv("DS_RUNG") or "stadium", game)
-- THE PARTY IS BUILT FIRST, at ordinary odds, and the roll is only pinned
-- afterwards. Pokemon.new is where shininess is decided, so setting the
+12 -10
View File
@@ -18,16 +18,18 @@ set -u
LOVE=${LOVE:-/c/Program Files/LOVE/lovec.exe}
DRIVER=mods/DramaticShapeVoxelMod/tests/shiny_one.lua
# species | level | map | cell x | cell y
# species | level | map | cell x | cell y | rung
#
# Each in its own outdoor place so no two takes look alike. A species
# or map this dataset does not have is skipped with a line rather than
# failing the run, so trimming this list is just deleting rows.
# Each legendary in the cave it actually lives in. A species or map this
# dataset does not have is skipped with a line rather than failing the run,
# so trimming this list is just deleting rows.
#
# The rung column picks STADIUM A (the fight staged on the map itself) or
# STADIUM B (the two carried discs). A cave floor is cramped and often has no
# clear ground to stage on, which is precisely what B exists for.
RUNS=(
"CHARIZARD|50|ROUTE_4|10|5"
"ELECTRODE|40|VIRIDIAN_CITY|20|20"
"VAPOREON|42|ROUTE_25|12|5"
"DRATINI|30|ROUTE_3|10|5"
"MEWTWO|70|CERULEAN_CAVE_B1F|7|4|stadium"
"ARTICUNO|50|SEAFOAM_ISLANDS_B4F|7|4|stadium"
)
OPTS="$APPDATA/LOVE/pokemon-love2d/options.lua"
@@ -39,12 +41,12 @@ fi
i=0
for row in "${RUNS[@]}"; do
i=$((i + 1))
IFS='|' read -r SPECIES LEVEL MAP CX CY <<< "$row"
IFS='|' read -r SPECIES LEVEL MAP CX CY RUNG <<< "$row"
echo ""
echo "=== $i/${#RUNS[@]} $SPECIES at $MAP ==="
echo " close the window when you are done recording it"
DS_SPECIES="$SPECIES" DS_LEVEL="$LEVEL" DS_MAP="$MAP" \
DS_CX="$CX" DS_CY="$CY" \
DS_CX="$CX" DS_CY="$CY" DS_RUNG="${RUNG:-stadium}" \
POKEPORT_DRIVER="$DRIVER" "$LOVE" .
done