Implement BGM and SFX event system
This commit is contained in:
@@ -40,6 +40,8 @@ public interface IInventory : INode
|
||||
event Inventory.AccessoryUnequippedEventHandler AccessoryUnequipped;
|
||||
|
||||
event Inventory.RaiseStatRequestEventHandler RaiseStatRequest;
|
||||
|
||||
event Inventory.EquippedItemEventHandler EquippedItem;
|
||||
}
|
||||
|
||||
public partial class Inventory : Node, IInventory
|
||||
@@ -53,6 +55,8 @@ public partial class Inventory : Node, IInventory
|
||||
public delegate void AccessoryUnequippedEventHandler(AccessoryStats unequippedAccessory);
|
||||
[Signal]
|
||||
public delegate void RaiseStatRequestEventHandler(ConsumableItemStats consumableItemStats);
|
||||
[Signal]
|
||||
public delegate void EquippedItemEventHandler();
|
||||
|
||||
public Inventory()
|
||||
{
|
||||
@@ -94,6 +98,8 @@ public partial class Inventory : Node, IInventory
|
||||
_equippedAccessory.OnNext(accessory);
|
||||
else
|
||||
throw new NotImplementedException("Item type is not supported.");
|
||||
|
||||
EmitSignal(SignalName.EquippedItem);
|
||||
}
|
||||
|
||||
public void Unequip(IEquipable equipable)
|
||||
@@ -157,7 +163,7 @@ public partial class Inventory : Node, IInventory
|
||||
var accessories = listToSort.Where(x => x is Accessory).OrderBy(x => x as Accessory, new AccessoryComparer());
|
||||
var consumables = listToSort.Where(x => x is ConsumableItem).OrderBy(x => x as ConsumableItem, new ConsumableComparer());
|
||||
var throwables = listToSort.Where(x => x is ThrowableItem).OrderBy(x => x as ThrowableItem, new ThrowableComparer());
|
||||
Items = [.. consumables, .. equippedItems, .. weapons, .. armor, .. accessories, .. throwables];
|
||||
Items = [.. equippedItems, .. weapons, .. armor, .. accessories, .. consumables, .. throwables];
|
||||
}
|
||||
|
||||
public class WeaponComparer : IComparer<Weapon>
|
||||
|
||||
Reference in New Issue
Block a user