1package com.fs.starfarer.api.impl.campaign.intel;
7import org.apache.log4j.Logger;
9import com.fs.starfarer.api.EveryFrameScript;
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.campaign.BattleAPI;
12import com.fs.starfarer.api.campaign.CampaignEventListener.FleetDespawnReason;
13import com.fs.starfarer.api.campaign.CampaignFleetAPI;
14import com.fs.starfarer.api.campaign.FactionAPI;
15import com.fs.starfarer.api.campaign.LocationAPI;
16import com.fs.starfarer.api.campaign.ReputationActionResponsePlugin.ReputationAdjustmentResult;
17import com.fs.starfarer.api.campaign.SectorEntityToken;
18import com.fs.starfarer.api.campaign.StarSystemAPI;
19import com.fs.starfarer.api.campaign.ai.CampaignFleetAIAPI.ActionType;
20import com.fs.starfarer.api.campaign.econ.MarketAPI;
21import com.fs.starfarer.api.campaign.listeners.FleetEventListener;
22import com.fs.starfarer.api.fleet.FleetMemberAPI;
23import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin;
24import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
25import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
26import com.fs.starfarer.api.impl.campaign.MilitaryResponseScript;
27import com.fs.starfarer.api.impl.campaign.MilitaryResponseScript.MilitaryResponseParams;
28import com.fs.starfarer.api.impl.campaign.econ.BaseMarketConditionPlugin;
29import com.fs.starfarer.api.impl.campaign.ids.Factions;
30import com.fs.starfarer.api.impl.campaign.ids.Tags;
31import com.fs.starfarer.api.ui.SectorMapAPI;
32import com.fs.starfarer.api.ui.TooltipMakerAPI;
33import com.fs.starfarer.api.util.Misc;
80 highStabilityMult = 1f + (highStabilityMult - 1f) * 0.5f;
92 updateLikelyCauseFaction();
106 MilitaryResponseParams params =
new MilitaryResponseParams(ActionType.HOSTILE,
149 private void updateLikelyCauseFaction() {
156 int size = other.getSize();
157 if (size > maxSize) {
163 if (maxOther !=
null) {
201 super.notifyEnding();
212 public static class SystemBountyResult {
214 public float fraction;
215 public ReputationAdjustmentResult rep;
216 public SystemBountyResult(
int payment,
float fraction, ReputationAdjustmentResult rep) {
217 this.payment = payment;
218 this.fraction = fraction;
235 float fpDestroyed = 0;
251 fpDestroyed += loss.getFleetPointCost();
262 new RepActionEnvelope(RepActions.SYSTEM_BOUNTY_REWARD,
new Float(repFP),
null,
null,
true,
false),
280 if (mode == ListInfoMode.IN_DESC) initPad = opad;
293 info.
addPara(
"%s share based on damage dealt", 0f, tc, h,
294 "" + (
int) Math.round(
latestResult.fraction * 100f) +
"%");
297 null,
null, info, tc, isUpdate, 0f);
298 }
else if (mode == ListInfoMode.IN_DESC) {
331 return "System Bounty";
337 if (system !=
null) {
341 return "Bounty Ended - " + name;
343 return "System Bounty - " + name;
360 boolean forMarketConditionTooltip) {
371 if (!forMarketConditionTooltip) {
382 " have banded together and posted a modest but long-term bounty on all "
383 +
"hostile fleets " + locStr +
".",
385 info.
addPara(
"The bounty stipulates that trade fleets are an exception - "
386 +
"attacking them will not result in a reward, regardless of their faction.", opad);
389 " have posted a bounty on all hostile fleets " + locStr +
".",
394 info.
addPara(
"This bounty is no longer on offer.", opad);
407 info.
addPara(
"Likely triggered by %s activity.",
411 info.
addPara(
"Triggered by the presence of Commerce on one of your colonies in-system, and by the "
412 +
"level of hostile activity.", opad);
416 info.
addPara(
"Payment depends on the number and size of ships destroyed. " +
427 if (hostile.isEmpty()) {
448 info.
addPara(
"Most recent bounty:", opad);
452 info.
addPara(
"%s share based on damage dealt", 0f, tc, h,
453 "" + (
int) Math.round(
latestResult.fraction * 100f) +
"%");
456 null,
null, info, tc,
false, 0f);
467 Set<String> tags = super.getIntelTags(map);
static SettingsAPI getSettings()
static Logger getLogger(Class c)
static SectorAPI getSector()
static void addAdjustmentMessage(float delta, FactionAPI faction, PersonAPI person, TextPanelAPI panel, TooltipMakerAPI info, Color tc, boolean withCurrent, float pad)
void setElapsed(float elapsed)
static float getHighStabilityBonusMult(MarketAPI market)
static final String INDEPENDENT
Float endingTimeRemaining
void unindent(TooltipMakerAPI info)
void addDays(TooltipMakerAPI info, String after, float days)
void sendUpdateIfPlayerHasIntel(Object listInfoParam, TextPanelAPI textPanel)
Object getListInfoParam()
static final String INDENT
Color getBulletColorForMode(ListInfoMode mode)
void bullet(TooltipMakerAPI info)
Color getTitleColor(ListInfoMode mode)
List< FactionAPI > getHostileFactions()
float getTimeRemainingFraction()
void setCommerceMode(boolean commerceMode)
void setDuration(float duration)
void reportFleetDespawnedToListener(CampaignFleetAPI fleet, FleetDespawnReason reason, Object param)
MilitaryResponseScript script
SystemBountyResult latestResult
void advanceImpl(float amount)
void reportMadeVisibleToPlayer()
void setElapsedDays(float elapsedDays)
Set< String > getIntelTags(SectorMapAPI map)
SectorEntityToken getMapLocation(SectorMapAPI map)
LocationAPI getLocation()
void setBaseBounty(float baseBounty)
void createSmallDescription(TooltipMakerAPI info, float width, float height, boolean forMarketConditionTooltip)
String getSmallDescriptionTitle()
void createSmallDescription(TooltipMakerAPI info, float width, float height)
void createIntelInfo(TooltipMakerAPI info, ListInfoMode mode)
void reportBattleOccurred(CampaignFleetAPI fleet, CampaignFleetAPI primaryWinner, BattleAPI battle)
SystemBountyIntel(MarketAPI market)
SystemBountyIntel(MarketAPI market, int baseReward, boolean commerceMode)
FactionAPI getFactionForUIColors()
void addBulletPoints(TooltipMakerAPI info, ListInfoMode mode)
static float MAX_DURATION
static Color getTextColor()
static String getDGSCredits(float num)
static List< FleetMemberAPI > getSnapshotMembersLost(CampaignFleetAPI fleet)
static String ucFirst(String str)
static float getSizeNum(HullSize size)
static Color getGrayColor()
static boolean isNear(SectorEntityToken entity, Vector2f hyperLoc)
static List< MarketAPI > getNearbyMarkets(Vector2f locInHyper, float distLY)
static boolean isTrader(CampaignFleetAPI fleet)
static Color getHighlightColor()
String getSpriteName(String category, String id)
float getFloat(String key)
float getPlayerInvolvementFraction()
List< CampaignFleetAPI > getNonPlayerSideSnapshot()
boolean isPlayerInvolved()
float convertToDays(float realSeconds)
MutableValue getCredits()
String getDisplayNameWithArticle()
String getPersonNamePrefix()
boolean isHostileTo(FactionAPI other)
String getDisplayNameIsOrAre()
boolean isPlayerFaction()
void addScript(EveryFrameScript script)
String getNameWithLowercaseType()
void removeScript(EveryFrameScript script)
CampaignFleetAPI getPlayerFleet()
ReputationAdjustmentResult adjustPlayerReputation(Object action, String factionId)
CampaignClockAPI getClock()
LocationAPI getCurrentLocation()
IntelManagerAPI getIntelManager()
FactionAPI getFaction(String factionId)
ListenerManagerAPI getListenerManager()
void addIntel(IntelInfoPlugin plugin)
void queueIntel(IntelInfoPlugin plugin, float maxCommQueueDays)
LocationAPI getContainingLocation()
Vector2f getLocationInHyperspace()
StarSystemAPI getStarSystem()
SectorEntityToken getPrimaryEntity()
void addListener(Object listener)
boolean hasListener(Object listener)
void removeListener(Object listener)