@@ -0,0 +1,74 @@
using Chickensoft.Introspection ;
using Zennysoft.Game.Abstractions ;
namespace Zennysoft.Ma.Adapter ;
public partial class InGameAudioLogic
{
[Meta]
public partial record Enabled : State
{
public Enabled ( )
{
OnAttach ( ( ) = >
{
var player = Get < IPlayer > ( ) ;
OnOverworldEntered ( ) ;
var gameEventDepot = Get < IGameEventDepot > ( ) ;
var gameRepo = Get < IGameRepo > ( ) ;
gameEventDepot . OverworldEntered + = OnOverworldEntered ;
gameEventDepot . DungeonAThemeAreaEntered + = OnDungeonAThemeEntered ;
gameEventDepot . MenuScrolled + = OnMenuScrolled ;
gameEventDepot . MenuBackedOut + = OnMenuBackedOut ;
player . EquippedWeapon . Changed + = OnEquippedItem ;
player . EquippedArmor . Changed + = OnEquippedItem ;
player . EquippedAccessory . Changed + = OnEquippedItem ;
gameEventDepot . InventorySorted + = OnInventorySorted ;
gameEventDepot . HealingItemConsumed + = OnHealingItemConsumed ;
gameEventDepot . RestorativePickedUp + = OnRestorativePickedUp ;
gameEventDepot . TeleportEntered + = OnTeleportEntered ;
gameRepo . PlayerAttack + = OnPlayerAttack ;
gameRepo . PlayerAttackedWall + = OnPlayerAttackWall ;
} ) ;
OnDetach ( ( ) = >
{
var gameEventDepot = Get < IGameEventDepot > ( ) ;
var player = Get < IPlayer > ( ) ;
var gameRepo = Get < IGameRepo > ( ) ;
gameEventDepot . OverworldEntered - = OnOverworldEntered ;
gameEventDepot . DungeonAThemeAreaEntered - = OnDungeonAThemeEntered ;
gameEventDepot . MenuScrolled - = OnMenuScrolled ;
gameEventDepot . MenuBackedOut - = OnMenuBackedOut ;
player . EquippedWeapon . Changed - = OnEquippedItem ;
player . EquippedArmor . Changed - = OnEquippedItem ;
player . EquippedAccessory . Changed - = OnEquippedItem ;
gameEventDepot . InventorySorted - = OnInventorySorted ;
gameEventDepot . TeleportEntered - = OnTeleportEntered ;
gameRepo . PlayerAttack - = OnPlayerAttack ;
gameRepo . PlayerAttackedWall - = OnPlayerAttackWall ;
} ) ;
}
private void OnPlayerAttack ( ) = > Output ( new Output . PlayPlayerAttackSound ( ) ) ;
private void OnPlayerAttackWall ( ) = > Output ( new Output . PlayPlayerAttackWallSound ( ) ) ;
private void OnRestorativePickedUp ( IHealthPack restorative ) = > Output ( new Output . PlayHealingItemSound ( ) ) ;
private void OnMenuBackedOut ( ) = > Output ( new Output . PlayMenuBackSound ( ) ) ;
private void OnHealingItemConsumed ( InventoryItem stats ) = > Output ( new Output . PlayHealingItemSound ( ) ) ;
private void OnInventorySorted ( ) = > Output ( new Output . PlayInventorySortedSound ( ) ) ;
private void OnEquippedItem ( InventoryItem equipableItem ) = > Output ( new Output . PlayEquipSound ( ) ) ;
private void OnOverworldEntered ( ) = > Output ( new Output . PlayOverworldMusic ( ) ) ;
private void OnDungeonAThemeEntered ( ) = > Output ( new Output . PlayDungeonThemeAMusic ( ) ) ;
private void OnMenuScrolled ( ) = > Output ( new Output . PlayMenuScrollSound ( ) ) ;
private void OnTeleportEntered ( ) = > Output ( new Output . PlayTeleportSound ( ) ) ;
}
}