001package com.fs.starfarer.api.impl.campaign.fleets; 002 003import org.lwjgl.util.vector.Vector2f; 004 005import com.fs.starfarer.api.Global; 006import com.fs.starfarer.api.campaign.CampaignFleetAPI; 007import com.fs.starfarer.api.campaign.econ.MarketAPI; 008import com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent.SkillPickPreference; 009import com.fs.starfarer.api.impl.campaign.ids.Factions; 010import com.fs.starfarer.api.impl.campaign.ids.FleetTypes; 011import com.fs.starfarer.api.impl.campaign.ids.MemFlags; 012import com.fs.starfarer.api.impl.campaign.ids.Skills; 013import com.fs.starfarer.api.impl.campaign.missions.FleetCreatorMission; 014import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetQuality; 015import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetSize; 016import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerNum; 017import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerQuality; 018import com.fs.starfarer.api.impl.campaign.missions.hub.MissionFleetAutoDespawn; 019 020public class SDFLuddicChurch extends SDFBase { 021 022 public SDFLuddicChurch() { 023 } 024 025 @Override 026 protected String getFactionId() { 027 return Factions.LUDDIC_CHURCH; 028 } 029 030 protected SkillPickPreference getCommanderShipSkillPreference() { 031 return SkillPickPreference.NO_ENERGY_YES_BALLISTIC_YES_MISSILE_YES_DEFENSE; 032 } 033 034 @Override 035 protected MarketAPI getSourceMarket() { 036 return Global.getSector().getEconomy().getMarket("hesperus"); 037 } 038 039 @Override 040 protected String getDefeatTriggerToUse() { 041 return "SDFLuddicChurchDefeated"; 042 } 043 044 045 @Override 046 public CampaignFleetAPI spawnFleet() { 047 048 MarketAPI hesperus = getSourceMarket(); 049 050 FleetCreatorMission m = new FleetCreatorMission(random); 051 m.beginFleet(); 052 053 Vector2f loc = hesperus.getLocationInHyperspace(); 054 055 m.triggerCreateFleet(FleetSize.MAXIMUM, FleetQuality.HIGHER, getFactionId(), FleetTypes.PATROL_LARGE, loc); 056 057 m.triggerSetFleetSizeFraction(1.6f); 058 059 m.triggerSetFleetOfficers( OfficerNum.DEFAULT, OfficerQuality.DEFAULT); 060 m.triggerSetFleetDoctrineComp(5, 2, 0); 061 m.triggerSetFleetCommander(getPerson()); 062 063 m.triggerFleetAddCommanderSkill(Skills.COORDINATED_MANEUVERS, 1); 064 m.triggerFleetAddCommanderSkill(Skills.CREW_TRAINING, 1); 065 m.triggerFleetAddCommanderSkill(Skills.CARRIER_GROUP, 1); 066 067 068 m.triggerSetPatrol(); 069 m.triggerSetFleetMemoryValue(MemFlags.MEMORY_KEY_SOURCE_MARKET, hesperus); 070 //m.triggerFleetSetNoFactionInName(); 071 m.triggerFleetSetName("Armada of the Ecumene"); 072 m.triggerPatrolAllowTransponderOff(); 073 //m.triggerFleetSetPatrolActionText("patrolling"); 074 m.triggerOrderFleetPatrol(hesperus.getStarSystem()); 075 076 CampaignFleetAPI fleet = m.createFleet(); 077 fleet.removeScriptsOfClass(MissionFleetAutoDespawn.class); 078 hesperus.getContainingLocation().addEntity(fleet); 079 fleet.setLocation(hesperus.getPlanetEntity().getLocation().x, hesperus.getPlanetEntity().getLocation().y); 080 fleet.setFacing((float) random.nextFloat() * 360f); 081 082// for (FleetMemberAPI member : fleet.getFleetData().getMembersListCopy()) { 083// } 084 085 return fleet; 086 } 087} 088 089 090 091