mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Merge branch 'master' into 'master'
Allow defining AI profile for Adventure monsters. See merge request core-developers/forge!6495
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 (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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user