Add SFX to node and code
This commit is contained in:
@@ -33,25 +33,181 @@ public partial class InGameAudio : Node
|
||||
#endregion
|
||||
|
||||
#region SFX Nodes
|
||||
[Node] public IAudioStreamPlayer PlayerAttackSFX { get; set; } = default!;
|
||||
#region System/UI
|
||||
[Node] public IAudioStreamPlayer MoveThroughOptions { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer Textflow { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer Select { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer Cancel { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer Pause { get; set; } = default!;
|
||||
#endregion
|
||||
#region PlayerGeneral
|
||||
[Node] public IAudioStreamPlayer Equip { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer PlayerAttackWallSFX { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer Unequip { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer PlayerAttackEnemySFX { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer GainHealth { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer MenuScrollSFX { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer GainHealthLarge { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer EquipSFX { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer GainVT { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer UnequipSFX { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer GainVTLarge { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer MenuBackSFX { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer TakeCriticalDamage { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer InventorySortedSFX { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer TakeDamage { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer HealingItemSFX { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer Buff { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer TeleportSFX { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer Debuff { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer StatusEnding { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer WalkCycle { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer PickUpItem { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer LevelUp { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer HitWall { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer DealCriticalDamage { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer PlayerDying { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer AffinitySwitch { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer ItemThrow { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer ItemBreak { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer WeaponSwingRegular { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer WeaponSwingHeavy { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer WeaponSwingFast { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer WeaponStab { get; set; } = default!;
|
||||
|
||||
#endregion
|
||||
#region Environment
|
||||
[Node] public IAudioStreamPlayer StoneMoving { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer FlameAmbient { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer ItemTransfer { get; set; } = default!;
|
||||
#endregion
|
||||
#region Enemy
|
||||
[Node] public IAudioStreamPlayer AgniAttack1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer AgniAmbient { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer AmbassadorAttack1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer AmbassadorAttack2 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer AmbassadorAttackAlert { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer AqueosAmbient { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer BallosMagicAttack { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer BallosSpikeAttack { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer BallosHover { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer ChariotAttack1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer ChariotAttack2 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer ChariotProjectile { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer ChariotDeath { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer ChintheTeleport { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer ChintheAttack { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer ChintheLand { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DemonWallOrb { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DemonWallOrbTravel { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DemonWallLaser { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DemonWallStatusEffector { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DemonWallPull { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DemonWallHolyElectric { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DemonWallFlamethrower { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DemonWallDeath { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DemonWallSlam { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer Boss1Death { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer EnemyDeathSoundSmall { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer EnemyDeathSounMedium { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer EnemyDeathSoundLarge { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer FilthEaterAttack1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer FilthEaterAttack2 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer FilthEaterAggro { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer HorseHeadHowl { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer HorseHeadAttack1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer HorseHeadAttack2 { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer OxFaceAttack1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer OxFaceAttack2 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer OxFaceHowl { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer Boss1TakeDamage { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer Boss1Step { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer MichaelAttack { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer PalanquinAttack1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer PalanquinAttack2 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer PillarShoot { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer PillarProjectileTravel { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer SaraAttack { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer SaraMagicAttack { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer ShieldOfHeavenAttack1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer ShieldOfHeavenAttack2 { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer ShieldOfHeavenAggro { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer ShieldOfHeavenDeath { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer SproingDeath { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer SproingAttack { get; set; } = default!;
|
||||
|
||||
|
||||
#endregion
|
||||
#region Item
|
||||
[Node] public IAudioStreamPlayer SealingRod { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer TellericComponent { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer AeolicComponent { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer HydricComponent { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer IgneousComponent { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer FerrumComponent { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer GeomanticDiceUse { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer IdentifyItem { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer Perspective { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer Caster { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer DivinityRecall { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer SineMorphization { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer EnemyMorph { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer DevicBalance { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer Kyuuketsuki { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer Persiko { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer HeavensRebellion { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer EntropicSeal { get; set; } = default!;
|
||||
|
||||
[Node] public IAudioStreamPlayer Boost { get; set; } = default!;
|
||||
#endregion
|
||||
#region Ambience
|
||||
[Node] public IAudioStreamPlayer FinalRoomAmbience { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer WaterLarge { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer Ocean { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer WindAltar { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer WindBalcony1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer WindBalcony2 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DungeonAmbience1 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DungeonAmbience2 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DungeonAmbience3 { get; set; } = default!;
|
||||
[Node] public IAudioStreamPlayer DungeonAmbience4 { get; set; } = default!;
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
public IInGameAudioLogic InGameAudioLogic { get; set; } = default!;
|
||||
@@ -71,19 +227,19 @@ public partial class InGameAudio : Node
|
||||
|
||||
InGameAudioBinding = InGameAudioLogic.Bind();
|
||||
|
||||
InGameAudioBinding
|
||||
.Handle((in InGameAudioLogic.Output.PlayOverworldMusic _) => StartOverworldMusic())
|
||||
.Handle((in InGameAudioLogic.Output.PlayDungeonThemeAMusic _) => StartDungeonThemeA())
|
||||
.Handle((in InGameAudioLogic.Output.PlayMenuScrollSound _) => PlayMenuScrollSound())
|
||||
.Handle((in InGameAudioLogic.Output.PlayEquipSound _) => PlayEquipSound())
|
||||
.Handle((in InGameAudioLogic.Output.PlayUnequipSound _) => PlayUnequipSound())
|
||||
.Handle((in InGameAudioLogic.Output.PlayMenuBackSound _) => PlayMenuBackSound())
|
||||
.Handle((in InGameAudioLogic.Output.PlayInventorySortedSound _) => PlayInventorySortedSound())
|
||||
.Handle((in InGameAudioLogic.Output.PlayHealingItemSound _) => PlayHealingItemSound())
|
||||
.Handle((in InGameAudioLogic.Output.PlayTeleportSound _) => PlayTeleportSound())
|
||||
.Handle((in InGameAudioLogic.Output.PlayPlayerAttackSound _) => { PlayerAttackSFX.Stop(); PlayerAttackSFX.Play(); })
|
||||
.Handle((in InGameAudioLogic.Output.PlayPlayerAttackWallSound _) => { PlayerAttackWallSFX.Stop(); PlayerAttackWallSFX.Play(); })
|
||||
.Handle((in InGameAudioLogic.Output.PlayPlayerAttackEnemySound _) => { PlayerAttackEnemySFX.Stop(); PlayerAttackEnemySFX.Play(); });
|
||||
//InGameAudioBinding
|
||||
// .Handle((in InGameAudioLogic.Output.PlayOverworldMusic _) => StartOverworldMusic())
|
||||
// .Handle((in InGameAudioLogic.Output.PlayDungeonThemeAMusic _) => StartDungeonThemeA())
|
||||
// .Handle((in InGameAudioLogic.Output.PlayMenuScrollSound _) => PlayMenuScrollSound())
|
||||
// .Handle((in InGameAudioLogic.Output.PlayEquipSound _) => PlayEquipSound())
|
||||
// .Handle((in InGameAudioLogic.Output.PlayUnequipSound _) => PlayUnequipSound())
|
||||
// .Handle((in InGameAudioLogic.Output.PlayMenuBackSound _) => PlayMenuBackSound())
|
||||
// .Handle((in InGameAudioLogic.Output.PlayInventorySortedSound _) => PlayInventorySortedSound())
|
||||
// .Handle((in InGameAudioLogic.Output.PlayHealingItemSound _) => PlayHealingItemSound())
|
||||
// .Handle((in InGameAudioLogic.Output.PlayTeleportSound _) => PlayTeleportSound())
|
||||
// .Handle((in InGameAudioLogic.Output.PlayPlayerAttackSound _) => { PlayerAttackSFX.Stop(); PlayerAttackSFX.Play(); })
|
||||
// .Handle((in InGameAudioLogic.Output.PlayPlayerAttackWallSound _) => { PlayerAttackWallSFX.Stop(); PlayerAttackWallSFX.Play(); })
|
||||
// .Handle((in InGameAudioLogic.Output.PlayPlayerAttackEnemySound _) => { PlayerAttackEnemySFX.Stop(); PlayerAttackEnemySFX.Play(); });
|
||||
|
||||
InGameAudioLogic.Start();
|
||||
}
|
||||
@@ -93,59 +249,4 @@ public partial class InGameAudio : Node
|
||||
InGameAudioLogic.Stop();
|
||||
InGameAudioBinding.Dispose();
|
||||
}
|
||||
|
||||
private void StartOverworldMusic()
|
||||
{
|
||||
OverworldBgm.Stop();
|
||||
OverworldBgm.FadeIn();
|
||||
}
|
||||
|
||||
private void StartDungeonThemeA()
|
||||
{
|
||||
OverworldBgm.FadeOut();
|
||||
DungeonThemeABgm.Stop();
|
||||
DungeonThemeABgm.FadeIn();
|
||||
}
|
||||
|
||||
private void PlayMenuScrollSound()
|
||||
{
|
||||
MenuScrollSFX.Stop();
|
||||
MenuScrollSFX.Play();
|
||||
}
|
||||
|
||||
private void PlayEquipSound()
|
||||
{
|
||||
EquipSFX.Stop();
|
||||
EquipSFX.Play();
|
||||
}
|
||||
|
||||
private void PlayUnequipSound()
|
||||
{
|
||||
UnequipSFX.Stop();
|
||||
UnequipSFX.Play();
|
||||
}
|
||||
|
||||
private void PlayMenuBackSound()
|
||||
{
|
||||
MenuBackSFX.Stop();
|
||||
MenuBackSFX.Play();
|
||||
}
|
||||
|
||||
private void PlayInventorySortedSound()
|
||||
{
|
||||
InventorySortedSFX.Stop();
|
||||
InventorySortedSFX.Play();
|
||||
}
|
||||
|
||||
private void PlayHealingItemSound()
|
||||
{
|
||||
HealingItemSFX.Stop();
|
||||
HealingItemSFX.Play();
|
||||
}
|
||||
|
||||
private void PlayTeleportSound()
|
||||
{
|
||||
TeleportSFX.Stop();
|
||||
TeleportSFX.Play();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=17 format=3 uid="uid://b16ejcwanod72"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://b16ejcwanod72"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://2mnouyn1jcqs" path="res://src/audio/InGameAudio.cs" id="1_gpmcr"]
|
||||
[ext_resource type="AudioStream" uid="uid://dfu0fksb6slhx" path="res://src/audio/music/droney.mp3" id="2_8hfyr"]
|
||||
@@ -6,15 +6,10 @@
|
||||
[ext_resource type="Script" uid="uid://d2usinntpmcry" path="res://src/audio/BGMPlayer.cs" id="3_wtvpb"]
|
||||
[ext_resource type="AudioStream" uid="uid://dn2e2hqujlia1" path="res://src/audio/music/tar-winds.mp3" id="4_surnl"]
|
||||
[ext_resource type="AudioStream" uid="uid://t3g04u722f2k" path="res://src/audio/music/useless immune system-1.mp3" id="6_agr3r"]
|
||||
[ext_resource type="AudioStream" uid="uid://cn8cugshq3o8k" path="res://src/audio/sfx/PlayerHitWallSFX.wav" id="7_8vh2f"]
|
||||
[ext_resource type="AudioStream" uid="uid://dor0in0x2fg48" path="res://src/audio/sfx/MenuScrollSFX.ogg" id="7_777nl"]
|
||||
[ext_resource type="AudioStream" uid="uid://d1mlduwauechv" path="res://src/audio/sfx/PlayerAttackSFX.wav" id="7_wtvpb"]
|
||||
[ext_resource type="AudioStream" uid="uid://r1tryiit38i8" path="res://src/audio/sfx/MenuBackSFX.ogg" id="8_1xcgo"]
|
||||
[ext_resource type="AudioStream" uid="uid://4u8f1tpgs08b" path="res://src/audio/sfx/PlayerHitEnemySFX.wav" id="9_hertr"]
|
||||
[ext_resource type="AudioStream" uid="uid://myx4s8lmarc2" path="res://src/audio/sfx/HealSFX.ogg" id="10_3lcw5"]
|
||||
[ext_resource type="AudioStream" uid="uid://dci08kmwsu6k1" path="res://src/audio/sfx/ExitSFX.ogg" id="11_offhc"]
|
||||
[ext_resource type="AudioStream" uid="uid://d0wd6xgjoadbc" path="res://src/audio/sfx/EquipSFX.wav" id="12_hertr"]
|
||||
[ext_resource type="AudioStream" uid="uid://d3sn7c614uj2n" path="res://src/audio/sfx/SortSFX.ogg" id="12_wprjr"]
|
||||
[ext_resource type="AudioStream" uid="uid://f5agx4ewe04d" path="res://src/audio/sfx/UnequipSFX.wav" id="13_y7w0c"]
|
||||
|
||||
[node name="InGameAudio" type="Node"]
|
||||
@@ -62,55 +57,497 @@ script = ExtResource("3_wtvpb")
|
||||
|
||||
[node name="SFX" type="Node" parent="."]
|
||||
|
||||
[node name="PlayerAttackSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("7_wtvpb")
|
||||
volume_db = -5.0
|
||||
[node name="System_UI" type="Node" parent="SFX"]
|
||||
|
||||
[node name="PlayerAttackWallSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("7_8vh2f")
|
||||
volume_db = -5.0
|
||||
|
||||
[node name="PlayerAttackEnemySFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("9_hertr")
|
||||
volume_db = -5.0
|
||||
|
||||
[node name="MenuScrollSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
[node name="MoveThroughOptions" type="AudioStreamPlayer" parent="SFX/System_UI"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("7_777nl")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="MenuBackSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
[node name="Textflow" type="AudioStreamPlayer" parent="SFX/System_UI"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("8_1xcgo")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="EquipSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
[node name="Select" type="AudioStreamPlayer" parent="SFX/System_UI"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("8_1xcgo")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Cancel" type="AudioStreamPlayer" parent="SFX/System_UI"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("8_1xcgo")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Pause" type="AudioStreamPlayer" parent="SFX/System_UI"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("8_1xcgo")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="PlayerGeneral" type="Node" parent="SFX"]
|
||||
|
||||
[node name="Equip" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("12_hertr")
|
||||
|
||||
[node name="UnequipSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
[node name="Unequip" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("13_y7w0c")
|
||||
|
||||
[node name="HealSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
[node name="GainHealth" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="TeleportSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("11_offhc")
|
||||
volume_db = -18.0
|
||||
|
||||
[node name="InventorySortedSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("12_wprjr")
|
||||
volume_db = -15.0
|
||||
|
||||
[node name="HealingItemSFX" type="AudioStreamPlayer" parent="SFX"]
|
||||
[node name="GainHealthLarge" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -15.0
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="GainVT" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="GainVTLarge" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="TakeCriticalDamage" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="TakeDamage" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Buff" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Debuff" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="StatusEnding" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="WalkCycle" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="PickUpItem" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="LevelUp" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="HitWall" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DealCriticalDamage" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="PlayerDying" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="AffinitySwitch" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ItemThrow" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ItemBreak" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="WeaponSwingRegular" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="WeaponSwingHeavy" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="WeaponSwingFast" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="WeaponStab" type="AudioStreamPlayer" parent="SFX/PlayerGeneral"]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Environment" type="Node" parent="SFX"]
|
||||
|
||||
[node name="StoneMoving" type="AudioStreamPlayer" parent="SFX/Environment"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="FlameAmbient" type="AudioStreamPlayer" parent="SFX/Environment"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ItemTransfer" type="AudioStreamPlayer" parent="SFX/Environment"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Enemy" type="Node" parent="SFX"]
|
||||
|
||||
[node name="AgniAttack1" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="AgniAmbient" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="AmbassadorAttack1" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="AmbassadorAttack2" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="AmbassadorAlert" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="AqueosAmbient" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="BallosMagicAttack" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="BallosSpikeAttack" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="BallosHover" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ChariotAttack1" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ChariotAttack2" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ChariotProjectile" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ChariotDeath" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ChintheTeleport" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ChintheAttack" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ChintheLand" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DemonWallOrb" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DemonWallOrbTravel" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DemonWallLaser" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DemonWallStatusEffector" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DemonWallPull" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DemonWallHolyElectric" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DemonWallFlamethrower" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DemonWallDeath" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DemonWallSlam" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Boss1Death" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="EnemyDeathSoundSmall" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="EnemyDeathSoundMedium" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="EnemyDeathSoundLarge" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="FilthEaterAttack1" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="FilthEaterAttack2" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="FilthEaterAggro" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="HorseHeadHowl" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="HorseHeadAttack1" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="HorseHeadAttack2" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="OxFaceAttack1" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="OxFaceAttack2" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="OxFaceHowl" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Boss1TakeDamage" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Boss1Step" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="MichaelAttack" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="PalanquinAttack1" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="PalanquinAttack2" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="PillarShoot" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="PillarProjectileTravel" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="SaraAttack" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="SaraMagicAttack" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ShieldOfHeavenAttack1" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ShieldOfHeavenAttack2" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ShieldOfHeavenAggro" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="ShieldOfHeavenDeath" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="SproingDeath" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="SproingAttack" type="AudioStreamPlayer" parent="SFX/Enemy"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Item" type="Node" parent="SFX"]
|
||||
|
||||
[node name="SealingRod" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="TellericComponent" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="AeolicComponent" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="HydricComponent" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="IgneousComponent" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="FerrumComponent" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="GeomanticDiceUse" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="IdentifyItem" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Perspective" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Caster" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DivinityRecall" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="SineMorphization" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="EnemyMorph" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DevicBalance" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Kyuuketsuki" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Persiko" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="HeavensRebellion" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="EntropicSeal" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Boost" type="AudioStreamPlayer" parent="SFX/Item"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Ambience" type="Node" parent="SFX"]
|
||||
|
||||
[node name="FinalRoomAmbience" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="WaterLarge" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="Ocean" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="WindAltar" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="WindBalcony1" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="WindBalcony2" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DungeonAmbience1" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DungeonAmbience2" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DungeonAmbience3" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
[node name="DungeonAmbience4" type="AudioStreamPlayer" parent="SFX/Ambience"]
|
||||
stream = ExtResource("10_3lcw5")
|
||||
volume_db = -10.0
|
||||
|
||||
Reference in New Issue
Block a user