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}