001package com.fs.starfarer.api.impl.campaign.missions.cb; 002 003import java.awt.Color; 004import java.util.ArrayList; 005import java.util.HashMap; 006import java.util.List; 007import java.util.Map; 008 009import com.fs.starfarer.api.campaign.CampaignFleetAPI; 010import com.fs.starfarer.api.campaign.StarSystemAPI; 011import com.fs.starfarer.api.campaign.TextPanelAPI; 012import com.fs.starfarer.api.campaign.econ.MarketAPI; 013import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepRewards; 014import com.fs.starfarer.api.impl.campaign.missions.hub.BaseHubMission.Abortable; 015import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithBarEvent; 016import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithSearch.StarSystemRequirement; 017import com.fs.starfarer.api.ui.TooltipMakerAPI; 018 019public interface CustomBountyCreator extends StarSystemRequirement { 020 021 public static int MIN_DIFFICULTY = 0; 022 public static int MAX_DIFFICULTY = 10; 023 024 public class CustomBountyData { 025 public Map<Object, Object> customMap = new HashMap<Object, Object>(); 026 public Object custom1; 027 public Object custom2; 028 public Object custom3; 029 public Object stage; 030 031 public int baseReward; 032 public float repPerson = RepRewards.MEDIUM; 033 public float repFaction = RepRewards.TINY; 034 public CampaignFleetAPI fleet; 035 public StarSystemAPI system; 036 public MarketAPI market; 037 public int difficulty; 038 039 public List<Abortable> abortWhenOtherVersionAccepted = new ArrayList<Abortable>(); 040 } 041 042 043 String getId(); 044 float getFrequency(HubMissionWithBarEvent mission, int difficulty); 045 046 CustomBountyData createBounty(MarketAPI createdAt, HubMissionWithBarEvent mission, int difficulty, Object bountyStage); 047 void notifyAccepted(MarketAPI createdAt, HubMissionWithBarEvent mission, CustomBountyData data); 048 049 void addIntelAssessment(TextPanelAPI text, HubMissionWithBarEvent mission, CustomBountyData data); 050 void addFleetDescription(TooltipMakerAPI info, float width, float height, HubMissionWithBarEvent mission, CustomBountyData data); 051 052 void notifyCompleted(HubMissionWithBarEvent mission, CustomBountyData data); 053 void notifyFailed(HubMissionWithBarEvent mission, CustomBountyData data); 054 055 int getMinDifficulty(); 056 int getMaxDifficulty(); 057 058 StarSystemAPI getSystemWithNoTimeLimit(CustomBountyData data); 059 060 String getBaseBountyName(HubMissionWithBarEvent mission, CustomBountyData data); 061 String getBountyNamePostfix(HubMissionWithBarEvent mission, CustomBountyData data); 062 063 float getBountyDays(); 064 065 void updateInteractionData(HubMissionWithBarEvent mission, CustomBountyData data); 066 void addTargetLocationAndDescription(TooltipMakerAPI info, float width, float height, HubMissionWithBarEvent mission, CustomBountyData data); 067 void addTargetLocationAndDescriptionBulletPoint(TooltipMakerAPI info, Color tc, float pad, HubMissionWithBarEvent mission, CustomBountyData data); 068 String getIconName(); 069}