Starsector API
Loading...
Searching...
No Matches
PersonalFleetHoracioCaden.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.fleets;
2
3import org.lwjgl.util.vector.Vector2f;
4
5import com.fs.starfarer.api.Global;
6import com.fs.starfarer.api.campaign.CampaignFleetAPI;
7import com.fs.starfarer.api.campaign.econ.MarketAPI;
8import com.fs.starfarer.api.fleet.FleetMemberAPI;
9import com.fs.starfarer.api.impl.campaign.ids.Conditions;
10import com.fs.starfarer.api.impl.campaign.ids.Factions;
11import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
12import com.fs.starfarer.api.impl.campaign.ids.Industries;
13import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
14import com.fs.starfarer.api.impl.campaign.ids.People;
15import com.fs.starfarer.api.impl.campaign.ids.Tags;
16import com.fs.starfarer.api.impl.campaign.missions.FleetCreatorMission;
17import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetQuality;
18import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetSize;
19import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerNum;
20import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerQuality;
21import com.fs.starfarer.api.impl.campaign.missions.hub.MissionFleetAutoDespawn;
22import com.fs.starfarer.api.loading.VariantSource;
23
25
27 super(People.CADEN);
30 }
31
32 @Override
33 public CampaignFleetAPI spawnFleet() {
34
35 MarketAPI sindria = Global.getSector().getEconomy().getMarket("sindria");
36
37 FleetCreatorMission m = new FleetCreatorMission(random);
38 m.beginFleet();
39
40 Vector2f loc = sindria.getLocationInHyperspace();
41
42 m.triggerCreateFleet(FleetSize.HUGE, FleetQuality.VERY_HIGH, Factions.LIONS_GUARD, FleetTypes.PATROL_LARGE, loc);
43 m.triggerSetFleetOfficers( OfficerNum.MORE, OfficerQuality.DEFAULT);
44 m.triggerSetFleetCommander(getPerson());
45 m.triggerSetFleetFaction(Factions.DIKTAT);
46 m.triggerSetPatrol();
47 m.triggerSetFleetMemoryValue(MemFlags.MEMORY_KEY_SOURCE_MARKET, sindria);
48 m.triggerFleetSetNoFactionInName();
49 m.triggerFleetSetName("Lion's Guard Grand Armada");
50 m.triggerPatrolAllowTransponderOff();
51 m.triggerFleetSetPatrolActionText("parading");
52 m.triggerOrderFleetPatrol(sindria.getStarSystem());
53
54 CampaignFleetAPI fleet = m.createFleet();
55 fleet.removeScriptsOfClass(MissionFleetAutoDespawn.class);
56 sindria.getContainingLocation().addEntity(fleet);
57 fleet.setLocation(sindria.getPlanetEntity().getLocation().x, sindria.getPlanetEntity().getLocation().y);
58 fleet.setFacing((float) random.nextFloat() * 360f);
59
60 // for the Lion's Guard only; make the Executor use the default with-special-weapons variant
61 for (FleetMemberAPI member : fleet.getFleetData().getMembersListCopy()) {
62 if (member.isCapital()) {
63 member.setVariant(member.getVariant().clone(), false, false);
64 member.getVariant().setSource(VariantSource.REFIT);
65 member.getVariant().addTag(Tags.TAG_NO_AUTOFIT);
66 member.getVariant().addTag(Tags.VARIANT_CONSISTENT_WEAPON_DROPS);
67 }
68 }
69
70 return fleet;
71 }
72
73 @Override
74 public boolean canSpawnFleetNow() {
75 MarketAPI sindria = Global.getSector().getEconomy().getMarket("sindria");
76 if (sindria == null || sindria.hasCondition(Conditions.DECIVILIZED)) return false;
77 if (!sindria.hasIndustry(Industries.LIONS_GUARD)) return false;
78 if (!sindria.getFactionId().equals(Factions.DIKTAT)) return false;
79 return true;
80 }
81
82 @Override
83 public boolean shouldScriptBeRemoved() {
84 return false;
85 }
86
87}
88
89
90
91
static SectorAPI getSector()
Definition Global.java:59