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.impl.campaign.shared.SharedData; 011import com.fs.starfarer.api.util.Misc.Token; 012 013/** 014 * SetHistorianBlurbShownAfterDelay <blurb id> 015 */ 016public class SetHistorianBlurbShownAfterDelay extends BaseCommandPlugin { 017 018 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 019 020 final String id = params.get(0).getString(memoryMap); 021 final float delay = 300f; 022 023 Global.getSector().addScript(new EveryFrameScript() { 024 float elapsed = 0f; 025 public boolean runWhilePaused() { 026 return false; 027 } 028 public boolean isDone() { 029 return elapsed > delay; 030 } 031 public void advance(float amount) { 032 if (elapsed > delay) { 033 return; 034 } 035 elapsed += amount; 036 if (elapsed > delay) { 037 SharedData.getData().getUniqueEncounterData().historianBlurbsShown.add(id); 038 } 039 } 040 }); 041 042 return true; 043 } 044 045}