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.ids.Conditions;
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.People;
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 PersonalFleetOxanaHyder extends PersonalFleetScript {
021        
022        public PersonalFleetOxanaHyder() {
023                super(People.HYDER);
024                setMinRespawnDelayDays(10f);
025                setMaxRespawnDelayDays(20f);
026        }
027
028        @Override
029        protected MarketAPI getSourceMarket() {
030                return Global.getSector().getEconomy().getMarket("sindria");
031        }
032        
033        @Override
034        public CampaignFleetAPI spawnFleet() {
035                
036                MarketAPI sindria = getSourceMarket();
037                
038                FleetCreatorMission m = new FleetCreatorMission(random);
039                m.beginFleet();
040                
041                Vector2f loc = sindria.getLocationInHyperspace();
042                
043                m.triggerCreateFleet(FleetSize.HUGE, FleetQuality.DEFAULT, Factions.DIKTAT, FleetTypes.PATROL_LARGE, loc);
044                m.triggerSetFleetOfficers( OfficerNum.MORE, OfficerQuality.DEFAULT);
045                m.triggerSetFleetCommander(getPerson());
046                m.triggerSetFleetFaction(Factions.DIKTAT);
047                m.triggerSetPatrol();
048                m.triggerSetFleetMemoryValue(MemFlags.MEMORY_KEY_SOURCE_MARKET, sindria);
049                m.triggerFleetSetNoFactionInName();
050                m.triggerPatrolAllowTransponderOff();
051                m.triggerFleetSetName("Askonia System Defense Armada");
052                //m.triggerFleetSetPatrolActionText("patrolling");
053                m.triggerOrderFleetPatrol(sindria.getStarSystem());
054                
055                CampaignFleetAPI fleet = m.createFleet();
056                fleet.removeScriptsOfClass(MissionFleetAutoDespawn.class);
057                sindria.getContainingLocation().addEntity(fleet);
058                fleet.setLocation(sindria.getPlanetEntity().getLocation().x, sindria.getPlanetEntity().getLocation().y);
059                fleet.setFacing((float) random.nextFloat() * 360f);
060                
061                return fleet;
062        }
063
064        @Override
065        public boolean canSpawnFleetNow() {
066                MarketAPI sindria = Global.getSector().getEconomy().getMarket("sindria");
067                if (sindria == null || sindria.hasCondition(Conditions.DECIVILIZED)) return false;
068                if (!sindria.getFactionId().equals(Factions.DIKTAT)) return false;
069                return true;
070        }
071
072        @Override
073        public boolean shouldScriptBeRemoved() {
074                return false;
075        }
076
077}
078
079
080
081