Skip to content
Merged
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@ scripts/**/__pycache__/
/ti4-backup/
/ti4-bkup-cleaned/
/.claude/settings.local.json
/.claude/workfiles/
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
import java.util.List;
import lombok.experimental.UtilityClass;
import net.dv8tion.jda.api.components.buttons.Button;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import org.apache.commons.lang3.function.Consumers;
import ti4.discord.interactions.buttons.Buttons;
import ti4.discord.interactions.routing.ButtonHandler;
import ti4.game.Game;
import ti4.game.Player;
import ti4.helpers.ButtonHelperAgents;
import ti4.helpers.FoWHelper;
import ti4.logging.BotLogger;
import ti4.message.MessageHelper;

Expand All @@ -29,16 +29,7 @@ public static void resolveAncientTradeRoutes(Player player, Game game, ButtonInt
if (p2 == player) {
continue;
}
if (game.isFowMode()) {
buttons.add(Buttons.gray("ancientTradeRoutesStep2_" + p2.getFaction(), p2.getColor()));
} else {
Button button = Buttons.gray(
"ancientTradeRoutesStep2_" + p2.getFaction(),
p2.getFactionModel().getShortName());
String factionEmojiString = p2.getFactionEmoji();
button = button.withEmoji(Emoji.fromFormatted(factionEmojiString));
buttons.add(button);
}
buttons.add(FoWHelper.fogSafeTargetButton("ancientTradeRoutesStep2_" + p2.getFaction(), "gray", p2));
}
buttons.add(Buttons.red("deleteButtons", "Don't Give Commodities"));
event.getMessage().delete().queue(Consumers.nop(), BotLogger::catchRestError);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import java.util.Objects;
import lombok.experimental.UtilityClass;
import net.dv8tion.jda.api.components.buttons.Button;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import ti4.discord.interactions.buttons.Buttons;
import ti4.discord.interactions.routing.ButtonHandler;
Expand All @@ -16,6 +15,7 @@
import ti4.game.Tile;
import ti4.helpers.ButtonHelper;
import ti4.helpers.ButtonHelperAbilities;
import ti4.helpers.FoWHelper;
import ti4.helpers.Helper;
import ti4.message.MessageHelper;
import ti4.service.unit.AddUnitService;
Expand Down Expand Up @@ -129,15 +129,8 @@ private static List<Button> getArbitrationOwnerButtons(Game game, Player player)
.isEmpty()) {
continue;
}
if (game.isFowMode()) {
buttons.add(Buttons.gray(
player.factionButtonChecker() + "arbitrationOwner_" + owner.getFaction(), owner.getColor()));
} else {
Button button = Buttons.gray(
player.factionButtonChecker() + "arbitrationOwner_" + owner.getFaction(),
owner.getFactionModel().getShortName());
buttons.add(button.withEmoji(Emoji.fromFormatted(owner.getFactionEmoji())));
}
buttons.add(FoWHelper.fogSafeTargetButton(
player.factionButtonChecker() + "arbitrationOwner_" + owner.getFaction(), "gray", owner));
}

if (!getArbitrationPlanetButtons(game, player, "neutralUnits").isEmpty()) {
Expand Down Expand Up @@ -184,17 +177,10 @@ private static List<Button> getArbitrationTargetButtons(Game game, Player player
if (target == player || target.hasPlanet(planet)) {
continue;
}
if (game.isFowMode()) {
buttons.add(Buttons.gray(
player.factionButtonChecker() + "arbitrationTarget_" + planet + "_" + target.getFaction(),
target.getColor()));
} else {
Button button = Buttons.gray(
player.factionButtonChecker() + "arbitrationTarget_" + planet + "_" + target.getFaction(),
target.getFactionModel().getShortName());
String factionEmojiString = target.getFactionEmoji();
buttons.add(button.withEmoji(Emoji.fromFormatted(factionEmojiString)));
}
buttons.add(FoWHelper.fogSafeTargetButton(
player.factionButtonChecker() + "arbitrationTarget_" + planet + "_" + target.getFaction(),
"gray",
target));
}
return buttons;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
import java.util.List;
import lombok.experimental.UtilityClass;
import net.dv8tion.jda.api.components.buttons.Button;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import org.apache.commons.lang3.function.Consumers;
import ti4.discord.interactions.buttons.Buttons;
import ti4.discord.interactions.routing.ButtonHandler;
import ti4.game.Game;
import ti4.game.Player;
import ti4.helpers.FoWHelper;
import ti4.helpers.Helper;
import ti4.logging.BotLogger;
import ti4.message.MessageHelper;
Expand All @@ -26,15 +26,7 @@ public static void resolveArmsDeal(Player player, Game game, ButtonInteractionEv
if (p2 == player || !player.getNeighbouringPlayers(true).contains(p2)) {
continue;
}
if (game.isFowMode()) {
buttons.add(Buttons.gray("armsDealStep2_" + p2.getFaction(), p2.getColor()));
} else {
Button button = Buttons.gray(
"armsDealStep2_" + p2.getFaction(), p2.getFactionModel().getShortName());
String factionEmojiString = p2.getFactionEmoji();
button = button.withEmoji(Emoji.fromFormatted(factionEmojiString));
buttons.add(button);
}
buttons.add(FoWHelper.fogSafeTargetButton("armsDealStep2_" + p2.getFaction(), "gray", p2));
}
event.getMessage().delete().queue(Consumers.nop(), BotLogger::catchRestError);
MessageHelper.sendMessageToChannelWithButtons(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.util.List;
import lombok.experimental.UtilityClass;
import net.dv8tion.jda.api.components.buttons.Button;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import org.apache.commons.lang3.function.Consumers;
import ti4.discord.interactions.buttons.Buttons;
Expand All @@ -13,6 +12,7 @@
import ti4.game.Player;
import ti4.helpers.ActionCardHelper;
import ti4.helpers.ButtonHelper;
import ti4.helpers.FoWHelper;
import ti4.logging.BotLogger;
import ti4.message.MessageHelper;
import ti4.service.emoji.CardEmojis;
Expand All @@ -27,16 +27,7 @@ public static void resolveBetrayal(Player player, Game game, ButtonInteractionEv
if (p2 == player) {
continue;
}
if (game.isFowMode()) {
buttons.add(Buttons.gray("resolveBetrayalStep2_" + p2.getFaction(), p2.getColor()));
} else {
Button button = Buttons.gray(
"resolveBetrayalStep2_" + p2.getFaction(),
p2.getFactionModel().getShortName());
String factionEmojiString = p2.getFactionEmoji();
button = button.withEmoji(Emoji.fromFormatted(factionEmojiString));
buttons.add(button);
}
buttons.add(FoWHelper.fogSafeTargetButton("resolveBetrayalStep2_" + p2.getFaction(), "gray", p2));
}
event.getMessage().delete().queue(Consumers.nop(), BotLogger::catchRestError);
MessageHelper.sendMessageToChannelWithButtons(
Expand Down Expand Up @@ -95,7 +86,7 @@ public static void resolveBetrayalStep2(Player player, Game game, ButtonInteract
List<Button> buttons = List.of(Buttons.green(
"resolveBetrayalCollect_" + player.getFaction(), "Send Random Action Card", CardEmojis.ActionCard));
String msg = p2.getRepresentationUnfogged() + ", _Betrayal_ requires you to send 1 random action card to "
+ (game.isFowMode() ? "another player." : player.getFactionEmojiOrColor() + ".");
+ FoWHelper.factionEmojiOrAnon(game, player, "another player") + ".";
MessageHelper.sendMessageToChannelWithButtons(p2.getCardsInfoThread(), msg, buttons);
if (p2.isNpc()) {
ActionCardHelper.sendRandomACPart2(event, game, p2, player);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import ti4.game.Game;
import ti4.game.Player;
import ti4.helpers.ButtonHelper;
import ti4.helpers.FoWHelper;
import ti4.image.Mapper;
import ti4.message.MessageHelper;
import ti4.model.SecretObjectiveModel;
Expand Down Expand Up @@ -99,7 +100,7 @@ public static void blackMarketIntelGive(Player player, Game game, ButtonInteract

String publicGiveMsg = player.getRepresentationNoPing()
+ " gave a secret objective to "
+ (game.isFowMode() ? "another player" : target.getRepresentationNoPing())
+ FoWHelper.actorOrAnon(game, target, "another player")
+ " using _Black Market Intel_.";
MessageHelper.sendMessageToChannel(game.getActionsChannel(), publicGiveMsg);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,7 @@ public static void resolveBounty(Player player, Game game, ButtonInteractionEven
continue;
}
String id = player.factionButtonChecker() + "bountyStep2_" + p2.getFaction();
if (game.isFowMode()) {
buttons.add(Buttons.gray(id, p2.getColor()));
} else {
buttons.add(Buttons.gray(id, p2.getColor()).withEmoji(Emoji.fromFormatted(p2.getFactionEmoji())));
}
buttons.add(Buttons.gray(id, p2.getColor()).withEmoji(Emoji.fromFormatted(p2.fogSafeEmoji())));
}
buttons.add(Buttons.red("deleteButtons", "Decline Capture"));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,11 +304,9 @@ private static List<Button> getDefectorsTargetButtons(Player player, Game game,
List<Button> buttons = new ArrayList<>();
for (Player target : targets) {
String label = game.isFowMode() ? target.getColor() : StringUtils.capitalize(target.getFaction());
Button button =
Buttons.blue(player.factionButtonChecker() + "defectorsTarget_" + target.getFaction(), label);
if (!game.isFowMode()) {
button = button.withEmoji(Emoji.fromFormatted(target.getFactionEmoji()));
}
Button button = Buttons.blue(
player.factionButtonChecker() + "defectorsTarget_" + target.getFaction(), label)
.withEmoji(Emoji.fromFormatted(target.fogSafeEmoji()));
buttons.add(button);
}
return buttons;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
import java.util.Map;
import lombok.experimental.UtilityClass;
import net.dv8tion.jda.api.components.buttons.Button;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import ti4.discord.interactions.buttons.Buttons;
import ti4.discord.interactions.routing.ButtonHandler;
import ti4.game.Game;
import ti4.game.Player;
import ti4.helpers.ActionCardHelper;
import ti4.helpers.ButtonHelper;
import ti4.helpers.FoWHelper;
import ti4.helpers.PromissoryNoteHelper;
import ti4.image.Mapper;
import ti4.message.MessageHelper;
Expand All @@ -28,16 +28,8 @@ public static void resolveEspionage(Player player, Game game, ButtonInteractionE
if (target == player || target.getActionCards().isEmpty()) {
continue;
}
if (game.isFowMode()) {
buttons.add(Buttons.gray(
player.factionButtonChecker() + "espionageTarget_" + target.getFaction(), target.getColor()));
} else {
Button button = Buttons.gray(
player.factionButtonChecker() + "espionageTarget_" + target.getFaction(),
target.getFactionModel().getShortName());
button = button.withEmoji(Emoji.fromFormatted(target.getFactionEmoji()));
buttons.add(button);
}
buttons.add(FoWHelper.fogSafeTargetButton(
player.factionButtonChecker() + "espionageTarget_" + target.getFaction(), "gray", target));
}

ButtonHelper.deleteMessage(event);
Expand Down Expand Up @@ -87,7 +79,7 @@ public static void resolveEspionageTarget(Player player, Game game, ButtonIntera
MessageHelper.sendMessageToChannelWithButtons(
target.getCardsInfoThread(),
target.getRepresentationUnfogged() + ", "
+ (game.isFowMode() ? "another player" : player.getFactionEmojiOrColor())
+ FoWHelper.factionEmojiOrAnon(game, player, "another player")
+ " is resolving _Espionage_ against you. You may reveal your action cards so they can take 1,"
+ " or send them a random promissory note instead.",
buttons);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.util.List;
import lombok.experimental.UtilityClass;
import net.dv8tion.jda.api.components.buttons.Button;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import ti4.discord.interactions.buttons.Buttons;
import ti4.discord.interactions.routing.ButtonHandler;
Expand All @@ -28,12 +27,7 @@ public static void resolveFalseFlag(Player player, Game game, ButtonInteractionE
continue;
}
String id = player.factionButtonChecker() + "falseFlagPlayer_" + p2.getFaction();
if (game.isFowMode()) {
buttons.add(Buttons.gray(id, p2.getColor()));
} else {
buttons.add(Buttons.gray(id, p2.getFactionModel().getShortName())
.withEmoji(Emoji.fromFormatted(p2.getFactionEmoji())));
}
buttons.add(FoWHelper.fogSafeTargetButton(id, "gray", p2));
}
ButtonHelper.deleteMessage(event);
if (buttons.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,7 @@ public static void resolveHeist(Player player, Game game, ButtonInteractionEvent
continue;
}
String id = player.factionButtonChecker() + "heistStep2_" + p2.getFaction() + "_2";
if (game.isFowMode()) {
buttons.add(Buttons.gray(id, p2.getColor()));
} else {
buttons.add(Buttons.gray(id, p2.getColor()).withEmoji(Emoji.fromFormatted(p2.getFactionEmoji())));
}
buttons.add(Buttons.gray(id, p2.getColor()).withEmoji(Emoji.fromFormatted(p2.fogSafeEmoji())));
}
buttons.add(Buttons.red("deleteButtons", "Decline"));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.util.List;
import lombok.experimental.UtilityClass;
import net.dv8tion.jda.api.components.buttons.Button;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import ti4.discord.interactions.buttons.Buttons;
import ti4.discord.interactions.routing.ButtonHandler;
Expand All @@ -13,6 +12,7 @@
import ti4.game.Player;
import ti4.game.Tile;
import ti4.helpers.ButtonHelper;
import ti4.helpers.FoWHelper;
import ti4.helpers.Helper;
import ti4.message.MessageHelper;
import ti4.service.combat.StartCombatService;
Expand All @@ -29,12 +29,7 @@ public static void resolveIxthianGift(Player player, Game game, ButtonInteractio
continue;
}
String id = player.factionButtonChecker() + "ixthianGiftPlayer_" + p2.getFaction();
if (game.isFowMode()) {
buttons.add(Buttons.gray(id, p2.getColor()));
} else {
buttons.add(Buttons.gray(id, p2.getFactionModel().getShortName())
.withEmoji(Emoji.fromFormatted(p2.getFactionEmoji())));
}
buttons.add(FoWHelper.fogSafeTargetButton(id, "gray", p2));
}
ButtonHelper.deleteMessage(event);
if (buttons.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
import java.util.List;
import lombok.experimental.UtilityClass;
import net.dv8tion.jda.api.components.buttons.Button;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import ti4.discord.interactions.buttons.Buttons;
import ti4.discord.interactions.routing.ButtonHandler;
import ti4.game.Game;
import ti4.game.Player;
import ti4.helpers.ButtonHelper;
import ti4.helpers.FoWHelper;
import ti4.image.Mapper;
import ti4.message.MessageHelper;
import ti4.model.TechnologyModel;
Expand Down Expand Up @@ -62,12 +62,7 @@ public static void resolveJointResearchTech(
continue;
}
String id = player.factionButtonChecker() + "jointResearchGive_" + p2.getFaction() + "_" + techID;
if (game.isFowMode()) {
buttons.add(Buttons.gray(id, p2.getColor()));
} else {
buttons.add(Buttons.gray(id, p2.getFactionModel().getShortName())
.withEmoji(Emoji.fromFormatted(p2.getFactionEmoji())));
}
buttons.add(FoWHelper.fogSafeTargetButton(id, "gray", p2));
}
if (buttons.isEmpty()) {
MessageHelper.sendMessageToChannel(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.util.List;
import lombok.experimental.UtilityClass;
import net.dv8tion.jda.api.components.buttons.Button;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import ti4.discord.interactions.buttons.Buttons;
import ti4.discord.interactions.routing.ButtonHandler;
Expand All @@ -30,12 +29,7 @@ public static void resolvePrisonersOfWar(Player player, Game game, ButtonInterac
continue;
}
String id = player.factionButtonChecker() + "prisonersOfWarTarget_" + target.getFaction();
if (game.isFowMode()) {
buttons.add(Buttons.gray(id, target.getColor()));
} else {
buttons.add(Buttons.gray(id, target.getFactionModel().getShortName())
.withEmoji(Emoji.fromFormatted(target.getFactionEmoji())));
}
buttons.add(FoWHelper.fogSafeTargetButton(id, "gray", target));
}

ButtonHelper.deleteMessage(event);
Expand Down Expand Up @@ -83,7 +77,7 @@ public static void resolvePrisonersOfWarTarget(
MessageHelper.sendMessageToChannelWithButtons(
target.getCardsInfoThread(),
target.getRepresentationUnfogged() + ", choose which promissory note to give to "
+ (game.isFowMode() ? "your opponent" : player.getFactionEmojiOrColor())
+ FoWHelper.factionEmojiOrAnon(game, player, "your opponent")
+ " for _Prisoners of War_.",
buttons);
MessageHelper.sendMessageToChannel(
Expand Down
Loading
Loading