Starsector API
Loading...
Searching...
No Matches
SmugglingFactionChangeScript.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign;
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.FleetAssignment;
7import com.fs.starfarer.api.campaign.SectorEntityToken;
8import com.fs.starfarer.api.campaign.ai.FleetAssignmentDataAPI;
9import com.fs.starfarer.api.util.IntervalUtil;
10import com.fs.starfarer.api.util.Misc;
11
13
14 private CampaignFleetAPI fleet;
15 private String origFaction;
16 private IntervalUtil tracker = new IntervalUtil(0.1f, 0.3f);
17 public SmugglingFactionChangeScript(CampaignFleetAPI fleet) {
18 this.fleet = fleet;
19 origFaction = fleet.getFaction().getId();
20 }
21
22 public void advance(float amount) {
23 float days = Global.getSector().getClock().convertToDays(amount);
24 tracker.advance(days);
25 if (tracker.intervalElapsed() && fleet.getAI() != null) {
26// if (fleet.getContainingLocation().equals(Global.getSector().getPlayerFleet().getContainingLocation())) {
27// float dist = Misc.getDistance(fleet.getLocation(), Global.getSector().getPlayerFleet().getLocation());
28// if (dist < 500 && fleet.getFaction().getId().equals(Factions.INDEPENDENT)) {
29// System.out.println("sf3r2f");
30// }
31// }
32 FleetAssignmentDataAPI assignment = fleet.getAI().getCurrentAssignment();
33 if (assignment != null && assignment.getAssignment() != FleetAssignment.STANDING_DOWN) {
34 SectorEntityToken target = assignment.getTarget();
35 if (target != null && target.getFaction() != null) {
36 boolean targetHostile = target.getFaction().isHostileTo(origFaction);
37 boolean mathchesTarget = fleet.getFaction().getId().equals(target.getFaction().getId());
38 boolean mathchesOrig = fleet.getFaction().getId().equals(origFaction);
39 float dist = Misc.getDistance(fleet.getLocation(), target.getLocation());
40 if (dist < target.getRadius() + fleet.getRadius() + 1000) {
41 if (targetHostile && !mathchesTarget) {
42 fleet.setFaction(target.getFaction().getId(), true);
43 }
44 } else {
45 if (!mathchesOrig) {
46 fleet.setFaction(origFaction, true);
47 }
48 }
49 }
50 }
51 }
52 }
53
54 public boolean isDone() {
55 return false;
56 }
57
58 public boolean runWhilePaused() {
59 return false;
60 }
61
62}
static SectorAPI getSector()
Definition Global.java:59