BTGame pane + shell de-hardcode for multi-game pods (BT port phase 3)
BTGame mirrors RPGame - same GameStateData/state-machine/NetworkScan engine driving each pod's MungaGame (take ownership, stream egg on WaitingForEgg, Run/Abort/Stop, countdown) - with the BT differences: ApplicationID.BTL4, a pilots grid carrying Mech/Camo/Patch/Badge/Experience, an Advanced Damage checkbox in place of RP's Score Compression, and the Mech* in-match messages recorded via BTMissionRecorder into BTMissionResults (.btm, gzip + BinaryFormatter like .rpm; scores are 1000-based like RP). Free For All and No Return share the pane; the mode selects the pilots' role. BTDefaults persists per-mode operator defaults to BTDefaults.btd (no dialog yet). RPGame's dead decompile members (sStopToIdleStates, IsAllPodsAppState) were not carried over. TeslaConsoleForm no longer assumes RP: the "AppID != 0 -> Pod Not Running RP" check becomes a GameTag map (RPL4 -> RP, BTL4 -> BT, otherwise Unknown Pod Application) feeding the per-game status strings, and the Games menu gains BattleTech: Free For All / No Return. Deferred to phase 4: mech/arena art, BT defaults dialog, BT score-sheet print document, Apps.xml BT411 product, live-pod verification. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace TeslaConsole.BattleTech;
|
||||
|
||||
/// <summary>
|
||||
/// A mech took damage (<c>MechDamagedMessage</c>). Carries the Red Planet
|
||||
/// damage fields plus BT's damage-matrix extras: which zone was hit, whether it
|
||||
/// was destroyed, and the weapon that did it.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
internal class BTDamagedEvent : BTMissionEvent
|
||||
{
|
||||
public readonly BTPlayer Damager;
|
||||
|
||||
public readonly int DamageLoss;
|
||||
|
||||
public readonly int PointsTransfered;
|
||||
|
||||
public readonly int DamageZoneIndex;
|
||||
|
||||
public readonly bool DamageZoneDestroyed;
|
||||
|
||||
public readonly int WeaponIndex;
|
||||
|
||||
public override IEnumerable<BTPlayer> InvolvedPilots => new BTPlayer[2] { ReportingPilot, Damager };
|
||||
|
||||
public BTDamagedEvent(BTPlayer reportingPilot, TimeSpan missionTime, BTPlayer damager, int damageLoss, int pointsTransfered, int damageZoneIndex, bool damageZoneDestroyed, int weaponIndex)
|
||||
: base(reportingPilot, missionTime)
|
||||
{
|
||||
Damager = damager;
|
||||
DamageLoss = damageLoss;
|
||||
PointsTransfered = pointsTransfered;
|
||||
DamageZoneIndex = damageZoneIndex;
|
||||
DamageZoneDestroyed = damageZoneDestroyed;
|
||||
WeaponIndex = weaponIndex;
|
||||
}
|
||||
|
||||
private BTDamagedEvent()
|
||||
{
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user