diff --git a/resourcepack b/resourcepack index 5788d60..dd0cdb8 160000 --- a/resourcepack +++ b/resourcepack @@ -1 +1 @@ -Subproject commit 5788d60349864f65e98664850e2acefa1eacf54c +Subproject commit dd0cdb8837bcca56d0160be2b76ff25ea8dd82ca diff --git a/src/main/java/dev/boarbot/bot/config/StringConfig.java b/src/main/java/dev/boarbot/bot/config/StringConfig.java index d7f67ec..fba2368 100644 --- a/src/main/java/dev/boarbot/bot/config/StringConfig.java +++ b/src/main/java/dev/boarbot/bot/config/StringConfig.java @@ -319,8 +319,8 @@ public class StringConfig { private String trophyGuessReplyStr; private String trophyTitle; private String easterMessage = ""; - private String easterGuessStr = ""; - private String easterGuessReplyStr = ""; + private String[] easterGuessStrs = {}; + private String[] easterGuessReplyStrs = {}; private String easterTitle = ""; private String incorrectGuess = ""; private String activityStatus = ""; diff --git a/src/main/java/dev/boarbot/commands/boar/GuessSubcommand.java b/src/main/java/dev/boarbot/commands/boar/GuessSubcommand.java index 466af43..62d588b 100644 --- a/src/main/java/dev/boarbot/commands/boar/GuessSubcommand.java +++ b/src/main/java/dev/boarbot/commands/boar/GuessSubcommand.java @@ -35,10 +35,14 @@ public class GuessSubcommand extends Subcommand implements Synchronizable { private static final List halloweenBoarStrs = new ArrayList<>(); private static final String spookyBoarStr = "<>%s<>%s" .formatted(BoarUtil.findRarityKey("spooky"), BOARS.get("spooky").getName()); + private static final List easterGuesses = Arrays.asList(STRS.getEasterGuessStrs()); + private static final List easterReplies = Arrays.asList(STRS.getEasterGuessReplyStrs()); + private static final List easterBoarIDs = new ArrayList<>(); + private static final List easterBoarStrs = new ArrayList<>(); private boolean isTrophyGuess = false; private int spookIndex = -1; - private boolean isEasterGuess = false; + private int easterIndex = -1; private boolean failedSynchronized = false; private final EmbedImageGenerator embedImageGenerator = new EmbedImageGenerator( @@ -47,10 +51,18 @@ public class GuessSubcommand extends Subcommand implements Synchronizable { static { String[] curHalloweenBoarIDs = RARITIES.get("halloween").getBoars(); + for (int i=curHalloweenBoarIDs.length-spookGuesses.size(); ihalloween<>" + BOARS.get(curHalloweenBoarIDs[i]).getName()); halloweenBoarIDs.add(curHalloweenBoarIDs[i]); } + + for (String eventBoarID : RARITIES.get("event").getBoars()) { + if (BOARS.get(eventBoarID).getName().toLowerCase().contains("egg")) { + easterBoarStrs.add("<>event<>" + BOARS.get(eventBoarID).getName()); + easterBoarIDs.add(eventBoarID); + } + } } public GuessSubcommand(SlashCommandInteractionEvent event) { @@ -79,15 +91,15 @@ public void execute() { this.spookIndex = spookGuesses.indexOf(input); } - if (TimeUtil.isEaster() && input.equals(STRS.getEasterGuessStr())) { - this.isEasterGuess = true; + if (TimeUtil.isEaster() && easterGuesses.contains(input)) { + this.easterIndex = easterGuesses.indexOf(input); } if (input.equals(STRS.getTrophyGuessStr())) { this.isTrophyGuess = true; } - if (this.spookIndex != -1 || this.isEasterGuess || this.isTrophyGuess) { + if (this.spookIndex != -1 || this.easterIndex != -1 || this.isTrophyGuess) { try { BoarUser boarUser = BoarUserFactory.getBoarUser(this.user); boarUser.passSynchronizedAction(this); @@ -159,13 +171,16 @@ public void doSynchronizedAction(BoarUser boarUser) { this.embedImageGenerator.setStr(spookReply); } - } else if (this.isEasterGuess) { - obtainType = "EASTER_%d".formatted(TimeUtil.getYear()); + } else if (this.easterIndex != -1) { + obtainType = "EASTER_%d_%d".formatted(this.easterIndex+1, TimeUtil.getYear()); if (!boarUser.boarQuery().hasBoarWithTag(connection, obtainType)) { - boarIDs.add("egg"); + String easterReply = easterReplies.get(this.easterIndex) + " " + STRS.getSpookExtraStr() + .formatted(easterBoarStrs.get(this.easterIndex), POWS.get("transmute").getName()); + + boarIDs.add(easterBoarIDs.get(this.easterIndex)); boarUser.powQuery().addPowerup(connection, "transmute", 1); - this.embedImageGenerator.setStr(STRS.getEasterGuessReplyStr()); + this.embedImageGenerator.setStr(easterReply); } } diff --git a/src/main/resources/config/lang/en_us.json b/src/main/resources/config/lang/en_us.json index 1f45c4a..438a39b 100644 --- a/src/main/resources/config/lang/en_us.json +++ b/src/main/resources/config/lang/en_us.json @@ -423,8 +423,12 @@ "spookHasExtraStr": "You received %s<>font<> and <>powerup<>3 %s<>font<>!", "spookTitle": "Boar-O-Ween Hunt!", "easterMessage": "PLACEHOLDER", - "easterGuessStr": "PLACEHOLDER", - "easterGuessReplyStr": "PLACEHOLDER", + "easterGuessStrs": [ + "PLACEHOLDER" + ], + "easterGuessReplyStrs": [ + "PLACEHOLDER" + ], "easterTitle": "Egg Hunt!", "incorrectGuess": "Your guess didn't match any secret phrases!" } \ No newline at end of file