Starsector API
Loading...
Searching...
No Matches
DonationOffer.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.intel.bar.events.historian;
2
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.CargoAPI;
5import com.fs.starfarer.api.campaign.InteractionDialogAPI;
6import com.fs.starfarer.api.campaign.RepLevel;
7import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.CustomRepImpact;
8import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
9import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
10import com.fs.starfarer.api.impl.campaign.rulecmd.AddRemoveCommodity;
11import com.fs.starfarer.api.util.Misc;
12
13public class DonationOffer extends BaseHistorianOffer {
14
15 public static enum OptionId {
16 DONATE,
17 NEVER_MIND,
18 }
19
20 protected int credits;
21
22 public DonationOffer() {
24 int tier = hd.getTier();
25 if (tier == 0) {
26 credits = 20000;
27 } else if (tier == 1) {
28 credits = 50000;
29 } else if (tier >= 2) {
30 credits = 250000;
31 }
32 }
33
34
35
36 @Override
37 public void addPromptAndOption(InteractionDialogAPI dialog) {
39
40 dialog.getOptionPanel().addOption("... some promising leads that a " + Misc.getDGSCredits(credits) +
41 " donation would let " + hd.getHimOrHer() + " pursue",
42 this);
43// dialog.getOptionPanel().addOption("... that a donation would let " + hd.getHimOrHer() + " pursue some promising leads",
44// this);
45 }
46
47 @Override
48 public void init(InteractionDialogAPI dialog) {
49 super.init(dialog);
50
52
53 options.clearOptions();
54 //options.addOption("Make a donation of " + Misc.getDGSCredits(credits) + "", OptionId.DONATE);
55 options.addOption("Make the donation", OptionId.DONATE);
56 options.addOption("Steer the conversation to other topics", OptionId.NEVER_MIND);
57
58 CargoAPI cargo = Global.getSector().getPlayerFleet().getCargo();
59 String c = "" + Misc.getDGSCredits(cargo.getCredits().get());
60 String d = "" + Misc.getDGSCredits(credits);
61 if (cargo.getCredits().get() < credits) {
62 text.addPara("The asked-for donation amount is %s. You only have %s available.", Misc.getHighlightColor(), d, c);
63 options.setEnabled(OptionId.DONATE, false);
64 options.setTooltip(OptionId.DONATE, "You don't have enough credits.");
65 } else {
66 text.addPara("The asked-for donation amount is %s. You have %s available.", Misc.getHighlightColor(), d, c);
67 }
68 }
69
70 @Override
71 public void optionSelected(String optionText, Object optionData) {
72
74
75 if (optionData == OptionId.DONATE) {
76 setDone(true);
77 setRemove(true);
78
79 hd.incrTier();
81
82 Global.getSector().getPlayerFleet().getCargo().getCredits().subtract(credits);
83 AddRemoveCommodity.addCreditsLossText(credits, text);
84
85 CustomRepImpact impact = new CustomRepImpact();
86 impact.limit = RepLevel.COOPERATIVE;
87 impact.delta = 0.1f;
88 Global.getSector().adjustPlayerReputation(
89 new RepActionEnvelope(RepActions.CUSTOM, impact,
90 null, dialog.getTextPanel(), true), hd.getPerson());
91
92// CustomRepImpact impact = new CustomRepImpact();
93// impact.delta = 0.1f;
94//
95// Global.getSector().adjustPlayerReputation(
96// new RepActionEnvelope(RepActions.CUSTOM,
97// impact, null, text, true, true),
98// hd.getPerson());
99
100 dialog.getTextPanel().addPara("The historian thanks you for your help.");
101 return;
102 }
103
104
105 if (optionData == OptionId.NEVER_MIND) {
106 setDone(true);
107
108 dialog.getTextPanel().addPara("The historian cooperates in changing topics.");
109 return;
110 }
111 }
112
113
114 @Override
115 public int getSortOrder() {
116 return 1000;
117 }
118
119
120
121
122}
123
124
125
126
127
128
129
130
131
132
static SectorAPI getSector()
Definition Global.java:59