001package com.fs.starfarer.api.impl.campaign.fleets; 002 003import com.fs.starfarer.api.Global; 004import com.fs.starfarer.api.campaign.CampaignFleetAPI; 005import com.fs.starfarer.api.campaign.FleetAssignment; 006import com.fs.starfarer.api.campaign.FleetDataAPI; 007import com.fs.starfarer.api.campaign.LocationAPI; 008import com.fs.starfarer.api.campaign.SectorEntityToken; 009import com.fs.starfarer.api.fleet.FleetMemberAPI; 010import com.fs.starfarer.api.fleet.FleetMemberType; 011import com.fs.starfarer.api.impl.campaign.ids.Factions; 012 013public class CustomFleets { 014 015 /** 016 * To add a new fleet: 017 * 1) Make a copy of this method 018 * 2) Call it from spawn() 019 */ 020 private void spawnTestFleet() { 021 CampaignFleetAPI fleet = Global.getFactory().createEmptyFleet(Factions.DIKTAT, "Custom Fleet Name", true); 022 023 FleetDataAPI data = fleet.getFleetData(); 024 FleetMemberAPI member = null; 025 026 // add a fleet member with a custom name 027 member = Global.getFactory().createFleetMember(FleetMemberType.SHIP, "onslaught_Standard"); 028 member.setShipName("SDS Andrada"); 029 data.addFleetMember(member); 030 031 // add a ship and a fighter 032 data.addFleetMember(Global.getFactory().createFleetMember(FleetMemberType.SHIP, "tempest_Attack")); 033 data.addFleetMember(Global.getFactory().createFleetMember(FleetMemberType.FIGHTER_WING, "wasp_wing")); 034 035 036 037 038 // makes fleet not need supplies or fuel or crew 039 FleetFactory.finishAndSync(fleet); 040 041 // add fleet to a star system and set its location 042 LocationAPI location = Global.getSector().getStarSystem("askonia"); 043 location.addEntity(fleet); 044 045 SectorEntityToken planet = location.getEntityById("sindria"); 046 fleet.setLocation(planet.getLocation().x, planet.getLocation().y - 500); 047 048 // give the fleet an assignment (1000000f days ~= forever) 049 // the fleet tooltip will show it as "<relationship level>, doing something" - i.e. "Neutral, doing something" 050 fleet.getAI().addAssignment(FleetAssignment.ORBIT_AGGRESSIVE, planet, 1000000f, "doing something", null); 051 } 052 053 054 /** 055 * This is called from CoreCampaignPluginImpl.onNewGameAfterTimePass(). 056 */ 057 public void spawn() { 058 //spawnTestFleet(); 059 } 060}