更新三个按钮 修了一堆bug

This commit is contained in:
2025-05-27 19:53:17 +08:00
parent 8215cfa3ee
commit 94f09b8dd9
47 changed files with 10303 additions and 3085 deletions

View File

@@ -31,7 +31,21 @@ func _ready():
plant_button.pressed.connect(self._on_plant_button_pressed)
remove_button.pressed.connect(self._on_remove_button_pressed)
harvest_button.pressed.connect(self._on_harvest_button_pressed)
dig_button.text = "开垦"+"\n花费:"+str(main_game.dig_money)
# 显示浇水、施肥、升级按钮
water_button.visible = true
fertilize_button.visible = true
upgrade_button.visible = true
_update_button_texts()
# 更新按钮文本
func _update_button_texts():
dig_button.text = "开垦"+"\n"+str(main_game.dig_money)
remove_button.text = "铲除"+"\n¥500"
water_button.text = "浇水"+"\n¥50"
fertilize_button.text = "施肥"+"\n¥150"
upgrade_button.text = "升级"+"\n¥1000"
#开垦
func _on_dig_button_pressed():
@@ -41,12 +55,31 @@ func _on_dig_button_pressed():
self.hide()
return
dig_button.text = "开垦"+"\n花费:"+str(main_game.dig_money)
# 检查玩家金钱是否足够
var dig_cost = main_game.dig_money
if main_game.money < dig_cost:
Toast.show("金钱不足,开垦土地需要 " + str(dig_cost) + " 金钱", Color.RED, 2.0, 1.0)
self.hide()
return
# 检查地块是否已经开垦
var lot = main_game.farm_lots[selected_lot_index]
if lot.get("is_diged", false):
Toast.show("此地块已经开垦过了", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 发送开垦土地请求到服务器
if network_manager and network_manager.is_connected_to_server():
# 使用服务器API来开垦土地
if network_manager.sendDigGround(selected_lot_index):
Toast.show("正在开垦土地...", Color.YELLOW, 1.5, 1.0)
self.hide()
else:
Toast.show("发送开垦请求失败", Color.RED, 2.0, 1.0)
self.hide()
else:
Toast.show("网络未连接,无法开垦土地", Color.RED, 2.0, 1.0)
self.hide()
#浇水
func _on_water_button_pressed():
# 检查是否处于访问模式
@@ -55,8 +88,49 @@ func _on_water_button_pressed():
self.hide()
return
self.hide()
pass
# 检查玩家金钱是否足够
var water_cost = 50
if main_game.money < water_cost:
Toast.show("金钱不足,浇水需要 " + str(water_cost) + " 金钱", Color.RED, 2.0, 1.0)
self.hide()
return
# 检查地块状态
var lot = main_game.farm_lots[selected_lot_index]
if not lot.get("is_planted", false) or lot.get("crop_type", "") == "":
Toast.show("此地块没有种植作物", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 检查作物是否已死亡
if lot.get("is_dead", false):
Toast.show("死亡的作物无法浇水", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 检查是否已经成熟
if lot.get("grow_time", 0) >= lot.get("max_grow_time", 1):
Toast.show("作物已经成熟,无需浇水", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 检查是否已经浇过水
if lot.get("已浇水", false):
Toast.show("今天已经浇过水了", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 发送浇水请求到服务器
if network_manager and network_manager.is_connected_to_server():
if network_manager.sendWaterCrop(selected_lot_index):
Toast.show("正在浇水...", Color.YELLOW, 1.5, 1.0)
self.hide()
else:
Toast.show("发送浇水请求失败", Color.RED, 2.0, 1.0)
self.hide()
else:
Toast.show("网络未连接,无法浇水", Color.RED, 2.0, 1.0)
self.hide()
#施肥
func _on_fertilize_button_pressed():
# 检查是否处于访问模式
@@ -65,8 +139,49 @@ func _on_fertilize_button_pressed():
self.hide()
return
self.hide()
pass
# 检查玩家金钱是否足够
var fertilize_cost = 150
if main_game.money < fertilize_cost:
Toast.show("金钱不足,施肥需要 " + str(fertilize_cost) + " 金钱", Color.RED, 2.0, 1.0)
self.hide()
return
# 检查地块状态
var lot = main_game.farm_lots[selected_lot_index]
if not lot.get("is_planted", false) or lot.get("crop_type", "") == "":
Toast.show("此地块没有种植作物", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 检查作物是否已死亡
if lot.get("is_dead", false):
Toast.show("死亡的作物无法施肥", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 检查是否已经成熟
if lot.get("grow_time", 0) >= lot.get("max_grow_time", 1):
Toast.show("作物已经成熟,无需施肥", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 检查是否已经施过肥
if lot.get("已施肥", false):
Toast.show("此作物已经施过肥了", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 发送施肥请求到服务器
if network_manager and network_manager.is_connected_to_server():
if network_manager.sendFertilizeCrop(selected_lot_index):
Toast.show("正在施肥...", Color.YELLOW, 1.5, 1.0)
self.hide()
else:
Toast.show("发送施肥请求失败", Color.RED, 2.0, 1.0)
self.hide()
else:
Toast.show("网络未连接,无法施肥", Color.RED, 2.0, 1.0)
self.hide()
#升级
func _on_upgrade_button_pressed():
# 检查是否处于访问模式
@@ -75,8 +190,38 @@ func _on_upgrade_button_pressed():
self.hide()
return
self.hide()
pass
# 检查玩家金钱是否足够
var upgrade_cost = 1000
if main_game.money < upgrade_cost:
Toast.show("金钱不足,升级土地需要 " + str(upgrade_cost) + " 金钱", Color.RED, 2.0, 1.0)
self.hide()
return
# 检查地块是否已开垦
var lot = main_game.farm_lots[selected_lot_index]
if not lot.get("is_diged", false):
Toast.show("此地块尚未开垦", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 检查土地是否已经升级
var current_level = lot.get("土地等级", 0)
if current_level >= 1:
Toast.show("此土地已经升级过了", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 发送升级请求到服务器
if network_manager and network_manager.is_connected_to_server():
if network_manager.sendUpgradeLand(selected_lot_index):
Toast.show("正在升级土地...", Color.YELLOW, 1.5, 1.0)
self.hide()
else:
Toast.show("发送升级请求失败", Color.RED, 2.0, 1.0)
self.hide()
else:
Toast.show("网络未连接,无法升级土地", Color.RED, 2.0, 1.0)
self.hide()
#种植
func _on_plant_button_pressed():
# 检查是否处于访问模式
@@ -96,8 +241,31 @@ func _on_remove_button_pressed():
self.hide()
return
main_game.root_out_crop(selected_lot_index)
self.hide()
# 检查玩家金钱是否足够
var removal_cost = 500
if main_game.money < removal_cost:
Toast.show("金钱不足,铲除作物需要 " + str(removal_cost) + " 金钱", Color.RED, 2.0, 1.0)
self.hide()
return
# 检查地块是否有作物
var lot = main_game.farm_lots[selected_lot_index]
if not lot.get("is_planted", false) or lot.get("crop_type", "") == "":
Toast.show("此地块没有种植作物", Color.ORANGE, 2.0, 1.0)
self.hide()
return
# 发送铲除作物请求到服务器
if network_manager and network_manager.is_connected_to_server():
if network_manager.sendRemoveCrop(selected_lot_index):
Toast.show("正在铲除作物...", Color.YELLOW, 1.5, 1.0)
self.hide()
else:
Toast.show("发送铲除请求失败", Color.RED, 2.0, 1.0)
self.hide()
else:
Toast.show("网络未连接,无法铲除作物", Color.RED, 2.0, 1.0)
self.hide()
pass
#收获
func _on_harvest_button_pressed():