From d0664a87fab48b692ff9a01561344298db8e63b0 Mon Sep 17 00:00:00 2001 From: henry Date: Sat, 20 Jun 2026 14:47:46 +0100 Subject: [PATCH] Update weapon resources, default weapon loaded; implemented call weapon by name. --- .../{weapon_shot_stock.tres => stock.tres} | 14 +++++------ resources/player_weapon_resources/tri.tres | 17 ++++++++++++++ .../player_weapon_resources/vanguard.tres | 17 ++++++++++++++ .../weapon_shot_spread.tres | 17 -------------- scenes/player.tscn | 11 +++++---- scripts/weapon_component.gd | 23 ++++++++++++++++++- .../weapon_shot.gd | 0 .../weapon_shot.gd.uid | 0 8 files changed, 69 insertions(+), 30 deletions(-) rename resources/player_weapon_resources/{weapon_shot_stock.tres => stock.tres} (56%) create mode 100644 resources/player_weapon_resources/tri.tres create mode 100644 resources/player_weapon_resources/vanguard.tres delete mode 100644 resources/player_weapon_resources/weapon_shot_spread.tres rename {resources/player_weapon_resources => scripts}/weapon_shot.gd (100%) rename {resources/player_weapon_resources => scripts}/weapon_shot.gd.uid (100%) diff --git a/resources/player_weapon_resources/weapon_shot_stock.tres b/resources/player_weapon_resources/stock.tres similarity index 56% rename from resources/player_weapon_resources/weapon_shot_stock.tres rename to resources/player_weapon_resources/stock.tres index 6139dca..4cd7aae 100644 --- a/resources/player_weapon_resources/weapon_shot_stock.tres +++ b/resources/player_weapon_resources/stock.tres @@ -1,16 +1,16 @@ [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="Script" uid="uid://7n1itonn35fm" path="res://resources/player_weapon_resources/weapon_shot.gd" id="2_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://scripts/weapon_shot.gd" id="2_ym48c"] [resource] -script = ExtResource("2_by0nb") -shot_name = "Stock Shot" -bullet_scene = ExtResource("1_by0nb") +script = ExtResource("2_ym48c") +shot_name = "stock" +bullet_scene = ExtResource("1_lcw6o") +damage = 2 speed = 500 -projectiles = 3 spacing = 25.0 origin = -12 -horizontal_offset = 8.0 +horizontal_offset = 7.5 stagger_offset = 0.35 metadata/_custom_type_script = "uid://7n1itonn35fm" diff --git a/resources/player_weapon_resources/tri.tres b/resources/player_weapon_resources/tri.tres new file mode 100644 index 0000000..eed118e --- /dev/null +++ b/resources/player_weapon_resources/tri.tres @@ -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" diff --git a/resources/player_weapon_resources/vanguard.tres b/resources/player_weapon_resources/vanguard.tres new file mode 100644 index 0000000..72941e4 --- /dev/null +++ b/resources/player_weapon_resources/vanguard.tres @@ -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" diff --git a/resources/player_weapon_resources/weapon_shot_spread.tres b/resources/player_weapon_resources/weapon_shot_spread.tres deleted file mode 100644 index 2bcbdce..0000000 --- a/resources/player_weapon_resources/weapon_shot_spread.tres +++ /dev/null @@ -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" diff --git a/scenes/player.tscn b/scenes/player.tscn index c8b82bf..b78146a 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -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://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="Resource" uid="uid://b75ae840k03dy" path="res://resources/player_weapon_resources/weapon_shot_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="Script" uid="uid://7n1itonn35fm" path="res://resources/player_weapon_resources/weapon_shot.gd" id="10_d2wvv"] +[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/vanguard.tres" id="9_ur7pv"] +[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"] atlas = ExtResource("5_qlg0r") @@ -152,8 +153,8 @@ script = ExtResource("6_y4r1p") [node name="WeaponComponent" type="Node" parent="." unique_id=1648685183] unique_name_in_owner = true script = ExtResource("7_d2wvv") -weapon_data = ExtResource("9_ur7pv") -available_weapons = Array[ExtResource("10_d2wvv")]([ExtResource("8_stock"), ExtResource("9_ur7pv")]) +weapon_data = ExtResource("8_stock") +available_weapons = Array[ExtResource("10_d2wvv")]([ExtResource("8_stock"), ExtResource("11_3v2ag"), ExtResource("9_ur7pv")]) metadata/_custom_type_script = "uid://ylmao2ndp22y" [connection signal="timeout" from="WeaponCooldown" to="." method="_on_weapon_cooldown_timeout"] diff --git a/scripts/weapon_component.gd b/scripts/weapon_component.gd index f443855..41ecc74 100644 --- a/scripts/weapon_component.gd +++ b/scripts/weapon_component.gd @@ -5,13 +5,34 @@ class_name WeaponComponent extends Node 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: return weapon_data.bullet_scene if weapon_data else null func get_weapon_resource() -> Resource: 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(): return diff --git a/resources/player_weapon_resources/weapon_shot.gd b/scripts/weapon_shot.gd similarity index 100% rename from resources/player_weapon_resources/weapon_shot.gd rename to scripts/weapon_shot.gd diff --git a/resources/player_weapon_resources/weapon_shot.gd.uid b/scripts/weapon_shot.gd.uid similarity index 100% rename from resources/player_weapon_resources/weapon_shot.gd.uid rename to scripts/weapon_shot.gd.uid