Starsector API
Loading...
Searching...
No Matches
TOffAlarm.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign;
2
3import java.util.List;
4
5import com.fs.starfarer.api.EveryFrameScript;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.SectorEntityToken.VisibilityLevel;
9import com.fs.starfarer.api.campaign.rules.MemoryAPI;
10import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
11import com.fs.starfarer.api.util.IntervalUtil;
12import com.fs.starfarer.api.util.Misc;
13
14public class TOffAlarm implements EveryFrameScript {
15 private IntervalUtil tracker = new IntervalUtil(0.05f, 0.1f);
16 private final CampaignFleetAPI fleet;
17
19 this.fleet = fleet;
21 }
22
23 public void advance(float amount) {
24 float days = Global.getSector().getClock().convertToDays(amount);
25 tracker.advance(days);
26
27
28 if (tracker.intervalElapsed()) {
30 }
31 }
32
33
34 public void notifyNearby() {
36 if (playerFleet == null) return;
37
38 //VisibilityLevel playerVis = playerFleet.getVisibilityLevelTo(fleet);
39 //if (playerVis == VisibilityLevel.NONE) return;
40 if (fleet.getContainingLocation() == null) return;
41
42 // don't spread "hostile" status if this fleet was the aggressor or if attacking it has a low
43 // reputation impact for some other reason
46 return;
47 }
48
49 List<CampaignFleetAPI> fleets = fleet.getContainingLocation().getFleets();
50 for (CampaignFleetAPI other : fleets) {
51 VisibilityLevel level = other.getVisibilityLevelTo(fleet);
52 if (level == VisibilityLevel.NONE) continue;
53
54 if (level == VisibilityLevel.COMPOSITION_AND_FACTION_DETAILS && other.getFaction() == fleet.getFaction()) {
55 MemoryAPI mem = other.getMemoryWithoutUpdate();
56 Misc.setFlagWithReason(mem, MemFlags.MEMORY_KEY_MAKE_HOSTILE_WHILE_TOFF, "tOffAlarm", true, 3f + (float) Math.random() * 3f);
57 }
58
59// if (!other.hasScriptOfClass(TOffAlarm.class)) {
60// other.addScript(new TOffAlarm(otherFleet));
61// }
62 }
63 }
64
74
75 public boolean runWhilePaused() {
76 return false;
77 }
78
79}
static SectorAPI getSector()
Definition Global.java:65
static final String MEMORY_KEY_SAW_PLAYER_WITH_TRANSPONDER_OFF
static boolean setFlagWithReason(MemoryAPI memory, String flagKey, String reason, boolean value, float expire)
Definition Misc.java:1439
List< CampaignFleetAPI > getFleets()
boolean is(String key, Object value)