mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Merge branch 'dicesfx' into 'master'
Sound effect for dice rolling! See merge request core-developers/forge!5176
This commit is contained in:
@@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import forge.game.event.GameEventRollDie;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import forge.game.ability.AbilityKey;
|
||||
@@ -75,6 +76,8 @@ public class RollDiceEffect extends SpellAbilityEffect {
|
||||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
int roll = MyRandom.getRandom().nextInt(sides) + 1;
|
||||
// Play the die roll sound
|
||||
player.getGame().fireEvent(new GameEventRollDie());
|
||||
rolls.add(roll);
|
||||
total += roll;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.game.ability.effects;
|
||||
import forge.game.Game;
|
||||
import forge.game.PlanarDice;
|
||||
import forge.game.ability.SpellAbilityEffect;
|
||||
import forge.game.event.GameEventRollDie;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.util.Localizer;
|
||||
@@ -26,6 +27,8 @@ public class RollPlanarDiceEffect extends SpellAbilityEffect {
|
||||
game.getPhaseHandler().incPlanarDiceRolledthisTurn();
|
||||
}
|
||||
PlanarDice result = PlanarDice.roll(activator, null);
|
||||
// Play the die roll sound
|
||||
activator.getGame().fireEvent(new GameEventRollDie());
|
||||
String message = Localizer.getInstance().getMessage("lblPlayerRolledResult", activator.getName(), result.toString());
|
||||
game.getAction().notifyOfValue(sa, activator, message, null);
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventRollDie extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,7 @@ public interface IGameEventVisitor<T> {
|
||||
T visit(GameEventPlayerPoisoned event);
|
||||
T visit(GameEventPlayerPriority event);
|
||||
T visit(GameEventPlayerStatsChanged event);
|
||||
T visit(GameEventRollDie event);
|
||||
T visit(GameEventTokenStateUpdate event);
|
||||
T visit(GameEventScry event);
|
||||
T visit(GameEventShuffle event);
|
||||
@@ -88,6 +89,7 @@ public interface IGameEventVisitor<T> {
|
||||
public T visit(GameEventPlayerPoisoned event) { return null; }
|
||||
public T visit(GameEventPlayerPriority event) { return null; }
|
||||
public T visit(GameEventPlayerStatsChanged event) { return null; }
|
||||
public T visit(GameEventRollDie event) { return null; }
|
||||
public T visit(GameEventTokenStateUpdate event) { return null; }
|
||||
public T visit(GameEventScry event) { return null; }
|
||||
public T visit(GameEventShuffle event) { return null; }
|
||||
|
||||
BIN
forge-gui/res/sound/roll_die.mp3
Normal file
BIN
forge-gui/res/sound/roll_die.mp3
Normal file
Binary file not shown.
@@ -23,6 +23,7 @@ import forge.game.event.GameEventLandPlayed;
|
||||
import forge.game.event.GameEventManaBurn;
|
||||
import forge.game.event.GameEventPlayerLivesChanged;
|
||||
import forge.game.event.GameEventPlayerPoisoned;
|
||||
import forge.game.event.GameEventRollDie;
|
||||
import forge.game.event.GameEventShuffle;
|
||||
import forge.game.event.GameEventSpellResolved;
|
||||
import forge.game.event.GameEventTokenCreated;
|
||||
@@ -85,6 +86,8 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> imp
|
||||
@Override
|
||||
public SoundEffectType visit(final GameEventFlipCoin event) { return SoundEffectType.FlipCoin; }
|
||||
@Override
|
||||
public SoundEffectType visit(final GameEventRollDie event) { return SoundEffectType.RollDie; }
|
||||
@Override
|
||||
public SoundEffectType visit(final GameEventPlayerLivesChanged event) { return event.newLives < event.oldLives ? SoundEffectType.LifeLoss : SoundEffectType.LifeGain; }
|
||||
@Override
|
||||
public SoundEffectType visit(final GameEventManaBurn event) { return SoundEffectType.ManaBurn; }
|
||||
|
||||
@@ -79,6 +79,7 @@ public enum SoundEffectType {
|
||||
RedLand("red_land.mp3", false),
|
||||
Regen("regeneration.mp3", false),
|
||||
RemoveCounter("remove_counter.mp3", true),
|
||||
RollDie("roll_die.mp3", false),
|
||||
Sacrifice("sacrifice.mp3", true),
|
||||
ScriptedEffect("", false), // Plays the effect defined by SVar:SoundEffect
|
||||
Shuffle("shuffle.mp3", false),
|
||||
|
||||
Reference in New Issue
Block a user