1package com.fs.starfarer.api.impl.campaign.rulecmd;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.InteractionDialogAPI;
9import com.fs.starfarer.api.campaign.SectorEntityToken;
10import com.fs.starfarer.api.campaign.ai.CampaignFleetAIAPI;
11import com.fs.starfarer.api.campaign.ai.CampaignFleetAIAPI.ActionType;
12import com.fs.starfarer.api.campaign.rules.MemoryAPI;
13import com.fs.starfarer.api.util.Misc;
14import com.fs.starfarer.api.util.Misc.Token;
20 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
22 ActionType type = Enum.valueOf(ActionType.class, params.get(0).string);
23 float range = Float.parseFloat(params.get(1).string);
24 String responseVariable = params.get(2).string;
26 final SectorEntityToken target = dialog.getInteractionTarget();
27 if (target.getContainingLocation() ==
null)
return false;
29 final CampaignFleetAPI playerFleet =
Global.
getSector().getPlayerFleet();
31 broadcast(type, range, responseVariable, playerFleet, target);
36 public static void broadcast(ActionType type,
float range, String responseVariable,
37 SectorEntityToken actor, SectorEntityToken target) {
38 broadcast(type, range, responseVariable, actor, target,
null);
40 public static void broadcast(ActionType type,
float range, String responseVariable,
41 SectorEntityToken actor, SectorEntityToken target, SectorEntityToken exclude) {
42 List<CampaignFleetAPI> fleets = target.getContainingLocation().getFleets();
43 for (CampaignFleetAPI fleet : fleets) {
44 if (fleet == exclude)
continue;
45 if (fleet.getAI() instanceof CampaignFleetAIAPI) {
46 float dist = Misc.getDistance(target.getLocation(), fleet.getLocation());
48 CampaignFleetAIAPI ai = (CampaignFleetAIAPI) fleet.getAI();
49 ai.reportNearbyAction(type, actor, target, responseVariable);
static SectorAPI getSector()
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
static void broadcast(ActionType type, float range, String responseVariable, SectorEntityToken actor, SectorEntityToken target)
static void broadcast(ActionType type, float range, String responseVariable, SectorEntityToken actor, SectorEntityToken target, SectorEntityToken exclude)