diff --git a/audio/sounds/TomWinandySFX_UI_ScifiTech_Cancel_05.wav b/audio/sounds/TomWinandySFX_UI_ScifiTech_Cancel_05.wav new file mode 100644 index 0000000..dd11c02 Binary files /dev/null and b/audio/sounds/TomWinandySFX_UI_ScifiTech_Cancel_05.wav differ diff --git a/audio/sounds/TomWinandySFX_UI_ScifiTech_Cancel_05.wav.import b/audio/sounds/TomWinandySFX_UI_ScifiTech_Cancel_05.wav.import new file mode 100644 index 0000000..6390b59 --- /dev/null +++ b/audio/sounds/TomWinandySFX_UI_ScifiTech_Cancel_05.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bc1vegc13uiqc" +path="res://.godot/imported/TomWinandySFX_UI_ScifiTech_Cancel_05.wav-7732ab099d671fefdd8b29525baf8ad5.sample" + +[deps] + +source_file="res://audio/sounds/TomWinandySFX_UI_ScifiTech_Cancel_05.wav" +dest_files=["res://.godot/imported/TomWinandySFX_UI_ScifiTech_Cancel_05.wav-7732ab099d671fefdd8b29525baf8ad5.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/TomWinandySFX_UI_ScifiTech_Notification_13.wav b/audio/sounds/TomWinandySFX_UI_ScifiTech_Notification_13.wav new file mode 100644 index 0000000..a4620c4 Binary files /dev/null and b/audio/sounds/TomWinandySFX_UI_ScifiTech_Notification_13.wav differ diff --git a/audio/sounds/TomWinandySFX_UI_ScifiTech_Notification_13.wav.import b/audio/sounds/TomWinandySFX_UI_ScifiTech_Notification_13.wav.import new file mode 100644 index 0000000..dba484b --- /dev/null +++ b/audio/sounds/TomWinandySFX_UI_ScifiTech_Notification_13.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c7mg3tuadop2a" +path="res://.godot/imported/TomWinandySFX_UI_ScifiTech_Notification_13.wav-1fa4d6f3b71b98da22ea45d5c449fe9b.sample" + +[deps] + +source_file="res://audio/sounds/TomWinandySFX_UI_ScifiTech_Notification_13.wav" +dest_files=["res://.godot/imported/TomWinandySFX_UI_ScifiTech_Notification_13.wav-1fa4d6f3b71b98da22ea45d5c449fe9b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/explosion_large_01.wav b/audio/sounds/explosion_large_01.wav new file mode 100644 index 0000000..3701b8c Binary files /dev/null and b/audio/sounds/explosion_large_01.wav differ diff --git a/audio/sounds/explosion_large_01.wav.import b/audio/sounds/explosion_large_01.wav.import new file mode 100644 index 0000000..5966dc1 --- /dev/null +++ b/audio/sounds/explosion_large_01.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bygt1i1q7vy1d" +path="res://.godot/imported/explosion_large_01.wav-64eff7770030ad7e6920e951e8ace1fc.sample" + +[deps] + +source_file="res://audio/sounds/explosion_large_01.wav" +dest_files=["res://.godot/imported/explosion_large_01.wav-64eff7770030ad7e6920e951e8ace1fc.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/explosion_large_02.wav b/audio/sounds/explosion_large_02.wav new file mode 100644 index 0000000..a159ff2 Binary files /dev/null and b/audio/sounds/explosion_large_02.wav differ diff --git a/audio/sounds/explosion_large_02.wav.import b/audio/sounds/explosion_large_02.wav.import new file mode 100644 index 0000000..960ac9f --- /dev/null +++ b/audio/sounds/explosion_large_02.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://8uuid5lkt1hb" +path="res://.godot/imported/explosion_large_02.wav-9dc2fec2bba83951fa15c78eae83b9fc.sample" + +[deps] + +source_file="res://audio/sounds/explosion_large_02.wav" +dest_files=["res://.godot/imported/explosion_large_02.wav-9dc2fec2bba83951fa15c78eae83b9fc.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/explosion_large_03.wav b/audio/sounds/explosion_large_03.wav new file mode 100644 index 0000000..5957ec7 Binary files /dev/null and b/audio/sounds/explosion_large_03.wav differ diff --git a/audio/sounds/explosion_large_03.wav.import b/audio/sounds/explosion_large_03.wav.import new file mode 100644 index 0000000..c29199c --- /dev/null +++ b/audio/sounds/explosion_large_03.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://chglh3526ykwo" +path="res://.godot/imported/explosion_large_03.wav-0255c627e601b2d6687f4af17952a02f.sample" + +[deps] + +source_file="res://audio/sounds/explosion_large_03.wav" +dest_files=["res://.godot/imported/explosion_large_03.wav-0255c627e601b2d6687f4af17952a02f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/explosion_large_04.wav b/audio/sounds/explosion_large_04.wav new file mode 100644 index 0000000..6f062fb Binary files /dev/null and b/audio/sounds/explosion_large_04.wav differ diff --git a/audio/sounds/explosion_large_04.wav.import b/audio/sounds/explosion_large_04.wav.import new file mode 100644 index 0000000..cbfc4fa --- /dev/null +++ b/audio/sounds/explosion_large_04.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b3r4s5dofyhas" +path="res://.godot/imported/explosion_large_04.wav-23bbadb9baac639845accc015ce956dc.sample" + +[deps] + +source_file="res://audio/sounds/explosion_large_04.wav" +dest_files=["res://.godot/imported/explosion_large_04.wav-23bbadb9baac639845accc015ce956dc.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/explosion_small_01.wav b/audio/sounds/explosion_small_01.wav new file mode 100644 index 0000000..0c018c2 Binary files /dev/null and b/audio/sounds/explosion_small_01.wav differ diff --git a/audio/sounds/explosion_small_01.wav.import b/audio/sounds/explosion_small_01.wav.import new file mode 100644 index 0000000..39a0e61 --- /dev/null +++ b/audio/sounds/explosion_small_01.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dqup45qbcs0a0" +path="res://.godot/imported/explosion_small_01.wav-2a6db0600f5b2442bcf5651ae9e558ec.sample" + +[deps] + +source_file="res://audio/sounds/explosion_small_01.wav" +dest_files=["res://.godot/imported/explosion_small_01.wav-2a6db0600f5b2442bcf5651ae9e558ec.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/explosion_small_02.wav b/audio/sounds/explosion_small_02.wav new file mode 100644 index 0000000..b598e3b Binary files /dev/null and b/audio/sounds/explosion_small_02.wav differ diff --git a/audio/sounds/explosion_small_02.wav.import b/audio/sounds/explosion_small_02.wav.import new file mode 100644 index 0000000..038615f --- /dev/null +++ b/audio/sounds/explosion_small_02.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dg1on6er2ielh" +path="res://.godot/imported/explosion_small_02.wav-f56a3851c015109af5f37b2eba52daa4.sample" + +[deps] + +source_file="res://audio/sounds/explosion_small_02.wav" +dest_files=["res://.godot/imported/explosion_small_02.wav-f56a3851c015109af5f37b2eba52daa4.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/explosion_small_03.wav b/audio/sounds/explosion_small_03.wav new file mode 100644 index 0000000..3da6443 Binary files /dev/null and b/audio/sounds/explosion_small_03.wav differ diff --git a/audio/sounds/explosion_small_03.wav.import b/audio/sounds/explosion_small_03.wav.import new file mode 100644 index 0000000..c350839 --- /dev/null +++ b/audio/sounds/explosion_small_03.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b6nc3881sxtm8" +path="res://.godot/imported/explosion_small_03.wav-6fd4bb4cfe9dadae8ec5af856147d6d5.sample" + +[deps] + +source_file="res://audio/sounds/explosion_small_03.wav" +dest_files=["res://.godot/imported/explosion_small_03.wav-6fd4bb4cfe9dadae8ec5af856147d6d5.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/explosion_small_04.wav b/audio/sounds/explosion_small_04.wav new file mode 100644 index 0000000..85b5afd Binary files /dev/null and b/audio/sounds/explosion_small_04.wav differ diff --git a/audio/sounds/explosion_small_04.wav.import b/audio/sounds/explosion_small_04.wav.import new file mode 100644 index 0000000..f200b8d --- /dev/null +++ b/audio/sounds/explosion_small_04.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dvlnht0r462yk" +path="res://.godot/imported/explosion_small_04.wav-d2021556595a538b8b461f25d9f22647.sample" + +[deps] + +source_file="res://audio/sounds/explosion_small_04.wav" +dest_files=["res://.godot/imported/explosion_small_04.wav-d2021556595a538b8b461f25d9f22647.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/audio/sounds/metal_tiny_hit_impact_01.wav b/audio/sounds/metal_tiny_hit_impact_01.wav new file mode 100644 index 0000000..f45061b Binary files /dev/null and b/audio/sounds/metal_tiny_hit_impact_01.wav differ diff --git a/audio/sounds/metal_tiny_hit_impact_01.wav.import b/audio/sounds/metal_tiny_hit_impact_01.wav.import new file mode 100644 index 0000000..3f979a4 --- /dev/null +++ b/audio/sounds/metal_tiny_hit_impact_01.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://r5ekj20pw3d8" +path="res://.godot/imported/metal_tiny_hit_impact_01.wav-9c28aad71847caa2ec8b738aac8fae70.sample" + +[deps] + +source_file="res://audio/sounds/metal_tiny_hit_impact_01.wav" +dest_files=["res://.godot/imported/metal_tiny_hit_impact_01.wav-9c28aad71847caa2ec8b738aac8fae70.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/credits.txt b/credits.txt index 16ad4dd..977725d 100644 --- a/credits.txt +++ b/credits.txt @@ -4,6 +4,17 @@ Trap Cycle - 9mm M&P Drop Mag Empty C.wav Gamemaster Audio Trap Place - impact_deep_thud_bounce_09.wav +Explosions + - explosion_large_01.wav + - explosion_large_02.wav + - explosion_large_03.wav + - explosion_large_04.wav + - explosion_small_01.wav + - explosion_small_02.wav + - explosion_small_03.wav + - explosion_small_04.wav + +Disarm Tap - metal_tiny_hit_impact_01.wav OTBTechno Trap Alert - 134688__otbtechno__bike-bell.wav diff --git a/scenes/test_level.tscn b/scenes/test_level.tscn index 68cbf7f..3bec372 100644 --- a/scenes/test_level.tscn +++ b/scenes/test_level.tscn @@ -1,13 +1,15 @@ -[gd_scene load_steps=6 format=3 uid="uid://by6suwmds7xq2"] +[gd_scene load_steps=7 format=3 uid="uid://by6suwmds7xq2"] [ext_resource type="Script" uid="uid://d3t381vws7vns" path="res://scripts/test_level.gd" id="1_qcd3b"] [ext_resource type="PackedScene" uid="uid://bgocskbofewsr" path="res://templates/HUD.tscn" id="1_x4b8f"] [ext_resource type="Script" uid="uid://cymi1n4gavixy" path="res://scripts/level_camera.gd" id="3_qcd3b"] +[ext_resource type="PackedScene" uid="uid://eaw46gqf17aw" path="res://templates/explosion.tscn" id="6_qcd3b"] [ext_resource type="MeshLibrary" uid="uid://bhpyvhf36jl0f" path="res://testing.tres" id="7_88ety"] [ext_resource type="MeshLibrary" uid="uid://cvhm40o2uw5mr" path="res://testing markers.tres" id="7_ahbqi"] [node name="Node3D" type="Node3D"] script = ExtResource("1_qcd3b") +difficulty = 5 [node name="CanvasLayer" type="CanvasLayer" parent="."] layer = 1000 @@ -51,3 +53,12 @@ mesh_library = ExtResource("7_ahbqi") cell_size = Vector3(1, 1, 1) cell_center_y = false metadata/_editor_floor_ = Vector3(0, -1, 0) + +[node name="Explosion4" parent="." instance=ExtResource("6_qcd3b")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4760416, 0, 1.06534) + +[node name="Explosion5" parent="." instance=ExtResource("6_qcd3b")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4470272, 0, 0.15185928) + +[node name="Explosion6" parent="." instance=ExtResource("6_qcd3b")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4994788, 0, -0.94687414) diff --git a/scenes/title_screen.tscn b/scenes/title_screen.tscn index 3d6bbb6..3cf1ee1 100644 --- a/scenes/title_screen.tscn +++ b/scenes/title_screen.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=3 uid="uid://dd40q2mv84pmc"] +[gd_scene load_steps=25 format=3 uid="uid://dd40q2mv84pmc"] [ext_resource type="Script" uid="uid://dhu2psbhh1rl8" path="res://scripts/title_screen.gd" id="1_e54dn"] [ext_resource type="Shader" uid="uid://b2g6yddun2l6e" path="res://visuals/shaders/noise.gdshader" id="2_3yumr"] @@ -12,6 +12,10 @@ [ext_resource type="AudioStream" uid="uid://doelc8yt5snc2" path="res://audio/sounds/Keypad A.wav" id="7_cs5ya"] [ext_resource type="Texture2D" uid="uid://bjwelo48s6aoh" path="res://visuals/images/title frame.png" id="11_u26n3"] [ext_resource type="Material" uid="uid://cysw8uwdmtv1v" path="res://visuals/materials/lowres-text.tres" id="12_ib7db"] +[ext_resource type="Shader" uid="uid://b202rwkcmmg56" path="res://visuals/shaders/matrix.gdshader" id="13_4qe4i"] +[ext_resource type="Texture2D" uid="uid://dpfq1o38kl88c" path="res://visuals/textures/glyphs.png" id="14_p07av"] +[ext_resource type="Texture2D" uid="uid://i0esgu8xi4dp" path="res://visuals/textures/small_noise.tres" id="15_khjys"] +[ext_resource type="Texture2D" uid="uid://dri0a20l6kpbj" path="res://visuals/images/icon.svg" id="16_174rq"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_tpml5"] shader = ExtResource("2_3yumr") @@ -81,6 +85,11 @@ shader = SubResource("Shader_u26n3") shader_parameter/threshold = 0.5 shader_parameter/strength = 0.10300002864250002 +[sub_resource type="ShaderMaterial" id="ShaderMaterial_lrxh4"] +shader = ExtResource("13_4qe4i") +shader_parameter/chars = ExtResource("14_p07av") +shader_parameter/noise_tex = ExtResource("15_khjys") + [node name="Control" type="Control"] layout_mode = 3 anchors_preset = 15 @@ -305,3 +314,10 @@ theme_override_font_sizes/font_size = 40 text = "TRAP & GUN ACTION" clip_text = true text_overrun_behavior = 1 + +[node name="TextureRect4" type="TextureRect" parent="."] +material = SubResource("ShaderMaterial_lrxh4") +layout_mode = 0 +offset_right = 1920.0 +offset_bottom = 1080.0 +texture = ExtResource("16_174rq") diff --git a/scripts/disarm_trap_modal.gd b/scripts/disarm_trap_modal.gd index 3ecebb0..a2ae19b 100644 --- a/scripts/disarm_trap_modal.gd +++ b/scripts/disarm_trap_modal.gd @@ -10,27 +10,27 @@ const action_value : Dictionary[String, int] = { const icon_textures : Array = [ { - "normal" : preload("res://visuals/images/icons/switch button.png"), - "pressed" : preload("res://visuals/images/icons/lit switch button.png") + "normal" : preload("res://visuals/images/icons/button-detonate.png"), + "pressed" : preload("res://visuals/images/icons/button-detonate-hit.png") }, { - "normal" : preload("res://visuals/images/icons/trap button.png"), - "pressed" : preload("res://visuals/images/icons/lit trap button.png") + "normal" : preload("res://visuals/images/icons/button-trap.png"), + "pressed" : preload("res://visuals/images/icons/button-trap-hit.png") }, { - "normal" : preload("res://visuals/images/icons/detect button.png"), - "pressed" : preload("res://visuals/images/icons/lit detect button.png") + "normal" : preload("res://visuals/images/icons/button-detect.png"), + "pressed" : preload("res://visuals/images/icons/button-detect-hit.png") }, { - "normal" : preload("res://visuals/images/icons/ranged attack button.png"), - "pressed" : preload("res://visuals/images/icons/lit ranged attack button.png") + "normal" : preload("res://visuals/images/icons/button-attack.png"), + "pressed" : preload("res://visuals/images/icons/button-attack-hit.png") }, ] const disarm_icon_template = preload("res://templates/disarm_icon.tscn") -const success_sound = preload("res://audio/sounds/menu select.wav") -const fail_sound = preload("res://audio/sounds/134688__otbtechno__bike-bell.wav") -const progress_sound = preload("res://audio/sounds/BUTTON Generic Metal Medium High Mechanics 02.wav") +const success_sound = preload("res://audio/sounds/TomWinandySFX_UI_ScifiTech_Notification_13.wav") +const fail_sound = preload("res://audio/sounds/TomWinandySFX_UI_ScifiTech_Cancel_05.wav") +const progress_sound = preload("res://audio/sounds/metal_tiny_hit_impact_01.wav") @onready var confirmation_dialog : ConfirmationDialog = %ConfirmationDialog @onready var disarm_window : PanelContainer = %DisarmWindow @@ -56,7 +56,7 @@ func start_disarming() -> void: progress = 0 disarm_icons = [] disarm_buttons = [] - for i in range(difficulty): + for i in range(Game.level.difficulty): var btn = randi_range(0,3) var icon : TextureButton = disarm_icon_template.instantiate() icon.texture_normal = icon_textures[btn].normal @@ -71,7 +71,7 @@ func start_disarming() -> void: func try_advance(btn : int) -> void: if btn == disarm_buttons[progress]: - disarm_icons[progress].set_pressed_no_signal(true) + disarm_icons[progress].button_pressed = true progress += 1 if progress >= len(disarm_buttons): Game.player.close_modal() diff --git a/scripts/test_level.gd b/scripts/test_level.gd index dbca205..9bf601f 100644 --- a/scripts/test_level.gd +++ b/scripts/test_level.gd @@ -59,6 +59,10 @@ func is_valid_trap_square(crd : Vector3i) -> bool: return false return true +func activate_trap(crd : Vector3i) -> void: + var trap = traps[crd] + #if trap: + func generate_trap(type : Trap.Type, square : Vector3i): var trap = trap_template.instantiate() diff --git a/scripts/trap_fx.gd b/scripts/trap_fx.gd new file mode 100644 index 0000000..9ae1e52 --- /dev/null +++ b/scripts/trap_fx.gd @@ -0,0 +1,11 @@ +extends Node3D + +@onready var anim_player : AnimationPlayer = $AnimationPlayer + +func _ready() -> void: + anim_player.play("default") + + +func _on_timer_timeout() -> void: + print("Done") + queue_free() diff --git a/scripts/trap_fx.gd.uid b/scripts/trap_fx.gd.uid new file mode 100644 index 0000000..3470966 --- /dev/null +++ b/scripts/trap_fx.gd.uid @@ -0,0 +1 @@ +uid://dq4fq3sdlrtt2 diff --git a/templates/disarm_icon.tscn b/templates/disarm_icon.tscn index 953db07..f5dc37d 100644 --- a/templates/disarm_icon.tscn +++ b/templates/disarm_icon.tscn @@ -5,6 +5,7 @@ [node name="DisarmIcon" type="TextureButton"] custom_minimum_size = Vector2(32, 32) +toggle_mode = true texture_normal = ExtResource("1_tmc0a") texture_pressed = ExtResource("2_75gk1") ignore_texture_size = true diff --git a/templates/explosion.tscn b/templates/explosion.tscn new file mode 100644 index 0000000..02c7a35 --- /dev/null +++ b/templates/explosion.tscn @@ -0,0 +1,301 @@ +[gd_scene load_steps=41 format=3 uid="uid://eaw46gqf17aw"] + +[ext_resource type="Script" uid="uid://dq4fq3sdlrtt2" path="res://scripts/trap_fx.gd" id="1_77qbl"] +[ext_resource type="Material" uid="uid://d0igimpfbmiye" path="res://visuals/materials/explosion_cloud.tres" id="2_l2v4y"] +[ext_resource type="AudioStream" uid="uid://dqup45qbcs0a0" path="res://audio/sounds/explosion_small_01.wav" id="3_8g7xx"] +[ext_resource type="AudioStream" uid="uid://dg1on6er2ielh" path="res://audio/sounds/explosion_small_02.wav" id="4_d5gho"] +[ext_resource type="AudioStream" uid="uid://b6nc3881sxtm8" path="res://audio/sounds/explosion_small_03.wav" id="5_gf6ds"] +[ext_resource type="AudioStream" uid="uid://dvlnht0r462yk" path="res://audio/sounds/explosion_small_04.wav" id="6_p88g7"] +[ext_resource type="Shader" uid="uid://dkfrhh35nf022" path="res://visuals/shaders/explosive_streaks.gdshader" id="7_l2v4y"] +[ext_resource type="Texture2D" uid="uid://bgud1c43hsss0" path="res://visuals/textures/explosive_streaks.png" id="8_8g7xx"] +[ext_resource type="Texture2D" uid="uid://c4r0yuw28xqrc" path="res://visuals/textures/explosive_noise.tres" id="8_d5gho"] + +[sub_resource type="Curve" id="Curve_bu3n0"] +_data = [Vector2(0, 1), 0.0, 0.10453241, 0, 0, Vector2(0.57246375, 0.8988764), -0.65023583, -0.65023583, 0, 0, Vector2(1, 0), -5.1685348, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_spfcl"] +texture_mode = 1 +curve = SubResource("Curve_bu3n0") + +[sub_resource type="Gradient" id="Gradient_l0oiq"] +offsets = PackedFloat32Array(0, 0.44642857) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_apxyt"] +gradient = SubResource("Gradient_l0oiq") + +[sub_resource type="Curve" id="Curve_uul3r"] +_data = [Vector2(0.021739125, 1), 0.0, 0.0, 0, 0, Vector2(0.4710145, 0.32584274), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_h4jc3"] +curve = SubResource("Curve_uul3r") + +[sub_resource type="Curve" id="Curve_2tsig"] +_data = [Vector2(0, 0.29213488), 0.0, 3.0099149, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_78p8h"] +curve = SubResource("Curve_2tsig") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_6ym0g"] +emission_shape = 6 +emission_ring_axis = Vector3(0, -1, 0) +emission_ring_height = 2.0 +emission_ring_radius = 2.0 +emission_ring_inner_radius = 0.0 +emission_ring_cone_angle = 56.79 +radial_velocity_min = 6.4999776 +radial_velocity_max = 7.4999776 +radial_velocity_curve = SubResource("CurveTexture_h4jc3") +gravity = Vector3(0, 5, 0) +scale_min = 1.6999999 +scale_max = 3.0 +scale_curve = SubResource("CurveTexture_78p8h") +color_ramp = SubResource("GradientTexture1D_apxyt") +alpha_curve = SubResource("CurveTexture_spfcl") + +[sub_resource type="SphereMesh" id="SphereMesh_4y8np"] + +[sub_resource type="Curve" id="Curve_0a065"] +_data = [Vector2(0, 1), 0.0, 0.10453241, 0, 0, Vector2(0.57246375, 0.8988764), -0.65023583, -0.65023583, 0, 0, Vector2(1, 0), -5.1685348, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_ska33"] +texture_mode = 1 +curve = SubResource("Curve_0a065") + +[sub_resource type="Gradient" id="Gradient_7pxcp"] +offsets = PackedFloat32Array(0, 0.10714286, 0.45535713) +colors = PackedColorArray(0, 0, 0, 1, 0.19607843, 0.19607843, 0.19607843, 1, 1, 1, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_h1pp0"] +gradient = SubResource("Gradient_7pxcp") + +[sub_resource type="Curve" id="Curve_2sdsb"] +_data = [Vector2(0.021739125, 1), 0.0, 0.0, 0, 0, Vector2(0.4710145, 0.32584274), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_h4c7m"] +curve = SubResource("Curve_2sdsb") + +[sub_resource type="Curve" id="Curve_mojh2"] +_data = [Vector2(0, 0.29213488), 0.0, 3.0099149, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_4dm4u"] +curve = SubResource("Curve_mojh2") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_gp5gk"] +emission_shape_scale = Vector3(0.5, 0.5, 0.5) +emission_shape = 6 +emission_ring_axis = Vector3(0, -1, 0) +emission_ring_height = 2.0 +emission_ring_radius = 2.0 +emission_ring_inner_radius = 0.0 +emission_ring_cone_angle = 56.79 +angle_min = -720.0 +angle_max = 720.0 +radial_velocity_min = 3.2499776 +radial_velocity_max = 3.7499776 +radial_velocity_curve = SubResource("CurveTexture_h4c7m") +gravity = Vector3(0, 5, 0) +scale_min = 0.84999996 +scale_max = 1.5 +scale_curve = SubResource("CurveTexture_4dm4u") +color_ramp = SubResource("GradientTexture1D_h1pp0") +alpha_curve = SubResource("CurveTexture_ska33") +turbulence_noise_strength = 20.0 +turbulence_noise_scale = 0.0 + +[sub_resource type="SphereMesh" id="SphereMesh_s37iy"] + +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_urvwl"] +streams_count = 4 +stream_0/stream = ExtResource("3_8g7xx") +stream_1/stream = ExtResource("4_d5gho") +stream_2/stream = ExtResource("5_gf6ds") +stream_3/stream = ExtResource("6_p88g7") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_8g7xx"] +render_priority = 0 +shader = ExtResource("7_l2v4y") +shader_parameter/streaks_texture = ExtResource("8_8g7xx") +shader_parameter/explosion_texture = ExtResource("8_d5gho") +shader_parameter/streak_color = Color(3.2944162, 1.1558828, 0, 1) + +[sub_resource type="Curve" id="Curve_gf6ds"] +_data = [Vector2(0.13768117, 0.022471905), 0.0, 2.907304, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_p88g7"] +curve = SubResource("Curve_gf6ds") + +[sub_resource type="Curve" id="Curve_d5gho"] +_data = [Vector2(0, 0.34831464), 0.0, 1.9734426, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_gf6ds"] +curve = SubResource("Curve_d5gho") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_p88g7"] +particle_flag_align_y = true +direction = Vector3(0, 1, 0) +spread = 90.0 +initial_velocity_min = 0.5 +initial_velocity_max = 1.0 +gravity = Vector3(0, 0, 0) +scale_min = 2.0 +scale_max = 6.0 +scale_curve = SubResource("CurveTexture_gf6ds") +alpha_curve = SubResource("CurveTexture_p88g7") +hue_variation_min = -2.2351742e-08 +hue_variation_max = 0.99999994 + +[sub_resource type="QuadMesh" id="QuadMesh_bu3n0"] +size = Vector2(0.25, 1) +center_offset = Vector3(0, 0.4, 0) + +[sub_resource type="Animation" id="Animation_d5gho"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ParticleFX:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("StreakFX:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("OmniLight3D:light_energy") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [20.0] +} + +[sub_resource type="Animation" id="Animation_gf6ds"] +resource_name = "default" +step = 0.05 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ParticleFX:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("StreakFX:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.05), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("OmniLight3D:light_energy") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [20.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_p88g7"] +_data = { +&"RESET": SubResource("Animation_d5gho"), +&"default": SubResource("Animation_gf6ds") +} + +[node name="Explosion" type="Node3D"] +script = ExtResource("1_77qbl") + +[node name="GPUParticles3D" type="GPUParticles3D" parent="."] +material_override = ExtResource("2_l2v4y") +emitting = false +amount = 10 +lifetime = 0.6 +one_shot = true +explosiveness = 0.8 +fixed_fps = 60 +process_material = SubResource("ParticleProcessMaterial_6ym0g") +draw_pass_1 = SubResource("SphereMesh_4y8np") + +[node name="ParticleFX" type="GPUParticles3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.4375714, 0, 0.5602956) +material_override = ExtResource("2_l2v4y") +emitting = false +amount = 10 +lifetime = 0.6 +one_shot = true +explosiveness = 0.8 +fixed_fps = 60 +process_material = SubResource("ParticleProcessMaterial_gp5gk") +draw_pass_1 = SubResource("SphereMesh_s37iy") + +[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."] +stream = SubResource("AudioStreamRandomizer_urvwl") +autoplay = true + +[node name="Timer" type="Timer" parent="."] +wait_time = 3.0 +one_shot = true +autostart = true + +[node name="StreakFX" type="GPUParticles3D" parent="."] +material_override = SubResource("ShaderMaterial_8g7xx") +emitting = false +lifetime = 0.4 +one_shot = true +explosiveness = 0.9 +randomness = 1.0 +fixed_fps = 60 +process_material = SubResource("ParticleProcessMaterial_p88g7") +draw_pass_1 = SubResource("QuadMesh_bu3n0") + +[node name="OmniLight3D" type="OmniLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0) +light_color = Color(1, 0.5917481, 0, 1) +light_energy = 20.0 +omni_range = 10.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_p88g7") +} + +[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"] diff --git a/templates/one_shot.tscn b/templates/one_shot.tscn index 505aadd..6db53df 100644 --- a/templates/one_shot.tscn +++ b/templates/one_shot.tscn @@ -3,6 +3,7 @@ [ext_resource type="Script" uid="uid://cb72nk0ddi3c" path="res://scripts/one_shot.gd" id="1_k1ss2"] [node name="OneShot" type="AudioStreamPlayer"] +autoplay = true script = ExtResource("1_k1ss2") [node name="Timer" type="Timer" parent="."] diff --git a/visuals/images/icons/button-attack-hit.png b/visuals/images/icons/button-attack-hit.png new file mode 100644 index 0000000..5c34aba Binary files /dev/null and b/visuals/images/icons/button-attack-hit.png differ diff --git a/visuals/images/icons/button-attack-hit.png.import b/visuals/images/icons/button-attack-hit.png.import new file mode 100644 index 0000000..a00ac32 --- /dev/null +++ b/visuals/images/icons/button-attack-hit.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lyw6lp8xkiy3" +path="res://.godot/imported/button-attack-hit.png-d7e4a89fb392a5df3773a46ec9552aa0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visuals/images/icons/button-attack-hit.png" +dest_files=["res://.godot/imported/button-attack-hit.png-d7e4a89fb392a5df3773a46ec9552aa0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/visuals/images/icons/button-attack.png b/visuals/images/icons/button-attack.png new file mode 100644 index 0000000..2da9f05 Binary files /dev/null and b/visuals/images/icons/button-attack.png differ diff --git a/visuals/images/icons/button-attack.png.import b/visuals/images/icons/button-attack.png.import new file mode 100644 index 0000000..2c93d05 --- /dev/null +++ b/visuals/images/icons/button-attack.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0aggjegou04w" +path="res://.godot/imported/button-attack.png-aae1d515aaf5dd607c4796e9455110fd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visuals/images/icons/button-attack.png" +dest_files=["res://.godot/imported/button-attack.png-aae1d515aaf5dd607c4796e9455110fd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/visuals/images/icons/button-detect-hit.png b/visuals/images/icons/button-detect-hit.png new file mode 100644 index 0000000..123b613 Binary files /dev/null and b/visuals/images/icons/button-detect-hit.png differ diff --git a/visuals/images/icons/button-detect-hit.png.import b/visuals/images/icons/button-detect-hit.png.import new file mode 100644 index 0000000..50fdf80 --- /dev/null +++ b/visuals/images/icons/button-detect-hit.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsvto2ala6jgl" +path="res://.godot/imported/button-detect-hit.png-0a631165f030cd9b654f89a609007a8a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visuals/images/icons/button-detect-hit.png" +dest_files=["res://.godot/imported/button-detect-hit.png-0a631165f030cd9b654f89a609007a8a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/visuals/images/icons/button-detect.png b/visuals/images/icons/button-detect.png new file mode 100644 index 0000000..d8aa3fd Binary files /dev/null and b/visuals/images/icons/button-detect.png differ diff --git a/visuals/images/icons/button-detect.png.import b/visuals/images/icons/button-detect.png.import new file mode 100644 index 0000000..a90e5a8 --- /dev/null +++ b/visuals/images/icons/button-detect.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://brdlarspo7ich" +path="res://.godot/imported/button-detect.png-a53b247455f18c80703a7530559e9111.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visuals/images/icons/button-detect.png" +dest_files=["res://.godot/imported/button-detect.png-a53b247455f18c80703a7530559e9111.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/visuals/images/icons/button-detonate-hit.png b/visuals/images/icons/button-detonate-hit.png new file mode 100644 index 0000000..9570c4a Binary files /dev/null and b/visuals/images/icons/button-detonate-hit.png differ diff --git a/visuals/images/icons/button-detonate-hit.png.import b/visuals/images/icons/button-detonate-hit.png.import new file mode 100644 index 0000000..e0cd30d --- /dev/null +++ b/visuals/images/icons/button-detonate-hit.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfqi80mmnu1j6" +path="res://.godot/imported/button-detonate-hit.png-bd35e4b2cca0a7d537b0c2469f4ea9fc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visuals/images/icons/button-detonate-hit.png" +dest_files=["res://.godot/imported/button-detonate-hit.png-bd35e4b2cca0a7d537b0c2469f4ea9fc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/visuals/images/icons/button-detonate.png b/visuals/images/icons/button-detonate.png new file mode 100644 index 0000000..113e8b8 Binary files /dev/null and b/visuals/images/icons/button-detonate.png differ diff --git a/visuals/images/icons/button-detonate.png.import b/visuals/images/icons/button-detonate.png.import new file mode 100644 index 0000000..b09ebb5 --- /dev/null +++ b/visuals/images/icons/button-detonate.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d36x44m5glyj4" +path="res://.godot/imported/button-detonate.png-b892a099a8ff17f368a4074f57c52b89.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visuals/images/icons/button-detonate.png" +dest_files=["res://.godot/imported/button-detonate.png-b892a099a8ff17f368a4074f57c52b89.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/visuals/images/icons/button-trap-hit.png b/visuals/images/icons/button-trap-hit.png new file mode 100644 index 0000000..7e9acd4 Binary files /dev/null and b/visuals/images/icons/button-trap-hit.png differ diff --git a/visuals/images/icons/button-trap-hit.png.import b/visuals/images/icons/button-trap-hit.png.import new file mode 100644 index 0000000..d2d71b1 --- /dev/null +++ b/visuals/images/icons/button-trap-hit.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://klhragf48bkd" +path="res://.godot/imported/button-trap-hit.png-865f2fa9062023dca2508cb9d2362361.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visuals/images/icons/button-trap-hit.png" +dest_files=["res://.godot/imported/button-trap-hit.png-865f2fa9062023dca2508cb9d2362361.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/visuals/images/icons/button-trap.png b/visuals/images/icons/button-trap.png new file mode 100644 index 0000000..ff072f6 Binary files /dev/null and b/visuals/images/icons/button-trap.png differ diff --git a/visuals/images/icons/button-trap.png.import b/visuals/images/icons/button-trap.png.import new file mode 100644 index 0000000..23a55d9 --- /dev/null +++ b/visuals/images/icons/button-trap.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://belkk38rxged0" +path="res://.godot/imported/button-trap.png-7a6d52d00cf7dac09beedca466e13569.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visuals/images/icons/button-trap.png" +dest_files=["res://.godot/imported/button-trap.png-7a6d52d00cf7dac09beedca466e13569.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/visuals/materials/explosion_cloud.tres b/visuals/materials/explosion_cloud.tres new file mode 100644 index 0000000..bb9b823 --- /dev/null +++ b/visuals/materials/explosion_cloud.tres @@ -0,0 +1,23 @@ +[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://d0igimpfbmiye"] + +[ext_resource type="Shader" uid="uid://c4uv1a6c6l4w4" path="res://visuals/shaders/explosion cloud.gdshader" id="1_ucjbd"] +[ext_resource type="Texture2D" uid="uid://c4r0yuw28xqrc" path="res://visuals/textures/explosive_noise.tres" id="2_143bf"] +[ext_resource type="Texture2D" uid="uid://by70e5iuu1n47" path="res://visuals/textures/perlin_seamless.png" id="3_e5im5"] + +[sub_resource type="Gradient" id="Gradient_sbr80"] +offsets = PackedFloat32Array(0.30645162, 0.7177419, 1) +colors = PackedColorArray(0.025363795, 0.025363805, 0.02536378, 1, 0.21, 0.21, 0.21, 1, 0.84, 0.84, 0.84, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ik0q2"] +gradient = SubResource("Gradient_sbr80") + +[resource] +render_priority = 0 +shader = ExtResource("1_ucjbd") +shader_parameter/noise = ExtResource("3_e5im5") +shader_parameter/emissive_noise = ExtResource("2_143bf") +shader_parameter/color_gradient = SubResource("GradientTexture1D_ik0q2") +shader_parameter/emissive_color = Color(1, 0.32156864, 0, 1) +shader_parameter/noise_strength = 0.74800003227012 +shader_parameter/edge_distance = 10.0 +shader_parameter/oscillation_speed = Vector2(0, 0.5) diff --git a/visuals/shaders/explosion cloud.gdshader b/visuals/shaders/explosion cloud.gdshader new file mode 100644 index 0000000..34e7051 --- /dev/null +++ b/visuals/shaders/explosion cloud.gdshader @@ -0,0 +1,46 @@ +shader_type spatial; + +uniform sampler2D noise; +uniform sampler2D emissive_noise; +uniform sampler2D color_gradient; +uniform sampler2D DEPTH_TEXTURE : hint_depth_texture; +uniform vec4 emissive_color : source_color = vec4(1.0, 0.3, 1.0, 1.0); +uniform float noise_strength : hint_range(0.1,2) = 1; +uniform float edge_distance : hint_range(1, 10) = 1; +uniform vec2 oscillation_speed = vec2(1,1); + +varying vec3 world_vertex; + +void vertex() { + // Called for every vertex the material is visible on. + vec2 uv = UV + TIME * oscillation_speed; + float noise_val = texture(noise, uv).r; + VERTEX = VERTEX + NORMAL * noise_strength * noise_val; + world_vertex = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz; +} + +void fragment() { + // Called for every pixel the material is visible on. + vec3 color; + vec3 e_col = emissive_color.rgb; + vec2 uv = UV; + float g_noise_val = texture(noise, vec2(uv.x + TIME * 0.2, 0.5)).r; + g_noise_val *= g_noise_val; + float e_noise_val = texture(noise, uv + TIME * 0.2).r; + vec3 gradient_col = texture(color_gradient, vec2(g_noise_val, 0)).rgb; + color = gradient_col; + ALBEDO = color; + e_col = e_col * smoothstep(COLOR.r,1.0, texture(emissive_noise, UV).r) * 20.0; + EMISSION = e_col.rgb; + + float depth_tex = texture(DEPTH_TEXTURE, SCREEN_UV).r; + float prox_factor = 1.0 - smoothstep(depth_tex, depth_tex + edge_distance, VERTEX.z); + float a_noise_val = smoothstep(0, .8, texture(noise, uv + TIME * 0.1).r); + ALPHA = COLOR.a * a_noise_val * prox_factor; + +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/visuals/shaders/explosion cloud.gdshader.uid b/visuals/shaders/explosion cloud.gdshader.uid new file mode 100644 index 0000000..0546ab5 --- /dev/null +++ b/visuals/shaders/explosion cloud.gdshader.uid @@ -0,0 +1 @@ +uid://c4uv1a6c6l4w4 diff --git a/visuals/shaders/explosive_streaks.gdshader b/visuals/shaders/explosive_streaks.gdshader new file mode 100644 index 0000000..53492e3 --- /dev/null +++ b/visuals/shaders/explosive_streaks.gdshader @@ -0,0 +1,24 @@ +shader_type spatial; +render_mode cull_disabled; + +uniform sampler2D streaks_texture; +uniform sampler2D explosion_texture; +uniform vec4 streak_color : source_color; + +void vertex() { + // Called for every vertex the material is visible on. +} + +void fragment() { + // Called for every pixel the material is visible on. + vec2 streak_uv = vec2(UV.x * .25 + floor(COLOR.r * 4.0) * .25, UV.y); + float n_val = texture(explosion_texture, UV).r; + float alpha = texture(streaks_texture, streak_uv).r * smoothstep(COLOR.a, 1, n_val); + ALBEDO = streak_color.rgb; + ALPHA = alpha; +} + +//void light() { +// // Called for every pixel for every light affecting the material. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/visuals/shaders/explosive_streaks.gdshader.uid b/visuals/shaders/explosive_streaks.gdshader.uid new file mode 100644 index 0000000..bf998fc --- /dev/null +++ b/visuals/shaders/explosive_streaks.gdshader.uid @@ -0,0 +1 @@ +uid://dkfrhh35nf022 diff --git a/visuals/shaders/matrix.gdshader b/visuals/shaders/matrix.gdshader new file mode 100644 index 0000000..45dccfa --- /dev/null +++ b/visuals/shaders/matrix.gdshader @@ -0,0 +1,29 @@ +shader_type canvas_item; + +uniform sampler2D chars; +uniform sampler2D noise_tex; + +void fragment() { + // Random character + vec2 uv = fract(UV * 32.0); // loop uv 32 times for the characters (as the noise resolution is 32x32) + float noise = texture(noise_tex, UV).g; + noise = round(noise * 26.0) / 26.0; // make sure the color value are snapped by 0.1 (so its only 0.0, 0.1, 0.2, and so on) for perfect offset + uv.x = (uv.x / 26.0); // offset + uv.x += noise; // offset every character by the noise value + uv.x += round(TIME * 0.5 * 26.0)/26.0; // animate characters with TIME, then snapped by 0.1 so it doesnt slide. 0.5 is the speed, you might want to change that + + // distortion + float rain = UV.y; // this is a vertical gradient + float distortion = texture(noise_tex, UV / vec2(1.0, 32.0)).g; // this will be used for distortion, using previous noise but only horizontal + distortion = round(distortion * 26.0) / 26.0; // for precision reason, you need to round your distortion too, otherwise some character wouldnt be fully shown + rain -= round(TIME * 0.2 * 32.0) / 32.0; // the 'rain' shouldn't move smoothly right? also, 0.2 is the speed + rain += distortion; // distort this gradient, turning it into a rain + rain = fract(rain); // loop the rain + rain = round(rain * 16.0) / 16.0; // pixelate the rain. Rounding by 32.0 or 8.0 is optional + rain = pow(rain, 3.0); // this is not necessary, i just think that it looks good + rain *= 2.0; // this is also not important, just making the characters brighter + + COLOR.rgb = texture(chars, uv).rgb * rain * vec3(0.0, 1.0, 0.0); // finally multiply them together then multiply with green for the color +} + + diff --git a/visuals/shaders/matrix.gdshader.uid b/visuals/shaders/matrix.gdshader.uid new file mode 100644 index 0000000..3aaa956 --- /dev/null +++ b/visuals/shaders/matrix.gdshader.uid @@ -0,0 +1 @@ +uid://b202rwkcmmg56 diff --git a/visuals/textures/T_MarbleNoise_tiled.png b/visuals/textures/T_MarbleNoise_tiled.png new file mode 100644 index 0000000..355d62a Binary files /dev/null and b/visuals/textures/T_MarbleNoise_tiled.png differ diff --git a/visuals/textures/T_MarbleNoise_tiled.png.import b/visuals/textures/T_MarbleNoise_tiled.png.import new file mode 100644 index 0000000..8206998 --- /dev/null +++ b/visuals/textures/T_MarbleNoise_tiled.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hyuqahibuxvk" +path.s3tc="res://.godot/imported/T_MarbleNoise_tiled.png-f8168c58cf3a1775bc180c7d94a28d05.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://visuals/textures/T_MarbleNoise_tiled.png" +dest_files=["res://.godot/imported/T_MarbleNoise_tiled.png-f8168c58cf3a1775bc180c7d94a28d05.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/visuals/textures/T_cloudy_noise_211c.png b/visuals/textures/T_cloudy_noise_211c.png new file mode 100644 index 0000000..b5746d2 Binary files /dev/null and b/visuals/textures/T_cloudy_noise_211c.png differ diff --git a/visuals/textures/T_cloudy_noise_211c.png.import b/visuals/textures/T_cloudy_noise_211c.png.import new file mode 100644 index 0000000..a410e3c --- /dev/null +++ b/visuals/textures/T_cloudy_noise_211c.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cm8al4e8mney0" +path.s3tc="res://.godot/imported/T_cloudy_noise_211c.png-6537c12041a33e21ee237bf63259223a.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://visuals/textures/T_cloudy_noise_211c.png" +dest_files=["res://.godot/imported/T_cloudy_noise_211c.png-6537c12041a33e21ee237bf63259223a.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/visuals/textures/explosive_noise.tres b/visuals/textures/explosive_noise.tres new file mode 100644 index 0000000..384f615 --- /dev/null +++ b/visuals/textures/explosive_noise.tres @@ -0,0 +1,14 @@ +[gd_resource type="NoiseTexture2D" load_steps=2 format=3 uid="uid://c4r0yuw28xqrc"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_5rac8"] +noise_type = 2 +frequency = 0.0004 +fractal_type = 2 +fractal_octaves = 6 +fractal_lacunarity = 2.23 +fractal_gain = 0.925 + +[resource] +noise = SubResource("FastNoiseLite_5rac8") +seamless = true +seamless_blend_skirt = 0.326 diff --git a/visuals/textures/explosive_streaks.png b/visuals/textures/explosive_streaks.png new file mode 100644 index 0000000..5ea5931 Binary files /dev/null and b/visuals/textures/explosive_streaks.png differ diff --git a/visuals/textures/explosive_streaks.png.import b/visuals/textures/explosive_streaks.png.import new file mode 100644 index 0000000..33e6e9b --- /dev/null +++ b/visuals/textures/explosive_streaks.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bgud1c43hsss0" +path.s3tc="res://.godot/imported/explosive_streaks.png-079e7453e53528e3328bffd3b77d4b45.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://visuals/textures/explosive_streaks.png" +dest_files=["res://.godot/imported/explosive_streaks.png-079e7453e53528e3328bffd3b77d4b45.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/visuals/textures/glyphs.png b/visuals/textures/glyphs.png new file mode 100644 index 0000000..47bfd97 Binary files /dev/null and b/visuals/textures/glyphs.png differ diff --git a/visuals/textures/glyphs.png.import b/visuals/textures/glyphs.png.import new file mode 100644 index 0000000..c56cb37 --- /dev/null +++ b/visuals/textures/glyphs.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpfq1o38kl88c" +path="res://.godot/imported/glyphs.png-8e5b9cbbeceda54b356d4475a50f4b56.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visuals/textures/glyphs.png" +dest_files=["res://.godot/imported/glyphs.png-8e5b9cbbeceda54b356d4475a50f4b56.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/visuals/textures/perlin_seamless.png b/visuals/textures/perlin_seamless.png new file mode 100644 index 0000000..81a84e7 Binary files /dev/null and b/visuals/textures/perlin_seamless.png differ diff --git a/visuals/textures/perlin_seamless.png.import b/visuals/textures/perlin_seamless.png.import new file mode 100644 index 0000000..7d9cb7b --- /dev/null +++ b/visuals/textures/perlin_seamless.png.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://by70e5iuu1n47" +path.s3tc="res://.godot/imported/perlin_seamless.png-5973ac409d711b91decd8c900d3cb3e3.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://visuals/textures/perlin_seamless.png" +dest_files=["res://.godot/imported/perlin_seamless.png-5973ac409d711b91decd8c900d3cb3e3.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/visuals/textures/small_noise.tres b/visuals/textures/small_noise.tres new file mode 100644 index 0000000..0303515 --- /dev/null +++ b/visuals/textures/small_noise.tres @@ -0,0 +1,13 @@ +[gd_resource type="NoiseTexture2D" load_steps=2 format=3 uid="uid://i0esgu8xi4dp"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_77w2v"] +noise_type = 5 +seed = 212 +frequency = 0.154 +fractal_octaves = 1 + +[resource] +width = 32 +height = 32 +generate_mipmaps = false +noise = SubResource("FastNoiseLite_77w2v")