1package com.fs.starfarer.api.impl.campaign.intel;
6import org.lwjgl.input.Keyboard;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CampaignFleetAPI;
10import com.fs.starfarer.api.campaign.StoryPointActionDelegate;
11import com.fs.starfarer.api.campaign.TextPanelAPI;
12import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
13import com.fs.starfarer.api.characters.PersonAPI;
14import com.fs.starfarer.api.characters.SkillSpecAPI;
15import com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent;
16import com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent.SkillPickPreference;
17import com.fs.starfarer.api.impl.campaign.ids.Factions;
18import com.fs.starfarer.api.impl.campaign.ids.Ranks;
19import com.fs.starfarer.api.impl.campaign.ids.Sounds;
20import com.fs.starfarer.api.impl.campaign.ids.Tags;
21import com.fs.starfarer.api.impl.campaign.rulecmd.SetStoryOption.BaseOptionStoryPointActionDelegate;
22import com.fs.starfarer.api.impl.campaign.rulecmd.SetStoryOption.StoryOptionParams;
23import com.fs.starfarer.api.ui.ButtonAPI;
24import com.fs.starfarer.api.ui.IntelUIAPI;
25import com.fs.starfarer.api.ui.LabelAPI;
26import com.fs.starfarer.api.ui.SectorMapAPI;
27import com.fs.starfarer.api.ui.TooltipMakerAPI;
28import com.fs.starfarer.api.util.Misc;
46 SkillPickPreference.ANY,
true,
null,
false,
false, -1,
null);
47 person.setPortraitSprite(OfficerManagerEvent.pickPortraitPreferNonDuplicate(
person.getFaction(),
person.getGender()));
65 return "Officer Promotion Candidate";
80 Color h = Misc.getHighlightColor();
81 Color g = Misc.getGrayColor();
88 if (mode == ListInfoMode.IN_DESC) initPad = opad;
90 String pName = Misc.lcFirst(Misc.getPersonalityName(
person));
93 MutableCharacterStatsAPI stats =
person.getStats();
95 int level = (int) stats.getSkillLevel(skillId);
98 String skillName = spec.getName();
100 skillName +=
" (Elite)";
102 info.addPara(
"Skill: " + skillName, initPad, tc, h, skillName);
106 info.addPara(
"Personality: %s", initPad, tc, h, pName);
111 String themselves =
"himself";
112 if (
person.isFemale()) themselves =
"herself";
113 return "A junior officer, " +
person.getNameString() +
", has distinguished " + themselves +
114 " recently and is worthy of consideration for " +
115 "the command of a ship.";
120 String pName = Misc.getPersonalityName(
person);
122 Color h = Misc.getHighlightColor();
123 Color g = Misc.getGrayColor();
124 Color tc = Misc.getTextColor();
128 info.addImage(
person.getPortraitSprite(), width, 128, opad);
133 info.addPara(
person.getPersonalityAPI().getDescription(), opad);
136 info.addPara(
"This opportunity will be available for %s more " +
getDaysString(days) +
".",
140 int curr = Misc.getNumNonMercOfficers(
Global.
getSector().getPlayerFleet());
143 if (curr > max) hNum = Misc.getNegativeHighlightColor();
144 LabelAPI label = info.addPara(
"Officers already under your command: %s %s %s", opad, tc, h,
145 "" + curr,
"/",
"" + max);
146 label.setHighlightColors(hNum, h, h);
149 Color color = Misc.getStoryOptionColor();
150 Color dark = Misc.getStoryDarkColor();
153 button.setShortcut(Keyboard.KEY_T,
true);
155 info.addSpacer(-10f);
161 button.setEnabled(
false);
169 prompt.addPara(
"Are you sure? This action can not be undone.", Misc.getTextColor(), 0f);
183 ui.recreateIntelUI();
210 StoryOptionParams params =
new StoryOptionParams(
null, 1,
"promoteCrewMember",
211 Sounds.STORY_POINT_SPEND_LEADERSHIP,
212 "Promoted promising junior officer to ship command");
213 return new BaseOptionStoryPointActionDelegate(
null, params) {
215 public void confirm() {
217 playerFleet.getCargo().removeCrew(1);
219 playerFleet.getFleetData().addOfficer(
person);
220 person.setPostId(Ranks.POST_OFFICER);
224 public String getTitle() {
230 public void createDescription(TooltipMakerAPI info) {
231 info.setParaInsigniaLarge();
232 super.createDescription(info);
242 return person.getPortraitSprite();
247 Set<String> tags = super.getIntelTags(map);
248 tags.add(Tags.INTEL_FLEET_LOG);
254 return super.getCommMessageSound();
static SettingsAPI getSettings()
static SectorAPI getSector()
String getDays(float days)
void unindent(TooltipMakerAPI info)
ButtonAPI addGenericButton(TooltipMakerAPI info, float width, String text, Object data)
void addDeleteButton(TooltipMakerAPI info, float width)
Color getBulletColorForMode(ListInfoMode mode)
float getDaysSincePlayerVisible()
void setImportant(Boolean important)
static String getDaysString(float days)
void bullet(TooltipMakerAPI info)
Color getTitleColor(ListInfoMode mode)
SkillSpecAPI getSkillSpec(String skillId)
List< String > getSortedSkillIds()