001package com.fs.starfarer.api.impl.campaign.graid;
002
003import java.awt.Color;
004import java.util.Random;
005
006import com.fs.starfarer.api.campaign.CargoAPI;
007import com.fs.starfarer.api.campaign.CargoStackAPI;
008import com.fs.starfarer.api.campaign.TextPanelAPI;
009import com.fs.starfarer.api.campaign.econ.Industry;
010import com.fs.starfarer.api.campaign.econ.MarketAPI;
011import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.MarketCMD.RaidDangerLevel;
012import com.fs.starfarer.api.ui.IconGroupAPI;
013import com.fs.starfarer.api.ui.TooltipMakerAPI;
014
015public interface GroundRaidObjectivePlugin {
016        
017        /**
018         * Credit value * this = XP gained from raids for valuables.
019         */
020        public static float XP_GAIN_VALUE_MULT = 0.2f;
021        
022        // higher tiers show closer to the top of the list
023        public static float QUANTITY_SORT_TIER_0 = 0;
024        public static float QUANTITY_SORT_TIER_1 = 1000000;
025        public static float QUANTITY_SORT_TIER_2 = 10000000;
026        public static float QUANTITY_SORT_TIER_3 = 100000000;
027        public static float QUANTITY_SORT_TIER_4 = 110000000;
028        public static float QUANTITY_SORT_TIER_5 = 120000000;
029        
030        
031//      CommoditySpecAPI getCommoditySpec();
032//      SpecialItemSpecAPI getItemSpec();
033        
034        boolean withContinueBeforeResult();
035        
036        void addIcons(IconGroupAPI iconGroup);
037        
038        int getMarinesAssigned();
039        void setMarinesAssigned(int marines);
040        int getMarinesRequired();
041        void setMarinesRequired(int marines);
042        
043        float getQuantitySortValue();
044        String getQuantityString(int marines);
045        Color getQuantityColor(int marines);
046        
047        float getValueSortValue();
048        String getValueString(int marines);
049        Color getValueColor(int marines);
050        
051        int getProjectedCreditsValue();
052        int getCargoSpaceNeeded();
053        int getFuelSpaceNeeded();
054        
055        int getDeficitCaused();
056        RaidDangerLevel getDangerLevel();
057        
058        String getSourceString();
059
060        String getId();
061        void setId(String id);
062        
063        MarketAPI getMarket();
064        void setMarket(MarketAPI market);
065
066        String getName();
067        String getIconName();
068        CargoStackAPI getStackForIcon();
069        String getNameOverride();
070        void setNameOverride(String nameOverride);
071
072        Industry getSource();
073        void setSource(Industry source);
074        String getCommodityIdForDeficitIcons();
075
076        String getAssignedForcesColumnText();
077        void setAssignedForcesColumnText(String assignedForcesColumnText);
078        
079        Color getAssignedForcesColumnColor();
080        void setAssignedForcesColumnColor(Color assignedForcesColumnColor);
081        
082        boolean hasTooltip();
083        void createTooltip(TooltipMakerAPI tooltip, boolean expanded);
084        float getTooltipWidth();
085        boolean isTooltipExpandable();
086
087        /**
088         * @param loot
089         * @param random
090         * @param lootMult
091         * @return XP gained
092         */
093        int performRaid(CargoAPI loot, Random random, float lootMult, TextPanelAPI text);
094
095        int getDisruptionDaysSort(int marines);
096        String getDisruptionDaysString(int marines);
097        Color getDisruptionDaysColor(int marines);
098}
099
100
101