Started implementing SFX

Fixed Shield animation jumps and secondary attack
Fixed demon wall stone behavior
Made overworld ambient sounds unpausable
This commit is contained in:
2025-11-25 03:04:07 -08:00
parent 3e8c11d55d
commit db7a1df1f7
122 changed files with 2313 additions and 1687 deletions

View File

@@ -169,6 +169,7 @@ theme_override_styles/normal = SubResource("StyleBoxEmpty_dboi3")
text = "I do not know thee but I perceive thine sorrows vividly,
for I am embraced by their brethren."
skip_action = &"ui_accept"
seconds_per_pause_step = 0.75
[node name="CenterContainer" type="CenterContainer" parent="Balloon"]
layout_mode = 1

View File

@@ -18,17 +18,6 @@ public partial class InventoryMessageUI : Control
_labelSettings = GD.Load<LabelSettings>("res://src/ui/label_settings/InventoryFullAlertLabelSetting.tres");
}
public async void DisplayInventoryFullMessage(string rejectedItemName)
{
var newLabel = new Label() { Text = $"Could not pick up {rejectedItemName}.", LabelSettings = _labelSettings };
MessageBox.AddChild(newLabel);
GetTree().CreateTimer(3f).Timeout += () =>
{
MessageBox.RemoveChild(newLabel);
};
}
public async void DisplayMessage(string message)
{
var newLabel = new Label() { Text = message, LabelSettings = _labelSettings };

View File

@@ -83,7 +83,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
ThrowButton.Pressed += ThrowButtonPressed;
DropButton.Pressed += DropButtonPressed;
VisibilityChanged += InventoryMenu2_VisibilityChanged;
VisibilityChanged += InventoryMenu_VisibilityChanged;
}
public override void _Input(InputEvent @event)
@@ -91,23 +91,42 @@ public partial class InventoryMenu : Control, IInventoryMenu
if (!Visible)
return;
if ((!Input.IsActionJustPressed(GameInputs.UiUp) && Input.IsActionPressed(GameInputs.UiUp)) || (!Input.IsActionJustPressed(GameInputs.UiDown) && Input.IsActionPressed(GameInputs.UiDown)))
AcceptEvent();
if (Input.IsActionJustPressed(GameInputs.UiUp) && _currentlySelectedItem.GetIndex() != ItemSlots.First().GetIndex() && !(UseButton.HasFocus() || DropButton.HasFocus() || ThrowButton.HasFocus()))
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
if (Input.IsActionJustPressed(GameInputs.UiDown) && _currentlySelectedItem.GetIndex() != ItemSlots.Last(x => x.Visible).GetIndex() && !(UseButton.HasFocus() || DropButton.HasFocus() || ThrowButton.HasFocus()))
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
if (Input.IsActionJustPressed(GameInputs.UiUp) && (DropButton.HasFocus() || ThrowButton.HasFocus()))
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
if (Input.IsActionJustPressed(GameInputs.UiDown) && (UseButton.HasFocus() || ThrowButton.HasFocus()))
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
if (Input.IsActionJustPressed(GameInputs.Inventory) && !(UseButton.HasFocus() || DropButton.HasFocus() || ThrowButton.HasFocus()))
{
SfxDatabase.Instance.Play(SoundEffect.CancelUI);
AcceptEvent();
_gameRepo.CloseInventory();
}
if (Input.IsActionJustPressed(GameInputs.UiCancel) && (UseButton.HasFocus() || DropButton.HasFocus() || ThrowButton.HasFocus()))
{
SfxDatabase.Instance.Play(SoundEffect.CancelUI);
AcceptEvent();
HideUserActionPrompt();
}
else if (Input.IsActionJustPressed(GameInputs.UiCancel))
{
SfxDatabase.Instance.Play(SoundEffect.CancelUI);
AcceptEvent();
_gameRepo.CloseInventory();
}
if (_currentPageNumber == InventoryPageNumber.FirstPage && _player.Inventory.Items.Count > 10 && Input.IsActionJustPressed(GameInputs.MoveRight))
{
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
_currentPageNumber = InventoryPageNumber.SecondPage;
Inventory_InventoryChanged();
_currentlySelectedItem = ItemSlot1;
@@ -115,6 +134,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
}
else if (_currentPageNumber == InventoryPageNumber.SecondPage && Input.IsActionJustPressed(GameInputs.MoveLeft))
{
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
_currentPageNumber = InventoryPageNumber.FirstPage;
Inventory_InventoryChanged();
_currentlySelectedItem = ItemSlot1;
@@ -123,7 +143,11 @@ public partial class InventoryMenu : Control, IInventoryMenu
if (Input.IsActionJustPressed(GameInputs.InventorySort))
{
_player.Inventory.Sort(_player.EquipmentComponent.EquippedWeapon.Value, _player.EquipmentComponent.EquippedArmor.Value, _player.EquipmentComponent.EquippedAccessory.Value);
var isChanged = _player.Inventory.Sort(_player.EquipmentComponent.EquippedWeapon.Value, _player.EquipmentComponent.EquippedArmor.Value, _player.EquipmentComponent.EquippedAccessory.Value);
if (!isChanged)
return;
SfxDatabase.Instance.Play(SoundEffect.SortInventory);
Inventory_InventoryChanged();
foreach (var slot in ItemSlots)
slot.SetItemStyle();
@@ -133,9 +157,13 @@ public partial class InventoryMenu : Control, IInventoryMenu
}
}
private void InventoryMenu2_VisibilityChanged()
private void InventoryMenu_VisibilityChanged()
{
_currentlySelectedItem.GrabFocus();
if (Visible)
{
SfxDatabase.Instance.Play(SoundEffect.OpenInventory);
_currentlySelectedItem.GrabFocus();
}
}
private void Item_ItemExitFocus(IItemSlot itemSlot)
@@ -156,6 +184,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
_currentlySelectedItem = itemSlot;
itemSlot.IsSelected = true;
itemSlot.SetItemStyle();
AcceptEvent();
}
private void Item_Pressed(InventoryItem item) => DisplayUserActionPrompt(item);
@@ -257,6 +286,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
private void DisplayUserActionPrompt(InventoryItem item)
{
SfxDatabase.Instance.Play(SoundEffect.SelectUI);
ItemDescriptionTitle.Hide();
ItemEffectLabel.Hide();
UseItemPrompt.Show();
@@ -297,11 +327,13 @@ public partial class InventoryMenu : Control, IInventoryMenu
{
if (_player.EquipmentComponent.IsItemEquipped(equipable))
{
SfxDatabase.Instance.Play(SoundEffect.Unequip);
ItemEffectLabel.Text = $"{equipable.GetType().Name} unequipped.";
_player.Unequip(equipable);
}
else
{
SfxDatabase.Instance.Play(SoundEffect.Equip);
var itemSlot = _currentlySelectedItem;
ItemEffectLabel.Text = $"{equipable.GetType().Name} equipped.";
_player.Equip(equipable);

View File

@@ -31,6 +31,7 @@ theme_override_styles/pressed_mirrored = SubResource("StyleBoxEmpty_lt1pw")
theme_override_styles/pressed = SubResource("StyleBoxEmpty_lt1pw")
theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_lt1pw")
theme_override_styles/normal = SubResource("StyleBoxEmpty_lt1pw")
button_mask = 0
flat = true
alignment = 0
script = ExtResource("1_yttxt")