75 lines
1.6 KiB
GDScript
75 lines
1.6 KiB
GDScript
extends Node2D
|
|
|
|
onready var dialog : PopupDialog = $"ShopDialog"
|
|
|
|
# 文字
|
|
|
|
onready var message : Label = $"ShopDialog/Message"
|
|
|
|
# 按钮
|
|
|
|
onready var close_button : Button = $"ShopDialog/VBoxContainer/CloseDialog"
|
|
|
|
onready var add_hp_button : Button = $"ShopDialog/VBoxContainer/AddHp"
|
|
|
|
onready var add_atk_button : Button = $"ShopDialog/VBoxContainer/AddAtk"
|
|
|
|
onready var add_def_button : Button = $"ShopDialog/VBoxContainer/AddDef"
|
|
|
|
# 增加的hp
|
|
export var added_hp = 100
|
|
|
|
# 增加的攻击力
|
|
export var added_atk = 2
|
|
|
|
# 增加的防御力
|
|
export var added_def = 4
|
|
|
|
# 初始金币
|
|
export var init_money = 20
|
|
|
|
# 使用的次数
|
|
export var used_count = 0
|
|
|
|
# 玩家
|
|
var player : Player
|
|
|
|
func _ready():
|
|
var used_money = get_used_money()
|
|
message.text = "如果供奉%s金币,便可以增强你的力量,你想要什么呢......" % used_money
|
|
add_hp_button.text = "生命+%s" % added_hp
|
|
add_atk_button.text = "攻击力+%s" % added_atk
|
|
add_def_button.text = "防御力+%s" % added_def
|
|
|
|
# 触碰回调
|
|
func on_player_touched(player):
|
|
self.player = player
|
|
dialog.popup_centered()
|
|
|
|
func _on_CloseDialog_pressed():
|
|
dialog.visible = false
|
|
|
|
func _on_AddHp_pressed():
|
|
if enough_money_to_pay():
|
|
player.hp += added_hp
|
|
|
|
func _on_AddAtk_pressed():
|
|
if enough_money_to_pay():
|
|
player.atk += added_atk
|
|
|
|
func _on_AddDef_pressed():
|
|
if enough_money_to_pay():
|
|
player.def += added_def
|
|
|
|
func get_used_money() -> int:
|
|
return init_money * (used_count + 1)
|
|
|
|
func enough_money_to_pay() -> bool:
|
|
var money = get_used_money()
|
|
if player.money >= money:
|
|
player.money -= money
|
|
return true
|
|
else:
|
|
Messages.showDialog("金钱不足")
|
|
return false
|