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