From b655d73d1342a68b0c426de77cd9766d0240478a Mon Sep 17 00:00:00 2001 From: Magpie Date: Wed, 6 Apr 2022 22:08:33 +0200 Subject: [PATCH 1/3] Removes unused var. --- forge-core/src/main/java/forge/StaticData.java | 1 - 1 file changed, 1 deletion(-) diff --git a/forge-core/src/main/java/forge/StaticData.java b/forge-core/src/main/java/forge/StaticData.java index b412cbe215a..e2d20940067 100644 --- a/forge-core/src/main/java/forge/StaticData.java +++ b/forge-core/src/main/java/forge/StaticData.java @@ -226,7 +226,6 @@ public class StaticData { } public void attemptToLoadCard(String cardName, String setCode) { CardRules rules = cardReader.attemptToLoadCard(cardName); - CardRules customRules = null; if (rules != null) { if (rules.isVariant()) { variantCards.loadCard(cardName, setCode, rules); From 0a08fa3deb19ef22dd26fcb6045fe96a433b673a Mon Sep 17 00:00:00 2001 From: Magpie Date: Thu, 7 Apr 2022 04:01:37 +0200 Subject: [PATCH 2/3] Enables selecting AI type for Adventure mode enemies. So far only the Wurm has forced Reckless AI, we should ask players or deck experts about what AI types to use for each deck. --- .../src/forge/adventure/data/EnemyData.java | 2 ++ .../src/forge/adventure/scene/DuelScene.java | 25 ++++++++++++++++--- .../adventure/Shandalar/world/enemies.json | 3 ++- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/forge-gui-mobile/src/forge/adventure/data/EnemyData.java b/forge-gui-mobile/src/forge/adventure/data/EnemyData.java index 1d86cabb4ab..846d288aaa0 100644 --- a/forge-gui-mobile/src/forge/adventure/data/EnemyData.java +++ b/forge-gui-mobile/src/forge/adventure/data/EnemyData.java @@ -12,6 +12,7 @@ public class EnemyData { public String name; public String sprite; public String deck; + public String ai; public float spawnRate; public float difficulty; public float speed; @@ -27,6 +28,7 @@ public class EnemyData { name =enemyData.name; sprite =enemyData.sprite; deck =enemyData.deck; + ai =enemyData.ai; spawnRate =enemyData.spawnRate; difficulty =enemyData.difficulty ; speed =enemyData.speed; diff --git a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java index 107c0eb35e1..e23875cb374 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java @@ -107,12 +107,11 @@ public class DuelScene extends ForgeScene { humanPlayer.setStartingLife(Current.player().getLife()); Current.setLatestDeck(enemy.getData().generateDeck()); RegisteredPlayer aiPlayer = RegisteredPlayer.forVariants(2, appliedVariants, Current.latestDeck(), null, false, null, null); - LobbyPlayer enemyPlayer = GamePlayerUtil.createAiPlayer(); + LobbyPlayer enemyPlayer = GamePlayerUtil.createAiPlayer(this.enemy.getData().name, selectAI(this.enemy.getData().ai)); FSkin.getAvatars().put(90000, this.enemy.getAvatar()); enemyPlayer.setAvatarIndex(90000); - enemyPlayer.setName(this.enemy.getData().name); aiPlayer.setPlayer(enemyPlayer); aiPlayer.setStartingLife(Math.round((float)enemy.getData().life*Current.player().getDifficulty().enemyLifeFactor)); @@ -184,8 +183,6 @@ public class DuelScene extends ForgeScene { return MatchController.getView(); } - - public void setEnemy(EnemySprite data) { this.enemy = data; } @@ -193,5 +190,25 @@ public class DuelScene extends ForgeScene { public void setPlayer(PlayerSprite sprite) { this.player = sprite; } + + private String selectAI(String ai) { //Decide opponent AI. + String AI = ""; //Use user settings if it's null. + if (ai != null){ + switch (this.enemy.getData().ai.toLowerCase()) { //We use this way to ensure capitalization is exact. + //We don't want misspellings here. + case "default": + AI = "Default"; break; + case "reckless": + AI = "Reckless"; break; + case "cautious": + AI = "Cautious"; break; + case "experimental": + AI = "Experimental"; break; + default: + AI = ""; //User settings. + } + } + return AI; + } } diff --git a/forge-gui/res/adventure/Shandalar/world/enemies.json b/forge-gui/res/adventure/Shandalar/world/enemies.json index a6aa8e2c6c6..aeda242a9d8 100644 --- a/forge-gui/res/adventure/Shandalar/world/enemies.json +++ b/forge-gui/res/adventure/Shandalar/world/enemies.json @@ -2999,6 +2999,7 @@ "deck": "decks/wurm.json", "spawnRate": 0.2, "difficulty": 0.1, + "ai": "reckless", "speed": 15, "life": 19, "rewards": [ @@ -3313,4 +3314,4 @@ } ] } -] \ No newline at end of file +] From bd5f4ee1fca95c2ab92d010ba424386f68a96ee5 Mon Sep 17 00:00:00 2001 From: Magpie Date: Thu, 7 Apr 2022 04:08:39 +0200 Subject: [PATCH 3/3] Small fix. --- forge-gui-mobile/src/forge/adventure/scene/DuelScene.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java index e23875cb374..8adc0480c90 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java @@ -194,7 +194,7 @@ public class DuelScene extends ForgeScene { private String selectAI(String ai) { //Decide opponent AI. String AI = ""; //Use user settings if it's null. if (ai != null){ - switch (this.enemy.getData().ai.toLowerCase()) { //We use this way to ensure capitalization is exact. + switch (ai.toLowerCase()) { //We use this way to ensure capitalization is exact. //We don't want misspellings here. case "default": AI = "Default"; break;