1package com.fs.starfarer.api.impl.campaign.events;
3import java.util.ArrayList;
7import org.apache.log4j.Logger;
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.campaign.BaseOnMessageDeliveryScript;
11import com.fs.starfarer.api.campaign.CampaignFleetAPI;
12import com.fs.starfarer.api.campaign.CargoAPI;
13import com.fs.starfarer.api.campaign.InteractionDialogAPI;
14import com.fs.starfarer.api.campaign.RepLevel;
15import com.fs.starfarer.api.campaign.comm.CommMessageAPI;
16import com.fs.starfarer.api.campaign.comm.MessagePriority;
17import com.fs.starfarer.api.campaign.events.CampaignEventTarget;
18import com.fs.starfarer.api.campaign.rules.MemoryAPI;
19import com.fs.starfarer.api.characters.PersonAPI;
20import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
21import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
22import com.fs.starfarer.api.impl.campaign.ids.Conditions;
23import com.fs.starfarer.api.impl.campaign.ids.Factions;
24import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
25import com.fs.starfarer.api.impl.campaign.ids.Ranks;
26import com.fs.starfarer.api.util.Misc;
27import com.fs.starfarer.api.util.Misc.Token;
38 public static class InvSmugglingParams {
39 public float guiltChance;
40 public int bribeAmount;
42 public InvSmugglingParams() {
48 private float elapsedDays = 0f;
49 private float duration = 0f;
51 private InvSmugglingParams params;
52 private boolean bribed =
false;
57 params =
new InvSmugglingParams();
96 params.bribeAmount = (int) ((10000f + params.guiltChance * 90000f) / 1000f) * 1000;
106 duration = 90f + 30f * (float) Math.random();
109 log.info(String.format(
"Starting smuggling investigation at %s",
market.
getName()));
133 if (elapsedDays >= duration) {
134 if (!bribed && (
float) Math.random() < params.guiltChance) {
138 new RepActionEnvelope(RepActions.SMUGGLING_INVESTIGATION_GUILTY,
null,
null,
true),
156 return "Smuggling investigation - " +
market.
getName() +
" (over)";
165 List<Token> params, Map<String, MemoryAPI> memoryMap) {
166 String action = params.get(0).getString(memoryMap);
171 if (action.equals(
"paidBribe")) {
173 }
else if (action.equals(
"setBribePaid")) {
182 Map<String, String> map = super.getTokenReplacements();
186 if (investigator.
isMale()) {
187 map.put(
"$invHimOrHer",
"him");
189 map.put(
"$invHimOrHer",
"her");
192 map.put(
"$sender",
"Unknown");
199 List<String> result =
new ArrayList<String>();
201 return result.toArray(
new String[0]);
204 private boolean ended =
false;
206 if (investigator !=
null) {
static Logger getLogger(Class c)
static SectorAPI getSector()
void addTokensToList(List< String > list, String ... keys)
CampaignEventTarget eventTarget
void advance(float amount)
boolean callEvent(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
String[] getHighlights(String stageId)
static final String PERSON_CHECKOUT_REASON
void init(String type, CampaignEventTarget eventTarget)
Map< String, String > getTokenReplacements()
static final String DECIVILIZED
static final String PLAYER
static final String MEMORY_KEY_REQUIRES_DISCRETION
static String POST_INVESTIGATOR
static String getWithDGS(float num)
static String ucFirst(String str)
static String getAtLeastStringForDays(int days)
static boolean setFlagWithReason(MemoryAPI memory, String flagKey, String reason, boolean value, float expire)
float convertToDays(float realSeconds)
void removePerson(PersonAPI person)
String addPerson(PersonAPI person)
boolean isAtBest(String id, RepLevel level)
CampaignFleetAPI getPlayerFleet()
ReputationAdjustmentResult adjustPlayerReputation(Object action, String factionId)
CampaignClockAPI getClock()
void reportEventStage(CampaignEventPlugin event, String stage, MessagePriority priority)
ImportantPeopleAPI getImportantPeople()
CommDirectoryAPI getCommDirectory()
boolean hasCondition(String id)
void set(String key, Object value)
boolean isCheckedOutForAnything(PersonAPI person)
void returnPerson(PersonAPI person, String reasonId)
PersonAPI getPerson(String id)
MemoryAPI getMemoryWithoutUpdate()