1package com.fs.starfarer.api.impl.campaign;
3import java.util.Random;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.EveryFrameScript;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CampaignFleetAPI;
10import com.fs.starfarer.api.campaign.FleetAssignment;
11import com.fs.starfarer.api.campaign.ai.FleetAssignmentDataAPI;
12import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
13import com.fs.starfarer.api.impl.campaign.rulecmd.ApplyCRDamage;
14import com.fs.starfarer.api.util.IntervalUtil;
15import com.fs.starfarer.api.util.Misc;
27 public static class HassleParams {
28 public String fleetAction =
"conducting an inspection";
29 public String targetAction =
"standing by for inspection";
30 public float minDurDays = 2f;
31 public float maxDurDays = 3f;
32 public float crDamageMult = 1f;
35 public String timeoutKey =
"$NPCHassleTimeout";
36 public float minGlobalTimeout = 1, maxGlobalTimeout = 2;
37 public float minTargetTimeout = 25, maxTargetTimeout = 35;
43 protected HassleParams
params =
new HassleParams();
50 this(
fleet,
target,
"conducting an inspection",
"standing by for inspection");
59 durDays = params.minDurDays + (params.maxDurDays -
params.minDurDays) * (
float) Math.random();
67 this.params.fleetAction = fleetAction;
68 this.params.targetAction = targetAction;
70 durDays = params.minDurDays + (params.maxDurDays -
params.minDurDays) * (
float) Math.random();
138 if (
params.crDamageMult > 0) {
156 if (!interval.intervalElapsed())
return;
195 return params.crDamageMult;
199 this.params.crDamageMult = crDamageMult;
static SectorAPI getSector()
void cleanUpFleet(CampaignFleetAPI fleet)
HassleNPCScript(CampaignFleetAPI fleet, CampaignFleetAPI target, String fleetAction, String targetAction)
void setDurDays(float durDays)
void setCrDamageMult(float crDamageMult)
static String HASSLE_ASSIGNMENT_ID
HassleNPCScript(CampaignFleetAPI fleet, CampaignFleetAPI target)
void advance(float amount)
HassleNPCScript(CampaignFleetAPI fleet, CampaignFleetAPI target, HassleParams params)
static final String MEMORY_KEY_FLEET_DO_NOT_GET_SIDETRACKED
static final String FLEET_BUSY
static final String FLEET_SPECIAL_ACTION
static void applyCRDamage(CampaignFleetAPI fleet, float damageFP, float crMult, String desc, TextPanelAPI text, Random random)
void forceIntervalElapsed()
void advance(float amount)
static boolean setFlagWithReason(MemoryAPI memory, String flagKey, String reason, boolean value, float expire)
static Vector2f getPointAtRadius(Vector2f from, float r)
float convertToDays(float realSeconds)
LocationAPI getContainingLocation()
CampaignFleetAIAPI getAI()
boolean isHostileTo(SectorEntityToken other)
void setMoveDestinationOverride(float x, float y)
FleetAssignmentDataAPI getCurrentAssignment()
void removeFirstAssignment()
void addAssignmentAtStart(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, String actionText, Script onCompletion)
CampaignClockAPI getClock()
MemoryAPI getMemoryWithoutUpdate()
FleetAssignmentDataAPI getCurrentAssignment()
boolean isMaintainingContact()
void setCustom(Object custom)
void set(String key, Object value)