001package com.fs.starfarer.api.impl.campaign.rulecmd; 002 003import java.util.List; 004import java.util.Map; 005 006import com.fs.starfarer.api.EveryFrameScript; 007import com.fs.starfarer.api.Global; 008import com.fs.starfarer.api.campaign.InteractionDialogAPI; 009import com.fs.starfarer.api.campaign.rules.MemoryAPI; 010import com.fs.starfarer.api.util.Misc.Token; 011import com.fs.starfarer.api.util.Misc.VarAndMemory; 012 013/** 014 * SetLater <variable> <delay in days> 015 */ 016public class SetLater extends BaseCommandPlugin { 017 018 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 019 020 //String flag = params.get(0).getString(memoryMap); 021 final VarAndMemory var = params.get(0).getVarNameAndMemory(memoryMap); 022 final float delay = params.get(1).getFloat(memoryMap); 023 024 Global.getSector().addScript(new EveryFrameScript() { 025 float elapsed = 0f; 026 public boolean runWhilePaused() { 027 return false; 028 } 029 public boolean isDone() { 030 return elapsed > delay; 031 } 032 public void advance(float amount) { 033 if (elapsed > delay) { 034 return; 035 } 036 elapsed += amount; 037 if (elapsed > delay) { 038 var.memory.set(var.name, true); 039 } 040 } 041 }); 042 043 return true; 044 } 045 046}