1package com.fs.starfarer.api.impl.campaign.rulecmd.missions;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.campaign.CargoAPI;
10import com.fs.starfarer.api.campaign.FactionAPI;
11import com.fs.starfarer.api.campaign.InteractionDialogAPI;
12import com.fs.starfarer.api.campaign.OptionPanelAPI;
13import com.fs.starfarer.api.campaign.RepLevel;
14import com.fs.starfarer.api.campaign.SectorEntityToken;
15import com.fs.starfarer.api.campaign.TextPanelAPI;
16import com.fs.starfarer.api.campaign.econ.MarketAPI;
17import com.fs.starfarer.api.campaign.rules.MemoryAPI;
18import com.fs.starfarer.api.characters.PersonAPI;
19import com.fs.starfarer.api.fleet.FleetMemberAPI;
20import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin;
21import com.fs.starfarer.api.impl.campaign.ids.Entities;
22import com.fs.starfarer.api.impl.campaign.ids.Ranks;
23import com.fs.starfarer.api.impl.campaign.intel.BaseIntelPlugin;
24import com.fs.starfarer.api.impl.campaign.intel.BaseMissionIntel.MissionResult;
25import com.fs.starfarer.api.impl.campaign.intel.BaseMissionIntel.MissionState;
26import com.fs.starfarer.api.impl.campaign.intel.FactionCommissionIntel;
27import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
28import com.fs.starfarer.api.ui.TooltipMakerAPI;
29import com.fs.starfarer.api.util.Misc;
30import com.fs.starfarer.api.util.Misc.Token;
60 String command = params.get(0).getString(
memoryMap);
61 if (command ==
null)
return false;
84 if (command.equals(
"printRequirements")) {
86 }
else if (command.equals(
"playerMeetsCriteria")) {
88 }
else if (command.equals(
"printInfo")) {
90 }
else if (command.equals(
"hasFactionCommission")) {
92 }
else if (command.equals(
"hasOtherCommission")) {
99 }
else if (command.equals(
"accept")) {
101 }
else if (command.equals(
"resign")) {
103 }
else if (command.equals(
"resignNoPenalty")) {
105 }
else if (command.equals(
"personCanGiveCommission")) {
108 else if (command.equals(
"commissionFactionIsAtWarWith")) {
110 if (params.size() >= 1) {
111 String target_faction_id = params.get(0).getString(
memoryMap);
113 if(target_faction !=
null )
121 else if (command.equals(
"isCargoPodsScam")) {
142 else if (command.equals(
"recalcFreeSupplyDaysRemaining")) {
145 if(obj1 ==
null)
return false;
146 if(obj2 ==
null)
return false;
148 float d1 = (Float) obj1;
149 float d2 = (Float) obj2;
153 else if (command.equals(
"doesPlayerFleetNeedRepairs")) {
156 float fleetCRcurrent = 0f;
157 float fleetCRmax = 0f;
158 float fleetHullDamage = 0f;
162 if(member.isFighterWing())
continue;
165 fleetHullDamage += 1f - member.getStatus().getHullFraction();
166 fleetCRcurrent += member.getRepairTracker().getCR();
167 fleetCRmax += member.getRepairTracker().getMaxCR();
177 boolean needsSupplies =
false;
179 if(fleetHullDamage > 0.5) {
180 needsSupplies =
true;
186 if(fleetHullDamage > 2.5) {
187 needsSupplies =
true;
193 if(fleetCRcurrent == 0 || (fleetCRcurrent / fleetCRmax < 0.6f) ) {
194 needsSupplies =
true;
202 return needsSupplies;
228 protected void resign(
boolean withPenalty) {
261 info.
addPara(
"At your experience level, you would receive a %s monthly stipend, as well as a modest bounty for destroying enemy ships.",
265 if (hostile.isEmpty()) {
273 float initPad = opad;
static SectorAPI getSector()
static void addRequiredStanding(FactionAPI faction, RepLevel req, PersonAPI person, TextPanelAPI panel, TooltipMakerAPI info, Color tc, float pad, boolean orBetter)
static void addCurrentStanding(FactionAPI faction, PersonAPI person, TextPanelAPI panel, TooltipMakerAPI info, Color tc, float pad)
static final String CARGO_PODS
static String POST_STATION_COMMANDER
static String POST_ADMINISTRATOR
static String POST_BASE_COMMANDER
static String POST_OUTPOST_COMMANDER
void sendUpdate(Object listInfoParam, TextPanelAPI textPanel)
static final String INDENT
void setMissionState(MissionState missionState)
void setMissionResult(MissionResult missionResult)
void makeRepChanges(InteractionDialogAPI dialog)
List< FactionAPI > getHostileFactions()
MissionResult createResignedCommissionResult(boolean withPenalty, boolean inPerson, InteractionDialogAPI dialog)
static String UPDATE_PARAM_ACCEPTED
static MemoryAPI getEntityMemory(Map< String, MemoryAPI > memoryMap)
boolean playerMeetsCriteria()
InteractionDialogAPI dialog
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
void resign(boolean withPenalty)
static RepLevel COMMISSION_REQ
boolean hasFactionCommission()
boolean offersCommissions
boolean personCanGiveCommission()
Map< String, MemoryAPI > memoryMap
boolean hasOtherCommission()
CampaignFleetAPI playerFleet
static String getDGSCredits(float num)
static String ucFirst(String str)
static FactionCommissionIntel getCommissionIntel()
static Color getGrayColor()
static float getDistance(SectorEntityToken from, SectorEntityToken to)
static Color getHighlightColor()
static FactionAPI getCommissionFaction()
static String getCommissionFactionId()
List< FleetMemberAPI > getMembersWithFightersCopy()
MemoryAPI getMemoryWithoutUpdate()
String getDisplayNameWithArticle()
RelationshipAPI getRelToPlayer()
boolean getCustomBoolean(String key)
String getPersonNamePrefix()
boolean isHostileTo(FactionAPI other)
boolean isPlayerFaction()
TextPanelAPI getTextPanel()
SectorEntityToken getInteractionTarget()
OptionPanelAPI getOptionPanel()
List< SectorEntityToken > getAllEntities()
CampaignFleetAPI getPlayerFleet()
MemoryAPI getPlayerMemoryWithoutUpdate()
FactionAPI getPlayerFaction()
FactionAPI getFaction(String factionId)
MemoryAPI getMemoryWithoutUpdate()
String getCustomEntityType()
PersonAPI getActivePerson()
TooltipMakerAPI beginTooltip()
LocationAPI getContainingLocation()
void set(String key, Object value)
boolean isAtWorst(RepLevel level)