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()
	{
	}
}
