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 SDFTriTachyon extends SDFBase { 021 022 public SDFTriTachyon() { 023 super(); 024 } 025 026 @Override 027 protected String getFactionId() { 028 return Factions.TRITACHYON; 029 } 030 031 protected SkillPickPreference getCommanderShipSkillPreference() { 032 return SkillPickPreference.YES_ENERGY_NO_BALLISTIC_NO_MISSILE_YES_DEFENSE; 033 } 034 035 @Override 036 protected MarketAPI getSourceMarket() { 037 return Global.getSector().getEconomy().getMarket("culann"); 038 } 039 040 @Override 041 protected String getDefeatTriggerToUse() { 042 return "SDFTriTachyonDefeated"; 043 } 044 045 046 @Override 047 public CampaignFleetAPI spawnFleet() { 048 049 MarketAPI culann = getSourceMarket(); 050 051 FleetCreatorMission m = new FleetCreatorMission(random); 052 m.beginFleet(); 053 054 Vector2f loc = culann.getLocationInHyperspace(); 055 056 m.triggerCreateFleet(FleetSize.MAXIMUM, FleetQuality.SMOD_3, getFactionId(), FleetTypes.PATROL_LARGE, loc); 057 058 m.triggerSetFleetSizeFraction(1.15f); 059 060 m.triggerSetFleetOfficers( OfficerNum.DEFAULT, OfficerQuality.DEFAULT); 061 m.triggerSetFleetDoctrineComp(5, 0, 3); // will get some Astrals anyway 062 m.triggerSetFleetCommander(getPerson()); 063 064 m.triggerFleetAddCommanderSkill(Skills.FIGHTER_UPLINK, 1); 065 m.triggerFleetAddCommanderSkill(Skills.FLUX_REGULATION, 1); 066 m.triggerFleetAddCommanderSkill(Skills.PHASE_CORPS, 1); 067 m.triggerFleetAddCommanderSkill(Skills.ELECTRONIC_WARFARE, 1); 068 m.triggerFleetAddCommanderSkill(Skills.CYBERNETIC_AUGMENTATION, 1); 069 070 071 m.triggerSetPatrol(); 072 m.triggerSetFleetMemoryValue(MemFlags.MEMORY_KEY_SOURCE_MARKET, culann); 073 //m.triggerFleetSetNoFactionInName(); 074 m.triggerFleetSetName("Capital Assurance Reserve"); // Armada"); 075 m.triggerPatrolAllowTransponderOff(); 076 //m.triggerFleetSetPatrolActionText("patrolling"); 077 m.triggerOrderFleetPatrol(culann.getStarSystem()); 078 079 CampaignFleetAPI fleet = m.createFleet(); 080 fleet.removeScriptsOfClass(MissionFleetAutoDespawn.class); 081 culann.getContainingLocation().addEntity(fleet); 082 fleet.setLocation(culann.getPlanetEntity().getLocation().x, culann.getPlanetEntity().getLocation().y); 083 fleet.setFacing((float) random.nextFloat() * 360f); 084 085// for (FleetMemberAPI member : fleet.getFleetData().getMembersListCopy()) { 086// } 087 088 return fleet; 089 } 090} 091 092 093 094