001package com.fs.starfarer.api.impl.campaign.rulecmd.academy; 002 003import java.util.List; 004import java.util.Map; 005 006import com.fs.starfarer.api.Global; 007import com.fs.starfarer.api.campaign.InteractionDialogAPI; 008import com.fs.starfarer.api.campaign.rules.MemoryAPI; 009import com.fs.starfarer.api.characters.PersonAPI; 010import com.fs.starfarer.api.impl.campaign.ids.Factions; 011import com.fs.starfarer.api.impl.campaign.ids.Ranks; 012import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin; 013import com.fs.starfarer.api.util.Misc.Token; 014 015/** 016 * Does not start an actual conversation, but does set them as the active person (so $heOrShe etc tokens work) 017 */ 018public class GenGAIntroAcademician extends BaseCommandPlugin { 019 020 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 021 if (dialog == null) return false; 022 023 PersonAPI person = Global.getSector().getFaction(Factions.INDEPENDENT).createRandomPerson(); 024 person.setRankId(Ranks.CITIZEN); 025 person.setPostId(Ranks.POST_ACADEMICIAN); 026 027 // so that $herOrShe tokens work 028 dialog.getInteractionTarget().setActivePerson(person); 029 030 dialog.getVisualPanel().showPersonInfo(person, false, true); 031 032 return true; 033 } 034} 035 036 037 038 039 040 041 042 043 044