package data.scripts.world.corvus;

import java.util.List;

import com.fs.starfarer.api.campaign.CampaignFleetAPI;
import com.fs.starfarer.api.campaign.CargoAPI;
import com.fs.starfarer.api.campaign.FleetAssignment;
import com.fs.starfarer.api.campaign.SectorAPI;
import com.fs.starfarer.api.campaign.SectorEntityToken;
import com.fs.starfarer.api.campaign.SectorGeneratorPlugin;
import com.fs.starfarer.api.campaign.StarSystemAPI;
import com.fs.starfarer.api.campaign.CargoAPI.CrewXPLevel;
import com.fs.starfarer.api.fleet.FleetMemberType;

@SuppressWarnings("unchecked")
public class Corvus implements SectorGeneratorPlugin {

	@Override
	public void generate(SectorAPI sector) {	
		StarSystemAPI system = sector.getStarSystem("Corvus");

		SectorEntityToken hegemonyStation = system.addOrbitalStation(system.getEntityByName("Corvus II"), 45, 300, 50, "Orbital Station", "hegemony");
		SectorEntityToken tritachyonStation = system.addOrbitalStation(system.getEntityByName("Corvus V"), 45, 300, 50, "Corporate HQ", "tritachyon");
		SectorEntityToken pirateStation = system.addOrbitalStation(system.getEntityByName("Corvus IIIA"), 45, 300, 50, "Hidden Base", "pirates");
		SectorEntityToken station2 = system.addOrbitalStation(system.getEntityByName("Corvus VI"), 45, 300, 50, "Junk Yard", "junk_pirates");
		
		initOrbitalStationCargo(sector, hegemonyStation);
		initTriTachyonHQCargo(sector, tritachyonStation);
		initPirateBaseCargo(sector, pirateStation);
		
		SectorEntityToken token = system.createToken(-15000, -15000);
		system.addSpawnPoint(new PiratesConvoySpawnPoint(sector, system, 20, 1, token, pirateStation));
		
		//end of test station codes
		// Added stuff here - mendonca		

		token = system.createToken(15000, -15000);
		system.addSpawnPoint(new JunkPiratesConvoySpawnPoint(sector, system, 14, 1, token, station2));
		
		JunkPiratesSpawnPoint junkSpawn = new JunkPiratesSpawnPoint(sector, system, 5, 5, station2);
		system.addSpawnPoint(junkSpawn);
		
		for (int i = 0; i < 4; i++) junkSpawn.spawnFleet();
		
		CargoAPI cargo = station2.getCargo();
		cargo.addWeapons("pdburst", 1);
		cargo.addWeapons("junk_pirates_cutlass", 3);
		cargo.addWeapons("sabot", 5);
		cargo.addWeapons("swarmer", 5);
		cargo.addWeapons("junk_pirates_scatterpd", 3);
		cargo.addWeapons("junk_pirates_lexcimer", 2);
		cargo.addWeapons("pdlaser", 4);
		cargo.addWeapons("taclaser", 5);
		cargo.addWeapons("reaper", 5);
		cargo.addCrew(CrewXPLevel.VETERAN, 50);
		cargo.addCrew(CrewXPLevel.REGULAR, 250);
		cargo.addMarines(250);
		cargo.addSupplies(500);
		cargo.addFuel(500);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_clam_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_clam_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_boxer_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_langoustine_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_langoustine_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_langoustine_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_octopus_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_sickle_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_sickle_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_scythe_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_goat_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_sickle_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_sickle_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_hammer_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_hammer_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_hammer_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_stoatA_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_stoatB_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_orca_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_boxenstein_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_dugong_Hull",null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "junk_pirates_clam_Hull", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_spike_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_spike_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_spike_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_spike_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_spike_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_spike_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_shard_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_shard_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_cleat_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "junk_pirates_cleat_wing", null);
		
		//SectorEntityToken station3 = system.addOrbitalStation(corvusI, 45, 300, 50, "Salvage Yard", "independent");
		// End stuff added by mendonca .... thanks Paul
		
		PirateSpawnPoint pirateSpawn = new PirateSpawnPoint(sector, system, 1, 15, system.getEntityByName("Corvus IIIA"));
		system.addSpawnPoint(pirateSpawn);
		for (int i = 0; i < 10; i++) pirateSpawn.spawnFleet();
		
		HegemonyPatrolSpawnPoint patrolSpawn = new HegemonyPatrolSpawnPoint(sector, system, 5, 5, null);
		SectorEntityToken target=null;
		if((float)Math.random()>0.5f)
		{
			target=station2;
		}
		else
		{
			target=pirateStation;
		}
		HegeSpawnPoint patSpawn=new HegeSpawnPoint(sector, system, 5, 10, system.getEntityByName("Corvus II"),target);
		system.addSpawnPoint(patrolSpawn);
		for (int i = 0; i < 5; i++)
		{
			patSpawn.spawnFleet();
			patrolSpawn.spawnFleet();
		}
		
		token = system.createToken(0, 15000);
		HegemonySDFSpawnPoint sdfSpawn = new HegemonySDFSpawnPoint(sector, system, 15, 1, token, hegemonyStation);
		system.addSpawnPoint(sdfSpawn);
		spawnSDF(sector, system, hegemonyStation);
		
		
		TriTachyonSpawnPoint triSpawn = new TriTachyonSpawnPoint(sector, system, 5, 10, system.getEntityByName("Corvus V"), hegemonyStation);
		system.addSpawnPoint(triSpawn);
		for (int i = 0; i < 2; i++) triSpawn.spawnFleet();
		
		
		IndependentSpawnPoint independentSpawn = new IndependentSpawnPoint(sector, system, 5, 15, hegemonyStation);
		system.addSpawnPoint(independentSpawn);
		for (int i = 0; i < 2; i++) independentSpawn.spawnFleet();
		
		
		
		token = system.createToken(-15000, 15000);
		system.addSpawnPoint(new HegemonyConvoySpawnPoint(sector, system, 13, 1, token, hegemonyStation));
		system.addSpawnPoint(new HegeConvoySpawnPoint(sector, system, 30, 1, token, hegemonyStation));
		
		//Added stuff here - DeathSG
		
		token = system.createToken(15000, 0);
		system.addSpawnPoint(new GRConvoySpawnPoint(sector, system, 30, 1, token));
		token = system.createToken(15000, -15000);
		system.addSpawnPoint(new TTConvoySpawnPoint(sector, system, 14, 1, token));
		
		if((float)Math.random()<0.25f)
		{
			target=station2;
		}
		else if((float)Math.random()<0.5f)
		{
			target=pirateStation;
		}
		else if((float)Math.random()<0.75f)
		{
			target=tritachyonStation;
		}
		else
		{
			target=hegemonyStation;
		}        
		SectorEntityToken corvusVII=system.getEntityByName("Corvus VII");
		AlienSpawnPoint alienSpawn=new AlienSpawnPoint(sector,system,10,5,corvusVII,target);
		system.addSpawnPoint( alienSpawn );
		for( int i = 0; i < 5; ++i )
		alienSpawn.spawnFleet();
		
		AlienProphetSpawnPoint prophetSpawn=new AlienProphetSpawnPoint(sector,system,25,1,corvusVII);
		
		token = system.createToken(15000, -15000);
		system.addSpawnPoint(new TriTachyonSupplyFleetSpawnPoint(sector, system, 23, 1, token, tritachyonStation));
		system.addSpawnPoint(new TTConvoySpawnPoint(sector, system, 30, 1, tritachyonStation));
		token = system.createToken(15000, 0);
		system.addSpawnPoint(new PiratesConvoySpawnPoint(sector, system, 30, 1, token, pirateStation));
		system.addSpawnPoint(new PiratePlunderFleetSpawnPoint(sector, system, 17, 1, token, pirateStation));
		
	}

	
	private void spawnSDF(SectorAPI sector, StarSystemAPI system, SectorEntityToken location) {
		CampaignFleetAPI fleet = sector.createFleet("hegemony", "systemDefense");
		system.spawnFleet(location, -500, 200, fleet);
		
		fleet.addAssignment(FleetAssignment.DEFEND_LOCATION, location, 1000000);
//		
//		fleet = sector.createFleet("tritachyon", "securityDetachment");
//		system.spawnFleet(location, -200, 200, fleet);
//		fleet.addAssignment(FleetAssignment.DEFEND_LOCATION, location, 1000000);
		
	}
	
	private void initOrbitalStationCargo(SectorAPI sector, SectorEntityToken station) {
		CargoAPI cargo = station.getCargo();

		List weaponIds = sector.getAllWeaponIds();
		// for (int i = 0; i < 10; i++) {
		// String weaponId = (String) weaponIds.get((int) (weaponIds.size() *
		// Math.random()));
		// int quantity = (int)(Math.random() * 7 + 3);
		// cargo.addWeapons(weaponId, quantity);
		// }

		// focused on weapons that are hard to get from looting
		// and present an upgrade path for the initial ships
		// cargo.addWeapons("heavymg", 5);
		
		//strike
		cargo.addWeapons("bomb", 25);
		cargo.addWeapons("reaper", 12);
		
		//Support
		cargo.addWeapons("lightac", 25);
		cargo.addWeapons("lightmg", 40);
		cargo.addWeapons("annihilator", 10);
		cargo.addWeapons("taclaser", 10);

		cargo.addWeapons("harpoon_single", 12); //medium
		cargo.addWeapons("hurricane_medium", 12);

		//Hull
		cargo.addWeapons("lightmortar", 40);
		cargo.addWeapons("miningblaster", 1); //medium
		
		//PD
		cargo.addWeapons("swarmer", 5);
		cargo.addWeapons("mininglaser", 25);
		
		cargo.addWeapons("flak", 5); //medium
		cargo.addWeapons("shredder", 5); //medium
		
		cargo.addWeapons("annihilator", 9);
		cargo.addWeapons("annihilatorpod", 6);
		cargo.addWeapons("arbalest", 6);
		cargo.addWeapons("atropos", 9);
		cargo.addWeapons("atropos_single", 9);
		cargo.addWeapons("bomb", 9);
		cargo.addWeapons("clusterbomb", 9);
		cargo.addWeapons("chaingun", 6);
		cargo.addWeapons("cyclone", 3);
		cargo.addWeapons("dualflak", 6);
		cargo.addWeapons("fragbomb", 9);
		cargo.addWeapons("gauss", 3);
		cargo.addWeapons("harpoon", 9);
		cargo.addWeapons("harpoon_single", 9);
		cargo.addWeapons("harpoonpod", 6);
		cargo.addWeapons("hdstinger", 3);
		cargo.addWeapons("heatseeker", 9);
		cargo.addWeapons("heavyac", 6);
		cargo.addWeapons("heavymauler", 6);
		cargo.addWeapons("heavymg", 6);
		cargo.addWeapons("heavyneedler", 6);
		cargo.addWeapons("hellbore", 3);
		cargo.addWeapons("hephag", 3);
		cargo.addWeapons("hurricane", 3);
		cargo.addWeapons("hveldriver", 6);
		cargo.addWeapons("lightac", 9);
		cargo.addWeapons("lightag", 9);
		cargo.addWeapons("lightdualac", 9);
		cargo.addWeapons("lightmg", 9);
		cargo.addWeapons("lightmortar", 9);
		cargo.addWeapons("lightneedler", 9);
		cargo.addWeapons("mjolnir", 3);
		cargo.addWeapons("multineedler", 3);
		cargo.addWeapons("phasecl", 6);
		cargo.addWeapons("pilum", 6);
		cargo.addWeapons("railgun", 9);
		cargo.addWeapons("reaper", 9);
		cargo.addWeapons("sabot", 9);
		cargo.addWeapons("sabot_single", 9);
		cargo.addWeapons("sabotpod", 6);
		cargo.addWeapons("salamanderpod", 6);
		cargo.addWeapons("shredder", 6);
		cargo.addWeapons("stinger_single", 9);
		cargo.addWeapons("stinger", 9);
		cargo.addWeapons("stingerlauncher", 6);
		cargo.addWeapons("typhoon", 6);
		
		
//		cargo.addCrew(CrewXPLevel.ELITE, 25);
		// cargo.addCrew(CrewXPLevel.VETERAN, 200);
		cargo.addCrew(CrewXPLevel.REGULAR, 100);
		cargo.addCrew(CrewXPLevel.GREEN, 1500);
		cargo.addMarines(500);
		cargo.addSupplies(500);
		cargo.addFuel(500);
		
		cargo.addMothballedShip(FleetMemberType.SHIP, "rapier_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "rapier_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "creeper_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "creeper_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "gate_ancient", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "fireant_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "gate_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "fireant_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "bloodhound_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "bloodhound_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "oort_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "centipede_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "hyperion_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "vigilance_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "wolf_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "hound_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "lasher_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "brawler_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "dram_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "medusa_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "enforcer_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "condor_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "buffalo2_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "hammerhead_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "sunder_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "falcon_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "eagle_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "stilletto_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "brawler2_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "ursidae_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "axehead_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "spearhead_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "spearhead2_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "buckler_Hull", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "broadsword_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "broadsword_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "piranha_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "piranha_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "thunder_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "gladius_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "warthog_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "talon_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "talon_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "warthog_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "warthog_wing", null);
	}

	private void initTriTachyonHQCargo(SectorAPI sector, SectorEntityToken station) {
		CargoAPI cargo = station.getCargo();

		List weaponIds = sector.getAllWeaponIds();
		cargo.addCrew(CrewXPLevel.ELITE, 12);
		cargo.addCrew(CrewXPLevel.VETERAN, 20);
		cargo.addCrew(CrewXPLevel.REGULAR, 150);
		// cargo.addCrew(CrewXPLevel.GREEN, 1500);
		cargo.addMarines(100);
		cargo.addSupplies(100);
		cargo.addFuel(1500);
		
		//strike
		cargo.addWeapons("amblaster", 5);
		cargo.addWeapons("atropos_single", 5);
		
		//support
		cargo.addWeapons("taclaser", 15);
		cargo.addWeapons("railgun", 5);
		cargo.addWeapons("harpoon", 5);
		
		cargo.addWeapons("pulselaser", 6);
		cargo.addWeapons("gravitonbeam", 10);
		cargo.addWeapons("heavyburst", 6);
		cargo.addWeapons("heavyblaster", 3);
		cargo.addWeapons("phasebeam", 3);
		
		//PD
		cargo.addWeapons("vulcan", 6);
		cargo.addWeapons("lrpdlaser", 6);
		cargo.addWeapons("pdburst", 6);
		cargo.addWeapons("swarmer", 6);
		
		cargo.addWeapons("mininglaser", 3);
		cargo.addWeapons("pdlaser", 6);
		cargo.addWeapons("taclaser", 10);
		cargo.addWeapons("ioncannon", 6);
		cargo.addWeapons("irpulse", 6);
		cargo.addWeapons("lrpdlaser", 6);
		cargo.addWeapons("pdburst", 6);
		cargo.addWeapons("amblaster", 4);
		cargo.addWeapons("phasebeam", 6);
		cargo.addWeapons("gravitonbeam", 6);
		cargo.addWeapons("pulselaser", 6);
		cargo.addWeapons("miningblaster", 6);
		cargo.addWeapons("heavyblaster", 6);
		cargo.addWeapons("heavyburst", 6);
		cargo.addWeapons("plasma", 2);
		cargo.addWeapons("hil", 6);
		cargo.addWeapons("autopulse", 6);
		cargo.addWeapons("guardian", 6);
		cargo.addWeapons("tachyonlance", 2);
		cargo.addWeapons("dualheavyblaster", 6);
		cargo.addWeapons("demolitionblaster", 6);
		cargo.addWeapons("lightblaster", 6);
		cargo.addWeapons("heavygravitonbeam", 6);
		cargo.addWeapons("hvy_laser", 4);
		cargo.addWeapons("hvy_amblaster", 6);
		cargo.addWeapons("impalerburst", 6);
		cargo.addWeapons("heavy_taclaser", 4);
		cargo.addWeapons("disintegrator", 2);
		cargo.addWeapons("longinus_small", 2);
		
		
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "wasp_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "wasp_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "wasp_wing", null);
		
		cargo.addMothballedShip(FleetMemberType.SHIP, "hyperion_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "medusa_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "medusa_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "apogee_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "tempest_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "tempest_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "tempest_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "omega_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "templar_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "aurora2_Hull", null);	
		cargo.addMothballedShip(FleetMemberType.SHIP, "odyssey_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "aghast_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "chiron_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "pelican_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "wraith_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "vermin_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "pillager_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "artifact_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "bolter_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "moth_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "heavy_hyperion_Hull", null);
	}

	private void initPirateBaseCargo(SectorAPI sector, SectorEntityToken station) {
		CargoAPI cargo = station.getCargo();

		List weaponIds = sector.getAllWeaponIds();
		// cargo.addCrew(CrewXPLevel.ELITE, 25);
		cargo.addCrew(CrewXPLevel.VETERAN, 100);
		cargo.addCrew(CrewXPLevel.REGULAR, 500);
		cargo.addCrew(CrewXPLevel.GREEN, 500);
		cargo.addMarines(50);
		cargo.addSupplies(1000);
		cargo.addFuel(50);
		
		cargo.addWeapons("vulcan", 5);
		cargo.addWeapons("sabot", 5);
		cargo.addWeapons("lightmg", 3);
		cargo.addWeapons("heavyac", 2);
		cargo.addWeapons("lightdualac", 4);
		cargo.addWeapons("lightmortar", 5);
		cargo.addWeapons("sabotsrmlauncher", 5);
		cargo.addWeapons("mirv_sabot_launcher", 5);
		cargo.addWeapons("atroposlauncher",3);
		cargo.addWeapons("hvy_laser", 3);
		cargo.addWeapons("hvy_amblaster", 1);
		cargo.addWeapons("raptor", 2);
		cargo.addWeapons("impalerburst", 3);
		
		//strike
		cargo.addWeapons("bomb", 15);
		cargo.addWeapons("typhoon", 5);
		
		//PD
		cargo.addWeapons("clusterbomb", 10);
		cargo.addWeapons("flak", 10);
		cargo.addWeapons("irpulse", 10);
		cargo.addWeapons("swarmer", 10);

		//support
		cargo.addWeapons("fragbomb", 10);
		cargo.addWeapons("heatseeker", 5);
		
		cargo.addWeapons("annihilator", 5);
		cargo.addWeapons("lightdualmg", 10);
		cargo.addWeapons("lightdualac", 10);
		cargo.addWeapons("lightneedler", 10);
		cargo.addWeapons("heavymg", 10);
		cargo.addWeapons("heavymauler", 5);
		cargo.addWeapons("hveldriver", 5);

		//Hull
		cargo.addWeapons("lightag", 10);
		cargo.addWeapons("chaingun", 5);
		
		cargo.addMothballedShip(FleetMemberType.SHIP, "barnacle_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "barnacle_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "conquest_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "wolf_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "saintbernard_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "saintbernard_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "parrot_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "dachsund_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "dachsund_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "bloodhound_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "bloodhound_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "goosemk2_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "goose_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "aghast_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "hound_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "hound_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "scarab_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "scarab_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "tarsus_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "venture_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "venture_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "venture_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "enforcer_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "enforcer_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "dragoon_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "sheperd_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "scarab_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "buffalo_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "buffalo2_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "condor_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "condor_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "lasher_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "lasher_Hull", null);
		cargo.addMothballedShip(FleetMemberType.SHIP, "hound_Hull", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "talon_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "talon_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "talon_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "talon_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "broadsword_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "broadsword_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "broadsword_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "piranha_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "piranha_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "piranha_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "ballast_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "ballast_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "thunder_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "thunder_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "gladius_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "warthog_wing", null);
		cargo.addMothballedShip(FleetMemberType.FIGHTER_WING, "warthog_wing", null);
	}

}


