Update weapon resources, default weapon loaded; implemented call weapon

by name.
This commit is contained in:
Henry Faber 2026-06-20 14:47:46 +01:00
parent cf172bc546
commit d0664a87fa
8 changed files with 69 additions and 30 deletions

View file

@ -1,16 +1,16 @@
[gd_resource type="Resource" script_class="WeaponShot" format=3 uid="uid://b75ae840k03dy"] [gd_resource type="Resource" script_class="WeaponShot" format=3 uid="uid://b75ae840k03dy"]
[ext_resource type="PackedScene" uid="uid://ddpclu2vdy2ve" path="res://scenes/player_weapons/weapon_stock.tscn" id="1_by0nb"] [ext_resource type="PackedScene" uid="uid://ddpclu2vdy2ve" path="res://scenes/player_weapons/weapon_stock.tscn" id="1_lcw6o"]
[ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://resources/player_weapon_resources/weapon_shot.gd" id="2_by0nb"] [ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://scripts/weapon_shot.gd" id="2_ym48c"]
[resource] [resource]
script = ExtResource("2_by0nb") script = ExtResource("2_ym48c")
shot_name = "Stock Shot" shot_name = "stock"
bullet_scene = ExtResource("1_by0nb") bullet_scene = ExtResource("1_lcw6o")
damage = 2
speed = 500 speed = 500
projectiles = 3
spacing = 25.0 spacing = 25.0
origin = -12 origin = -12
horizontal_offset = 8.0 horizontal_offset = 7.5
stagger_offset = 0.35 stagger_offset = 0.35
metadata/_custom_type_script = "uid://7n1itonn35fm" metadata/_custom_type_script = "uid://7n1itonn35fm"

View file

@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="WeaponShot" format=3 uid="uid://cck3gmnhu5agc"]
[ext_resource type="PackedScene" uid="uid://clpyd8qfwthk2" path="res://scenes/player_weapons/weapon_spreadshot.tscn" id="1_07hyh"]
[ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://scripts/weapon_shot.gd" id="2_syw6j"]
[resource]
script = ExtResource("2_syw6j")
shot_name = "vanguard"
bullet_scene = ExtResource("1_07hyh")
damage = 3
speed = 450
projectiles = 3
spacing = 30.0
origin = -15
horizontal_offset = 8.5
stagger_offset = 0.2
metadata/_custom_type_script = "uid://7n1itonn35fm"

View file

@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="WeaponShot" format=3 uid="uid://bhc6aja38vyr"]
[ext_resource type="PackedScene" uid="uid://clpyd8qfwthk2" path="res://scenes/player_weapons/weapon_spreadshot.tscn" id="1_hm46f"]
[ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://scripts/weapon_shot.gd" id="2_w7xlm"]
[resource]
script = ExtResource("2_w7xlm")
shot_name = "vanguard"
bullet_scene = ExtResource("1_hm46f")
damage = 5
speed = 500
projectiles = 5
spacing = 30.0
origin = -15
horizontal_offset = 8.5
stagger_offset = 0.2
metadata/_custom_type_script = "uid://7n1itonn35fm"

View file

@ -1,17 +0,0 @@
[gd_resource type="Resource" script_class="WeaponShot" format=3 uid="uid://bhc6aja38vyr"]
[ext_resource type="PackedScene" uid="uid://ddpclu2vdy2ve" path="res://scenes/player_weapons/weapon_stock.tscn" id="1_bullet"]
[ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://resources/player_weapon_resources/weapon_shot.gd" id="2_script"]
[resource]
script = ExtResource("2_script")
shot_name = "Spread Shot"
bullet_scene = ExtResource("1_bullet")
damage = 1
speed = 450
projectiles = 5
spacing = 30.0
origin = -15
horizontal_offset = 10.0
stagger_offset = 0.2
metadata/_custom_type_script = "uid://7n1itonn35fm"

View file

@ -8,9 +8,10 @@
[ext_resource type="Script" uid="uid://c0rikbakpcags" path="res://scripts/movement_component.gd" id="5_ur7pv"] [ext_resource type="Script" uid="uid://c0rikbakpcags" path="res://scripts/movement_component.gd" id="5_ur7pv"]
[ext_resource type="Script" uid="uid://suynuijl68qp" path="res://scripts/shoot_component.gd" id="6_y4r1p"] [ext_resource type="Script" uid="uid://suynuijl68qp" path="res://scripts/shoot_component.gd" id="6_y4r1p"]
[ext_resource type="Script" uid="uid://ylmao2ndp22y" path="res://scripts/weapon_component.gd" id="7_d2wvv"] [ext_resource type="Script" uid="uid://ylmao2ndp22y" path="res://scripts/weapon_component.gd" id="7_d2wvv"]
[ext_resource type="Resource" uid="uid://b75ae840k03dy" path="res://resources/player_weapon_resources/weapon_shot_stock.tres" id="8_stock"] [ext_resource type="Resource" uid="uid://b75ae840k03dy" path="res://resources/player_weapon_resources/stock.tres" id="8_stock"]
[ext_resource type="Resource" uid="uid://bhc6aja38vyr" path="res://resources/player_weapon_resources/weapon_shot_spread.tres" id="9_ur7pv"] [ext_resource type="Resource" uid="uid://bhc6aja38vyr" path="res://resources/player_weapon_resources/vanguard.tres" id="9_ur7pv"]
[ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://resources/player_weapon_resources/weapon_shot.gd" id="10_d2wvv"] [ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://scripts/weapon_shot.gd" id="10_d2wvv"]
[ext_resource type="Resource" uid="uid://cck3gmnhu5agc" path="res://resources/player_weapon_resources/tri.tres" id="11_3v2ag"]
[sub_resource type="AtlasTexture" id="AtlasTexture_tuyoq"] [sub_resource type="AtlasTexture" id="AtlasTexture_tuyoq"]
atlas = ExtResource("5_qlg0r") atlas = ExtResource("5_qlg0r")
@ -152,8 +153,8 @@ script = ExtResource("6_y4r1p")
[node name="WeaponComponent" type="Node" parent="." unique_id=1648685183] [node name="WeaponComponent" type="Node" parent="." unique_id=1648685183]
unique_name_in_owner = true unique_name_in_owner = true
script = ExtResource("7_d2wvv") script = ExtResource("7_d2wvv")
weapon_data = ExtResource("9_ur7pv") weapon_data = ExtResource("8_stock")
available_weapons = Array[ExtResource("10_d2wvv")]([ExtResource("8_stock"), ExtResource("9_ur7pv")]) available_weapons = Array[ExtResource("10_d2wvv")]([ExtResource("8_stock"), ExtResource("11_3v2ag"), ExtResource("9_ur7pv")])
metadata/_custom_type_script = "uid://ylmao2ndp22y" metadata/_custom_type_script = "uid://ylmao2ndp22y"
[connection signal="timeout" from="WeaponCooldown" to="." method="_on_weapon_cooldown_timeout"] [connection signal="timeout" from="WeaponCooldown" to="." method="_on_weapon_cooldown_timeout"]

View file

@ -5,13 +5,34 @@ class_name WeaponComponent extends Node
var _current_weapon_index: int = 0 var _current_weapon_index: int = 0
func _ready() -> void:
# Set the default weapon to be stock, i.e. index 1
if weapon_data and not available_weapons.is_empty():
for i in range(available_weapons.size()):
if available_weapons[i] == weapon_data:
_current_weapon_index = i
return
func get_bullet_scene() -> PackedScene: func get_bullet_scene() -> PackedScene:
return weapon_data.bullet_scene if weapon_data else null return weapon_data.bullet_scene if weapon_data else null
func get_weapon_resource() -> Resource: func get_weapon_resource() -> Resource:
return weapon_data return weapon_data
func cycle_weapon() -> void: func select_weapon_by_name(name: String) -> bool:
for i in range(available_weapons.size()):
if available_weapons[i].shot_name == name:
_current_weapon_index = i
weapon_data = available_weapons[i]
print("Switched to: ", name)
return true
return false
func cycle_weapon() -> void: # Used for testing weapon cycling
if available_weapons.is_empty(): if available_weapons.is_empty():
return return