001package com.fs.starfarer.api.campaign;
002
003import com.fs.starfarer.api.campaign.events.CampaignEventPlugin;
004import com.fs.starfarer.api.characters.PersonAPI;
005import com.fs.starfarer.api.util.Highlights;
006
007public interface CampaignMissionPlugin {
008        String getId();
009        
010        String getName();
011        
012        String getPostingStage();
013        
014        void playerAccept(SectorEntityToken entity);
015        
016        void advance(float amount);
017        
018        CampaignEventPlugin getPrimedEvent();
019        PersonAPI getImportantPerson();
020        long getCreationTimestamp();
021        
022        
023        /**
024         * ID of the faction offering this mission.
025         * @return
026         */
027        String getFactionId();
028        
029        
030        boolean showAcceptTooltipNextToButton();
031        boolean canPlayerAccept();
032        String getAcceptTooltip();
033        Highlights getAcceptTooltipHighlights();
034
035        /**
036         * Called when mission is removed from board with withCleanup = true 
037         */
038        void cleanup();
039}