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>
45 lines
1000 B
C#
45 lines
1000 B
C#
using System.Xml;
|
|
|
|
namespace TeslaConsole.BattleTech;
|
|
|
|
/// <summary>
|
|
/// A BattleTech pilot role. Each participant references one role
|
|
/// (<c>role=Role::<Key></c>); the egg then carries a matching
|
|
/// <c>[Role::<Key>] model=<Model></c> block. Free For All uses the
|
|
/// Default role, No Return uses the NoReturn role.
|
|
/// </summary>
|
|
public class BTRole
|
|
{
|
|
private readonly string mKey;
|
|
|
|
private readonly string mModel;
|
|
|
|
private readonly string mName;
|
|
|
|
public string Key => mKey;
|
|
|
|
public string Model => mModel;
|
|
|
|
public string Name => mName;
|
|
|
|
internal BTRole(XmlNode roleNode)
|
|
{
|
|
mKey = roleNode.Attributes["key"].InnerText;
|
|
mModel = roleNode.Attributes["model"].InnerText;
|
|
XmlAttribute xmlAttribute = roleNode.Attributes["name"];
|
|
mName = ((xmlAttribute != null) ? xmlAttribute.InnerText : mKey);
|
|
}
|
|
|
|
public BTRole(string key, string model, string name)
|
|
{
|
|
mKey = key;
|
|
mModel = model;
|
|
mName = name;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return mName;
|
|
}
|
|
}
|