From 390efeca579c20b8558d65c49b0858411b37ddde Mon Sep 17 00:00:00 2001 From: TabletopGeneral <56438137+jjayers99@users.noreply.github.com> Date: Thu, 4 Jan 2024 13:08:46 -0500 Subject: [PATCH] Adventure hotfixes (#4477) Hotfix for quest "What's Yours Is Mine", players were not receiving credit for defeating pirate captain Replacing missing deck file for apprentice red wizard --- .../adventure/data/AdventureQuestStage.java | 2 +- .../src/forge/adventure/data/EnemyData.java | 16 ++++++++++++++++ ...izard_easy_red_1.dck => redwizard_easy_1.dck} | 0 3 files changed, 17 insertions(+), 1 deletion(-) rename forge-gui/res/adventure/common/decks/standard/{redwizard_easy_red_1.dck => redwizard_easy_1.dck} (100%) diff --git a/forge-gui-mobile/src/forge/adventure/data/AdventureQuestStage.java b/forge-gui-mobile/src/forge/adventure/data/AdventureQuestStage.java index a04a9b2a0a3..3ad687ff09e 100644 --- a/forge-gui-mobile/src/forge/adventure/data/AdventureQuestStage.java +++ b/forge-gui-mobile/src/forge/adventure/data/AdventureQuestStage.java @@ -178,7 +178,7 @@ public class AdventureQuestStage implements Serializable { public boolean checkIfTargetEnemy(EnemySprite enemy) { if (targetEnemyData != null) { - return enemy.getData() == targetEnemyData; + return (enemy.getData().match(targetEnemyData)); } else if (targetSprite == null) { ArrayList candidateTags = new ArrayList<>(Arrays.asList(enemy.getData().questTags)); diff --git a/forge-gui-mobile/src/forge/adventure/data/EnemyData.java b/forge-gui-mobile/src/forge/adventure/data/EnemyData.java index 7c30a71ab3b..54455f05cd3 100644 --- a/forge-gui-mobile/src/forge/adventure/data/EnemyData.java +++ b/forge-gui-mobile/src/forge/adventure/data/EnemyData.java @@ -5,6 +5,8 @@ import forge.deck.Deck; import forge.util.Aggregates; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; /** * Data class that will be used to read Json configuration files @@ -90,4 +92,18 @@ public class EnemyData implements Serializable { return name; return "(Unnamed Enemy)"; } + + public boolean match(EnemyData other) { + //equals() does not cover cases where data is updated to override speed, displayname, etc + if (this.equals(other)) + return true; + if (!this.name.equals(other.name)) + return false; + if (questTags.length != other.questTags.length) + return false; + ArrayList myQuestTags = new ArrayList<>(Arrays.asList(questTags)); + ArrayList otherQuestTags = new ArrayList<>(Arrays.asList(other.questTags)); + myQuestTags.removeAll(otherQuestTags); + return myQuestTags.isEmpty(); + } } diff --git a/forge-gui/res/adventure/common/decks/standard/redwizard_easy_red_1.dck b/forge-gui/res/adventure/common/decks/standard/redwizard_easy_1.dck similarity index 100% rename from forge-gui/res/adventure/common/decks/standard/redwizard_easy_red_1.dck rename to forge-gui/res/adventure/common/decks/standard/redwizard_easy_1.dck