diff --git a/assets/revolver_1.tscn b/assets/revolver_1.tscn index 4c0230f..7e8f49e 100644 --- a/assets/revolver_1.tscn +++ b/assets/revolver_1.tscn @@ -1356,7 +1356,7 @@ _data = { "swap_out": SubResource("Animation_nvmxj") } -[node name="revolver1" type="Node3D" node_paths=PackedStringArray("anim_player", "barrel_ray", "audio_fire", "audio_empty", "audio_reload", "casing_array", "bullet_array", "chamber")] +[node name="revolver1" type="Node3D" node_paths=PackedStringArray("anim_player", "barrel_ray", "audio_fire", "audio_empty", "audio_reload", "casing_array", "chamber")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0718293, 0) script = ExtResource("2_boy4r") weapon_info = ExtResource("3_oxh61") @@ -1365,8 +1365,7 @@ barrel_ray = NodePath("revolver1/RayCastBarrel") audio_fire = NodePath("Audio/Fire") audio_empty = NodePath("Audio/Empty") audio_reload = NodePath("Audio/Reload") -casing_array = [NodePath("revolver1/Chamber/RayCastCasing1"), NodePath("revolver1/Chamber/RayCastCasing2"), NodePath("revolver1/Chamber/RayCastCasing3"), NodePath("revolver1/Chamber/RayCastCasing4"), NodePath("revolver1/Chamber/RayCastCasing5"), NodePath("revolver1/Chamber/RayCastCasing6")] -bullet_array = [NodePath("revolver1/Chamber/bullet"), NodePath("revolver1/Chamber/bullet_001"), NodePath("revolver1/Chamber/bullet_002"), NodePath("revolver1/Chamber/bullet_003"), NodePath("revolver1/Chamber/bullet_004"), NodePath("revolver1/Chamber/bullet_005")] +casing_array = [NodePath("revolver1/Chamber/casing"), NodePath("revolver1/Chamber/casing_001"), NodePath("revolver1/Chamber/casing_002"), NodePath("revolver1/Chamber/casing_003"), NodePath("revolver1/Chamber/casing_004"), NodePath("revolver1/Chamber/casing_005")] chamber = NodePath("revolver1/Chamber") [node name="revolver1" type="MeshInstance3D" parent="."] @@ -1479,7 +1478,7 @@ mesh = SubResource("ArrayMesh_0w43n") skeleton = NodePath("") [node name="Trigger" type="MeshInstance3D" parent="revolver1"] -transform = Transform3D(0.207537, -0.978227, 3.54117e-06, 0, -3.61999e-06, -1, 0.978227, 0.207537, -7.51281e-07, 0.226752, 0, -0.00209358) +transform = Transform3D(0.207537, -0.978227, 4.27597e-08, 0, -4.37114e-08, -1, 0.978227, 0.207537, -9.07173e-09, 0.226752, 0, -0.00209358) cast_shadow = 0 mesh = SubResource("ArrayMesh_ahftj") skeleton = NodePath("") diff --git a/assets/weaponresources/mac10_uberresource.tres b/assets/weaponresources/mac10_uberresource.tres index c4da89c..6735ddf 100644 --- a/assets/weaponresources/mac10_uberresource.tres +++ b/assets/weaponresources/mac10_uberresource.tres @@ -12,6 +12,7 @@ gun_name = "Mac 10" gun_icon = ExtResource("2_a3oyj") path = "res://assets/mac_10_uber.tscn" weapon_type = 0 +reload_type = 0 bullet = ExtResource("1_y4ehq") fire_mode = 0 fov_zoom_amt = 0.98 diff --git a/assets/weaponresources/machete.tres b/assets/weaponresources/machete.tres index dcd3698..0c6a333 100644 --- a/assets/weaponresources/machete.tres +++ b/assets/weaponresources/machete.tres @@ -9,6 +9,7 @@ gun_name = "machete" gun_icon = ExtResource("1_c6dni") path = "res://assets/machete.tscn" weapon_type = 1 +reload_type = 0 fire_mode = 1 fov_zoom_amt = 0.98 ads = false @@ -22,3 +23,4 @@ bullet_force_mod = 5.0 bullet_speed = 600 shotgun_spread = Vector3(0.1, 0.1, 0.1) pellets_per_shot = 20 +blast_power = 50.0 diff --git a/assets/weaponresources/revolver1.tres b/assets/weaponresources/revolver1.tres index 3053b2d..022d900 100644 --- a/assets/weaponresources/revolver1.tres +++ b/assets/weaponresources/revolver1.tres @@ -19,7 +19,7 @@ ads = false recoil_amount = Vector3(0.05, 0.05, 0.05) kick_amount = 0.1 max_ammo = 6 -start_mags = 30 +start_mags = 1 bullet_damage = 1 smoke_enabled = false bullet_force_mod = 5.0 diff --git a/scripts/LevelManager.gd b/scripts/LevelManager.gd index a4e8deb..2bfa32c 100644 --- a/scripts/LevelManager.gd +++ b/scripts/LevelManager.gd @@ -11,9 +11,9 @@ class_name level @export var stamina_drop_enabled = true @export var money_drop_enabled = true -@onready var item_pickup = preload("res://assets/item_pickup.tscn") -@onready var crown = preload("res://assets/crown.tscn") -var dead_player = preload("res://assets/dead_cam.tscn") +const ITEM_PICKUP = preload("res://assets/item_pickup.tscn") +const CROWN = preload("res://assets/crown.tscn") +const DEAD_PLAYER = preload("res://assets/dead_cam.tscn") const DEAD_ANNOUNCE = preload("res://assets/dead_announce.tscn") const CHEST_1 = preload("res://chest1.tscn") @@ -65,7 +65,7 @@ func _ready(): #Spawn Crown if GameGlobals.last_hit_path: - var crown_spawn = crown.instantiate() + var crown_spawn = CROWN.instantiate() var crown_target = get_node(GameGlobals.last_hit_path) if crown_target: crown_target.add_child(crown_spawn) @@ -174,7 +174,7 @@ func die(): SaveLoad.save_user_data() var deadmsg = DEAD_ANNOUNCE.instantiate() get_parent().add_child(deadmsg) - var instance_dead = dead_player.instantiate() + var instance_dead = DEAD_PLAYER.instantiate() instance_dead.global_position = player.camera.global_position instance_dead.transform.basis = player.global_transform.basis if last_hit != null: diff --git a/scripts/weapon_uberscript.gd b/scripts/weapon_uberscript.gd index d3cbb6d..07fd2d6 100644 --- a/scripts/weapon_uberscript.gd +++ b/scripts/weapon_uberscript.gd @@ -13,7 +13,7 @@ class_name weapon @export var fire_smoke : GPUParticles3D @export var smoke_timer : Timer @export_group("Revolver") -@export var casing_array : Array[RayCast3D] +@export var casing_array : Array[MeshInstance3D] @export var bullet_array : Array[MeshInstance3D] @export var chamber : Node @export_group("Melee") @@ -67,46 +67,34 @@ func _process(_delta): looking_mesh.look_at(tracker.global_position) else: weapon_info.tracker_asset.tracker_indicator_material.emission = TRACKER_NULL_COLOR - looking_mesh.rotation = lerp(rotation, Vector3(0,0,0), _delta * 4) + looking_mesh.rotation = lerp(rotation, Vector3(0,0,0), _delta * 4) if check_track: tracker_checker(_delta) func reload_finished(): match weapon_info.reload_type: - 0: - if GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] >= weapon_info.max_ammo: - GameGlobals.gun_ammo[weapon_info.gun_name] += weapon_info.max_ammo - GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] -= weapon_info.max_ammo - casings_chamber_last = weapon_info.max_ammo - else: - GameGlobals.gun_ammo[weapon_info.gun_name] += GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] - GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] -= GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] - casings_chamber_last = GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] - 1: - #if max ammo in reserve fill all the way + 0: #MAGAZINE + #calculate ammo to add from reserve --- discards ammo in previous mag + var ammo_added = clamp(weapon_info.max_ammo,1,GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)]) + #add to gun and remove from reserve + GameGlobals.gun_ammo[weapon_info.gun_name] += ammo_added + GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] -= ammo_added + 1: #REVOLVER + #calculate ammo to add from reserve --- only pulls from what it is missing var ammo_needed = weapon_info.max_ammo - GameGlobals.gun_ammo[weapon_info.gun_name] - - if GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] >= weapon_info.max_ammo: - GameGlobals.gun_ammo[weapon_info.gun_name] += ammo_needed - GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] -= ammo_needed - casings_chamber_last = weapon_info.max_ammo - for i in casing_array: - i.visible = true - for i in bullet_array: - i.visible = true - player.reloading = false - #if not max ammo in reserve add remaining ammo - else: - GameGlobals.gun_ammo[weapon_info.gun_name] += GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] - var casings_in_chamber = GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] - casings_chamber_last = GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] - GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] -= GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] - - while casings_in_chamber > 0: - casing_array[casings_in_chamber].visible = true - bullet_array[casings_in_chamber].visible = true - casings_in_chamber -= 1 - await get_tree().create_timer(.01).timeout + var ammo_added = clamp(ammo_needed,1,GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)]) + #add to gun and remove from reserve + GameGlobals.gun_ammo[weapon_info.gun_name] += ammo_added + GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] -= ammo_added + #make the added-back casings visible + var index = 0 + while index <= (ammo_added - 1): + if index < bullet_array.size(): + bullet_array[index].visible = true + if index < casing_array.size(): + casing_array[index].visible = true + index += 1 + func shoot(): if weapon_info.weapon_type == 0: @@ -177,8 +165,11 @@ func spawn_revolver_casings(): if casing_array.size() > 0: var ammo_needed = weapon_info.max_ammo - GameGlobals.gun_ammo[weapon_info.gun_name] var index = 0 - while index < ammo_needed: - bullet_array[index].visible = false + while index <= ammo_needed - 1: + if index < bullet_array.size(): + bullet_array[index].visible = false + if index < casing_array.size(): + casing_array[index].visible = false var instance_casing = weapon_info.casing.instantiate() instance_casing.position = casing_array[index].global_position instance_casing.random_rotation = false