First commit

This commit is contained in:
2025-12-04 11:13:48 -05:00
commit 5d8452c70d
39 changed files with 1509 additions and 0 deletions

4
.editorconfig Normal file
View File

@@ -0,0 +1,4 @@
root = true
[*]
charset = utf-8

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Godot 4+ specific ignores
.godot/
/android/
/audio/music/

BIN
ASTERA v2.ttf Normal file

Binary file not shown.

36
ASTERA v2.ttf.import Normal file
View File

@@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://c83fwpdo5bu8j"
path="res://.godot/imported/ASTERA v2.ttf-875ae7bdf06d3fa0de10fc25386b1f10.fontdata"
[deps]
source_file="res://ASTERA v2.ttf"
dest_files=["res://.godot/imported/ASTERA v2.ttf-875ae7bdf06d3fa0de10fc25386b1f10.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://kj25hej55ckw"
path="res://.godot/imported/BUTTON Generic Metal Medium High Mechanics 02.wav-72e6e0adcf2b99d877e88bca68e86942.sample"
[deps]
source_file="res://audio/sounds/BUTTON Generic Metal Medium High Mechanics 02.wav"
dest_files=["res://.godot/imported/BUTTON Generic Metal Medium High Mechanics 02.wav-72e6e0adcf2b99d877e88bca68e86942.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

Binary file not shown.

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cmnibhyxpag0a"
path="res://.godot/imported/BeepBeep_high.wav-fa7e0ffacf5612ac8b4a049018bca0f6.sample"
[deps]
source_file="res://audio/sounds/BeepBeep_high.wav"
dest_files=["res://.godot/imported/BeepBeep_high.wav-fa7e0ffacf5612ac8b4a049018bca0f6.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

57
project.godot Normal file
View File

@@ -0,0 +1,57 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
[application]
config/name="Trap Shooter"
config/features=PackedStringArray("4.5", "Forward Plus")
config/icon="res://visuals/images/icon.svg"
[autoload]
Game="*res://scripts/autos/game.gd"
[display]
window/size/viewport_width=1920
window/size/viewport_height=1080
[dotnet]
project/assembly_name="Trap Gunner"
[input]
ui_menu={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194370,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":true,"script":null)
]
}
north={
"deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null)
]
}
south={
"deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
]
}
east={
"deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
]
}
west={
"deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
]
}

View File

@@ -0,0 +1,429 @@
[gd_scene load_steps=6 format=3 uid="uid://ck4x56txf676a"]
[ext_resource type="Shader" uid="uid://b2g6yddun2l6e" path="res://visuals/shaders/noise.gdshader" id="1_jgus3"]
[ext_resource type="Script" uid="uid://bnmklbse62lrf" path="res://scripts/static.gd" id="2_bow2h"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_uxcyu"]
shader = ExtResource("1_jgus3")
shader_parameter/granularity = 0.0
shader_parameter/opacity_limit = 0.0
[sub_resource type="Gradient" id="Gradient_ak2if"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fa52j"]
gradient = SubResource("Gradient_ak2if")
width = 1
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel" type="Panel" parent="Panel"]
layout_mode = 1
offset_left = 94.0
offset_top = 96.0
offset_right = 794.0
offset_bottom = 796.0
[node name="TextureRect" type="TextureRect" parent="Panel/Panel"]
material = SubResource("ShaderMaterial_uxcyu")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
script = ExtResource("2_bow2h")
[node name="Control" type="Control" parent="Panel/Panel"]
anchors_preset = 0
offset_left = 108.0
offset_top = 286.0
offset_right = 392.0
offset_bottom = 350.0
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/Panel/Control"]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -39.0
offset_top = 236.0
offset_right = 245.0
offset_bottom = 349.0
grow_horizontal = 2
grow_vertical = 0
[node name="Label" type="Label" parent="Panel/Panel/Control/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
text = "NAME GOES HERE"
horizontal_alignment = 1
[node name="Panel" type="PanelContainer" parent="Panel/Panel/Control/VBoxContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/Panel/Control/VBoxContainer/Panel"]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Panel/Panel/Control/VBoxContainer/Panel/HBoxContainer"]
custom_minimum_size = Vector2(92, 64)
layout_mode = 2
[node name="Label" type="Label" parent="Panel/Panel/Control/VBoxContainer/Panel/HBoxContainer/TextureRect"]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -40.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "##"
horizontal_alignment = 2
[node name="TextureRect2" type="TextureRect" parent="Panel/Panel/Control/VBoxContainer/Panel/HBoxContainer"]
custom_minimum_size = Vector2(92, 64)
layout_mode = 2
[node name="Label" type="Label" parent="Panel/Panel/Control/VBoxContainer/Panel/HBoxContainer/TextureRect2"]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -40.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "##"
horizontal_alignment = 2
[node name="TextureRect3" type="TextureRect" parent="Panel/Panel/Control/VBoxContainer/Panel/HBoxContainer"]
custom_minimum_size = Vector2(92, 64)
layout_mode = 2
[node name="Label" type="Label" parent="Panel/Panel/Control/VBoxContainer/Panel/HBoxContainer/TextureRect3"]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -40.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "##"
horizontal_alignment = 2
[node name="Panel2" type="Panel" parent="Panel"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -794.0
offset_top = 98.0
offset_right = -94.0
offset_bottom = 798.0
grow_horizontal = 0
[node name="TextureRect" type="TextureRect" parent="Panel/Panel2"]
material = SubResource("ShaderMaterial_uxcyu")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
script = ExtResource("2_bow2h")
[node name="Label" type="Label" parent="Panel/Panel2"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -40.0
offset_bottom = 23.0
grow_horizontal = 0
theme_override_font_sizes/font_size = 24
text = "EASY"
[node name="Control" type="Control" parent="Panel/Panel2"]
anchors_preset = 0
offset_left = 108.0
offset_top = 286.0
offset_right = 392.0
offset_bottom = 350.0
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/Panel2/Control"]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -42.0
offset_top = 235.0
offset_right = 242.0
offset_bottom = 348.0
grow_horizontal = 2
grow_vertical = 0
[node name="Label" type="Label" parent="Panel/Panel2/Control/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
text = "NAME GOES HERE"
horizontal_alignment = 1
[node name="Panel" type="PanelContainer" parent="Panel/Panel2/Control/VBoxContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/Panel2/Control/VBoxContainer/Panel"]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Panel/Panel2/Control/VBoxContainer/Panel/HBoxContainer"]
custom_minimum_size = Vector2(92, 64)
layout_mode = 2
[node name="Label" type="Label" parent="Panel/Panel2/Control/VBoxContainer/Panel/HBoxContainer/TextureRect"]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -40.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "##"
horizontal_alignment = 2
[node name="TextureRect2" type="TextureRect" parent="Panel/Panel2/Control/VBoxContainer/Panel/HBoxContainer"]
custom_minimum_size = Vector2(92, 64)
layout_mode = 2
[node name="Label" type="Label" parent="Panel/Panel2/Control/VBoxContainer/Panel/HBoxContainer/TextureRect2"]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -40.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "##"
horizontal_alignment = 2
[node name="TextureRect3" type="TextureRect" parent="Panel/Panel2/Control/VBoxContainer/Panel/HBoxContainer"]
custom_minimum_size = Vector2(92, 64)
layout_mode = 2
[node name="Label" type="Label" parent="Panel/Panel2/Control/VBoxContainer/Panel/HBoxContainer/TextureRect3"]
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -40.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "##"
horizontal_alignment = 2
[node name="Panel2" type="Panel" parent="."]
custom_minimum_size = Vector2(0, 250)
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 0
[node name="HBoxContainer" type="HBoxContainer" parent="Panel2"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -512.5
offset_top = -75.0
offset_right = 512.5
offset_bottom = 75.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 25
alignment = 1
[node name="Panel" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Panel2/HBoxContainer/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel2" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Panel2/HBoxContainer/Panel2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel3" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Panel2/HBoxContainer/Panel3"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel3"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel4" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Panel2/HBoxContainer/Panel4"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel4"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel5" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Panel2/HBoxContainer/Panel5"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel5"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel6" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Panel2/HBoxContainer/Panel6"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel6"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel3" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 75.0
grow_horizontal = 2
[node name="Label" type="Label" parent="Panel3"]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -75.5
offset_top = -23.0
offset_right = 75.5
grow_horizontal = 2
grow_vertical = 0
theme_override_font_sizes/font_size = 40
text = "CHARACTER SELECT"
horizontal_alignment = 1

View File

@@ -0,0 +1,155 @@
[gd_scene load_steps=2 format=3 uid="uid://cjnws52vwfxvq"]
[ext_resource type="Script" uid="uid://dep7nr2nkdmga" path="res://scripts/multiplayer_setup.gd" id="1_lckj3"]
[node name="Multiplayer Setup" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_lckj3")
[node name="Panel" type="PanelContainer" parent="."]
visible = false
custom_minimum_size = Vector2(400, 400)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -200.0
offset_right = 200.0
offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 2
[node name="Menu" type="VBoxContainer" parent="Panel"]
unique_name_in_owner = true
layout_mode = 2
[node name="HostButton" type="Button" parent="Panel/Menu"]
layout_mode = 2
text = "Host Match"
[node name="JoinButton" type="Button" parent="Panel/Menu"]
layout_mode = 2
text = "Join Match"
[node name="BackButton" type="Button" parent="Panel/Menu"]
layout_mode = 2
text = "Back"
[node name="Hosting" type="VBoxContainer" parent="Panel"]
unique_name_in_owner = true
layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="Panel/Hosting"]
layout_mode = 2
text = "HOSTING MATCH"
horizontal_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/Hosting"]
layout_mode = 2
[node name="Label" type="Label" parent="Panel/Hosting/HBoxContainer"]
layout_mode = 2
text = "Handle"
[node name="HandleEdit" type="TextEdit" parent="Panel/Hosting/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="HostButton" type="Button" parent="Panel/Hosting"]
layout_mode = 2
text = "HOST"
[node name="BackButton" type="Button" parent="Panel/Hosting"]
layout_mode = 2
text = "Back"
[node name="Host Waiting" type="VBoxContainer" parent="Panel"]
unique_name_in_owner = true
visible = false
layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="Panel/Host Waiting"]
layout_mode = 2
text = "WAITING FOR OPPONENT"
horizontal_alignment = 1
[node name="PanelContainer" type="PanelContainer" parent="Panel/Host Waiting"]
layout_mode = 2
[node name="TextEdit" type="RichTextLabel" parent="Panel/Host Waiting/PanelContainer"]
custom_minimum_size = Vector2(0, 70)
layout_mode = 2
size_flags_horizontal = 3
bbcode_enabled = true
text = "[b]*YOU (Host)[/b]
[color=\"FFFF00\"]*THEM (Opponent)[/color]"
[node name="StartButton" type="Button" parent="Panel/Host Waiting"]
layout_mode = 2
text = "START"
[node name="BackButton" type="Button" parent="Panel/Host Waiting"]
layout_mode = 2
text = "Back"
[node name="Joining" type="VBoxContainer" parent="Panel"]
unique_name_in_owner = true
visible = false
layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="Panel/Joining"]
layout_mode = 2
text = "JOINING MATCH"
horizontal_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/Joining"]
layout_mode = 2
[node name="Label" type="Label" parent="Panel/Joining/HBoxContainer"]
layout_mode = 2
text = "HANDLE"
[node name="TextEdit" type="TextEdit" parent="Panel/Joining/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="HBoxContainer2" type="HBoxContainer" parent="Panel/Joining"]
layout_mode = 2
[node name="Label" type="Label" parent="Panel/Joining/HBoxContainer2"]
layout_mode = 2
text = "MATCH CODE"
[node name="TextEdit" type="TextEdit" parent="Panel/Joining/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 3
[node name="JoinButton" type="Button" parent="Panel/Joining"]
layout_mode = 2
text = "HOST"
[node name="BackButton" type="Button" parent="Panel/Joining"]
layout_mode = 2
text = "Back"
[connection signal="pressed" from="Panel/Menu/HostButton" to="." method="_on_host_game_button_pressed"]
[connection signal="pressed" from="Panel/Menu/JoinButton" to="." method="_on_join_game_button_pressed"]
[connection signal="pressed" from="Panel/Menu/BackButton" to="." method="_on_menu_back_button_pressed"]
[connection signal="pressed" from="Panel/Hosting/HostButton" to="." method="_on_start_hosting_button_pressed"]
[connection signal="pressed" from="Panel/Hosting/BackButton" to="." method="_on_hosting_back_button_pressed"]
[connection signal="pressed" from="Panel/Host Waiting/StartButton" to="." method="_on_start_game_button_pressed"]
[connection signal="pressed" from="Panel/Host Waiting/BackButton" to="." method="_on_waiting_back_button_pressed"]
[connection signal="pressed" from="Panel/Joining/JoinButton" to="." method="_on_join_button_pressed"]
[connection signal="pressed" from="Panel/Joining/BackButton" to="." method="_on_joining_back_button_pressed"]

View File

@@ -0,0 +1,68 @@
[gd_scene load_steps=9 format=3 uid="uid://ti65jukt8gvs"]
[ext_resource type="PackedScene" uid="uid://bgocskbofewsr" path="res://templates/HUD.tscn" id="1_q2h5d"]
[ext_resource type="Texture2D" uid="uid://bj07x13pkoevk" path="res://visuals/textures/tile.png" id="2_02mmr"]
[ext_resource type="Script" uid="uid://cymi1n4gavixy" path="res://scripts/level_camera.gd" id="3_qfwdi"]
[ext_resource type="Script" uid="uid://wpjuowslx60b" path="res://scripts/multiplayer_controller.gd" id="4_q2h5d"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gbhdq"]
albedo_texture = ExtResource("2_02mmr")
uv1_scale = Vector3(100, 100, 100)
texture_filter = 0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_y646j"]
albedo_color = Color(0.08468992, 0.08468992, 0.08468992, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lnbra"]
albedo_color = Color(0, 1, 1, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_6emce"]
size = Vector3(0.75, 2, 0.75)
[node name="Node3D" type="Node3D"]
[node name="CanvasLayer" type="CanvasLayer" parent="."]
layer = 1000
[node name="Control" parent="CanvasLayer" instance=ExtResource("1_q2h5d")]
[node name="CSGBox3D" type="CSGBox3D" parent="."]
size = Vector3(100, 1, 100)
material = SubResource("StandardMaterial3D_gbhdq")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.49999997, 0.86602545, 0, -0.86602545, 0.49999997, 0, 18.855, 9.603047)
projection = 1
size = 5.0
script = ExtResource("3_qfwdi")
[node name="Node3D" type="CharacterBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
script = ExtResource("4_q2h5d")
speed = 5.0
[node name="Body" type="CSGBox3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
size = Vector3(0.75, 2, 0.75)
material = SubResource("StandardMaterial3D_y646j")
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Node3D/Body"]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0.5, 0.556)
radius = 0.3
height = 0.1
material = SubResource("StandardMaterial3D_lnbra")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("BoxShape3D_6emce")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 18.508709, 0)
omni_range = 25.142
omni_attenuation = -0.165
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="."]
spawn_path = NodePath("../Players")
spawn_limit = 2
[node name="Players" type="Node3D" parent="."]

62
scenes/test_level.tscn Normal file
View File

@@ -0,0 +1,62 @@
[gd_scene load_steps=9 format=3 uid="uid://by6suwmds7xq2"]
[ext_resource type="PackedScene" uid="uid://bgocskbofewsr" path="res://templates/HUD.tscn" id="1_x4b8f"]
[ext_resource type="Texture2D" uid="uid://bj07x13pkoevk" path="res://visuals/textures/tile.png" id="2_tmr53"]
[ext_resource type="Script" uid="uid://cymi1n4gavixy" path="res://scripts/level_camera.gd" id="3_qcd3b"]
[ext_resource type="Script" uid="uid://bcs7ygh6s3l35" path="res://scripts/player.gd" id="4_88ety"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gbhdq"]
albedo_texture = ExtResource("2_tmr53")
uv1_scale = Vector3(100, 100, 100)
texture_filter = 0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_y646j"]
albedo_color = Color(0.08468992, 0.08468992, 0.08468992, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lnbra"]
albedo_color = Color(0, 1, 1, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_6emce"]
size = Vector3(0.75, 2, 0.75)
[node name="Node3D" type="Node3D"]
[node name="CanvasLayer" type="CanvasLayer" parent="."]
layer = 1000
[node name="Control" parent="CanvasLayer" instance=ExtResource("1_x4b8f")]
[node name="CSGBox3D" type="CSGBox3D" parent="."]
size = Vector3(100, 1, 100)
material = SubResource("StandardMaterial3D_gbhdq")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.49999997, 0.86602545, 0, -0.86602545, 0.49999997, 0, 18.855, 9.603047)
projection = 1
size = 5.0
script = ExtResource("3_qcd3b")
[node name="Node3D" type="CharacterBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
script = ExtResource("4_88ety")
speed = 5.0
[node name="Body" type="CSGBox3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
size = Vector3(0.75, 2, 0.75)
material = SubResource("StandardMaterial3D_y646j")
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Node3D/Body"]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0.5, 0.556)
radius = 0.3
height = 0.1
material = SubResource("StandardMaterial3D_lnbra")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("BoxShape3D_6emce")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 18.508709, 0)
omni_range = 25.142
omni_attenuation = -0.165

183
scenes/title_screen.tscn Normal file
View File

@@ -0,0 +1,183 @@
[gd_scene load_steps=11 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"]
[ext_resource type="Script" uid="uid://bnmklbse62lrf" path="res://scripts/static.gd" id="3_cs5ya"]
[ext_resource type="FontFile" uid="uid://c83fwpdo5bu8j" path="res://ASTERA v2.ttf" id="4_3yumr"]
[ext_resource type="AudioStream" uid="uid://bl08d5aj1f7nf" path="res://audio/music/15 - Opening.mp3" id="4_mykxm"]
[ext_resource type="AudioStream" uid="uid://kj25hej55ckw" path="res://audio/sounds/BUTTON Generic Metal Medium High Mechanics 02.wav" id="5_tklts"]
[ext_resource type="AudioStream" uid="uid://cmnibhyxpag0a" path="res://audio/sounds/BeepBeep_high.wav" id="6_u26n3"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tpml5"]
shader = ExtResource("2_3yumr")
shader_parameter/granularity = 0.0
shader_parameter/opacity_limit = 0.0
[sub_resource type="Gradient" id="Gradient_cs5ya"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_ig5kc"]
gradient = SubResource("Gradient_cs5ya")
width = 1
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_e54dn")
[node name="TextureRect" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_tpml5")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_ig5kc")
expand_mode = 1
script = ExtResource("3_cs5ya")
[node name="Label" type="RichTextLabel" parent="."]
layout_mode = 0
offset_left = 130.0
offset_top = 260.0
offset_right = 1791.0
offset_bottom = 678.0
theme_override_constants/line_separation = -450
theme_override_fonts/normal_font = ExtResource("4_3yumr")
theme_override_fonts/bold_font = ExtResource("4_3yumr")
theme_override_fonts/bold_italics_font = ExtResource("4_3yumr")
theme_override_font_sizes/bold_italics_font_size = 300
bbcode_enabled = true
text = "[b][i]TRAP
SHOOTER[/i][/b]"
[node name="Panel2" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -192.0
offset_top = -364.0
offset_right = 208.0
offset_bottom = -214.0
grow_horizontal = 2
grow_vertical = 0
[node name="START" type="Label" parent="Panel2"]
unique_name_in_owner = true
modulate = Color(0, 0, 1, 1)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 60
text = "PUSH START"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Menu" type="Control" parent="Panel2"]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="STORY" type="Label" parent="Panel2/Menu"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 80
text = "STORY"
horizontal_alignment = 1
vertical_alignment = 1
[node name="VS-COM" type="Label" parent="Panel2/Menu"]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 80
text = "VS COM"
horizontal_alignment = 1
vertical_alignment = 1
[node name="VS-MAN" type="Label" parent="Panel2/Menu"]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 80
text = "VS MAN"
horizontal_alignment = 1
vertical_alignment = 1
[node name="RECORD" type="Label" parent="Panel2/Menu"]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 80
text = "RECORD"
horizontal_alignment = 1
vertical_alignment = 1
[node name="OPTION" type="Label" parent="Panel2/Menu"]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 80
text = "OPTION"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Panel" type="Panel" parent="."]
visible = false
layout_mode = 0
offset_right = 1152.0
offset_bottom = 648.0
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("4_mykxm")
autoplay = true
[node name="SelectSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("5_tklts")
[node name="SwitchSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("6_u26n3")

4
scripts/autos/game.gd Normal file
View File

@@ -0,0 +1,4 @@
extends Node
var player : Player

View File

@@ -0,0 +1 @@
uid://cro6hr2qds783

View File

@@ -0,0 +1,30 @@
extends Node
const SERVER_PORT = 8080
const SERVER_IP = "127.0.0.1"
func become_host() -> void:
print("Starting host!")
var server_peer = ENetMultiplayerPeer.new()
server_peer.create_server(SERVER_PORT)
multiplayer.multiplayer_peer = server_peer
multiplayer.peer_connected.connect(_add_player_to_game)
multiplayer.peer_disconnected.connect(_remove_player_from_game)
func join_game() -> void:
print("Player 2 joining.")
var client_peer = ENetMultiplayerPeer.new()
client_peer.create_client(SERVER_IP, SERVER_PORT)
func _add_player_to_game(id : int) -> void:
print("Player %s joined the game!" % id)
func _remove_player_from_game(id : int) -> void:
print("Player %s left the game!" % id)

View File

@@ -0,0 +1 @@
uid://dhrl1x443cqt1

18
scripts/level_camera.gd Normal file
View File

@@ -0,0 +1,18 @@
extends Camera3D
var target
var offset : Vector3
func _enter_tree() -> void:
call_deferred("register_player")
func register_player() -> void:
target = Game.player
offset = global_position - target.global_position
func _process(delta: float) -> void:
if target:
global_position = target.global_position + offset

View File

@@ -0,0 +1 @@
uid://cymi1n4gavixy

View File

@@ -0,0 +1,16 @@
class_name MultiplayerPlayer extends Player
@export var player_id := 1 :
set(id):
player_id = id
func _enter_tree() -> void:
Game.player = self
func _physics_process(delta: float) -> void:
var dir = Input.get_vector("west", "east", "north", "south")
dir = Vector3(dir.x, 0, dir.y)
if dir.length_squared() > 0:
body.look_at(body.global_position - dir)
velocity = speed * dir
move_and_slide()

View File

@@ -0,0 +1 @@
uid://wpjuowslx60b

View File

@@ -0,0 +1,54 @@
extends Control
var host : bool
func _on_host_game_button_pressed() -> void:
%Menu.visible = false
%Hosting.visible = true
host = true
func _on_join_game_button_pressed() -> void:
%Menu.visible = false
%Joining.visible = true
host = false
func _on_menu_back_button_pressed() -> void:
Game.go_to_title_screen()
func _on_start_hosting_button_pressed() -> void:
#Validate entries
%Hosting.visible = false
#Set fields
%"Host Waiting".visible = true
func _on_hosting_back_button_pressed() -> void:
%Hosting.visible = false
%Menu.visible = true
func _on_start_game_button_pressed() -> void:
Game.start_vs_com()
func _on_waiting_back_button_pressed() -> void:
%"Host Waiting".visible = false
if host:
%Hosting.visible = true
else:
%Joining.visible = true
func _on_join_button_pressed() -> void:
#Check for valid game
#If found
%Joining.visible = false
%"Host Waiting".visible = true
func _on_joining_back_button_pressed() -> void:
%Joining.visible = false
%Menu.visible = true

View File

@@ -0,0 +1 @@
uid://dep7nr2nkdmga

15
scripts/player.gd Normal file
View File

@@ -0,0 +1,15 @@
class_name Player extends CharacterBody3D
@export var speed : float = 10
@onready var body = $Body
func _enter_tree() -> void:
Game.player = self
func _physics_process(delta: float) -> void:
var dir = Input.get_vector("west", "east", "north", "south")
dir = Vector3(dir.x, 0, dir.y)
if dir.length_squared() > 0:
body.look_at(body.global_position - dir)
velocity = speed * dir
move_and_slide()

1
scripts/player.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://bcs7ygh6s3l35

9
scripts/static.gd Normal file
View File

@@ -0,0 +1,9 @@
@tool
extends TextureRect
@export var tex : NoiseTexture2D
func _enter_tree() -> void:
pass
func _process(delta : float) -> void:
pass

1
scripts/static.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://bnmklbse62lrf

41
scripts/title_screen.gd Normal file
View File

@@ -0,0 +1,41 @@
extends Control
var opened : bool = false
var menu_choice : int = 0
@onready var menu_list : Array = [
%STORY,
%"VS-COM",
%"VS-MAN",
%RECORD,
%OPTION
]
func _process(delta: float) -> void:
if Input.is_action_just_pressed("ui_menu"):
opened = !opened
%START.visible = !opened
%Menu.visible = opened
%SelectSound.play()
if opened:
menu_choice = 0
switch_menu()
if opened:
if Input.is_action_just_pressed("ui_up"):
menu_choice -= 1
if menu_choice < 0:
menu_choice = len(menu_list) - 1
%SwitchSound.play()
switch_menu()
elif Input.is_action_just_pressed("ui_down"):
menu_choice += 1
if menu_choice >= len(menu_list):
menu_choice = 0
%SwitchSound.play()
switch_menu()
func switch_menu() -> void:
for child in %Menu.get_children():
child.visible = false
menu_list[menu_choice].visible = true

View File

@@ -0,0 +1 @@
uid://dhu2psbhh1rl8

128
templates/HUD.tscn Normal file
View File

@@ -0,0 +1,128 @@
[gd_scene load_steps=2 format=3 uid="uid://bgocskbofewsr"]
[ext_resource type="Texture2D" uid="uid://dri0a20l6kpbj" path="res://visuals/images/icon.svg" id="1_k5de2"]
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Control" type="Control" parent="."]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
grow_horizontal = 2
[node name="PanelContainer" type="PanelContainer" parent="Control"]
custom_minimum_size = Vector2(0, 200)
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
grow_horizontal = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Control/PanelContainer"]
layout_mode = 2
alignment = 1
[node name="Control" type="Control" parent="Control/PanelContainer/HBoxContainer"]
custom_minimum_size = Vector2(165, 0)
layout_mode = 2
[node name="VBoxContainer2" type="VBoxContainer" parent="Control/PanelContainer/HBoxContainer"]
layout_mode = 2
[node name="PanelContainer" type="PanelContainer" parent="Control/PanelContainer/HBoxContainer/VBoxContainer2"]
custom_minimum_size = Vector2(250, 100)
layout_mode = 2
[node name="PanelContainer2" type="PanelContainer" parent="Control/PanelContainer/HBoxContainer/VBoxContainer2"]
custom_minimum_size = Vector2(250, 100)
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="Control/PanelContainer/HBoxContainer"]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2
[node name="PanelContainer2" type="PanelContainer" parent="Control/PanelContainer/HBoxContainer/VBoxContainer"]
custom_minimum_size = Vector2(150, 100)
layout_mode = 2
[node name="PanelContainer3" type="PanelContainer" parent="Control/PanelContainer/HBoxContainer/VBoxContainer"]
custom_minimum_size = Vector2(150, 100)
layout_mode = 2
[node name="PanelContainer2" type="PanelContainer" parent="Control/PanelContainer/HBoxContainer"]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2
[node name="VBoxContainer3" type="VBoxContainer" parent="Control/PanelContainer/HBoxContainer"]
custom_minimum_size = Vector2(250, 0)
layout_mode = 2
[node name="PanelContainer3" type="PanelContainer" parent="Control/PanelContainer/HBoxContainer/VBoxContainer3"]
custom_minimum_size = Vector2(250, 130)
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Control/PanelContainer/HBoxContainer/VBoxContainer3"]
custom_minimum_size = Vector2(0, 70)
layout_mode = 2
[node name="PanelContainer" type="PanelContainer" parent="Control/PanelContainer/HBoxContainer/VBoxContainer3/HBoxContainer"]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="Control/PanelContainer/HBoxContainer/VBoxContainer3/HBoxContainer"]
custom_minimum_size = Vector2(95, 0)
layout_mode = 2
[node name="Control2" type="Control" parent="Control/PanelContainer/HBoxContainer"]
custom_minimum_size = Vector2(165, 0)
layout_mode = 2
[node name="Control2" type="Control" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -200.0
offset_right = 200.0
grow_vertical = 0
[node name="TextureRect" type="TextureRect" parent="Control2"]
layout_mode = 0
offset_left = 4.0
offset_top = 71.0
offset_right = 68.0
offset_bottom = 135.0
texture = ExtResource("1_k5de2")
expand_mode = 1
[node name="TextureRect2" type="TextureRect" parent="Control2"]
layout_mode = 0
offset_left = 68.0
offset_top = 40.0
offset_right = 132.0
offset_bottom = 104.0
texture = ExtResource("1_k5de2")
expand_mode = 1
[node name="TextureRect3" type="TextureRect" parent="Control2"]
layout_mode = 0
offset_left = 132.0
offset_top = 71.0
offset_right = 196.0
offset_bottom = 135.0
texture = ExtResource("1_k5de2")
expand_mode = 1
[node name="TextureRect4" type="TextureRect" parent="Control2"]
layout_mode = 0
offset_left = 68.0
offset_top = 103.0
offset_right = 132.0
offset_bottom = 167.0
texture = ExtResource("1_k5de2")
expand_mode = 1

1
visuals/images/icon.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>

After

Width:  |  Height:  |  Size: 995 B

View File

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dri0a20l6kpbj"
path="res://.godot/imported/icon.svg-c4c27e6ee27449a429199138b5f0d974.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icon.svg"
dest_files=["res://.godot/imported/icon.svg-c4c27e6ee27449a429199138b5f0d974.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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -0,0 +1,35 @@
shader_type canvas_item;
uniform sampler2D main_texture;
uniform float granularity;
uniform float opacity_limit;
float random (vec2 uv) {
return fract(sin(dot(uv.xy,
vec2(12.9898,78.233))) * 43758.5453123);
}
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
vec2 uv = UV;
uv.y = TIME * uv.y + TIME * 0.5;
uv.x = 2.0 * TIME * uv.x + TIME * 1.0;
float val = random(uv);
float op = random(-uv) / val;
float alpha = 1.0;
if(op < opacity_limit){
alpha = 0.0;
}
vec4 color = vec4(val, val, val, alpha);
COLOR = color;
}
//void light() {
// // Called for every pixel for every light affecting the CanvasItem.
// // Uncomment to replace the default light processing function with this one.
//}

View File

@@ -0,0 +1 @@
uid://b2g6yddun2l6e

View File

@@ -0,0 +1,17 @@
[gd_resource type="NoiseTexture2D" load_steps=2 format=3 uid="uid://bsxod2wcjw5ik"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_qng1f"]
noise_type = 3
seed = -2140753962
frequency = 0.4595
fractal_type = 0
fractal_octaves = 1
fractal_lacunarity = 2.335
fractal_gain = -0.12
domain_warp_amplitude = 30.41
[resource]
width = 1920
height = 1080
noise = SubResource("FastNoiseLite_qng1f")
normalize = false

BIN
visuals/textures/tile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

View File

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bj07x13pkoevk"
path.s3tc="res://.godot/imported/tile.png-82ac121192f8645b1b55058345db6f74.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://visuals/textures/tile.png"
dest_files=["res://.godot/imported/tile.png-82ac121192f8645b1b55058345db6f74.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