Starsector API
Loading...
Searching...
No Matches
SimUpdateIntel.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.intel.misc;
2
3import java.util.ArrayList;
4import java.util.LinkedHashSet;
5import java.util.List;
6import java.util.Set;
7
8import java.awt.Color;
9
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.campaign.FactionSpecAPI;
12import com.fs.starfarer.api.fleet.FleetMemberAPI;
13import com.fs.starfarer.api.fleet.FleetMemberType;
14import com.fs.starfarer.api.ui.Alignment;
15import com.fs.starfarer.api.ui.SectorMapAPI;
16import com.fs.starfarer.api.ui.TooltipMakerAPI;
17import com.fs.starfarer.api.util.Misc;
18
19public class SimUpdateIntel extends FleetLogIntel {
20
21 protected LinkedHashSet<String> addedFactions;
22 protected LinkedHashSet<String> addedVariants;
23
24 public SimUpdateIntel(LinkedHashSet<String> addedFactions, LinkedHashSet<String> addedVariants) {
25 this.addedFactions = addedFactions;
26 this.addedVariants = addedVariants;
27
29 }
30
31 protected void addBulletPoints(TooltipMakerAPI info, ListInfoMode mode, boolean isUpdate, Color tc, float initPad) {
32 Color h = Misc.getHighlightColor();
33 Color g = Misc.getGrayColor();
34 float pad = 3f;
35 float opad = 10f;
36
37 bullet(info);
38
39 if (!addedFactions.isEmpty()) {
40 String factions = addedFactions.size() == 1 ? "faction" : "factions";
41 info.addPara("%s new " + factions + "", initPad, tc, h, "" + addedFactions.size());
42 initPad = 0f;
43 }
44 if (!addedVariants.isEmpty()) {
45 String variants = addedVariants.size() == 1 ? "variant" : "variants";
46 info.addPara("%s new hull " + variants + "", initPad, tc, h, "" + addedVariants.size());
47 initPad = 0f;
48 }
49 unindent(info);
50 }
51
52 @Override
53 public void createSmallDescription(TooltipMakerAPI info, float width, float height) {
54 Color h = Misc.getHighlightColor();
55 Color g = Misc.getGrayColor();
56 Color tc = Misc.getTextColor();
57 float pad = 3f;
58 float small = 3f;
59 float opad = 10f;
60
61// info.addPara("New simulator opponents and factions unlocked. New ships "
62// + "are unlocked by encountering and destroying them in battle.", 0f);
63
64 if (!addedFactions.isEmpty()) {
65 info.addSpacer(0f);
66 info.addSectionHeading("Factions", Alignment.MID, opad);
67 info.addPara("New simulator factions available. New factions "
68 + "are are made available by encountering their fleets, or deserters from the faction, in battle.", opad);
69 //bullet(info);
70 float initPad = opad;
71 for (String fid : addedFactions) {
73 TooltipMakerAPI para = info.beginImageWithText(spec.getCrest(), 32);
74 para.addPara(Misc.ucFirst(spec.getDisplayName()), spec.getBaseUIColor(), 0f);
75 //para.getPosition().setXAlignOffset(100f);
76 info.addImageWithText(initPad);
77 //info.addPara(Misc.ucFirst(spec.getDisplayName()), spec.getBaseUIColor(), initPad);
78 initPad = 3f;
79 }
80 //unindent(info);
81 }
82
83 if (!addedVariants.isEmpty()) {
84 info.addSpacer(0f);
85 float extra = 0f;
86 if (!addedFactions.isEmpty()) extra = 2f;
87 info.addSectionHeading("Ship variants", Alignment.MID, opad + extra);
88 info.addPara("New simulator opponents available. New ships "
89 + "are made available by encountering and destroying them in battle.", opad);
90
91 List<FleetMemberAPI> members = new ArrayList<FleetMemberAPI>();
92 for (String vid : addedVariants) {
94 members.add(member);
95 }
96
97 int cols = 7;
98 float iconSize = width / cols;
99 int rows = members.size() / cols;
100 if (rows * cols < members.size()) rows++;
101 info.addShipList(cols, rows, iconSize, Misc.getBasePlayerColor(), members, opad);
102
103 //info.showShips(members, members.size(), true, opad);
104// bullet(info);
105// float initPad = opad;
106// for (String vid : addedVariants) {
107// ShipVariantAPI v = Global.getSettings().getVariant(vid);
108// if (v == null) continue;
109// info.addPara(v.getFullDesignationWithHullName(), initPad);
110// initPad = 0f;
111// }
112// unindent(info);
113 }
114
115 addLogTimestamp(info, tc, opad);
116
117 addDeleteButton(info, width);
118 }
119
120 @Override
121 public String getIcon() {
122 return Global.getSettings().getSpriteName("intel", "simulator_update");
123 }
124
125 @Override
126 public Set<String> getIntelTags(SectorMapAPI map) {
127 Set<String> tags = super.getIntelTags(map);
128 return tags;
129 }
130
131 public String getName() {
132 return "Simulator Update";
133 }
134
135}
static SettingsAPI getSettings()
Definition Global.java:57
static FactoryAPI getFactory()
Definition Global.java:41
static SectorAPI getSector()
Definition Global.java:65
void addLogTimestamp(TooltipMakerAPI info, Color tc, float opad)
void addDeleteButton(TooltipMakerAPI info, float width)
void addBulletPoints(TooltipMakerAPI info, ListInfoMode mode, boolean isUpdate, Color tc, float initPad)
void createSmallDescription(TooltipMakerAPI info, float width, float height)
SimUpdateIntel(LinkedHashSet< String > addedFactions, LinkedHashSet< String > addedVariants)
static Color getTextColor()
Definition Misc.java:839
static String ucFirst(String str)
Definition Misc.java:559
static Color getBasePlayerColor()
Definition Misc.java:833
static Color getGrayColor()
Definition Misc.java:826
static Color getHighlightColor()
Definition Misc.java:792
FleetMemberAPI createFleetMember(FleetMemberType type, String variantOrWingId)
String getSpriteName(String category, String id)
FactionSpecAPI getFactionSpec(String id)
void addShipList(int cols, int rows, float iconSize, Color baseColor, List< FleetMemberAPI > ships, float pad)
LabelAPI addPara(String format, float pad, Color hl, String... highlights)
UIComponentAPI addSpacer(float height)
TooltipMakerAPI beginImageWithText(String spriteName, float imageHeight)
LabelAPI addSectionHeading(String str, Alignment align, float pad)
UIPanelAPI addImageWithText(float pad)