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>
117 lines
5.1 KiB
XML
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>
|