23 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
24 if (dialog ==
null)
return false;
26 float price = params.get(0).getFloat(memoryMap);
27 String option = params.get(1).getString(memoryMap);
28 boolean showCredits = params.size() >= 3;
29 boolean showTotal = params.size() >= 3 && params.get(2).getBoolean(memoryMap);
31 TextPanelAPI text = dialog.getTextPanel();
32 OptionPanelAPI options = dialog.getOptionPanel();
34 Color h = Misc.getHighlightColor();
35 Color n = Misc.getNegativeHighlightColor();
37 final float credits =
Global.
getSector().getPlayerFleet().getCargo().getCredits().get();
39 final boolean canAccept = (int) price <= (
int) credits;
41 LabelAPI label =
null;
45 label = text.addPara(
"The total price is %s. You have %s available.",
47 Misc.getDGSCredits(price),
48 Misc.getDGSCredits(credits));
49 label.setHighlightColors(canAccept ? h : n, h);
50 label.setHighlight(Misc.getDGSCredits(price), Misc.getDGSCredits(credits));
52 label = text.addPara(
"You have %s available.",
54 Misc.getDGSCredits(credits));
55 label.setHighlightColors(canAccept ? h : n);
56 label.setHighlight(Misc.getDGSCredits(credits));
61 options.setEnabled(option,
false);
64 options.addOptionTooltipAppender(option,
new OptionTooltipCreator() {
65 public void createTooltip(TooltipMakerAPI tooltip,
boolean hadOtherText) {
67 tooltip.addPara(
"You have %s credits available.", 10f,
68 Misc.getHighlightColor(), Misc.getWithDGS(credits));
70 tooltip.addPara(
"You only have %s credits available.", 10f,
71 Misc.getHighlightColor(), Misc.getWithDGS(credits));