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}