001package com.fs.starfarer.api.impl.campaign.rulecmd; 002 003import java.util.List; 004import java.util.Map; 005 006import com.fs.starfarer.api.Global; 007import com.fs.starfarer.api.campaign.InteractionDialogAPI; 008import com.fs.starfarer.api.campaign.RepLevel; 009import com.fs.starfarer.api.campaign.ReputationActionResponsePlugin.ReputationAdjustmentResult; 010import com.fs.starfarer.api.campaign.rules.MemoryAPI; 011import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.CustomRepImpact; 012import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope; 013import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions; 014import com.fs.starfarer.api.util.Misc.Token; 015 016/** 017 * AdjustRep <factionId> <RepActions action> 018 */ 019public class AdjustRep extends BaseCommandPlugin { 020 021 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 022 String factionId = params.get(0).getString(memoryMap); 023 try { 024 RepActions action = RepActions.valueOf(params.get(1).getString(memoryMap)); 025 RepActionEnvelope envelope = new RepActionEnvelope(action, null, dialog.getTextPanel()); 026 ReputationAdjustmentResult result = Global.getSector().adjustPlayerReputation(envelope, factionId); 027 return result.delta != 0; 028 } catch (Throwable t) { 029 CustomRepImpact impact = new CustomRepImpact(); 030 if (params.size() >= 3) { 031 impact.limit = RepLevel.valueOf(params.get(1).getString(memoryMap)); 032 impact.delta = params.get(2).getFloat(memoryMap) * 0.01f; 033 } else { 034 impact.delta = params.get(1).getFloat(memoryMap) * 0.01f; 035 } 036 ReputationAdjustmentResult result = Global.getSector().adjustPlayerReputation( 037 new RepActionEnvelope(RepActions.CUSTOM, impact, 038 null, dialog.getTextPanel(), true), 039 factionId); 040 041// RepActions action = RepActions.valueOf(params.get(1).getString(memoryMap)); 042// RepActionEnvelope envelope = new RepActionEnvelope(action, null, dialog.getTextPanel()); 043// ReputationAdjustmentResult result = Global.getSector().adjustPlayerReputation(envelope, factionId); 044 return result.delta != 0; 045 } 046 } 047}