diff --git a/WZIMopoly/Content/Content.mgcb b/WZIMopoly/Content/Content.mgcb index caaaf552..92e70f0f 100644 --- a/WZIMopoly/Content/Content.mgcb +++ b/WZIMopoly/Content/Content.mgcb @@ -3843,3 +3843,9 @@ /processorParam:Quality=Best /build:Sounds/Dice.mp3 +#begin Sounds/Money.wav +/importer:WavImporter +/processor:SoundEffectProcessor +/processorParam:Quality=Best +/build:Sounds/Money.wav + diff --git a/WZIMopoly/Content/Sounds/Money.wav b/WZIMopoly/Content/Sounds/Money.wav new file mode 100644 index 00000000..2c51d2fe Binary files /dev/null and b/WZIMopoly/Content/Sounds/Money.wav differ diff --git a/WZIMopoly/Controllers/GameScene/TileController.cs b/WZIMopoly/Controllers/GameScene/TileController.cs index cbe4eec7..837d3682 100644 --- a/WZIMopoly/Controllers/GameScene/TileController.cs +++ b/WZIMopoly/Controllers/GameScene/TileController.cs @@ -1,4 +1,7 @@ -using WZIMopoly.GUI.GameScene; +using Microsoft.Xna.Framework.Audio; +using Microsoft.Xna.Framework.Content; +using WZIMopoly.GUI; +using WZIMopoly.GUI.GameScene; using WZIMopoly.Models.GameScene; namespace WZIMopoly.Controllers.GameScene @@ -23,6 +26,20 @@ internal abstract class TileController : Controller /// protected TileController(TileModel model, GUITile view) : base(model, view) { } + + /// + /// Gets the sound effect of the money. + /// + // It is a temporary solution, because the deadline is coming + // and code is not adapted for playing sound effects. + public static SoundEffect MoneySound { get; private set; } + + /// + public override void Load(ContentManager content) + { + base.Load(content); + MoneySound ??= content.Load("Sounds/Money"); + } } /// diff --git a/WZIMopoly/Models/GameScene/TileModels/ConditionalPassTileModel.cs b/WZIMopoly/Models/GameScene/TileModels/ConditionalPassTileModel.cs index a6c64f4a..894cb446 100644 --- a/WZIMopoly/Models/GameScene/TileModels/ConditionalPassTileModel.cs +++ b/WZIMopoly/Models/GameScene/TileModels/ConditionalPassTileModel.cs @@ -1,5 +1,6 @@ using System; using System.Xml; +using WZIMopoly.Controllers.GameScene; namespace WZIMopoly.Models.GameScene.TileModels { @@ -26,7 +27,11 @@ internal class ConditionalPassTileModel : TileModel internal ConditionalPassTileModel(int id, int tax) : base(id) { Tax = tax; - OnStand += (player) => player.Money -= Tax; + OnStand += (player) => + { + player.Money -= Tax; + TileController.MoneySound.Play(); + }; } /// diff --git a/WZIMopoly/Models/GameScene/TileModels/StartTileModel.cs b/WZIMopoly/Models/GameScene/TileModels/StartTileModel.cs index f75d4d4d..9db71b49 100644 --- a/WZIMopoly/Models/GameScene/TileModels/StartTileModel.cs +++ b/WZIMopoly/Models/GameScene/TileModels/StartTileModel.cs @@ -1,5 +1,6 @@ using System; using System.Xml; +using WZIMopoly.Controllers.GameScene; namespace WZIMopoly.Models.GameScene.TileModels { @@ -54,6 +55,7 @@ public static StartTileModel LoadFromXml(XmlNode node) void ICrossable.OnCross(PlayerModel player) { player.Money += _reward; + TileController.MoneySound.Play(); } } } diff --git a/WZIMopoly/Models/GameScene/TileModels/SubjectTileModel.cs b/WZIMopoly/Models/GameScene/TileModels/SubjectTileModel.cs index 2fb801e0..fe32af2f 100644 --- a/WZIMopoly/Models/GameScene/TileModels/SubjectTileModel.cs +++ b/WZIMopoly/Models/GameScene/TileModels/SubjectTileModel.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Xml; +using WZIMopoly.Controllers.GameScene; using WZIMopoly.Enums; using WZIMopoly.Utils; @@ -64,6 +65,7 @@ internal SubjectTileModel(int id, int price, int upgradedPrice, Dictionary