临时
1
This commit is contained in:
@@ -39,13 +39,79 @@ func _ready():
|
||||
|
||||
_update_button_texts()
|
||||
|
||||
# 显示面板时更新按钮状态
|
||||
func show_panel():
|
||||
self.show()
|
||||
_update_button_texts()
|
||||
_update_button_availability()
|
||||
|
||||
# 更新按钮可用性
|
||||
func _update_button_availability():
|
||||
if main_game.is_visiting_mode:
|
||||
# 访问模式下禁用一些按钮
|
||||
dig_button.hide()
|
||||
remove_button.hide()
|
||||
upgrade_button.hide()
|
||||
plant_button.hide()
|
||||
|
||||
# 启用允许的按钮
|
||||
water_button.show()
|
||||
fertilize_button.show()
|
||||
harvest_button.show()
|
||||
else:
|
||||
# 自己农场模式下启用所有按钮
|
||||
dig_button.show()
|
||||
remove_button.show()
|
||||
upgrade_button.show()
|
||||
plant_button.show()
|
||||
water_button.show()
|
||||
fertilize_button.show()
|
||||
harvest_button.show()
|
||||
|
||||
# 更新按钮文本
|
||||
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"
|
||||
# 根据是否访问模式显示不同的按钮文本
|
||||
if main_game.is_visiting_mode:
|
||||
water_button.text = "帮助浇水"+"\n¥50"
|
||||
fertilize_button.text = "帮助施肥"+"\n¥150"
|
||||
harvest_button.text = "偷菜"
|
||||
else:
|
||||
dig_button.text = "开垦"+"\n¥"+str(main_game.dig_money)
|
||||
remove_button.text = "铲除"+"\n¥500"
|
||||
water_button.text = "浇水"+"\n¥50"
|
||||
fertilize_button.text = "施肥"+"\n¥150"
|
||||
|
||||
# 升级按钮动态显示
|
||||
_update_upgrade_button_text()
|
||||
|
||||
harvest_button.text = "收获"
|
||||
|
||||
# 更新升级按钮文本
|
||||
func _update_upgrade_button_text():
|
||||
if not main_game or not main_game.farm_lots:
|
||||
upgrade_button.text = "升级\n¥1000"
|
||||
return
|
||||
|
||||
if selected_lot_index >= 0 and selected_lot_index < main_game.farm_lots.size():
|
||||
var lot = main_game.farm_lots[selected_lot_index]
|
||||
var current_level = int(lot.get("土地等级", 0)) # 确保是整数
|
||||
|
||||
var upgrade_config = {
|
||||
0: {"cost": 1000, "name": "黄土地"},
|
||||
1: {"cost": 2000, "name": "红土地"},
|
||||
2: {"cost": 4000, "name": "紫土地"},
|
||||
3: {"cost": 8000, "name": "黑土地"}
|
||||
}
|
||||
|
||||
if current_level >= 4:
|
||||
upgrade_button.text = "已满级"
|
||||
elif upgrade_config.has(current_level):
|
||||
var config = upgrade_config[current_level]
|
||||
upgrade_button.text = "升级到\n" + config["name"] + "\n¥" + str(config["cost"])
|
||||
else:
|
||||
upgrade_button.text = "等级异常\n" + str(current_level)
|
||||
else:
|
||||
upgrade_button.text = "选择地块"
|
||||
|
||||
#开垦
|
||||
func _on_dig_button_pressed():
|
||||
@@ -72,7 +138,6 @@ func _on_dig_button_pressed():
|
||||
# 发送开垦土地请求到服务器
|
||||
if network_manager and network_manager.is_connected_to_server():
|
||||
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)
|
||||
@@ -80,18 +145,20 @@ func _on_dig_button_pressed():
|
||||
else:
|
||||
Toast.show("网络未连接,无法开垦土地", Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
|
||||
#浇水
|
||||
func _on_water_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法浇水", Color.ORANGE, 2.0, 1.0)
|
||||
self.hide()
|
||||
return
|
||||
|
||||
# 检查玩家金钱是否足够
|
||||
# 检查玩家金钱是否足够(无论是否访问模式都检查自己的钱)
|
||||
var water_cost = 50
|
||||
if main_game.money < water_cost:
|
||||
Toast.show("金钱不足,浇水需要 " + str(water_cost) + " 金钱", Color.RED, 2.0, 1.0)
|
||||
var my_money = main_game.money
|
||||
|
||||
# 如果是访问模式,需要检查自己的原始金钱数据
|
||||
if main_game.is_visiting_mode:
|
||||
my_money = main_game.original_player_data.get("money", 0)
|
||||
|
||||
if my_money < water_cost:
|
||||
var action_text = "帮助浇水" if main_game.is_visiting_mode else "浇水"
|
||||
Toast.show("金钱不足," + action_text + "需要 " + str(water_cost) + " 金钱", Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
return
|
||||
|
||||
@@ -115,34 +182,47 @@ func _on_water_button_pressed():
|
||||
return
|
||||
|
||||
# 检查是否已经浇过水
|
||||
if lot.get("已浇水", false):
|
||||
Toast.show("今天已经浇过水了", Color.ORANGE, 2.0, 1.0)
|
||||
var current_time = Time.get_unix_time_from_system()
|
||||
var last_water_time = lot.get("浇水时间", 0)
|
||||
var water_cooldown = 3600 # 1小时冷却时间
|
||||
|
||||
if current_time - last_water_time < water_cooldown:
|
||||
var remaining_time = water_cooldown - (current_time - last_water_time)
|
||||
var remaining_minutes = int(remaining_time / 60)
|
||||
var remaining_seconds = int(remaining_time) % 60
|
||||
Toast.show("浇水冷却中,还需等待 " + str(remaining_minutes) + " 分钟 " + str(remaining_seconds) + " 秒", Color.ORANGE, 2.0, 1.0)
|
||||
self.hide()
|
||||
return
|
||||
|
||||
# 发送浇水请求到服务器
|
||||
var target_username = ""
|
||||
if main_game.is_visiting_mode:
|
||||
target_username = main_game.visited_player_data.get("user_name", "")
|
||||
|
||||
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)
|
||||
if network_manager.sendWaterCrop(selected_lot_index, target_username):
|
||||
self.hide()
|
||||
else:
|
||||
Toast.show("发送浇水请求失败", Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
else:
|
||||
Toast.show("网络未连接,无法浇水", Color.RED, 2.0, 1.0)
|
||||
var action_text = "帮助浇水" if main_game.is_visiting_mode else "浇水"
|
||||
Toast.show("网络未连接,无法" + action_text, Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
|
||||
#施肥
|
||||
func _on_fertilize_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法施肥", Color.ORANGE, 2.0, 1.0)
|
||||
self.hide()
|
||||
return
|
||||
|
||||
# 检查玩家金钱是否足够
|
||||
# 检查玩家金钱是否足够(无论是否访问模式都检查自己的钱)
|
||||
var fertilize_cost = 150
|
||||
if main_game.money < fertilize_cost:
|
||||
Toast.show("金钱不足,施肥需要 " + str(fertilize_cost) + " 金钱", Color.RED, 2.0, 1.0)
|
||||
var my_money = main_game.money
|
||||
|
||||
# 如果是访问模式,需要检查自己的原始金钱数据
|
||||
if main_game.is_visiting_mode:
|
||||
my_money = main_game.original_player_data.get("money", 0)
|
||||
|
||||
if my_money < fertilize_cost:
|
||||
var action_text = "帮助施肥" if main_game.is_visiting_mode else "施肥"
|
||||
Toast.show("金钱不足," + action_text + "需要 " + str(fertilize_cost) + " 金钱", Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
return
|
||||
|
||||
@@ -172,16 +252,21 @@ func _on_fertilize_button_pressed():
|
||||
return
|
||||
|
||||
# 发送施肥请求到服务器
|
||||
var target_username = ""
|
||||
if main_game.is_visiting_mode:
|
||||
target_username = main_game.visited_player_data.get("user_name", "")
|
||||
|
||||
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)
|
||||
if network_manager.sendFertilizeCrop(selected_lot_index, target_username):
|
||||
self.hide()
|
||||
else:
|
||||
Toast.show("发送施肥请求失败", Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
else:
|
||||
Toast.show("网络未连接,无法施肥", Color.RED, 2.0, 1.0)
|
||||
var action_text = "帮助施肥" if main_game.is_visiting_mode else "施肥"
|
||||
Toast.show("网络未连接,无法" + action_text, Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
|
||||
#升级
|
||||
func _on_upgrade_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
@@ -190,31 +275,61 @@ func _on_upgrade_button_pressed():
|
||||
self.hide()
|
||||
return
|
||||
|
||||
# 检查玩家金钱是否足够
|
||||
var upgrade_cost = 1000
|
||||
if main_game.money < upgrade_cost:
|
||||
Toast.show("金钱不足,升级土地需要 " + str(upgrade_cost) + " 金钱", Color.RED, 2.0, 1.0)
|
||||
# 检查地块索引是否有效
|
||||
if selected_lot_index < 0 or selected_lot_index >= main_game.farm_lots.size():
|
||||
Toast.show("无效的地块选择", 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)
|
||||
# 获取当前土地等级和升级配置
|
||||
var current_level = int(lot.get("土地等级", 0)) # 确保是整数
|
||||
print("当前选择地块索引: ", selected_lot_index)
|
||||
print("当前土地等级: ", current_level, " (类型: ", typeof(current_level), ")")
|
||||
|
||||
var upgrade_config = {
|
||||
0: {"cost": 1000, "name": "黄土地", "speed": "2倍"},
|
||||
1: {"cost": 2000, "name": "红土地", "speed": "4倍"},
|
||||
2: {"cost": 4000, "name": "紫土地", "speed": "6倍"},
|
||||
3: {"cost": 8000, "name": "黑土地", "speed": "10倍"}
|
||||
}
|
||||
|
||||
# 检查是否已达到最高等级
|
||||
if current_level >= 4:
|
||||
Toast.show("此土地已达到最高等级(黑土地)", Color.ORANGE, 2.0, 1.0)
|
||||
self.hide()
|
||||
return
|
||||
|
||||
# 检查土地等级是否有效
|
||||
if not upgrade_config.has(current_level):
|
||||
Toast.show("土地等级数据异常,当前等级: " + str(current_level), Color.RED, 2.0, 1.0)
|
||||
print("土地等级异常,当前等级: ", current_level, ",可用等级: ", upgrade_config.keys())
|
||||
self.hide()
|
||||
return
|
||||
|
||||
var config = upgrade_config[current_level]
|
||||
var upgrade_cost = config["cost"]
|
||||
var next_name = config["name"]
|
||||
var speed_info = config["speed"]
|
||||
|
||||
# 检查玩家金钱是否足够
|
||||
if main_game.money < upgrade_cost:
|
||||
Toast.show("金钱不足,升级到" + next_name + "需要 " + str(upgrade_cost) + " 金钱", Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
return
|
||||
|
||||
# 发送升级请求到服务器
|
||||
if network_manager and network_manager.is_connected_to_server():
|
||||
print("发送升级请求,地块索引: ", selected_lot_index, ",当前等级: ", current_level)
|
||||
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)
|
||||
@@ -222,6 +337,7 @@ func _on_upgrade_button_pressed():
|
||||
else:
|
||||
Toast.show("网络未连接,无法升级土地", Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
|
||||
#种植
|
||||
func _on_plant_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
@@ -258,7 +374,6 @@ func _on_remove_button_pressed():
|
||||
# 发送铲除作物请求到服务器
|
||||
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)
|
||||
@@ -267,17 +382,39 @@ func _on_remove_button_pressed():
|
||||
Toast.show("网络未连接,无法铲除作物", Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
pass
|
||||
|
||||
#收获
|
||||
func _on_harvest_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法收获作物", Color.ORANGE, 2.0, 1.0)
|
||||
# 检查地块状态
|
||||
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
|
||||
|
||||
main_game._harvest_crop(selected_lot_index)
|
||||
self.hide()
|
||||
# 检查作物是否成熟
|
||||
if lot.get("grow_time", 0) < lot.get("max_grow_time", 1) and not lot.get("is_dead", false):
|
||||
Toast.show("作物尚未成熟", Color.ORANGE, 2.0, 1.0)
|
||||
self.hide()
|
||||
return
|
||||
|
||||
# 发送收获请求到服务器
|
||||
var target_username = ""
|
||||
if main_game.is_visiting_mode:
|
||||
target_username = main_game.visited_player_data.get("user_name", "")
|
||||
|
||||
if network_manager and network_manager.is_connected_to_server():
|
||||
if network_manager.sendHarvestCrop(selected_lot_index, target_username):
|
||||
self.hide()
|
||||
else:
|
||||
Toast.show("发送收获请求失败", Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
else:
|
||||
var action_text = "偷菜" if main_game.is_visiting_mode else "收获"
|
||||
Toast.show("网络未连接,无法" + action_text, Color.RED, 2.0, 1.0)
|
||||
self.hide()
|
||||
pass
|
||||
|
||||
#退出
|
||||
func _on_quit_button_pressed():
|
||||
self.hide()
|
||||
|
||||
Reference in New Issue
Block a user