mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -268,12 +268,6 @@ public class TokenAi extends SpellAbilityAi {
|
||||
}
|
||||
}
|
||||
|
||||
if (mandatory) {
|
||||
// Necessary because the AI goes into this method twice, first to set up targets (with mandatory=true)
|
||||
// and then the second time to confirm the trigger (where mandatory may be set to false).
|
||||
return true;
|
||||
}
|
||||
|
||||
Card actualToken = spawnToken(ai, sa);
|
||||
String tokenPower = sa.getParamOrDefault("TokenPower", actualToken.getBasePowerString());
|
||||
String tokenToughness = sa.getParamOrDefault("TokenToughness", actualToken.getBaseToughnessString());
|
||||
@@ -289,11 +283,17 @@ public class TokenAi extends SpellAbilityAi {
|
||||
sa.setXManaCostPaid(x);
|
||||
}
|
||||
}
|
||||
if (x <= 0) {
|
||||
if (x <= 0 && !mandatory) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mandatory) {
|
||||
// Necessary because the AI goes into this method twice, first to set up targets (with mandatory=true)
|
||||
// and then the second time to confirm the trigger (where mandatory may be set to false).
|
||||
return true;
|
||||
}
|
||||
|
||||
if ("OnlyOnAlliedAttack".equals(sa.getParam("AILogic"))) {
|
||||
Combat combat = ai.getGame().getCombat();
|
||||
return combat != null && combat.getAttackingPlayer() != null
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.adventure.scene;
|
||||
import forge.adventure.data.AdventureEventData;
|
||||
import forge.adventure.stage.GameHUD;
|
||||
import forge.screens.FScreen;
|
||||
import forge.sound.MusicPlaylist;
|
||||
import forge.sound.SoundSystem;
|
||||
|
||||
/**
|
||||
@@ -32,7 +33,8 @@ public class DraftScene extends ForgeScene {
|
||||
@Override
|
||||
public void enter() {
|
||||
GameHUD.getInstance().getTouchpad().setVisible(false);
|
||||
SoundSystem.instance.pause();
|
||||
GameHUD.getInstance().pauseMusic();
|
||||
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS);
|
||||
screen = null;
|
||||
getScreen();
|
||||
screen.refresh();
|
||||
|
||||
@@ -13,12 +13,14 @@ import forge.Forge;
|
||||
import forge.adventure.character.EnemySprite;
|
||||
import forge.adventure.data.*;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.stage.GameHUD;
|
||||
import forge.adventure.stage.IAfterMatch;
|
||||
import forge.adventure.stage.WorldStage;
|
||||
import forge.adventure.util.*;
|
||||
import forge.adventure.world.WorldSave;
|
||||
import forge.gui.FThreads;
|
||||
import forge.screens.TransitionScreen;
|
||||
import forge.sound.MusicPlaylist;
|
||||
import forge.sound.SoundSystem;
|
||||
import forge.util.Callback;
|
||||
import forge.util.MyRandom;
|
||||
@@ -378,7 +380,8 @@ public class EventScene extends MenuScene implements IAfterMatch {
|
||||
@Override
|
||||
public void enter() {
|
||||
super.enter();
|
||||
SoundSystem.instance.pause();
|
||||
GameHUD.getInstance().pauseMusic();
|
||||
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS);
|
||||
scrollContainer.clear();
|
||||
|
||||
if (money != null) {
|
||||
|
||||
@@ -12,6 +12,7 @@ import forge.adventure.util.AdventureEventController;
|
||||
import forge.adventure.util.Controls;
|
||||
import forge.adventure.util.Current;
|
||||
import forge.adventure.world.WorldSave;
|
||||
import forge.sound.MusicPlaylist;
|
||||
import forge.sound.SoundSystem;
|
||||
|
||||
/**
|
||||
@@ -99,7 +100,8 @@ public class InnScene extends UIScene {
|
||||
public void enter() {
|
||||
super.enter();
|
||||
refreshStatus();
|
||||
SoundSystem.instance.pause();
|
||||
GameHUD.getInstance().pauseMusic();
|
||||
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.TOWN);
|
||||
}
|
||||
|
||||
private void refreshStatus(){
|
||||
|
||||
@@ -17,6 +17,7 @@ import forge.adventure.character.EnemySprite;
|
||||
import forge.adventure.data.EnemyData;
|
||||
import forge.adventure.data.WorldData;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.stage.GameHUD;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Controls;
|
||||
import forge.adventure.util.Current;
|
||||
@@ -31,6 +32,8 @@ import forge.localinstance.achievements.CardActivationAchievements;
|
||||
import forge.localinstance.achievements.PlaneswalkerAchievements;
|
||||
import forge.model.FModel;
|
||||
import forge.player.GamePlayerUtil;
|
||||
import forge.sound.MusicPlaylist;
|
||||
import forge.sound.SoundSystem;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -186,6 +189,10 @@ public class PlayerStatisticScene extends UIScene {
|
||||
@Override
|
||||
public void enter() {
|
||||
super.enter();
|
||||
|
||||
GameHUD.getInstance().pauseMusic();
|
||||
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS);
|
||||
|
||||
achievementContainer.clear();
|
||||
updateAchievements(cardActivation, true);
|
||||
updateAchievements(planeswalkers, true);
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
sandwurm2.png
|
||||
size: 160,64
|
||||
format: RGBA8888
|
||||
filter: Nearest,Nearest
|
||||
repeat: none
|
||||
Avatar
|
||||
xy: 0, 0
|
||||
size: 32,32
|
||||
Idle
|
||||
xy: 0,37
|
||||
size:32,18
|
||||
Attack
|
||||
xy: 32, 5
|
||||
size: 32,18
|
||||
Attack
|
||||
xy: 64, 5
|
||||
size: 32,18
|
||||
Attack
|
||||
xy: 96, 5
|
||||
size: 32,18
|
||||
Attack
|
||||
xy: 128, 5
|
||||
size: 32,18
|
||||
Death
|
||||
xy: 32, 37
|
||||
size: 32,18
|
||||
Death
|
||||
xy: 64, 37
|
||||
size: 32,18
|
||||
Death
|
||||
xy: 96, 37
|
||||
size: 32,18
|
||||
Death
|
||||
xy: 128, 37
|
||||
size: 32,18
|
||||
BIN
forge-gui/res/adventure/Shandalar/sprites/monsters/sandwurm2.png
Normal file
BIN
forge-gui/res/adventure/Shandalar/sprites/monsters/sandwurm2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
@@ -8916,6 +8916,50 @@
|
||||
"IdentityBlack"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Greater Sandwurm",
|
||||
"sprite": "sprites/monsters/sandwurm2.atlas",
|
||||
"deck": [
|
||||
"decks/monsters/sandwurm.dck"
|
||||
],
|
||||
"ai": "",
|
||||
"spawnRate": 1,
|
||||
"difficulty": 0.1,
|
||||
"speed": 0,
|
||||
"life": 12,
|
||||
"rewards": [
|
||||
{
|
||||
"type": "deckCard",
|
||||
"probability": 1,
|
||||
"count": 2,
|
||||
"addMaxCount": 4
|
||||
},
|
||||
{
|
||||
"type": "gold",
|
||||
"probability": 0.7,
|
||||
"count": 10,
|
||||
"addMaxCount": 90
|
||||
},
|
||||
{
|
||||
"type": "card",
|
||||
"probability": 0.5,
|
||||
"count": 3,
|
||||
"colors": [
|
||||
"White"
|
||||
],
|
||||
"rarity": [
|
||||
"Rare"
|
||||
]
|
||||
}
|
||||
],
|
||||
"colors": "G",
|
||||
"questTags": [
|
||||
"Wurm",
|
||||
"Nature",
|
||||
"Subterranean",
|
||||
"IdentityWhite"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Greater Zombie",
|
||||
"sprite": "sprites/unholy/zombie.atlas",
|
||||
@@ -20161,4 +20205,4 @@
|
||||
"BiomeBlack"
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
"Owl",
|
||||
"Raven",
|
||||
"Runelord",
|
||||
"Greater Sandwurm",
|
||||
"Scorpion",
|
||||
"Scarab",
|
||||
"Stray Cat",
|
||||
@@ -135,4 +136,4 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user