generalized card vs item, cleaned up some headbob stuff, added the ability to refund a wall block

This commit is contained in:
2023-12-08 03:05:11 +11:00
parent dfeddc08e0
commit 1e3e380b90
31 changed files with 286 additions and 186 deletions

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://deer0awg4d18o"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://deer0awg4d18o"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_yqa4b"]
[ext_resource type="Texture2D" uid="uid://celay30i4soud" path="res://PCs/Universal/ClassCards/Assault/g_assault.png" id="2_a8may"]
[ext_resource type="PackedScene" uid="uid://2eehfcrsednw" path="res://PCs/Universal/ClassCards/Assault/weapon_assault.tscn" id="3_28y3b"]
[ext_resource type="Resource" uid="uid://bdmsiw45xxhiv" path="res://PCs/Universal/ClassCards/Assault/tower_stats.tres" id="3_ks0jw"]
[ext_resource type="PackedScene" uid="uid://bbfm4i4xlkwdr" path="res://PCs/Universal/ClassCards/Assault/tower_assault.tscn" id="4_5nu32"]
[ext_resource type="Resource" uid="uid://smctw4ogm4rx" path="res://PCs/Universal/ClassCards/Assault/weapon_stats.tres" id="4_est7t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_q0mw6"]
atlas = ExtResource("2_a8may")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_yqa4b")
title = "Assault"
rarity = 0
faction = 0
sprite = SubResource("AtlasTexture_q0mw6")
turret_scene = ExtResource("4_5nu32")
weapon_scene = ExtResource("3_28y3b")
weapon_stats = ExtResource("4_est7t")
tower_stats = ExtResource("3_ks0jw")
display_name = "Assault"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://bywwtjdjsgdsj"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://bywwtjdjsgdsj"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_nobd8"]
[ext_resource type="Texture2D" uid="uid://dnlplq8duves3" path="res://PCs/Universal/ClassCards/Blowdart/blowdart.png" id="2_jglqy"]
[ext_resource type="PackedScene" uid="uid://cy05ssd52exf0" path="res://PCs/Universal/ClassCards/Blowdart/weapon_blowdart.tscn" id="3_shm45"]
[ext_resource type="Resource" uid="uid://cfbap4o68urti" path="res://PCs/Universal/ClassCards/Blowdart/tower_stats.tres" id="3_t7ppb"]
[ext_resource type="PackedScene" uid="uid://cq5q6c28pwi47" path="res://PCs/Universal/ClassCards/Blowdart/tower_blowdart.tscn" id="4_wvh75"]
[ext_resource type="Resource" uid="uid://c6e50linnk2i7" path="res://PCs/Universal/ClassCards/Blowdart/weapon_stats.tres" id="4_x71t4"]
[sub_resource type="AtlasTexture" id="AtlasTexture_jl74p"]
atlas = ExtResource("2_jglqy")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_nobd8")
title = "Blowdart"
rarity = 1
faction = 0
sprite = SubResource("AtlasTexture_jl74p")
turret_scene = ExtResource("4_wvh75")
weapon_scene = ExtResource("3_shm45")
weapon_stats = ExtResource("4_x71t4")
tower_stats = ExtResource("3_t7ppb")
display_name = "Blowdart"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://blgngx360vff1"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://blgngx360vff1"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_qtxcq"]
[ext_resource type="Texture2D" uid="uid://3qcdx7n440sc" path="res://PCs/Universal/ClassCards/BombLauncher/grenade_launcher.png" id="2_qpxaq"]
[ext_resource type="Resource" uid="uid://8eaecilvan23" path="res://PCs/Universal/ClassCards/BombLauncher/tower_stats.tres" id="3_gknxe"]
[ext_resource type="PackedScene" uid="uid://c3fqlkytyc62u" path="res://PCs/Universal/ClassCards/BombLauncher/weapon_bomb_launcher.tscn" id="3_s56j6"]
[ext_resource type="Resource" uid="uid://co6eorobj1xuu" path="res://PCs/Universal/ClassCards/BombLauncher/weapon_stats.tres" id="4_s74ea"]
[ext_resource type="PackedScene" uid="uid://d2cch7qrwocg8" path="res://PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.tscn" id="4_vc8pe"]
[sub_resource type="AtlasTexture" id="AtlasTexture_rat6o"]
atlas = ExtResource("2_qpxaq")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_qtxcq")
title = "Bomb Launcher"
rarity = 0
faction = 0
sprite = SubResource("AtlasTexture_rat6o")
turret_scene = ExtResource("4_vc8pe")
weapon_scene = ExtResource("3_s56j6")
weapon_stats = ExtResource("4_s74ea")
tower_stats = ExtResource("3_gknxe")
display_name = "Bomb Launcher"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://bibx2my7igspq"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://bibx2my7igspq"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_qktm8"]
[ext_resource type="Texture2D" uid="uid://mwgpnnm3g3re" path="res://PCs/Universal/ClassCards/Fireball/fireball.png" id="2_lfltq"]
[ext_resource type="Resource" uid="uid://dnvqghpwyuw84" path="res://PCs/Universal/ClassCards/Fireball/tower_stats.tres" id="3_1l6fp"]
[ext_resource type="PackedScene" uid="uid://dnwjfb4fexr0o" path="res://PCs/Universal/ClassCards/Fireball/weapon_fireball.tscn" id="3_4c0mu"]
[ext_resource type="PackedScene" uid="uid://dwwgvgn0ds8tk" path="res://PCs/Universal/ClassCards/Fireball/tower_fireball.tscn" id="4_e3adw"]
[ext_resource type="Resource" uid="uid://dhwhwicgpw7yh" path="res://PCs/Universal/ClassCards/Fireball/weapon_stats.tres" id="4_folo6"]
[sub_resource type="AtlasTexture" id="AtlasTexture_wvh1s"]
atlas = ExtResource("2_lfltq")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_qktm8")
title = "Fireball"
rarity = 3
faction = 0
sprite = SubResource("AtlasTexture_wvh1s")
turret_scene = ExtResource("4_e3adw")
weapon_scene = ExtResource("3_4c0mu")
weapon_stats = ExtResource("4_folo6")
tower_stats = ExtResource("3_1l6fp")
display_name = "Fireball"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://dg4pjt47q8xpw"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://dg4pjt47q8xpw"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_xmwih"]
[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://PCs/Universal/ClassCards/GlueLauncher/glue_gun.png" id="2_ocjdv"]
[ext_resource type="Resource" uid="uid://cdtjbxs21peqg" path="res://PCs/Universal/ClassCards/Flamethrower/tower_stats.tres" id="3_sjxkl"]
[ext_resource type="PackedScene" uid="uid://dhv7m4lky7bd8" path="res://PCs/Universal/ClassCards/Flamethrower/weapon_flamethrower.tscn" id="4_800j1"]
[ext_resource type="PackedScene" uid="uid://dkoj1766ygo3f" path="res://PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.tscn" id="4_rgkdc"]
[ext_resource type="Resource" uid="uid://yjknwdimtm8g" path="res://PCs/Universal/ClassCards/Flamethrower/weapon_stats.tres" id="5_qi4e4"]
[sub_resource type="AtlasTexture" id="AtlasTexture_bcolm"]
atlas = ExtResource("2_ocjdv")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_xmwih")
title = "Flamethrower"
rarity = 2
faction = 0
sprite = SubResource("AtlasTexture_bcolm")
turret_scene = ExtResource("4_rgkdc")
weapon_scene = ExtResource("4_800j1")
weapon_stats = ExtResource("5_qi4e4")
tower_stats = ExtResource("3_sjxkl")
display_name = "Flamethrower"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://cvto66tp7rrst"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://cvto66tp7rrst"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_5html"]
[ext_resource type="Texture2D" uid="uid://bjh6e8t8br6rq" path="res://PCs/Universal/ClassCards/Gatling/gatling.png" id="2_rof1s"]
[ext_resource type="Resource" uid="uid://nxl5wabgl36t" path="res://PCs/Universal/ClassCards/Gatling/tower_stats.tres" id="3_4hykq"]
[ext_resource type="PackedScene" uid="uid://dkxi1ssoa44jn" path="res://PCs/Universal/ClassCards/Gatling/weapon_gatling.tscn" id="3_wkjyf"]
[ext_resource type="Resource" uid="uid://cj2x1jvo8l4ot" path="res://PCs/Universal/ClassCards/Gatling/weapon_stats.tres" id="4_76fd1"]
[ext_resource type="PackedScene" uid="uid://bjuc3x7u3f271" path="res://PCs/Universal/ClassCards/Gatling/tower_gatling.tscn" id="4_thk7u"]
[sub_resource type="AtlasTexture" id="AtlasTexture_rwa4l"]
atlas = ExtResource("2_rof1s")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_5html")
title = "Gatling"
rarity = 0
faction = 0
sprite = SubResource("AtlasTexture_rwa4l")
turret_scene = ExtResource("4_thk7u")
weapon_scene = ExtResource("3_wkjyf")
weapon_stats = ExtResource("4_76fd1")
tower_stats = ExtResource("3_4hykq")
display_name = "Gatling"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://fwsg5av1egp2"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://fwsg5av1egp2"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_tdu8a"]
[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://PCs/Universal/ClassCards/GlueLauncher/glue_gun.png" id="2_lh4dk"]
[ext_resource type="Resource" uid="uid://boj1ho5x0sxtq" path="res://PCs/Universal/ClassCards/GlueLauncher/weapon_stats.tres" id="3_dukui"]
[ext_resource type="Resource" uid="uid://bvkwgmbxje0dp" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres" id="3_e5fta"]
[ext_resource type="PackedScene" uid="uid://bb44pintbwdcf" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn" id="4_xcrut"]
[ext_resource type="PackedScene" uid="uid://takm6diuy71m" path="res://PCs/Universal/ClassCards/GlueLauncher/weapon_glue_launcher.tscn" id="5_l3c38"]
[sub_resource type="AtlasTexture" id="AtlasTexture_7gjas"]
atlas = ExtResource("2_lh4dk")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_tdu8a")
title = "Glue Launcher"
rarity = 1
faction = 0
sprite = SubResource("AtlasTexture_7gjas")
turret_scene = ExtResource("4_xcrut")
weapon_scene = ExtResource("5_l3c38")
weapon_stats = ExtResource("3_dukui")
tower_stats = ExtResource("3_e5fta")
display_name = "Glue Launcher"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://cb1uqjl1387kk"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://cb1uqjl1387kk"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_cmmto"]
[ext_resource type="Texture2D" uid="uid://mqo5qcghfit8" path="res://PCs/Universal/ClassCards/Icicle/icicle.png" id="2_w5fi7"]
[ext_resource type="Resource" uid="uid://d34bfj5togyyt" path="res://PCs/Universal/ClassCards/Icicle/tower_stats.tres" id="3_p8y0m"]
[ext_resource type="PackedScene" uid="uid://v3iuf4lt2iff" path="res://PCs/Universal/ClassCards/Icicle/weapon_icicle.tscn" id="3_ve3rv"]
[ext_resource type="PackedScene" uid="uid://miawrarbb1up" path="res://PCs/Universal/ClassCards/Icicle/tower_icicle.tscn" id="4_vgqev"]
[ext_resource type="Resource" uid="uid://ckjmym1ofww4" path="res://PCs/Universal/ClassCards/Icicle/weapon_stats.tres" id="4_yv37w"]
[sub_resource type="AtlasTexture" id="AtlasTexture_7due4"]
atlas = ExtResource("2_w5fi7")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_cmmto")
title = "Icicle"
rarity = 3
faction = 0
sprite = SubResource("AtlasTexture_7due4")
turret_scene = ExtResource("4_vgqev")
weapon_scene = ExtResource("3_ve3rv")
weapon_stats = ExtResource("4_yv37w")
tower_stats = ExtResource("3_p8y0m")
display_name = "Icicle"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://b3o112jw3loiu"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://b3o112jw3loiu"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_0ciid"]
[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://PCs/Universal/ClassCards/GlueLauncher/glue_gun.png" id="2_as4jg"]
[ext_resource type="Resource" uid="uid://cssdyxk8oefsd" path="res://PCs/Universal/ClassCards/Reactor/tower_stats.tres" id="3_7vuex"]
[ext_resource type="PackedScene" uid="uid://yymj42pp6v1t" path="res://PCs/Universal/ClassCards/Reactor/weapon_reactor.tscn" id="3_de72q"]
[ext_resource type="PackedScene" uid="uid://dqrkn0vp2tmrh" path="res://PCs/Universal/ClassCards/Reactor/tower_reactor.tscn" id="4_1krig"]
[ext_resource type="Resource" uid="uid://ipfr7emuarbj" path="res://PCs/Universal/ClassCards/Reactor/weapon_stats.tres" id="4_wilo7"]
[sub_resource type="AtlasTexture" id="AtlasTexture_7aw4q"]
atlas = ExtResource("2_as4jg")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_0ciid")
title = "Reactor"
rarity = 4
faction = 0
sprite = SubResource("AtlasTexture_7aw4q")
turret_scene = ExtResource("4_1krig")
weapon_scene = ExtResource("3_de72q")
weapon_stats = ExtResource("4_wilo7")
tower_stats = ExtResource("3_7vuex")
display_name = "Reactor"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://ds8qx4ggmqetk"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://ds8qx4ggmqetk"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_84afc"]
[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://PCs/Universal/ClassCards/GlueLauncher/glue_gun.png" id="2_kdslp"]
[ext_resource type="Resource" uid="uid://st0qrut5nxrm" path="res://PCs/Universal/ClassCards/Refrigerator/tower_stats.tres" id="3_bihii"]
[ext_resource type="PackedScene" uid="uid://b0vi11kj3lxng" path="res://PCs/Universal/ClassCards/Refrigerator/weapon_refrigerator.tscn" id="4_0oufq"]
[ext_resource type="PackedScene" uid="uid://bqaynyhxdr4to" path="res://PCs/Universal/ClassCards/Refrigerator/tower_refrigerator.tscn" id="4_7x6qx"]
[ext_resource type="Resource" uid="uid://5l758yxfpi1e" path="res://PCs/Universal/ClassCards/Refrigerator/weapon_stats.tres" id="5_dqmyh"]
[sub_resource type="AtlasTexture" id="AtlasTexture_fuxlt"]
atlas = ExtResource("2_kdslp")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_84afc")
title = "Refrigerator"
rarity = 1
faction = 0
sprite = SubResource("AtlasTexture_fuxlt")
turret_scene = ExtResource("4_7x6qx")
weapon_scene = ExtResource("4_0oufq")
weapon_stats = ExtResource("5_dqmyh")
tower_stats = ExtResource("3_bihii")
display_name = "Refrigerator"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://b37r54q84vqoi"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://b37r54q84vqoi"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_ly0o5"]
[ext_resource type="Texture2D" uid="uid://by1y15lm0bppe" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket_launcher.png" id="2_iqnic"]
[ext_resource type="Resource" uid="uid://c65rq455ma8f6" path="res://PCs/Universal/ClassCards/RocketLauncher/tower_stats.tres" id="3_06my6"]
[ext_resource type="PackedScene" uid="uid://bdp7icdejayvr" path="res://PCs/Universal/ClassCards/RocketLauncher/weapon_rocket_launcher.tscn" id="3_qo5gv"]
[ext_resource type="Resource" uid="uid://d2yo07m2mp2mp" path="res://PCs/Universal/ClassCards/RocketLauncher/weapon_stats.tres" id="4_cmvfg"]
[ext_resource type="PackedScene" uid="uid://b3q0f6w30nwsh" path="res://PCs/Universal/ClassCards/RocketLauncher/tower_rocket_launcher.tscn" id="4_hff2k"]
[sub_resource type="AtlasTexture" id="AtlasTexture_u80vk"]
atlas = ExtResource("2_iqnic")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_ly0o5")
title = "Rocket Launcher"
rarity = 0
faction = 0
sprite = SubResource("AtlasTexture_u80vk")
turret_scene = ExtResource("4_hff2k")
weapon_scene = ExtResource("3_qo5gv")
weapon_stats = ExtResource("4_cmvfg")
tower_stats = ExtResource("3_06my6")
display_name = "Rocket Launcher"

View File

@ -1,23 +1,17 @@
[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://ckm88acryitl4"]
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://ckm88acryitl4"]
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_5vmtk"]
[ext_resource type="Texture2D" uid="uid://cv2eycs1j0ho7" path="res://PCs/Universal/ClassCards/Sniper/g_sniper.png" id="2_go86x"]
[ext_resource type="Resource" uid="uid://eb0by6ba1d43" path="res://PCs/Universal/ClassCards/Sniper/tower_stats.tres" id="3_6i55t"]
[ext_resource type="PackedScene" uid="uid://bd65e03fscyxr" path="res://PCs/Universal/ClassCards/Sniper/weapon_sniper.tscn" id="3_qfpvu"]
[ext_resource type="Resource" uid="uid://3y7n1vdvf822" path="res://PCs/Universal/ClassCards/Sniper/weapon_stats.tres" id="4_7kvq1"]
[ext_resource type="PackedScene" uid="uid://bt4qbc5lp4nhr" path="res://PCs/Universal/ClassCards/Sniper/tower_sniper.tscn" id="4_k5nhs"]
[sub_resource type="AtlasTexture" id="AtlasTexture_fckie"]
atlas = ExtResource("2_go86x")
region = Rect2(0, 0, 64, 64)
[resource]
script = ExtResource("1_5vmtk")
title = "Sniper"
rarity = 1
faction = 0
sprite = SubResource("AtlasTexture_fckie")
turret_scene = ExtResource("4_k5nhs")
weapon_scene = ExtResource("3_qfpvu")
weapon_stats = ExtResource("4_7kvq1")
tower_stats = ExtResource("3_6i55t")
display_name = "Sniper"

View File

@ -29,8 +29,8 @@ signal died
@export var weapon_swap_timer : Timer
@export var ears : AudioListener3D
var equipped_card : Card
var offhand_card : Card
var equipped_card
var offhand_card
var weapon : Weapon
var offhand_weapon : Weapon
var weapons_active = false
@ -175,18 +175,20 @@ func _unhandled_input(event: InputEvent) -> void:
hud.add_child(menu)
func add_card(card: Card):
inventory.add(card)
func unpause():
paused = false
movement.paused = false
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
movement.set_process(true)
movement.set_physics_process(true)
func pause():
paused = true
movement.paused = true
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
movement.set_process(false)
movement.set_physics_process(false)
func enter_editing_mode(value):

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=36 format=3 uid="uid://dxgxbtf68lcv5"]
[gd_scene load_steps=37 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"]
@ -86,6 +86,14 @@ shader_parameter/len = 0.015
shader_parameter/spacing = 0.008
shader_parameter/spread = 1.0
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_tsiqi"]
properties/0/path = NodePath(".:position")
properties/0/spawn = true
properties/0/replication_mode = 2
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")]
collision_layer = 2
collision_mask = 37
@ -113,6 +121,9 @@ player_name_tag = NodePath("NametagViewport/Label")
weapon_swap_timer = NodePath("WeaponSwapTimer")
ears = NodePath("AudioListener3D")
[node name="AudioListener3D" type="AudioListener3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("CapsuleShape3D_jbu13")
@ -231,7 +242,7 @@ anchor = NodePath("../..")
[node name="NametagViewport" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(300, 40)
size = Vector2i(1000, 40)
render_target_update_mode = 4
[node name="Label" type="Label" parent="NametagViewport"]
@ -240,7 +251,7 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "QUITE LONG PLAYER NAME"
text = "xXx_TransgenderHyena_xXx"
horizontal_alignment = 1
vertical_alignment = 1
@ -271,6 +282,8 @@ script = ExtResource("6_cf5ap")
script = ExtResource("20_cfhw8")
player = NodePath("..")
head = NodePath("../ViewMovement")
max_look_down_angle = 80.0
max_look_up_angle = 80.0
[node name="HUD" type="CanvasLayer" parent="." node_paths=PackedStringArray("wave_count", "lives_count", "currency_count", "minimap_outline", "crosshair", "minimap", "minimap_cam", "minimap_viewport", "fps_label", "hover_text", "enemy_sprites", "enemy_counts", "weapon_energy_bar", "offhand_energy_bar")]
script = ExtResource("8_yl6ka")
@ -586,7 +599,7 @@ tint_progress = Color(0, 1, 1, 1)
wait_time = 0.9
one_shot = true
[node name="AudioListener3D" type="AudioListener3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
replication_config = SubResource("SceneReplicationConfig_tsiqi")
[connection signal="timeout" from="WeaponSwapTimer" to="." method="_on_timer_timeout"]

View File

@ -9,9 +9,10 @@ class_name PlayerMovement
@export var sprint_boost := 1.3
@export var acceleration := 0.8
@export var friction_percentage := 0.1
@export var max_look_down_angle := 90.0
@export var max_look_up_angle := 90.0
@export_category("Jump")
var jump_held = false
@export var min_height := 0.8
@export var max_height := 1.3
@export var time_to_peak := 0.5
@ -22,11 +23,13 @@ var jump_held = false
@onready var time_to_min_peak : float = (clampf(min_height, 0.0, max_height) / max_height) * time_to_peak
@onready var min_jump_gravity : float = (-2 * clampf(min_height, 0.0, max_height)) / pow(time_to_min_peak, 2)
var paused := false
var zoom_factor := 1.0
var input_vector : Vector2
var can_sprint := true
var sprint_zoom_factor := 0.08
var sprinting := false
var jump_held = false
var head_angle := 0.0
var look_sens : float :
set(_value):
@ -53,13 +56,14 @@ func _physics_process(delta: float) -> void:
velocity = velocity.limit_length(movement_speed * sprint_boost if sprinting else movement_speed)
player.velocity = Vector3(velocity.x, down_velocity + (get_gravity() * delta), velocity.y)
player.move_and_slide()
sync_position.rpc(player.position)
sync_rotation.rpc(player.rotation)
func _process(_delta: float) -> void:
if !is_multiplayer_authority():
return
if paused:
input_vector = Vector2.ZERO
return
can_sprint = true
input_vector = Input.get_vector("Move Left", "Move Right", "Move Forward", "Move Backward")
if input_vector.y >= 0:
@ -84,15 +88,5 @@ func _unhandled_input(event: InputEvent) -> void:
if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
player.rotation.y -= event.relative.x * (look_sens / zoom_factor) * (-1 if Data.preferences.invert_lookX else 1)
head_angle -= event.relative.y * (look_sens / zoom_factor) * (-1 if Data.preferences.invert_lookY else 1)
head_angle = clamp(head_angle, -1.5, 1.5)
head_angle = clamp(head_angle, deg_to_rad(-max_look_down_angle), deg_to_rad(max_look_up_angle))
head.rotation.x = head_angle
@rpc
func sync_position(vec):
player.position = vec
@rpc
func sync_rotation(rot):
player.rotation = rot

View File

@ -6,18 +6,12 @@ class_name ViewMovement
@export var head_bob_camera : Camera3D
@export var head_bob_focus_raycast : RayCast3D
@export var enable_head_bob := true
@export var head_bob_amplitude := 0.040
@export var head_bob_frequency := 0.015
@export var target_stabilisation := false
@export_category("Tilting")
@export var enable_tilt := true
var head_bob_amplitude := 0.001
var head_bob_frequency := 0.015
var tilt_amount := 0.03
var head_bob_start_position : Vector3
func _ready() -> void:
head_bob_start_position = head_bob_camera.position
@export var tilt_amount := 0.02
func _process(delta: float) -> void:
@ -37,23 +31,24 @@ func check_motion(delta) -> void:
if !player.is_on_floor():
reset_position(delta)
return
play_motion(foot_step_motion())
play_motion(sample_lemniscate(Time.get_ticks_msec() * head_bob_frequency), delta)
func reset_position(delta) -> void:
if head_bob_camera.position != head_bob_start_position:
head_bob_camera.position = lerp(head_bob_camera.position, head_bob_start_position, 10.0 * delta)
if head_bob_camera.position != Vector3.ZERO:
head_bob_camera.position = lerp(head_bob_camera.position, Vector3.ZERO, 7.0 * delta)
func foot_step_motion() -> Vector3:
var pos := Vector3.ZERO
pos.y += cos(Time.get_ticks_msec() * head_bob_frequency) * head_bob_amplitude
pos.x += cos(Time.get_ticks_msec() * head_bob_frequency / 2.0) * head_bob_amplitude * 2.0
func sample_lemniscate(t: float) -> Vector2:
var pos := Vector2.ZERO
pos.y += sin(t) * head_bob_amplitude
pos.x += cos(t / 2.0) * head_bob_amplitude * 2.0
return pos
func play_motion(motion: Vector3) -> void:
head_bob_camera.position += motion
func play_motion(motion: Vector2, delta) -> void:
var motion3d = Vector3(motion.x, motion.y, 0.0)
head_bob_camera.position = lerp(head_bob_camera.position, motion3d, 7.0 * delta)
func focus_target() -> Vector3: