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