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.rules.MemoryAPI; 009import com.fs.starfarer.api.util.Misc; 010import com.fs.starfarer.api.util.Misc.Token; 011 012/** 013 * AddCredits <credits> 014 */ 015public class AddCredits extends BaseCommandPlugin { 016 017 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 018 if (dialog == null) return false; 019 020 //float credits = params.get(0).getFloat(memoryMap); 021 022 float credits = 0; 023 if (params.get(0).isOperator()) { 024 credits = -1f * params.get(1).getFloat(memoryMap); 025 } else { 026 credits = params.get(0).getFloat(memoryMap); 027 } 028 029 Global.getSector().getPlayerFleet().getCargo().getCredits().add((int)credits); 030 if (Global.getSector().getPlayerFleet().getCargo().getCredits().get() < 0) { 031 Global.getSector().getPlayerFleet().getCargo().getCredits().set(0); 032 } 033 034 //MemoryAPI memory = Global.getSector().getCharacterData().getMemory(); 035 MemoryAPI memory = Global.getSector().getCharacterData().getMemoryWithoutUpdate(); 036 memory.set("$credits", (int)Global.getSector().getPlayerFleet().getCargo().getCredits().get(), 0); 037 memory.set("$creditsStr", Misc.getWithDGS(Global.getSector().getPlayerFleet().getCargo().getCredits().get()), 0); 038 039 if (credits > 0) { 040 AddRemoveCommodity.addCreditsGainText((int) credits, dialog.getTextPanel()); 041 } else { 042 AddRemoveCommodity.addCreditsLossText((int) Math.abs(credits), dialog.getTextPanel()); 043 } 044 045 return true; 046 } 047 048}