001package com.fs.starfarer.api.impl.campaign.fleets.misc;
002
003import java.util.Random;
004
005import com.fs.starfarer.api.campaign.BattleAPI;
006import com.fs.starfarer.api.campaign.CampaignEventListener.FleetDespawnReason;
007import com.fs.starfarer.api.campaign.CampaignFleetAPI;
008import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteData;
009import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteSegment;
010import com.fs.starfarer.api.impl.campaign.fleets.misc.MiscFleetRouteManager.MiscRouteData;
011
012public interface MiscFleetCreatorPlugin {
013        String getId();
014        float getFrequency();
015        
016        int getMaxFleetsForThisCreator();
017        
018        MiscRouteData createRouteParams(MiscFleetRouteManager manager, Random random);
019        CampaignFleetAPI createFleet(MiscFleetRouteManager manager, RouteData route, Random random);
020        
021        void reportBattleOccurred(MiscFleetRouteManager manager, CampaignFleetAPI fleet, CampaignFleetAPI primaryWinner, BattleAPI battle);
022        void reportFleetDespawnedToListener(MiscFleetRouteManager manager, CampaignFleetAPI fleet, FleetDespawnReason reason, Object param);
023        
024        
025        String getStartingActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data);
026        String getEndingActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data);
027        String getTravelToDestActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data);
028        String getTravelReturnActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data);
029        
030        String getAtDestUnloadActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data);
031        String getAtDestLoadActionText(CampaignFleetAPI fleet, RouteSegment segment, MiscRouteData data);
032}