pretty happy with ladder movement right now

This commit is contained in:
derek
2025-01-17 16:04:03 -06:00
parent 5eb065830a
commit f74d599b64
11 changed files with 111 additions and 80 deletions

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=116 format=4 uid="uid://6agmt1hqlhww"] [gd_scene load_steps=112 format=4 uid="uid://6agmt1hqlhww"]
[ext_resource type="Script" path="res://scripts/LevelManager.gd" id="1_sbpvn"] [ext_resource type="Script" path="res://scripts/LevelManager.gd" id="1_sbpvn"]
[ext_resource type="PackedScene" uid="uid://brl0bsqjl5dg3" path="res://assets/mac_10.tscn" id="2_fn4vb"] [ext_resource type="PackedScene" uid="uid://brl0bsqjl5dg3" path="res://assets/mac_10.tscn" id="2_fn4vb"]
@@ -25,7 +25,6 @@
[ext_resource type="Script" path="res://scripts/room_manager.gd" id="13_84vop"] [ext_resource type="Script" path="res://scripts/room_manager.gd" id="13_84vop"]
[ext_resource type="PackedScene" uid="uid://bessq6hl7qsh8" path="res://assets/stats.tscn" id="13_gu6tc"] [ext_resource type="PackedScene" uid="uid://bessq6hl7qsh8" path="res://assets/stats.tscn" id="13_gu6tc"]
[ext_resource type="PackedScene" uid="uid://cgo4qyul7ix5p" path="res://assets/ladder.tscn" id="13_qu8oi"] [ext_resource type="PackedScene" uid="uid://cgo4qyul7ix5p" path="res://assets/ladder.tscn" id="13_qu8oi"]
[ext_resource type="PackedScene" uid="uid://cdpxctwwi12j" path="res://assets/ladder_collision_check.tscn" id="14_gijx0"]
[ext_resource type="PackedScene" uid="uid://b3t8fra7evqfb" path="res://assets/Models/building_1.tscn" id="15_ds1t8"] [ext_resource type="PackedScene" uid="uid://b3t8fra7evqfb" path="res://assets/Models/building_1.tscn" id="15_ds1t8"]
[ext_resource type="PackedScene" uid="uid://cp7tsicuudd6v" path="res://assets/boxcar_1.tscn" id="16_65evy"] [ext_resource type="PackedScene" uid="uid://cp7tsicuudd6v" path="res://assets/boxcar_1.tscn" id="16_65evy"]
[ext_resource type="Script" path="res://scripts/room_check.gd" id="16_ba8wj"] [ext_resource type="Script" path="res://scripts/room_check.gd" id="16_ba8wj"]
@@ -44,7 +43,7 @@
[ext_resource type="PackedScene" uid="uid://bcmd7elfjhppe" path="res://assets/tree_1.tscn" id="43_o23bq"] [ext_resource type="PackedScene" uid="uid://bcmd7elfjhppe" path="res://assets/tree_1.tscn" id="43_o23bq"]
[ext_resource type="PackedScene" uid="uid://df34olntmk0wl" path="res://assets/vent_1.tscn" id="44_b0rr7"] [ext_resource type="PackedScene" uid="uid://df34olntmk0wl" path="res://assets/vent_1.tscn" id="44_b0rr7"]
[ext_resource type="PackedScene" uid="uid://dlhjacsike5a4" path="res://assets/oildrum1.tscn" id="45_eatji"] [ext_resource type="PackedScene" uid="uid://dlhjacsike5a4" path="res://assets/oildrum1.tscn" id="45_eatji"]
[ext_resource type="Shader" path="res://assets/Shaders/outline.gdshader" id="46_avsk5"] [ext_resource type="PackedScene" uid="uid://bj1y0fbjtul4a" path="res://post_processing.tscn" id="45_lveut"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_eiud5"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_eiud5"]
sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
@@ -896,29 +895,6 @@ _data = {
"RESET": SubResource("Animation_3oaw1") "RESET": SubResource("Animation_3oaw1")
} }
[sub_resource type="ShaderMaterial" id="ShaderMaterial_axa5q"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_loib4"]
render_priority = 0
next_pass = SubResource("ShaderMaterial_axa5q")
shader = ExtResource("46_avsk5")
shader_parameter/outlineColor = Color(0, 0, 0, 1)
shader_parameter/depth_threshold = 0.025
shader_parameter/normal_threshold = 0.5
shader_parameter/normal_smoothing = 0.25
shader_parameter/max_thickness = 1.3
shader_parameter/min_thickness = 0.5
shader_parameter/max_distance = 75.0
shader_parameter/min_distance = 2.0
shader_parameter/grazing_fresnel_power = 5.0
shader_parameter/grazing_angle_mask_power = 1.0
shader_parameter/grazing_angle_modulation_factor = 50.0
[sub_resource type="QuadMesh" id="QuadMesh_ootk3"]
material = SubResource("ShaderMaterial_loib4")
flip_faces = true
size = Vector2(2, 2)
[node name="BLOCKOUT2Test" type="Node3D" node_paths=PackedStringArray("player")] [node name="BLOCKOUT2Test" type="Node3D" node_paths=PackedStringArray("player")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.016016, 0.0225029, -0.0192337) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.016016, 0.0225029, -0.0192337)
script = ExtResource("1_sbpvn") script = ExtResource("1_sbpvn")
@@ -1267,9 +1243,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.8461, -7.8707, 15.6061)
[node name="Ladder2" parent="." instance=ExtResource("13_qu8oi")] [node name="Ladder2" parent="." instance=ExtResource("13_qu8oi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.8461, -3.91327, 15.6061) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.8461, -3.91327, 15.6061)
[node name="LadderCollisionCheck" parent="." instance=ExtResource("14_gijx0")]
transform = Transform3D(1, 0, 0, 0, 0.683592, 0, 0, 0, 1, 3.80189, -5.50271, 16.0033)
[node name="Building1" parent="." instance=ExtResource("15_ds1t8")] [node name="Building1" parent="." instance=ExtResource("15_ds1t8")]
transform = Transform3D(-6.11959e-08, 0, 1.4, 0, 1.4, 0, -1.4, 0, -6.11959e-08, 21.5803, -472.358, 97.8783) transform = Transform3D(-6.11959e-08, 0, 1.4, 0, 1.4, 0, -1.4, 0, -6.11959e-08, 21.5803, -472.358, 97.8783)
@@ -1291,9 +1264,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.100218, 24.4327, 46.4567)
[node name="Ladder6" parent="." instance=ExtResource("13_qu8oi")] [node name="Ladder6" parent="." instance=ExtResource("13_qu8oi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.100218, 28.3013, 46.4567) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.100218, 28.3013, 46.4567)
[node name="LadderCollisionCheck2" parent="." instance=ExtResource("14_gijx0")]
transform = Transform3D(1, 0, 0, 0, 1.88048, 0, 0, 0, 0.180683, -0.0459655, 17.4816, 46.5358)
[node name="pistol1_pickup" parent="." instance=ExtResource("17_buv6l")] [node name="pistol1_pickup" parent="." instance=ExtResource("17_buv6l")]
transform = Transform3D(0.558498, -0.829506, 0, 0.829506, 0.558498, 0, 0, 0, 1, 35.2023, 17.3708, 122.41) transform = Transform3D(0.558498, -0.829506, 0, 0.829506, 0.558498, 0, 0, 0, 1, 35.2023, 17.3708, 122.41)
@@ -2064,10 +2034,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.46674, 27.457, -7.49986)
[node name="Oildrum2" parent="." instance=ExtResource("45_eatji")] [node name="Oildrum2" parent="." instance=ExtResource("45_eatji")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.84071, 27.457, 3.20335) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.84071, 27.457, 3.20335)
[node name="PostProcessing" type="MeshInstance3D" parent="."] [node name="PostProcessing" parent="." instance=ExtResource("45_lveut")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.271851, 1.43588, -9.80906)
extra_cull_margin = 16384.0
mesh = SubResource("QuadMesh_ootk3")
[connection signal="body_entered" from="Room1/RoomCheck" to="Room1/RoomCheck" method="_on_body_entered"] [connection signal="body_entered" from="Room1/RoomCheck" to="Room1/RoomCheck" method="_on_body_entered"]
[connection signal="body_exited" from="Room1/RoomCheck" to="Room1/RoomCheck" method="_on_body_exited"] [connection signal="body_exited" from="Room1/RoomCheck" to="Room1/RoomCheck" method="_on_body_exited"]

View File

@@ -580,6 +580,7 @@ attenuation_model = 1
autoplay = true autoplay = true
[node name="Magnet_Timer" type="Timer" parent="."] [node name="Magnet_Timer" type="Timer" parent="."]
wait_time = 0.5
one_shot = true one_shot = true
autostart = true autostart = true

View File

@@ -59,3 +59,6 @@ skeleton = NodePath("")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."] [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(3.57628e-07, 1, 7.54979e-08, 1, -3.57628e-07, -7.54979e-08, -7.54979e-08, 7.54979e-08, -1, 0, 0, 0) transform = Transform3D(3.57628e-07, 1, 7.54979e-08, 1, -3.57628e-07, -7.54979e-08, -7.54979e-08, 7.54979e-08, -1, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_wmqg7") shape = SubResource("ConvexPolygonShape3D_wmqg7")
[node name="ladder_top" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.677, 0)

View File

@@ -3,7 +3,7 @@
[ext_resource type="Script" path="res://scripts/ladder.gd" id="1_ugi45"] [ext_resource type="Script" path="res://scripts/ladder.gd" id="1_ugi45"]
[sub_resource type="BoxShape3D" id="BoxShape3D_gxu3i"] [sub_resource type="BoxShape3D" id="BoxShape3D_gxu3i"]
size = Vector3(1, 8.23889, 1.6582) size = Vector3(1, 10, 1)
[node name="LadderCollisionCheck" type="Area3D"] [node name="LadderCollisionCheck" type="Area3D"]
collision_layer = 2 collision_layer = 2
@@ -11,8 +11,11 @@ collision_mask = 2
script = ExtResource("1_ugi45") script = ExtResource("1_ugi45")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."] [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.67353, 0.329102) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0.329)
shape = SubResource("BoxShape3D_gxu3i") shape = SubResource("BoxShape3D_gxu3i")
[node name="CollisionMidpoint" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
[connection signal="body_entered" from="." to="." method="_on_body_entered"] [connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="body_exited" from="." to="." method="_on_body_exited"] [connection signal="body_exited" from="." to="." method="_on_body_exited"]

30
post_processing.tscn Normal file
View File

@@ -0,0 +1,30 @@
[gd_scene load_steps=5 format=3 uid="uid://bj1y0fbjtul4a"]
[ext_resource type="Shader" path="res://assets/Shaders/outline.gdshader" id="1_ri2g1"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_axa5q"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_loib4"]
render_priority = 0
next_pass = SubResource("ShaderMaterial_axa5q")
shader = ExtResource("1_ri2g1")
shader_parameter/outlineColor = Color(0, 0, 0, 1)
shader_parameter/depth_threshold = 0.025
shader_parameter/normal_threshold = 0.5
shader_parameter/normal_smoothing = 0.25
shader_parameter/max_thickness = 1.5
shader_parameter/min_thickness = 0.75
shader_parameter/max_distance = 75.0
shader_parameter/min_distance = 2.0
shader_parameter/grazing_fresnel_power = 5.0
shader_parameter/grazing_angle_mask_power = 1.0
shader_parameter/grazing_angle_modulation_factor = 50.0
[sub_resource type="QuadMesh" id="QuadMesh_ootk3"]
material = SubResource("ShaderMaterial_loib4")
flip_faces = true
size = Vector2(2, 2)
[node name="PostProcessing" type="MeshInstance3D"]
extra_cull_margin = 16384.0
mesh = SubResource("QuadMesh_ootk3")

View File

@@ -11,7 +11,7 @@ config_version=5
[application] [application]
config/name="First Person Test" config/name="First Person Test"
run/main_scene="res://assets/blockout_2.tscn" run/main_scene="res://scenes/blockout_4.tscn"
config/features=PackedStringArray("4.3", "Forward Plus") config/features=PackedStringArray("4.3", "Forward Plus")
config/icon="res://icon.svg" config/icon="res://icon.svg"

View File

@@ -1,10 +1,9 @@
[gd_scene load_steps=26 format=3 uid="uid://breenfpt04iua"] [gd_scene load_steps=27 format=3 uid="uid://breenfpt04iua"]
[ext_resource type="Script" path="res://scripts/LevelManager.gd" id="1_8g3mj"] [ext_resource type="Script" path="res://scripts/LevelManager.gd" id="1_8g3mj"]
[ext_resource type="PackedScene" uid="uid://xerc06hjfnbf" path="res://assets/LevelBlockouts/blockout4.blend" id="1_038d8"] [ext_resource type="PackedScene" uid="uid://xerc06hjfnbf" path="res://assets/LevelBlockouts/blockout4.blend" id="1_038d8"]
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="4_ykmsc"] [ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="4_ykmsc"]
[ext_resource type="PackedScene" uid="uid://df34olntmk0wl" path="res://assets/vent_1.tscn" id="5_hc1cs"] [ext_resource type="PackedScene" uid="uid://df34olntmk0wl" path="res://assets/vent_1.tscn" id="5_hc1cs"]
[ext_resource type="PackedScene" uid="uid://20csd6dmwj4y" path="res://assets/jump_platform.tscn" id="6_p3qak"]
[ext_resource type="PackedScene" uid="uid://bycbdb5u5ewgl" path="res://assets/tree_2.tscn" id="7_t1egx"] [ext_resource type="PackedScene" uid="uid://bycbdb5u5ewgl" path="res://assets/tree_2.tscn" id="7_t1egx"]
[ext_resource type="PackedScene" uid="uid://do6gt53xr2l23" path="res://assets/garbage_bin.tscn" id="8_xilbw"] [ext_resource type="PackedScene" uid="uid://do6gt53xr2l23" path="res://assets/garbage_bin.tscn" id="8_xilbw"]
[ext_resource type="PackedScene" uid="uid://brpsfqr85xi35" path="res://assets/file_cabinet.tscn" id="9_hveq1"] [ext_resource type="PackedScene" uid="uid://brpsfqr85xi35" path="res://assets/file_cabinet.tscn" id="9_hveq1"]
@@ -21,6 +20,8 @@
[ext_resource type="PackedScene" uid="uid://dws4iro7820fc" path="res://assets/pistol1_pickup.tscn" id="19_1o424"] [ext_resource type="PackedScene" uid="uid://dws4iro7820fc" path="res://assets/pistol1_pickup.tscn" id="19_1o424"]
[ext_resource type="PackedScene" uid="uid://clu76sc4uoswn" path="res://assets/rocketlauncher_pickup.tscn" id="20_4cdch"] [ext_resource type="PackedScene" uid="uid://clu76sc4uoswn" path="res://assets/rocketlauncher_pickup.tscn" id="20_4cdch"]
[ext_resource type="PackedScene" uid="uid://dws2vwfxubqvb" path="res://assets/cannon.tscn" id="21_24v0y"] [ext_resource type="PackedScene" uid="uid://dws2vwfxubqvb" path="res://assets/cannon.tscn" id="21_24v0y"]
[ext_resource type="PackedScene" uid="uid://cdpxctwwi12j" path="res://assets/ladder_collision_check.tscn" id="22_lsb7i"]
[ext_resource type="PackedScene" uid="uid://cgo4qyul7ix5p" path="res://assets/ladder.tscn" id="22_tt78r"]
[sub_resource type="Environment" id="Environment_q4t3f"] [sub_resource type="Environment" id="Environment_q4t3f"]
ssr_enabled = true ssr_enabled = true
@@ -71,10 +72,6 @@ transform = Transform3D(1, 0.000164476, 0.000583754, -0.000165075, 0.999999, 0.0
[node name="Vent1" parent="." instance=ExtResource("5_hc1cs")] [node name="Vent1" parent="." instance=ExtResource("5_hc1cs")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0.71, 5.67755) transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0.71, 5.67755)
[node name="JumpPlatform" parent="." instance=ExtResource("6_p3qak")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 34.3221, 6.80971, 12.7129)
jump_amount = 30
[node name="Tree2" parent="." instance=ExtResource("7_t1egx")] [node name="Tree2" parent="." instance=ExtResource("7_t1egx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.25018, -0.176033, -39.0611) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.25018, -0.176033, -39.0611)
@@ -680,3 +677,27 @@ transform = Transform3D(0.978792, -0.185004, 0.0879728, 0, 0.42944, 0.903096, -0
CANNON_MIN_POWER = 20 CANNON_MIN_POWER = 20
CANNON_MAX_POWER = 50 CANNON_MAX_POWER = 50
TIMER_MAX = 10.0 TIMER_MAX = 10.0
[node name="Ladder" parent="." instance=ExtResource("22_tt78r")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.108, 9.05991e-06, -18.8845)
[node name="Ladder2" parent="." instance=ExtResource("22_tt78r")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34.3988, 5.79711, 11.9526)
[node name="Ladder3" parent="." instance=ExtResource("22_tt78r")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34.3988, 9.74877, 11.9526)
[node name="Ladder4" parent="." instance=ExtResource("22_tt78r")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34.3988, 13.7116, 11.9526)
[node name="Ladder5" parent="." instance=ExtResource("22_tt78r")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34.3988, 17.6943, 11.9526)
[node name="Ladder6" parent="." instance=ExtResource("22_tt78r")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34.3988, 21.6723, 11.9526)
[node name="Ladder7" parent="." instance=ExtResource("22_tt78r")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34.3988, 25.6446, 11.9526)
[node name="LadderCollisionCheck" parent="." instance=ExtResource("22_lsb7i")]
transform = Transform3D(1, 0, 0, 0, 2.24237, 0, 0, 0, 1, 34.3971, 6.89573, 12.1428)

View File

@@ -210,14 +210,17 @@ func pickup_spawn(randomized):
4: 4:
i_weight = 1.0 - clamp(float(player.ammo_reserve[str(i)]) / float(expected_ammo["rocket"]),0,1) i_weight = 1.0 - clamp(float(player.ammo_reserve[str(i)]) / float(expected_ammo["rocket"]),0,1)
if i_weight > ammo_weight: if i_weight > ammo_weight:
ammo_weight = i_weight + drop_chance_minimum ammo_weight = i_weight
ammo_type_weight[i] = i_weight + drop_chance_minimum ammo_type_weight[i] = i_weight + drop_chance_minimum
pickup_type = HelperFuncs.weighted_random({"0" : ammo_weight, "1" : stamina_weight,"2" : health_weight,"3" : money_weight}) pickup_type = HelperFuncs.weighted_random({"0" : ammo_weight, "1" : stamina_weight,"2" : health_weight,"3" : money_weight})
match pickup_type: match pickup_type:
"0": "0":
ammo_type = int(HelperFuncs.weighted_random(ammo_type_weight)) if ammo_type_weight.size() > 0:
ammo_type = int(HelperFuncs.weighted_random(ammo_type_weight))
else:
ammo_type = randi_range(0,4)
value = randi_range(1,20) value = randi_range(1,20)
"1": "1":
value = randi_range(int(player.MAX_STAMINA * .25),player.MAX_STAMINA) value = randi_range(int(player.MAX_STAMINA * .25),player.MAX_STAMINA)

View File

@@ -83,8 +83,6 @@ func reload_finished():
player.ammo_reserve[str(ammo_type)] -= player.ammo_reserve[str(ammo_type)] player.ammo_reserve[str(ammo_type)] -= player.ammo_reserve[str(ammo_type)]
func shoot(delta): func shoot(delta):
print("GUN AMMO: ",player.gun_ammo)
print("RESERVE AMMO: ",player.ammo_reserve)
if player.gun_ammo[gun_name] > 0 and cycle_count > 0: if player.gun_ammo[gun_name] > 0 and cycle_count > 0:
if !anim_player.is_playing(): if !anim_player.is_playing():
player.gun_ammo[gun_name] -= 1 player.gun_ammo[gun_name] -= 1

View File

@@ -3,6 +3,7 @@ extends RigidBody3D
var despawning = false var despawning = false
var despawn_time_s = 10 var despawn_time_s = 10
var mesh_activated = false
var value var value
@export_enum("Ammo", "Stamina", "Health", "Money","Weapon") var pickup_type: int @export_enum("Ammo", "Stamina", "Health", "Money","Weapon") var pickup_type: int
var ammo_type var ammo_type
@@ -23,7 +24,7 @@ var ammo_type
@onready var money: Node3D = $Meshes/money @onready var money: Node3D = $Meshes/money
var magnetable = true #false var magnetable = false
var pickupable = false var pickupable = false
var pick_up = false var pick_up = false
var rand_amt var rand_amt
@@ -32,41 +33,21 @@ var player
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
add_to_group("spawned")
add_to_group("persist")
#Enable mesh
match pickup_type:
0:
match ammo_type:
0:
light_ammo.visible = true
1:
medium_ammo.visible = true #medium
2:
heavy_ammo.visible = true #heavy
3:
shotgun_ammo.visible = true #shotgun
4:
rocket.visible = true #rocket
1:
stamina.visible = true
2:
health.visible = true
3:
money.visible = true
if despawning == true: if despawning == true:
timer.wait_time = despawn_time_s timer.wait_time = despawn_time_s
timer.start() timer.start()
func _physics_process(delta): func _physics_process(delta):
if !mesh_activated:
activate_mesh()
if player_follow != null: if player_follow != null:
if !pick_up: if !pick_up:
despawning = false if magnetable:
angular_velocity = lerp(angular_velocity, Vector3(0,0,0), delta) despawning = false
position = lerp(position, player.item_holder.global_position, 25 * delta) angular_velocity = lerp(angular_velocity, Vector3(0,0,0), delta)
position = lerp(position, player.item_holder.global_position, 25 * delta)
if abs(position - player.item_holder.global_position) < Vector3(.5,.5,.5): if abs(position - player.item_holder.global_position) < Vector3(.5,.5,.5):
await get_tree().create_timer(1).timeout await get_tree().create_timer(1).timeout
@@ -91,12 +72,36 @@ func save():
"rot_x" : rotation.x, "rot_x" : rotation.x,
"rot_y" : rotation.y, "rot_y" : rotation.y,
"rot_z" : rotation.z, "rot_z" : rotation.z,
"linear_velocity" : linear_velocity,
"angular_velocity" : angular_velocity,
"pickup_type" : pickup_type, "pickup_type" : pickup_type,
"ammo_type" : ammo_type, "ammo_type" : ammo_type,
"value" : value "value" : value
} }
return save_dict return save_dict
func activate_mesh():
match pickup_type:
0:
match ammo_type:
0:
light_ammo.visible = true
1:
medium_ammo.visible = true #medium
2:
heavy_ammo.visible = true #heavy
3:
shotgun_ammo.visible = true #shotgun
4:
rocket.visible = true #rocket
1:
stamina.visible = true
2:
health.visible = true
3:
money.visible = true
mesh_activated = true
func _on_magnet_timer_timeout() -> void: func _on_magnet_timer_timeout() -> void:
magnetable = true magnetable = true

View File

@@ -1,5 +1,7 @@
extends Area3D extends Area3D
@onready var collision_midpoint: Node3D = $CollisionMidpoint
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
pass pass
@@ -11,9 +13,8 @@ func _process(delta):
func _on_body_entered(body): func _on_body_entered(body):
if body.is_in_group("player"): if body.is_in_group("player"):
body.velocity = Vector3(0,0,0)
body.is_climbing = true body.is_climbing = true
if body.global_position.y < global_position.y: if body.global_position.y < collision_midpoint.global_position.y:
body.global_position.y += .2 body.global_position.y += .2
@@ -21,4 +22,3 @@ func _on_body_exited(body):
if body.is_in_group("player"): if body.is_in_group("player"):
body.is_climbing = false body.is_climbing = false
body.gravity = body.default_gravity body.gravity = body.default_gravity
body.ladder_center = null