Starsector API
Loading...
Searching...
No Matches
MarketReduceRandomRep.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.util.Misc;
15import com.fs.starfarer.api.util.Misc.Token;
16import com.fs.starfarer.api.util.WeightedRandomPicker;
17
22
23 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
24
25 if (dialog == null) return false;
26
27 WeightedRandomPicker<PersonAPI> picker = new WeightedRandomPicker<PersonAPI>();
28
29 //CommDirectoryEntryAPI
30 //for (CommDirectoryAPI comms : dialog.getInteractionTarget().getMarket().getCommDirectory()) {
31 for (PersonAPI person : dialog.getInteractionTarget().getMarket().getPeopleCopy()) {
32 if (person == null) continue;
33 if (person.getMarket() == null) continue;
34 if (person.getMarket().getCommDirectory() == null) continue;
35 if (person.getMarket().getCommDirectory().getEntryForPerson(person.getId()) == null) continue;
36
37 if (!person.getMarket().getCommDirectory().getEntryForPerson(person.getId()).isHidden()) {
38
39 //Ranks.POST_ADMINISTRATOR.equals(person.getPostId()) ||
40 //Ranks.POST_BASE_COMMANDER.equals(person.getPostId()) ||
41 //Ranks.POST_BASE_COMMANDER.equals(person.getPostId()) ||
42 //Ranks.POST_STATION_COMMANDER.equals(person.getPostId())) {
43 picker.add(person);
44
45 }
46 }
47
48 int num = Misc.random.nextInt(2) + 2;
49 for (int i = 0; i < num && !picker.isEmpty(); i++) {
50 PersonAPI person = picker.pickAndRemove();
51 CustomRepImpact custom = new CustomRepImpact();
52 custom.delta = -RepRewards.TINY;
53 Global.getSector().adjustPlayerReputation(
54 new RepActionEnvelope(RepActions.CUSTOM, custom,
55 null, dialog.getTextPanel(), true, true),
56 person);
57 }
58
59 return true;
60 }
61}
62
63
64
65
66
67
68
69
70
71
static SectorAPI getSector()
Definition Global.java:59
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)