namespace EDPlayerJournal;

public class NPCs {
    /// <summary>
    /// Internal name of Spec Ops Wing Alpha
    /// </summary>
    public static string SpecOpsAInternal = "$LUASC_Scenario_Warzone_NPC_SpecOps_A;";

    /// <summary>
    /// Internal name of Spec Ops Wing Beta
    /// </summary>
    public static string SpecOpsBInternal = "$LUASC_Scenario_Warzone_NPC_SpecOps_B;";

    /// <summary>
    /// Internal name of Spec Ops Wing Gamma
    /// </summary>
    public static string SpecOpsGInternal = "$LUASC_Scenario_Warzone_NPC_SpecOps_G;";

    /// <summary>
    /// Internal name of Spec Ops Wing Delta
    /// </summary>
    public static string SpecOpsDInternal = "$LUASC_Scenario_Warzone_NPC_SpecOps_D;";

    /// <summary>
    /// Empire captain
    /// </summary>
    public static string EmpireCaptain = "$LUASC_Scenario_Warzone_NPC_WarzoneGeneral_Emp;";

    /// <summary>
    /// Federation captain
    /// </summary>
    public static string FederationCaptain = "$LUASC_Scenario_Warzone_NPC_WarzoneGeneral_Fed;";

    /// <summary>
    /// Federation captain
    /// </summary>
    public static string IndependentCaptain = "$LUASC_Scenario_Warzone_NPC_WarzoneGeneral_Ind;";

    /// <summary>
    /// Warzone correspondant
    /// </summary>
    public static string WarzoneCorrespondent = "$LUASC_Scenario_Warzone_NPC_WarzoneCorrespondent;";

    /// <summary>
    /// AX Military NPC
    /// </summary>
    public static string AXMilitary = "$Name_AX_Military;";

    /// <summary>
    /// Returns true if the pilotname is either a captain, specops, or correspondent
    /// </summary>
    /// <param name="pilotname"></param>
    /// <returns></returns>
    public static bool IsWarzoneNPC(string? pilotname) {
        if (IsWarzoneCaptain(pilotname) || 
            IsWarzoneCorrespondent(pilotname) ||
            IsSpecOps(pilotname)) {
            return true;
        }

        return false;
    }

    /// <summary>
    /// Returns true if the given pilot name is a warzone correspondent
    /// </summary>
    /// <param name="name"></param>
    /// <returns></returns>
    public static bool IsWarzoneCorrespondent(string? pilotname) {
        if (pilotname == null) {
            return false;
        }

        if (string.Compare(pilotname, WarzoneCorrespondent) == 0) {
            return true;
        }

        return false;
    }

    /// <summary>
    /// Returns true if the given pilot name is a spec ops wing.
    /// </summary>
    /// <param name="name"></param>
    /// <returns></returns>
    public static bool IsSpecOps(string? pilotname) {
        if (pilotname == null) {
            return false;
        }

        if (string.Compare(pilotname, SpecOpsAInternal) == 0 ||
            string.Compare(pilotname, SpecOpsBInternal) == 0 ||
            string.Compare(pilotname, SpecOpsGInternal) == 0 ||
            string.Compare(pilotname, SpecOpsDInternal) == 0) {
            return true;
        }

        return false;
    }

    /// <summary>
    /// Returns true if the given pilot name is a warzone captain
    /// </summary>
    /// <param name="name"></param>
    /// <returns></returns>
    public static bool IsWarzoneCaptain(string? pilotname) {
        if (pilotname == null) {
            return false;
        }

        if (string.Compare(pilotname, EmpireCaptain) == 0 ||
            string.Compare(pilotname, FederationCaptain) == 0 ||
            string.Compare(pilotname, IndependentCaptain) == 0) {
            return true;
        }

        return false;
    }
}

public class NPC {
}
