Starsector API
Loading...
Searching...
No Matches
StrandedGiveTJScript.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.enc;
2
3import com.fs.starfarer.api.EveryFrameScript;
4import com.fs.starfarer.api.Global;
5import com.fs.starfarer.api.campaign.CampaignFleetAPI;
6import com.fs.starfarer.api.campaign.JumpPointAPI;
7import com.fs.starfarer.api.campaign.LocationAPI;
8import com.fs.starfarer.api.campaign.SectorEntityToken;
9import com.fs.starfarer.api.campaign.StarSystemAPI;
10import com.fs.starfarer.api.impl.campaign.ids.Abilities;
11import com.fs.starfarer.api.impl.campaign.ids.Tags;
12import com.fs.starfarer.api.util.IntervalUtil;
13import com.fs.starfarer.api.util.Misc;
14
15public class StrandedGiveTJScript implements EveryFrameScript {
16
17 protected IntervalUtil interval = new IntervalUtil(5f, 10f);
18 protected StarSystemAPI prev;
19 protected float elapsed;
20
22 }
23
24 public void advance(float amount) {
25 interval.advance(amount);
26 if (interval.intervalElapsed()) {
27 LocationAPI curr = Global.getSector().getCurrentLocation();
28 if (!(curr instanceof StarSystemAPI)) return;
29
30 StarSystemAPI system = (StarSystemAPI) curr;
31 if (system.hasTag(Tags.DO_NOT_SHOW_STRANDED_DIALOG)) return;
32
33 if (prev != system) {
34 prev = system;
35 elapsed = 0f;
36 }
37
38 for (SectorEntityToken s : system.getJumpPoints()) {
39 JumpPointAPI jp = (JumpPointAPI) s;
40 if (!jp.getDestinations().isEmpty()) {
41 return;
42 }
43 }
44
45 elapsed += interval.getIntervalDuration();
46 CampaignFleetAPI pf = Global.getSector().getPlayerFleet();
47 if (!pf.hasAbility(Abilities.TRANSVERSE_JUMP) && elapsed > 60f &&
48 !Global.getSector().getCampaignUI().isShowingDialog() &&
49 !Global.getSector().getCampaignUI().isShowingMenu()) {
50 Misc.showRuleDialog(pf, "StrandedInDeepSpace");
51 }
52 }
53 }
54
55 public boolean isDone() {
56 return false;
57 }
58
59 public boolean runWhilePaused() {
60 return false;
61 }
62}
63
64
65
static SectorAPI getSector()
Definition Global.java:59