001package com.fs.starfarer.api.impl.campaign.rulecmd; 002 003import java.awt.Color; 004import java.util.List; 005import java.util.Map; 006import java.util.Random; 007 008import com.fs.starfarer.api.campaign.InteractionDialogAPI; 009import com.fs.starfarer.api.campaign.rules.MemoryAPI; 010import com.fs.starfarer.api.util.Misc.Token; 011 012/** 013 * AddTextSmall "text OR text OR text" <color> 014 */ 015public class AddTextSmall extends BaseCommandPlugin { 016 017 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 018 if (dialog == null) return false; 019 020 String text = params.get(0).getStringWithTokenReplacement(ruleId, dialog, memoryMap); 021 022 if (text == null || text.isEmpty()) return true; 023 024 025 String [] split = text.split("(?s)\nOR\n"); 026 if (split != null && split.length > 1) { 027 text = split[new Random().nextInt(split.length)]; 028 text = text.trim(); 029 } 030 031 Color color = null; 032 if (params.size() > 1) { 033 color = params.get(1).getColor(memoryMap); 034 } 035 036 dialog.getTextPanel().setFontSmallInsignia(); 037 if (color == null) { 038 dialog.getTextPanel().addParagraph(text); 039 } else { 040 dialog.getTextPanel().addParagraph(text, color); 041 } 042 dialog.getTextPanel().setFontInsignia(); 043 return true; 044 } 045 046}