Starsector API
Loading...
Searching...
No Matches
AdjustRepPerson.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.RepLevel;
9import com.fs.starfarer.api.campaign.ReputationActionResponsePlugin.ReputationAdjustmentResult;
10import com.fs.starfarer.api.campaign.rules.MemoryAPI;
11import com.fs.starfarer.api.characters.PersonAPI;
12import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.CustomRepImpact;
13import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
14import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
15import com.fs.starfarer.api.util.Misc.Token;
16import com.fs.starfarer.api.util.Misc.VarAndMemory;
17
21public class AdjustRepPerson extends BaseCommandPlugin {
22
23 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
24
25 VarAndMemory var = params.get(0).getVarNameAndMemory(memoryMap);
26 PersonAPI person = null;
27
28 if (var.memory.get(var.name) instanceof PersonAPI) {
29 person = (PersonAPI) var.memory.get(var.name);
30 } else {
31 String id = params.get(0).getString(memoryMap);
32 person = Global.getSector().getImportantPeople().getPerson(id);
33 }
34
35// PersonAPI person = (PersonAPI) var.memory.get(var.name);
36//
37// if (person == null) {
38// // well, let's try this another way, then. This is probably sloppy, eh? -dgb
39// String id = params.get(0).getString(memoryMap);
40// person = Global.getSector().getImportantPeople().getPerson(id);
41// }
42
43 try {
44 RepActions action = RepActions.valueOf(params.get(1).getString(memoryMap));
45 RepActionEnvelope envelope = new RepActionEnvelope(action, null, dialog.getTextPanel());
46 ReputationAdjustmentResult result = Global.getSector().adjustPlayerReputation(envelope, person);
47 return result.delta != 0;
48 } catch (Throwable t) {
49 CustomRepImpact impact = new CustomRepImpact();
50 impact.limit = RepLevel.valueOf(params.get(1).getString(memoryMap));
51 impact.delta = params.get(2).getFloat(memoryMap) * 0.01f;
52 ReputationAdjustmentResult result = Global.getSector().adjustPlayerReputation(
53 new RepActionEnvelope(RepActions.CUSTOM, impact,
54 null, dialog.getTextPanel(), true), person);
55 return result.delta != 0;
56 }
57 }
58}
static SectorAPI getSector()
Definition Global.java:59
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)