Let's make a deal, if you guys provide new content (new variants) I will make a standalone version with better support for all the factions (more polished code).
Spoiler
static {
Map allVariantsTemp = new HashMap();
allVariantsTemp.put("atlas",createVariantList(new String[]{"atlas_Standard"}));
allVariantsTemp.put("dominator",createVariantList(new String[]{"dominator_ass", "dominator_pun", "dominator_sho", "dominator_sni", "dominator_sto","dominatorhe_sup", "dominatorhe_ult"}));
allVariantsTemp.put("dram",createVariantList(new String[]{"dram_ass", "dram_lig", "dram_sni", "dram_sto", "dram_sup"}));
allVariantsTemp.put("enforcer",createVariantList(new String[]{"enforcer_ass", "enforcer_out", "enforcer_sho", "enforcer_sni", "enforcer_str","enforcerhe_cru", "enforcerhe_tor"}));
allVariantsTemp.put("hound",createVariantList(new String[]{"hound_ass", "hound_hvs", "hound_rai", "hound_sni", "hound_sto"}));
allVariantsTemp.put("lasher",createVariantList(new String[]{"lasher_bul", "lasher_hun", "lasher_nee", "lasher_pd", "lasher_pun", "lasher_sup", "lasher_trr"}));
allVariantsTemp.put("mule",createVariantList(new String[]{"mulep_ass", "mulep_eli", "mulep_out", "mulep_sta", "mulep_sup"}));
allVariantsTemp.put("onslaught",createVariantList(new String[]{"onslaught_bul", "onslaught_eli", "onslaught_out", "onslaught_pun", "onslaught_sni", "onslaught_sta", "onslaught_sto","onslaughthe_hur", "onslaughthe_tsu"}));
allVariantsTemp.put("phaeton",createVariantList(new String[]{"phaetoni_har", "phaetoni_sni", "phaetoni_sta", "phaetoni_sto", "phaetoni_str"}));
allVariantsTemp.put("condor",createVariantList(new String[]{"condor_ass", "condor_out", "condor_sni", "condor_sto", "condor_str"}));
allVariantsTemp.put("tarsus",createVariantList(new String[]{"tarsusi_ass", "tarsusi_com", "tarsusi_sni", "tarsusi_sto", "tarsusi_sup"}));
allVariantsTemp.put("valkyrie",createVariantList(new String[]{"valkyriei_sto", "valkyriei_def", "valkyriei_eli", "valkyriei_run", "valkyriei_sni"}));
Variants_HE = Collections.unmodifiableMap(allVariantsTemp);
}
static {
Map allVariantsTemp = new HashMap();
allVariantsTemp.put("phaeton",createVariantList(new String[]{"phaetoni_har", "phaetoni_sni", "phaetoni_sta", "phaetoni_sto", "phaetoni_str"}));
allVariantsTemp.put("atlas",createVariantList(new String[]{"atlas_Standard"}));
allVariantsTemp.put("doom",createVariantList(new String[]{"doomi_ass", "doomi_bul", "doomi_pun", "doomi_str"}));
allVariantsTemp.put("dram",createVariantList(new String[]{"drami_ass", "drami_out", "drami_pd", "drami_pun", "drami_sup"}));
allVariantsTemp.put("eagle",createVariantList(new String[]{"eaglei_ass", "eaglei_bal", "eaglei_pul", "eaglei_pun", "eaglei_sni", "eaglei_sto", "eaglei_str"}));
allVariantsTemp.put("falcon",createVariantList(new String[]{"falconi_att", "falconi_bal", "falconi_cs", "falconi_out", "falconi_pun", "falconi_sni", "falconi_sta", "falconi_sto"}));
allVariantsTemp.put("gemini",createVariantList(new String[]{"geminii_cla", "geminii_cs", "geminii_out", "geminii_sni", "geminii_sta", "geminii_sto", "geminii_str", "geminii_sup"}));
allVariantsTemp.put("hammerhead",createVariantList(new String[]{"hammerheadi_bal", "hammerheadi_bul", "hammerheadi_eli", "hammerheadi_out", "hammerheadi_pun", "hammerheadi_sni", "hammerheadi_str","hammerheadie_sup", "hammerheadie_twi"}));
allVariantsTemp.put("hound",createVariantList(new String[]{"houndi_ass", "houndi_hes", "houndi_mac", "houndi_str"}));
allVariantsTemp.put("lasher",createVariantList(new String[]{"lasheri_def", "lasheri_pus", "lasheri_str"}));
allVariantsTemp.put("medusa",createVariantList(new String[]{"medusai_att", "medusai_cs", "medusai_pd", "medusai_sho", "medusai_str"}));
allVariantsTemp.put("odyssey",createVariantList(new String[]{"odysseyi_bea", "odysseyi_sho", "odysseyi_str", "odyssey_Raycaster"}));
allVariantsTemp.put("mule",createVariantList(new String[]{"mulei_ass", "mulei_bur", "mulei_sho", "mulei_sni", "mulei_sto"}));
allVariantsTemp.put("shade",createVariantList(new String[]{"shadei_ass", "shadei_hun", "shadei_sho", "shadei_sni", "shadei_sto"}));
allVariantsTemp.put("shuttle",createVariantList(new String[]{"shuttlei_ass", "shuttlei_att", "shuttlei_bur", "shuttlei_pd", "shuttlei_sni", "shuttlei_sta", "shuttlei_sto", "shuttlei_sup"}));
allVariantsTemp.put("sunder",createVariantList(new String[]{"sunderi_ass", "vbul", "sunderi_cs", "sunderi_hun", "sunderi_pla", "sunderi_pul", "sunderi_str"}));
allVariantsTemp.put("tarsus",createVariantList(new String[]{"tarsusi_ass", "tarsusi_com", "tarsusi_sni", "tarsusi_sto", "tarsusi_sup"}));
allVariantsTemp.put("afflictor",createVariantList(new String[]{"afflictori_ass", "afflictori_hun", "afflictori_str"}));
allVariantsTemp.put("apogee",createVariantList(new String[]{"apogeei_ass", "apogeei_bal", "apogeei_cru", "apogeei_pun", "apogeei_str"}));
allVariantsTemp.put("aurora",createVariantList(new String[]{"aurorai_ass", "aurorai_att", "aurorai_str"}));
allVariantsTemp.put("brawler",createVariantList(new String[]{"brawleri_ass", "brawleri_bul", "brawleri_old", "brawleri_out", "brawleri_pun", "brawleri_sni", "brawleri_sto"}));
allVariantsTemp.put("buffalo",createVariantList(new String[]{"buffaloi_ass", "buffaloi_pd", "buffaloi_sta", "buffaloi_str", "buffaloi_sup"}));//TT
allVariantsTemp.put("conquest",createVariantList(new String[]{"conquesti_ass", "conquesti_bul", "conquesti_eli", "conquesti_out", "conquesti_sho", "conquesti_sni", "conquesti_sto", "conquest_Flyswatter"}));
allVariantsTemp.put("dominator",createVariantList(new String[]{"dominatori_ass", "dominatori_sho", "dominatori_sni", "dominatori_str"}));
allVariantsTemp.put("wolf",createVariantList(new String[]{"wolfi_ass", "wolfi_cs", "wolfi_pd", "wolfi_pom", "wolfi_str"}));
allVariantsTemp.put("vigilance",createVariantList(new String[]{"vigilancei_ass", "vigilancei_fis", "vigilancei_hun", "vigilancei_inh", "vigilancei_pat", "vigilancei_str", "vigilancei_sup"}));
allVariantsTemp.put("venture",createVariantList(new String[]{"venturei_pd", "venturei_pun", "venturei_sni", "venturei_sto", "venturei_sup"}));
allVariantsTemp.put("valkyrie",createVariantList(new String[]{"valkyriei_sto", "valkyriei_def", "valkyriei_eli", "valkyriei_run", "valkyriei_sni"}));
Variants_IND = Collections.unmodifiableMap(allVariantsTemp);
}
static {
Map allVariantsTemp = new HashMap();
allVariantsTemp.put("condor",createVariantList(new String[]{"condorp_ass", "condorp_fis", "condorp_pd", "condorp_str", "condorp_sup"}));
allVariantsTemp.put("buffalo2",createVariantList(new String[]{"buffalo2p_ass", "buffalo2p_har", "buffalo2p_spa", "buffalo2p_str", "buffalo2p_sup"}));
allVariantsTemp.put("enforcer",createVariantList(new String[]{"enforcerp_ass", "enforcerp_bal", "enforcerp_cs", "enforcerp_eli", "enforcerp_hun", "enforcerp_out", "enforcerp_str","enforcerpe_blb", "enforcerpe_heh"}));
allVariantsTemp.put("hound",createVariantList(new String[]{"houndp_ass", "houndp_out", "houndp_rac", "houndp_str"}));
allVariantsTemp.put("lasher",createVariantList(new String[]{"lasherp_ass", "lasherp_ast", "lasherp_cls", "lasherp_sal", "lasherp_sho", "lasherp_sto", "lasherp_str"}));
allVariantsTemp.put("mule",createVariantList(new String[]{"mulep_ass", "mulep_eli", "mulep_out", "mulep_sta", "mulep_sup"}));
allVariantsTemp.put("tarsus",createVariantList(new String[]{"tarsusp_ass", "tarsusp_out", "tarsusp_pd", "tarsusp_sta", "tarsusp_str"}));
allVariantsTemp.put("dominator",createVariantList(new String[]{"dominatorp_ass", "dominatorp_che", "dominatorp_hun", "dominatorp_out", "dominatorp_sho", "dominatorp_str", "dominatorp_sup","dominatorpe_dev", "dominatorpe_rin"}));
allVariantsTemp.put("venture",createVariantList(new String[]{"venturep_ass", "venturep_bal", "venturep_out", "venturep_pun", "venturep_sup"}));
Variants_PP = Collections.unmodifiableMap(allVariantsTemp);
}
static {
Map allVariantsTemp = new HashMap();
allVariantsTemp.put("odyssey",createVariantList(new String[]{"odyssey_ass", "odyssey_bul", "odyssey_sni", "odyssey_str","odysseyte_eli", "odysseyte_ult", "odyssey_Raycaster"}));
allVariantsTemp.put("omen",createVariantList(new String[]{"omen_att", "omen_hun", "omen_pd", "omen_sho", "omen_str"}));
allVariantsTemp.put("tempest",createVariantList(new String[]{"tempest_att", "tempest_bea", "tempest_hun", "tempest_pd", "tempest_pun", "tempest_sho", "tempest_str"}));
allVariantsTemp.put("afflictor",createVariantList(new String[]{"afflictor_bea", "afflictor_hun", "afflictor_out", "afflictor_sni", "afflictor_sto", "afflictor_str", "afflictor_sup"}));
allVariantsTemp.put("astral",createVariantList(new String[]{"astral_att", "astral_eli", "astral_pd"}));
allVariantsTemp.put("wolf",createVariantList(new String[]{"wolf_ass", "wolf_bea", "wolf_bul", "wolf_pun", "wolf_str"}));
allVariantsTemp.put("shade",createVariantList(new String[]{"shade_pd", "shade_pun", "shade_str", "shade_sup", "shade_swa"}));
allVariantsTemp.put("paragon",createVariantList(new String[]{"paragon_ass", "paragon_bul", "paragon_eli", "paragon_hun", "paragon_str","paragonte_sup", "paragonte_ult"}));
allVariantsTemp.put("medusa",createVariantList(new String[]{"medusa_ass", "medusa_att", "medusa_bul", "medusa_sho", "medusa_str", "medusate_eli", "medusate_sup"}));
allVariantsTemp.put("hyperion",createVariantList(new String[]{"hyperion_att", "hyperion_hun", "hyperion_out", "hyperion_pun", "hyperion_str"}));
allVariantsTemp.put("doom",createVariantList(new String[]{"doom_ass", "doom_hun", "doom_sho", "doom_str"}));
allVariantsTemp.put("aurora",createVariantList(new String[]{"aurora_ass", "aurora_att", "aurora_bal", "aurora_sta", "aurora_str"}));
allVariantsTemp.put("buffalo",createVariantList(new String[]{"buffaloi_ass", "buffaloi_pd", "buffaloi_sta", "buffaloi_str", "buffaloi_sup"}));
allVariantsTemp.put("sunder",createVariantList(new String[]{"sunderi_ass", "vbul", "sunderi_cs", "sunderi_hun", "sunderi_pla", "sunderi_pul", "sunderi_str"}));
Variants_TT = Collections.unmodifiableMap(allVariantsTemp);
}
If you guys could review, add or polish some of the variants, it would be great and a big incentive to make this happen. We also need more variants for the new 0.6.2a ships. if some of you agree wit this I can write down the naming conventions and general "rules".