Files
TeslaSuite/Console/BattleTech/BTConfig.xml
T
CydandClaude Fable 5 9148ce2cca BattleTech egg builder, catalog, and golden-egg DiffTests (BT port phases 1-2)
New TeslaConsole.BattleTech namespace mirroring TeslaConsole.RedPlanet's
mission layer: BTMission/BTFreeForAllMission (egg serializer; RP wire framing
and ordinal bitmaps reused verbatim), BTParticipant/BTPlayer/BTCamera (BT
participant fields: advancedDamage, experience, vehicleValue, patch, role),
and the BTConfig/BTScenario/BTMap/BTVehicle/BTWeather/BTRole catalog loaded
from BattleTech\BTConfig.xml (reconstructed from the Mac Console 4.10 ini BT
tree). Free For All and No Return share one mission class - both send
scenario=freeforall; the mode is the role assigned to each pilot.

BTGoldenEggTests (7 tests, recovered-only) diff the generated egg
field-by-field against two eggs captured from the original consoles
(cavern.egg, TESTARN.EGG): order-independent per-section compare with
font-rendered bitmap pixel rows excluded, ordinal art byte-exact vs
TESTARN.EGG, EggFileMessage framing reassembly, role de-dup, No Return role
semantics, and shipped-catalog contents. Invoker gains BTEggString/
BTEggFraming reflection cases.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 22:28:07 -05:00

117 lines
5.1 KiB
XML

<?xml version="1.0" encoding="utf-8" ?>
<!--
BattleTech data catalog for TeslaConsole (mirror of RedPlanet\RPConfig.xml).
Reconstructed from the Mac Console 4.10 `Console.ini` BattleTech tree
(Adventure::Solo::BattleTech -> Location -> Scenario -> Time/Weather/
Experience/Vehicle/Emblem/DropZone/Camo/Patch) and the two console-generated
golden eggs (410console/battletech-port/reference/cavern.egg, TESTARN.EGG).
Wire (egg) mapping of the console fields:
scenario -> [mission] scenario= (BOTH Free For All and No Return send "freeforall")
map -> [mission] map=
time -> [mission] time=
weather -> [mission] weather= (temperature is a property of the weather entry)
experience-> participant experience=
vehicle -> participant vehicle= (the mech)
color -> participant color= (this is the CAMO list)
patch -> participant patch= (a color-name list, distinct from camo)
badge -> participant badge= (the faction EMBLEM)
role -> participant role=Role::<key>, plus a [Role::<key>] model=<model> block
Free For All and No Return differ ONLY by the pilot role (Default vs NoReturn);
both emit scenario=freeforall on the wire. Image assets are added in a later
phase (the image= attribute is optional; a missing one just shows the name).
Map-specific restrictions from the Mac ini that this flat model does NOT yet
enforce (candidates for a later refinement): Cavern is night-only; Ravines has
no "clear" weather (fog/soup only); Polar Missile Base uses 4 drop zones.
-->
<BattleTech>
<freeforall name="Free For All">
<!-- Pilot skill. key = egg value; name = operator-facing label (Mac STR# 307). -->
<experience key="novice" name="Standard" />
<experience key="standard" name="Veteran" />
<experience key="veteran" name="Expert" />
<!-- color= : mech camo (Mac BT::Standard::Camo::* tags). -->
<color key="Grey" name="Grey" />
<color key="White" name="White" />
<color key="Black" name="Black" />
<color key="Brown" name="Brown" />
<color key="Crimson" name="Crimson" />
<color key="Green" name="Green" />
<color key="Tan" name="Tan" />
<!-- patch= : team/badge color (Mac BT::Standard::Badge* tags). -->
<patch key="Red" name="Red" />
<patch key="Yellow" name="Yellow" />
<patch key="Blue" name="Blue" />
<patch key="Green" name="Green" />
<patch key="Grey" name="Grey" />
<patch key="Violet" name="Violet" />
<patch key="White" name="White" />
<patch key="Black" name="Black" />
<!-- badge= : faction emblem (Mac BT::5DropZone::* emblem tags / STR# 3006). -->
<badge key="VGL" name="VGL" />
<badge key="Davion" name="Davion" />
<badge key="Kurita" name="Kurita" />
<badge key="Liao" name="Liao" />
<badge key="Marik" name="Marik" />
<badge key="Steiner" name="Steiner" />
<badge key="None" name="None" />
<!-- role= : Free For All uses Default, No Return uses NoReturn. model= is the
egg value (Mac ini tags dfltrole/noreturn; TESTARN.EGG emitted "noretun"
for NoReturn, so that spelling is used as the pod consumed it). -->
<role key="Default" model="dfltrole" name="Default" />
<role key="NoReturn" model="noretun" name="No Return" />
</freeforall>
<!-- Arenas. key = egg map value (Mac tag=); name = Mac STR# 3000 label. -->
<map key="arena1" name="Abandoned Arena" />
<map key="arena2" name="Destroyed Arena" />
<map key="polar3" name="Polar Missile Base" />
<map key="polar4" name="Helicopter Base" />
<map key="rav" name="Ravines" />
<map key="grass" name="Savannah" />
<map key="dbase" name="Badlands" />
<map key="cavern" name="Cavern" />
<!-- Mechs. key = egg vehicle value (Mac tag=); name = Mac STR# 3002 label. -->
<vehicle key="blkhawk" name="Blackhawk" />
<vehicle key="loki" name="Loki" />
<vehicle key="bhk1" name="Nova" />
<vehicle key="madcat" name="Mad Cat" />
<vehicle key="owens" name="Owens" />
<vehicle key="thor" name="Thor" />
<vehicle key="vulture" name="Vulture" />
<vehicle key="avatar" name="Avatar" />
<vehicle key="sunder" name="Sunder" />
<vehicle key="mad1" name="Timber Wolf" />
<vehicle key="ava1" name="Satyr" />
<vehicle key="lok1" name="Hellbringer" />
<vehicle key="thr1" name="Summoner" />
<vehicle key="vul1" name="Maddog" />
<vehicle key="own1" name="Kotori" />
<vehicle key="snd1" name="Denkou" />
<vehicle key="lok2" name="Mischief" />
<vehicle key="mad2" name="Zanin Neko" />
<!-- Time of day (Mac STR# 301 / BT TimeList). -->
<time key="morning" name="Morning" />
<time key="day" name="Day" />
<time key="evening" name="Evening" />
<time key="night" name="Night" />
<!-- Weather. temperature is carried on the weather entry (both known BT weathers
report 27 in the Mac ini); it becomes the egg [mission] temperature=. -->
<weather key="clear" name="Clear" temperature="27" />
<weather key="fog" name="Light Fog" temperature="27" />
<weather key="soup" name="Heavy Fog" temperature="27" />
</BattleTech>