Starsector API
Loading...
Searching...
No Matches
PirateBaseRumorBarEvent.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.intel.bar.events;
2
3import java.util.Map;
4import java.util.Random;
5
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.InteractionDialogAPI;
8import com.fs.starfarer.api.campaign.PersonImportance;
9import com.fs.starfarer.api.campaign.TextPanelAPI;
10import com.fs.starfarer.api.campaign.econ.MarketAPI;
11import com.fs.starfarer.api.campaign.rules.MemoryAPI;
12import com.fs.starfarer.api.characters.FullName.Gender;
13import com.fs.starfarer.api.characters.PersonAPI;
14import com.fs.starfarer.api.impl.campaign.ids.Factions;
15import com.fs.starfarer.api.impl.campaign.ids.Ranks;
16import com.fs.starfarer.api.impl.campaign.ids.Tags;
17import com.fs.starfarer.api.impl.campaign.intel.bar.PortsideBarData;
18import com.fs.starfarer.api.impl.campaign.intel.bases.PirateBaseIntel;
19import com.fs.starfarer.api.impl.campaign.intel.contacts.ContactIntel;
20import com.fs.starfarer.api.impl.campaign.intel.events.HostileActivityEventIntel;
21import com.fs.starfarer.api.impl.campaign.intel.events.PirateBasePirateActivityCause2;
22import com.fs.starfarer.api.util.Misc;
23
26 protected long seed;
27
28 public boolean isAlwaysShow() {
29 return true;
30 }
31
33 this.intel = intel;
34 seed = Misc.random.nextLong();
35 }
36
37 public boolean shouldShowAtMarket(MarketAPI market) {
38 if (intel.getTarget() == market.getContainingLocation()) {
39 return true;
40 }
41 if (market.isPlayerOwned()) {
43 if (ha != null) {
45 }
46// HostileActivityIntel hai = HostileActivityIntel.get(market.getStarSystem());
47// if (hai != null) {
48// PirateBasePirateActivityCause cause = (PirateBasePirateActivityCause)hai.getActivityCause(
49// PirateHostileActivityPluginImpl.class, PirateBasePirateActivityCause.class);
50// if (cause != null) {
51// return cause.getBaseIntel() == intel;
52// }
53// }
54 }
55 return false;
56 }
57
58 @Override
59 public boolean shouldRemoveEvent() {
61 }
62
63
64 transient protected boolean done = false;
65 transient protected Gender gender;
66 transient protected PersonAPI person;
67
68 @Override
69 public void addPromptAndOption(InteractionDialogAPI dialog, Map<String, MemoryAPI> memoryMap) {
70 super.addPromptAndOption(dialog, memoryMap);
71
72 Random random = new Random(seed + dialog.getInteractionTarget().getMarket().getId().hashCode());
73
74 gender = Gender.MALE;
75 if (random.nextFloat() > 0.5f) {
76 gender = Gender.FEMALE;
77 }
82
83 String himOrHer = "him";
84 if (gender == Gender.FEMALE) himOrHer = "her";
85
87 text.addPara("A grizzled spacer sits at the bar, downing shots " +
88 "of what looks like the cheapest liquor available.");
89
91 "Approach the spacer and offer to buy " + himOrHer + " something more palatable",
92 this);
93 }
94
95 @Override
96 public void init(InteractionDialogAPI dialog, Map<String, MemoryAPI> memoryMap) {
97 super.init(dialog, memoryMap);
98
99 String himOrHerSelf = "himself";
100 if (gender == Gender.FEMALE) himOrHerSelf = "herself";
101
103 text.addPara("You keep the drinks flowing and mostly just listen, " +
104 "letting the spacer unburden " + himOrHerSelf + ".");
105
106 //PersonAPI person = Global.getSector().getFaction(Factions.PIRATES).createRandomPerson(gender);
108
109 done = true;
112
114
116 }
117
118
119 @Override
120 public void optionSelected(String optionText, Object optionData) {
121 }
122
123 @Override
124 public boolean isDialogFinished() {
125 return done;
126 }
127
128
129 protected boolean showCargoCap() {
130 return false;
131 }
132}
133
134
135
static SectorAPI getSector()
Definition Global.java:65
void sendUpdate(Object listInfoParam, TextPanelAPI textPanel)
void init(InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)
void addPromptAndOption(InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)
static void addPotentialContact(PersonAPI contact, MarketAPI market, TextPanelAPI text)
void addOption(String text, Object data)
FactionAPI getFaction(String factionId)
void setImportanceAndVoice(PersonImportance importance, Random random)