added some sound triggers and holes in the map

This commit is contained in:
2023-12-17 02:02:16 +11:00
parent 046c4f5afb
commit e1a867d2a9
99 changed files with 1375 additions and 239 deletions
Assets/Textures
PCs
Scenes
Scripts
Worlds/GreenPlanet
charselect.gdcharselect.tscncorpse.gddefault_bus_layout.treshero_select_card.gdobstacle1.tscnobstacle2.tscnobstacle3.tscnobstacle4.tscnshot1.wavshot1.wav.import

@ -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")

Binary file not shown.

@ -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")

Binary file not shown.

@ -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")

Binary file not shown.

@ -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")

Binary file not shown.

@ -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")

Binary file not shown.

@ -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")

Binary file not shown.

@ -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")

Binary file not shown.

@ -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")

Binary file not shown.

@ -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")

@ -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"]