added some sound triggers and holes in the map
This commit is contained in:
parent
046c4f5afb
commit
e1a867d2a9
Binary file not shown.
Before Width: | Height: | Size: 2.6 KiB |
@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ctjktwiq2fcjm"
|
||||
path="res://.godot/imported/gun.png-6adaeb1547ed5ef4c0cdeaf82c51750f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Textures/gun.png"
|
||||
dest_files=["res://.godot/imported/gun.png-6adaeb1547ed5ef4c0cdeaf82c51750f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
@ -1,9 +1,16 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bbfm4i4xlkwdr"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bbfm4i4xlkwdr"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_uadu5"]
|
||||
[ext_resource type="Resource" uid="uid://bdmsiw45xxhiv" path="res://PCs/Universal/ClassCards/Assault/tower_stats.tres" id="2_gg1gn"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Assault/tower_assault.gd" id="2_olbck"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://oxjhqfwlcx5l" path="res://PCs/Universal/ClassCards/Assault/assaultmod.res" id="4_1d5pl"]
|
||||
[ext_resource type="AudioStream" uid="uid://chrf1dcq2ujw0" path="res://PCs/Universal/ClassCards/Assault/shot1.wav" id="5_3eokp"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_dagyn"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_3eokp")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="AssaultTower" instance=ExtResource("1_uadu5")]
|
||||
script = ExtResource("2_olbck")
|
||||
@ -15,3 +22,6 @@ visible = false
|
||||
[node name="Yaw" parent="." index="2"]
|
||||
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0.910336, 0)
|
||||
mesh = ExtResource("4_1d5pl")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_dagyn")
|
||||
|
@ -1,15 +1,25 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://2eehfcrsednw"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://2eehfcrsednw"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://difwo7wlyqr3h" path="res://Scenes/Weapons/hitscan_weapon.tscn" id="1_wkxf7"]
|
||||
[ext_resource type="Resource" uid="uid://smctw4ogm4rx" path="res://PCs/Universal/ClassCards/Assault/weapon_stats.tres" id="2_fnp5x"]
|
||||
[ext_resource type="Texture2D" uid="uid://celay30i4soud" path="res://PCs/Universal/ClassCards/Assault/g_assault.png" id="3_kuj4t"]
|
||||
[ext_resource type="AudioStream" uid="uid://chrf1dcq2ujw0" path="res://PCs/Universal/ClassCards/Assault/shot1.wav" id="4_gdaci"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_604rb"]
|
||||
atlas = ExtResource("3_kuj4t")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_rhtcf"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("4_gdaci")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="HitscanWeapon" instance=ExtResource("1_wkxf7")]
|
||||
stats = ExtResource("2_fnp5x")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_604rb")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="5"]
|
||||
stream = SubResource("AudioStreamRandomizer_rhtcf")
|
||||
|
BIN
PCs/Universal/ClassCards/Blowdart/shot1.wav
Normal file
BIN
PCs/Universal/ClassCards/Blowdart/shot1.wav
Normal file
Binary file not shown.
24
PCs/Universal/ClassCards/Blowdart/shot1.wav.import
Normal file
24
PCs/Universal/ClassCards/Blowdart/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cu654fn5nke3n"
|
||||
path="res://.godot/imported/shot1.wav-78e06a311d17e9a99b5460b8cf398081.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Universal/ClassCards/Blowdart/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-78e06a311d17e9a99b5460b8cf398081.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=0
|
@ -1,10 +1,17 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://cq5q6c28pwi47"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://cq5q6c28pwi47"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dxwtlvv632ae8" path="res://Scenes/Towers/status_applying_tower.tscn" id="1_lnpfa"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Blowdart/tower_blowdart.gd" id="2_s3qd0"]
|
||||
[ext_resource type="Resource" uid="uid://cbskijhnnj3kw" path="res://Resources/StatusEffects/poisoned.tres" id="3_ix50y"]
|
||||
[ext_resource type="Resource" uid="uid://cfbap4o68urti" path="res://PCs/Universal/ClassCards/Blowdart/tower_stats.tres" id="4_1w7pa"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://yxho5jipkwi2" path="res://PCs/Universal/ClassCards/Blowdart/blowdart.res" id="5_2kqqw"]
|
||||
[ext_resource type="AudioStream" uid="uid://cu654fn5nke3n" path="res://PCs/Universal/ClassCards/Blowdart/shot1.wav" id="6_t1f1q"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_kor5l"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_t1f1q")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="BlowdartTower" instance=ExtResource("1_lnpfa")]
|
||||
script = ExtResource("2_s3qd0")
|
||||
@ -17,3 +24,6 @@ visible = false
|
||||
[node name="Yaw" parent="." index="2"]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0.614838, 0)
|
||||
mesh = ExtResource("5_2kqqw")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_kor5l")
|
||||
|
@ -1,15 +1,22 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://cy05ssd52exf0"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://cy05ssd52exf0"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://nrdexcyatika" path="res://Scenes/Weapons/status_applying_weapon.tscn" id="1_t3gfv"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Blowdart/weapon_blowdart.gd" id="2_g1m1f"]
|
||||
[ext_resource type="Resource" uid="uid://cbskijhnnj3kw" path="res://Resources/StatusEffects/poisoned.tres" id="3_wculg"]
|
||||
[ext_resource type="Resource" uid="uid://c6e50linnk2i7" path="res://PCs/Universal/ClassCards/Blowdart/weapon_stats.tres" id="4_dwqec"]
|
||||
[ext_resource type="Texture2D" uid="uid://dnlplq8duves3" path="res://PCs/Universal/ClassCards/Blowdart/blowdart.png" id="5_rvf06"]
|
||||
[ext_resource type="AudioStream" uid="uid://cu654fn5nke3n" path="res://PCs/Universal/ClassCards/Blowdart/shot1.wav" id="6_bfygd"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_85web"]
|
||||
atlas = ExtResource("5_rvf06")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_5ni0y"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_bfygd")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="BlowdartWeapon" instance=ExtResource("1_t3gfv")]
|
||||
script = ExtResource("2_g1m1f")
|
||||
status_stats = ExtResource("3_wculg")
|
||||
@ -17,3 +24,6 @@ stats = ExtResource("4_dwqec")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_85web")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="5"]
|
||||
stream = SubResource("AudioStreamRandomizer_5ni0y")
|
||||
|
@ -1,12 +1,19 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://c8oq5unisjqne"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://c8oq5unisjqne"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://7f4dfphgiswr" path="res://Scenes/Projectiles/explosive_projectile.tscn" id="1_kf2wi"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/bomb_projectile.gd" id="2_qvo4u"]
|
||||
[ext_resource type="Texture2D" uid="uid://b54d5dc4jmlau" path="res://PCs/Universal/ClassCards/BombLauncher/bomb.png" id="3_ilhep"]
|
||||
[ext_resource type="AudioStream" uid="uid://qeav4v23p0dd" path="res://PCs/Universal/ClassCards/BombLauncher/shot1.wav" id="4_uh8y6"]
|
||||
|
||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_bbpul"]
|
||||
bounce = 0.6
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_sy5qq"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("4_uh8y6")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Bomb" instance=ExtResource("1_kf2wi")]
|
||||
physics_material_override = SubResource("PhysicsMaterial_bbpul")
|
||||
gravity_scale = 1.0
|
||||
@ -15,3 +22,6 @@ script = ExtResource("2_qvo4u")
|
||||
[node name="Sprite3D" parent="." index="1"]
|
||||
pixel_size = 0.015
|
||||
texture = ExtResource("3_ilhep")
|
||||
|
||||
[node name="AudioStreamPlayer" parent="." index="2"]
|
||||
stream = SubResource("AudioStreamRandomizer_sy5qq")
|
||||
|
BIN
PCs/Universal/ClassCards/BombLauncher/shot1.wav
Normal file
BIN
PCs/Universal/ClassCards/BombLauncher/shot1.wav
Normal file
Binary file not shown.
24
PCs/Universal/ClassCards/BombLauncher/shot1.wav.import
Normal file
24
PCs/Universal/ClassCards/BombLauncher/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://qeav4v23p0dd"
|
||||
path="res://.godot/imported/shot1.wav-fa29c3f3a3731a42845971d7b6bc801d.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Universal/ClassCards/BombLauncher/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-fa29c3f3a3731a42845971d7b6bc801d.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=0
|
@ -1,10 +1,17 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://d2cch7qrwocg8"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://d2cch7qrwocg8"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_r8hbo"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.gd" id="2_vlaa6"]
|
||||
[ext_resource type="PackedScene" uid="uid://c8oq5unisjqne" path="res://PCs/Universal/ClassCards/BombLauncher/bomb_projectile.tscn" id="3_562if"]
|
||||
[ext_resource type="Resource" uid="uid://8eaecilvan23" path="res://PCs/Universal/ClassCards/BombLauncher/tower_stats.tres" id="4_xgwj1"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://cbuu5w43qins8" path="res://PCs/Universal/ClassCards/BombLauncher/bombamodel.res" id="5_yixga"]
|
||||
[ext_resource type="AudioStream" uid="uid://qeav4v23p0dd" path="res://PCs/Universal/ClassCards/BombLauncher/shot1.wav" id="6_mc58j"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_svy8m"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_mc58j")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="BombLauncherTower" instance=ExtResource("1_r8hbo")]
|
||||
script = ExtResource("2_vlaa6")
|
||||
@ -17,3 +24,6 @@ visible = false
|
||||
[node name="Yaw" parent="." index="2"]
|
||||
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0.870628, 0)
|
||||
mesh = ExtResource("5_yixga")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_svy8m")
|
||||
|
@ -1,15 +1,22 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://c3fqlkytyc62u"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://c3fqlkytyc62u"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bqdllitxbbpyp" path="res://Scenes/Weapons/projectile_weapon.tscn" id="1_gbycb"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/weapon_bomb_launcher.gd" id="2_g5ihb"]
|
||||
[ext_resource type="Resource" uid="uid://co6eorobj1xuu" path="res://PCs/Universal/ClassCards/BombLauncher/weapon_stats.tres" id="3_73ol1"]
|
||||
[ext_resource type="PackedScene" uid="uid://c8oq5unisjqne" path="res://PCs/Universal/ClassCards/BombLauncher/bomb_projectile.tscn" id="3_jxt6m"]
|
||||
[ext_resource type="Texture2D" uid="uid://3qcdx7n440sc" path="res://PCs/Universal/ClassCards/BombLauncher/grenade_launcher.png" id="5_iyrt8"]
|
||||
[ext_resource type="AudioStream" uid="uid://qeav4v23p0dd" path="res://PCs/Universal/ClassCards/BombLauncher/shot1.wav" id="6_rg62n"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_4fobv"]
|
||||
atlas = ExtResource("5_iyrt8")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_l37cm"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_rg62n")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="BombLauncherWeapon" instance=ExtResource("1_gbycb")]
|
||||
script = ExtResource("2_g5ihb")
|
||||
projectile_scene = ExtResource("3_jxt6m")
|
||||
@ -17,3 +24,6 @@ stats = ExtResource("3_73ol1")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_4fobv")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="3"]
|
||||
stream = SubResource("AudioStreamRandomizer_l37cm")
|
||||
|
@ -1,9 +1,15 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://ddpixntjsbpqp"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://ddpixntjsbpqp"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://beq6rn0babncg" path="res://Scenes/Projectiles/status_applying_projectile.tscn" id="1_a8cjq"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Fireball/fireball_projectile.gd" id="2_rin44"]
|
||||
[ext_resource type="Resource" uid="uid://dbanx8taicddm" path="res://Resources/StatusEffects/on_fire.tres" id="3_vb4ff"]
|
||||
[ext_resource type="Texture2D" uid="uid://baarbcx0nxi7w" path="res://PCs/Universal/ClassCards/Fireball/fireball_projectile.png" id="4_uua74"]
|
||||
[ext_resource type="AudioStream" uid="uid://cxiluyamsxson" path="res://PCs/Universal/ClassCards/Fireball/shot1.wav" id="5_k3tme"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_bxaub"]
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_k3tme")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Fireball" instance=ExtResource("1_a8cjq")]
|
||||
script = ExtResource("2_rin44")
|
||||
@ -11,3 +17,6 @@ status_stats = ExtResource("3_vb4ff")
|
||||
|
||||
[node name="Sprite3D" parent="." index="1"]
|
||||
texture = ExtResource("4_uua74")
|
||||
|
||||
[node name="AudioStreamPlayer" parent="." index="2"]
|
||||
stream = SubResource("AudioStreamRandomizer_bxaub")
|
||||
|
BIN
PCs/Universal/ClassCards/Fireball/shot1.wav
Normal file
BIN
PCs/Universal/ClassCards/Fireball/shot1.wav
Normal file
Binary file not shown.
24
PCs/Universal/ClassCards/Fireball/shot1.wav.import
Normal file
24
PCs/Universal/ClassCards/Fireball/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cxiluyamsxson"
|
||||
path="res://.godot/imported/shot1.wav-a6c3d67021884f782a6abd99d0e98ec9.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Universal/ClassCards/Fireball/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-a6c3d67021884f782a6abd99d0e98ec9.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=0
|
@ -1,10 +1,17 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://dwwgvgn0ds8tk"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://dwwgvgn0ds8tk"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_rkdu6"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Fireball/tower_fireball.gd" id="2_td8dh"]
|
||||
[ext_resource type="PackedScene" uid="uid://ddpixntjsbpqp" path="res://PCs/Universal/ClassCards/Fireball/fireball_projectile.tscn" id="3_1akv8"]
|
||||
[ext_resource type="Resource" uid="uid://dnvqghpwyuw84" path="res://PCs/Universal/ClassCards/Fireball/tower_stats.tres" id="4_uu77s"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://d34yiqnnaie8r" path="res://PCs/Universal/ClassCards/Fireball/magetowermesh.res" id="5_7rkfh"]
|
||||
[ext_resource type="AudioStream" uid="uid://cxiluyamsxson" path="res://PCs/Universal/ClassCards/Fireball/shot1.wav" id="6_201kn"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_gwg27"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_201kn")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="FireballTower" instance=ExtResource("1_rkdu6")]
|
||||
script = ExtResource("2_td8dh")
|
||||
@ -17,3 +24,6 @@ mesh = ExtResource("5_7rkfh")
|
||||
|
||||
[node name="Yaw" parent="." index="2"]
|
||||
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 1.74532, 0)
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_gwg27")
|
||||
|
@ -1,15 +1,22 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://dnwjfb4fexr0o"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://dnwjfb4fexr0o"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bqdllitxbbpyp" path="res://Scenes/Weapons/projectile_weapon.tscn" id="1_7k6fb"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Fireball/weapon_fireball.gd" id="2_nprco"]
|
||||
[ext_resource type="PackedScene" uid="uid://ddpixntjsbpqp" path="res://PCs/Universal/ClassCards/Fireball/fireball_projectile.tscn" id="3_2j1mm"]
|
||||
[ext_resource type="Resource" uid="uid://dhwhwicgpw7yh" path="res://PCs/Universal/ClassCards/Fireball/weapon_stats.tres" id="4_rqdnu"]
|
||||
[ext_resource type="Texture2D" uid="uid://mwgpnnm3g3re" path="res://PCs/Universal/ClassCards/Fireball/fireball.png" id="5_r42ic"]
|
||||
[ext_resource type="AudioStream" uid="uid://cxiluyamsxson" path="res://PCs/Universal/ClassCards/Fireball/shot1.wav" id="6_o5rjg"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hfmm6"]
|
||||
atlas = ExtResource("5_r42ic")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_6xq8y"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_o5rjg")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="FireballWeapon" instance=ExtResource("1_7k6fb")]
|
||||
script = ExtResource("2_nprco")
|
||||
projectile_scene = ExtResource("3_2j1mm")
|
||||
@ -17,3 +24,6 @@ stats = ExtResource("4_rqdnu")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_hfmm6")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="3"]
|
||||
stream = SubResource("AudioStreamRandomizer_6xq8y")
|
||||
|
BIN
PCs/Universal/ClassCards/Gatling/shot1.wav
Normal file
BIN
PCs/Universal/ClassCards/Gatling/shot1.wav
Normal file
Binary file not shown.
24
PCs/Universal/ClassCards/Gatling/shot1.wav.import
Normal file
24
PCs/Universal/ClassCards/Gatling/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://1j0rquv4awjs"
|
||||
path="res://.godot/imported/shot1.wav-15ad34c3cdcc73672886a504b191d3b6.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Universal/ClassCards/Gatling/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-15ad34c3cdcc73672886a504b191d3b6.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=0
|
@ -1,9 +1,16 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bjuc3x7u3f271"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bjuc3x7u3f271"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_su74p"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Gatling/tower_gatling.gd" id="2_ipjp1"]
|
||||
[ext_resource type="Resource" uid="uid://nxl5wabgl36t" path="res://PCs/Universal/ClassCards/Gatling/tower_stats.tres" id="3_oicqw"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://dler7wcqj0bm6" path="res://PCs/Universal/ClassCards/Gatling/gattlemesh.res" id="4_wihc0"]
|
||||
[ext_resource type="AudioStream" uid="uid://1j0rquv4awjs" path="res://PCs/Universal/ClassCards/Gatling/shot1.wav" id="5_vv714"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_wpani"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_vv714")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="GatlingTower" instance=ExtResource("1_su74p")]
|
||||
script = ExtResource("2_ipjp1")
|
||||
@ -15,3 +22,6 @@ visible = false
|
||||
[node name="Yaw" parent="." index="2"]
|
||||
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0.426474, 0)
|
||||
mesh = ExtResource("4_wihc0")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_wpani")
|
||||
|
@ -1,17 +1,27 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://dkxi1ssoa44jn"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://dkxi1ssoa44jn"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://difwo7wlyqr3h" path="res://Scenes/Weapons/hitscan_weapon.tscn" id="1_fwlu5"]
|
||||
[ext_resource type="Resource" uid="uid://cj2x1jvo8l4ot" path="res://PCs/Universal/ClassCards/Gatling/weapon_stats.tres" id="2_fnyjd"]
|
||||
[ext_resource type="Texture2D" uid="uid://bjh6e8t8br6rq" path="res://PCs/Universal/ClassCards/Gatling/gatling.png" id="2_rv8ps"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Gatling/weapon_gatling.gd" id="2_wm4al"]
|
||||
[ext_resource type="AudioStream" uid="uid://1j0rquv4awjs" path="res://PCs/Universal/ClassCards/Gatling/shot1.wav" id="5_gelfi"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_0im1y"]
|
||||
atlas = ExtResource("2_rv8ps")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_778e1"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_gelfi")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="WeaponGatling" instance=ExtResource("1_fwlu5")]
|
||||
script = ExtResource("2_wm4al")
|
||||
stats = ExtResource("2_fnyjd")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_0im1y")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="5"]
|
||||
stream = SubResource("AudioStreamRandomizer_778e1")
|
||||
|
BIN
PCs/Universal/ClassCards/GlueLauncher/shot1.wav
Normal file
BIN
PCs/Universal/ClassCards/GlueLauncher/shot1.wav
Normal file
Binary file not shown.
24
PCs/Universal/ClassCards/GlueLauncher/shot1.wav.import
Normal file
24
PCs/Universal/ClassCards/GlueLauncher/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://v3j5lw827y85"
|
||||
path="res://.godot/imported/shot1.wav-db076f5c083450b42f0cdc587938c661.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Universal/ClassCards/GlueLauncher/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-db076f5c083450b42f0cdc587938c661.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=0
|
@ -1,10 +1,17 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://bb44pintbwdcf"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://bb44pintbwdcf"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dxwtlvv632ae8" path="res://Scenes/Towers/status_applying_tower.tscn" id="1_r1dvg"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.gd" id="2_ot8fu"]
|
||||
[ext_resource type="Resource" uid="uid://d0643gfp52x3s" path="res://Resources/StatusEffects/sticky.tres" id="3_ibb53"]
|
||||
[ext_resource type="Resource" uid="uid://bvkwgmbxje0dp" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres" id="4_etcd4"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://cehyrhbd7pu83" path="res://PCs/Universal/ClassCards/GlueLauncher/glue_launcher_model.res" id="5_dsftx"]
|
||||
[ext_resource type="AudioStream" uid="uid://v3j5lw827y85" path="res://PCs/Universal/ClassCards/GlueLauncher/shot1.wav" id="6_lntow"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_r4ak7"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_lntow")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="GlueLauncherTower" instance=ExtResource("1_r1dvg")]
|
||||
script = ExtResource("2_ot8fu")
|
||||
@ -17,3 +24,6 @@ visible = false
|
||||
[node name="Yaw" parent="." index="2"]
|
||||
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0.484804, 0)
|
||||
mesh = ExtResource("5_dsftx")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_r4ak7")
|
||||
|
@ -1,15 +1,22 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://takm6diuy71m"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://takm6diuy71m"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://nrdexcyatika" path="res://Scenes/Weapons/status_applying_weapon.tscn" id="1_7v0k2"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/GlueLauncher/weapon_glue_launcher.gd" id="2_12ex2"]
|
||||
[ext_resource type="Resource" uid="uid://d0643gfp52x3s" path="res://Resources/StatusEffects/sticky.tres" id="3_xtk6n"]
|
||||
[ext_resource type="Resource" uid="uid://boj1ho5x0sxtq" path="res://PCs/Universal/ClassCards/GlueLauncher/weapon_stats.tres" id="4_c3ve8"]
|
||||
[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://PCs/Universal/ClassCards/GlueLauncher/glue_gun.png" id="5_obawu"]
|
||||
[ext_resource type="AudioStream" uid="uid://v3j5lw827y85" path="res://PCs/Universal/ClassCards/GlueLauncher/shot1.wav" id="6_6qk7c"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ehcsl"]
|
||||
atlas = ExtResource("5_obawu")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_cc15t"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_6qk7c")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="GlueLauncherWeapon" instance=ExtResource("1_7v0k2")]
|
||||
script = ExtResource("2_12ex2")
|
||||
status_stats = ExtResource("3_xtk6n")
|
||||
@ -17,3 +24,6 @@ stats = ExtResource("4_c3ve8")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_ehcsl")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="5"]
|
||||
stream = SubResource("AudioStreamRandomizer_cc15t")
|
||||
|
BIN
PCs/Universal/ClassCards/Icicle/shot1.wav
Normal file
BIN
PCs/Universal/ClassCards/Icicle/shot1.wav
Normal file
Binary file not shown.
24
PCs/Universal/ClassCards/Icicle/shot1.wav.import
Normal file
24
PCs/Universal/ClassCards/Icicle/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dgqmtmty7ekmc"
|
||||
path="res://.godot/imported/shot1.wav-d09921580ed339ffa76c05931456a288.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Universal/ClassCards/Icicle/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-d09921580ed339ffa76c05931456a288.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=0
|
@ -1,10 +1,17 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://miawrarbb1up"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://miawrarbb1up"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_d6g88"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Icicle/tower_icicle.gd" id="2_qcpgh"]
|
||||
[ext_resource type="PackedScene" uid="uid://dyurjxotdkf1u" path="res://PCs/Universal/ClassCards/Icicle/icicle_projectile.tscn" id="3_o4uqf"]
|
||||
[ext_resource type="Resource" uid="uid://d34bfj5togyyt" path="res://PCs/Universal/ClassCards/Icicle/tower_stats.tres" id="4_3il5a"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://d34yiqnnaie8r" path="res://PCs/Universal/ClassCards/Fireball/magetowermesh.res" id="5_soa3a"]
|
||||
[ext_resource type="AudioStream" uid="uid://dgqmtmty7ekmc" path="res://PCs/Universal/ClassCards/Icicle/shot1.wav" id="6_ce8qo"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_wmia4"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_ce8qo")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="IcicleTower" instance=ExtResource("1_d6g88")]
|
||||
script = ExtResource("2_qcpgh")
|
||||
@ -17,3 +24,6 @@ mesh = ExtResource("5_soa3a")
|
||||
|
||||
[node name="Yaw" parent="." index="2"]
|
||||
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 1.745, 0)
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_wmia4")
|
||||
|
@ -1,15 +1,22 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://v3iuf4lt2iff"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://v3iuf4lt2iff"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bqdllitxbbpyp" path="res://Scenes/Weapons/projectile_weapon.tscn" id="1_oi7x1"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Icicle/weapon_icicle.gd" id="2_6wbx0"]
|
||||
[ext_resource type="PackedScene" uid="uid://dyurjxotdkf1u" path="res://PCs/Universal/ClassCards/Icicle/icicle_projectile.tscn" id="3_cwl2u"]
|
||||
[ext_resource type="Resource" uid="uid://ckjmym1ofww4" path="res://PCs/Universal/ClassCards/Icicle/weapon_stats.tres" id="4_r8ss5"]
|
||||
[ext_resource type="Texture2D" uid="uid://mqo5qcghfit8" path="res://PCs/Universal/ClassCards/Icicle/icicle.png" id="5_iremk"]
|
||||
[ext_resource type="AudioStream" uid="uid://dgqmtmty7ekmc" path="res://PCs/Universal/ClassCards/Icicle/shot1.wav" id="6_ilpsp"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7uf3s"]
|
||||
atlas = ExtResource("5_iremk")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_1vtjq"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_ilpsp")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="IcicleWeapon" instance=ExtResource("1_oi7x1")]
|
||||
script = ExtResource("2_6wbx0")
|
||||
projectile_scene = ExtResource("3_cwl2u")
|
||||
@ -17,3 +24,6 @@ stats = ExtResource("4_r8ss5")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_7uf3s")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="3"]
|
||||
stream = SubResource("AudioStreamRandomizer_1vtjq")
|
||||
|
@ -1,8 +1,15 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://p2vwo8ivben6"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://p2vwo8ivben6"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://di2wwvkv4wov1" path="res://Scenes/Projectiles/homing_projectile.tscn" id="1_fnn4i"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket_projectile.gd" id="2_86up0"]
|
||||
[ext_resource type="Texture2D" uid="uid://bode8mfmr3r1h" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket.png" id="3_aonkx"]
|
||||
[ext_resource type="AudioStream" uid="uid://n0w2kj5j2x4e" path="res://PCs/Universal/ClassCards/RocketLauncher/shot1.wav" id="4_i5kff"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_4rf40"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("4_i5kff")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Rocket" instance=ExtResource("1_fnn4i")]
|
||||
script = ExtResource("2_86up0")
|
||||
@ -10,3 +17,6 @@ script = ExtResource("2_86up0")
|
||||
[node name="Sprite3D" parent="." index="1"]
|
||||
pixel_size = 0.013
|
||||
texture = ExtResource("3_aonkx")
|
||||
|
||||
[node name="AudioStreamPlayer" parent="." index="2"]
|
||||
stream = SubResource("AudioStreamRandomizer_4rf40")
|
||||
|
BIN
PCs/Universal/ClassCards/RocketLauncher/shot1.wav
Normal file
BIN
PCs/Universal/ClassCards/RocketLauncher/shot1.wav
Normal file
Binary file not shown.
24
PCs/Universal/ClassCards/RocketLauncher/shot1.wav.import
Normal file
24
PCs/Universal/ClassCards/RocketLauncher/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://n0w2kj5j2x4e"
|
||||
path="res://.godot/imported/shot1.wav-18762deaf24e973b86a8e08bec34699a.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Universal/ClassCards/RocketLauncher/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-18762deaf24e973b86a8e08bec34699a.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=0
|
@ -1,9 +1,16 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://b3q0f6w30nwsh"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://b3q0f6w30nwsh"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_su4lx"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/RocketLauncher/tower_rocket_launcher.gd" id="2_33124"]
|
||||
[ext_resource type="PackedScene" uid="uid://p2vwo8ivben6" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket_projectile.tscn" id="3_8kvhb"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://dltxsh8ppubj3" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket_launcher_model.res" id="4_1rycx"]
|
||||
[ext_resource type="AudioStream" uid="uid://n0w2kj5j2x4e" path="res://PCs/Universal/ClassCards/RocketLauncher/shot1.wav" id="5_nd3i8"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_7k8gw"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_nd3i8")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="RocketLauncherTower" instance=ExtResource("1_su4lx")]
|
||||
script = ExtResource("2_33124")
|
||||
@ -15,3 +22,6 @@ visible = false
|
||||
[node name="Yaw" parent="." index="2"]
|
||||
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0.667653, 0)
|
||||
mesh = ExtResource("4_1rycx")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_7k8gw")
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://bdp7icdejayvr"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://bdp7icdejayvr"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bqdllitxbbpyp" path="res://Scenes/Weapons/projectile_weapon.tscn" id="1_gxaua"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/RocketLauncher/weapon_rocket_launcher.gd" id="2_8x1tf"]
|
||||
@ -7,6 +7,7 @@
|
||||
[ext_resource type="Resource" uid="uid://d2yo07m2mp2mp" path="res://PCs/Universal/ClassCards/RocketLauncher/weapon_stats.tres" id="3_i1hxj"]
|
||||
[ext_resource type="Texture2D" uid="uid://by1y15lm0bppe" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket_launcher.png" id="4_iygkf"]
|
||||
[ext_resource type="Texture2D" uid="uid://cc2umukpibmx1" path="res://PCs/Universal/ClassCards/RocketLauncher/target_list.png" id="6_jlv88"]
|
||||
[ext_resource type="AudioStream" uid="uid://n0w2kj5j2x4e" path="res://PCs/Universal/ClassCards/RocketLauncher/shot1.wav" id="8_genbv"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_f4p4w"]
|
||||
atlas = ExtResource("4_iygkf")
|
||||
@ -16,6 +17,12 @@ region = Rect2(0, 0, 64, 64)
|
||||
atlas = ExtResource("6_jlv88")
|
||||
region = Rect2(0, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_5w2i3"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("8_genbv")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="RocketLauncher" node_paths=PackedStringArray("targeting_raycast", "targeting_ui_rect") instance=ExtResource("1_gxaua")]
|
||||
script = ExtResource("2_8x1tf")
|
||||
target_icon_scene = ExtResource("3_2x5va")
|
||||
@ -44,3 +51,6 @@ offset_bottom = 20.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_ewxon")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="5"]
|
||||
stream = SubResource("AudioStreamRandomizer_5w2i3")
|
||||
|
BIN
PCs/Universal/ClassCards/Sniper/shot1.wav
Normal file
BIN
PCs/Universal/ClassCards/Sniper/shot1.wav
Normal file
Binary file not shown.
24
PCs/Universal/ClassCards/Sniper/shot1.wav.import
Normal file
24
PCs/Universal/ClassCards/Sniper/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bixe14jkki8be"
|
||||
path="res://.godot/imported/shot1.wav-13562b9b3eaf17be1db6ad31e447b748.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Universal/ClassCards/Sniper/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-13562b9b3eaf17be1db6ad31e447b748.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=0
|
@ -1,9 +1,16 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bt4qbc5lp4nhr"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bt4qbc5lp4nhr"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_x1nem"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Sniper/tower_sniper.gd" id="2_v5fr7"]
|
||||
[ext_resource type="Resource" uid="uid://eb0by6ba1d43" path="res://PCs/Universal/ClassCards/Sniper/tower_stats.tres" id="3_a0vis"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://bu35or5yc5j4c" path="res://PCs/Universal/ClassCards/Sniper/snipermodel.res" id="4_156p4"]
|
||||
[ext_resource type="AudioStream" uid="uid://bixe14jkki8be" path="res://PCs/Universal/ClassCards/Sniper/shot1.wav" id="5_esi1l"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_johsd"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_esi1l")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="HitscanTower" instance=ExtResource("1_x1nem")]
|
||||
script = ExtResource("2_v5fr7")
|
||||
@ -15,3 +22,6 @@ visible = false
|
||||
[node name="Yaw" parent="." index="2"]
|
||||
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0.765984, 0)
|
||||
mesh = ExtResource("4_156p4")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_johsd")
|
||||
|
@ -1,15 +1,22 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bd65e03fscyxr"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://bd65e03fscyxr"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://difwo7wlyqr3h" path="res://Scenes/Weapons/hitscan_weapon.tscn" id="1_6ph0d"]
|
||||
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Sniper/weapon_sniper.gd" id="2_r0w4v"]
|
||||
[ext_resource type="Texture2D" uid="uid://bepgxu7wtcl1i" path="res://PCs/Universal/ClassCards/Sniper/scopetest.png" id="3_fhx8q"]
|
||||
[ext_resource type="Resource" uid="uid://3y7n1vdvf822" path="res://PCs/Universal/ClassCards/Sniper/weapon_stats.tres" id="3_mmfq3"]
|
||||
[ext_resource type="Texture2D" uid="uid://cv2eycs1j0ho7" path="res://PCs/Universal/ClassCards/Sniper/g_sniper.png" id="4_ub37g"]
|
||||
[ext_resource type="AudioStream" uid="uid://bixe14jkki8be" path="res://PCs/Universal/ClassCards/Sniper/shot1.wav" id="6_pd8iu"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_cussn"]
|
||||
atlas = ExtResource("4_ub37g")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_x11yr"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_pd8iu")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="HitscanWeapon" node_paths=PackedStringArray("scope_mask") instance=ExtResource("1_6ph0d")]
|
||||
script = ExtResource("2_r0w4v")
|
||||
scope_mask = NodePath("CanvasLayer")
|
||||
@ -28,3 +35,6 @@ anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("3_fhx8q")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="6"]
|
||||
stream = SubResource("AudioStreamRandomizer_x11yr")
|
||||
|
103
PCs/hero.gd
103
PCs/hero.gd
@ -9,6 +9,7 @@ signal died
|
||||
@export var camera: Camera3D
|
||||
@export var gun_camera: Camera3D
|
||||
@export var left_hand_sprite: Sprite3D
|
||||
@export var card_sprites: Array[CardInHand]
|
||||
@export var left_hand: Node3D
|
||||
@export var right_hand: Node3D
|
||||
@export var right_hand_animator: AnimationPlayer
|
||||
@ -18,7 +19,6 @@ signal died
|
||||
@export var hand_sprite: Sprite2D
|
||||
@export var interaction_raycast: RayCast3D
|
||||
@export var inventory: Inventory
|
||||
@export var card: CardInHand
|
||||
@export var gauntlet_card_1: CardInHand
|
||||
@export var gauntlet_card_2: CardInHand
|
||||
@export var pause_menu_scene: PackedScene
|
||||
@ -29,6 +29,7 @@ signal died
|
||||
@export var weapon_swap_timer: Timer
|
||||
@export var ears: AudioListener3D
|
||||
|
||||
var inventory_selected_index := 0
|
||||
var equipped_card
|
||||
var offhand_card
|
||||
var weapon: Weapon
|
||||
@ -68,7 +69,8 @@ func _ready() -> void:
|
||||
hud.set_visible(false)
|
||||
if weapon != null:
|
||||
weapon.set_raycast_origin(camera)
|
||||
inventory.contents.append_array(hero_class.deck)
|
||||
for card in hero_class.deck:
|
||||
inventory.add(card)
|
||||
sprite.texture.atlas = hero_class.texture
|
||||
check_left_hand_valid()
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
@ -100,9 +102,9 @@ func _process(delta: float) -> void:
|
||||
hud.unset_hover_text()
|
||||
|
||||
if edit_tool.is_looking_at_tower_base:
|
||||
card.view_tower()
|
||||
card_sprites[0].view_tower()
|
||||
else:
|
||||
card.view_weapon()
|
||||
card_sprites[0].view_weapon()
|
||||
if Input.is_action_just_pressed("Interact"):
|
||||
edit_tool.interact()
|
||||
if interaction_raycast.get_collider() is InteractButton:
|
||||
@ -117,9 +119,11 @@ func _process(delta: float) -> void:
|
||||
if Input.is_action_just_pressed("Secondary Fire"):
|
||||
swap_weapons()
|
||||
if Input.is_action_just_pressed("Select Next Card"):
|
||||
inventory.increment_selected()
|
||||
increment_selected()
|
||||
$AudioStreamPlayer.play()
|
||||
if Input.is_action_just_pressed("Select Previous Card"):
|
||||
inventory.decrement_selected()
|
||||
decrement_selected()
|
||||
$AudioStreamPlayer.play()
|
||||
if Input.is_action_just_pressed("Primary Fire"):
|
||||
edit_tool.interact_key_held = true
|
||||
if Input.is_action_just_released("Primary Fire"):
|
||||
@ -160,6 +164,18 @@ func _process(delta: float) -> void:
|
||||
check_left_hand_valid()
|
||||
|
||||
|
||||
func increment_selected():
|
||||
inventory_selected_index += 1
|
||||
if inventory_selected_index >= inventory.contents.keys().size():
|
||||
inventory_selected_index = 0
|
||||
|
||||
|
||||
func decrement_selected():
|
||||
inventory_selected_index -= 1
|
||||
if inventory_selected_index < 0:
|
||||
inventory_selected_index = inventory.contents.keys().size() - 1
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if !is_multiplayer_authority() or paused:
|
||||
return
|
||||
@ -167,6 +183,8 @@ func _unhandled_input(event: InputEvent) -> void:
|
||||
edit_tool.interact_key_held = false
|
||||
if !ready_state:
|
||||
ready_state = true
|
||||
hud.shrink_wave_start_label()
|
||||
$AudioStreamPlayer.play()
|
||||
networked_set_ready_state.rpc(ready_state)
|
||||
if event.is_action_pressed("Pause"):
|
||||
var menu = pause_menu_scene.instantiate() as PauseMenu
|
||||
@ -211,7 +229,6 @@ func exit_editing_mode(value):
|
||||
gauntlet_sprite.set_visible(false)
|
||||
weapons_active = false
|
||||
hud.set_wave_count(value)
|
||||
hud.shrink_wave_start_label()
|
||||
if !weapon and offhand_weapon:
|
||||
swap_weapons()
|
||||
if weapon:
|
||||
@ -233,21 +250,31 @@ func exit_editing_mode(value):
|
||||
func check_left_hand_valid():
|
||||
if !editing_mode:
|
||||
return
|
||||
if inventory.contents.size() == 0:
|
||||
if inventory.size == 0:
|
||||
left_hand_sprite.set_visible(false)
|
||||
#gauntlet.texture.region = Rect2(64, 0, 64, 64)
|
||||
else:
|
||||
left_hand_sprite.set_visible(true)
|
||||
#gauntlet.texture.region = Rect2(0, 0, 64, 64)
|
||||
card.set_card(inventory.selected_item)
|
||||
var selected_card = inventory.contents.keys()[inventory_selected_index]
|
||||
for index in card_sprites.size():
|
||||
if index < inventory.contents[selected_card]:
|
||||
card_sprites[index].set_visible(true)
|
||||
card_sprites[index].set_card(selected_card)
|
||||
#card_sprites[index].view_weapon()
|
||||
else:
|
||||
card_sprites[index].set_visible(false)
|
||||
|
||||
|
||||
func equip_weapon():
|
||||
if weapon != null:
|
||||
unequip_weapon()
|
||||
return
|
||||
if inventory.contents.size() > 0:
|
||||
equipped_card = inventory.remove()
|
||||
if inventory.size > 0:
|
||||
$AudioStreamPlayer.play()
|
||||
equipped_card = inventory.remove_at(inventory_selected_index)
|
||||
if !inventory.contents.has(equipped_card):
|
||||
decrement_selected()
|
||||
networked_equip_weapon.rpc(Data.cards.find(equipped_card))
|
||||
weapon = equipped_card.weapon_scene.instantiate()
|
||||
weapon.energy_changed.connect(hud.set_weapon_energy)
|
||||
@ -263,30 +290,11 @@ func equip_weapon():
|
||||
check_left_hand_valid()
|
||||
|
||||
|
||||
func equip_in_offhand():
|
||||
if offhand_weapon != null:
|
||||
unequip_weapon()
|
||||
return
|
||||
if inventory.contents.size() > 0:
|
||||
offhand_card = inventory.remove()
|
||||
networked_equip_offhand_weapon.rpc(Data.cards.find(offhand_card))
|
||||
offhand_weapon = offhand_card.weapon_scene.instantiate()
|
||||
offhand_weapon.energy_changed.connect(hud.set_weapon_energy)
|
||||
#offhand_weapon.name = "weapon"
|
||||
offhand_weapon.set_multiplayer_authority(multiplayer.get_unique_id())
|
||||
#gauntlet_sprite.set_visible(false)
|
||||
gauntlet_card_2.set_card(offhand_card)
|
||||
gauntlet_card_2.view_weapon()
|
||||
gauntlet_card_2.set_visible(true)
|
||||
offhand_weapon.set_hero(self)
|
||||
offhand_weapon.set_visible(false)
|
||||
right_hand.add_child(offhand_weapon)
|
||||
check_left_hand_valid()
|
||||
|
||||
|
||||
func swap_weapons():
|
||||
if !editing_mode:
|
||||
weapons_active = false
|
||||
if weapon or offhand_weapon:
|
||||
$AudioStreamPlayer.play()
|
||||
var temp = offhand_weapon
|
||||
var temp_card = offhand_card
|
||||
if weapon:
|
||||
@ -327,6 +335,7 @@ func swap_weapons():
|
||||
func _on_timer_timeout() -> void:
|
||||
weapons_active = true
|
||||
if weapon:
|
||||
$AudioStreamPlayer.play()
|
||||
weapon.set_visible(true)
|
||||
|
||||
|
||||
@ -338,17 +347,7 @@ func unequip_weapon():
|
||||
weapon = null
|
||||
inventory.add(equipped_card)
|
||||
equipped_card = null
|
||||
check_left_hand_valid()
|
||||
|
||||
|
||||
func unequip_offhand_weapon():
|
||||
networked_unequip_offhand_weapon.rpc()
|
||||
gauntlet_card_2.set_visible(false)
|
||||
#gauntlet_sprite.set_visible(true)
|
||||
offhand_weapon.queue_free()
|
||||
offhand_weapon = null
|
||||
inventory.add(offhand_card)
|
||||
offhand_card = null
|
||||
$AudioStreamPlayer.play()
|
||||
check_left_hand_valid()
|
||||
|
||||
|
||||
@ -368,27 +367,9 @@ func networked_equip_weapon(card_index):
|
||||
right_hand.add_child(weapon)
|
||||
|
||||
|
||||
@rpc("reliable")
|
||||
func networked_equip_offhand_weapon(card_index):
|
||||
equipped_card = Data.cards[card_index]
|
||||
offhand_weapon = equipped_card.weapon_scene.instantiate()
|
||||
offhand_weapon.set_multiplayer_authority(multiplayer.get_remote_sender_id())
|
||||
#weapon.name = "weapon"
|
||||
offhand_weapon.set_hero(self)
|
||||
right_hand.add_child(offhand_weapon)
|
||||
|
||||
|
||||
@rpc("reliable")
|
||||
func networked_unequip_weapon():
|
||||
weapon.queue_free()
|
||||
weapon = null
|
||||
inventory.add(equipped_card)
|
||||
equipped_card = null
|
||||
|
||||
|
||||
@rpc("reliable")
|
||||
func networked_unequip_offhand_weapon():
|
||||
offhand_weapon.queue_free()
|
||||
offhand_weapon = null
|
||||
inventory.add(equipped_card)
|
||||
offhand_card = null
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=38 format=3 uid="uid://dxgxbtf68lcv5"]
|
||||
[gd_scene load_steps=40 format=3 uid="uid://dxgxbtf68lcv5"]
|
||||
|
||||
[ext_resource type="Script" path="res://PCs/hero.gd" id="1_pihpe"]
|
||||
[ext_resource type="Resource" uid="uid://b5pc3frhx467q" path="res://PCs/Red/red.tres" id="2_dbyo0"]
|
||||
@ -23,6 +23,7 @@
|
||||
[ext_resource type="Script" path="res://PCs/player_movement.gd" id="20_cfhw8"]
|
||||
[ext_resource type="Shader" path="res://crosshair.gdshader" id="20_gxpgc"]
|
||||
[ext_resource type="Texture2D" uid="uid://r202vo47jw1q" path="res://Assets/Textures/enemyhealth.png" id="21_apps2"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="24_gg2dy"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_jbu13"]
|
||||
|
||||
@ -95,7 +96,13 @@ properties/1/path = NodePath(".:rotation")
|
||||
properties/1/spawn = true
|
||||
properties/1/replication_mode = 2
|
||||
|
||||
[node name="Hero" type="CharacterBody3D" node_paths=PackedStringArray("camera", "gun_camera", "left_hand_sprite", "left_hand", "right_hand", "right_hand_animator", "edit_tool", "gauntlet_sprite", "sprite", "hand_sprite", "interaction_raycast", "inventory", "card", "gauntlet_card_1", "gauntlet_card_2", "hud", "movement", "player_name_tag", "weapon_swap_timer", "ears")]
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_wyb7c"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("24_gg2dy")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Hero" type="CharacterBody3D" node_paths=PackedStringArray("camera", "gun_camera", "left_hand_sprite", "card_sprites", "left_hand", "right_hand", "right_hand_animator", "edit_tool", "gauntlet_sprite", "sprite", "hand_sprite", "interaction_raycast", "inventory", "gauntlet_card_1", "gauntlet_card_2", "hud", "movement", "player_name_tag", "weapon_swap_timer", "ears")]
|
||||
collision_layer = 2
|
||||
collision_mask = 37
|
||||
script = ExtResource("1_pihpe")
|
||||
@ -103,6 +110,7 @@ hero_class = ExtResource("2_dbyo0")
|
||||
camera = NodePath("ViewMovement/Head")
|
||||
gun_camera = NodePath("FirstPersonViewport/Head2")
|
||||
left_hand_sprite = NodePath("FirstPersonViewport/Head2/LeftHand/Sprite3D")
|
||||
card_sprites = [NodePath("FirstPersonViewport/Head2/LeftHand/SubViewport/Node2D"), NodePath("FirstPersonViewport/Head2/LeftHand/SubViewport/Node2D3"), NodePath("FirstPersonViewport/Head2/LeftHand/SubViewport/Node2D2")]
|
||||
left_hand = NodePath("FirstPersonViewport/Head2/LeftHand")
|
||||
right_hand = NodePath("FirstPersonViewport/Head2/RightHand")
|
||||
right_hand_animator = NodePath("FirstPersonViewport/Head2/RightHand/AnimationPlayer")
|
||||
@ -112,7 +120,6 @@ sprite = NodePath("EightDirectionSprite")
|
||||
hand_sprite = NodePath("FirstPersonViewport/Head2/LeftHand/SubViewport/Sprite2D")
|
||||
interaction_raycast = NodePath("ViewMovement/Head/RayCast3D")
|
||||
inventory = NodePath("Inventory")
|
||||
card = NodePath("FirstPersonViewport/Head2/LeftHand/SubViewport/Node2D")
|
||||
gauntlet_card_1 = NodePath("FirstPersonViewport/Head2/LeftHand/SubViewport2/Node2D")
|
||||
gauntlet_card_2 = NodePath("FirstPersonViewport/Head2/LeftHand/SubViewport3/Node2D")
|
||||
pause_menu_scene = ExtResource("3_avnsx")
|
||||
@ -184,13 +191,21 @@ transform = Transform3D(0.235, 0, 0, 0, 0.235, 0, 0, 0, 0.235, -0.665, -0.275, -
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="FirstPersonViewport/Head2/LeftHand"]
|
||||
transparent_bg = true
|
||||
size = Vector2i(512, 1024)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="Node2D2" parent="FirstPersonViewport/Head2/LeftHand/SubViewport" instance=ExtResource("4_mwtvp")]
|
||||
position = Vector2(0, 48)
|
||||
|
||||
[node name="Node2D3" parent="FirstPersonViewport/Head2/LeftHand/SubViewport" instance=ExtResource("4_mwtvp")]
|
||||
position = Vector2(0, 152)
|
||||
|
||||
[node name="Node2D" parent="FirstPersonViewport/Head2/LeftHand/SubViewport" instance=ExtResource("4_mwtvp")]
|
||||
position = Vector2(0, 256)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="FirstPersonViewport/Head2/LeftHand/SubViewport"]
|
||||
texture_filter = 1
|
||||
position = Vector2(256, 256)
|
||||
position = Vector2(256, 512)
|
||||
scale = Vector2(8, 8)
|
||||
texture = ExtResource("9_gxh2h")
|
||||
|
||||
@ -630,4 +645,8 @@ one_shot = true
|
||||
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
|
||||
replication_config = SubResource("SceneReplicationConfig_tsiqi")
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_wyb7c")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="timeout" from="WeaponSwapTimer" to="." method="_on_timer_timeout"]
|
||||
|
@ -1,6 +1,13 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://6a277g802os0"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://6a277g802os0"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/alert_popup.gd" id="1_cac03"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="2_h7kij"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_veol0"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("2_h7kij")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Control" type="PanelContainer"]
|
||||
anchors_preset = 8
|
||||
@ -24,4 +31,9 @@ layout_mode = 2
|
||||
size_flags_horizontal = 8
|
||||
text = "OK"
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_veol0")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="mouse_entered" from="VBoxContainer/Button" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="VBoxContainer/Button" to="." method="_on_button_pressed"]
|
||||
|
@ -1,4 +1,110 @@
|
||||
[gd_scene format=3 uid="uid://bwc45ogto8thn"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://bwc45ogto8thn"]
|
||||
|
||||
[node name="Audio" type="VBoxContainer"]
|
||||
visible = false
|
||||
[ext_resource type="Script" path="res://Scripts/audio_options.gd" id="1_avc0j"]
|
||||
|
||||
[sub_resource type="ImageTexture" id="ImageTexture_hvvdd"]
|
||||
|
||||
[node name="Audio" type="VBoxContainer" node_paths=PackedStringArray("master_input", "master_slider", "music_input", "music_slider", "sfx_input", "sfx_slider")]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_avc0j")
|
||||
master_input = NodePath("Master/HBoxContainer/SpinBox")
|
||||
master_slider = NodePath("Master/HBoxContainer/HSlider")
|
||||
music_input = NodePath("Music/HBoxContainer/SpinBox")
|
||||
music_slider = NodePath("Music/HBoxContainer/HSlider")
|
||||
sfx_input = NodePath("SFX/HBoxContainer/SpinBox")
|
||||
sfx_slider = NodePath("SFX/HBoxContainer/HSlider")
|
||||
|
||||
[node name="Master" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="Master"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Master"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Master"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="SpinBox" type="SpinBox" parent="Master/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_icons/updown = SubResource("ImageTexture_hvvdd")
|
||||
value = 100.0
|
||||
rounded = true
|
||||
alignment = 1
|
||||
update_on_text_changed = true
|
||||
|
||||
[node name="HSlider" type="HSlider" parent="Master/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 1
|
||||
value = 100.0
|
||||
|
||||
[node name="Music" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="Music"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Music"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Music"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="SpinBox" type="SpinBox" parent="Music/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_icons/updown = SubResource("ImageTexture_hvvdd")
|
||||
value = 100.0
|
||||
rounded = true
|
||||
alignment = 1
|
||||
update_on_text_changed = true
|
||||
|
||||
[node name="HSlider" type="HSlider" parent="Music/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 1
|
||||
value = 100.0
|
||||
|
||||
[node name="SFX" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="SFX"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "SFX"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="SFX"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="SpinBox" type="SpinBox" parent="SFX/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_icons/updown = SubResource("ImageTexture_hvvdd")
|
||||
value = 100.0
|
||||
rounded = true
|
||||
alignment = 1
|
||||
update_on_text_changed = true
|
||||
|
||||
[node name="HSlider" type="HSlider" parent="SFX/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 1
|
||||
value = 100.0
|
||||
|
||||
[connection signal="value_changed" from="Master/HBoxContainer/SpinBox" to="." method="_on_master_spin_box_value_changed"]
|
||||
[connection signal="value_changed" from="Master/HBoxContainer/HSlider" to="." method="_on_master_h_slider_value_changed"]
|
||||
[connection signal="value_changed" from="Music/HBoxContainer/SpinBox" to="." method="_on_music_spin_box_value_changed"]
|
||||
[connection signal="value_changed" from="Music/HBoxContainer/HSlider" to="." method="_on_music_h_slider_value_changed"]
|
||||
[connection signal="value_changed" from="SFX/HBoxContainer/SpinBox" to="." method="_on_sfx_spin_box_value_changed"]
|
||||
[connection signal="value_changed" from="SFX/HBoxContainer/HSlider" to="." method="_on_sfx_h_slider_value_changed"]
|
||||
|
@ -1,6 +1,13 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://f46qh73hrk4y"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://f46qh73hrk4y"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/confirmation_popup.gd" id="1_x7akt"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="2_hgqp4"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_22wuj"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("2_hgqp4")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="ConfirmationPopup" type="PanelContainer"]
|
||||
anchors_preset = 8
|
||||
@ -34,5 +41,11 @@ text = "Confirm"
|
||||
layout_mode = 2
|
||||
text = "Cancel"
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_22wuj")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="mouse_entered" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_confirm_pressed"]
|
||||
[connection signal="mouse_entered" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_cancel_pressed"]
|
||||
|
@ -1,6 +1,13 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dsydnch32qh2h"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dsydnch32qh2h"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/lost_game_screen.gd" id="1_1pne8"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="2_sjvor"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_ddnd1"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("2_sjvor")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
@ -32,6 +39,54 @@ offset_bottom = 26.0
|
||||
grow_horizontal = 2
|
||||
text = "You Lost"
|
||||
|
||||
[node name="Label2" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -95.0
|
||||
offset_top = 305.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 350.0
|
||||
grow_horizontal = 2
|
||||
text = "You Lost"
|
||||
|
||||
[node name="Label3" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -897.0
|
||||
offset_top = 120.0
|
||||
offset_right = -509.0
|
||||
offset_bottom = 165.0
|
||||
grow_horizontal = 2
|
||||
text = "Total games played: 315"
|
||||
|
||||
[node name="Label4" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -901.0
|
||||
offset_top = 178.0
|
||||
offset_right = -513.0
|
||||
offset_bottom = 223.0
|
||||
grow_horizontal = 2
|
||||
text = "Total wins"
|
||||
|
||||
[node name="Label5" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -874.0
|
||||
offset_top = 239.0
|
||||
offset_right = -486.0
|
||||
offset_bottom = 284.0
|
||||
grow_horizontal = 2
|
||||
text = "Total losses"
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
@ -54,5 +109,11 @@ text = "Play Again"
|
||||
layout_mode = 2
|
||||
text = "Quit to main menu"
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_ddnd1")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="mouse_entered" from="HBoxContainer/RestartButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="HBoxContainer/RestartButton" to="." method="_on_restart_button_pressed"]
|
||||
[connection signal="mouse_entered" from="HBoxContainer/QuitButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="HBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"]
|
||||
|
@ -1,13 +1,20 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://8yv7excojcg0"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://8yv7excojcg0"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_p1cib"]
|
||||
[ext_resource type="Script" path="res://Scripts/main_menu.gd" id="2_ivytu"]
|
||||
[ext_resource type="Texture2D" uid="uid://lvvnrb5jugum" path="res://Assets/Textures/logo_title.png" id="3_8jkeb"]
|
||||
[ext_resource type="PackedScene" uid="uid://y1qa1g3ic8sp" path="res://Worlds/GreenPlanet/Levels/first_level.tscn" id="3_l8r4a"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="5_4c4cl"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_5u75i"]
|
||||
viewport_path = NodePath("SubViewport")
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_2jyua"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_4c4cl")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="MainMenu" type="Control" node_paths=PackedStringArray("bg_level")]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
@ -118,8 +125,21 @@ size = Vector2i(1920, 1080)
|
||||
|
||||
[node name="GridMap" parent="SubViewport" instance=ExtResource("3_l8r4a")]
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_2jyua")
|
||||
bus = &"SFX"
|
||||
|
||||
[node name="AudioListener3D" type="AudioListener3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 100, 0)
|
||||
current = true
|
||||
|
||||
[connection signal="mouse_entered" from="MainControls/PlayButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="MainControls/PlayButton" to="." method="_on_play_button_pressed"]
|
||||
[connection signal="mouse_entered" from="MainControls/MultiplayerButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="MainControls/MultiplayerButton" to="." method="_on_multiplayer_button_pressed"]
|
||||
[connection signal="mouse_entered" from="MainControls/OptionsButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="MainControls/OptionsButton" to="." method="_on_options_button_pressed"]
|
||||
[connection signal="mouse_entered" from="MainControls/QuitButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="MainControls/QuitButton" to="." method="_on_quit_button_pressed"]
|
||||
[connection signal="mouse_entered" from="ProfileEditor/VBoxContainer/HBoxContainer/MarginContainer/DisplayNameEdit" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="ProfileEditor/VBoxContainer/HBoxContainer/MarginContainer/DisplayNameEdit" to="." method="_on_display_name_edit_pressed"]
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://cwvprrvk4l2k0"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://cwvprrvk4l2k0"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_l1spu"]
|
||||
[ext_resource type="Script" path="res://Scripts/multiplayer_lobby.gd" id="2_nb860"]
|
||||
@ -6,6 +6,13 @@
|
||||
[ext_resource type="PackedScene" uid="uid://bvfit0sy2tnw4" path="res://Scenes/Menus/server_form.tscn" id="5_bqbwv"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqqitmhu66a7d" path="res://charselect.tscn" id="5_lvoo2"]
|
||||
[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://Scenes/UI/chatbox.tscn" id="6_wtqwd"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="7_npnbo"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_cwnde"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("7_npnbo")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="multiplayer_lobby" type="Control" node_paths=PackedStringArray("server_form", "scoreboard", "loadout_editor", "chatbox")]
|
||||
layout_mode = 3
|
||||
@ -62,11 +69,16 @@ text = "Ready"
|
||||
[node name="Chatbox" parent="." instance=ExtResource("6_wtqwd")]
|
||||
layout_mode = 1
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_cwnde")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="player_connected" from="." to="Scoreboard" method="add_player"]
|
||||
[connection signal="player_disconnected" from="." to="Scoreboard" method="remove_player"]
|
||||
[connection signal="connect_button_pressed" from="ServerForm" to="." method="connect_to_server"]
|
||||
[connection signal="connect_button_pressed" from="ServerForm" to="ServerForm" method="set_visible" binds= [false]]
|
||||
[connection signal="host_button_pressed" from="ServerForm" to="." method="create_server"]
|
||||
[connection signal="host_button_pressed" from="ServerForm" to="ServerForm" method="set_visible" binds= [false]]
|
||||
[connection signal="mouse_entered" from="ReadyButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="ReadyButton" to="." method="ready_player"]
|
||||
[connection signal="pressed" from="ReadyButton" to="ReadyButton" method="set_visible" binds= [false]]
|
||||
|
@ -1,7 +1,14 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://buvgdem68wtev"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://buvgdem68wtev"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_gaupv"]
|
||||
[ext_resource type="Script" path="res://Scripts/pause_menu.gd" id="2_4pn2l"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="3_q3xhn"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_n6ixr"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("3_q3xhn")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
@ -55,7 +62,15 @@ text = "Quit to main menu"
|
||||
layout_mode = 2
|
||||
text = "Quit to desktop"
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_n6ixr")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="mouse_entered" from="PanelContainer/VBoxContainer/Resume" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="PanelContainer/VBoxContainer/Resume" to="." method="_on_resume_pressed"]
|
||||
[connection signal="mouse_entered" from="PanelContainer/VBoxContainer/Options" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="PanelContainer/VBoxContainer/Options" to="." method="_on_options_pressed"]
|
||||
[connection signal="mouse_entered" from="PanelContainer/VBoxContainer/QuitToMainMenu" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="PanelContainer/VBoxContainer/QuitToMainMenu" to="." method="_on_quit_to_main_menu_pressed"]
|
||||
[connection signal="mouse_entered" from="PanelContainer/VBoxContainer/QuitToDesktop" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="PanelContainer/VBoxContainer/QuitToDesktop" to="." method="_on_quit_to_desktop_pressed"]
|
||||
|
@ -1,6 +1,13 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://bvfit0sy2tnw4"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://bvfit0sy2tnw4"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/server_form.gd" id="1_43oaq"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="2_2xblc"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_3o7ni"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("2_2xblc")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="ServerForm" type="PanelContainer"]
|
||||
anchors_preset = 8
|
||||
@ -20,6 +27,10 @@ script = ExtResource("1_43oaq")
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Button" type="Button" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Back"
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
@ -52,5 +63,13 @@ text = "Connect"
|
||||
layout_mode = 2
|
||||
text = "Host"
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_3o7ni")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="mouse_entered" from="VBoxContainer/Button" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="VBoxContainer/Button" to="." method="_on_button_pressed"]
|
||||
[connection signal="mouse_entered" from="VBoxContainer/Connect" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="VBoxContainer/Connect" to="." method="_on_connect_pressed"]
|
||||
[connection signal="mouse_entered" from="VBoxContainer/Host" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="VBoxContainer/Host" to="." method="_on_host_pressed"]
|
||||
|
@ -1,10 +1,17 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://176c6fuhg5ic"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://176c6fuhg5ic"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_2aur6"]
|
||||
[ext_resource type="PackedScene" uid="uid://dpt3kpixawyby" path="res://Scenes/UI/scoreboard.tscn" id="1_423py"]
|
||||
[ext_resource type="Script" path="res://Scripts/singleplayer_lobby.gd" id="1_nd17k"]
|
||||
[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://Scenes/UI/chatbox.tscn" id="3_l8xy3"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqqitmhu66a7d" path="res://charselect.tscn" id="5_vg5y0"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="6_qgq1v"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_g5har"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_qgq1v")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="singleplayer_lobby" type="Control" node_paths=PackedStringArray("scoreboard", "loadout_editor", "chatbox")]
|
||||
layout_mode = 3
|
||||
@ -53,5 +60,10 @@ layout_mode = 1
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_g5har")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="mouse_entered" from="ReadyButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="ReadyButton" to="Scoreboard" method="set_player_ready_state" binds= [1, true]]
|
||||
[connection signal="pressed" from="ReadyButton" to="ReadyButton" method="set_visible" binds= [false]]
|
||||
|
@ -1,6 +1,13 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dccsyymk4uko6"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dccsyymk4uko6"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/text_input_popup.gd" id="1_ve6eb"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="2_eqkxc"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_w0x7l"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("2_eqkxc")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="TextInputPopup" type="PanelContainer"]
|
||||
anchors_preset = 8
|
||||
@ -28,4 +35,9 @@ layout_mode = 2
|
||||
text = "Confirm
|
||||
"
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_w0x7l")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="mouse_entered" from="VBoxContainer/Button" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="VBoxContainer/Button" to="." method="_on_button_pressed"]
|
||||
|
@ -1,6 +1,13 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://ce0m8vbjbng6o"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://ce0m8vbjbng6o"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/won_game_screen.gd" id="1_oa7nq"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="2_553mv"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_dram5"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("2_553mv")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Control" type="Control"]
|
||||
layout_mode = 3
|
||||
@ -32,6 +39,54 @@ offset_bottom = 23.0
|
||||
grow_horizontal = 2
|
||||
text = "You WIN :3"
|
||||
|
||||
[node name="Label2" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -202.0
|
||||
offset_top = 359.0
|
||||
offset_right = 186.0
|
||||
offset_bottom = 404.0
|
||||
grow_horizontal = 2
|
||||
text = "Your winrate is now: 80%"
|
||||
|
||||
[node name="Label3" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -897.0
|
||||
offset_top = 120.0
|
||||
offset_right = -509.0
|
||||
offset_bottom = 165.0
|
||||
grow_horizontal = 2
|
||||
text = "Total games played: 315"
|
||||
|
||||
[node name="Label4" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -901.0
|
||||
offset_top = 178.0
|
||||
offset_right = -513.0
|
||||
offset_bottom = 223.0
|
||||
grow_horizontal = 2
|
||||
text = "Total wins"
|
||||
|
||||
[node name="Label5" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -874.0
|
||||
offset_top = 239.0
|
||||
offset_right = -486.0
|
||||
offset_bottom = 284.0
|
||||
grow_horizontal = 2
|
||||
text = "Total losses"
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
@ -54,5 +109,11 @@ text = "play again :3"
|
||||
layout_mode = 2
|
||||
text = "quit to main menu :<"
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_dram5")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="mouse_entered" from="HBoxContainer/PlayButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="HBoxContainer/PlayButton" to="." method="_on_play_button_pressed"]
|
||||
[connection signal="mouse_entered" from="HBoxContainer/QuitButton" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="HBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"]
|
||||
|
@ -1,8 +1,47 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://7f4dfphgiswr"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://7f4dfphgiswr"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c8qjlgam6wuo0" path="res://Scenes/Projectiles/projectile.tscn" id="1_136w8"]
|
||||
[ext_resource type="Script" path="res://Scripts/Projectiles/explosive_projectile.gd" id="2_3adg2"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_ia31t"]
|
||||
offsets = PackedFloat32Array(0, 0.3, 0.681818, 1)
|
||||
colors = PackedColorArray(1, 0.733333, 0, 1, 0.780392, 0.0352941, 0, 0.921569, 0, 0, 0, 0.87451, 0, 0, 0, 0.301961)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_iertm"]
|
||||
gradient = SubResource("Gradient_ia31t")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_1wlqd"]
|
||||
spread = 180.0
|
||||
initial_velocity_min = 4.0
|
||||
initial_velocity_max = 4.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
damping_min = 2.0
|
||||
damping_max = 2.0
|
||||
color_ramp = SubResource("GradientTexture1D_iertm")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dqr5j"]
|
||||
transparency = 1
|
||||
vertex_color_use_as_albedo = true
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_5qmrv"]
|
||||
material = SubResource("StandardMaterial3D_dqr5j")
|
||||
size = Vector3(0.2, 0.2, 0.2)
|
||||
|
||||
[node name="ExplosiveProjectile" instance=ExtResource("1_136w8")]
|
||||
script = ExtResource("2_3adg2")
|
||||
explosion_range = 3.0
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer3D" parent="." index="2"]
|
||||
bus = &"SFX"
|
||||
|
||||
[node name="GPUParticles3D" type="GPUParticles3D" parent="." index="3"]
|
||||
emitting = false
|
||||
amount = 80
|
||||
lifetime = 0.5
|
||||
one_shot = true
|
||||
explosiveness = 1.0
|
||||
process_material = SubResource("ParticleProcessMaterial_1wlqd")
|
||||
draw_pass_1 = SubResource("BoxMesh_5qmrv")
|
||||
|
||||
[connection signal="finished" from="AudioStreamPlayer" to="." method="_on_audio_stream_player_finished"]
|
||||
[connection signal="finished" from="GPUParticles3D" to="." method="_on_gpu_particles_3d_finished"]
|
||||
|
@ -1,7 +1,6 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://bvqu1heobgboe"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://bvqu1heobgboe"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Towers/tower.gd" id="1_u8bfo"]
|
||||
[ext_resource type="AudioStream" uid="uid://chrf1dcq2ujw0" path="res://PCs/Universal/ClassCards/Assault/shot1.wav" id="2_xijvj"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_vk4a8"]
|
||||
resource_name = "shoot"
|
||||
@ -13,11 +12,6 @@ _data = {
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_42byu"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_3kxtr"]
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("2_xijvj")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1ucq4"]
|
||||
transparency = 1
|
||||
cull_mode = 1
|
||||
@ -44,7 +38,7 @@ mesh = SubResource("BoxMesh_42byu")
|
||||
mesh = SubResource("BoxMesh_42byu")
|
||||
|
||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="Yaw"]
|
||||
stream = SubResource("AudioStreamRandomizer_3kxtr")
|
||||
bus = &"SFX"
|
||||
|
||||
[node name="MinimapIcon" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
|
||||
|
@ -44,4 +44,5 @@ theme_override_styles/pressed = SubResource("StyleBoxEmpty_af3d2")
|
||||
theme_override_styles/disabled = SubResource("StyleBoxEmpty_00m4l")
|
||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_rg2u8")
|
||||
|
||||
[connection signal="mouse_entered" from="Button" to="." method="_on_button_mouse_entered"]
|
||||
[connection signal="pressed" from="Button" to="." method="_on_button_pressed"]
|
||||
|
@ -1,7 +1,6 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://b7nargdyg28fj"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://b7nargdyg28fj"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Weapons/weapon.gd" id="1_yo2gh"]
|
||||
[ext_resource type="AudioStream" uid="uid://chrf1dcq2ujw0" path="res://PCs/Universal/ClassCards/Assault/shot1.wav" id="2_2a041"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_5krlx"]
|
||||
length = 0.001
|
||||
@ -40,12 +39,6 @@ _data = {
|
||||
"shoot": SubResource("Animation_0rgpe")
|
||||
}
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_leqfx"]
|
||||
random_pitch = 1.2
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("2_2a041")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Weapon" type="Node3D" node_paths=PackedStringArray("animator", "audio_player", "recharge_timer")]
|
||||
script = ExtResource("1_yo2gh")
|
||||
animator = NodePath("AnimationPlayer")
|
||||
@ -67,6 +60,6 @@ wait_time = 3.0
|
||||
one_shot = true
|
||||
|
||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_leqfx")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
|
||||
|
@ -1,9 +1,10 @@
|
||||
[gd_scene load_steps=13 format=3 uid="uid://1b2ikdanl66b"]
|
||||
[gd_scene load_steps=15 format=3 uid="uid://1b2ikdanl66b"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/card_printer.gd" id="1_7rhtj"]
|
||||
[ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://Scenes/UI/card_hand.tscn" id="2_7ouw1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dsasunnk47n8o" path="res://Scenes/item_card.tscn" id="2_356ip"]
|
||||
[ext_resource type="Script" path="res://Scripts/interact_button.gd" id="3_iia6u"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="5_pf7c7"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_s02au"]
|
||||
albedo_color = Color(0.203922, 0.592157, 0.592157, 1)
|
||||
@ -29,6 +30,12 @@ size = Vector3(1.29447, 0.342125, 0.277604)
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_gv3t5"]
|
||||
size = Vector3(0.763889, 0.773027, 0.0570252)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_73g2w"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_pf7c7")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="CardPrinter" type="StaticBody3D" node_paths=PackedStringArray("cards", "button_collider", "button_box", "choice_colliders")]
|
||||
script = ExtResource("1_7rhtj")
|
||||
cards = [NodePath("SubViewport/Node2D"), NodePath("SubViewport2/Node2D"), NodePath("SubViewport3/Node2D")]
|
||||
@ -143,6 +150,11 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6825, 0.484672, 0)
|
||||
size = Vector3(0.816972, 0.233429, 0.632978)
|
||||
material = SubResource("StandardMaterial3D_s02au")
|
||||
|
||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.433459, 0.524183)
|
||||
stream = SubResource("AudioStreamRandomizer_73g2w")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="button_interacted" from="StaticBody3D" to="." method="_on_static_body_3d_button_interacted"]
|
||||
[connection signal="button_interacted" from="StaticBody3D2" to="." method="retrieve_card"]
|
||||
[connection signal="button_interacted" from="StaticBody3D3" to="." method="retrieve_card"]
|
||||
|
@ -4,6 +4,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="2_6ext7"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_shai7"]
|
||||
radius = 0.200919
|
||||
|
||||
[node name="Node3D" type="RigidBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
@ -16,7 +17,6 @@ script = ExtResource("1_hdqtp")
|
||||
shape = SubResource("SphereShape3D_shai7")
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.355108, 0)
|
||||
pixel_size = 0.04
|
||||
billboard = 1
|
||||
texture_filter = 0
|
||||
|
@ -1,7 +1,8 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dsasunnk47n8o"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://dsasunnk47n8o"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/item_card.gd" id="1_f3ek5"]
|
||||
[ext_resource type="Script" path="res://Scripts/float_and_spin.gd" id="2_yfdc3"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="3_om63b"]
|
||||
|
||||
[sub_resource type="Curve" id="Curve_qb7ge"]
|
||||
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.5, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||
@ -10,6 +11,12 @@ point_count = 3
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_bf4ou"]
|
||||
height = 1.0
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_ixwn8"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("3_om63b")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Node3D" type="StaticBody3D"]
|
||||
collision_layer = 8
|
||||
collision_mask = 0
|
||||
@ -28,3 +35,10 @@ radius = 0.1
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7, 0)
|
||||
shape = SubResource("CapsuleShape3D_bf4ou")
|
||||
|
||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.701401, 0)
|
||||
stream = SubResource("AudioStreamRandomizer_ixwn8")
|
||||
bus = &"SFX"
|
||||
|
||||
[connection signal="finished" from="AudioStreamPlayer3D" to="." method="_on_audio_stream_player_3d_finished"]
|
||||
|
@ -125,6 +125,7 @@ func disable_all_tower_frames():
|
||||
|
||||
func enable_non_path_tower_frames():
|
||||
for frame in tower_frames:
|
||||
if !astar.is_point_disabled(tower_frames.find(frame)):
|
||||
frame.set_visible(true)
|
||||
disable_path_tower_frames()
|
||||
|
||||
|
@ -3,10 +3,14 @@ class_name ExplosiveProjectile
|
||||
|
||||
@export var explosion_range := 3.0
|
||||
|
||||
var exploded := false
|
||||
var sound_done := false
|
||||
var particles_done := false
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
super._process(delta)
|
||||
if time_alive >= lifetime:
|
||||
if !exploded and time_alive >= lifetime:
|
||||
explode()
|
||||
|
||||
|
||||
@ -15,13 +19,18 @@ func _on_body_entered(_body: Node) -> void:
|
||||
|
||||
|
||||
func explode():
|
||||
if is_multiplayer_authority():
|
||||
if is_multiplayer_authority() and !exploded:
|
||||
freeze = true
|
||||
exploded = true
|
||||
$CollisionShape3D.call_deferred("set_disabled", true)
|
||||
for enemy in get_tree().get_nodes_in_group("Enemies"):
|
||||
if global_position.distance_to(enemy.global_position) <= explosion_range:
|
||||
hit(enemy)
|
||||
networked_hit.rpc(get_tree().root.get_path_to(enemy))
|
||||
networked_kill.rpc()
|
||||
queue_free()
|
||||
$Sprite3D.set_visible(false)
|
||||
$GPUParticles3D.emitting = true
|
||||
$AudioStreamPlayer.play()
|
||||
|
||||
|
||||
func hit(target):
|
||||
@ -41,3 +50,22 @@ func hit(target):
|
||||
func networked_hit(target_node_path):
|
||||
var target = get_tree().root.get_node(target_node_path)
|
||||
hit(target)
|
||||
|
||||
|
||||
@rpc("reliable")
|
||||
func networked_kill():
|
||||
$Sprite3D.set_visible(false)
|
||||
$GPUParticles3D.emitting = true
|
||||
$AudioStreamPlayer.play()
|
||||
|
||||
|
||||
func _on_audio_stream_player_finished() -> void:
|
||||
sound_done = true
|
||||
if sound_done and particles_done:
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_gpu_particles_3d_finished() -> void:
|
||||
particles_done = true
|
||||
if sound_done and particles_done:
|
||||
queue_free()
|
||||
|
23
Scripts/Resources/player_audio_settings.gd
Normal file
23
Scripts/Resources/player_audio_settings.gd
Normal file
@ -0,0 +1,23 @@
|
||||
extends Resource
|
||||
class_name PlayerAudioSettings
|
||||
|
||||
const SAVE_PATH := "user://audio_settings.tres"
|
||||
|
||||
@export var master := 100.0
|
||||
@export var music := 100.0
|
||||
@export var sfx := 100.0
|
||||
|
||||
|
||||
func apply_audio_settings():
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), linear_to_db(master / 100.0))
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Music"), linear_to_db(music / 100.0))
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("SFX"), linear_to_db(sfx / 100.0))
|
||||
|
||||
|
||||
func save_profile_to_disk():
|
||||
ResourceSaver.save(self, SAVE_PATH)
|
||||
static func load_profile_from_disk() -> PlayerAudioSettings:
|
||||
if ResourceLoader.exists(SAVE_PATH):
|
||||
return ResourceLoader.load(SAVE_PATH)
|
||||
return PlayerAudioSettings.new()
|
||||
|
26
Scripts/Resources/save_stats.gd
Normal file
26
Scripts/Resources/save_stats.gd
Normal file
@ -0,0 +1,26 @@
|
||||
extends Resource
|
||||
class_name SaveStats
|
||||
|
||||
const SAVE_PATH := "user://save_stats.tres"
|
||||
|
||||
@export var wins: int
|
||||
@export var losses: int
|
||||
@export var twenty_game_history: Array[bool]
|
||||
|
||||
|
||||
func add_game_outcome(outcome: bool) -> void:
|
||||
if outcome:
|
||||
wins += 1
|
||||
else:
|
||||
losses += 1
|
||||
twenty_game_history.push_back(outcome)
|
||||
if twenty_game_history.size() > 20:
|
||||
twenty_game_history.pop_front()
|
||||
|
||||
|
||||
func save_profile_to_disk():
|
||||
ResourceSaver.save(self, SAVE_PATH)
|
||||
static func load_profile_from_disk() -> SaveStats:
|
||||
if ResourceLoader.exists(SAVE_PATH):
|
||||
return ResourceLoader.load(SAVE_PATH)
|
||||
return SaveStats.new()
|
@ -61,8 +61,9 @@ func hold_trigger():
|
||||
|
||||
|
||||
func release_trigger():
|
||||
trigger_held = false
|
||||
if trigger_held:
|
||||
recharge_timer.start()
|
||||
trigger_held = false
|
||||
|
||||
|
||||
func hold_second_trigger():
|
||||
|
@ -11,3 +11,7 @@ func set_popup(prompt_text, dismiss_text):
|
||||
func _on_button_pressed() -> void:
|
||||
completed.emit()
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
53
Scripts/audio_options.gd
Normal file
53
Scripts/audio_options.gd
Normal file
@ -0,0 +1,53 @@
|
||||
extends VBoxContainer
|
||||
|
||||
@export var master_input: SpinBox
|
||||
@export var master_slider: HSlider
|
||||
@export var music_input: SpinBox
|
||||
@export var music_slider: HSlider
|
||||
@export var sfx_input: SpinBox
|
||||
@export var sfx_slider: HSlider
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
master_input.value = Data.audio.master
|
||||
master_slider.value = Data.audio.master
|
||||
music_input.value = Data.audio.music
|
||||
music_slider.value = Data.audio.music
|
||||
sfx_input.value = Data.audio.sfx
|
||||
sfx_slider.value = Data.audio.sfx
|
||||
|
||||
|
||||
func _on_master_spin_box_value_changed(value: float) -> void:
|
||||
master_slider.value = value
|
||||
Data.audio.master = value
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), linear_to_db(value / 100.0))
|
||||
|
||||
|
||||
func _on_master_h_slider_value_changed(value: float) -> void:
|
||||
master_input.value = value
|
||||
Data.audio.master = value
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), linear_to_db(value / 100.0))
|
||||
|
||||
|
||||
func _on_music_spin_box_value_changed(value: float) -> void:
|
||||
music_slider.value = value
|
||||
Data.audio.music = value
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Music"), linear_to_db(value / 100.0))
|
||||
|
||||
|
||||
func _on_music_h_slider_value_changed(value: float) -> void:
|
||||
music_input.value = value
|
||||
Data.audio.music = value
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Music"), linear_to_db(value / 100.0))
|
||||
|
||||
|
||||
func _on_sfx_spin_box_value_changed(value: float) -> void:
|
||||
sfx_slider.value = value
|
||||
Data.audio.sfx = value
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("SFX"), linear_to_db(value / 100.0))
|
||||
|
||||
|
||||
func _on_sfx_h_slider_value_changed(value: float) -> void:
|
||||
sfx_input.value = value
|
||||
Data.audio.sfx = value
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("SFX"), linear_to_db(value / 100.0))
|
@ -7,6 +7,7 @@ var stats : Card
|
||||
@export var description : RichTextLabel
|
||||
@export var target_label : Label
|
||||
|
||||
|
||||
func set_card(value):
|
||||
stats = value
|
||||
title_text.text = stats.display_name
|
||||
|
@ -53,9 +53,11 @@ func retrieve_card(i):
|
||||
add_child(item)
|
||||
button_collider.disabled = false
|
||||
button_box.position = Vector3(0,0,0)
|
||||
$AudioStreamPlayer3D.play()
|
||||
|
||||
|
||||
func _on_static_body_3d_button_interacted(_value) -> void:
|
||||
button_collider.disabled = true
|
||||
button_box.position = Vector3(0,0,-0.2)
|
||||
$AudioStreamPlayer3D.play()
|
||||
randomize_cards()
|
||||
|
@ -5,8 +5,8 @@ signal completed(outcome)
|
||||
|
||||
func set_popup(prompt_text, confirm_text, cancel_text):
|
||||
$VBoxContainer/Label.text = prompt_text
|
||||
$VBoxContainer/HBoxContainer/MarginContainer/Confirm.text = confirm_text
|
||||
$VBoxContainer/HBoxContainer/MarginContainer2/Cancel.text = cancel_text
|
||||
$VBoxContainer/HBoxContainer/Confirm.text = confirm_text
|
||||
$VBoxContainer/HBoxContainer/Cancel.text = cancel_text
|
||||
|
||||
|
||||
func _on_confirm_pressed() -> void:
|
||||
@ -17,3 +17,7 @@ func _on_confirm_pressed() -> void:
|
||||
func _on_cancel_pressed() -> void:
|
||||
completed.emit(false)
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
@ -5,9 +5,11 @@ var cards : Array[Card]
|
||||
var enemies: Array[Enemy]
|
||||
var keymaps: Array[PlayerKeymap]
|
||||
var graphics: PlayerGraphicsSettings
|
||||
var audio: PlayerAudioSettings
|
||||
var preferences: PlayerPreferences
|
||||
var player_profile: PlayerProfile
|
||||
var player_keymap: PlayerKeymap
|
||||
var save_stats: SaveStats
|
||||
|
||||
var wall_cost := 1
|
||||
var printer_cost := 15
|
||||
@ -25,10 +27,13 @@ var rarity_weights = {
|
||||
func _ready() -> void:
|
||||
graphics = PlayerGraphicsSettings.load_profile_from_disk()
|
||||
graphics.apply_graphical_settings(get_viewport())
|
||||
audio = PlayerAudioSettings.load_profile_from_disk()
|
||||
audio.apply_audio_settings()
|
||||
player_profile = PlayerProfile.load_profile_from_disk()
|
||||
preferences = PlayerPreferences.load_profile_from_disk()
|
||||
player_keymap = PlayerKeymap.load_profile_from_disk()
|
||||
player_keymap.apply()
|
||||
save_stats = SaveStats.load_profile_from_disk()
|
||||
|
||||
characters.append(preload("res://PCs/Red/red.tres"))
|
||||
#characters.append(preload("res://PCs/Green/green.tres"))
|
||||
|
@ -127,7 +127,7 @@ func _process(delta: float) -> void:
|
||||
func spawn_tower_preview():
|
||||
delete_tower_preview()
|
||||
last_tower_base = ray_collider
|
||||
var card = inventory.selected_item
|
||||
var card = inventory.contents.keys()[hero.inventory_selected_index]
|
||||
last_card = card
|
||||
tower_preview = card.turret_scene.instantiate() as Tower
|
||||
tower_preview.stats = card.tower_stats
|
||||
@ -168,7 +168,10 @@ func put_card_in_tower_base(tower_base: TowerBase):
|
||||
if tower_base.has_card:
|
||||
tower_base.remove_card()
|
||||
else:
|
||||
tower_base.add_card(inventory.remove(), multiplayer.get_unique_id())
|
||||
var card = inventory.remove_at(hero.inventory_selected_index)
|
||||
if !inventory.contents.has(card):
|
||||
hero.decrement_selected()
|
||||
tower_base.add_card(card, multiplayer.get_unique_id())
|
||||
|
||||
|
||||
func set_progress_percent(value: float):
|
||||
|
@ -42,7 +42,7 @@ func parse_command(text : String, peer_id : int):
|
||||
var gift_name = text.substr(6) as String
|
||||
var gift = Data.cards[0]
|
||||
for x in Data.cards:
|
||||
if x.title == gift_name:
|
||||
if x.display_name == gift_name:
|
||||
gift = x
|
||||
connected_players_nodes[peer_id].inventory.add(gift)
|
||||
elif text.substr(1, 2) == "tr":
|
||||
@ -232,6 +232,9 @@ func start_game():
|
||||
objective_health = 120
|
||||
wave = 0
|
||||
level.a_star_graph_3d.make_grid()
|
||||
level.generate_obstacles()
|
||||
level.a_star_graph_3d.disable_all_tower_frames()
|
||||
level.a_star_graph_3d.enable_non_path_tower_frames()
|
||||
level.a_star_graph_3d.find_path()
|
||||
set_upcoming_wave()
|
||||
for peer_id in connected_players_nodes:
|
||||
@ -257,6 +260,8 @@ func lose_game():
|
||||
if game_active == false:
|
||||
return
|
||||
game_active = false
|
||||
Data.save_stats.add_game_outcome(false)
|
||||
Data.save_stats.save_profile_to_disk()
|
||||
var menu = lose_game_scene.instantiate()
|
||||
UILayer.add_child(menu)
|
||||
lost_game.emit()
|
||||
@ -269,6 +274,8 @@ func win_game():
|
||||
if game_active == false:
|
||||
return
|
||||
game_active = false
|
||||
Data.save_stats.add_game_outcome(true)
|
||||
Data.save_stats.save_profile_to_disk()
|
||||
var menu = won_game_scene.instantiate()
|
||||
UILayer.add_child(menu)
|
||||
won_game.emit()
|
||||
|
@ -5,18 +5,23 @@ signal item_added(item)
|
||||
signal item_removed(item)
|
||||
|
||||
@export var max_size := 0
|
||||
@export var contents : Array[Item] = []
|
||||
var selected_index := 0
|
||||
var selected_item : Item :
|
||||
var contents = {}
|
||||
var size : int :
|
||||
get:
|
||||
return contents[selected_index] if contents.size() > 0 else null
|
||||
var x = 0
|
||||
for key in contents:
|
||||
x += contents[key]
|
||||
return x
|
||||
set(_value):
|
||||
return
|
||||
|
||||
|
||||
func add(item : Item) -> bool:
|
||||
if item != null and contents.size() < max_size or max_size == 0:
|
||||
contents.append(item)
|
||||
if item != null and max_size == 0 or size < max_size:
|
||||
if contents.has(item):
|
||||
contents[item] += 1
|
||||
else:
|
||||
contents[item] = 1
|
||||
item_added.emit(item)
|
||||
networked_add.rpc(Data.cards.find(item))
|
||||
return true
|
||||
@ -24,50 +29,29 @@ func add(item : Item) -> bool:
|
||||
|
||||
|
||||
func remove_at(index : int) -> Item:
|
||||
if contents.size() <= 0:
|
||||
return null
|
||||
var item = contents[index]
|
||||
contents.remove_at(index)
|
||||
if selected_index >= contents.size() and selected_index > 0:
|
||||
selected_index -= 1
|
||||
var item = contents.keys()[index]
|
||||
contents[item] -= 1
|
||||
if contents[item] == 0:
|
||||
contents.erase(item)
|
||||
item_removed.emit(item)
|
||||
networked_remove_at.rpc(index)
|
||||
return item
|
||||
|
||||
|
||||
func remove() -> Item:
|
||||
return remove_at(selected_index)
|
||||
|
||||
|
||||
func increment_selected():
|
||||
if contents.size() > 0:
|
||||
selected_index += 1
|
||||
if selected_index >= contents.size():
|
||||
selected_index = 0
|
||||
networked_set_selected.rpc(selected_index)
|
||||
|
||||
|
||||
func decrement_selected():
|
||||
if contents.size() > 0:
|
||||
selected_index -= 1
|
||||
if selected_index < 0:
|
||||
selected_index = contents.size() - 1
|
||||
networked_set_selected.rpc(selected_index)
|
||||
|
||||
|
||||
@rpc("reliable", "any_peer")
|
||||
func networked_add(value):
|
||||
contents.append(Data.cards[value])
|
||||
item_added.emit(Data.cards[value])
|
||||
var item = Data.cards[value]
|
||||
if contents.has(item):
|
||||
contents[item] += 1
|
||||
else:
|
||||
contents[item] = 0
|
||||
item_added.emit(item)
|
||||
|
||||
|
||||
@rpc("reliable", "any_peer")
|
||||
func networked_remove_at(value):
|
||||
var item = contents[value]
|
||||
contents.remove_at(value)
|
||||
var item = contents.keys[value]
|
||||
contents[item] -= 1
|
||||
if contents[item] == 0:
|
||||
contents.erase(item)
|
||||
item_removed.emit(item)
|
||||
|
||||
|
||||
@rpc("reliable", "any_peer")
|
||||
func networked_set_selected(value):
|
||||
selected_index = value
|
||||
|
@ -5,10 +5,19 @@ class_name ItemCard
|
||||
|
||||
|
||||
func pick_up() -> Card:
|
||||
queue_free()
|
||||
$CollisionShape3D.call_deferred("set_disabled", true)
|
||||
$model/CSGSphere3D.set_visible(false)
|
||||
$AudioStreamPlayer3D.play()
|
||||
networked_pick_up.rpc()
|
||||
return card
|
||||
|
||||
|
||||
@rpc func networked_pick_up():
|
||||
@rpc
|
||||
func networked_pick_up():
|
||||
$CollisionShape3D.call_deferred("set_disabled", true)
|
||||
$model/CSGSphere3D.set_visible(false)
|
||||
$AudioStreamPlayer3D.play()
|
||||
|
||||
|
||||
func _on_audio_stream_player_3d_finished() -> void:
|
||||
queue_free()
|
||||
|
8
Scripts/killbox.gd
Normal file
8
Scripts/killbox.gd
Normal file
@ -0,0 +1,8 @@
|
||||
extends Area3D
|
||||
class_name KillBox
|
||||
|
||||
@export var level: Level
|
||||
|
||||
|
||||
func _on_body_entered(body: Node3D) -> void:
|
||||
body.position = level.player_spawns[0].global_position
|
@ -2,11 +2,38 @@ extends GridMap
|
||||
class_name Level
|
||||
|
||||
@export var enemy_pool: Array[Enemy]
|
||||
@export var player_spawns : Array[Node3D] = []
|
||||
@export var enemy_spawns : Array[Node3D] = []
|
||||
@export var enemy_goals : Array[Node3D] = []
|
||||
@export var player_spawns: Array[Node3D]
|
||||
@export var enemy_spawns: Array[Node3D]
|
||||
@export var enemy_goals: Array[Node3D]
|
||||
@export var corpses: Node3D
|
||||
@export var a_star_graph_3d: AStarGraph3D
|
||||
@export var cinematic_cam: CinematicCamManager
|
||||
@export var printer: CardPrinter
|
||||
@export var shop: ShopStand
|
||||
@export var obstacle_scenes: Array[PackedScene]
|
||||
|
||||
|
||||
func generate_obstacles():
|
||||
var obstacle_count = randi_range(0, 5)
|
||||
for index in obstacle_count:
|
||||
var x = randi_range(0, a_star_graph_3d.grid_size.x - 1)
|
||||
var y = randi_range(0, a_star_graph_3d.grid_size.y - 1)
|
||||
var point_id = int(x * a_star_graph_3d.grid_size.y + y)
|
||||
var chosen_obstacle = randi_range(0, obstacle_scenes.size() - 1)
|
||||
var obstacle = obstacle_scenes[chosen_obstacle].instantiate() as GridMap
|
||||
var orientations = [0, 90, 180, 270]
|
||||
var chosen_orientation = orientations.pick_random()
|
||||
obstacle.position = a_star_graph_3d.astar.get_point_position(point_id)
|
||||
obstacle.set_rotation_degrees(Vector3(0, chosen_orientation, 0))
|
||||
add_child(obstacle)
|
||||
for cell in obstacle.get_used_cells():
|
||||
var cell_pos = obstacle.to_global(obstacle.map_to_local(cell))
|
||||
var map_coord = Vector3i(round(cell_pos.x), 0, round(cell_pos.z))
|
||||
#print("cell_pos: " + str(cell_pos) + "cell.z" + str(cell_pos.z) + ", map_coord: " + str(map_coord))
|
||||
var closest_point = a_star_graph_3d.astar.get_closest_point(cell_pos, true)
|
||||
var closest_point_pos = a_star_graph_3d.astar.get_point_position(closest_point)
|
||||
if closest_point_pos.distance_to(Vector3(cell_pos.x, closest_point_pos.y, cell_pos.z)) <= 0.5:
|
||||
a_star_graph_3d.astar.set_point_disabled(closest_point)
|
||||
if get_cell_item(map_coord) == 1:
|
||||
set_cell_item(map_coord, INVALID_CELL_ITEM)
|
||||
obstacle.queue_free()
|
||||
|
@ -1,6 +1,16 @@
|
||||
extends Control
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var wins = float(Data.save_stats.twenty_game_history.count(true))
|
||||
var games = float(Data.save_stats.twenty_game_history.size())
|
||||
var winrate = int((wins / games) * 100.0)
|
||||
$Label2.text = "Your 20-game winrate is now: " + str(winrate) + "%!"
|
||||
$Label3.text = "Total games: " + str(Data.save_stats.wins + Data.save_stats.losses)
|
||||
$Label4.text = "Total wins: " + str(Data.save_stats.wins)
|
||||
$Label5.text = "Total losses: " + str(Data.save_stats.losses)
|
||||
|
||||
|
||||
func _on_quit_button_pressed() -> void:
|
||||
Game.scene_switch_main_menu()
|
||||
queue_free()
|
||||
@ -9,3 +19,7 @@ func _on_quit_button_pressed() -> void:
|
||||
func _on_restart_button_pressed() -> void:
|
||||
Game.restart_game()
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
@ -22,9 +22,10 @@ func _ready() -> void:
|
||||
spawn.signal_for_when_enemy_spawns.connect(increase_enemy_count)
|
||||
spawn.spawn_wave(new_wave)
|
||||
|
||||
#these exist purely to make the enemies that spawn on the main menu happy
|
||||
func enemy_died(_some_arg):
|
||||
pass
|
||||
func damage_goal():
|
||||
func damage_goal(_some_arg1, _some_arg2):
|
||||
pass
|
||||
func increase_enemy_count():
|
||||
pass
|
||||
@ -65,3 +66,7 @@ func _on_options_button_pressed() -> void:
|
||||
|
||||
func _on_multiplayer_button_pressed() -> void:
|
||||
Game.scene_switch_to_multiplayer_lobby()
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
@ -125,3 +125,7 @@ func add_player(new_player_profile_dict):
|
||||
@rpc("any_peer", "reliable", "call_local")
|
||||
func networked_ready_player(peer_id):
|
||||
scoreboard.set_player_ready_state(peer_id, true)
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
@ -15,6 +15,8 @@ func _on_confirm_pressed() -> void:
|
||||
graphics.save()
|
||||
Data.graphics.apply_graphical_settings(get_viewport())
|
||||
Data.graphics.save_profile_to_disk()
|
||||
Data.audio.apply_audio_settings()
|
||||
Data.audio.save_profile_to_disk()
|
||||
Data.preferences.save_profile_to_disk()
|
||||
Data.player_keymap.save_profile_to_disk()
|
||||
queue_free()
|
||||
|
@ -44,3 +44,7 @@ func _on_quit_to_desktop_pressed() -> void:
|
||||
func quit_game(confirmation):
|
||||
if confirmation:
|
||||
Game.quit_to_desktop()
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
@ -16,3 +16,11 @@ func get_server_ip() -> String:
|
||||
return $VBoxContainer/HBoxContainer/ServerIP.text
|
||||
func get_server_port() -> String:
|
||||
return $VBoxContainer/HBoxContainer2/ServerPort.text
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
||||
|
||||
func _on_button_pressed() -> void:
|
||||
Game.scene_switch_main_menu()
|
||||
|
@ -44,3 +44,7 @@ func setup_the_ui():
|
||||
loadout_editor.set_visible(true)
|
||||
$ReadyButton.set_visible(true)
|
||||
chatbox.set_visible(true)
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
@ -12,3 +12,7 @@ func set_popup(prompt_text, placeholder_text, confirm_text):
|
||||
func _on_button_pressed() -> void:
|
||||
completed.emit($VBoxContainer/LineEdit.text)
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
@ -25,7 +25,7 @@ var has_card : bool :
|
||||
set(_value):
|
||||
return
|
||||
get:
|
||||
return inventory.contents.size() != 0
|
||||
return inventory.size != 0
|
||||
|
||||
|
||||
func set_color(color: Color):
|
||||
@ -44,7 +44,7 @@ func add_card(card: Card, caller_id: int) -> bool:
|
||||
|
||||
|
||||
func remove_card():
|
||||
Game.connected_players_nodes[tower.owner_id].add_card(inventory.remove())
|
||||
Game.connected_players_nodes[tower.owner_id].add_card(inventory.remove_at(0))
|
||||
networked_remove_tower.rpc()
|
||||
|
||||
|
||||
@ -74,8 +74,8 @@ func set_west_wall(value : bool):
|
||||
|
||||
@rpc("reliable", "call_local", "any_peer")
|
||||
func networked_spawn_tower(caller_id : int):
|
||||
tower = inventory.selected_item.turret_scene.instantiate() as Tower
|
||||
tower.stats = inventory.selected_item.tower_stats
|
||||
tower = inventory.contents.keys()[0].turret_scene.instantiate() as Tower
|
||||
tower.stats = inventory.contents.keys()[0].tower_stats
|
||||
tower.name = "tower"
|
||||
tower.base_name = name
|
||||
tower.owner_id = caller_id
|
||||
|
@ -1,6 +1,16 @@
|
||||
extends Control
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var wins = float(Data.save_stats.twenty_game_history.count(true))
|
||||
var games = float(Data.save_stats.twenty_game_history.size())
|
||||
var winrate = int((wins / games) * 100.0)
|
||||
$Label2.text = "Your 20-game winrate is now: " + str(winrate) + "%!"
|
||||
$Label3.text = "Total games: " + str(Data.save_stats.wins + Data.save_stats.losses)
|
||||
$Label4.text = "Total wins: " + str(Data.save_stats.wins)
|
||||
$Label5.text = "Total losses: " + str(Data.save_stats.losses)
|
||||
|
||||
|
||||
func _on_quit_button_pressed() -> void:
|
||||
Game.scene_switch_main_menu()
|
||||
queue_free()
|
||||
@ -9,3 +19,7 @@ func _on_quit_button_pressed() -> void:
|
||||
func _on_play_button_pressed() -> void:
|
||||
Game.restart_game()
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=42 format=3 uid="uid://y1qa1g3ic8sp"]
|
||||
[gd_scene load_steps=48 format=3 uid="uid://y1qa1g3ic8sp"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/level.gd" id="1_ws6nn"]
|
||||
[ext_resource type="PackedScene" uid="uid://d2yv447trxkwt" path="res://Scenes/enemy_spawner.tscn" id="3_5imwp"]
|
||||
@ -8,19 +8,24 @@
|
||||
[ext_resource type="Resource" uid="uid://boik1gnpl4v0a" path="res://Worlds/GreenPlanet/Enemies/dog_boss.tres" id="6_oty0h"]
|
||||
[ext_resource type="Resource" uid="uid://dsgkwh3opyqtx" path="res://Worlds/GreenPlanet/Enemies/airenemy.tres" id="7_07st7"]
|
||||
[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Worlds/GreenPlanet/Enemies/airenemy2.tres" id="8_sf1ao"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjvgqek2phoq1" path="res://obstacle1.tscn" id="9_luxf3"]
|
||||
[ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/card_constructor.tscn" id="9_r25gu"]
|
||||
[ext_resource type="Script" path="res://Scripts/enemy_goal.gd" id="9_s3rd7"]
|
||||
[ext_resource type="Script" path="res://Scripts/CinemaCam.gd" id="9_xuyhn"]
|
||||
[ext_resource type="PackedScene" uid="uid://iohlxrso4bl8" path="res://Worlds/GreenPlanet/Decorations/tree.tscn" id="10_7v1co"]
|
||||
[ext_resource type="PackedScene" uid="uid://dk0k7ndwhaenh" path="res://obstacle2.tscn" id="10_dsyfh"]
|
||||
[ext_resource type="Script" path="res://Scripts/AStarGraph3D.gd" id="11_07ukk"]
|
||||
[ext_resource type="Script" path="res://Scripts/visualized_path.gd" id="11_d7ofl"]
|
||||
[ext_resource type="PackedScene" uid="uid://ds4sa5xyfgyo0" path="res://obstacle3.tscn" id="11_dfexu"]
|
||||
[ext_resource type="AudioStream" uid="uid://chrf1dcq2ujw0" path="res://PCs/Universal/ClassCards/Assault/shot1.wav" id="11_l537x"]
|
||||
[ext_resource type="PackedScene" uid="uid://sud13mytdwhv" path="res://obstacle4.tscn" id="12_mctwo"]
|
||||
[ext_resource type="MeshLibrary" uid="uid://jfr8j8kycfa5" path="res://Worlds/GreenPlanet/tilemap.tres" id="12_ywwug"]
|
||||
[ext_resource type="Texture2D" uid="uid://4gff4l03ibpm" path="res://Assets/Textures/scaffold.png" id="15_61y1c"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3h3lmlf3hljl" path="res://Worlds/GreenPlanet/Decorations/bush.tscn" id="16_lhsvw"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnvndwp3q7rke" path="res://Assets/Textures/dirt.png" id="17_oq0rj"]
|
||||
[ext_resource type="PackedScene" uid="uid://7g3jev3v6d3l" path="res://Scenes/shop_stand.tscn" id="19_h6brl"]
|
||||
[ext_resource type="Texture2D" uid="uid://r202vo47jw1q" path="res://Assets/Textures/enemyhealth.png" id="21_flsqn"]
|
||||
[ext_resource type="Script" path="res://Scripts/killbox.gd" id="26_tuncf"]
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_3rdl2"]
|
||||
_data = {
|
||||
@ -117,6 +122,9 @@ texture_filter = 0
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_dyydf"]
|
||||
material = SubResource("StandardMaterial3D_sugxr")
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_134um"]
|
||||
size = Vector3(38.58, 1, 53.35)
|
||||
|
||||
[node name="GridMap" type="GridMap" node_paths=PackedStringArray("player_spawns", "enemy_spawns", "enemy_goals", "corpses", "a_star_graph_3d", "cinematic_cam", "printer", "shop")]
|
||||
mesh_library = ExtResource("12_ywwug")
|
||||
cell_size = Vector3(1, 1, 1)
|
||||
@ -135,7 +143,8 @@ a_star_graph_3d = NodePath("AStarGraph3D")
|
||||
cinematic_cam = NodePath("CinemaCam")
|
||||
printer = NodePath("CardPrinter")
|
||||
shop = NodePath("ShopStand")
|
||||
metadata/_editor_floor_ = Vector3(-15, 0, 0)
|
||||
obstacle_scenes = Array[PackedScene]([ExtResource("9_luxf3"), ExtResource("10_dsyfh"), ExtResource("11_dfexu"), ExtResource("12_mctwo")])
|
||||
metadata/_editor_floor_ = Vector3(4, 0, 8)
|
||||
|
||||
[node name="CinemaCam" type="Node3D" parent="." node_paths=PackedStringArray("path_follows", "cameras")]
|
||||
script = ExtResource("9_xuyhn")
|
||||
@ -879,6 +888,7 @@ transform = Transform3D(0.716412, 0, 0.697678, 0, 1, 0, -0.697678, 0, 0.716412,
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.5192, 0, -17.6837)
|
||||
|
||||
[node name="PlayerSpawnLocations" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.428, 0, 0)
|
||||
|
||||
[node name="PlayerSpawn1" type="Node3D" parent="PlayerSpawnLocations"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 1, -1)
|
||||
@ -1115,4 +1125,14 @@ texture = ExtResource("21_flsqn")
|
||||
|
||||
[node name="Corpses" type="Node3D" parent="."]
|
||||
|
||||
[node name="Area3D" type="Area3D" parent="." node_paths=PackedStringArray("level")]
|
||||
collision_mask = 2
|
||||
script = ExtResource("26_tuncf")
|
||||
level = NodePath("..")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -6.8471, 0)
|
||||
shape = SubResource("BoxShape3D_134um")
|
||||
|
||||
[connection signal="body_entered" from="EnemyGoal/Area3D" to="EnemyGoal" method="_on_area_3d_body_entered"]
|
||||
[connection signal="body_entered" from="Area3D" to="Area3D" method="_on_body_entered"]
|
||||
|
File diff suppressed because one or more lines are too long
@ -12,4 +12,9 @@ func _ready() -> void:
|
||||
var card = hero_card_scene.instantiate()
|
||||
card.set_hero(hero)
|
||||
card.pressed.connect(func(x): hero_selected.emit(Data.characters.find(x)))
|
||||
card.button_mouse_entered.connect(_on_button_mouse_entered)
|
||||
hbox.add_child(card)
|
||||
|
||||
|
||||
func _on_button_mouse_entered():
|
||||
$AudioStreamPlayer.play()
|
||||
|
@ -1,7 +1,14 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://dqqitmhu66a7d"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dqqitmhu66a7d"]
|
||||
|
||||
[ext_resource type="Script" path="res://charselect.gd" id="1_h2h26"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnsf2degj5tio" path="res://Scenes/UI/hero_card.tscn" id="1_v2mfo"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="3_o88ca"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_ehpk7"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("3_o88ca")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Control" type="Control" node_paths=PackedStringArray("hbox")]
|
||||
layout_mode = 3
|
||||
@ -36,3 +43,7 @@ vertical_alignment = 1
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_ehpk7")
|
||||
bus = &"SFX"
|
||||
|
@ -7,7 +7,7 @@ func set_sprite(tex: Texture):
|
||||
|
||||
func _ready() -> void:
|
||||
var tween = create_tween()
|
||||
tween.tween_interval(15.0)
|
||||
tween.tween_interval(20.0)
|
||||
tween.tween_property($Sprite3D, "modulate", Color(1.0, 1.0, 1.0, 0.0), 4.0)
|
||||
tween.tween_callback(queue_free)
|
||||
|
||||
|
15
default_bus_layout.tres
Normal file
15
default_bus_layout.tres
Normal file
@ -0,0 +1,15 @@
|
||||
[gd_resource type="AudioBusLayout" format=3 uid="uid://cb2keh5ut3qvu"]
|
||||
|
||||
[resource]
|
||||
bus/1/name = &"Music"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/send = &"Master"
|
||||
bus/2/name = &"SFX"
|
||||
bus/2/solo = false
|
||||
bus/2/mute = false
|
||||
bus/2/bypass_fx = false
|
||||
bus/2/volume_db = 0.0
|
||||
bus/2/send = &"Master"
|
@ -1,6 +1,7 @@
|
||||
extends PanelContainer
|
||||
|
||||
signal pressed(hero_class)
|
||||
signal button_mouse_entered()
|
||||
|
||||
var hero_class: HeroClass
|
||||
|
||||
@ -13,3 +14,7 @@ func set_hero(hero: HeroClass):
|
||||
|
||||
func _on_button_pressed() -> void:
|
||||
pressed.emit(hero_class)
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
button_mouse_entered.emit()
|
||||
|
12
obstacle1.tscn
Normal file
12
obstacle1.tscn
Normal file
@ -0,0 +1,12 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cjvgqek2phoq1"]
|
||||
|
||||
[ext_resource type="MeshLibrary" uid="uid://jfr8j8kycfa5" path="res://Worlds/GreenPlanet/tilemap.tres" id="1_5n7rt"]
|
||||
|
||||
[node name="Node3D" type="GridMap"]
|
||||
mesh_library = ExtResource("1_5n7rt")
|
||||
cell_size = Vector3(1, 1, 1)
|
||||
cell_center_x = false
|
||||
cell_center_z = false
|
||||
data = {
|
||||
"cells": PackedInt32Array(0, 0, 0, 65535, 65534, 0, 0, 65534, 0, 1, 65534, 0, 2, 65535, 0, 2, 0, 0, 2, 1, 0, 1, 2, 0, 0, 2, 0, 65535, 2, 0, 65534, 1, 0, 65534, 0, 0, 65534, 65535, 0, 65535, 65535, 0, 0, 65535, 0, 1, 65535, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 65535, 1, 0, 65535, 0, 0)
|
||||
}
|
12
obstacle2.tscn
Normal file
12
obstacle2.tscn
Normal file
@ -0,0 +1,12 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dk0k7ndwhaenh"]
|
||||
|
||||
[ext_resource type="MeshLibrary" uid="uid://jfr8j8kycfa5" path="res://Worlds/GreenPlanet/tilemap.tres" id="1_vcqgp"]
|
||||
|
||||
[node name="Node3D" type="GridMap"]
|
||||
mesh_library = ExtResource("1_vcqgp")
|
||||
cell_size = Vector3(1, 1, 1)
|
||||
cell_center_x = false
|
||||
cell_center_z = false
|
||||
data = {
|
||||
"cells": PackedInt32Array(0, 0, 0, 0, 65535, 0, 65535, 0, 0, 65535, 65535, 0, 65534, 65535, 0)
|
||||
}
|
12
obstacle3.tscn
Normal file
12
obstacle3.tscn
Normal file
@ -0,0 +1,12 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://ds4sa5xyfgyo0"]
|
||||
|
||||
[ext_resource type="MeshLibrary" uid="uid://jfr8j8kycfa5" path="res://Worlds/GreenPlanet/tilemap.tres" id="1_rgq2d"]
|
||||
|
||||
[node name="Node3D" type="GridMap"]
|
||||
mesh_library = ExtResource("1_rgq2d")
|
||||
cell_size = Vector3(1, 1, 1)
|
||||
cell_center_x = false
|
||||
cell_center_z = false
|
||||
data = {
|
||||
"cells": PackedInt32Array(0, 0, 0, 1, 0, 0, 1, 65535, 0, 2, 65534, 0, 2, 65535, 0, 0, 65535, 0, 0, 1, 0, 65535, 65535, 0, 65535, 65534, 0)
|
||||
}
|
12
obstacle4.tscn
Normal file
12
obstacle4.tscn
Normal file
@ -0,0 +1,12 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://sud13mytdwhv"]
|
||||
|
||||
[ext_resource type="MeshLibrary" uid="uid://jfr8j8kycfa5" path="res://Worlds/GreenPlanet/tilemap.tres" id="1_fmyjr"]
|
||||
|
||||
[node name="Node3D" type="GridMap"]
|
||||
mesh_library = ExtResource("1_fmyjr")
|
||||
cell_size = Vector3(1, 1, 1)
|
||||
cell_center_x = false
|
||||
cell_center_z = false
|
||||
data = {
|
||||
"cells": PackedInt32Array(0, 0, 0, 1, 0, 0, 0, 65535, 0, 0, 1, 0)
|
||||
}
|
24
shot1.wav.import
Normal file
24
shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dknygn5eyuhxt"
|
||||
path="res://.godot/imported/shot1.wav-8cfbbb7b0ff749051ef7f7716ad4f12e.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-8cfbbb7b0ff749051ef7f7716ad4f12e.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=0
|
Loading…
Reference in New Issue
Block a user