Starsector API
Loading...
Searching...
No Matches
DevMenuOptions.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign;
2
3import java.awt.Color;
4import java.util.HashSet;
5import java.util.List;
6import java.util.Set;
7
8import org.lwjgl.input.Keyboard;
9
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.campaign.InteractionDialogAPI;
12import com.fs.starfarer.api.campaign.RepLevel;
13import com.fs.starfarer.api.campaign.SectorEntityToken;
14import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.CustomRepImpact;
15import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
16import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
17import com.fs.starfarer.api.impl.campaign.ids.Factions;
18import com.fs.starfarer.api.impl.campaign.rulecmd.DumpMemory;
19import com.fs.starfarer.api.util.Misc;
20
21public class DevMenuOptions {
22
23 public static String TOP_MENU = "DMO_top";
24
25 public static String REP_MENU = "DMO_rep";
26 public static String MUSIC_MENU = "DMO_music";
27 public static String BACK_TO_OPTIONS = "DMO_top_back";
28 public static String BACK_TO_TOP = "DMO_rep_back";
29
30 public static String INCREASE_REP = "DMO_increase_rep";
31 public static String REDUCE_REP = "DMO_reduce_rep";
32 public static String PRINT_REP = "DMO_print_rep";
33
34 public static String MUSIC_PRINT = "DMO_print_current";
35 public static String MUSIC_RESTART = "DMO_music_restart";
36
37 public static Set<String> options = new HashSet<String>();
38
39 static {
40 options.add(TOP_MENU);
41 options.add(REP_MENU);
45
48 options.add(PRINT_REP);
49
52 }
53
54 public static boolean isDevOption(Object optionData) {
55 return options.contains(optionData);
56 }
57
58 public static void addOptions(InteractionDialogAPI dialog) {
59 DumpMemory.addOption(dialog);
60 dialog.getOptionPanel().addOption(">> (dev) options", TOP_MENU, Misc.getGrayColor(), null);
61
62 savedOptions = dialog.getOptionPanel().getSavedOptionList();
63 }
64
65
66 public static List savedOptions = null;
67
68 public static void execute(InteractionDialogAPI dialog, String option) {
69 SectorEntityToken entity = dialog.getInteractionTarget();
70 Color g = Misc.getGrayColor();
71 if (option == TOP_MENU) {
72 dialog.getOptionPanel().clearOptions();
73 dialog.getOptionPanel().addOption(">>> (dev) reputation", REP_MENU, g, null);
74 dialog.getOptionPanel().addOption(">>> (dev) music", MUSIC_MENU, g, null);
75 dialog.getOptionPanel().addOption(">>> (dev) back", BACK_TO_OPTIONS, g, null);
76 dialog.getOptionPanel().setShortcut(BACK_TO_OPTIONS, Keyboard.KEY_ESCAPE, false, false, false, true);
77 } else if (option == REP_MENU) {
78
79 //System.out.println("Go dark active: " +dialog.getInteractionTarget().getAbility(Abilities.GO_DARK).isActive());
80
81 dialog.getOptionPanel().clearOptions();
82 dialog.getOptionPanel().addOption(">>>> (dev) print", PRINT_REP, g, null);
83 dialog.getOptionPanel().addOption(">>>> (dev) increase", INCREASE_REP, g, null);
84 dialog.getOptionPanel().addOption(">>>> (dev) decrease", REDUCE_REP, g, null);
85 dialog.getOptionPanel().addOption(">>>> (dev) back", BACK_TO_TOP, g, null);
86 dialog.getOptionPanel().setShortcut(BACK_TO_TOP, Keyboard.KEY_ESCAPE, false, false, false, true);
87 } else if (option == MUSIC_MENU) {
88 dialog.getOptionPanel().clearOptions();
89 dialog.getOptionPanel().addOption(">>>> (dev) print current music", MUSIC_PRINT, g, null);
90 dialog.getOptionPanel().addOption(">>>> (dev) restart music", MUSIC_RESTART, g, null);
91 dialog.getOptionPanel().addOption(">>>> (dev) back", BACK_TO_TOP, g, null);
92 dialog.getOptionPanel().setShortcut(BACK_TO_TOP, Keyboard.KEY_ESCAPE, false, false, false, true);
93 }
94
95 if (entity != null && entity.getFaction() != null) {
96 if (option == PRINT_REP) {
97 if (entity.getActivePerson() != null) {
98 dialog.getTextPanel().addParagraph("Reputation with " + entity.getActivePerson().getNameString() + ": " +
99 entity.getActivePerson().getRelToPlayer().getRel());
100 } else {
101 dialog.getTextPanel().addParagraph("Reputation with " + entity.getFaction().getDisplayName() + ": " +
102 entity.getFaction().getRelationship(Factions.PLAYER));
103 }
104 } else if (option == INCREASE_REP) {
105 if (entity.getActivePerson() != null) {
106 CustomRepImpact impact = new CustomRepImpact();
107 impact.limit = RepLevel.COOPERATIVE;
108 impact.delta = 0.1f;
109 Global.getSector().adjustPlayerReputation(
110 new RepActionEnvelope(RepActions.CUSTOM, impact,
111 null, null, false), entity.getActivePerson());
112 dialog.getTextPanel().addParagraph("Reputation with " + entity.getActivePerson().getNameString() + ": " +
113 entity.getActivePerson().getRelToPlayer().getRel());
114 } else {
115 entity.getFaction().adjustRelationship(Factions.PLAYER, 0.1f);
116 dialog.getTextPanel().addParagraph("Reputation with " + entity.getFaction().getDisplayName() + ": " +
117 entity.getFaction().getRelationship(Factions.PLAYER));
118 }
119 } else if (option == REDUCE_REP) {
120 if (entity.getActivePerson() != null) {
121 CustomRepImpact impact = new CustomRepImpact();
122 impact.limit = RepLevel.VENGEFUL;
123 impact.delta = -0.1f;
124 Global.getSector().adjustPlayerReputation(
125 new RepActionEnvelope(RepActions.CUSTOM, impact,
126 null, null, false), entity.getActivePerson());
127 dialog.getTextPanel().addParagraph("Reputation with " + entity.getActivePerson().getNameString() + ": " +
128 entity.getActivePerson().getRelToPlayer().getRel());
129 } else {
130 entity.getFaction().adjustRelationship(Factions.PLAYER, -0.1f);
131 dialog.getTextPanel().addParagraph("Reputation with " + entity.getFaction().getDisplayName() + ": " +
132 entity.getFaction().getRelationship(Factions.PLAYER));
133 }
134 }
135 }
136
137 if (option == MUSIC_RESTART) {
139 } else if (option == MUSIC_PRINT) {
140 dialog.getTextPanel().addParagraph("Now playing: " + Global.getSoundPlayer().getCurrentMusicId());
141 }
142
143
144
145 if (option == BACK_TO_OPTIONS) {
146 if (savedOptions != null) {
147 dialog.getOptionPanel().restoreSavedOptions(savedOptions);
148 return;
149 }
150 }
151 if (option == BACK_TO_TOP) {
152 execute(dialog, TOP_MENU);
153 }
154 }
155
156}
157
158
159
160
161
static SoundPlayerAPI getSoundPlayer()
Definition Global.java:43
static SectorAPI getSector()
Definition Global.java:59
static void execute(InteractionDialogAPI dialog, String option)
static boolean isDevOption(Object optionData)
static void addOptions(InteractionDialogAPI dialog)