feat: 1. 添加武器基础脚本

2. 添加武器基本resources
3. 武器碰撞 RangeArea 进入和退出检测
4. 添加 Hitbox 进行武器碰撞敌人区域(只是添加了,功能还没实现)
5. 武器冷却时间 weapon_base / CooldownTimer
This commit is contained in:
luke358
2026-05-19 00:22:38 +08:00
parent 883a9b4c05
commit 7c7b2e9420
19 changed files with 263 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
extends Resource
class_name ItemBase
enum ItemType {
WEAPON,
UPGRADE,
PASSIVE
}
@export var item_name: String
@export var item_icon: Texture2D
@export var item_tier: Global.UpgradeTier
@export var item_type: ItemType
@export var item_cost: int
func get_description() -> String:
return ""
+1
View File
@@ -0,0 +1 @@
uid://jdonfq601lgj
+12
View File
@@ -0,0 +1,12 @@
extends ItemBase
class_name ItemWeapon
enum WeaponType {
MELEE,
RANGE
}
@export var type: WeaponType
@export var scene: PackedScene
@export var stats: WeaponStats
@export var upgradge_to: ItemWeapon
@@ -0,0 +1 @@
uid://26bxxaoso6np
@@ -0,0 +1,17 @@
[gd_resource type="Resource" script_class="ItemWeapon" format=3 uid="uid://murcuuks1j8l"]
[ext_resource type="Texture2D" uid="uid://cyh23wqn8vcac" path="res://assets/sprites/Weapons/Icons/weapon_punch_icon.png" id="1_h03dk"]
[ext_resource type="Script" uid="uid://26bxxaoso6np" path="res://resources/items/weapons/item_weapon.gd" id="1_o6o4d"]
[ext_resource type="PackedScene" uid="uid://d1igydtpm3sq8" path="res://scenes/weapons/melee/weapon_punch.tscn" id="2_rm85p"]
[ext_resource type="Resource" uid="uid://dqsjrkb2ehidv" path="res://resources/items/weapons/melee/punch/stats_punch_1.tres" id="3_ftcsy"]
[ext_resource type="Resource" uid="uid://cakw72u61qp80" path="res://resources/items/weapons/melee/punch/item_punch_2.tres" id="4_k4o1h"]
[resource]
script = ExtResource("1_o6o4d")
scene = ExtResource("2_rm85p")
stats = ExtResource("3_ftcsy")
upgradge_to = ExtResource("4_k4o1h")
item_name = "Punch I"
item_icon = ExtResource("1_h03dk")
item_cost = 12
metadata/_custom_type_script = "uid://26bxxaoso6np"
@@ -0,0 +1,18 @@
[gd_resource type="Resource" script_class="ItemWeapon" format=3 uid="uid://cakw72u61qp80"]
[ext_resource type="Texture2D" uid="uid://cyh23wqn8vcac" path="res://assets/sprites/Weapons/Icons/weapon_punch_icon.png" id="1_wrw2j"]
[ext_resource type="Script" uid="uid://26bxxaoso6np" path="res://resources/items/weapons/item_weapon.gd" id="2_amj6w"]
[ext_resource type="PackedScene" uid="uid://d1igydtpm3sq8" path="res://scenes/weapons/melee/weapon_punch.tscn" id="2_igce5"]
[ext_resource type="Resource" uid="uid://c6a44r3a7jmyd" path="res://resources/items/weapons/melee/punch/stats_punch_2.tres" id="3_wrw2j"]
[ext_resource type="Resource" uid="uid://h4jqjg8mu53b" path="res://resources/items/weapons/melee/punch/item_punch_3.tres" id="4_amj6w"]
[resource]
script = ExtResource("2_amj6w")
scene = ExtResource("2_igce5")
stats = ExtResource("3_wrw2j")
upgradge_to = ExtResource("4_amj6w")
item_name = "Punch II"
item_icon = ExtResource("1_wrw2j")
item_tier = 1
item_cost = 25
metadata/_custom_type_script = "uid://26bxxaoso6np"
@@ -0,0 +1,18 @@
[gd_resource type="Resource" script_class="ItemWeapon" format=3 uid="uid://h4jqjg8mu53b"]
[ext_resource type="Texture2D" uid="uid://cyh23wqn8vcac" path="res://assets/sprites/Weapons/Icons/weapon_punch_icon.png" id="1_c6qlh"]
[ext_resource type="PackedScene" uid="uid://d1igydtpm3sq8" path="res://scenes/weapons/melee/weapon_punch.tscn" id="2_nyb4v"]
[ext_resource type="Script" uid="uid://26bxxaoso6np" path="res://resources/items/weapons/item_weapon.gd" id="2_tds7r"]
[ext_resource type="Resource" uid="uid://dwdqmgsh0e417" path="res://resources/items/weapons/melee/punch/stats_punch_3.tres" id="3_c6qlh"]
[ext_resource type="Resource" uid="uid://b535w50o17ui" path="res://resources/items/weapons/melee/punch/item_punch_4.tres" id="4_tds7r"]
[resource]
script = ExtResource("2_tds7r")
scene = ExtResource("2_nyb4v")
stats = ExtResource("3_c6qlh")
upgradge_to = ExtResource("4_tds7r")
item_name = "Punch III"
item_icon = ExtResource("1_c6qlh")
item_tier = 2
item_cost = 55
metadata/_custom_type_script = "uid://26bxxaoso6np"
@@ -0,0 +1,16 @@
[gd_resource type="Resource" script_class="ItemWeapon" format=3 uid="uid://b535w50o17ui"]
[ext_resource type="Texture2D" uid="uid://cyh23wqn8vcac" path="res://assets/sprites/Weapons/Icons/weapon_punch_icon.png" id="1_f1uf4"]
[ext_resource type="Script" uid="uid://26bxxaoso6np" path="res://resources/items/weapons/item_weapon.gd" id="2_503wk"]
[ext_resource type="PackedScene" uid="uid://d1igydtpm3sq8" path="res://scenes/weapons/melee/weapon_punch.tscn" id="2_tm866"]
[ext_resource type="Resource" uid="uid://d32uq8u04r5t7" path="res://resources/items/weapons/melee/punch/stats_punch_4.tres" id="3_f1uf4"]
[resource]
script = ExtResource("2_503wk")
scene = ExtResource("2_tm866")
stats = ExtResource("3_f1uf4")
item_name = "Punch IV"
item_icon = ExtResource("1_f1uf4")
item_tier = 3
item_cost = 130
metadata/_custom_type_script = "uid://26bxxaoso6np"
@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="WeaponStats" format=3 uid="uid://dqsjrkb2ehidv"]
[ext_resource type="Script" uid="uid://d3d6rctbb48mk" path="res://resources/items/weapons/weapon_stats.gd" id="1_b0adc"]
[resource]
script = ExtResource("1_b0adc")
damage = 4.0
accurary = 1.0
cooldown = 1.5
max_range = 180.0
knockback = 1.0
metadata/_custom_type_script = "uid://d3d6rctbb48mk"
@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="WeaponStats" format=3 uid="uid://c6a44r3a7jmyd"]
[ext_resource type="Script" uid="uid://d3d6rctbb48mk" path="res://resources/items/weapons/weapon_stats.gd" id="1_ccedh"]
[resource]
script = ExtResource("1_ccedh")
damage = 8.0
accurary = 1.0
cooldown = 1.2
max_range = 180.0
knockback = 1.0
metadata/_custom_type_script = "uid://d3d6rctbb48mk"
@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="WeaponStats" format=3 uid="uid://dwdqmgsh0e417"]
[ext_resource type="Script" uid="uid://d3d6rctbb48mk" path="res://resources/items/weapons/weapon_stats.gd" id="1_jst7l"]
[resource]
script = ExtResource("1_jst7l")
damage = 16.0
accurary = 1.0
cooldown = 0.9
max_range = 180.0
knockback = 1.0
metadata/_custom_type_script = "uid://d3d6rctbb48mk"
@@ -0,0 +1,14 @@
[gd_resource type="Resource" script_class="WeaponStats" format=3 uid="uid://d32uq8u04r5t7"]
[ext_resource type="Script" uid="uid://d3d6rctbb48mk" path="res://resources/items/weapons/weapon_stats.gd" id="1_kkanm"]
[resource]
script = ExtResource("1_kkanm")
damage = 30.0
accurary = 1.0
cooldown = 0.7
crit_chance = 0.1
crit_damage = 2.0
max_range = 200.0
knockback = 1.0
metadata/_custom_type_script = "uid://d3d6rctbb48mk"
+18
View File
@@ -0,0 +1,18 @@
extends Resource
class_name WeaponStats
@export var damage := 1.0
@export_range(0.0,1.0) var accurary := 0.9
@export_range(0.5,3.0) var cooldown := 1.0
@export_range(0.0,1.0) var crit_chance := 0.05
@export var crit_damage := 1.5
@export var max_range := 150.0
@export var knockback := 0.0
@export_range(0.0,1.0) var life_steal := 0.0
@export var recoil := 25.0
@export_range(0.1,3.0) var recoil_duration := 0.0
@export_range(0.1,3.0) var attack_duration := 0.2
@export_range(0.1,3.0) var back_duration := 0.15
@export var projectile_scene: PackedScene
@export var projectile_speed := 1600.0
@@ -0,0 +1 @@
uid://d3d6rctbb48mk