using System;
using System.Collections.Generic;
using System.Text;

namespace TeslaConsole.BattleTech;

/// <summary>
/// The BattleTech battle mission. Both operator game modes — Free For All and
/// No Return — are produced by this class and send <c>scenario=freeforall</c> on
/// the wire (confirmed by both golden eggs); the two modes differ only in the
/// role assigned to each <see cref="BTPlayer" />.
/// </summary>
[Serializable]
internal class BTFreeForAllMission : BTMission
{
	public const string ScenarioTag = "freeforall";

	private readonly List<BTPlayer> mPlayers = new List<BTPlayer>();

	public List<BTPlayer> BattlePlayers => mPlayers;

	public override IEnumerable<BTPlayer> Players => mPlayers.ToArray();

	public override int PlayerCount => mPlayers.Count;

	public BTFreeForAllMission(string mapKey, string timeOfDayKey, string weatherKey, int temperature, TimeSpan gameLength)
		: base(ScenarioTag, mapKey, timeOfDayKey, weatherKey, temperature, gameLength)
	{
	}

	protected override void AppendMissionSpecificData(StringBuilder egg)
	{
	}
}
