Files
2025-09-15 19:10:37 +08:00

129 lines
3.5 KiB
GDScript

extends Node
class_name WeaponBase
#武器系统
var weapon_data = {
"钻石剑": {
"icon": 'res://assets/我的世界图片/武器工具/钻石剑.png',
"function": "apply_diamond_sword_effect"
},
"铁剑": {
"icon": 'res://assets/我的世界图片/武器工具/铁剑.png',
"function": "apply_iron_sword_effect"
},
"钻石斧": {
"icon": 'res://assets/我的世界图片/武器工具/钻石斧.png',
"function": "apply_diamond_axe_effect"
},
"铁镐": {
"icon": 'res://assets/我的世界图片/武器工具/铁镐.png',
"function": "apply_iron_pickaxe_effect"
}
}
# 武器效果函数 - 每种武器单独一个函数
#================钻石剑效果========================
# 钻石剑效果
func apply_diamond_sword_effect(pet):
pet.base_attack_damage += 15.0
pet.crit_rate += 0.1
pet.attack_speed += 0.2
# 钻石剑效果已应用
# 移除钻石剑效果
func remove_diamond_sword_effect(pet):
pet.base_attack_damage -= 15.0
pet.crit_rate -= 0.1
pet.attack_speed -= 0.2
# 钻石剑效果已移除
#================钻石剑效果========================
#================铁剑效果========================
# 铁剑效果
func apply_iron_sword_effect(pet):
pet.base_attack_damage += 10.0
pet.crit_rate += 0.05
pet.attack_speed += 0.1
# 铁剑效果已应用
# 移除铁剑效果
func remove_iron_sword_effect(pet):
pet.base_attack_damage -= 10.0
pet.crit_rate -= 0.05
pet.attack_speed -= 0.1
# 铁剑效果已移除
#================铁剑效果========================
#================钻石斧效果========================
# 钻石斧效果
func apply_diamond_axe_effect(pet):
pet.base_attack_damage += 20.0
pet.armor_penetration += 0.2
pet.knockback_force += 100.0
# 钻石斧效果已应用
# 移除钻石斧效果
func remove_diamond_axe_effect(pet):
pet.base_attack_damage -= 20.0
pet.armor_penetration -= 0.2
pet.knockback_force -= 100.0
# 钻石斧效果已移除
#================钻石斧效果========================
#================铁镐效果========================
# 铁镐效果
func apply_iron_pickaxe_effect(pet):
pet.base_attack_damage += 8.0
pet.armor_penetration += 0.3
pet.attack_range += 20.0
# 铁镐效果已应用
# 移除铁镐效果
func remove_iron_pickaxe_effect(pet):
pet.base_attack_damage -= 8.0
pet.armor_penetration -= 0.3
pet.attack_range -= 20.0
# 铁镐效果已移除
#================铁镐效果========================
#======================武器系统通用函数==========================
# 应用武器效果的主函数
func apply_weapon_effect(pet, weapon_name: String):
if not weapon_data.has(weapon_name):
return
var weapon = weapon_data[weapon_name]
var function_name = weapon.get("function", "")
if function_name != "":
call(function_name, pet)
# 移除武器效果的函数
func remove_weapon_effect(pet, weapon_name: String):
if not weapon_data.has(weapon_name):
return
var weapon = weapon_data[weapon_name]
var function_name = weapon.get("function", "")
if function_name != "":
# 将apply替换为remove来调用移除函数
var remove_function_name = function_name.replace("apply_", "remove_")
call(remove_function_name, pet)
# 获取武器图标路径
func get_weapon_icon(weapon_name: String) -> String:
if weapon_data.has(weapon_name):
return weapon_data[weapon_name].get("icon", "")
return ""
# 获取所有武器名称列表
func get_all_weapon_names() -> Array:
return weapon_data.keys()
#======================武器系统通用函数==========================