001package com.fs.starfarer.api.impl.campaign.missions.cb;
002
003import java.util.ArrayList;
004import java.util.List;
005
006import com.fs.starfarer.api.campaign.econ.MarketAPI;
007import com.fs.starfarer.api.impl.campaign.ids.Factions;
008import com.fs.starfarer.api.impl.campaign.ids.Ranks;
009import com.fs.starfarer.api.impl.campaign.ids.Tags;
010import com.fs.starfarer.api.util.Misc;
011
012public class MilitaryCustomBounty extends BaseCustomBounty {
013
014        public static List<CustomBountyCreator> CREATORS = new ArrayList<CustomBountyCreator>();
015        static {
016                CREATORS.add(new CBPirate());
017                CREATORS.add(new CBDeserter());
018                CREATORS.add(new CBDerelict());
019                CREATORS.add(new CBMerc());
020                CREATORS.add(new CBPather());
021                CREATORS.add(new CBRemnant());
022                CREATORS.add(new CBRemnantPlus());
023                CREATORS.add(new CBRemnantStation());
024                CREATORS.add(new CBEnemyStation());
025        }
026        
027        @Override
028        public List<CustomBountyCreator> getCreators() {
029                return CREATORS;
030        }
031
032        @Override
033        protected boolean create(MarketAPI createdAt, boolean barEvent) {
034                if (Factions.PIRATES.equals(createdAt.getFaction().getId())) {
035                        return false;
036                }
037                return super.create(createdAt, barEvent);
038        }
039        
040        @Override
041        protected void createBarGiver(MarketAPI createdAt) {
042                List<String> posts = new ArrayList<String>();
043                if (Misc.isMilitary(createdAt)) {
044                        posts.add(Ranks.POST_BASE_COMMANDER);
045                }
046                if (Misc.hasOrbitalStation(createdAt)) {
047                        posts.add(Ranks.POST_STATION_COMMANDER);
048                }
049                if (posts.isEmpty()) {
050                        posts.add(Ranks.POST_GENERIC_MILITARY);
051                }
052                String post = pickOne(posts);
053                setGiverPost(post);
054                if (post.equals(Ranks.POST_GENERIC_MILITARY)) {
055                        setGiverRank(Ranks.SPACE_COMMANDER);
056                        setGiverImportance(pickImportance());
057                } else if (post.equals(Ranks.POST_BASE_COMMANDER)) {
058                        setGiverRank(Ranks.GROUND_COLONEL);
059                        setGiverImportance(pickImportance());
060                } else if (post.equals(Ranks.POST_STATION_COMMANDER)) {
061                        setGiverRank(Ranks.SPACE_CAPTAIN);
062                        setGiverImportance(pickHighImportance());
063                }
064                setGiverTags(Tags.CONTACT_MILITARY);
065                findOrCreateGiver(createdAt, false, false);
066                setGiverIsPotentialContactOnSuccess();
067        }
068
069        
070}
071
072
073
074
075
076
077
078
079
080
081