Starsector API
Loading...
Searching...
No Matches
MarketGainRandomRep.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd;
2
3import java.util.List;
4import java.util.Map;
5
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.InteractionDialogAPI;
8import com.fs.starfarer.api.campaign.rules.MemoryAPI;
9import com.fs.starfarer.api.characters.PersonAPI;
10import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.CustomRepImpact;
11import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
12import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
13import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepRewards;
14import com.fs.starfarer.api.impl.campaign.ids.Ranks;
15import com.fs.starfarer.api.util.Misc;
16import com.fs.starfarer.api.util.Misc.Token;
17import com.fs.starfarer.api.util.WeightedRandomPicker;
18
23
24 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
25
26 if (dialog == null) return false;
27
28 WeightedRandomPicker<PersonAPI> picker = new WeightedRandomPicker<PersonAPI>();
29
30 //CommDirectoryEntryAPI
31 //for (CommDirectoryAPI comms : dialog.getInteractionTarget().getMarket().getCommDirectory()) {
32 for (PersonAPI person : dialog.getInteractionTarget().getMarket().getPeopleCopy()) {
33 if (person == null) continue;
34 if (person.getMarket() == null) continue;
35 if (person.getMarket().getCommDirectory() == null) continue;
36 if (person.getMarket().getCommDirectory().getEntryForPerson(person.getId()) == null) continue;
37
38 if (!person.getMarket().getCommDirectory().getEntryForPerson(person.getId()).isHidden()) {
39 if(
40 //Ranks.POST_ADMINISTRATOR.equals(person.getPostId()) ||
41 Ranks.POST_SUPPLY_OFFICER.equals(person.getPostId()) ||
42 Ranks.POST_PORTMASTER.equals(person.getPostId()) ||
43 Ranks.POST_BASE_COMMANDER.equals(person.getPostId()) ||
44 Ranks.POST_STATION_COMMANDER.equals(person.getPostId())) {
45 picker.add(person);
46 }
47 }
48 }
49
50 int num = Misc.random.nextInt(2) + 2;
51 for (int i = 0; i < num && !picker.isEmpty(); i++) {
52 PersonAPI person = picker.pickAndRemove();
53 CustomRepImpact custom = new CustomRepImpact();
54 custom.delta = RepRewards.TINY;
55 Global.getSector().adjustPlayerReputation(
56 new RepActionEnvelope(RepActions.CUSTOM, custom,
57 null, dialog.getTextPanel(), true, true),
58 person);
59 }
60
61 return true;
62 }
63}
64
65
66
67
68
69
70
71
72
73
static SectorAPI getSector()
Definition Global.java:59
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)