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}