Starsector API
Loading...
Searching...
No Matches
GAReduceRandomRep.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd.academy;
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.ImportantPeopleAPI.PersonDataAPI;
10import com.fs.starfarer.api.characters.PersonAPI;
11import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.CustomRepImpact;
12import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
13import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
14import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepRewards;
15import com.fs.starfarer.api.impl.campaign.ids.Ranks;
16import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
17import com.fs.starfarer.api.util.Misc;
18import com.fs.starfarer.api.util.Misc.Token;
19import com.fs.starfarer.api.util.WeightedRandomPicker;
20
25
26 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
27 if (dialog == null) return false;
28
29 WeightedRandomPicker<PersonAPI> picker = new WeightedRandomPicker<PersonAPI>();
30 for (PersonDataAPI pd : Global.getSector().getImportantPeople().getPeopleCopy()) {
31 PersonAPI person = pd.getPerson();
32 if (Ranks.POST_ADMINISTRATOR.equals(person.getPostId()) ||
33 Ranks.POST_BASE_COMMANDER.equals(person.getPostId()) ||
34 Ranks.POST_BASE_COMMANDER.equals(person.getPostId()) ||
35 Ranks.POST_STATION_COMMANDER.equals(person.getPostId())) {
36 picker.add(person);
37 }
38 }
39
40 int num = Misc.random.nextInt(2) + 1;
41 for (int i = 0; i < num && !picker.isEmpty(); i++) {
42 PersonAPI person = picker.pick();
43 CustomRepImpact custom = new CustomRepImpact();
44 custom.delta = -RepRewards.TINY;
45 Global.getSector().adjustPlayerReputation(
46 new RepActionEnvelope(RepActions.CUSTOM, custom,
47 null, dialog.getTextPanel(), true, true),
48 person);
49 }
50
51 return true;
52 }
53}
54
55
56
57
58
59
60
61
62
63
static SectorAPI getSector()
Definition Global.java:59
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)