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

namespace EDPlayerJournal;

public enum ThargoidVessel {
    Unknown = 0,
    Scout = 1,
    /// <summary>
    /// According to AX wiki no longer found ingame
    /// </summary>
    Orthrus = 2,
    Cyclops = 3,
    Basilisk = 4,
    Medusa = 5,
    Hydra = 6,
}

public class Thargoid {
    public static string ThargoidFaction = Factions.Thargoid;

    public static Dictionary<ulong, ThargoidVessel> VesselPayout { get; } = new() {
        {    80000, ThargoidVessel.Scout },
        {  8000000, ThargoidVessel.Cyclops },
        { 24000000, ThargoidVessel.Basilisk },
        { 40000000, ThargoidVessel.Medusa },
        { 60000000, ThargoidVessel.Hydra },
    };

    public static Dictionary<ThargoidVessel, string?> VesselNames { get; } = new() {
        { ThargoidVessel.Unknown, null },
        { ThargoidVessel.Scout, "Thargoid Scout" },
        { ThargoidVessel.Orthrus, "Orthrus" },
        { ThargoidVessel.Cyclops, "Cyclops" },
        { ThargoidVessel.Basilisk, "Basilisk" },
        { ThargoidVessel.Medusa, "Medusa" },
        { ThargoidVessel.Hydra, "Hydra" },
    };

    public static ThargoidVessel GetVesselByPayout(ulong payout) {
        if (VesselPayout.ContainsKey(payout)) {
            return VesselPayout[payout];
        }
        return ThargoidVessel.Unknown;
    }

    public static string? GetVesselName(ThargoidVessel v) {
        if (VesselNames.ContainsKey(v)) {
            return VesselNames[v];
        }
        return null;
    }
}