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.econ.MarketAPI; 009import com.fs.starfarer.api.campaign.rules.MemoryAPI; 010import com.fs.starfarer.api.impl.campaign.TempImmigrationModifier; 011import com.fs.starfarer.api.util.Misc.Token; 012 013/** 014 * Per month can be negative. 015 * AddPopGrowth <per month growth> <duration days> <description> <optional marketId> 016 */ 017public class AddPopGrowth extends BaseCommandPlugin { 018 019 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 020 021 float growth = params.get(0).getFloat(memoryMap); 022 float dur = params.get(1).getFloat(memoryMap); 023 String desc = params.get(2).getString(memoryMap); 024 025 String marketId = null; 026 if (params.size() > 3) marketId = params.get(3).getString(memoryMap); 027 028 MarketAPI market = null; 029 if (marketId != null) { 030 market = Global.getSector().getEconomy().getMarket(marketId); 031 } else if (dialog.getInteractionTarget() != null) { 032 market = dialog.getInteractionTarget().getMarket(); 033 } 034 035 if (market == null) return false; 036 037 new TempImmigrationModifier(market, growth, dur, desc); 038 039 return true; 040 } 041}