using EDPlayerJournal;
using EDPlayerJournal.BGS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EliteBGS.LogGenerator;

public class ThargoidFormatter : LogFormatter {
    public string GenerateLog(Objective objective) {
        List<ThargoidKill> kills = objective.EnabledOfType<ThargoidKill>().ToList();

        if (kills.Count == 0 ) {
            return "";
        }

        Dictionary<ThargoidVessel, List<ThargoidKill>> sorted = kills
                                                                    .GroupBy(x => x.ThargoidType)
                                                                    .ToDictionary(x => x.Key, x => x.ToList())
                                                                    ;

        StringBuilder builder = new StringBuilder();
        foreach (var k in sorted) {
            string name = Thargoid.GetVesselName(k.Key);
            builder.AppendFormat("{0}x {1}(s) killed\n", k.Value.Count, name);
        }

        return builder.ToString();
    }
}