001package com.fs.starfarer.api.campaign.rules;
002
003import java.util.List;
004import java.util.Map;
005import java.util.Random;
006
007import com.fs.starfarer.api.campaign.InteractionDialogAPI;
008import com.fs.starfarer.api.campaign.SectorEntityToken;
009
010public interface RulesAPI {
011        
012        List<RuleAPI> getAllMatching(String currentRule, String trigger, InteractionDialogAPI dialog, Map<String, MemoryAPI> memoryMap);
013        RuleAPI getBestMatching(String currentRule, String trigger, InteractionDialogAPI dialog, Map<String, MemoryAPI> memoryMap);
014        
015        void addTokenReplacementGenerator(RuleTokenReplacementGeneratorPlugin generator);
016        Map<String, String> getTokenReplacements(String ruleId, SectorEntityToken target, Map<String, MemoryAPI> memoryMap);
017        
018        String performTokenReplacement(String ruleId, String text, SectorEntityToken entity, Map<String, MemoryAPI> memoryMap);
019        void setRandomForNextRulePick(Random random);
020}