diff --git a/CopyItems/black_blue_crop.tscn b/CopyItems/black_blue_crop.tscn deleted file mode 100644 index 7c68577..0000000 --- a/CopyItems/black_blue_crop.tscn +++ /dev/null @@ -1,25 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://cm1e72lhd7j7v"] - -[ext_resource type="Script" uid="uid://c6ylh1o2kgqth" path="res://CopyItems/item_crop.gd" id="1_sgirt"] - -[node name="BlackBlueCrop" type="Button"] -custom_minimum_size = Vector2(400, 400) -offset_right = 400.0 -offset_bottom = 400.0 -scale = Vector2(0.3, 0.3) -theme_override_font_sizes/font_size = 1 -icon_alignment = 1 -script = ExtResource("1_sgirt") - -[node name="CropImage" type="Sprite2D" parent="."] -position = Vector2(199.569, 201.043) -scale = Vector2(0.260977, 0.259058) - -[node name="Title" type="Label" parent="."] -modulate = Color(0, 0.152941, 0.984314, 1) -layout_mode = 0 -offset_right = 400.0 -offset_bottom = 55.0 -theme_override_font_sizes/font_size = 50 -text = "普通" -horizontal_alignment = 1 diff --git a/CopyItems/crop_item.tscn b/CopyItems/crop_item.tscn index af6077b..89358bd 100644 --- a/CopyItems/crop_item.tscn +++ b/CopyItems/crop_item.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=7 format=3 uid="uid://bkivlkirrx6u8"] +[gd_scene load_steps=9 format=3 uid="uid://bkivlkirrx6u8"] [ext_resource type="Texture2D" uid="uid://bt1i2yhhlor5e" path="res://assets/地块/土块1.webp" id="1_bns1c"] -[ext_resource type="Script" uid="uid://xh5tr5co5kfu" path="res://GUI/SMY_ProgressBar.gd" id="2_1n4xp"] [ext_resource type="Shader" path="res://Shader/PlantSwayShader.gdshader" id="2_s5pb0"] +[ext_resource type="Texture2D" uid="uid://xyj4ro44cwj5" path="res://assets/作物/人参/0.webp" id="3_bns1c"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_v46ok"] @@ -17,8 +17,23 @@ shader_parameter/height_curve = 2.0 [sub_resource type="ShaderMaterial" id="ShaderMaterial_cyybs"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bns1c"] +bg_color = Color(0.377919, 0.377919, 0.377919, 1) +corner_radius_top_left = 15 +corner_radius_top_right = 15 +corner_radius_bottom_right = 15 +corner_radius_bottom_left = 15 +corner_detail = 15 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_s5pb0"] +bg_color = Color(0.360784, 0.776471, 0.223529, 1) +corner_radius_top_left = 15 +corner_radius_top_right = 15 +corner_radius_bottom_right = 15 +corner_radius_bottom_left = 15 +corner_detail = 15 + [node name="CropItem" type="Button"] -self_modulate = Color(1, 1, 1, 0) custom_minimum_size = Vector2(100, 100) offset_right = 40.0 offset_bottom = 40.0 @@ -32,8 +47,9 @@ texture = ExtResource("1_bns1c") [node name="crop_sprite" type="Sprite2D" parent="."] material = SubResource("ShaderMaterial_s5pb0") -position = Vector2(51, 39) -scale = Vector2(0.06, 0.06) +position = Vector2(51, 45) +scale = Vector2(0.339844, 0.363281) +texture = ExtResource("3_bns1c") [node name="old_crop_sprite" type="Sprite2D" parent="."] material = SubResource("ShaderMaterial_s5pb0") @@ -41,40 +57,43 @@ position = Vector2(51, 39) scale = Vector2(0.06, 0.06) [node name="ProgressBar" type="ProgressBar" parent="."] -modulate = Color(0.1, 0.1, 0.1, 1) material = SubResource("ShaderMaterial_cyybs") layout_mode = 2 -offset_left = 23.0 -offset_top = 78.0 -offset_right = 328.0 -offset_bottom = 151.0 +offset_left = 18.0 +offset_top = -5.0 +offset_right = 348.0 +offset_bottom = 68.0 scale = Vector2(0.2, 0.2) theme_override_colors/font_color = Color(0, 0, 0, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_constants/outline_size = 10 theme_override_font_sizes/font_size = 50 -script = ExtResource("2_1n4xp") +theme_override_styles/background = SubResource("StyleBoxFlat_bns1c") +theme_override_styles/fill = SubResource("StyleBoxFlat_s5pb0") +value = 80.0 [node name="crop_name" type="Label" parent="."] modulate = Color(2, 2, 2, 1) layout_mode = 2 -offset_top = -9.0 +offset_top = 76.0 offset_right = 250.0 -offset_bottom = 33.0 +offset_bottom = 118.0 scale = Vector2(0.4, 0.4) size_flags_horizontal = 3 theme_override_font_sizes/font_size = 30 +text = "[空地]" horizontal_alignment = 1 vertical_alignment = 1 [node name="status_label" type="Label" parent="."] modulate = Color(0.721569, 1, 1, 1) layout_mode = 2 -offset_top = 8.0 +offset_top = 62.0 offset_right = 500.0 -offset_bottom = 77.0 +offset_bottom = 131.0 scale = Vector2(0.2, 0.2) size_flags_horizontal = 3 theme_override_font_sizes/font_size = 50 +text = "[已施肥]" horizontal_alignment = 1 vertical_alignment = 1 diff --git a/CopyItems/green_crop.tscn b/CopyItems/green_crop.tscn deleted file mode 100644 index 27ddc2a..0000000 --- a/CopyItems/green_crop.tscn +++ /dev/null @@ -1,25 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://2m54c0f1ejir"] - -[ext_resource type="Script" uid="uid://c6ylh1o2kgqth" path="res://CopyItems/item_crop.gd" id="1_ihcyw"] - -[node name="GreenCrop" type="Button"] -custom_minimum_size = Vector2(400, 400) -offset_right = 400.0 -offset_bottom = 400.0 -scale = Vector2(0.3, 0.3) -theme_override_font_sizes/font_size = 1 -icon_alignment = 1 -script = ExtResource("1_ihcyw") - -[node name="CropImage" type="Sprite2D" parent="."] -position = Vector2(199.569, 201.043) -scale = Vector2(0.260977, 0.259058) - -[node name="Title" type="Label" parent="."] -modulate = Color(0.243137, 0.729412, 0, 1) -layout_mode = 0 -offset_right = 400.0 -offset_bottom = 55.0 -theme_override_font_sizes/font_size = 50 -text = "普通" -horizontal_alignment = 1 diff --git a/CopyItems/item_button.tscn b/CopyItems/item_button.tscn index 44114bd..35ff9ad 100644 --- a/CopyItems/item_button.tscn +++ b/CopyItems/item_button.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=2 format=3 uid="uid://ibl5wbbw3pwc"] +[gd_scene load_steps=3 format=3 uid="uid://ibl5wbbw3pwc"] [ext_resource type="Script" uid="uid://c6ylh1o2kgqth" path="res://CopyItems/item_crop.gd" id="1_e25nh"] +[ext_resource type="Texture2D" uid="uid://bl48i2h22htyd" path="res://assets/作物/人参/收获物.webp" id="2_abhds"] [node name="item_button" type="Button"] custom_minimum_size = Vector2(400, 400) @@ -11,8 +12,9 @@ icon_alignment = 1 script = ExtResource("1_e25nh") [node name="CropImage" type="Sprite2D" parent="."] -position = Vector2(199.569, 201.043) -scale = Vector2(0.260977, 0.259058) +position = Vector2(200, 200) +scale = Vector2(1.5625, 1.5625) +texture = ExtResource("2_abhds") [node name="Title" type="Label" parent="."] layout_mode = 0 diff --git a/CopyItems/orange_crop.tscn b/CopyItems/orange_crop.tscn deleted file mode 100644 index a8c18eb..0000000 --- a/CopyItems/orange_crop.tscn +++ /dev/null @@ -1,25 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://forqk66f354p"] - -[ext_resource type="Script" uid="uid://c6ylh1o2kgqth" path="res://CopyItems/item_crop.gd" id="1_00rx4"] - -[node name="OrangeCrop" type="Button"] -custom_minimum_size = Vector2(400, 400) -offset_right = 400.0 -offset_bottom = 400.0 -scale = Vector2(0.3, 0.3) -theme_override_font_sizes/font_size = 1 -icon_alignment = 1 -script = ExtResource("1_00rx4") - -[node name="CropImage" type="Sprite2D" parent="."] -position = Vector2(200, 200) -scale = Vector2(0.308178, 0.308356) - -[node name="Title" type="Label" parent="."] -modulate = Color(0.822776, 0.578065, 0, 1) -layout_mode = 0 -offset_right = 400.0 -offset_bottom = 55.0 -theme_override_font_sizes/font_size = 50 -text = "普通" -horizontal_alignment = 1 diff --git a/CopyItems/pink_crop.tscn b/CopyItems/pink_crop.tscn deleted file mode 100644 index baf3051..0000000 --- a/CopyItems/pink_crop.tscn +++ /dev/null @@ -1,25 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://cmdoymcviv0ai"] - -[ext_resource type="Script" uid="uid://c6ylh1o2kgqth" path="res://CopyItems/item_crop.gd" id="1_3xhou"] - -[node name="PinkCrop" type="Button"] -custom_minimum_size = Vector2(400, 400) -offset_right = 400.0 -offset_bottom = 400.0 -scale = Vector2(0.3, 0.3) -theme_override_font_sizes/font_size = 1 -icon_alignment = 1 -script = ExtResource("1_3xhou") - -[node name="CropImage" type="Sprite2D" parent="."] -position = Vector2(199.569, 201.043) -scale = Vector2(0.260977, 0.259058) - -[node name="Title" type="Label" parent="."] -modulate = Color(0.980392, 0, 0.552941, 1) -layout_mode = 0 -offset_right = 400.0 -offset_bottom = 55.0 -theme_override_font_sizes/font_size = 50 -text = "普通" -horizontal_alignment = 1 diff --git a/CopyItems/red_crop.tscn b/CopyItems/red_crop.tscn deleted file mode 100644 index 2b8dcdd..0000000 --- a/CopyItems/red_crop.tscn +++ /dev/null @@ -1,25 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://d3ve4qeggsdqy"] - -[ext_resource type="Script" uid="uid://c6ylh1o2kgqth" path="res://CopyItems/item_crop.gd" id="1_1yrv4"] - -[node name="RedCrop" type="Button"] -custom_minimum_size = Vector2(400, 400) -offset_right = 400.0 -offset_bottom = 400.0 -scale = Vector2(0.3, 0.3) -theme_override_font_sizes/font_size = 1 -icon_alignment = 1 -script = ExtResource("1_1yrv4") - -[node name="CropImage" type="Sprite2D" parent="."] -position = Vector2(199.569, 201.043) -scale = Vector2(0.260977, 0.259058) - -[node name="Title" type="Label" parent="."] -modulate = Color(1, 0.0509804, 0.0352941, 1) -layout_mode = 0 -offset_right = 400.0 -offset_bottom = 55.0 -theme_override_font_sizes/font_size = 50 -text = "普通" -horizontal_alignment = 1 diff --git a/CopyItems/white_blue_crop.tscn b/CopyItems/white_blue_crop.tscn deleted file mode 100644 index c81c5b0..0000000 --- a/CopyItems/white_blue_crop.tscn +++ /dev/null @@ -1,25 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://dagh3u5med30i"] - -[ext_resource type="Script" uid="uid://c6ylh1o2kgqth" path="res://CopyItems/item_crop.gd" id="1_nfqts"] - -[node name="WhiteBlueCrop" type="Button"] -custom_minimum_size = Vector2(400, 400) -offset_right = 400.0 -offset_bottom = 400.0 -scale = Vector2(0.3, 0.3) -theme_override_font_sizes/font_size = 1 -icon_alignment = 1 -script = ExtResource("1_nfqts") - -[node name="CropImage" type="Sprite2D" parent="."] -position = Vector2(199.569, 201.043) -scale = Vector2(0.260977, 0.259058) - -[node name="Title" type="Label" parent="."] -modulate = Color(0.111013, 0.795686, 0.959948, 1) -layout_mode = 0 -offset_right = 400.0 -offset_bottom = 55.0 -theme_override_font_sizes/font_size = 50 -text = "普通" -horizontal_alignment = 1 diff --git a/Data/initial_player_data_template.json b/Data/initial_player_data_template.json index d8f1286..f778f9a 100644 --- a/Data/initial_player_data_template.json +++ b/Data/initial_player_data_template.json @@ -1,5 +1,11 @@ { "experience": 0, + "宠物背包":[], + "道具背包":[], + "作物仓库":[], + "巡逻宠物":[], + "出战宠物":[], + "个人简介": "", "farm_lots": [ {"crop_type": "", "grow_time": 0, "is_dead": false, "is_diged": true, "is_planted": false, "max_grow_time": 3}, {"crop_type": "", "grow_time": 0, "is_dead": false, "is_diged": true, "is_planted": false, "max_grow_time": 3}, diff --git a/Data/item_config.json b/Data/item_config.json new file mode 100644 index 0000000..45d1ff5 --- /dev/null +++ b/Data/item_config.json @@ -0,0 +1,12 @@ +{ + "精准采集-镰刀": {"花费":100,"描述":"可以在收获作物时必定掉落该作物的种子","类型":"作物道具","道具图片":"res://assets/道具图片/紫水晶镰刀.webp"}, + "时运-镰刀": {"花费":100,"描述":"可以在收获作物时掉落更多的作物的收获物","类型":"作物道具","道具图片":"res://assets/道具图片/红宝石镰刀.webp"}, + "农家肥": {"花费":100,"描述":"(施肥道具)可以在30分钟内2倍速作物生长","类型":"作物道具","道具图片":"res://assets/道具图片/农家肥.webp"}, + "金坷垃": {"花费":100,"描述":"(施肥道具)可以在5分钟内5倍速作物的生长","类型":"作物道具","道具图片":"res://assets/道具图片/金坷垃2.webp"}, + "水壶": {"花费":100,"描述":"(浇水道具)直接让作物生长进度+1%","类型":"作物道具","道具图片":"res://assets/道具图片/铁质洒水壶.webp"}, + "水桶": {"花费":100,"描述":"(浇水道具)让作物生长进度+2%","类型":"作物道具","道具图片":"res://assets/道具图片/木质水桶2.webp"}, + "杀虫剂": {"花费":100,"描述":"杀虫,暂时没什么用","类型":"作物道具","道具图片":"res://assets/道具图片/杀虫剂.webp"}, + "除草剂": {"花费":100,"描述":"除草","类型":"作物道具","道具图片":"res://assets/道具图片/除草剂.webp"}, + "生长素": {"花费":100,"描述":"时运可以10分钟内3倍速作物生长,而且作物生长速度+3%","类型":"作物道具","道具图片":"res://assets/道具图片/生长素.webp"}, + "铲子": {"花费":100,"描述":"铲除作物","类型":"作物道具","道具图片":"res://assets/道具图片/附魔铁铲.webp"} +} \ No newline at end of file diff --git a/Data/pet_data.json b/Data/pet_data.json new file mode 100644 index 0000000..f541c13 --- /dev/null +++ b/Data/pet_data.json @@ -0,0 +1,1466 @@ +{ + "小绿": { + "场景路径": "res://Scene/Pet/SmallGreen.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小绿", + "队伍标识": "team1", + "宠物ID": "0001", + "宠物类型": "小绿", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小蓝": { + "场景路径": "res://Scene/Pet/SmallBlue.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小蓝", + "队伍标识": "team1", + "宠物ID": "0002", + "宠物类型": "小蓝", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小黄": { + "场景路径": "res://Scene/Pet/SmallYellow.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小黄", + "队伍标识": "team1", + "宠物ID": "0003", + "宠物类型": "小黄", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小橙": { + "场景路径": "res://Scene/Pet/SmallOrange.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小橙", + "队伍标识": "team1", + "宠物ID": "0004", + "宠物类型": "小橙", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小粉": { + "场景路径": "res://Scene/Pet/SmallPink.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小粉", + "队伍标识": "team1", + "宠物ID": "0005", + "宠物类型": "小粉", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "红史莱姆": { + "场景路径": "res://Scene/Pet/RedSlime.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽红史莱姆", + "队伍标识": "team1", + "宠物ID": "0006", + "宠物类型": "红史莱姆", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "绿史莱姆": { + "场景路径": "res://Scene/Pet/GreenSlime.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽绿史莱姆", + "队伍标识": "team1", + "宠物ID": "0007", + "宠物类型": "绿史莱姆", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小骑士": { + "场景路径": "res://Scene/Pet/LittleKnight.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小骑士", + "队伍标识": "team1", + "宠物ID": "0008", + "宠物类型": "小骑士", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "大甲虫": { + "场景路径": "res://Scene/Pet/BigBeetle.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽大甲虫", + "队伍标识": "team1", + "宠物ID": "0009", + "宠物类型": "大甲虫", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小甲虫": { + "场景路径": "res://Scene/Pet/SmallBeetle.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小甲虫", + "队伍标识": "team1", + "宠物ID": "0010", + "宠物类型": "小甲虫", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "飞鸟": { + "场景路径": "res://Scene/Pet/FlyingBird.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽飞鸟", + "队伍标识": "team1", + "宠物ID": "0011", + "宠物类型": "飞鸟", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小钻头": { + "场景路径": "res://Scene/Pet/SmallDrillBit.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小钻头", + "队伍标识": "team1", + "宠物ID": "0012", + "宠物类型": "小钻头", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + } +} \ No newline at end of file diff --git a/GUI/CheckUpdatePanel.gd b/GUI/CheckUpdatePanel.gd new file mode 100644 index 0000000..7598149 --- /dev/null +++ b/GUI/CheckUpdatePanel.gd @@ -0,0 +1,178 @@ +extends Control + +# 简化版更新检测器 +# 适用于萌芽农场游戏 + +# 配置 +const GAME_ID = "mengyafarm" +const SERVER_URL = "http://47.108.90.0:5000" +const CURRENT_VERSION = GlobalVariables.client_version + +# 更新信息 +var has_update = false +var latest_version = "" + +func _ready(): + # 初始化时隐藏面板 + self.hide() + + # 游戏启动时自动检查更新 + call_deferred("check_for_updates") + +func check_for_updates(): + + var http_request = HTTPRequest.new() + add_child(http_request) + + # 连接请求完成信号 + http_request.request_completed.connect(_on_update_check_completed) + + # 发送请求 + var url = SERVER_URL + "/api/simple/check-version/" + GAME_ID + "?current_version=" + CURRENT_VERSION + var error = http_request.request(url) + + if error != OK: + print("网络请求失败: ", error) + +func _on_update_check_completed(result: int, response_code: int, headers: PackedStringArray, body: PackedByteArray): + if response_code != 200: + print("服务器响应错误: ", response_code) + return + + # 解析JSON + var json = JSON.new() + var parse_result = json.parse(body.get_string_from_utf8()) + + if parse_result != OK: + print("解析响应失败") + return + + var data = json.data + + if "error" in data: + print("服务器错误: ", data.error) + return + + # 检查是否有更新 + has_update = data.get("has_update", false) + latest_version = data.get("latest_version", "") + + if has_update: + print("发现新版本: ", latest_version) + show_update_panel() + else: + print("已是最新版本") + +func show_update_panel(): + """显示更新面板""" + self.show() # 直接显示当前面板 + +func download_update(): + """下载更新""" + var platform = get_platform_name() + var download_url = SERVER_URL + "/download/" + GAME_ID + "/" + platform.to_lower() + + print("下载链接: ", download_url) + + # 打开下载页面 + var error = OS.shell_open(download_url) + if error != OK: + # 复制到剪贴板作为备选方案 + DisplayServer.clipboard_set(download_url) + show_message("无法打开浏览器,下载链接已复制到剪贴板") + +func get_platform_name() -> String: + """获取平台名称""" + var os_name = OS.get_name() + match os_name: + "Windows": + return "Windows" + "Android": + return "Android" + "macOS": + return "macOS" + "Linux": + return "Linux" + _: + return "Windows" + +func show_message(text: String): + """显示消息提示""" + var dialog = AcceptDialog.new() + add_child(dialog) + dialog.dialog_text = text + dialog.popup_centered() + + # 3秒后自动关闭 + await get_tree().create_timer(3.0).timeout + if is_instance_valid(dialog): + dialog.queue_free() + +# 手动检查更新的公共方法 +func manual_check_update(): + """手动检查更新""" + check_for_updates() + +# 直接跳转到相应平台下载链接 +func _on_download_button_pressed() -> void: + """下载按钮点击事件""" + if not has_update: + show_message("当前已是最新版本") + return + + var platform = get_platform_name() + var download_url = SERVER_URL + "/download/" + GAME_ID + "/" + platform.to_lower() + + print("下载链接: ", download_url) + + # 打开下载页面 + var error = OS.shell_open(download_url) + if error != OK: + # 复制到剪贴板作为备选方案 + DisplayServer.clipboard_set(download_url) + show_message("无法打开浏览器,下载链接已复制到剪贴板") + else: + show_message("正在打开下载页面...") + # 可选:隐藏更新面板 + self.hide() + +# 关闭更新面板 +func _on_close_button_pressed() -> void: + """关闭按钮点击事件""" + self.hide() + +# 稍后提醒按钮 +func _on_later_button_pressed() -> void: + """稍后提醒按钮点击事件""" + print("用户选择稍后更新") + self.hide() + +# 检查更新按钮 +func _on_check_update_button_pressed() -> void: + """检查更新按钮点击事件""" + check_for_updates() + +# 获取更新信息的公共方法 +func get_update_info() -> Dictionary: + """获取更新信息""" + return { + "has_update": has_update, + "current_version": CURRENT_VERSION, + "latest_version": latest_version, + "game_id": GAME_ID + } + +# 获取当前版本 +func get_current_version() -> String: + """获取当前版本""" + return CURRENT_VERSION + +# 获取最新版本 +func get_latest_version() -> String: + """获取最新版本""" + return latest_version + +# 是否有更新 +func is_update_available() -> bool: + """是否有更新可用""" + return has_update diff --git a/GUI/CheckUpdatePanel.gd.uid b/GUI/CheckUpdatePanel.gd.uid new file mode 100644 index 0000000..757d54b --- /dev/null +++ b/GUI/CheckUpdatePanel.gd.uid @@ -0,0 +1 @@ +uid://ciwjx67wjubdy diff --git a/GUI/GameSettingPanel.tscn b/GUI/GameSettingPanel.tscn index e4e07d9..67e361b 100644 --- a/GUI/GameSettingPanel.tscn +++ b/GUI/GameSettingPanel.tscn @@ -1,23 +1,46 @@ -[gd_scene load_steps=2 format=3 uid="uid://dos15dmc1b6bt"] +[gd_scene load_steps=4 format=3 uid="uid://dos15dmc1b6bt"] [ext_resource type="Script" uid="uid://ct7rhywlql4y4" path="res://GUI/GameSettingPanel.gd" id="1_0c52c"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0c52c"] +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 20 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7muhe"] +bg_color = Color(0.454524, 0.454524, 0.454524, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 20 + [node name="GameSettingPanel" type="Panel"] offset_right = 1398.0 offset_bottom = 720.0 +scale = Vector2(0.8, 0.8) +theme_override_styles/panel = SubResource("StyleBoxFlat_0c52c") script = ExtResource("1_0c52c") [node name="Title" type="Label" parent="."] layout_mode = 0 +offset_top = 9.0 offset_right = 1398.0 -offset_bottom = 80.0 +offset_bottom = 97.0 theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_constants/shadow_offset_x = 4 theme_override_constants/shadow_offset_y = 4 theme_override_constants/outline_size = 20 theme_override_constants/shadow_outline_size = 20 -theme_override_font_sizes/font_size = 45 +theme_override_font_sizes/font_size = 55 text = "游戏设置" horizontal_alignment = 1 vertical_alignment = 1 @@ -25,13 +48,16 @@ vertical_alignment = 1 [node name="QuitButton" type="Button" parent="."] custom_minimum_size = Vector2(60, 60) layout_mode = 0 -offset_left = 1327.0 -offset_right = 1400.0 -offset_bottom = 80.0 +offset_left = 1305.0 +offset_top = 17.5 +offset_right = 1378.0 +offset_bottom = 97.5 theme_override_font_sizes/font_size = 35 +theme_override_styles/normal = SubResource("StyleBoxFlat_7muhe") text = "X" [node name="LinkButton" type="LinkButton" parent="."] +visible = false layout_mode = 0 offset_left = 15.0 offset_top = 17.0 @@ -42,9 +68,10 @@ uri = "http://192.168.1.110:19132/site/python" [node name="Scroll" type="ScrollContainer" parent="."] layout_mode = 0 -offset_top = 80.0 -offset_right = 1400.0 -offset_bottom = 720.0 +offset_left = 9.0 +offset_top = 100.0 +offset_right = 1389.0 +offset_bottom = 709.0 [node name="Panel" type="Panel" parent="Scroll"] layout_mode = 2 diff --git a/GUI/ItemBagPanel.gd b/GUI/ItemBagPanel.gd deleted file mode 100644 index 0d4d146..0000000 --- a/GUI/ItemBagPanel.gd +++ /dev/null @@ -1,280 +0,0 @@ -extends Panel -# 这是道具背包面板,用来显示玩家获得的道具 - -# 道具背包格子容器 -@onready var bag_grid: GridContainer = $ScrollContainer/Bag_Grid -@onready var quit_button : Button = $QuitButton - -# 预添加常用的面板 -@onready var main_game = get_node("/root/main") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") - -# 道具使用状态 -var selected_item_name: String = "" -var selected_item_button: Button = null -var is_item_selected: bool = false - -# 准备函数 -func _ready(): - # 隐藏面板(初始默认隐藏) - self.hide() - -# 初始化道具背包 -func init_item_bag(): - # 清空道具背包格子 - for child in bag_grid.get_children(): - child.queue_free() - - # 显示背包中的道具 - update_item_bag_ui() - -# 更新道具背包UI -func update_item_bag_ui(): - # 清空道具背包格子 - for child in bag_grid.get_children(): - child.queue_free() - - print("更新道具背包UI,背包中道具数量:", main_game.item_bag.size()) - - # 为背包中的每个道具创建按钮 - for item_data in main_game.item_bag: - var item_name = item_data["name"] - var item_count = item_data["count"] - - # 创建道具按钮 - var button = _create_item_button(item_name) - - # 更新按钮文本显示数量 - button.text = str(item_name + "\n数量:" + str(item_count)) - - # 根据是否处于访问模式连接不同的事件 - if main_game.is_visiting_mode: - # 访问模式下,点击道具只显示信息,不能使用 - button.pressed.connect(func(): _on_visit_item_selected(item_name, item_count)) - else: - # 正常模式下,连接道具选择事件 - button.pressed.connect(func(): _on_item_selected(item_name, item_count, button)) - - bag_grid.add_child(button) - -# 创建道具按钮 -func _create_item_button(item_name: String) -> Button: - # 使用绿色按钮作为道具按钮的默认样式 - var button = main_game.item_button.duplicate() - - # 确保按钮可见并可点击 - button.visible = true - button.disabled = false - button.focus_mode = Control.FOCUS_ALL - - # 设置按钮文本 - button.text = item_name - - # 添加工具提示,从item_config.json获取道具信息 - var item_config = _load_item_config() - if item_config and item_config.has(item_name): - var item_info = item_config[item_name] - var description = item_info.get("描述", "暂无描述") - var cost = item_info.get("花费", 0) - - button.tooltip_text = str( - "道具: " + item_name + "\n" + - "价格: " + str(cost) + "元\n" + - "描述: " + description + "\n" + - "点击选择道具,然后对地块使用" - ) - else: - button.tooltip_text = str("道具: " + item_name + "\n描述: 暂无信息") - - # 如果按钮有标题标签,设置标题 - if button.has_node("Title"): - button.get_node("Title").text = "道具" - button.get_node("Title").modulate = Color.CYAN # 道具标题使用青色 - - # 更新按钮的道具图片 - _update_button_item_image(button, item_name) - - return button - -# 加载道具配置数据 -func _load_item_config() -> Dictionary: - # 从item_config.json加载道具配置数据 - var file = FileAccess.open("res://Server/config/item_config.json", FileAccess.READ) - if not file: - print("无法读取道具配置文件!") - return {} - - var json_text = file.get_as_text() - file.close() - - var json = JSON.new() - var parse_result = json.parse(json_text) - if parse_result != OK: - print("道具配置JSON解析错误:", json.get_error_message()) - return {} - - return json.get_data() - -# 正常模式下的道具点击处理 - 选择道具 -func _on_item_selected(item_name: String, item_count: int, button: Button): - # 检查道具是否可以使用 - if not _is_item_usable(item_name): - # 显示道具信息 - _show_item_info(item_name, item_count) - return - - # 取消之前选择的道具 - if selected_item_button and selected_item_button != button: - _deselect_item() - - if selected_item_name == item_name: - # 如果点击的是已选择的道具,取消选择 - _deselect_item() - Toast.show("已取消选择道具", Color.YELLOW, 2.0, 1.0) - else: - # 选择新道具 - _select_item(item_name, button) - #点击后关闭玩家道具面板 - _on_quit_button_pressed() - Toast.show("已选择 " + item_name + ",点击地块使用道具", Color.CYAN, 3.0, 1.0) - -# 选择道具 -func _select_item(item_name: String, button: Button): - selected_item_name = item_name - selected_item_button = button - is_item_selected = true - - # 设置全局选择状态 - main_game.selected_item_name = item_name - main_game.is_item_selected = true - - # 更改按钮样式表示选中 - if button.has_node("Title"): - button.get_node("Title").modulate = Color.YELLOW # 选中时使用黄色 - -# 取消选择道具 -func _deselect_item(): - selected_item_name = "" - is_item_selected = false - - # 清除全局选择状态 - main_game.selected_item_name = "" - main_game.is_item_selected = false - - # 恢复按钮样式 - if selected_item_button and selected_item_button.has_node("Title"): - selected_item_button.get_node("Title").modulate = Color.CYAN - - selected_item_button = null - -# 检查道具是否可以使用 -func _is_item_usable(item_name: String) -> bool: - # 根据道具类型判断是否可以使用 - match item_name: - "农家肥", "金坷垃", "生长素": - return true # 施肥道具 - "水壶", "水桶": - return true # 浇水道具 - "铲子": - return true # 铲除道具 - "除草剂": - return true # 除草道具 - "精准采集锄", "时运锄": - return true # 采集道具 - "杀虫剂": - return false # 其他道具(暂不实现) - _: - return false - -# 显示道具信息 -func _show_item_info(item_name: String, item_count: int): - var info_text = "" - - var item_config = _load_item_config() - if item_config and item_config.has(item_name): - var item_info = item_config[item_name] - var description = item_info.get("描述", "暂无描述") - var cost = item_info.get("花费", 0) - - info_text = item_name + " (数量: " + str(item_count) + ")\n" - info_text += "价格: " + str(cost) + "元\n" - info_text += "描述: " + description - - if not _is_item_usable(item_name): - info_text += "\n注意: 此道具功能暂未实现" - else: - info_text = item_name + " (数量: " + str(item_count) + ")\n描述: 暂无信息" - - Toast.show(info_text, Color.CYAN, 3.0, 1.0) - -# 访问模式下的道具点击处理 -func _on_visit_item_selected(item_name: String, item_count: int): - # 显示道具信息 - _show_item_info(item_name, item_count) - -# 更新按钮的道具图片 -func _update_button_item_image(button: Button, item_name: String): - # 检查按钮是否有CropImage节点 - var item_image = button.get_node_or_null("CropImage") - if not item_image: - print("道具背包按钮没有找到CropImage节点:", button.name) - return - - # 从配置文件获取道具图片路径 - var item_config = _load_item_config() - var texture = null - - if item_config and item_config.has(item_name): - var item_info = item_config[item_name] - var image_path = item_info.get("道具图片", "") - - if image_path != "" and ResourceLoader.exists(image_path): - # 尝试加载道具图片 - texture = load(image_path) - if texture: - print("成功加载道具图片:", item_name, " -> ", image_path) - else: - print("加载道具图片失败:", item_name, " -> ", image_path) - else: - print("道具图片路径无效或不存在:", item_name, " -> ", image_path) - - # 如果没有找到道具图片,尝试使用默认道具图片 - if not texture: - var default_item_path = "res://assets/道具图片/默认道具.webp" - if ResourceLoader.exists(default_item_path): - texture = load(default_item_path) - if texture: - print("使用默认道具图片:", item_name) - - # 设置图片 - if texture: - # CropImage是Sprite2D,直接设置texture属性 - item_image.texture = texture - item_image.visible = true - print("道具背包更新道具图片:", item_name) - else: - # 如果没有图片,隐藏图片节点 - item_image.visible = false - print("道具背包无法获取道具图片:", item_name) - -#=========================面板通用处理========================= -# 关闭道具背包面板 -func _on_quit_button_pressed() -> void: - # 打开面板后暂时禁用相机功能 - GlobalVariables.isZoomDisabled = false - self.hide() - -#手动刷新道具背包面板 -func _on_refresh_button_pressed() -> void: - # 刷新道具背包UI - update_item_bag_ui() - Toast.show("道具背包已刷新", Color.GREEN, 2.0, 1.0) -#=========================面板通用处理========================= - -# 获取当前选择的道具名称 -func get_selected_item_name() -> String: - return selected_item_name - -# 检查是否有道具被选择 -func is_item_currently_selected() -> bool: - return is_item_selected diff --git a/GUI/MainMenuPanel.tscn b/GUI/MainMenuPanel.tscn index bd5710b..8ab41ca 100644 --- a/GUI/MainMenuPanel.tscn +++ b/GUI/MainMenuPanel.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://bypjb28h4ntdr"] +[gd_scene load_steps=12 format=3 uid="uid://bypjb28h4ntdr"] [ext_resource type="Script" uid="uid://badqjgdfhg7vt" path="res://GUI/MainMenuPanel.gd" id="1_wpehy"] [ext_resource type="Texture2D" uid="uid://ddcmrh50o1y0q" path="res://assets/菜单UI/背景1.webp" id="2_eghpk"] @@ -8,6 +8,31 @@ [ext_resource type="Script" uid="uid://kj7v1uxk2i6h" path="res://GUI/GameUpdatePanel.gd" id="4_fys16"] [ext_resource type="Texture2D" uid="uid://ccav04woielxa" path="res://assets/菜单UI/柚小青装饰品.webp" id="5_6jmhb"] [ext_resource type="PackedScene" uid="uid://dos15dmc1b6bt" path="res://GUI/GameSettingPanel.tscn" id="6_eghpk"] +[ext_resource type="Script" uid="uid://ciwjx67wjubdy" path="res://GUI/CheckUpdatePanel.gd" id="9_6jmhb"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_eghpk"] +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 20 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6jmhb"] +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 20 [node name="MainMenuPanel" type="Control"] layout_mode = 3 @@ -132,12 +157,22 @@ theme_override_font_sizes/font_size = 40 text = "退出游戏" [node name="GameSettingPanel" parent="." instance=ExtResource("6_eghpk")] +visible = false layout_mode = 0 +offset_left = 138.0 +offset_top = 80.0 +offset_right = 1536.0 +offset_bottom = 800.0 [node name="GameAboutPanel" type="Panel" parent="."] +visible = false layout_mode = 0 -offset_right = 1398.0 -offset_bottom = 720.0 +offset_left = 138.0 +offset_top = 80.0 +offset_right = 1536.0 +offset_bottom = 800.0 +scale = Vector2(0.8, 0.8) +theme_override_styles/panel = SubResource("StyleBoxFlat_eghpk") script = ExtResource("3_y0inj") [node name="Title" type="Label" parent="GameAboutPanel"] @@ -159,23 +194,31 @@ vertical_alignment = 1 [node name="QuitButton" type="Button" parent="GameAboutPanel"] custom_minimum_size = Vector2(60, 60) layout_mode = 0 -offset_left = 1325.0 -offset_right = 1400.0 -offset_bottom = 80.0 +offset_left = 1305.0 +offset_top = 17.5 +offset_right = 1380.0 +offset_bottom = 97.5 theme_override_font_sizes/font_size = 35 text = "X" [node name="Scroll" type="ScrollContainer" parent="GameAboutPanel"] layout_mode = 0 +offset_left = 15.0 offset_top = 80.0 -offset_right = 1400.0 -offset_bottom = 720.0 +offset_right = 3428.0 +offset_bottom = 1636.0 +scale = Vector2(0.4, 0.4) [node name="Contents" type="RichTextLabel" parent="GameAboutPanel/Scroll"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -theme_override_font_sizes/normal_font_size = 30 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 20 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/normal_font_size = 70 +bbcode_enabled = true text = "玩法介绍: 1.版本要匹配,服务器版本一直在更新,请及时下载最新版客户端,否者无法登录游戏 2.游戏目前适配Windows和安卓平台,未来也会适配Linux桌面版,IOS应该会有吧...? @@ -191,15 +234,20 @@ text = "玩法介绍: [node name="GameUpdatePanel" type="Panel" parent="."] visible = false layout_mode = 0 -offset_right = 1398.0 -offset_bottom = 720.0 +offset_left = 138.0 +offset_top = 80.0 +offset_right = 1536.0 +offset_bottom = 800.0 +scale = Vector2(0.8, 0.8) +theme_override_styles/panel = SubResource("StyleBoxFlat_6jmhb") script = ExtResource("4_fys16") [node name="Scroll" type="ScrollContainer" parent="GameUpdatePanel"] layout_mode = 0 +offset_left = 15.0 offset_top = 80.0 -offset_right = 1400.0 -offset_bottom = 720.0 +offset_right = 1384.0 +offset_bottom = 705.0 [node name="Contents" type="RichTextLabel" parent="GameUpdatePanel/Scroll"] layout_mode = 2 @@ -219,20 +267,60 @@ vertical_alignment = 1 [node name="QuitButton" type="Button" parent="GameUpdatePanel"] custom_minimum_size = Vector2(60, 60) layout_mode = 0 -offset_left = 1340.0 -offset_right = 1400.0 -offset_bottom = 60.0 +offset_left = 1320.0 +offset_top = 17.5 +offset_right = 1380.0 +offset_bottom = 77.5 theme_override_font_sizes/font_size = 35 text = "X" [node name="RefreshButton" type="Button" parent="GameUpdatePanel"] custom_minimum_size = Vector2(60, 60) layout_mode = 0 -offset_right = 78.0 -offset_bottom = 60.0 +offset_left = 15.0 +offset_top = 17.5 +offset_right = 93.0 +offset_bottom = 77.5 theme_override_font_sizes/font_size = 35 text = "刷新" +[node name="CheckUpdatePanel" type="Panel" parent="."] +visible = false +layout_mode = 0 +offset_left = 260.0 +offset_top = 53.0 +offset_right = 1150.0 +offset_bottom = 596.0 +script = ExtResource("9_6jmhb") + +[node name="Title" type="Label" parent="CheckUpdatePanel"] +layout_mode = 0 +offset_right = 890.0 +offset_bottom = 89.0 +theme_override_colors/font_color = Color(0, 1, 0, 1) +theme_override_font_sizes/font_size = 40 +text = "检测到新版本!" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="DownloadButton" type="Button" parent="CheckUpdatePanel"] +layout_mode = 0 +offset_top = 480.0 +offset_right = 890.0 +offset_bottom = 543.0 +theme_override_font_sizes/font_size = 40 +text = "下载新版本" + +[node name="Contents" type="Label" parent="CheckUpdatePanel"] +layout_mode = 0 +offset_top = 133.0 +offset_right = 890.0 +offset_bottom = 480.0 +theme_override_font_sizes/font_size = 30 +text = "服务端一直在更新,使用旧版本客户端无法与最新版服务端兼容, +请及时下载最新版,点击下方链接跳转到浏览器下载最新版, +或者加入QQ群在群文件中下载最新开发版" + [connection signal="pressed" from="VBox/StartGameButton" to="." method="_on_start_game_button_pressed"] [connection signal="pressed" from="VBox/GameSettingButton" to="." method="_on_game_setting_button_pressed"] [connection signal="pressed" from="VBox/GameUpdateButton" to="." method="_on_game_update_button_pressed"] @@ -240,3 +328,4 @@ text = "刷新" [connection signal="pressed" from="VBox/ExitButton" to="." method="_on_exit_button_pressed"] [connection signal="pressed" from="GameAboutPanel/QuitButton" to="GameAboutPanel" method="_on_quit_button_pressed"] [connection signal="pressed" from="GameUpdatePanel/QuitButton" to="GameUpdatePanel" method="_on_quit_button_pressed"] +[connection signal="pressed" from="CheckUpdatePanel/DownloadButton" to="CheckUpdatePanel" method="_on_download_button_pressed"] diff --git a/GUI/PlayerRankingItem.tscn b/GUI/PlayerRankingItem.tscn index db6c9b6..8fb7b99 100644 --- a/GUI/PlayerRankingItem.tscn +++ b/GUI/PlayerRankingItem.tscn @@ -3,7 +3,7 @@ [ext_resource type="Texture2D" uid="uid://dsln1w1aqgf1k" path="res://assets/游戏UI/玩家默认头像.webp" id="1_sgoxp"] [ext_resource type="Script" uid="uid://0d2j5m6j2ema" path="res://Components/HTTPTextureRect.gd" id="2_ky0k8"] -[node name="player_ranking_item" type="VBoxContainer"] +[node name="PlayerRankingItem" type="VBoxContainer"] offset_right = 1152.0 offset_bottom = 82.0 diff --git a/GUI/SMY_ProgressBar.gd b/GUI/SMY_ProgressBar.gd deleted file mode 100644 index ac34bed..0000000 --- a/GUI/SMY_ProgressBar.gd +++ /dev/null @@ -1,22 +0,0 @@ -extends ProgressBar - -var target_value: float = 0.0 -var animation_speed: float = 2.0 - -func _ready(): - # 初始化进度条的颜色 - modulate = Color(0.6, 0, 0.0) # 从红色到绿色的渐变 - -func _process(delta): - update_progress_visuals() - -func set_target_value(new_value: float): - value = new_value - -func update_progress_visuals(): - # 改变进度条的颜色 - var fill_ratio = value / max_value - modulate = Color(0.6 - fill_ratio, fill_ratio, 0.0) # 从红色到绿色的渐变 - #modulate = Color(1.0 - fill_ratio, fill_ratio, 0.0) # 从红色到绿色的渐变 - #modulate = Color(0.0, 1.0 - fill_ratio, fill_ratio) # 从蓝色到绿色的渐变 - #modulate = Color(0.0, 1.0 - fill_ratio, fill_ratio * 0.75) # 从绿色到淡蓝色的渐变 diff --git a/GUI/SMY_ProgressBar.gd.uid b/GUI/SMY_ProgressBar.gd.uid deleted file mode 100644 index 7c91315..0000000 --- a/GUI/SMY_ProgressBar.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://xh5tr5co5kfu diff --git a/GUI/crop_store_panel.gd b/GUI/crop_store_panel.gd deleted file mode 100644 index f14d46e..0000000 --- a/GUI/crop_store_panel.gd +++ /dev/null @@ -1,500 +0,0 @@ -extends Panel - -#种子商店面板 -#种子商店格子 -@onready var crop_grid_container : GridContainer = $ScrollContainer/Crop_Grid -@onready var quit_button : Button = $QuitButton - -#各种排序过滤按钮 -@onready var sort_all_button : Button = $SortContainer/Sort_All#全部 -@onready var sort_common_button : Button = $SortContainer/Sort_Common#普通 -@onready var sort_superior_button : Button = $SortContainer/Sort_Superior#优良 -@onready var sort_rare_button : Button = $SortContainer/Sort_Rare#稀有 -@onready var sort_epic_button : Button = $SortContainer/Sort_Epic#史诗 -@onready var sort_legendary_button : Button = $SortContainer/Sort_Legendary#传奇 -@onready var sort_price_button : Button = $SortContainer/Sort_Price#价格 -@onready var sort_growtime_button : Button = $SortContainer/Sort_GrowTime#生长时间 -@onready var sort_profit_button : Button = $SortContainer/Sort_Profit#收益 -@onready var sort_level_button : Button = $SortContainer/Sort_Level#等级 - -#预添加常用的面板 -@onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") - -# 作物图片缓存(复用主游戏的缓存系统) -var crop_textures_cache : Dictionary = {} -var crop_frame_counts : Dictionary = {} - -# 当前过滤和排序设置 -var current_filter_quality = "" -var current_sort_key = "" -var current_sort_ascending = true - -# 准备函数 -func _ready(): - # 连接按钮信号 - _connect_buttons() - # 隐藏面板(初始默认隐藏) - self.hide() - -# 连接所有按钮信号 -func _connect_buttons(): - # 关闭按钮 - quit_button.pressed.connect(self._on_quit_button_pressed) - - # 过滤按钮 - sort_all_button.pressed.connect(func(): _filter_by_quality("")) - sort_common_button.pressed.connect(func(): _filter_by_quality("普通")) - sort_superior_button.pressed.connect(func(): _filter_by_quality("优良")) - sort_rare_button.pressed.connect(func(): _filter_by_quality("稀有")) - sort_epic_button.pressed.connect(func(): _filter_by_quality("史诗")) - sort_legendary_button.pressed.connect(func(): _filter_by_quality("传奇")) - - # 排序按钮 - sort_price_button.pressed.connect(func(): _sort_by("花费")) - sort_growtime_button.pressed.connect(func(): _sort_by("生长时间")) - sort_profit_button.pressed.connect(func(): _sort_by("收益")) - sort_level_button.pressed.connect(func(): _sort_by("等级")) - -# 初始化商店 -func init_store(): - print("初始化商店...") - - # 清空已有的作物按钮 - for child in crop_grid_container.get_children(): - child.queue_free() - - # 遍历可种植的作物数据并添加到商店 - print("初始化商店,显示所有作物...") - for crop_name in main_game.can_planted_crop: - var crop = main_game.can_planted_crop[crop_name] - - # 检查是否可以购买 - if not crop.get("能否购买", true): - continue - - # 只显示当前等级可以种植的作物 - if crop["等级"] <= main_game.level: - var store_btn = _create_store_button(crop_name, crop["品质"]) - crop_grid_container.add_child(store_btn) - #print("添加商店按钮: " + crop_name) - - print("商店初始化完成,共添加按钮: " + str(crop_grid_container.get_child_count()) + "个") - - # 更新金钱显示 - _update_money_display() - -# 创建商店按钮 -func _create_store_button(crop_name: String, crop_quality: String) -> Button: - # 根据品质选择相应的按钮 - var button = null - match crop_quality: - "普通": - button = main_game.green_bar.duplicate() - "优良": - button = main_game.orange_bar.duplicate() - "稀有": - button = main_game.white_blue_bar.duplicate() - "史诗": - button = main_game.pink_bar.duplicate() - "传奇": - button = main_game.black_blue_bar.duplicate() - _: # 默认情况 - button = main_game.green_bar.duplicate() - - var crop = main_game.can_planted_crop[crop_name] - - # 确保按钮可见并可点击 - button.visible = true - button.disabled = false - button.focus_mode = Control.FOCUS_ALL - - # 设置按钮文本,显示价格 - button.text = str(crop_quality + "-" + crop_name + "\n价格: ¥" + str(crop["花费"])) - - # 将成熟时间从秒转换为天时分秒格式 - var total_seconds = int(crop["生长时间"]) - - # 定义时间单位换算 - var SECONDS_PER_MINUTE = 60 - var SECONDS_PER_HOUR = 3600 - var SECONDS_PER_DAY = 86400 - - # 计算各时间单位 - var days = total_seconds / SECONDS_PER_DAY - total_seconds %= SECONDS_PER_DAY - - var hours = total_seconds / SECONDS_PER_HOUR - total_seconds %= SECONDS_PER_HOUR - - var minutes = total_seconds / SECONDS_PER_MINUTE - var seconds = total_seconds % SECONDS_PER_MINUTE - - # 构建时间字符串(只显示有值的单位) - var time_str = "" - if days > 0: - time_str += str(days) + "天" - if hours > 0: - time_str += str(hours) + "小时" - if minutes > 0: - time_str += str(minutes) + "分钟" - if seconds > 0: - time_str += str(seconds) + "秒" - - button.tooltip_text = str( - "作物: " + crop_name + "\n" + - "品质: " + crop_quality + "\n" + - "价格: " + str(crop["花费"]) + "元\n" + - "成熟时间: " + time_str + "\n" + - "收获收益: " + str(crop["收益"]) + "元\n" + - "需求等级: " + str(crop["等级"]) + "\n" + - "耐候性: " + str(crop["耐候性"]) + "\n" + - "经验: " + str(crop["经验"]) + "点\n" + - "描述: " + str(crop["描述"]) - ) - - # 添加按钮事件 - button.pressed.connect(func(): _on_store_buy_pressed(crop_name)) - - # 更新按钮的作物图片 - _update_button_crop_image(button, crop_name) - - # 如果按钮有标题标签,设置标题 - if button.has_node("Title"): - match crop_quality: - "普通": - button.get_node("Title").modulate = Color.HONEYDEW#白色 - "优良": - button.get_node("Title").modulate =Color.DODGER_BLUE#深蓝色 - "稀有": - button.get_node("Title").modulate =Color.HOT_PINK#品红色 - "史诗": - button.get_node("Title").modulate =Color.YELLOW#黄色 - "传奇": - button.get_node("Title").modulate =Color.ORANGE_RED#红色 - - return button - -# 购买种子事件处理 -func _on_store_buy_pressed(crop_name: String): - print("购买种子: " + crop_name) - var crop = main_game.can_planted_crop[crop_name] - - # 检查等级要求 - if main_game.level < crop["等级"]: - Toast.show("等级不足,无法购买此种子", Color.RED) - return - - # 检查金钱是否足够 - if main_game.money < crop["花费"]: - Toast.show("金钱不足,无法购买种子", Color.RED) - return - - # 发送购买请求到服务器 - if network_manager and network_manager.sendBuySeed(crop_name): - - # 将种子添加到背包 - var found = false - for seed_item in main_game.player_bag: - if seed_item["name"] == crop_name: - seed_item["count"] += 1 - found = true - break - - if not found: - main_game.player_bag.append({ - "name": crop_name, - "quality": crop["品质"], - "count": 1 - }) - - # 显示购买成功消息 - Toast.show("购买了" + crop["品质"] + "-" + crop_name + "种子", Color.GREEN) - - # 更新背包UI - crop_store_panel.update_player_bag_ui() - - # 更新金钱显示 - _update_money_display() - -# 关闭面板 -func _on_quit_button_pressed(): - print("关闭商店面板") - self.hide() - -# 按品质过滤作物 -func _filter_by_quality(quality: String): - current_filter_quality = quality - print("过滤作物,品质: " + (quality if quality != "" else "全部")) - _apply_filter_and_sort() - -# 按指定键排序 -func _sort_by(sort_key: String): - # 切换排序方向或设置新排序键 - if current_sort_key == sort_key: - current_sort_ascending = !current_sort_ascending - else: - current_sort_key = sort_key - current_sort_ascending = true - - print("排序作物,键: " + sort_key + ",升序: " + str(current_sort_ascending)) - _apply_filter_and_sort() - -# 应用过滤和排序 -func _apply_filter_and_sort(): - # 清空现有按钮 - for child in crop_grid_container.get_children(): - child.queue_free() - - # 收集符合条件的作物 - var filtered_crops = [] - for crop_name in main_game.can_planted_crop: - var crop = main_game.can_planted_crop[crop_name] - - # 检查是否可以购买 - if not crop.get("能否购买", true): - continue - - # 检查等级和品质过滤 - if crop["等级"] > main_game.level: - continue - - if current_filter_quality != "" and crop["品质"] != current_filter_quality: - continue - - # 添加到过滤后的列表 - filtered_crops.append({ - "name": crop_name, - "data": crop - }) - - # 如果有排序条件,进行排序 - if current_sort_key != "": - filtered_crops.sort_custom(Callable(self, "_sort_crop_items")) - - # 添加所有过滤和排序后的作物 - for crop in filtered_crops: - var store_btn = _create_store_button(crop["name"], crop["data"]["品质"]) - crop_grid_container.add_child(store_btn) - - # 更新金钱显示 - _update_money_display() - -# 自定义排序函数 -func _sort_crop_items(a, b): - if current_sort_ascending: - return a["data"][current_sort_key] < b["data"][current_sort_key] - else: - return a["data"][current_sort_key] > b["data"][current_sort_key] - -# 更新金钱显示 -func _update_money_display(): - var money_label = get_node_or_null("MoneyLabel") - if money_label == null: - # 创建金钱显示标签 - money_label = Label.new() - money_label.name = "MoneyLabel" - money_label.position = Vector2(10, 10) - money_label.size = Vector2(300, 45) - - # 设置标签样式 - money_label.add_theme_color_override("font_color", Color(1, 0.647, 0, 1)) # 橙色 - money_label.add_theme_font_size_override("font_size", 24) - - add_child(money_label) - - # 更新金钱显示 - money_label.text = "当前金钱:" + str(main_game.money) + " 元" - print("更新商店金钱显示:" + str(main_game.money)) - -# 刷新商店内容,可以在金钱变化或等级提升后调用 -func refresh_store(): - # 清空并重新创建商店按钮 - init_store() - - # 尝试创建过滤按钮(如果商店面板中没有这些按钮) - _create_filter_buttons_if_needed() - -# 如果需要,动态创建过滤按钮 -func _create_filter_buttons_if_needed(): - # 检查是否已存在过滤器容器 - var filter_container = get_node_or_null("FilterContainer") - if filter_container == null: - # 创建过滤器容器 - filter_container = HBoxContainer.new() - filter_container.name = "FilterContainer" - - # 设置容器位置和大小 - filter_container.position = Vector2(320, 10) - filter_container.size = Vector2(770, 45) - - add_child(filter_container) - - # 添加过滤按钮 - _add_filter_button(filter_container, "全部", func(): _filter_by_quality("")) - _add_filter_button(filter_container, "普通", func(): _filter_by_quality("普通")) - _add_filter_button(filter_container, "优良", func(): _filter_by_quality("优良")) - _add_filter_button(filter_container, "稀有", func(): _filter_by_quality("稀有")) - _add_filter_button(filter_container, "史诗", func(): _filter_by_quality("史诗")) - _add_filter_button(filter_container, "传奇", func(): _filter_by_quality("传奇")) - - # 检查是否已存在排序容器 - var sort_container = get_node_or_null("SortContainer") - if sort_container == null: - # 创建排序容器 - sort_container = HBoxContainer.new() - sort_container.name = "SortContainer" - - # 设置容器位置和大小 - sort_container.position = Vector2(320, 55) - sort_container.size = Vector2(770, 30) - - add_child(sort_container) - - # 添加排序按钮 - _add_filter_button(sort_container, "按价格", func(): _sort_by("花费")) - _add_filter_button(sort_container, "按生长时间", func(): _sort_by("生长时间")) - _add_filter_button(sort_container, "按收益", func(): _sort_by("收益")) - _add_filter_button(sort_container, "按等级", func(): _sort_by("等级")) - -# 添加过滤按钮 -func _add_filter_button(container, text, callback): - var button = Button.new() - button.text = text - button.custom_minimum_size = Vector2(100, 0) - button.size_flags_horizontal = Control.SIZE_EXPAND_FILL - container.add_child(button) - button.pressed.connect(callback) - -# 获取作物的最后一帧图片(用于商店显示) -func _get_crop_final_texture(crop_name: String) -> Texture2D: - """ - 获取作物的最后一帧图片,用于商店和背包显示 - 如果作物图片不存在,使用默认图片的最后一帧 - """ - # 先尝试从主游戏的缓存中获取 - if main_game and main_game.crop_textures_cache.has(crop_name): - var textures = main_game.crop_textures_cache[crop_name] - if textures.size() > 0: - return textures[textures.size() - 1] # 返回最后一帧 - - # 如果主游戏缓存中没有,自己加载 - var textures = _load_crop_textures(crop_name) - if textures.size() > 0: - return textures[textures.size() - 1] # 返回最后一帧 - - return null - -# 加载作物图片序列帧(复用主游戏的逻辑) -func _load_crop_textures(crop_name: String) -> Array: - """ - 加载指定作物的所有序列帧图片 - """ - if crop_textures_cache.has(crop_name): - return crop_textures_cache[crop_name] - - var textures = [] - var crop_path = "res://assets/作物/" + crop_name + "/" - var default_path = "res://assets/作物/默认/" - - # 检查作物文件夹是否存在 - if DirAccess.dir_exists_absolute(crop_path): - # 尝试加载作物的序列帧(从0开始) - var frame_index = 0 - while true: - var texture_path = crop_path + str(frame_index) + ".webp" - if ResourceLoader.exists(texture_path): - var texture = load(texture_path) - if texture: - textures.append(texture) - frame_index += 1 - else: - break - else: - break - - if textures.size() > 0: - print("商店加载作物 ", crop_name, " 的 ", textures.size(), " 帧图片") - else: - print("商店:作物 ", crop_name, " 文件夹存在但没有找到有效图片,使用默认图片") - textures = _load_default_textures() - else: - print("商店:作物 ", crop_name, " 的文件夹不存在,使用默认图片") - textures = _load_default_textures() - - # 缓存结果 - crop_textures_cache[crop_name] = textures - crop_frame_counts[crop_name] = textures.size() - - return textures - -# 加载默认图片 -func _load_default_textures() -> Array: - """ - 加载默认作物图片 - """ - if crop_textures_cache.has("默认"): - return crop_textures_cache["默认"] - - var textures = [] - var default_path = "res://assets/作物/默认/" - - # 尝试加载默认图片序列帧 - var frame_index = 0 - while true: - var texture_path = default_path + str(frame_index) + ".webp" - if ResourceLoader.exists(texture_path): - var texture = load(texture_path) - if texture: - textures.append(texture) - frame_index += 1 - else: - break - else: - break - - # 如果没有找到序列帧,尝试加载单个默认图片 - if textures.size() == 0: - var single_texture_path = default_path + "0.webp" - if ResourceLoader.exists(single_texture_path): - var texture = load(single_texture_path) - if texture: - textures.append(texture) - - # 缓存默认图片 - crop_textures_cache["默认"] = textures - crop_frame_counts["默认"] = textures.size() - - print("商店加载了 ", textures.size(), " 个默认作物图片") - return textures - -# 更新按钮的作物图片 -func _update_button_crop_image(button: Button, crop_name: String): - """ - 更新按钮中的作物图片 - """ - # 检查按钮是否有CropImage节点 - var crop_image = button.get_node_or_null("CropImage") - if not crop_image: - print("商店按钮没有找到CropImage节点:", button.name) - return - - # 获取作物的最后一帧图片 - var texture = _get_crop_final_texture(crop_name) - - if texture: - # CropImage是Sprite2D,直接设置texture属性 - crop_image.texture = texture - crop_image.visible = true - print("商店更新作物图片:", crop_name) - else: - crop_image.visible = false - print("商店无法获取作物图片:", crop_name) - -# 兼容MainGame.gd中的调用,转发到_on_store_buy_pressed -func _on_crop_selected(crop_name: String): - _on_store_buy_pressed(crop_name) diff --git a/GUI/crop_store_panel.gd.uid b/GUI/crop_store_panel.gd.uid deleted file mode 100644 index 8f3c387..0000000 --- a/GUI/crop_store_panel.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://mtfp0ct42nrx diff --git a/GUI/land_panel.gd b/GUI/land_panel.gd deleted file mode 100644 index f8d69e1..0000000 --- a/GUI/land_panel.gd +++ /dev/null @@ -1,431 +0,0 @@ -extends Panel - -#获取玩家要操作的地块序号 -var selected_lot_index = 0 - -#预添加常用的面板 -@onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") - -@onready var quit_button :Button = $Quit_Button -@onready var dig_button: Button = $Grid/Dig_Button -@onready var water_button: Button = $Grid/Water_Button -@onready var fertilize_button: Button = $Grid/Fertilize_Button -@onready var upgrade_button: Button = $Grid/Upgrade_Button -@onready var plant_button: Button = $Grid/Plant_Button -@onready var remove_button: Button = $Grid/Remove_Button -@onready var harvest_button: Button = $Grid/Harvest_Button - - -func _ready(): - self.hide() - quit_button.pressed.connect(self._on_quit_button_pressed) - dig_button.pressed.connect(self._on_dig_button_pressed) - water_button.pressed.connect(self._on_water_button_pressed) - fertilize_button.pressed.connect(self._on_fertilize_button_pressed) - upgrade_button.pressed.connect(self._on_upgrade_button_pressed) - 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) - - # 显示浇水、施肥、升级按钮 - water_button.visible = true - fertilize_button.visible = true - upgrade_button.visible = true - - _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(): - # 根据是否访问模式显示不同的按钮文本 - 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(): - # 检查是否处于访问模式 - if main_game.is_visiting_mode: - Toast.show("访问模式下无法开垦土地", Color.ORANGE, 2.0, 1.0) - self.hide() - return - - # 检查玩家金钱是否足够 - 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(): - if network_manager.sendDigGround(selected_lot_index): - 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(): - # 检查玩家金钱是否足够(无论是否访问模式都检查自己的钱) - var water_cost = 50 - 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 - - # 检查地块状态 - 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 - - # 检查是否已经浇过水 - 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, 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() - -#施肥 -func _on_fertilize_button_pressed(): - # 检查玩家金钱是否足够(无论是否访问模式都检查自己的钱) - var fertilize_cost = 150 - 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 - - # 检查地块状态 - 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 - - # 发送施肥请求到服务器 - 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, 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() - -#升级 -func _on_upgrade_button_pressed(): - # 检查是否处于访问模式 - if main_game.is_visiting_mode: - Toast.show("访问模式下无法升级", Color.ORANGE, 2.0, 1.0) - self.hide() - return - - # 检查地块索引是否有效 - 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 = 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): - 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(): - # 检查是否处于访问模式 - if main_game.is_visiting_mode: - Toast.show("访问模式下无法种植", Color.ORANGE, 2.0, 1.0) - self.hide() - return - - player_bag_panel.show() - self.hide() - pass -#铲除 -func _on_remove_button_pressed(): - # 检查是否处于访问模式 - if main_game.is_visiting_mode: - Toast.show("访问模式下无法铲除作物", Color.ORANGE, 2.0, 1.0) - self.hide() - return - - # 检查玩家金钱是否足够 - 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): - 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(): - # 检查地块状态 - 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("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() - pass - - - - - - - - - - diff --git a/GUI/land_panel.gd.uid b/GUI/land_panel.gd.uid deleted file mode 100644 index 431760c..0000000 --- a/GUI/land_panel.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://bljtkxil64h14 diff --git a/GUI/login_panel.gd b/GUI/login_panel.gd deleted file mode 100644 index 9b1a5b2..0000000 --- a/GUI/login_panel.gd +++ /dev/null @@ -1,468 +0,0 @@ -#玩家登录注册面板 -extends PanelContainer - -#玩家登录账号,用QQ号代替 -@onready var username_input : LineEdit = $VBox/UserName/username_input -#用户登录密码 -@onready var password_input : LineEdit = $VBox/Password1/password_input -#登录按钮 -@onready var login_button : Button = $VBox/LoginRegister/login_button - -#下面是注册相关的 -#注册按钮 -@onready var register_button : Button = $VBox/LoginRegister/register_button -#注册账号时二次确认密码 -@onready var password_input_2 : LineEdit = $VBox/Password2/password_input2 -#农场名称 -@onready var farmname_input : LineEdit = $VBox/FarmName/farmname_input -#玩家昵称 -@onready var playername_input :LineEdit = $VBox/PlayerName/playername_input -#邮箱验证码 -@onready var verificationcode_input :LineEdit = $VBox/VerificationCode/verificationcode_input -#发送验证码按钮 -@onready var send_button :Button = $VBox/VerificationCode/SendButton -#状态提示标签 -@onready var status_label : Label = $VBox/status_label - -# 记住密码选项 -var remember_password : bool = true # 默认记住密码 - -# 引用主场景和全局函数 -@onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var tcp_network_manager = get_node("/root/main/UI/TCPNetworkManager") - -# 准备函数 -func _ready(): - - # 连接按钮信号 - login_button.pressed.connect(self._on_login_button_pressed) - register_button.pressed.connect(self._on_register_button_pressed) - send_button.pressed.connect(self._on_send_button_pressed) - - # 加载保存的登录信息 - _load_login_info() - - # 显示客户端版本号 - _display_version_info() - -# 处理登录按钮点击 -func _on_login_button_pressed(): - var user_name = username_input.text.strip_edges() # 修剪前后的空格 - var user_password = password_input.text.strip_edges() - var farmname = farmname_input.text.strip_edges() - - if user_name == "" or user_password == "": - status_label.text = "用户名或密码不能为空!" - status_label.modulate = Color.RED - return - - # 检查网络连接状态 - if !tcp_network_manager.client.is_client_connected(): - status_label.text = "未连接到服务器,正在尝试连接..." - status_label.modulate = Color.YELLOW - # 尝试自动连接到服务器 - tcp_network_manager.connect_to_current_server() - await get_tree().create_timer(2.0).timeout - - # 再次检查连接状态 - if !tcp_network_manager.client.is_client_connected(): - status_label.text = "连接服务器失败,正在尝试其他服务器..." - status_label.modulate = Color.YELLOW - # 等待自动服务器切换完成 - await get_tree().create_timer(3.0).timeout - - - # 禁用按钮,防止重复点击 - login_button.disabled = true - - status_label.text = "正在登录,请稍候..." - status_label.modulate = Color.YELLOW - - # 如果启用了记住密码,保存登录信息 - if remember_password: - _save_login_info(user_name, user_password) - - tcp_network_manager.sendLoginInfo(user_name, user_password) - - # 更新主游戏数据 - main_game.user_name = user_name - main_game.user_password = user_password - - # 5秒后重新启用按钮(如果没有收到响应) - await get_tree().create_timer(5.0).timeout - if login_button.disabled: - login_button.disabled = false - status_label.text = "登录超时,请重试!" - status_label.modulate = Color.RED - -# 处理验证码发送按钮点击 -func _on_send_button_pressed(): - var user_name = username_input.text.strip_edges() - - if user_name == "": - status_label.text = "请输入QQ号以接收验证码!" - status_label.modulate = Color.RED - return - - if !is_valid_qq_number(user_name): - status_label.text = "请输入正确的QQ号码(5-12位数字)!" - status_label.modulate = Color.RED - return - - # 检查网络连接状态 - if !tcp_network_manager.client.is_client_connected(): - status_label.text = "未连接到服务器,正在尝试连接..." - status_label.modulate = Color.YELLOW - # 尝试自动连接到服务器 - tcp_network_manager.connect_to_current_server() - await get_tree().create_timer(2.0).timeout - - # 再次检查连接状态 - if !tcp_network_manager.client.is_client_connected(): - status_label.text = "连接服务器失败,正在尝试其他服务器..." - status_label.modulate = Color.YELLOW - # 等待自动服务器切换完成 - await get_tree().create_timer(3.0).timeout - - - # 禁用按钮,防止重复点击 - send_button.disabled = true - - status_label.text = "正在发送验证码,请稍候..." - status_label.modulate = Color.YELLOW - - # 发送验证码请求 - tcp_network_manager.sendVerificationCodeRequest(user_name) - - # 60秒后重新启用按钮(或收到响应后提前启用) - var timer = 60 - while timer > 0 and send_button.disabled: - send_button.text = "重新发送(%d)" % timer - await get_tree().create_timer(1.0).timeout - timer -= 1 - - if send_button.disabled: - send_button.disabled = false - send_button.text = "发送验证码" - - if status_label.text == "正在发送验证码,请稍候...": - status_label.text = "验证码发送超时,请重试!" - status_label.modulate = Color.RED - -# 处理注册按钮点击 -func _on_register_button_pressed(): - var user_name = username_input.text.strip_edges() - var user_password = password_input.text.strip_edges() - var user_password_2 = password_input_2.text.strip_edges() - var farmname = farmname_input.text.strip_edges() - var player_name = playername_input.text.strip_edges() - var verification_code = verificationcode_input.text.strip_edges() - - # 检查密码格式(只允许数字和字母) - if not is_valid_password(user_password): - status_label.text = "密码只能包含数字和字母!" - status_label.modulate = Color.RED - return - - if user_name == "" or user_password == "": - status_label.text = "用户名或密码不能为空!" - status_label.modulate = Color.RED - return - if farmname == "": - status_label.text = "农场名称不能为空!" - status_label.modulate = Color.RED - return - if user_password != user_password_2: - status_label.text = "两次输入的密码不一致!" - status_label.modulate = Color.RED - return - - if !is_valid_qq_number(user_name): - status_label.text = "请输入正确的QQ号码(5-12位数字)!" - status_label.modulate = Color.RED - return - - if verification_code == "": - status_label.text = "请输入验证码!" - status_label.modulate = Color.RED - return - - # 检查网络连接状态 - if !tcp_network_manager.client.is_client_connected(): - status_label.text = "未连接到服务器,正在尝试连接..." - status_label.modulate = Color.YELLOW - # 尝试自动连接到服务器 - tcp_network_manager.connect_to_current_server() - await get_tree().create_timer(2.0).timeout - - # 再次检查连接状态 - if !tcp_network_manager.client.is_client_connected(): - status_label.text = "连接服务器失败,正在尝试其他服务器..." - status_label.modulate = Color.YELLOW - # 等待自动服务器切换完成 - await get_tree().create_timer(3.0).timeout - - - # 禁用按钮,防止重复点击 - register_button.disabled = true - - status_label.text = "正在注册,请稍候..." - status_label.modulate = Color.YELLOW - - # 发送注册请求 - tcp_network_manager.sendRegisterInfo(user_name, user_password, farmname, player_name, verification_code) - - # 更新主游戏数据 - main_game.user_name = user_name - main_game.user_password = user_password - main_game.farmname = farmname - - # 5秒后重新启用按钮(如果没有收到响应) - await get_tree().create_timer(5.0).timeout - if register_button.disabled: - register_button.disabled = false - status_label.text = "注册超时,请重试!" - status_label.modulate = Color.RED - -# 处理验证码发送响应 -func _on_verification_code_response(success: bool, message: String): - if success: - status_label.text = message - status_label.modulate = Color.GREEN - else: - status_label.text = message - status_label.modulate = Color.RED - send_button.disabled = false - send_button.text = "发送验证码" - -# 处理验证码验证响应 -func _on_verify_code_response(success: bool, message: String): - if success: - status_label.text = message - status_label.modulate = Color.GREEN - else: - status_label.text = message - status_label.modulate = Color.RED - -# 验证QQ号是否有效 -func is_valid_qq_number(qq_number: String) -> bool: - # QQ号的标准格式是5到12位的数字 - var qq_regex = RegEx.new() - var pattern = r"^\d{5,12}$" - - var error = qq_regex.compile(pattern) - if error != OK: - status_label.text = "QQ号验证失败部错误" - status_label.modulate = Color.RED - return false - - return qq_regex.search(qq_number) != null - -# 添加密码验证函数 -func is_valid_password(password: String) -> bool: - # 使用正则表达式检查是否只包含数字和字母 - var pattern = r"^[a-zA-Z0-9]+$" - return password.match(pattern) != null - -# 处理登录响应 -func _on_login_response_received(success: bool, message: String, user_data: Dictionary): - # 启用按钮 - login_button.disabled = false - - if success: - status_label.text = "登录成功!正在加载游戏..." - status_label.modulate = Color.GREEN - - # 保存登录数据到主游戏 - main_game.login_data = user_data.duplicate() - - # 更新主游戏数据 - main_game.experience = user_data.get("experience", 0) - main_game.farm_lots = user_data.get("farm_lots", []) - main_game.level = user_data.get("level", 1) - main_game.money = user_data.get("money", 0) - main_game.stamina = user_data.get("体力值", 20) - main_game.show_farm_name.text = "农场名称:"+user_data.get("farm_name", "") - main_game.show_player_name.text = "玩家昵称:"+user_data.get("player_name", "") - farmname_input.text = user_data.get("farm_name", "") - - # 加载玩家背包数据 - if user_data.has("player_bag"): - main_game.player_bag = user_data.get("player_bag", []) - else: - main_game.player_bag = [] - - main_game.start_game = true - self.hide() - - # 确保在更新数据后调用主游戏的 UI 更新函数 - main_game._update_ui() - main_game._refresh_farm_lots() - player_bag_panel.update_player_bag_ui() - - # 调用主游戏的登录成功处理函数 - main_game.handle_login_success(user_data) - else: - status_label.text = "登录失败:" + message - status_label.modulate = Color.RED - - # 如果登录失败且是密码错误,可以选择清除保存的信息 - if "密码" in message or "password" in message.to_lower(): - print("登录失败,可能是密码错误。如需清除保存的登录信息,请调用_clear_login_info()") - -# 处理注册响应 -func _on_register_response_received(success: bool, message: String): - # 启用按钮 - register_button.disabled = false - - if success: - status_label.text = "注册成功!请登录游戏" - status_label.modulate = Color.GREEN - - # 注册成功后,如果启用了记住密码,保存登录信息 - if remember_password: - var user_name = username_input.text.strip_edges() - var user_password = password_input.text.strip_edges() - _save_login_info(user_name, user_password) - - # 清除注册相关的输入框 - password_input_2.text = "" - verificationcode_input.text = "" - else: - status_label.text = "注册失败:" + message - status_label.modulate = Color.RED - -# 保存登录信息到JSON文件 -func _save_login_info(user_name: String, password: String): - var login_data = { - "user_name": user_name, - "password": password - } - - var file = FileAccess.open("user://login.json", FileAccess.WRITE) - if file: - var json_string = JSON.stringify(login_data, "\t") - file.store_string(json_string) - file.close() - print("登录信息已保存") - else: - print("无法保存登录信息") - -# 从JSON文件加载登录信息 -func _load_login_info(): - var file = FileAccess.open("user://login.json", FileAccess.READ) - if file: - var json_text = file.get_as_text() - file.close() - - var json = JSON.new() - var parse_result = json.parse(json_text) - if parse_result == OK: - var login_data = json.get_data() - if login_data.has("user_name") and login_data.has("password"): - var saved_username = login_data.get("user_name", "") - var saved_password = login_data.get("password", "") - - if saved_username != "" and saved_password != "": - username_input.text = saved_username - password_input.text = saved_password - status_label.text = "已加载保存的登录信息" - status_label.modulate = Color.CYAN - print("登录信息已加载:用户名 =", saved_username) - else: - status_label.text = "欢迎使用萌芽农场" - status_label.modulate = Color.WHITE - print("没有有效的保存登录信息") - else: - print("登录信息格式错误") - else: - print("登录信息JSON解析错误:", json.get_error_message()) - else: - # 创建默认的登录信息文件 - _save_login_info("", "") - status_label.text = "欢迎使用萌芽农场" - status_label.modulate = Color.WHITE - print("没有找到保存的登录信息,已创建默认文件") - -# 清除保存的登录信息 -func _clear_login_info(): - var file = FileAccess.open("user://login.json", FileAccess.WRITE) - if file: - var empty_data = { - "user_name": "", - "password": "" - } - var json_string = JSON.stringify(empty_data, "\t") - file.store_string(json_string) - file.close() - print("登录信息已清除") - else: - print("无法清除登录信息") - -# 切换记住密码选项 -func toggle_remember_password(): - remember_password = !remember_password - print("记住密码选项:", "开启" if remember_password else "关闭") - - # 如果关闭了记住密码,清除已保存的信息 - if not remember_password: - _clear_login_info() - -# 检查是否有保存的登录信息 -func has_saved_login_info() -> bool: - var file = FileAccess.open("user://login.json", FileAccess.READ) - if file: - var json_text = file.get_as_text() - file.close() - - var json = JSON.new() - var parse_result = json.parse(json_text) - if parse_result == OK: - var login_data = json.get_data() - var user_name = login_data.get("user_name", "") - var password = login_data.get("password", "") - return user_name != "" and password != "" - - return false - -# 快捷登录(使用保存的登录信息) -func quick_login(): - if has_saved_login_info(): - var user_name = username_input.text.strip_edges() - var user_password = password_input.text.strip_edges() - - if user_name != "" and user_password != "": - print("执行快捷登录...") - _on_login_button_pressed() - else: - status_label.text = "保存的登录信息不完整" - status_label.modulate = Color.ORANGE - else: - status_label.text = "没有保存的登录信息" - status_label.modulate = Color.ORANGE - -# 获取保存的用户名(用于调试或显示) -func get_saved_username() -> String: - var file = FileAccess.open("user://login.json", FileAccess.READ) - if file: - var json_text = file.get_as_text() - file.close() - - var json = JSON.new() - var parse_result = json.parse(json_text) - if parse_result == OK: - var login_data = json.get_data() - return login_data.get("user_name", "") - - return "" - -# 显示版本信息 -func _display_version_info(): - # 在状态标签中显示客户端版本信息 - if status_label.text == "欢迎使用萌芽农场" or status_label.text == "连接状态": - status_label.text = "萌芽农场 v" + main_game.client_version + " - 欢迎使用" - status_label.modulate = Color.CYAN diff --git a/GUI/login_panel.gd.uid b/GUI/login_panel.gd.uid deleted file mode 100644 index 59912fd..0000000 --- a/GUI/login_panel.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cka0r4g8tbf0 diff --git a/GUI/player_bag_panel.gd b/GUI/player_bag_panel.gd deleted file mode 100644 index c52af1d..0000000 --- a/GUI/player_bag_panel.gd +++ /dev/null @@ -1,509 +0,0 @@ -extends Panel - -# 背包格子容器 -@onready var player_bag_grid_container : GridContainer = $ScrollContainer/Bag_Grid -@onready var quit_button : Button = $QuitButton - -#各种排序过滤按钮 -@onready var sort_all_button : Button = $SortContainer/Sort_All#全部 -@onready var sort_common_button : Button = $SortContainer/Sort_Common#普通 -@onready var sort_superior_button : Button = $SortContainer/Sort_Superior#优良 -@onready var sort_rare_button : Button = $SortContainer/Sort_Rare#稀有 -@onready var sort_epic_button : Button = $SortContainer/Sort_Epic#史诗 -@onready var sort_legendary_button : Button = $SortContainer/Sort_Legendary#传奇 -@onready var sort_price_button : Button = $SortContainer/Sort_Price#价格 -@onready var sort_growtime_button : Button = $SortContainer/Sort_GrowTime#生长时间 -@onready var sort_profit_button : Button = $SortContainer/Sort_Profit#收益 -@onready var sort_level_button : Button = $SortContainer/Sort_Level#等级 - -#预添加常用的面板 -@onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") - -# 作物图片缓存(复用主游戏的缓存系统) -var crop_textures_cache : Dictionary = {} -var crop_frame_counts : Dictionary = {} - -# 当前选择的地块索引,从MainGame获取 -var selected_lot_index : int = -1 - -# 当前过滤和排序设置 -var current_filter_quality = "" -var current_sort_key = "" -var current_sort_ascending = true - -# 一键种植模式相关变量 -var is_planting_mode = false -var planting_type = "" -var one_click_plant_panel = null - -# 准备函数 -func _ready(): - # 连接按钮信号 - _connect_buttons() - - # 隐藏面板(初始默认隐藏) - self.hide() - -# 连接所有按钮信号 -func _connect_buttons(): - # 关闭按钮 - quit_button.pressed.connect(self._on_quit_button_pressed) - - # 过滤按钮 - sort_all_button.pressed.connect(func(): _filter_by_quality("")) - sort_common_button.pressed.connect(func(): _filter_by_quality("普通")) - sort_superior_button.pressed.connect(func(): _filter_by_quality("优良")) - sort_rare_button.pressed.connect(func(): _filter_by_quality("稀有")) - sort_epic_button.pressed.connect(func(): _filter_by_quality("史诗")) - sort_legendary_button.pressed.connect(func(): _filter_by_quality("传奇")) - - # 排序按钮 - sort_price_button.pressed.connect(func(): _sort_by("花费")) - sort_growtime_button.pressed.connect(func(): _sort_by("生长时间")) - sort_profit_button.pressed.connect(func(): _sort_by("收益")) - sort_level_button.pressed.connect(func(): _sort_by("等级")) - -# 初始化玩家背包 -func init_player_bag(): - # 清空玩家背包格子 - for child in player_bag_grid_container.get_children(): - child.queue_free() - - # 显示背包中的种子 - update_player_bag_ui() - -# 更新玩家背包UI -func update_player_bag_ui(): - # 清空玩家背包格子 - for child in player_bag_grid_container.get_children(): - child.queue_free() - #print("更新背包UI,背包中物品数量:", main_game.player_bag.size()) - - # 应用过滤和排序 - var filtered_seeds = _get_filtered_and_sorted_seeds() - - # 为背包中的每个过滤后的种子创建按钮 - for seed_item in filtered_seeds: - var crop_name = seed_item["name"] - var crop_quality = seed_item["quality"] - var crop_count = seed_item["count"] - #print("背包物品:", crop_name, " 数量:", crop_count) - # 创建种子按钮 - var button = _create_crop_button(crop_name, crop_quality) - # 更新按钮文本显示数量 - button.text = str(crop_quality + "-" + crop_name + "\n数量:" + str(crop_count)) - - # 根据是否处于访问模式连接不同的事件 - if main_game.is_visiting_mode: - # 访问模式下,点击种子只显示信息,不能种植 - button.pressed.connect(func(): _on_visit_seed_selected(crop_name, crop_count)) - else: - # 正常模式下,连接种植事件 - button.pressed.connect(func(): _on_bag_seed_selected(crop_name)) - - player_bag_grid_container.add_child(button) - -# 获取过滤和排序后的种子列表 -func _get_filtered_and_sorted_seeds(): - var filtered_seeds = [] - - # 收集符合条件的种子 - for seed_item in main_game.player_bag: - # 品质过滤 - if current_filter_quality != "" and seed_item["quality"] != current_filter_quality: - continue - - # 获取种子对应的作物数据 - var crop_data = null - if main_game.can_planted_crop.has(seed_item["name"]): - crop_data = main_game.can_planted_crop[seed_item["name"]] - - # 添加到过滤后的列表 - filtered_seeds.append({ - "name": seed_item["name"], - "quality": seed_item["quality"], - "count": seed_item["count"], - "data": crop_data - }) - - # 如果有排序条件且数据可用,进行排序 - if current_sort_key != "": - filtered_seeds.sort_custom(Callable(self, "_sort_seed_items")) - - return filtered_seeds - -# 自定义排序函数 -func _sort_seed_items(a, b): - # 检查是否有有效数据用于排序 - if a["data"] == null or b["data"] == null: - # 如果某一项没有数据,将其排在后面 - if a["data"] == null and b["data"] != null: - return false - if a["data"] != null and b["data"] == null: - return true - # 如果都没有数据,按名称排序 - return a["name"] < b["name"] - - # 确保排序键存在于数据中 - if !a["data"].has(current_sort_key) or !b["data"].has(current_sort_key): - print("警告: 排序键 ", current_sort_key, " 在某些种子数据中不存在") - return false - - # 执行排序 - if current_sort_ascending: - return a["data"][current_sort_key] < b["data"][current_sort_key] - else: - return a["data"][current_sort_key] > b["data"][current_sort_key] - -# 按品质过滤种子 -func _filter_by_quality(quality: String): - current_filter_quality = quality - print("过滤种子,品质: " + (quality if quality != "" else "全部")) - update_player_bag_ui() - -# 按指定键排序 -func _sort_by(sort_key: String): - # 切换排序方向或设置新排序键 - if current_sort_key == sort_key: - current_sort_ascending = !current_sort_ascending - else: - current_sort_key = sort_key - current_sort_ascending = true - - print("排序种子,键: " + sort_key + ",升序: " + str(current_sort_ascending)) - update_player_bag_ui() - -# 创建作物按钮 -func _create_crop_button(crop_name: String, crop_quality: String) -> Button: - # 根据品质选择相应的进度条 - var button = null - #普通 Color.HONEYDEW#白色 - #优良 Color.DODGER_BLUE#深蓝色 - #稀有 Color.HOT_PINK#品红色 - #史诗 Color.YELLOW#黄色 - #传奇 Color.ORANGE_RED#红色 - #空地 Color.GREEN#绿色 - #未开垦 Color.WEB_GRAY#深褐色 - match crop_quality: - "普通": - button = main_game.green_bar.duplicate() - "优良": - button = main_game.orange_bar.duplicate() - "稀有": - button = main_game.white_blue_bar.duplicate() - "史诗": - button = main_game.pink_bar.duplicate() - "传奇": - button = main_game.black_blue_bar.duplicate() - _: # 默认情况 - button = main_game.green_bar.duplicate() - - # 确保按钮可见并可点击 - button.visible = true - button.disabled = false - button.focus_mode = Control.FOCUS_ALL - - # 设置按钮文本 - button.text = str(crop_quality + "-" + crop_name) - - # 添加工具提示 (tooltip) - if main_game.can_planted_crop.has(crop_name): - var crop = main_game.can_planted_crop[crop_name] - - # 将成熟时间从秒转换为天时分秒格式 - var total_seconds = int(crop["生长时间"]) - - # 定义时间单位换算 - var SECONDS_PER_MINUTE = 60 - var SECONDS_PER_HOUR = 3600 - var SECONDS_PER_DAY = 86400 - - # 计算各时间单位 - var days = total_seconds / SECONDS_PER_DAY - total_seconds %= SECONDS_PER_DAY - - var hours = total_seconds / SECONDS_PER_HOUR - total_seconds %= SECONDS_PER_HOUR - - var minutes = total_seconds / SECONDS_PER_MINUTE - var seconds = total_seconds % SECONDS_PER_MINUTE - - # 构建时间字符串(只显示有值的单位) - var time_str = "" - if days > 0: - time_str += str(days) + "天" - if hours > 0: - time_str += str(hours) + "小时" - if minutes > 0: - time_str += str(minutes) + "分钟" - if seconds > 0: - time_str += str(seconds) + "秒" - - button.tooltip_text = str( - "作物: " + crop_name + "\n" + - "品质: " + crop_quality + "\n" + - "价格: " + str(crop["花费"]) + "元\n" + - "成熟时间: " + time_str + "\n" + - "收获收益: " + str(crop["收益"]) + "元\n" + - "需求等级: " + str(crop["等级"]) + "\n" + - "耐候性: " + str(crop["耐候性"]) + "\n" + - "经验: " + str(crop["经验"]) + "点\n" + - "描述: " + str(crop["描述"]) - ) - - # 如果按钮有标题标签,设置标题 - if button.has_node("Title"): - button.get_node("Title").text = crop_quality - match crop_quality: - "普通": - button.get_node("Title").modulate = Color.HONEYDEW#白色 - "优良": - button.get_node("Title").modulate =Color.DODGER_BLUE#深蓝色 - "稀有": - button.get_node("Title").modulate =Color.HOT_PINK#品红色 - "史诗": - button.get_node("Title").modulate =Color.YELLOW#黄色 - "传奇": - button.get_node("Title").modulate =Color.ORANGE_RED#红色 - - # 更新按钮的作物图片 - _update_button_crop_image(button, crop_name) - - return button - -# 从背包中选择种子并种植 -func _on_bag_seed_selected(crop_name): - # 检查是否处于访问模式 - if main_game.is_visiting_mode: - Toast.show("访问模式下无法种植", Color.ORANGE, 2.0, 1.0) - return - - # 检查是否是一键种植模式 - if is_planting_mode: - # 一键种植模式下,回调给一键种植面板 - if one_click_plant_panel and one_click_plant_panel.has_method("on_crop_selected"): - one_click_plant_panel.on_crop_selected(crop_name, planting_type) - # 退出种植模式 - _exit_planting_mode() - self.hide() - return - - # 从主场景获取当前选择的地块索引 - selected_lot_index = main_game.selected_lot_index - - if selected_lot_index != -1: - # 检查背包中是否有这个种子 - var seed_index = -1 - for i in range(len(main_game.player_bag)): - if main_game.player_bag[i]["name"] == crop_name: - seed_index = i - break - #print("选择种子:", crop_name, ",背包索引:", seed_index) - - if seed_index != -1 and main_game.player_bag[seed_index]["count"] > 0: - # 种植种子并从背包中减少数量 - _plant_crop_from_bag(selected_lot_index, crop_name, seed_index) - main_game.selected_lot_index = -1 - self.hide() - -# 访问模式下的种子点击处理 -func _on_visit_seed_selected(crop_name, crop_count): - # 显示种子信息 - var info_text = "" - - if main_game.can_planted_crop.has(crop_name): - var crop = main_game.can_planted_crop[crop_name] - var quality = crop.get("品质", "未知") - var price = crop.get("花费", 0) - var grow_time = crop.get("生长时间", 0) - var profit = crop.get("收益", 0) - var level_req = crop.get("等级", 1) - - # 将成熟时间转换为可读格式 - var time_str = "" - var total_seconds = int(grow_time) - var hours = total_seconds / 3600 - var minutes = (total_seconds % 3600) / 60 - var seconds = total_seconds % 60 - - if hours > 0: - time_str += str(hours) + "小时" - if minutes > 0: - time_str += str(minutes) + "分钟" - if seconds > 0: - time_str += str(seconds) + "秒" - - info_text = quality + "-" + crop_name + " (数量: " + str(crop_count) + ")\n" - info_text += "价格: " + str(price) + "元, 收益: " + str(profit) + "元\n" - info_text += "成熟时间: " + time_str + ", 需求等级: " + str(level_req) - else: - info_text = crop_name + " (数量: " + str(crop_count) + ")" - - Toast.show(info_text, Color.CYAN, 3.0, 1.0) - print("查看种子信息: ", info_text) - -# 从背包种植作物 -func _plant_crop_from_bag(index, crop_name, seed_index): - var crop = main_game.can_planted_crop[crop_name] - - # 检查是否有效的种子索引,防止越界访问 - if seed_index < 0 or seed_index >= main_game.player_bag.size(): - #print("错误:无效的种子索引 ", seed_index) - return - - # 发送种植请求到服务器 - - if network_manager and network_manager.sendPlantCrop(index, crop_name): - # 关闭背包面板 - hide() - -# 设置种植模式 -func set_planting_mode(plant_type: String, plant_panel): - is_planting_mode = true - planting_type = plant_type - one_click_plant_panel = plant_panel - print("进入种植模式:", plant_type) - -# 退出种植模式 -func _exit_planting_mode(): - is_planting_mode = false - planting_type = "" - one_click_plant_panel = null - print("退出种植模式") - -# 关闭面板 -func _on_quit_button_pressed(): - # 退出种植模式(如果当前在种植模式下) - if is_planting_mode: - _exit_planting_mode() - self.hide() - -# 获取作物的最后一帧图片(用于背包显示) -func _get_crop_final_texture(crop_name: String) -> Texture2D: - """ - 获取作物的最后一帧图片,用于背包显示 - 如果作物图片不存在,使用默认图片的最后一帧 - """ - # 先尝试从主游戏的缓存中获取 - if main_game and main_game.crop_textures_cache.has(crop_name): - var textures = main_game.crop_textures_cache[crop_name] - if textures.size() > 0: - return textures[textures.size() - 1] # 返回最后一帧 - - # 如果主游戏缓存中没有,自己加载 - var textures = _load_crop_textures(crop_name) - if textures.size() > 0: - return textures[textures.size() - 1] # 返回最后一帧 - - return null - -# 加载作物图片序列帧(复用主游戏的逻辑) -func _load_crop_textures(crop_name: String) -> Array: - """ - 加载指定作物的所有序列帧图片 - """ - if crop_textures_cache.has(crop_name): - return crop_textures_cache[crop_name] - - var textures = [] - var crop_path = "res://assets/作物/" + crop_name + "/" - var default_path = "res://assets/作物/默认/" - - # 检查作物文件夹是否存在 - if DirAccess.dir_exists_absolute(crop_path): - # 尝试加载作物的序列帧(从0开始) - var frame_index = 0 - while true: - var texture_path = crop_path + str(frame_index) + ".webp" - if ResourceLoader.exists(texture_path): - var texture = load(texture_path) - if texture: - textures.append(texture) - frame_index += 1 - else: - break - else: - break - - if textures.size() > 0: - print("背包加载作物 ", crop_name, " 的 ", textures.size(), " 帧图片") - else: - print("背包:作物 ", crop_name, " 文件夹存在但没有找到有效图片,使用默认图片") - textures = _load_default_textures() - else: - print("背包:作物 ", crop_name, " 的文件夹不存在,使用默认图片") - textures = _load_default_textures() - - # 缓存结果 - crop_textures_cache[crop_name] = textures - crop_frame_counts[crop_name] = textures.size() - - return textures - -# 加载默认图片 -func _load_default_textures() -> Array: - """ - 加载默认作物图片 - """ - if crop_textures_cache.has("默认"): - return crop_textures_cache["默认"] - - var textures = [] - var default_path = "res://assets/作物/默认/" - - # 尝试加载默认图片序列帧 - var frame_index = 0 - while true: - var texture_path = default_path + str(frame_index) + ".webp" - if ResourceLoader.exists(texture_path): - var texture = load(texture_path) - if texture: - textures.append(texture) - frame_index += 1 - else: - break - else: - break - - # 如果没有找到序列帧,尝试加载单个默认图片 - if textures.size() == 0: - var single_texture_path = default_path + ".webp" - if ResourceLoader.exists(single_texture_path): - var texture = load(single_texture_path) - if texture: - textures.append(texture) - - # 缓存默认图片 - crop_textures_cache["默认"] = textures - crop_frame_counts["默认"] = textures.size() - - print("背包加载了 ", textures.size(), " 个默认作物图片") - return textures - -# 更新按钮的作物图片 -func _update_button_crop_image(button: Button, crop_name: String): - """ - 更新按钮中的作物图片 - """ - # 检查按钮是否有CropImage节点 - var crop_image = button.get_node_or_null("CropImage") - if not crop_image: - print("背包按钮没有找到CropImage节点:", button.name) - return - - # 获取作物的最后一帧图片 - var texture = _get_crop_final_texture(crop_name) - - if texture: - # CropImage是Sprite2D,直接设置texture属性 - crop_image.texture = texture - crop_image.visible = true - print("背包更新作物图片:", crop_name) - else: - crop_image.visible = false - print("背包无法获取作物图片:", crop_name) diff --git a/GUI/player_bag_panel.gd.uid b/GUI/player_bag_panel.gd.uid deleted file mode 100644 index 7208216..0000000 --- a/GUI/player_bag_panel.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cgr332wsx63a8 diff --git a/GUI/player_ranking_item.tscn b/GUI/player_ranking_item.tscn deleted file mode 100644 index 80b07a7..0000000 --- a/GUI/player_ranking_item.tscn +++ /dev/null @@ -1,80 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://crd28qnymob7"] - -[ext_resource type="Texture2D" uid="uid://c3vng0nal1wr8" path="res://assets/Test/g.png" id="1_sgoxp"] -[ext_resource type="Script" uid="uid://0d2j5m6j2ema" path="res://Components/HTTPTextureRect.gd" id="2_ky0k8"] - -[node name="player_ranking_item" type="VBoxContainer"] -offset_right = 1152.0 -offset_bottom = 82.0 - -[node name="HBox" type="HBoxContainer" parent="."] -layout_mode = 2 - -[node name="SerialNumber" type="Label" parent="HBox"] -visible = false -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "1." - -[node name="PlayerAvatar" type="TextureRect" parent="HBox"] -layout_mode = 2 -texture = ExtResource("1_sgoxp") -expand_mode = 3 -script = ExtResource("2_ky0k8") -metadata/_custom_type_script = "uid://0d2j5m6j2ema" - -[node name="PlayerName" type="Label" parent="HBox"] -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 30 -text = "树萌芽" - -[node name="PlayerMoney" type="Label" parent="HBox"] -modulate = Color(1, 1, 0, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 30 -text = "钱币:999" - -[node name="SeedNum" type="Label" parent="HBox"] -modulate = Color(0, 1, 0, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 30 -text = "种子数:999" - -[node name="PlayerLevel" type="Label" parent="HBox"] -modulate = Color(0, 1, 1, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 30 -text = "等级:999" - -[node name="VisitButton" type="Button" parent="HBox"] -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 30 -text = "访问" - -[node name="HBox2" type="HBoxContainer" parent="."] -layout_mode = 2 - -[node name="LastLoginTime" type="Label" parent="HBox2"] -modulate = Color(0.811765, 1, 0.811765, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 -text = "最后在线:2025年12时09分35秒" - -[node name="OnlineTime" type="Label" parent="HBox2"] -modulate = Color(0.784314, 0.733333, 0.521569, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 -text = "累计在线时长:99时60分60秒" - -[node name="IsOnlineTime" type="Label" parent="HBox2"] -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 -text = "正在检测中..." diff --git a/GUI/player_ranking_panel.gd b/GUI/player_ranking_panel.gd deleted file mode 100644 index 90cea8a..0000000 --- a/GUI/player_ranking_panel.gd +++ /dev/null @@ -1,192 +0,0 @@ -extends Panel - -@onready var player_ranking_list : VBoxContainer = $Scroll/PlayerList -@onready var refresh_button : Button = $RefreshButton -@onready var quit_button : Button = $QuitButton -@onready var register_player_num: Label = $RegisterPlayerNum #显示注册总人数 - - -#预添加常用的面板 -@onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") - -#下面这是每个玩家要展示的信息,直接获取服务器玩家数据json文件来实现 -#模板用于复制创建新的玩家条目 -@onready var player_info_template : VBoxContainer = $Scroll/PlayerList/player_ranking_item - -func _ready() -> void: - # 隐藏模板 - player_info_template.visible = false - - # 连接按钮信号 - refresh_button.pressed.connect(_on_refresh_button_pressed) - quit_button.pressed.connect(_on_quit_button_pressed) - - -# 请求玩家排行榜数据 -func request_player_rankings(): - if not network_manager: - print("网络管理器不可用") - register_player_num.text = "网络管理器不可用" - register_player_num.modulate = Color.RED - return false - - if not network_manager.is_connected_to_server(): - print("未连接到服务器") - register_player_num.text = "未连接服务器" - register_player_num.modulate = Color.RED - return false - - var success = network_manager.sendGetPlayerRankings() - if not success: - print("发送排行榜请求失败") - register_player_num.text = "请求发送失败" - register_player_num.modulate = Color.RED - return false - - return true - -# 处理玩家排行榜响应 -func handle_player_rankings_response(data): - # 重新启用刷新按钮 - refresh_button.disabled = false - refresh_button.text = "刷新" - - # 检查响应是否成功 - if not data.get("success", false): - print("获取玩家排行榜失败:", data.get("message", "未知错误")) - register_player_num.text = "获取注册人数失败" - register_player_num.modulate = Color.RED - Toast.show("获取排行榜失败:" + data.get("message", "未知错误"), Color.RED) - return - - # 显示注册总人数和在线人数 - var total_registered = data.get("total_registered_players", 0) - var players_list = data.get("players", []) - var online_count = 0 - for player in players_list: - if player.get("is_online", false): - online_count += 1 - - register_player_num.text = "总人数:" + str(int(total_registered)) + "| 在线:" + str(online_count) - register_player_num.modulate = Color.CYAN - - # 清除现有的玩家条目(除了模板) - for child in player_ranking_list.get_children(): - if child != player_info_template: - child.queue_free() - - # 添加玩家条目 - var players = players_list - for player_data in players: - add_player_entry(player_data) - - print("排行榜数据已更新,显示", players.size(), "个玩家,注册总人数:", total_registered) - Toast.show("排行榜已刷新!显示 " + str(players.size()) + " 个玩家", Color.GREEN) - -# 添加单个玩家条目 -func add_player_entry(player_data): - # 复制模板 - var player_entry = player_info_template.duplicate() - player_entry.visible = true - player_ranking_list.add_child(player_entry) - - # 设置玩家信息 - var player_name = player_entry.get_node("HBox/PlayerName") - var player_level = player_entry.get_node("HBox/PlayerLevel") - var player_money = player_entry.get_node("HBox/PlayerMoney") - var player_seed_num = player_entry.get_node("HBox/SeedNum") - var player_online_time = player_entry.get_node("HBox2/OnlineTime") - var player_last_login_time = player_entry.get_node("HBox2/LastLoginTime") - var player_avatar = player_entry.get_node("HBox/PlayerAvatar") - var visit_button = player_entry.get_node("HBox/VisitButton") - var player_is_online_time = player_entry.get_node("HBox2/IsOnlineTime") - - # 填充数据 - var username = player_data.get("user_name", "未知") - var display_name = player_data.get("player_name", username) - player_name.text = display_name - #都是整数,不要乱用浮点数 - player_level.text = "等级: " + str(int(player_data.get("level", 0))) - player_money.text = "金币: " + str(int(player_data.get("money", 0))) - player_seed_num.text = "种子: " + str(int(player_data.get("seed_count", 0))) - player_online_time.text = "游玩时间: " + player_data.get("total_login_time", "0时0分0秒") - player_last_login_time.text = "最后登录: " + player_data.get("last_login_time", "未知") - - # 设置在线状态显示 - var is_online = player_data.get("is_online", false) - if is_online: - player_is_online_time.text = "🟢 在线" - player_is_online_time.modulate = Color.GREEN - else: - player_is_online_time.text = "🔴 离线" - player_is_online_time.modulate = Color.GRAY - - # 尝试加载玩家头像(使用用户名/QQ号加载头像,而不是显示名) - if username.is_valid_int(): - player_avatar.load_from_url("http://q1.qlogo.cn/g?b=qq&nk=" + username + "&s=100") - - # 设置访问按钮 - visit_button.pressed.connect(func(): _on_visit_player_pressed(username)) - -# 访问玩家按钮点击 -func _on_visit_player_pressed(username): - print("访问玩家:", username) - - # 检查网络连接 - if not network_manager or not network_manager.is_connected_to_server(): - Toast.show("未连接服务器,无法访问玩家", Color.RED) - return - - # 检查是否尝试访问自己 - if main_game and main_game.user_name == username: - Toast.show("不能访问自己的农场", Color.ORANGE) - return - - # 发送访问玩家请求 - if network_manager and network_manager.has_method("sendVisitPlayer"): - var success = network_manager.sendVisitPlayer(username) - if success: - Toast.show("正在访问 " + username + " 的农场...", Color.YELLOW) - print("已发送访问玩家请求:", username) - else: - Toast.show("发送访问请求失败", Color.RED) - print("发送访问玩家请求失败,网络未连接") - else: - Toast.show("网络管理器不可用", Color.RED) - print("网络管理器不可用") - -# 刷新按钮点击 -func _on_refresh_button_pressed(): - # 检查网络连接 - if not network_manager or not network_manager.is_connected_to_server(): - register_player_num.text = "未连接服务器,无法刷新" - register_player_num.modulate = Color.RED - Toast.show("未连接服务器,无法刷新排行榜", Color.RED) - return - - # 显示加载状态 - register_player_num.text = "正在刷新注册人数..." - register_player_num.modulate = Color.YELLOW - refresh_button.disabled = true - refresh_button.text = "刷新中..." - - # 请求排行榜数据 - request_player_rankings() - - # 5秒后重新启用按钮(防止卡住) - await get_tree().create_timer(5.0).timeout - if refresh_button.disabled: - refresh_button.disabled = false - refresh_button.text = "刷新" - if register_player_num.text == "正在刷新注册人数...": - register_player_num.text = "刷新超时,请重试" - register_player_num.modulate = Color.RED - -# 退出按钮点击 -func _on_quit_button_pressed(): - self.hide() diff --git a/GUI/player_ranking_panel.gd.uid b/GUI/player_ranking_panel.gd.uid deleted file mode 100644 index 2b4de47..0000000 --- a/GUI/player_ranking_panel.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://fk4q3x6uqydd diff --git a/GameCamera2D.gd b/GameCamera2D.gd deleted file mode 100644 index 46a1825..0000000 --- a/GameCamera2D.gd +++ /dev/null @@ -1,142 +0,0 @@ -extends Camera2D - -# 相机移动速度 -@export var move_speed: float = 400.0 # 每秒移动的像素数 -@export var zoom_speed: float = 0.02 # 缩放速度 -@export var min_zoom: float = 0.7 # 最小缩放值 -@export var max_zoom: float = 1.2 # 最大缩放值 - -# 移动端触摸设置 -@export var touch_sensitivity: float = 1.0 # 触摸灵敏度 -@export var enable_touch_zoom: bool = true # 是否启用双指缩放 - -# 移动边界(可选) -@export var bounds_enabled: bool = false -@export var bounds_min: Vector2 = Vector2(-1000, -1000) -@export var bounds_max: Vector2 = Vector2(1000, 1000) - -@export var current_zoom_level: float = 1.0 - -# 触摸相关变量 -var is_dragging: bool = false -var last_touch_position: Vector2 -var touch_points: Dictionary = {} # 存储多点触摸信息 -var initial_zoom_distance: float = 0.0 - -func _ready(): - # 初始化相机 - zoom = Vector2(current_zoom_level, current_zoom_level) - - - -func _process(delta): - #其他地方可通过这个方法来禁用相机功能 - if GlobalVariables.isZoomDisabled == true: - return - - # 处理相机移动 - var input_dir = Vector2.ZERO - - # WASD 键移动 - if Input.is_action_pressed("ui_up") or Input.is_key_pressed(KEY_W): - input_dir.y -= 1 - if Input.is_action_pressed("ui_down") or Input.is_key_pressed(KEY_S): - input_dir.y += 1 - if Input.is_action_pressed("ui_left") or Input.is_key_pressed(KEY_A): - input_dir.x -= 1 - if Input.is_action_pressed("ui_right") or Input.is_key_pressed(KEY_D): - input_dir.x += 1 - - # 归一化移动向量,确保对角线移动不会更快 - if input_dir.length() > 0: - input_dir = input_dir.normalized() - - # 相机移动 - position += input_dir * move_speed * delta / current_zoom_level - - # 如果启用了边界限制,确保相机在边界内 - if bounds_enabled: - position.x = clamp(position.x, bounds_min.x, bounds_max.x) - position.y = clamp(position.y, bounds_min.y, bounds_max.y) - - # 处理相机缩放KEY_EQUAL - if Input.is_key_pressed(KEY_EQUAL) or Input.is_key_pressed(KEY_KP_ADD): # + 键放大 - zoom_camera(-zoom_speed) - if Input.is_key_pressed(KEY_MINUS) or Input.is_key_pressed(KEY_KP_SUBTRACT): # - 键缩小 - zoom_camera(zoom_speed) - -# 处理输入事件(包括触摸和鼠标) -func _input(event): - - #其他地方可通过这个方法来禁用相机功能 - if GlobalVariables.isZoomDisabled == true: - return - - # 鼠标滚轮缩放 - if event is InputEventMouseButton: - if event.button_index == MOUSE_BUTTON_WHEEL_DOWN: - zoom_camera(-zoom_speed) - elif event.button_index == MOUSE_BUTTON_WHEEL_UP: - zoom_camera(zoom_speed) - - # 触摸开始 - elif event is InputEventScreenTouch: - if event.pressed: - # 记录触摸点 - touch_points[event.index] = event.position - - if len(touch_points) == 1: - # 单指触摸,开始拖动 - is_dragging = true - last_touch_position = event.position - elif len(touch_points) == 2 and enable_touch_zoom: - # 双指触摸,准备缩放 - is_dragging = false - var touches = touch_points.values() - initial_zoom_distance = touches[0].distance_to(touches[1]) - else: - # 触摸结束 - if touch_points.has(event.index): - touch_points.erase(event.index) - - if len(touch_points) == 0: - is_dragging = false - elif len(touch_points) == 1: - # 从双指回到单指,重新开始拖动 - is_dragging = true - last_touch_position = touch_points.values()[0] - - # 触摸拖动 - elif event is InputEventScreenDrag: - if touch_points.has(event.index): - touch_points[event.index] = event.position - - if len(touch_points) == 1 and is_dragging: - # 单指拖动,移动相机 - var drag_delta = last_touch_position - event.position - # 根据当前缩放级别调整移动距离 - position += drag_delta * touch_sensitivity / current_zoom_level - - # 应用边界限制 - if bounds_enabled: - position.x = clamp(position.x, bounds_min.x, bounds_max.x) - position.y = clamp(position.y, bounds_min.y, bounds_max.y) - - last_touch_position = event.position - - elif len(touch_points) == 2 and enable_touch_zoom: - # 双指缩放 - var touches = touch_points.values() - var current_distance = touches[0].distance_to(touches[1]) - - if initial_zoom_distance > 0: - var zoom_factor = current_distance / initial_zoom_distance - var zoom_change = (zoom_factor - 1.0) * zoom_speed * 10 - zoom_camera(zoom_change) - - initial_zoom_distance = current_distance - -# 缩放相机 -func zoom_camera(zoom_amount): - current_zoom_level = clamp(current_zoom_level + zoom_amount, min_zoom, max_zoom) - zoom = Vector2(current_zoom_level, current_zoom_level) diff --git a/GameCamera2D.gd.uid b/GameCamera2D.gd.uid deleted file mode 100644 index bb9ca5b..0000000 --- a/GameCamera2D.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://c7bxje0wvvgo4 diff --git a/GlobalScript/GlobalVariables.gd b/GlobalScript/GlobalVariables.gd index a4a856d..b26c90d 100644 --- a/GlobalScript/GlobalVariables.gd +++ b/GlobalScript/GlobalVariables.gd @@ -1,5 +1,13 @@ extends Node -const client_version :String = "1.0.5" #记录客户端版本 +const client_version :String = "2.0.1" #记录客户端版本 var isZoomDisabled :bool = false + +const server_configs = [ + {"host": "127.0.0.1", "port": 6060, "name": "本地"}, + #{"host": "192.168.31.233", "port": 6060, "name": "家里面局域网"}, + #{"host": "192.168.1.110", "port": 4040, "name": "萌芽局域网"}, + #{"host": "47.108.90.0", "port": 4040, "name": "成都内网穿透"}#成都内网穿透 + #{"host": "47.108.90.0", "port": 6060, "name": "成都公网"}#成都服务器 +] diff --git a/GlobalScript/ResourceLoadingDebugger.gd b/GlobalScript/ResourceLoadingDebugger.gd new file mode 100644 index 0000000..c3b9efb --- /dev/null +++ b/GlobalScript/ResourceLoadingDebugger.gd @@ -0,0 +1,239 @@ +extends Node + +## 资源加载调试器 +## 用于诊断和监控资源加载问题 + +class_name ResourceLoadingDebugger + +# 调试信息收集 +var loading_stats: Dictionary = {} +var failed_resources: Array = [] +var performance_metrics: Dictionary = {} + +## 初始化调试器 +func _ready(): + print("[ResourceLoadingDebugger] 资源加载调试器已启动") + _init_performance_monitoring() + +## 初始化性能监控 +func _init_performance_monitoring(): + performance_metrics = { + "total_load_time": 0.0, + "average_load_time": 0.0, + "peak_memory_usage": 0, + "current_memory_usage": 0, + "successful_loads": 0, + "failed_loads": 0 + } + +## 记录资源加载开始 +func start_loading_resource(resource_path: String) -> int: + var start_time = Time.get_ticks_msec() + var load_id = randi() + + loading_stats[load_id] = { + "path": resource_path, + "start_time": start_time, + "status": "loading" + } + + return load_id + +## 记录资源加载完成 +func finish_loading_resource(load_id: int, success: bool, resource: Resource = null): + if not loading_stats.has(load_id): + return + + var end_time = Time.get_ticks_msec() + var load_info = loading_stats[load_id] + var load_time = end_time - load_info["start_time"] + + load_info["end_time"] = end_time + load_info["load_time"] = load_time + load_info["success"] = success + load_info["status"] = "completed" + + # 更新性能指标 + performance_metrics["total_load_time"] += load_time + if success: + performance_metrics["successful_loads"] += 1 + if resource: + load_info["resource_size"] = _get_resource_memory_size(resource) + else: + performance_metrics["failed_loads"] += 1 + failed_resources.append(load_info["path"]) + + # 计算平均加载时间 + var total_loads = performance_metrics["successful_loads"] + performance_metrics["failed_loads"] + if total_loads > 0: + performance_metrics["average_load_time"] = performance_metrics["total_load_time"] / total_loads + + # 更新内存使用情况 + _update_memory_usage() + +## 获取资源内存大小估算 +func _get_resource_memory_size(resource: Resource) -> int: + if resource is Texture2D: + var texture = resource as Texture2D + var size = texture.get_size() + # 估算:RGBA * 宽 * 高 * 4字节 + return size.x * size.y * 4 + return 0 + +## 更新内存使用情况 +func _update_memory_usage(): + var current_memory = OS.get_static_memory_usage() + performance_metrics["current_memory_usage"] = current_memory + + if current_memory > performance_metrics["peak_memory_usage"]: + performance_metrics["peak_memory_usage"] = current_memory + +## 检测设备资源加载能力 +func detect_device_capabilities() -> Dictionary: + var capabilities = {} + + # 设备基本信息 + capabilities["platform"] = OS.get_name() + capabilities["processor_count"] = OS.get_processor_count() + capabilities["memory_total"] = OS.get_static_memory_usage() + + # 图形信息 + var rendering_device = RenderingServer.get_rendering_device() + if rendering_device: + capabilities["gpu_name"] = rendering_device.get_device_name() + capabilities["gpu_vendor"] = rendering_device.get_device_vendor_name() + + # 存储信息 + capabilities["user_data_dir"] = OS.get_user_data_dir() + + # 性能测试 + capabilities["texture_loading_speed"] = _benchmark_texture_loading() + + return capabilities + +## 基准测试纹理加载速度 +func _benchmark_texture_loading() -> float: + var test_path = "res://assets/作物/默认/0.webp" + if not ResourceLoader.exists(test_path): + return -1.0 + + var start_time = Time.get_ticks_msec() + var iterations = 10 + + for i in range(iterations): + var texture = ResourceLoader.load(test_path) + if not texture: + return -1.0 + + var end_time = Time.get_ticks_msec() + return float(end_time - start_time) / iterations + +## 诊断资源加载问题 +func diagnose_loading_issues() -> Dictionary: + var diagnosis = { + "issues_found": [], + "recommendations": [], + "severity": "normal" + } + + # 检查失败率 + var total_loads = performance_metrics["successful_loads"] + performance_metrics["failed_loads"] + if total_loads > 0: + var failure_rate = float(performance_metrics["failed_loads"]) / total_loads + if failure_rate > 0.1: # 失败率超过10% + diagnosis["issues_found"].append("资源加载失败率过高: %.1f%%" % (failure_rate * 100)) + diagnosis["recommendations"].append("检查资源文件完整性和路径正确性") + diagnosis["severity"] = "warning" + + if failure_rate > 0.3: # 失败率超过30% + diagnosis["severity"] = "critical" + diagnosis["recommendations"].append("考虑降低资源质量或减少同时加载的资源数量") + + # 检查加载速度 + if performance_metrics["average_load_time"] > 100: # 平均加载时间超过100ms + diagnosis["issues_found"].append("资源加载速度较慢: %.1fms" % performance_metrics["average_load_time"]) + diagnosis["recommendations"].append("考虑使用多线程加载或预加载常用资源") + if diagnosis["severity"] == "normal": + diagnosis["severity"] = "warning" + + # 检查内存使用 + var memory_mb = performance_metrics["peak_memory_usage"] / (1024 * 1024) + if memory_mb > 500: # 峰值内存使用超过500MB + diagnosis["issues_found"].append("内存使用过高: %.1fMB" % memory_mb) + diagnosis["recommendations"].append("实施LRU缓存清理或降低缓存大小") + if diagnosis["severity"] == "normal": + diagnosis["severity"] = "warning" + + # 检查平台特定问题 + var platform = OS.get_name() + if platform in ["Android", "iOS"]: + if performance_metrics["failed_loads"] > 5: + diagnosis["issues_found"].append("移动设备上资源加载失败较多") + diagnosis["recommendations"].append("移动设备内存有限,建议降低资源质量或实施更积极的缓存清理") + + return diagnosis + +## 生成资源加载报告 +func generate_loading_report() -> String: + var report = "=== 资源加载调试报告 ===\n\n" + + # 基本统计 + report += "基本统计:\n" + report += " 成功加载: %d\n" % performance_metrics["successful_loads"] + report += " 失败加载: %d\n" % performance_metrics["failed_loads"] + report += " 平均加载时间: %.1fms\n" % performance_metrics["average_load_time"] + report += " 总加载时间: %.1fs\n" % (performance_metrics["total_load_time"] / 1000.0) + report += " 峰值内存使用: %.1fMB\n\n" % (performance_metrics["peak_memory_usage"] / (1024 * 1024)) + + # 设备信息 + var capabilities = detect_device_capabilities() + report += "设备信息:\n" + report += " 平台: %s\n" % capabilities.get("platform", "未知") + report += " CPU核心数: %d\n" % capabilities.get("processor_count", 0) + report += " 纹理加载速度: %.1fms\n\n" % capabilities.get("texture_loading_speed", -1) + + # 失败的资源 + if failed_resources.size() > 0: + report += "加载失败的资源:\n" + for i in range(min(10, failed_resources.size())): # 只显示前10个 + report += " - %s\n" % failed_resources[i] + if failed_resources.size() > 10: + report += " ... 还有 %d 个失败的资源\n" % (failed_resources.size() - 10) + report += "\n" + + # 诊断结果 + var diagnosis = diagnose_loading_issues() + report += "诊断结果 [%s]:\n" % diagnosis["severity"].to_upper() + for issue in diagnosis["issues_found"]: + report += " 问题: %s\n" % issue + for recommendation in diagnosis["recommendations"]: + report += " 建议: %s\n" % recommendation + + return report + +## 清理调试数据 +func clear_debug_data(): + loading_stats.clear() + failed_resources.clear() + _init_performance_monitoring() + print("[ResourceLoadingDebugger] 调试数据已清理") + +## 导出调试数据到文件 +func export_debug_data_to_file(): + var report = generate_loading_report() + var datetime = Time.get_datetime_dict_from_system() + var filename = "resource_loading_debug_%04d%02d%02d_%02d%02d%02d.txt" % [ + datetime.year, datetime.month, datetime.day, + datetime.hour, datetime.minute, datetime.second + ] + + var file_path = OS.get_user_data_dir() + "/" + filename + var file = FileAccess.open(file_path, FileAccess.WRITE) + if file: + file.store_string(report) + file.close() + print("[ResourceLoadingDebugger] 调试报告已导出到: ", file_path) + return file_path + else: + print("[ResourceLoadingDebugger] 导出调试报告失败") + return "" \ No newline at end of file diff --git a/GlobalScript/ResourceLoadingDebugger.gd.uid b/GlobalScript/ResourceLoadingDebugger.gd.uid new file mode 100644 index 0000000..ebc8781 --- /dev/null +++ b/GlobalScript/ResourceLoadingDebugger.gd.uid @@ -0,0 +1 @@ +uid://dk6uoldjqtc0p diff --git a/MainGame.gd b/MainGame.gd index 93a4f01..2b58479 100644 --- a/MainGame.gd +++ b/MainGame.gd @@ -3,8 +3,9 @@ extends Node # 变量定义 @onready var grid_container : GridContainer = $GridContainer # 农场地块的 GridContainer @onready var crop_item : Button = $CopyNodes/CropItem +@onready var pet_patrol_path_line: Line2D = $PetPatrolPathLine #宠物农场巡逻线 - +#显示信息栏 @onready var show_money : Label = $UI/GUI/GameInfoHBox1/money # 显示当前剩余的钱 @onready var show_experience : Label = $UI/GUI/GameInfoHBox1/experience # 显示当前玩家的经验 @onready var show_level : Label = $UI/GUI/GameInfoHBox1/level # 显示当前玩家的等级 @@ -16,10 +17,13 @@ extends Node @onready var show_status_label : Label = $UI/GUI/GameInfoHBox2/StatusLabel # 显示与服务器连接状态 @onready var show_fps: Label = $UI/GUI/GameInfoHBox2/FPS # 显示游戏FPS @onready var show_hunger_value :Label = $UI/GUI/GameInfoHBox1/hunger_value # 显示玩家体力值 -@onready var network_status_label :Label = get_node("/root/main/UI/TCPNetworkManager/StatusLabel") +@onready var global_server_broadcast: Label = $UI/GUI/GameInfoHBox3/GlobalServerBroadcast # 显示全服大喇叭的最新消息,走马灯式滚动显示 +@onready var watch_broadcast_button: Button = $UI/GUI/GameInfoHBox3/WatchBroadcast # 查看大喇叭按钮 + +@onready var network_status_label :Label = get_node("/root/main/UI/BigPanel/TCPNetworkManagerPanel/StatusLabel") + #一堆按钮 -#访问其他人农场相关的按钮 @onready var return_my_farm_button: Button = $UI/GUI/VisitVBox/ReturnMyFarmButton #返回我的农场 @onready var like_button: Button = $UI/GUI/VisitVBox/LikeButton #给别人点赞 @@ -36,38 +40,64 @@ extends Node @onready var daily_check_in_button: Button = $UI/GUI/OtherVBox/DailyCheckInButton #每日签到 @onready var player_ranking_button: Button = $UI/GUI/OtherVBox/PlayerRankingButton #打开玩家排行榜 @onready var scare_crow_button: Button = $UI/GUI/OtherVBox/ScareCrowButton #打开稻草人面板按钮 -@onready var my_pet_button: Button = $UI/GUI/OtherVBox/MyPetButton #打开宠物面板按钮 @onready var return_main_menu_button: Button = $UI/GUI/OtherVBox/ReturnMainMenuButton #返回主菜单按钮 @onready var new_player_gift_button: Button = $UI/GUI/OtherVBox/NewPlayerGiftButton #领取新手大礼包按钮 @onready var account_setting_button: Button = $UI/GUI/OtherVBox/AccountSettingButton #账户设置按钮 -@onready var crop_grid_container : GridContainer = $UI/CropStorePanel/ScrollContainer/Crop_Grid #种子商店格子 -@onready var player_bag_grid_container : GridContainer = $UI/PlayerBagPanel/ScrollContainer/Bag_Grid #玩家背包格子 +@onready var crop_grid_container : GridContainer = $UI/BigPanel/CropStorePanel/ScrollContainer/Crop_Grid #种子商店格子 +@onready var player_bag_grid_container : GridContainer = $UI/BigPanel/PlayerBagPanel/ScrollContainer/Bag_Grid #玩家背包格子 #作物品质按钮 - -@onready var item_button :Button = $CopyNodes/item_button #通用面板按钮 +@onready var item_button :Button = $CopyNodes/item_button #各种面板 -@onready var land_panel : Panel = $UI/LandPanel #地块面板 -@onready var login_panel : PanelContainer = $UI/LoginPanel #登录注册面板 -@onready var crop_store_panel : Panel = $UI/CropStorePanel #种子商店面板 -@onready var player_bag_panel : Panel = $UI/PlayerBagPanel #玩家背包面板 -@onready var crop_warehouse_panel : Panel = $UI/CropWarehousePanel #作物仓库面板 -@onready var item_bag_panel : Panel = $UI/ItemBagPanel #道具背包面板 -@onready var item_store_panel : Panel = $UI/ItemStorePanel #道具商店面板 -@onready var network_manager : Panel = $UI/TCPNetworkManager #网络管理器 -@onready var player_ranking_panel : Panel = $UI/PlayerRankingPanel #玩家排行榜面板 -@onready var daily_check_in_panel: DailyCheckInPanel = $UI/DailyCheckInPanel #每日签到面板 -@onready var lucky_draw_panel: LuckyDrawPanel = $UI/LuckyDrawPanel #幸运抽签面板 -@onready var one_click_plant_panel: Panel = $UI/OneClickPlantPanel #一键种植面板 -@onready var online_gift_panel: Panel = $UI/OnlineGiftPanel #在线礼包面板 -@onready var account_setting_panel: Panel = $UI/AccountSettingPanel #账户设置面板 +#大面板 +@onready var lucky_draw_panel: LuckyDrawPanel = $UI/BigPanel/LuckyDrawPanel #幸运抽奖面板 +@onready var daily_check_in_panel: DailyCheckInPanel = $UI/BigPanel/DailyCheckInPanel #每日签到面板 +@onready var tcp_network_manager_panel: Panel = $UI/BigPanel/TCPNetworkManagerPanel #网络管理器面板 +@onready var item_store_panel: Panel = $UI/BigPanel/ItemStorePanel #道具商店面板 +@onready var item_bag_panel: Panel = $UI/BigPanel/ItemBagPanel #道具背包面板 +@onready var player_bag_panel: Panel = $UI/BigPanel/PlayerBagPanel #种子背包面板 +@onready var crop_warehouse_panel: Panel = $UI/BigPanel/CropWarehousePanel #作物仓库面板 +@onready var crop_store_panel: Panel = $UI/BigPanel/CropStorePanel #种子商店面板 +@onready var player_ranking_panel: Panel = $UI/BigPanel/PlayerRankingPanel #玩家排行榜面板 +@onready var login_panel: PanelContainer = $UI/BigPanel/LoginPanel #登录面板 +@onready var pet_bag_panel: Panel = $UI/BigPanel/PetBagPanel #宠物背包面板 +@onready var pet_store_panel: Panel = $UI/BigPanel/PetStorePanel #宠物商店面板 +@onready var pet_fight_panel: Panel = $UI/BigPanel/PetFightPanel #宠物战斗面板 +@onready var pet_inform_panel: Panel = $UI/SmallPanel/PetInformPanel #宠物信息面板 -#加载缓存资源显示面板 -@onready var load_progress_panel: Panel = $UI/LoadProgressPanel #加载资源面板默认为显示状态,加载完后隐藏 -@onready var load_progress_bar: ProgressBar = $UI/LoadProgressPanel/LoadProgressBar #显示加载进度进度条 + +#小面板 +@onready var land_panel: Panel = $UI/SmallPanel/LandPanel #地块面板 +@onready var load_progress_panel: Panel = $UI/SmallPanel/LoadProgressPanel #加载进度面板 +@onready var account_setting_panel: Panel = $UI/SmallPanel/AccountSettingPanel #账户设置面板 +@onready var one_click_plant_panel: Panel = $UI/SmallPanel/OneClickPlantPanel #一键种植地块面板 +@onready var online_gift_panel: Panel = $UI/SmallPanel/OnlineGiftPanel #在线礼包面板 +@onready var debug_panel: Panel = $UI/SmallPanel/DebugPanel #调试面板 +@onready var global_server_broadcast_panel: Panel = $UI/SmallPanel/GlobalServerBroadcastPanel #全服大喇叭面板 +@onready var scare_crow_panel: Panel = $UI/SmallPanel/ScareCrowPanel #农场稻草人设置面板 +@onready var wisdom_tree_panel: Panel = $UI/SmallPanel/WisdomTreePanel #智慧树设置面板 + + +#稻草人系统 +@onready var scare_crow: Button = $Decoration/ScareCrow #打开农场稻草人设置面板 +@onready var scare_crow_image: Sprite2D = $Decoration/ScareCrow/ScareCrowImage #稻草人显示的图片 +@onready var scare_crow_name: RichTextLabel = $Decoration/ScareCrow/ScareCrowName #稻草人显示的昵称 +@onready var scare_crowtalks: RichTextLabel = $Decoration/ScareCrow/BackgroundPanel/ScareCrowtalks #稻草人显示的话 + +#智慧树系统 +@onready var wisdom_tree_image: Sprite2D = $Decoration/WisdomTree/WisdomTreeImage #智慧树图片从大小从0.5变到1.6 +@onready var tree_status: Label = $Decoration/WisdomTree/TreeStatus #智慧树状态 只显示 等级和高度 +@onready var anonymous_talk: RichTextLabel = $Decoration/WisdomTree/BackgroundPanel/AnonymousTalk #给智慧树听音乐100%会刷新 施肥浇水 + + +#各种弹窗 +@onready var accept_dialog: AcceptDialog = $UI/DiaLog/AcceptDialog + + +@onready var load_progress_bar: ProgressBar = $UI/SmallPanel/LoadProgressPanel/LoadProgressBar #显示加载进度进度条 @onready var game_info_h_box_1: HBoxContainer = $UI/GUI/GameInfoHBox1 @@ -77,7 +107,7 @@ extends Node @onready var visit_v_box: VBoxContainer = $UI/GUI/VisitVBox @onready var other_v_box: VBoxContainer = $UI/GUI/OtherVBox -@onready var accept_dialog: AcceptDialog = $UI/AcceptDialog + var money: int = 500 # 默认每个人初始为100元 var experience: float = 0.0 # 初始每个玩家的经验为0 @@ -95,17 +125,25 @@ var data : Dictionary = {} var buttons : Array = [] var start_game : bool = false -# 玩家背包数据 +# 种子背包数据 var player_bag : Array = [] # 作物仓库数据 var crop_warehouse : Array = [] # 道具背包数据 var item_bag : Array = [] +# 宠物背包数据 +var pet_bag : Array = [] +# 巡逻宠物数据 +var patrol_pets : Array = [] +var battle_pets : Array = [] # 出战宠物数据 + # 道具选择状态 var selected_item_name : String = "" var is_item_selected : bool = false #农作物种类JSON var can_planted_crop : Dictionary = {} +#道具配置数据 +var item_config_data : Dictionary = {} # 新手大礼包领取状态 var new_player_gift_claimed : bool = false # 当前被选择的地块索引 @@ -136,14 +174,28 @@ var five_timer = 0.0 var five_interval = 5.0 var one_timer: float = 0.0 -var one_interval: float = 1.0 +var one_interval: float = 1.0 + +# 稻草人话语切换相关 +var scare_crow_talk_index: int = 0 +var scare_crow_talk_timer: float = 0.0 +var scare_crow_talk_interval: float = 3.0 # 每3秒切换一次 +var scare_crow_talks_list: Array = [] + +#=======================脚本基础方法======================= -# 准备阶段 func _ready(): # 显示加载进度面板,隐藏其他所有UI load_progress_panel.show() load_progress_bar.value = 0 + # 初始化调试面板(默认隐藏) + debug_panel.hide() + debug_panel_script = debug_panel + + # 在加载进度面板上添加调试按钮 + _add_debug_button_to_loading_panel() + #未登录时隐藏所有UI game_info_h_box_1.hide() game_info_h_box_2.hide() @@ -163,6 +215,7 @@ func _ready(): player_ranking_panel.hide() one_click_plant_panel.hide() account_setting_panel.hide() + global_server_broadcast_panel.hide() accept_dialog.hide() @@ -173,24 +226,28 @@ func _ready(): # 先尝试加载本地数据进行快速初始化 _load_local_crop_data() - - # 初始化玩家背包UI + _load_local_item_config() +#==================================初始化比较重要的几个面板================================== + # 初始化种子仓库UI player_bag_panel.init_player_bag() # 初始化作物仓库UI crop_warehouse_panel.init_crop_warehouse() # 初始化道具背包UI item_bag_panel.init_item_bag() - # 初始化商店 + # 初始化种子商店 crop_store_panel.init_store() # 初始化道具商店UI item_store_panel.init_item_store() - +#==================================初始化比较重要的几个面板================================== # 连接AcceptDialog的确认信号 accept_dialog.confirmed.connect(_on_accept_dialog_confirmed) # 启动在线人数更新定时器 _start_online_players_timer() + # 初始化大喇叭显示(延迟到登录成功后) + # _init_broadcast_display() + # 预加载所有作物图片(带进度显示) await _preload_all_crop_textures() @@ -241,8 +298,6 @@ func _physics_process(delta): if one_timer >= one_interval: one_timer = 0.0 # 重置计时器 - - #同步网络管理器的状态 show_status_label.text = "服务器状态:"+network_status_label.text show_status_label.modulate = network_status_label.modulate @@ -271,6 +326,16 @@ func _physics_process(delta): if five_timer >= five_interval: five_timer = 0.0 # 重置计时器 show_tip.text = _random_small_game_tips() + + + # 稻草人话语切换计时器 + if scare_crow_talks_list.size() > 0 and scare_crow.visible: + scare_crow_talk_timer += delta + if scare_crow_talk_timer >= scare_crow_talk_interval: + scare_crow_talk_timer = 0.0 + _update_scare_crow_talk() +#=======================脚本基础方法======================= + #随机游戏提示 func _random_small_game_tips() -> String: @@ -315,7 +380,6 @@ func _handle_crop_update(update_data): # 修复背包数据,确保所有物品都有quality字段 func _fix_player_bag_data(): - """修复背包数据,为缺少quality字段的物品添加默认质量""" if not player_bag: return @@ -345,7 +409,6 @@ func _fix_player_bag_data(): # 处理登录成功 func handle_login_success(player_data: Dictionary): - """处理登录成功后的逻辑""" # 修复背包数据兼容性问题 _fix_player_bag_data() @@ -362,12 +425,24 @@ func handle_login_success(player_data: Dictionary): new_player_gift_button.show() # 立即请求在线人数 - if network_manager and network_manager.is_connected_to_server(): - network_manager.sendGetOnlinePlayers() + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + tcp_network_manager_panel.sendGetOnlinePlayers() print("登录成功后请求在线人数更新") # 其他登录成功后的初始化逻辑可以在这里添加 start_game = true + + # 登录成功后初始化大喇叭显示 + _init_broadcast_display() + + # 初始化稻草人显示 + init_scare_crow_config() + + # 初始化智慧树显示 + update_wisdom_tree_display() + + # 立即请求服务器历史消息以刷新显示 + call_deferred("_request_server_history_for_refresh") # 处理玩家排行榜响应 @@ -413,6 +488,8 @@ func _handle_visit_player_response(data): player_bag = target_player_data.get("player_bag", []) crop_warehouse = target_player_data.get("作物仓库", []) item_bag = target_player_data.get("道具背包", []) + pet_bag = target_player_data.get("宠物背包", []) + patrol_pets = target_player_data.get("巡逻宠物", []) # 更新UI显示 show_player_name.text = "玩家昵称:" + target_player_data.get("player_name", "未知") @@ -437,6 +514,30 @@ func _handle_visit_player_response(data): # 更新道具背包UI if item_bag_panel and item_bag_panel.has_method("update_item_bag_ui"): item_bag_panel.update_item_bag_ui() + # 更新宠物背包UI + if pet_bag_panel and pet_bag_panel.has_method("update_pet_bag_ui"): + pet_bag_panel.update_pet_bag_ui() + + # 初始化巡逻宠物(访问模式) + if has_method("init_patrol_pets"): + init_patrol_pets() + + # 更新稻草人显示(访问模式) + update_scare_crow_display() + + # 更新智慧树配置显示(访问模式) + if target_player_data.has("智慧树配置") and target_player_data["智慧树配置"] != null: + # 确保智慧树配置格式正确 + var target_wisdom_config = target_player_data["智慧树配置"] + if target_wisdom_config is Dictionary: + target_wisdom_config = _ensure_wisdom_tree_config_format(target_wisdom_config) + + # 更新智慧树显示 + _update_wisdom_tree_display(target_wisdom_config) + else: + print("智慧树配置不是Dictionary类型:", typeof(target_wisdom_config)) + else: + print("目标玩家没有智慧树配置或配置为空") # 隐藏排行榜面板 if player_ranking_panel: @@ -465,6 +566,8 @@ func _handle_return_my_farm_response(data): player_bag = player_data.get("player_bag", []) crop_warehouse = player_data.get("作物仓库", []) item_bag = player_data.get("道具背包", []) + pet_bag = player_data.get("宠物背包", []) + patrol_pets = player_data.get("巡逻宠物", []) # 恢复UI显示 show_player_name.text = "玩家昵称:" + player_data.get("player_name", "未知") @@ -495,9 +598,28 @@ func _handle_return_my_farm_response(data): # 更新道具背包UI if item_bag_panel and item_bag_panel.has_method("update_item_bag_ui"): item_bag_panel.update_item_bag_ui() + # 更新宠物背包UI + if pet_bag_panel and pet_bag_panel.has_method("update_pet_bag_ui"): + pet_bag_panel.update_pet_bag_ui() + + # 初始化巡逻宠物(返回自己农场) + if has_method("init_patrol_pets"): + init_patrol_pets() + + # 更新稻草人显示(返回自己农场) + update_scare_crow_display() + + # 恢复智慧树显示(返回自己农场) + if player_data.has("智慧树配置") and player_data["智慧树配置"] != null: + var my_wisdom_config = player_data["智慧树配置"] + if my_wisdom_config is Dictionary: + my_wisdom_config = _ensure_wisdom_tree_config_format(my_wisdom_config) + # 更新本地智慧树配置 + login_data["智慧树配置"] = my_wisdom_config + # 恢复智慧树显示 + update_wisdom_tree_display() Toast.show("已返回自己的农场", Color.GREEN) - print("成功返回自己的农场") else: Toast.show("返回农场失败:" + message, Color.RED) print("返回农场失败:", message) @@ -788,25 +910,20 @@ func _update_ui(): show_like.text = "总赞数:" + str(int(my_likes)) +#===============================================这个函数也比较重要=============================================== # 处理地块点击事件 func _on_item_selected(index): - print("调试:地块点击事件 - 地块索引: ", index) - print("调试:道具选择状态 - is_item_selected: ", is_item_selected, ", selected_item_name: ", selected_item_name) - # 检查是否处于一键种植的地块选择模式 if one_click_plant_panel and one_click_plant_panel.has_method("on_lot_selected"): if one_click_plant_panel.on_lot_selected(index): - # 一键种植面板已处理了这次点击,直接返回 - print("调试:一键种植面板处理了此点击") return # 检查是否有道具被选择,如果有则使用道具 if is_item_selected and selected_item_name != "": - print("调试:检测到道具选择状态,调用道具使用函数") _use_item_on_lot(index, selected_item_name) return - print("调试:没有道具选择,打开土地面板") + # 正常模式下,先设置地块索引,再打开土地面板 land_panel.selected_lot_index = index selected_lot_index = index @@ -814,35 +931,164 @@ func _on_item_selected(index): # 更新按钮文本 if land_panel.has_method("_update_button_texts"): land_panel._update_button_texts() - -# 收获作物 -func _harvest_crop(index): - var lot = farm_lots[index] - if lot["grow_time"] >= lot["max_grow_time"]: - # 发送收获请求到服务器 - if network_manager and network_manager.sendHarvestCrop(index): - pass - else: - Toast.show("作物还未成熟", Color.RED) - -# 检查玩家是否可以升级 -func _check_level_up(): - var level_up_experience = 100 * level - if experience >= level_up_experience: - level += 1 - experience -= level_up_experience - #print("恭喜!你升到了等级 ", level) - Toast.show("恭喜!你升到了" + str(level) + "级 ", Color.SKY_BLUE) - crop_store_panel.init_store() +#===============================================这个函数也比较重要=============================================== -#===============================================作物数据处理=============================================== +#打开种子商店面板 +func _on_open_store_button_pressed() -> void: + #打开面板后暂时禁用相机功能 + GlobalVariables.isZoomDisabled = true + + # 如果处于访问模式,不允许打开商店 + if is_visiting_mode: + Toast.show("访问模式下无法使用商店", Color.ORANGE) + return + + # 确保商店面板已初始化 + crop_store_panel.init_store() + # 显示商店面板 + crop_store_panel.show() + # 确保在最前面显示 + crop_store_panel.move_to_front() + pass + +#打开玩家排行榜面板 +func _on_player_ranking_button_pressed() -> void: + #打开面板后暂时禁用相机功能 + GlobalVariables.isZoomDisabled = true + + player_ranking_panel.show() + player_ranking_panel.request_player_rankings() + pass + + +#打开设置面板 暂时没想到可以设置什么 +func _on_setting_button_pressed() -> void: + pass + +#查看全服大喇叭按钮点击事件 +func _on_watch_broadcast_button_pressed() -> void: + #打开面板后暂时禁用相机功能 + GlobalVariables.isZoomDisabled = true + + # 显示全服大喇叭面板 + global_server_broadcast_panel.show() + global_server_broadcast_panel.move_to_front() + + + +# 处理AcceptDialog的确认信号 +func _on_accept_dialog_confirmed() -> void: + var action_type = accept_dialog.get_meta("action_type", "") + + if action_type == "one_click_harvest": + # 执行一键收获逻辑 + _execute_one_click_harvest() + elif action_type == "buy_new_ground": + # 执行购买新地块逻辑 + _execute_buy_new_ground() + elif action_type == "return_main_menu": + # 执行返回主菜单逻辑 + _execute_return_main_menu() + else: + # 处理其他类型的确认逻辑 + pass + + +#打开一键种植面板 +func _on_one_click_plant_button_pressed() -> void: + # 如果处于访问模式,不允许操作 + if is_visiting_mode: + Toast.show("访问模式下无法使用一键种植", Color.ORANGE) + return + + # 检查是否有网络连接 + if not tcp_network_manager_panel.is_connected_to_server(): + Toast.show("未连接服务器,无法使用一键种植", Color.RED) + return + + # 显示一键种植面板 + one_click_plant_panel.show() + one_click_plant_panel.move_to_front() + +# 处理连接断开事件 +func _on_connection_lost(): + + # 重置游戏状态 + start_game = false + + # 隐藏所有游戏UI + game_info_h_box_1.hide() + game_info_h_box_2.hide() + farm_v_box.hide() + visit_v_box.hide() + other_v_box.hide() + + # 隐藏所有面板 + crop_store_panel.hide() + player_bag_panel.hide() + lucky_draw_panel.hide() + daily_check_in_panel.hide() + player_ranking_panel.hide() + one_click_plant_panel.hide() + global_server_broadcast_panel.hide() + land_panel.hide() + accept_dialog.hide() + + # 重置访问模式 + if is_visiting_mode: + _handle_return_my_farm_response({"success": true}) + + # 显示登录面板 + if login_panel: + login_panel.show() + + # 更新登录面板状态 + if login_panel.has_method("_on_connection_lost"): + login_panel._on_connection_lost() + + # 显示连接断开的提示 + Toast.show("与服务器的连接已断开,请重新登录", Color.ORANGE, 3.0, 1.0) + + +#==========================打开基础面板================================ +#打开种子仓库面板 +func _on_seed_warehouse_button_pressed() -> void: + player_bag_panel.show() + +#打开玩家道具背包面板 +func _on_item_bag_button_pressed() -> void: + item_bag_panel.show() + +#打开道具商店面板 +func _on_item_store_button_pressed() -> void: + item_store_panel.show() + +#打开作物仓库面板 +func _on_crop_warehouse_button_pressed() -> void: + crop_warehouse_panel.show() + +#打开宠物背包面板 +func _on_pet_bag_button_pressed() -> void: + pet_bag_panel.show() + pass + +#打开宠物商店面板 +func _on_pet_store_button_pressed() -> void: + pet_store_panel.show() + pass + + +#==========================打开基础面板================================ + + + +#===============================================初始化数据处理=============================================== # 从服务器获取作物数据 func _load_crop_data(): var network_manager = get_node("/root/main/UI/TCPNerworkManager") if network_manager and network_manager.is_connected_to_server(): # 从服务器请求作物数据 - print("正在从服务器获取作物数据...") network_manager.sendGetCropData() else: # 如果无法连接服务器,尝试加载本地数据 @@ -850,14 +1096,19 @@ func _load_crop_data(): _load_local_crop_data() # 尝试从服务器加载最新数据 +#玩家登录后在后台把服务器的配置文件通过网络覆写到本地config里面 然后也使用服务器的配置 func _try_load_from_server(): - if network_manager and network_manager.is_connected_to_server(): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): # 从服务器请求最新作物数据 print("尝试从服务器获取最新作物数据...") - network_manager.sendGetCropData() + tcp_network_manager_panel.sendGetCropData() + + # 从服务器请求最新道具配置数据 + print("尝试从服务器获取最新道具配置数据...") + tcp_network_manager_panel.sendGetItemConfig() else: - print("服务器未连接,使用当前作物数据") + print("服务器未连接,使用当前本地数据") # 处理服务器作物数据响应 func _handle_crop_data_response(response_data): @@ -901,7 +1152,7 @@ func _load_local_crop_data(): print("本地缓存作物数据JSON解析错误:", json.get_error_message()) # 如果缓存文件不存在或解析失败,加载默认数据 - file = FileAccess.open("res://Data/crop_data.json", FileAccess.READ) + file = FileAccess.open("user://crop_data.json", FileAccess.READ) if not file: print("无法读取默认作物数据文件!") return @@ -924,11 +1175,23 @@ func _refresh_ui_after_crop_data_loaded(): # 重新初始化商店和背包UI,因为现在有了作物数据 if crop_store_panel and crop_store_panel.has_method("init_store"): crop_store_panel.init_store() - print("商店已根据作物数据重新初始化") + print("种子商店已根据作物数据重新初始化") - if player_bag_panel and player_bag_panel.has_method("init_player_bag"): - player_bag_panel.init_player_bag() - print("背包已根据作物数据重新初始化") + if player_bag_panel and player_bag_panel.has_method("update_player_bag_ui"): + player_bag_panel.update_player_bag_ui() + print("种子背包已根据作物数据重新初始化") + + if crop_warehouse_panel and crop_warehouse_panel.has_method("update_crop_warehouse_ui"): + crop_warehouse_panel.update_crop_warehouse_ui() + print("作物仓库已根据作物数据重新初始化") + + if item_bag_panel and item_bag_panel.has_method("update_item_bag_ui"): + item_bag_panel.update_item_bag_ui() + print("道具背包已根据作物数据重新初始化") + + if item_store_panel and item_store_panel.has_method("init_item_store"): + item_store_panel.init_item_store() + print("道具商店已根据作物数据重新初始化") # 保存作物数据到本地文件 func _save_crop_data_to_local(crop_data): @@ -942,33 +1205,177 @@ func _save_crop_data_to_local(crop_data): file.close() print("作物数据已保存到本地缓存") -#===============================================作物数据处理=============================================== +# 保存道具配置数据到本地文件 +func _save_item_config_to_local(config_data): + var file = FileAccess.open("user://item_config.json", FileAccess.WRITE) + if not file: + print("无法创建本地道具配置缓存文件!") + return + + var json_string = JSON.stringify(config_data, "\t") + file.store_string(json_string) + file.close() + print("道具配置数据已保存到本地缓存") + +# 从本地文件加载道具配置数据(备用方案) +func _load_local_item_config(): + # 优先尝试加载用户目录下的缓存文件 + var file = FileAccess.open("user://item_config.json", FileAccess.READ) + if file: + var json_text = file.get_as_text() + file.close() + + var json = JSON.new() + var parse_result = json.parse(json_text) + if parse_result == OK: + item_config_data = json.get_data() + print("已加载本地缓存的道具配置数据") + _refresh_ui_after_item_config_loaded() + return + else: + print("本地缓存道具配置数据JSON解析错误:", json.get_error_message()) + + # 如果缓存文件不存在或解析失败,加载默认数据 + file = FileAccess.open("user://item_config.json", FileAccess.READ) + if not file: + print("无法读取默认道具配置文件!") + return + + var json_text = file.get_as_text() + file.close() + + var json = JSON.new() + var parse_result = json.parse(json_text) + if parse_result != OK: + print("默认道具配置数据JSON解析错误:", json.get_error_message()) + return + + item_config_data = json.get_data() + print("已加载默认道具配置数据") + _refresh_ui_after_item_config_loaded() + +# 道具配置数据加载后刷新UI +func _refresh_ui_after_item_config_loaded(): + # 重新初始化道具相关UI + if item_store_panel and item_store_panel.has_method("init_item_store"): + item_store_panel.init_item_store() + print("道具商店已根据道具配置数据重新初始化") + + if item_bag_panel and item_bag_panel.has_method("update_item_bag_ui"): + item_bag_panel.update_item_bag_ui() + print("道具背包已根据道具配置数据重新初始化") + +# 处理服务器道具配置响应 +func _handle_item_config_response(response_data): + var success = response_data.get("success", false) + + if success: + var config_data = response_data.get("item_config", {}) + if config_data: + # 保存到本地文件 + _save_item_config_to_local(config_data) + # 设置全局变量 + item_config_data = config_data + print("道具配置数据已从服务器更新,道具种类:", item_config_data.size()) + + # 重新初始化道具相关UI + _refresh_ui_after_item_config_loaded() + else: + print("服务器返回的道具配置数据为空") + _load_local_item_config() + else: + var message = response_data.get("message", "未知错误") + print("从服务器获取道具配置数据失败:", message) + _load_local_item_config() + +#===============================================初始化数据处理=============================================== #===============================================作物图片缓存系统=============================================== -## 作物图片缓存和管理系统 +## 优化的作物图片缓存和管理系统 class CropTextureManager: - """作物图片缓存管理器 - 负责所有作物图片的加载、缓存和管理""" # 缓存字典 var texture_cache: Dictionary = {} # 序列帧缓存 {crop_name: [Texture2D]} var mature_texture_cache: Dictionary = {} # 成熟图片缓存 {crop_name: Texture2D} var frame_counts: Dictionary = {} # 帧数记录 {crop_name: int} + var failed_resources: Array = [] # 记录加载失败的资源路径 # 加载状态 var is_loading: bool = false var load_progress: float = 0.0 var total_crops: int = 0 var loaded_crops: int = 0 + var failed_crops: int = 0 + + # 线程管理 + var worker_threads: Array = [] + var max_threads: int = 4 # 最大线程数 + var loading_queue: Array = [] + var loading_mutex: Mutex + var results_mutex: Mutex + var completed_results: Array = [] + + # 调试面板引用 + var debug_panel_ref = null + + # 内存管理 + var max_cache_size: int = 200 # 最大缓存图片数量 + var cache_access_order: Array = [] # LRU缓存访问顺序 func _init(): - print("[CropTextureManager] 初始化作物图片管理器") + print("[CropTextureManager] 初始化优化的作物图片管理器") + loading_mutex = Mutex.new() + results_mutex = Mutex.new() + # 根据设备性能动态调整线程数 + _adjust_thread_count() + # 尝试获取调试面板引用 + _connect_debug_panel() + + ## 根据设备性能调整线程数 + func _adjust_thread_count(): + var platform = OS.get_name() + var processor_count = OS.get_processor_count() + + match platform: + "Android", "iOS": + # 移动设备使用较少线程,避免过热和电量消耗 + max_threads = min(2, max(1, processor_count / 2)) + "Windows", "Linux", "macOS": + # 桌面设备可以使用更多线程 + max_threads = min(6, max(2, processor_count - 1)) + _: + max_threads = 2 + + print("[CropTextureManager] 设备: %s, CPU核心: %d, 使用线程数: %d" % [platform, processor_count, max_threads]) + + ## 连接调试面板 + func _connect_debug_panel(): + # 延迟获取调试面板引用,因为初始化时可能还未创建 + call_deferred("_try_get_debug_panel") + + ## 尝试获取调试面板引用 + func _try_get_debug_panel(): + var main_node = Engine.get_main_loop().current_scene + if main_node: + debug_panel_ref = main_node.get_node_or_null("UI/SmallPanel/DebugPanel") + if debug_panel_ref: + print("[CropTextureManager] 已连接到调试面板") + + ## 向调试面板发送消息 + func _send_debug_message(message: String, color: Color = Color.WHITE): + if debug_panel_ref and debug_panel_ref.has_method("add_debug_message"): + debug_panel_ref.add_debug_message(message, color) + + ## 设置当前加载项目 + func _set_current_loading_item(item_name: String): + if debug_panel_ref and debug_panel_ref.has_method("set_current_loading_item"): + debug_panel_ref.set_current_loading_item(item_name) ## 异步预加载所有作物图片 - 主要入口函数 func preload_all_textures_async(crop_data: Dictionary, progress_callback: Callable) -> void: - """异步预加载所有作物图片,提供进度回调""" if is_loading: print("[CropTextureManager] 正在加载中,跳过重复请求") return @@ -977,52 +1384,232 @@ class CropTextureManager: load_progress = 0.0 total_crops = crop_data.size() loaded_crops = 0 + failed_crops = 0 + failed_resources.clear() + completed_results.clear() - print("[CropTextureManager] 开始异步预加载 %d 种作物图片" % total_crops) + print("[CropTextureManager] 开始预加载 %d 种作物图片" % total_crops) + _send_debug_message("开始预加载 %d 种作物图片" % total_crops, Color.CYAN) # 阶段1:加载默认图片 (0-10%) progress_callback.call(0, "正在加载默认图片...") + _send_debug_message("阶段1: 加载默认图片", Color.YELLOW) await _load_default_textures_async() progress_callback.call(10, "默认图片加载完成") + _send_debug_message("默认图片加载完成", Color.GREEN) - # 阶段2:批量加载作物图片 (10-90%) - await _load_crops_batch_async(crop_data, progress_callback) + # 阶段2:多线程批量加载作物图片 (10-90%) + _send_debug_message("阶段2: 多线程加载作物图片", Color.YELLOW) + await _load_crops_multithreaded_async(crop_data, progress_callback) # 阶段3:完成 (90-100%) progress_callback.call(100, "所有作物图片加载完成!") _print_cache_stats() + _send_debug_message("所有作物图片加载完成!", Color.GREEN) + + # 清理线程 + await _cleanup_threads() is_loading = false - print("[CropTextureManager] 预加载完成") + var success_message = "预加载完成,成功: %d, 失败: %d" % [loaded_crops, failed_crops] + print("[CropTextureManager] " + success_message) + _send_debug_message(success_message, Color.CYAN) - ## 批量异步加载作物图片 - func _load_crops_batch_async(crop_data: Dictionary, progress_callback: Callable) -> void: - """批量异步加载作物图片,每帧加载有限数量避免卡顿""" - const BATCH_SIZE = 3 # 每帧最多加载3种作物 + ## 多线程批量异步加载作物图片 + func _load_crops_multithreaded_async(crop_data: Dictionary, progress_callback: Callable) -> void: var crop_names = crop_data.keys() - var batch_count = 0 + # 准备加载队列 + loading_mutex.lock() + loading_queue.clear() for crop_name in crop_names: - # 加载序列帧和成熟图片 - _load_crop_textures_immediate(crop_name) - _load_mature_texture_immediate(crop_name) + loading_queue.append({ + "crop_name": crop_name, + "type": "sequence" + }) + loading_queue.append({ + "crop_name": crop_name, + "type": "mature" + }) + loading_mutex.unlock() + + # 启动工作线程 + _send_debug_message("启动 %d 个工作线程" % max_threads, Color.CYAN) + for i in range(max_threads): + var thread = Thread.new() + worker_threads.append(thread) + thread.start(_worker_thread_function) + + # 监控进度 + var total_tasks = loading_queue.size() + var last_completed = 0 + + while true: + # 处理完成的结果 + results_mutex.lock() + var current_results = completed_results.duplicate() + completed_results.clear() + results_mutex.unlock() - loaded_crops += 1 - batch_count += 1 + # 应用加载结果 + for result in current_results: + _apply_loading_result(result) + loaded_crops += 1 - # 更新进度 (10% 到 90% 区间) - var progress = 10 + int((float(loaded_crops) / float(total_crops)) * 80) - var message = "加载作物图片: %s (%d/%d)" % [crop_name, loaded_crops, total_crops] - progress_callback.call(progress, message) + # 更新进度 + var completed_tasks = total_tasks - loading_queue.size() + if completed_tasks != last_completed: + var progress = 10 + int((float(completed_tasks) / float(total_tasks)) * 80) + var message = "多线程加载中... (%d/%d)" % [completed_tasks, total_tasks] + progress_callback.call(progress, message) + last_completed = completed_tasks - # 每批次后暂停一帧,避免卡顿 - if batch_count >= BATCH_SIZE: - batch_count = 0 - await Engine.get_main_loop().process_frame + # 检查是否完成 + loading_mutex.lock() + var queue_empty = loading_queue.is_empty() + loading_mutex.unlock() + + if queue_empty and completed_results.is_empty(): + break + + # 短暂等待 + await Engine.get_main_loop().process_frame - ## 立即加载默认图片(同步) + ## 工作线程函数 + func _worker_thread_function(): + while true: + # 获取任务 + loading_mutex.lock() + if loading_queue.is_empty(): + loading_mutex.unlock() + break + + var task = loading_queue.pop_front() + loading_mutex.unlock() + + # 执行加载任务 + var result = _load_texture_task(task) + + # 存储结果 + results_mutex.lock() + completed_results.append(result) + results_mutex.unlock() + + ## 执行单个纹理加载任务 + func _load_texture_task(task: Dictionary) -> Dictionary: + var crop_name = task["crop_name"] + var task_type = task["type"] + var result = { + "crop_name": crop_name, + "type": task_type, + "success": false, + "textures": [], + "texture": null, + "error": "" + } + + if task_type == "sequence": + result["textures"] = _load_crop_textures_threadsafe(crop_name) + result["success"] = result["textures"].size() > 0 + elif task_type == "mature": + result["texture"] = _load_mature_texture_threadsafe(crop_name) + result["success"] = result["texture"] != null + + # 检查加载是否成功 + if not result["success"]: + result["error"] = "加载失败: " + crop_name + failed_resources.append(crop_name) + + return result + + ## 线程安全的作物序列帧加载 + func _load_crop_textures_threadsafe(crop_name: String) -> Array: + var textures = [] + var crop_path = "res://assets/作物/" + crop_name + "/" + + # 检查作物文件夹是否存在 + if not DirAccess.dir_exists_absolute(crop_path): + return [] + + # 使用ResourceLoader.load_threaded_request进行异步加载 + var frame_index = 0 + var max_frames = 20 # 限制最大帧数,避免无限循环 + + while frame_index < max_frames: + var texture_path = crop_path + str(frame_index) + ".webp" + + if not ResourceLoader.exists(texture_path): + break + + # 使用线程安全的资源加载 + var texture = _load_resource_safe(texture_path) + if texture: + textures.append(texture) + frame_index += 1 + else: + break + + return textures + + ## 线程安全的成熟图片加载 + func _load_mature_texture_threadsafe(crop_name: String) -> Texture2D: + var crop_path = "res://assets/作物/" + crop_name + "/" + var mature_path = crop_path + "成熟.webp" + + if ResourceLoader.exists(mature_path): + return _load_resource_safe(mature_path) + + return null + + ## 安全的资源加载函数,带错误处理 + func _load_resource_safe(path: String) -> Resource: + if not ResourceLoader.exists(path): + return null + + # 使用ResourceLoader.load,它在Godot 4中是线程安全的 + var resource = ResourceLoader.load(path, "Texture2D") + + # 验证资源 + if resource and resource is Texture2D: + return resource + else: + if resource == null: + print("[错误] 加载资源失败: ", path) + failed_resources.append(path) + else: + print("[警告] 资源类型不匹配: ", path) + return null + + ## 应用加载结果到缓存 + func _apply_loading_result(result: Dictionary): + var crop_name = result["crop_name"] + var task_type = result["type"] + var success = result["success"] + + if not success: + var error_msg = "加载失败: %s (%s)" % [crop_name, task_type] + _send_debug_message(error_msg, Color.RED) + return + + if task_type == "sequence": + var textures = result["textures"] + if textures.size() > 0: + texture_cache[crop_name] = textures + frame_counts[crop_name] = textures.size() + _update_cache_access(crop_name) + _send_debug_message("✓ %s: %d帧" % [crop_name, textures.size()], Color.GREEN) + elif task_type == "mature": + var texture = result["texture"] + if texture: + mature_texture_cache[crop_name] = texture + _update_cache_access(crop_name + "_mature") + _send_debug_message("✓ %s: 成熟图片" % crop_name, Color.GREEN) + + # 检查缓存大小,必要时清理 + _check_and_cleanup_cache() + + ## 立即加载默认图片(同步,但优化) func _load_default_textures_async() -> void: - """异步加载默认图片""" const DEFAULT_CROP = "默认" const DEFAULT_PATH = "res://assets/作物/默认/" @@ -1032,11 +1619,11 @@ class CropTextureManager: var textures = [] var frame_index = 0 - # 加载序列帧 - while true: + # 限制默认图片帧数 + while frame_index < 10: var texture_path = DEFAULT_PATH + str(frame_index) + ".webp" if ResourceLoader.exists(texture_path): - var texture = load(texture_path) + var texture = _load_resource_safe(texture_path) if texture: textures.append(texture) frame_index += 1 @@ -1049,18 +1636,19 @@ class CropTextureManager: if textures.size() == 0: var single_path = DEFAULT_PATH + "0.webp" if ResourceLoader.exists(single_path): - var texture = load(single_path) + var texture = _load_resource_safe(single_path) if texture: textures.append(texture) # 缓存结果 - texture_cache[DEFAULT_CROP] = textures - frame_counts[DEFAULT_CROP] = textures.size() + if textures.size() > 0: + texture_cache[DEFAULT_CROP] = textures + frame_counts[DEFAULT_CROP] = textures.size() # 加载默认成熟图片 var mature_path = DEFAULT_PATH + "成熟.webp" if ResourceLoader.exists(mature_path): - var mature_texture = load(mature_path) + var mature_texture = _load_resource_safe(mature_path) if mature_texture: mature_texture_cache[DEFAULT_CROP] = mature_texture @@ -1069,81 +1657,61 @@ class CropTextureManager: # 让出一帧 await Engine.get_main_loop().process_frame - ## 立即加载单个作物的序列帧图片 - func _load_crop_textures_immediate(crop_name: String) -> Array: - """立即加载指定作物的序列帧图片""" - if texture_cache.has(crop_name): - return texture_cache[crop_name] + ## 更新缓存访问顺序(LRU) + func _update_cache_access(key: String): + if key in cache_access_order: + cache_access_order.erase(key) + cache_access_order.append(key) + + ## 检查并清理缓存 + func _check_and_cleanup_cache(): + var total_cached = texture_cache.size() + mature_texture_cache.size() - var textures = [] - var crop_path = "res://assets/作物/" + crop_name + "/" - - # 检查作物文件夹是否存在 - if not DirAccess.dir_exists_absolute(crop_path): - # 文件夹不存在,使用默认图片 - textures = texture_cache.get("默认", []) - else: - # 加载序列帧 - var frame_index = 0 - while true: - var texture_path = crop_path + str(frame_index) + ".webp" - if ResourceLoader.exists(texture_path): - var texture = load(texture_path) - if texture: - textures.append(texture) - frame_index += 1 - else: - break - else: - break + if total_cached > max_cache_size: + var to_remove = total_cached - max_cache_size + 10 # 多清理一些 + _send_debug_message("⚠ 缓存超限,开始清理 %d 个项目" % to_remove, Color.ORANGE) - # 如果没找到图片,使用默认图片 - if textures.size() == 0: - textures = texture_cache.get("默认", []) - - # 缓存结果 - texture_cache[crop_name] = textures - frame_counts[crop_name] = textures.size() - - return textures + for i in range(min(to_remove, cache_access_order.size())): + var key = cache_access_order[i] + + # 不清理默认图片 + if key.begins_with("默认"): + continue + + if key.ends_with("_mature"): + var crop_name = key.replace("_mature", "") + mature_texture_cache.erase(crop_name) + else: + texture_cache.erase(key) + frame_counts.erase(key) + + # 更新访问顺序 + cache_access_order = cache_access_order.slice(to_remove) + + var current_size = texture_cache.size() + mature_texture_cache.size() + var cleanup_msg = "缓存清理完成,当前缓存: %d" % current_size + print("[CropTextureManager] " + cleanup_msg) + _send_debug_message(cleanup_msg, Color.YELLOW) - ## 立即加载单个作物的成熟图片 - func _load_mature_texture_immediate(crop_name: String) -> Texture2D: - """立即加载指定作物的成熟图片""" - if mature_texture_cache.has(crop_name): - return mature_texture_cache[crop_name] - - var crop_path = "res://assets/作物/" + crop_name + "/" - var mature_path = crop_path + "成熟.webp" - var texture: Texture2D = null - - # 尝试加载作物专属成熟图片 - if ResourceLoader.exists(mature_path): - texture = load(mature_path) - - # 如果没找到,使用默认成熟图片 - if not texture: - texture = mature_texture_cache.get("默认", null) - - # 缓存结果 - if texture: - mature_texture_cache[crop_name] = texture - - return texture - - ## 根据生长进度获取作物图片 + ## 根据生长进度获取作物图片(带缓存优化) func get_texture_by_progress(crop_name: String, progress: float) -> Texture2D: - """根据作物名称和生长进度获取对应的图片""" + # 更新访问记录 + _update_cache_access(crop_name) + # 100%成熟时优先使用成熟图片 if progress >= 1.0: var mature_texture = mature_texture_cache.get(crop_name, null) if mature_texture: + _update_cache_access(crop_name + "_mature") return mature_texture # 使用序列帧图片 var textures = texture_cache.get(crop_name, []) if textures.size() == 0: - return null + # 如果没有缓存,尝试使用默认图片 + textures = texture_cache.get("默认", []) + if textures.size() == 0: + return null if textures.size() == 1: return textures[0] @@ -1154,28 +1722,42 @@ class CropTextureManager: return textures[frame_index] + ## 清理线程 + func _cleanup_threads() -> void: + for thread in worker_threads: + if thread.is_started(): + thread.wait_to_finish() + worker_threads.clear() + print("[CropTextureManager] 工作线程已清理") + ## 清理缓存 func clear_cache() -> void: - """清理所有缓存,释放内存""" + await _cleanup_threads() texture_cache.clear() mature_texture_cache.clear() frame_counts.clear() + cache_access_order.clear() + failed_resources.clear() print("[CropTextureManager] 缓存已清理") ## 打印缓存统计信息 func _print_cache_stats() -> void: - """打印缓存统计信息""" print("[CropTextureManager] 缓存统计:") print(" - 序列帧缓存: %d 种作物" % texture_cache.size()) print(" - 成熟图片缓存: %d 种作物" % mature_texture_cache.size()) + print(" - 加载失败: %d 个资源" % failed_resources.size()) var total_frames = 0 for count in frame_counts.values(): total_frames += count print(" - 总图片帧数: %d 帧" % total_frames) + + if failed_resources.size() > 0: + print(" - 失败的资源:") + for failed in failed_resources: + print(" * ", failed) ## 获取详细缓存信息 func get_cache_info() -> String: - """获取详细的缓存信息字符串""" var info = "作物图片缓存详情:\n" for crop_name in texture_cache.keys(): var frame_count = frame_counts.get(crop_name, 0) @@ -1184,11 +1766,43 @@ class CropTextureManager: if has_mature: info += " (含成熟图片)" info += "\n" + + if failed_resources.size() > 0: + info += "\n加载失败的资源:\n" + for failed in failed_resources: + info += " - " + failed + "\n" + return info + + ## 预热常用作物(可选优化) + func preheat_common_crops(common_crops: Array) -> void: + print("[CropTextureManager] 预热常用作物: ", common_crops.size(), " 种") + for crop_name in common_crops: + # 确保常用作物在缓存中 + if not texture_cache.has(crop_name): + var textures = _load_crop_textures_threadsafe(crop_name) + if textures.size() > 0: + texture_cache[crop_name] = textures + frame_counts[crop_name] = textures.size() + + if not mature_texture_cache.has(crop_name): + var mature = _load_mature_texture_threadsafe(crop_name) + if mature: + mature_texture_cache[crop_name] = mature # 全局作物图片管理器实例 var crop_texture_manager: CropTextureManager +# 资源加载调试器(可选,用于调试) +var resource_debugger = null + +# 调试面板脚本引用 +var debug_panel_script = null + +#===============================================作物图片缓存系统=============================================== + + + #===============================================作物图片更新=============================================== ## 更新单个地块的作物图片显示(直接切换) @@ -1224,8 +1838,6 @@ func _update_lot_crop_sprite(button: Button, lot_data: Dictionary) -> void: else: crop_sprite.visible = false - - ## 批量刷新所有地块的作物图片 func _refresh_all_crop_sprites() -> void: for i in range(min(farm_lots.size(), grid_container.get_child_count())): @@ -1239,7 +1851,6 @@ func _refresh_all_crop_sprites() -> void: ## 更新加载进度显示 func _update_load_progress(progress: int, message: String = "") -> void: - """更新加载进度条和提示信息""" load_progress_bar.value = progress # 更新消息显示 @@ -1247,13 +1858,38 @@ func _update_load_progress(progress: int, message: String = "") -> void: if message_label and message != "": message_label.text = message + # 向调试面板发送进度信息 + if debug_panel_script and debug_panel_script.has_method("add_debug_message"): + if message != "": + debug_panel_script.add_debug_message("进度 %d%%: %s" % [progress, message], Color.CYAN) + + # 检测卡顿 + _check_loading_stuck(progress) + if message != "": print("[加载进度] %d%% - %s" % [progress, message]) +# 上一次进度更新的时间和进度值 +var last_progress_time: float = 0.0 +var last_progress_value: int = 0 + +## 检测加载卡顿 +func _check_loading_stuck(progress: int): + var current_time = Time.get_ticks_msec() / 1000.0 + + # 如果进度没有变化 + if progress == last_progress_value: + var stuck_time = current_time - last_progress_time + if stuck_time > 5.0: # 5秒没有进度变化 + if debug_panel_script and debug_panel_script.has_method("add_debug_message"): + debug_panel_script.add_debug_message("⚠ 加载卡顿检测: 在 %d%% 停留了 %.1f 秒" % [progress, stuck_time], Color.ORANGE) + else: + # 进度有变化,更新记录 + last_progress_value = progress + last_progress_time = current_time + ## 主预加载函数 - 游戏启动时调用 func _preload_all_crop_textures() -> void: - """预加载所有作物图片的主函数""" - print("[主游戏] 开始预加载作物图片...") # 初始化管理器 if not crop_texture_manager: @@ -1276,7 +1912,6 @@ func _preload_all_crop_textures() -> void: ## 等待作物数据加载完成 func _wait_for_crop_data() -> void: - """等待作物数据加载完成""" const MAX_WAIT_TIME = 5.0 var wait_time = 0.0 @@ -1289,38 +1924,14 @@ func _wait_for_crop_data() -> void: print("[警告] 作物数据未加载,跳过图片预加载") else: print("[主游戏] 作物数据加载完成,共 %d 种作物" % can_planted_crop.size()) +#===============================================加载进度管理============================================ + + #===============================================调试和维护工具=============================================== -## 调试:测试直接切换图片 -func _debug_test_direct_switch(lot_index: int = 0) -> void: - """调试用:测试指定地块的直接图片切换""" - if lot_index >= 0 and lot_index < grid_container.get_child_count(): - var button = grid_container.get_child(lot_index) - var crop_sprite = button.get_node_or_null("crop_sprite") - if crop_sprite and crop_texture_manager: - # 随机选择一个作物图片进行测试 - var crop_names = can_planted_crop.keys() - if crop_names.size() > 0: - var random_crop = crop_names[randi() % crop_names.size()] - var test_texture = crop_texture_manager.get_texture_by_progress(random_crop, 1.0) - if test_texture: - print("[调试] 测试地块 ", lot_index, " 的直接图片切换,使用作物:", random_crop) - crop_sprite.texture = test_texture - crop_sprite.modulate = Color.WHITE - crop_sprite.visible = true - else: - print("[调试] 无法获取测试贴图") - else: - print("[调试] 作物数据为空") - else: - print("[调试] 无法找到crop_sprite或图片管理器未初始化") - else: - print("[调试] 地块索引无效:", lot_index) - ## 调试:打印缓存信息 func _debug_print_crop_cache() -> void: - """调试用:打印当前作物图片缓存信息""" if crop_texture_manager: print(crop_texture_manager.get_cache_info()) else: @@ -1328,25 +1939,97 @@ func _debug_print_crop_cache() -> void: ## 调试:强制刷新所有图片 func _debug_refresh_all_crop_sprites() -> void: - """调试用:强制刷新所有地块的作物图片""" print("[调试] 强制刷新所有地块图片...") _refresh_all_crop_sprites() print("[调试] 图片刷新完成") ## 调试:清理图片缓存 func _debug_clear_crop_cache() -> void: - """调试用:清理作物图片缓存""" if crop_texture_manager: crop_texture_manager.clear_cache() print("[调试] 图片缓存已清理") -#===============================================向后兼容性=============================================== +## 调试:启用资源加载调试器 +func _debug_enable_resource_debugger() -> void: + if not resource_debugger: + resource_debugger = preload("res://GlobalScript/ResourceLoadingDebugger.gd").new() + add_child(resource_debugger) + print("[调试] 资源加载调试器已启用") + else: + print("[调试] 资源加载调试器已经在运行") +## 调试:生成资源加载报告 +func _debug_generate_loading_report() -> void: + if resource_debugger: + var report = resource_debugger.generate_loading_report() + print(report) + resource_debugger.export_debug_data_to_file() + else: + print("[调试] 资源加载调试器未启用,请先调用 _debug_enable_resource_debugger()") + +## 调试:检测设备能力 +func _debug_detect_device_capabilities() -> void: + if resource_debugger: + var capabilities = resource_debugger.detect_device_capabilities() + print("[调试] 设备能力检测结果:") + for key in capabilities: + print(" %s: %s" % [key, str(capabilities[key])]) + else: + print("[调试] 资源加载调试器未启用") + +## 调试:强制触发低内存模式 +func _debug_trigger_low_memory_mode() -> void: + if crop_texture_manager: + # 临时降低缓存大小来模拟低内存环境 + crop_texture_manager.max_cache_size = 50 + crop_texture_manager._check_and_cleanup_cache() + print("[调试] 已触发低内存模式,缓存大小限制为50") + +## 调试:恢复正常内存模式 +func _debug_restore_normal_memory_mode() -> void: + if crop_texture_manager: + crop_texture_manager.max_cache_size = 200 + print("[调试] 已恢复正常内存模式,缓存大小限制为200") + +## 在加载进度面板上添加调试按钮 +func _add_debug_button_to_loading_panel(): + # 创建调试按钮 + var debug_button = Button.new() + debug_button.text = "调试信息" + debug_button.size_flags_horizontal = Control.SIZE_SHRINK_CENTER + debug_button.position = Vector2(10, 500) # 左下角位置 + debug_button.size = Vector2(120, 40) + + # 设置按钮样式 + debug_button.modulate = Color(0.8, 0.8, 1.0, 0.9) # 半透明蓝色 + + # 连接点击信号 + debug_button.pressed.connect(_on_debug_button_pressed) + + # 添加到加载进度面板 + load_progress_panel.add_child(debug_button) + + print("[MainGame] 调试按钮已添加到加载进度面板") + +## 调试按钮点击处理 +func _on_debug_button_pressed(): + if debug_panel.visible: + debug_panel.hide() + else: + debug_panel.show() + debug_panel.move_to_front() + print("[MainGame] 调试面板切换显示状态") + +#===============================================调试和维护工具=============================================== + + + +#===============================================向后兼容性=============================================== # 为了保持向后兼容,保留一些原来的函数名 func _load_crop_textures(crop_name: String) -> Array: """向后兼容:加载作物图片序列帧""" if crop_texture_manager: - return crop_texture_manager._load_crop_textures_immediate(crop_name) + return crop_texture_manager._load_crop_textures_threadsafe(crop_name) return [] func _get_crop_texture_by_progress(crop_name: String, progress: float) -> Texture2D: @@ -1365,8 +2048,9 @@ func _get_crop_cache_info() -> String: if crop_texture_manager: return crop_texture_manager.get_cache_info() return "图片管理器未初始化" +#===============================================向后兼容性=============================================== + -#===============================================作物图片处理结束=============================================== @@ -1386,8 +2070,8 @@ func return_to_my_farm(): return # 发送返回自己农场的请求到服务器 - if network_manager and network_manager.has_method("sendReturnMyFarm"): - var success = network_manager.sendReturnMyFarm() + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendReturnMyFarm"): + var success = tcp_network_manager_panel.sendReturnMyFarm() if success: print("已发送返回自己农场的请求") else: @@ -1404,148 +2088,6 @@ func return_to_my_farm(): -#打开种子商店面板 -func _on_open_store_button_pressed() -> void: - #打开面板后暂时禁用相机功能 - GlobalVariables.isZoomDisabled = true - - # 如果处于访问模式,不允许打开商店 - if is_visiting_mode: - Toast.show("访问模式下无法使用商店", Color.ORANGE) - return - - # 确保商店面板已初始化 - crop_store_panel.init_store() - # 显示商店面板 - crop_store_panel.show() - # 确保在最前面显示 - crop_store_panel.move_to_front() - pass - -#打开玩家排行榜面板 -func _on_player_ranking_button_pressed() -> void: - #打开面板后暂时禁用相机功能 - GlobalVariables.isZoomDisabled = true - - player_ranking_panel.show() - player_ranking_panel.request_player_rankings() - pass - - -#打开设置面板 暂时没想到可以设置什么 -func _on_setting_button_pressed() -> void: - pass - - -#打开我的宠物系统,这个比较复杂以后再实现 -func _on_my_pet_button_pressed() -> void: - pass - - -# 处理AcceptDialog的确认信号 -func _on_accept_dialog_confirmed() -> void: - var action_type = accept_dialog.get_meta("action_type", "") - - if action_type == "one_click_harvest": - # 执行一键收获逻辑 - _execute_one_click_harvest() - elif action_type == "buy_new_ground": - # 执行购买新地块逻辑 - _execute_buy_new_ground() - elif action_type == "return_main_menu": - # 执行返回主菜单逻辑 - _execute_return_main_menu() - else: - # 处理其他类型的确认逻辑 - pass - - -#打开一键种植面板 -func _on_one_click_plant_button_pressed() -> void: - # 如果处于访问模式,不允许操作 - if is_visiting_mode: - Toast.show("访问模式下无法使用一键种植", Color.ORANGE) - return - - # 检查是否有网络连接 - if not network_manager.is_connected_to_server(): - Toast.show("未连接服务器,无法使用一键种植", Color.RED) - return - - # 显示一键种植面板 - one_click_plant_panel.show() - one_click_plant_panel.move_to_front() - -# 处理连接断开事件 -func _on_connection_lost(): - - # 重置游戏状态 - start_game = false - - # 隐藏所有游戏UI - game_info_h_box_1.hide() - game_info_h_box_2.hide() - farm_v_box.hide() - visit_v_box.hide() - other_v_box.hide() - - # 隐藏所有面板 - crop_store_panel.hide() - player_bag_panel.hide() - lucky_draw_panel.hide() - daily_check_in_panel.hide() - player_ranking_panel.hide() - one_click_plant_panel.hide() - land_panel.hide() - accept_dialog.hide() - - # 重置访问模式 - if is_visiting_mode: - _handle_return_my_farm_response({"success": true}) - - # 显示登录面板 - if login_panel: - login_panel.show() - - # 更新登录面板状态 - if login_panel.has_method("_on_connection_lost"): - login_panel._on_connection_lost() - - # 显示连接断开的提示 - Toast.show("与服务器的连接已断开,请重新登录", Color.ORANGE, 3.0, 1.0) - -#打开种子仓库面板 -func _on_seed_warehouse_button_pressed() -> void: - #打开面板后暂时禁用相机功能 - GlobalVariables.isZoomDisabled = true - player_bag_panel.show() - pass - - -#打开玩家道具背包面板 -func _on_item_bag_button_pressed() -> void: - item_bag_panel.show() - pass - -#打开道具商店面板 -func _on_item_store_button_pressed() -> void: - item_store_panel.show() - pass - -#打开作物仓库面板 -func _on_crop_warehouse_button_pressed() -> void: - crop_warehouse_panel.show() - pass - - - - - - - - - - #===============================================添加新地块处理=============================================== #添加新的地块,默认花费2000 func _on_add_new_ground_button_pressed() -> void: @@ -1555,7 +2097,7 @@ func _on_add_new_ground_button_pressed() -> void: return # 检查是否有网络连接 - if not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel.is_connected_to_server(): Toast.show("未连接服务器,无法购买新地块", Color.RED) return @@ -1584,8 +2126,8 @@ func _execute_buy_new_ground(): var new_ground_cost = 2000 # 发送购买新地块请求到服务器 - if network_manager and network_manager.has_method("sendBuyNewGround"): - var success = network_manager.sendBuyNewGround() + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendBuyNewGround"): + var success = tcp_network_manager_panel.sendBuyNewGround() if success: print("已发送购买新地块请求") else: @@ -1663,7 +2205,7 @@ func _on_one_click_harvestbutton_pressed() -> void: return # 检查是否有网络连接 - if not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel.is_connected_to_server(): Toast.show("未连接服务器,无法使用一键收获", Color.RED) return @@ -1710,7 +2252,7 @@ func _execute_one_click_harvest(): if lot["grow_time"] >= lot["max_grow_time"]: harvested_count += 1 # 发送收获请求到服务器 - if network_manager and network_manager.sendHarvestCrop(i): + if tcp_network_manager_panel and tcp_network_manager_panel.sendHarvestCrop(i): success_count += 1 # 添加小延迟避免服务器压力过大 await get_tree().create_timer(0.3).timeout @@ -1743,8 +2285,8 @@ func _on_return_main_menu_button_pressed() -> void: # 执行返回主菜单逻辑 func _execute_return_main_menu(): # 断开与服务器的连接 - if network_manager and network_manager.is_connected_to_server(): - network_manager.client.disconnect_from_server() + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + tcp_network_manager_panel.client.disconnect_from_server() print("已断开与服务器的连接") # 直接切换到主菜单场景 @@ -1844,7 +2386,7 @@ func _on_like_button_pressed() -> void: return # 检查是否有网络连接 - if not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel.is_connected_to_server(): Toast.show("未连接服务器,无法点赞", Color.RED) return @@ -1855,8 +2397,8 @@ func _on_like_button_pressed() -> void: return # 发送点赞请求 - if network_manager and network_manager.has_method("sendLikePlayer"): - var success = network_manager.sendLikePlayer(target_username) + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendLikePlayer"): + var success = tcp_network_manager_panel.sendLikePlayer(target_username) if success: print("已发送点赞请求给玩家:", target_username) else: @@ -1908,8 +2450,8 @@ func _start_online_players_timer(): # 请求在线人数 func _request_online_players(): - if network_manager and network_manager.is_connected_to_server(): - var success = network_manager.sendGetOnlinePlayers() + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + var success = tcp_network_manager_panel.sendGetOnlinePlayers() if success: print("已发送在线人数请求") else: @@ -1951,12 +2493,12 @@ func _update_online_players_display(count: int, connected: bool, connecting: boo #新手玩家大礼包按钮点击,只能领取一次,领取后这个按钮对该账号永久隐藏 func _on_new_player_gift_button_pressed() -> void: # 检查网络连接 - if not network_manager or not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel or not tcp_network_manager_panel.is_connected_to_server(): Toast.show("网络未连接,无法领取新手大礼包", Color.RED, 2.0, 1.0) return # 显示确认对话框 - var confirm_dialog = preload("res://GUI/AcceptDialog.gd").new() + var confirm_dialog = preload("res://Script/Dialog/AcceptDialog.gd").new() add_child(confirm_dialog) confirm_dialog.set_dialog_title("领取新手大礼包") @@ -1973,7 +2515,7 @@ func _on_new_player_gift_button_pressed() -> void: #确认领取新手大礼包 func _on_confirm_claim_new_player_gift(): - if network_manager and network_manager.sendClaimNewPlayerGift(): + if tcp_network_manager_panel and tcp_network_manager_panel.sendClaimNewPlayerGift(): pass else: Toast.show("发送请求失败", Color.RED, 2.0, 1.0) @@ -2003,6 +2545,8 @@ func _handle_new_player_gift_response(data): _fix_player_bag_data() if updated_data.has("new_player_gift_claimed"): new_player_gift_claimed = updated_data["new_player_gift_claimed"] + if updated_data.has("宠物背包"): + pet_bag = updated_data["宠物背包"] # 隐藏新手大礼包按钮 var new_player_gift_button = find_child("NewPlayerGiftButton") @@ -2012,6 +2556,10 @@ func _handle_new_player_gift_response(data): # 更新UI _update_ui() + # 更新宠物背包UI + if pet_bag_panel and pet_bag_panel.has_method("update_pet_bag_ui"): + pet_bag_panel.update_pet_bag_ui() + # 显示成功消息 Toast.show(message, Color.GOLD, 3.0, 1.0) @@ -2031,6 +2579,120 @@ func _handle_new_player_gift_response(data): +#====================================全服大喇叭处理========================================= +# 处理全服大喇叭消息 +func _handle_global_broadcast_message(data: Dictionary): + # 将消息传递给大喇叭面板处理 + if global_server_broadcast_panel and global_server_broadcast_panel.has_method("receive_broadcast_message"): + global_server_broadcast_panel.receive_broadcast_message(data) + +# 处理全服大喇叭发送响应 +func _handle_global_broadcast_response(data: Dictionary): + var success = data.get("success", false) + var message = data.get("message", "") + + if success: + Toast.show("大喇叭消息发送成功", Color.GREEN, 2.0, 1.0) + else: + Toast.show("大喇叭消息发送失败:" + message, Color.RED, 3.0, 1.0) + +# 处理全服大喇叭历史消息响应 +func _handle_broadcast_history_response(data: Dictionary): + print("收到历史消息响应: ", data.get("messages", []).size(), " 条消息") + + if global_server_broadcast_panel and global_server_broadcast_panel.has_method("receive_history_messages"): + global_server_broadcast_panel.receive_history_messages(data) + + # 更新主界面大喇叭显示为最新消息 + if global_server_broadcast: + var latest_message = global_server_broadcast_panel.get_latest_message() + print("获取到的最新消息: ", latest_message) + if latest_message != "暂无消息": + global_server_broadcast.text = latest_message + print("主界面大喇叭已更新为: ", latest_message) + else: + global_server_broadcast.text = "" + print("没有消息,清空主界面大喇叭显示") + +# 更新主界面大喇叭显示(超出部分显示...) +func update_broadcast_display(message: String): + if global_server_broadcast and message != "": + + global_server_broadcast.text = message + + +# 初始化大喇叭显示 +func _init_broadcast_display(): + if global_server_broadcast and global_server_broadcast_panel: + # 先设置为空 + global_server_broadcast.text = "" + + # 直接从本地文件加载历史消息 + _load_broadcast_from_local() + + # 无论是否有本地消息,都请求服务器获取最新消息 + _request_latest_broadcast_message() + +# 从本地文件加载大喇叭消息 +func _load_broadcast_from_local(): + var file_path = "user://chat_history.json" + + if FileAccess.file_exists(file_path): + var file = FileAccess.open(file_path, FileAccess.READ) + if file: + var json_string = file.get_as_text() + file.close() + + var json = JSON.new() + var parse_result = json.parse(json_string) + + if parse_result == OK: + var data = json.data + if data is Array and data.size() > 0: + # 按时间戳排序 + data.sort_custom(func(a, b): return a.get("timestamp", 0) < b.get("timestamp", 0)) + # 获取最新消息 + var latest = data[-1] + var display_name = latest.get("display_name", "匿名") + var content = latest.get("content", "") + global_server_broadcast.text = display_name + ": " + content + print("从本地加载大喇叭消息: ", global_server_broadcast.text) + + + +# 请求服务器获取最新的一条大喇叭消息 +func _request_latest_broadcast_message(): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + # 请求最近1天的消息,只获取最新的一条 + var success = tcp_network_manager_panel.send_message({ + "type": "request_broadcast_history", + "days": 1, + "limit": 1, # 只要最新的一条 + "timestamp": Time.get_unix_time_from_system() + }) + + if not success: + print("请求最新大喇叭消息失败") + +# 请求服务器历史消息用于刷新显示 +func _request_server_history_for_refresh(): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + # 请求最近3天的消息 + var success = tcp_network_manager_panel.send_message({ + "type": "request_broadcast_history", + "days": 3, + "timestamp": Time.get_unix_time_from_system() + }) + + if success: + print("已请求服务器历史消息用于刷新显示") + else: + print("请求服务器历史消息失败") + +#====================================全服大喇叭处理========================================= + + + #====================================一键截图处理========================================= #一键截图按钮,隐藏所有UI,截图,然后保存在相应位置 func _on_one_click_screen_shot_pressed() -> void: @@ -2040,19 +2702,11 @@ func _on_one_click_screen_shot_pressed() -> void: # 隐藏所有UI _hide_all_ui_for_screenshot() - # 进行截图 - var success = await _take_and_save_screenshot() - - # 等待一帧 - await get_tree().create_timer(2).timeout + + await get_tree().create_timer(3).timeout # 恢复UI显示 _restore_ui_visibility_state(ui_state) - # 显示截图结果 - if success: - Toast.show("截图保存成功!", Color.GREEN, 2.0, 1.0) - else: - Toast.show("截图保存失败!", Color.RED, 2.0, 1.0) # 保存当前UI可见性状态 func _save_ui_visibility_state() -> Dictionary: @@ -2137,140 +2791,6 @@ func _restore_ui_visibility_state(state: Dictionary): if state.get("login_panel", false) and login_panel: login_panel.show() -# 截图并保存到合适的位置 -func _take_and_save_screenshot() -> bool: - # 获取当前视口 - var viewport = get_viewport() - if not viewport: - print("无法获取视口") - return false - - # 强制渲染一帧以确保所有效果都被应用 - RenderingServer.force_sync() - await get_tree().process_frame - - # 获取包含所有后处理效果的最终图像 - var image = await _capture_viewport_with_effects(viewport) - if not image: - print("无法获取视口图像") - return false - - # 生成文件名(包含时间戳) - var datetime = Time.get_datetime_dict_from_system() - var filename = "萌芽农场_%04d%02d%02d_%02d%02d%02d.png" % [ - datetime.year, datetime.month, datetime.day, - datetime.hour, datetime.minute, datetime.second - ] - - # 根据平台选择保存路径 - var save_path = _get_screenshot_save_path(filename) - - if save_path == "": - print("无法确定截图保存路径") - return false - - # 确保目录存在 - var dir_path = save_path.get_base_dir() - if not DirAccess.dir_exists_absolute(dir_path): - # 如果目录不存在,尝试创建 - var error = DirAccess.make_dir_recursive_absolute(dir_path) - if error != OK: - print("创建目录失败: ", dir_path, " 错误代码: ", error) - return false - - # 保存图像 - var error = image.save_png(save_path) - if error == OK: - print("截图已保存到: ", save_path) - return true - else: - print("保存截图失败,错误代码: ", error) - return false - -# 捕获包含所有视觉效果的视口图像 -func _capture_viewport_with_effects(viewport: Viewport) -> Image: - # 确保视口设置启用HDR和后处理效果 - var original_hdr = viewport.use_hdr_2d - var original_msaa = viewport.msaa_2d - - # 临时启用HDR和抗锯齿以获得更好的截图质量 - viewport.use_hdr_2d = true - viewport.msaa_2d = Viewport.MSAA_4X - - # 等待几帧让设置生效 - await get_tree().process_frame - await get_tree().process_frame - - # 获取图像 - var image = viewport.get_texture().get_image() - - # 恢复原始设置 - viewport.use_hdr_2d = original_hdr - viewport.msaa_2d = original_msaa - - return image - -# 根据平台获取截图保存路径 -func _get_screenshot_save_path(filename: String) -> String: - var platform = OS.get_name() - - match platform: - "Windows": - # Windows平台保存到桌面 - var desktop_path = OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP) - if desktop_path != "": - return desktop_path + "/" + filename - else: - # 如果获取桌面路径失败,使用用户文档目录 - var documents_path = OS.get_system_dir(OS.SYSTEM_DIR_DOCUMENTS) - return documents_path + "/萌芽农场截图/" + filename - - "Android": - # Android平台保存到Pictures目录 - var pictures_path = OS.get_system_dir(OS.SYSTEM_DIR_PICTURES) - if pictures_path != "": - return pictures_path + "/萌芽农场/" + filename - else: - # 如果获取Pictures目录失败,使用Downloads目录 - var downloads_path = OS.get_system_dir(OS.SYSTEM_DIR_DOWNLOADS) - return downloads_path + "/萌芽农场截图/" + filename - - "Linux", "FreeBSD", "NetBSD", "OpenBSD", "BSD": - # Linux/BSD平台优先保存到Pictures,其次是桌面 - var pictures_path = OS.get_system_dir(OS.SYSTEM_DIR_PICTURES) - if pictures_path != "": - return pictures_path + "/萌芽农场/" + filename - else: - var desktop_path = OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP) - if desktop_path != "": - return desktop_path + "/" + filename - else: - # 最后选择用户主目录 - return OS.get_environment("HOME") + "/萌芽农场截图/" + filename - - "macOS": - # macOS平台优先保存到桌面 - var desktop_path = OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP) - if desktop_path != "": - return desktop_path + "/" + filename - else: - # 如果获取桌面路径失败,使用Pictures目录 - var pictures_path = OS.get_system_dir(OS.SYSTEM_DIR_PICTURES) - return pictures_path + "/萌芽农场/" + filename - - "iOS": - # iOS平台保存到Documents目录 - var documents_path = OS.get_system_dir(OS.SYSTEM_DIR_DOCUMENTS) - return documents_path + "/萌芽农场截图/" + filename - - _: - # 其他平台默认保存到用户目录 - var documents_path = OS.get_system_dir(OS.SYSTEM_DIR_DOCUMENTS) - if documents_path != "": - return documents_path + "/萌芽农场截图/" + filename - else: - # 最后使用game的用户数据目录 - return OS.get_user_data_dir() + "/screenshots/" + filename #====================================一键截图处理========================================= @@ -2307,10 +2827,15 @@ func _handle_claim_online_gift_response(data: Dictionary): player_bag = updated_data["player_bag"] # 修复背包数据兼容性问题 _fix_player_bag_data() + if updated_data.has("宠物背包"): + pet_bag = updated_data["宠物背包"] # 更新UI _update_ui() player_bag_panel.update_player_bag_ui() + # 更新宠物背包UI + if pet_bag_panel and pet_bag_panel.has_method("update_pet_bag_ui"): + pet_bag_panel.update_pet_bag_ui() # 将响应传递给在线礼包面板处理UI更新 if online_gift_panel and online_gift_panel.has_method("handle_claim_online_gift_response"): @@ -2363,6 +2888,80 @@ func _handle_account_setting_response(data: Dictionary): if account_setting_panel and account_setting_panel.has_method("handle_account_response"): account_setting_panel.handle_account_response(data) +# 处理宠物使用道具响应 +func _handle_use_pet_item_response(data: Dictionary): + var success = data.get("success", false) + var message = data.get("message", "") + var updated_data = data.get("updated_data", {}) + + if success: + # 更新宠物背包数据 + if updated_data.has("宠物背包"): + pet_bag = updated_data["宠物背包"] + + # 更新宠物背包UI + if pet_bag_panel and pet_bag_panel.has_method("update_pet_bag_ui"): + pet_bag_panel.update_pet_bag_ui() + + # 更新道具背包数据 + if updated_data.has("道具背包"): + item_bag = updated_data["道具背包"] + + # 更新道具背包UI + if item_bag_panel and item_bag_panel.has_method("update_item_bag_ui"): + item_bag_panel.update_item_bag_ui() + + # 刷新宠物信息面板(如果当前有显示的宠物) + var pet_inform_panel = get_node_or_null("UI/SmallPanel/PetInformPanel") + if pet_inform_panel and pet_inform_panel.has_method("show_pet_info"): + # 如果宠物信息面板当前有显示的宠物,刷新其信息 + if not pet_inform_panel.current_pet_data.is_empty(): + var current_pet_id = pet_inform_panel.current_pet_data.get("基本信息", {}).get("宠物ID", "") + if current_pet_id != "": + # 查找更新后的宠物数据 + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == current_pet_id: + pet_inform_panel.show_pet_info(pet_inform_panel.current_pet_name, pet) + break + + Toast.show(message, Color.GREEN, 3.0, 1.0) + else: + Toast.show(message, Color.RED, 3.0, 1.0) + +# 处理农场道具使用响应 +func _handle_use_farm_item_response(data: Dictionary): + var success = data.get("success", false) + var message = data.get("message", "") + var updated_data = data.get("updated_data", {}) + + if success: + # 更新金币 + if updated_data.has("money"): + money = updated_data["money"] + + # 更新经验 + if updated_data.has("experience"): + experience = updated_data["experience"] + + # 更新等级 + if updated_data.has("level"): + level = updated_data["level"] + + # 更新道具背包数据 + if updated_data.has("道具背包"): + item_bag = updated_data["道具背包"] + + # 更新道具背包UI + if item_bag_panel and item_bag_panel.has_method("update_item_bag_ui"): + item_bag_panel.update_item_bag_ui() + + # 更新UI显示 + _update_ui() + + Toast.show(message, Color.GREEN, 3.0, 1.0) + else: + Toast.show(message, Color.RED, 3.0, 1.0) + # 显示消息提示 func show_message(message: String, color: Color): # 使用Toast显示消息 @@ -2376,12 +2975,218 @@ func _on_account_setting_button_pressed() -> void: pass #====================================账户设置处理========================================= +#====================================稻草人系统处理========================================= +# 处理购买稻草人响应 +func _handle_buy_scare_crow_response(data: Dictionary): + var success = data.get("success", false) + var message = data.get("message", "") + var updated_data = data.get("updated_data", {}) + + if success: + # 更新玩家数据 + if updated_data.has("money"): + money = updated_data["money"] + if updated_data.has("稻草人配置"): + # 更新登录数据中的稻草人配置 + login_data["稻草人配置"] = updated_data["稻草人配置"] + + # 将稻草人配置传递给稻草人面板 + if scare_crow_panel and scare_crow_panel.has_method("handle_buy_scare_crow_response"): + scare_crow_panel.handle_buy_scare_crow_response(success, message, updated_data) + + # 更新UI + _update_ui() + + # 更新稻草人显示 + update_scare_crow_display() + else: + if scare_crow_panel and scare_crow_panel.has_method("handle_buy_scare_crow_response"): + scare_crow_panel.handle_buy_scare_crow_response(success, message, updated_data) + +# 处理修改稻草人配置响应 +func _handle_modify_scare_crow_config_response(data: Dictionary): + var success = data.get("success", false) + var message = data.get("message", "") + var updated_data = data.get("updated_data", {}) + + if success: + # 更新玩家数据 + if updated_data.has("money"): + money = updated_data["money"] + if updated_data.has("稻草人配置"): + # 更新登录数据中的稻草人配置 + login_data["稻草人配置"] = updated_data["稻草人配置"] + + # 将稻草人配置传递给稻草人面板 + if scare_crow_panel and scare_crow_panel.has_method("handle_modify_scare_crow_config_response"): + scare_crow_panel.handle_modify_scare_crow_config_response(success, message, updated_data) + + # 更新UI + _update_ui() + + # 更新稻草人显示 + update_scare_crow_display() + else: + if scare_crow_panel and scare_crow_panel.has_method("handle_modify_scare_crow_config_response"): + scare_crow_panel.handle_modify_scare_crow_config_response(success, message, updated_data) + +# 处理获取稻草人配置响应 +func _handle_get_scare_crow_config_response(data: Dictionary): + var success = data.get("success", false) + var scare_crow_config = data.get("scare_crow_config", {}) + + if success: + # 更新登录数据中的稻草人配置 + login_data["稻草人配置"] = scare_crow_config + + # 将稻草人配置传递给稻草人面板 + if scare_crow_panel and scare_crow_panel.has_method("set_player_scare_crow_config"): + scare_crow_panel.set_player_scare_crow_config(scare_crow_config) + + # 更新稻草人显示 + update_scare_crow_display() + +# 更新稻草人显示 +func update_scare_crow_display(): + # 始终显示稻草人按钮,这样玩家可以点击进入设置面板 + scare_crow.show() + + # 如果处于访问模式,显示被访问玩家的稻草人 + var config_to_display = {} + + if is_visiting_mode and visited_player_data.has("稻草人配置"): + config_to_display = visited_player_data["稻草人配置"] + elif login_data.has("稻草人配置"): + config_to_display = login_data["稻草人配置"] + else: + # 如果没有稻草人配置,隐藏稻草人图片和话语 + scare_crow_image.hide() + scare_crowtalks.hide() + scare_crow_name.hide() + return + + # 检查是否有已拥有的稻草人类型 + var owned_types = config_to_display.get("已拥有稻草人类型", []) + if owned_types.size() == 0: + # 如果没有购买过任何稻草人,隐藏稻草人图片和话语 + scare_crow_image.hide() + scare_crowtalks.hide() + scare_crow_name.hide() + return + + # 显示稻草人元素 + scare_crow_image.show() + scare_crowtalks.show() + scare_crow_name.show() + + # 更新稻草人图片 + var display_type = config_to_display.get("稻草人展示类型", "") + if display_type != "": + var image_path = "" + match display_type: + "稻草人1": + image_path = "res://assets/稻草人图片/稻草人1.webp" + "稻草人2": + image_path = "res://assets/稻草人图片/稻草人2.webp" + "稻草人3": + image_path = "res://assets/稻草人图片/稻草人3.webp" + + if image_path != "" and ResourceLoader.exists(image_path): + var texture = load(image_path) + scare_crow_image.texture = texture + + # 更新稻草人昵称和颜色 + var scare_crow_nickname = config_to_display.get("稻草人昵称", "稻草人") + var nickname_color = config_to_display.get("稻草人昵称颜色", "#ffffff") + scare_crow_name.text = "[color=" + nickname_color + "]" + scare_crow_nickname + "[/color]" + + # 准备稻草人说的话列表 + var talks = config_to_display.get("稻草人说的话", {}) + scare_crow_talks_list.clear() + + for i in range(1, 5): + var talk_key = "第" + ["一", "二", "三", "四"][i-1] + "句话" + if talks.has(talk_key): + var talk_data = talks[talk_key] + var content = talk_data.get("内容", "") + var color = talk_data.get("颜色", "#000000") + + if content != "": + scare_crow_talks_list.append({ + "content": content, + "color": color + }) + + # 如果没有话语内容,添加默认话语 + if scare_crow_talks_list.size() == 0: + scare_crow_talks_list.append({ + "content": "我是一个可爱的稻草人!", + "color": "#000000" + }) + + # 重置话语索引和计时器 + scare_crow_talk_index = 0 + scare_crow_talk_timer = 0.0 + + # 显示第一句话 + _update_scare_crow_talk() + +# 更新稻草人当前说的话 +func _update_scare_crow_talk(): + if scare_crow_talks_list.size() == 0: + return + + # 循环切换话语索引 + if scare_crow_talk_index >= scare_crow_talks_list.size(): + scare_crow_talk_index = 0 + + # 获取当前话语 + var current_talk = scare_crow_talks_list[scare_crow_talk_index] + var content = current_talk.get("content", "") + var color = current_talk.get("color", "#000000") + + # 更新显示 + scare_crowtalks.text = "[color=" + color + "]" + content + "[/color]" + + # 切换到下一句话 + scare_crow_talk_index += 1 + +# 初始化稻草人配置(登录时调用) +func init_scare_crow_config(): + if login_data.has("稻草人配置"): + # 有稻草人配置,检查是否有已拥有的稻草人类型 + var scare_crow_config = login_data["稻草人配置"] + var owned_types = scare_crow_config.get("已拥有稻草人类型", []) + + if owned_types.size() > 0: + # 有已拥有的稻草人,更新显示 + update_scare_crow_display() + + # 传递配置给稻草人面板 + if scare_crow_panel and scare_crow_panel.has_method("set_player_scare_crow_config"): + scare_crow_panel.set_player_scare_crow_config(scare_crow_config) + else: + # 没有已拥有的稻草人,隐藏稻草人 + scare_crow.hide() + else: + # 没有稻草人配置,隐藏稻草人 + scare_crow.hide() + + +#打开农场稻草人设置面板 +func _on_scare_crow_pressed() -> void: + GlobalVariables.isZoomDisabled = true + scare_crow_panel.show() + scare_crow_panel.move_to_front() + pass + +#====================================稻草人系统处理========================================= + #===============================================道具使用处理=============================================== # 在地块上使用道具 func _use_item_on_lot(lot_index: int, item_name: String): - Toast.show("正在使用道具: " + item_name, Color.CYAN, 2.0, 1.0) # 检查地块索引是否有效 if lot_index < 0 or lot_index >= farm_lots.size(): @@ -2436,7 +3241,6 @@ func _use_fertilizer_item(lot_index: int, item_name: String, lot: Dictionary): # 检查作物是否已成熟 var grow_time = float(lot.get("grow_time", 0)) var max_grow_time = float(lot.get("max_grow_time", 1)) - print("调试:作物生长时间: ", grow_time, "/", max_grow_time) if grow_time >= max_grow_time: Toast.show("作物已成熟,无需施肥", Color.ORANGE, 2.0, 1.0) return @@ -2457,8 +3261,8 @@ func _use_fertilizer_item(lot_index: int, item_name: String, lot: Dictionary): target_username = visited_player_data.get("user_name", "") - if network_manager and network_manager.has_method("sendUseItem"): - if network_manager.sendUseItem(lot_index, item_name, "fertilize", target_username): + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendUseItem"): + if tcp_network_manager_panel.sendUseItem(lot_index, item_name, "fertilize", target_username): # 取消道具选择状态 _clear_item_selection() var action_text = "帮助施肥" if is_visiting_mode else "施肥" @@ -2501,8 +3305,8 @@ func _use_watering_item(lot_index: int, item_name: String, lot: Dictionary): if is_visiting_mode: target_username = visited_player_data.get("user_name", "") - if network_manager and network_manager.has_method("sendUseItem"): - if network_manager.sendUseItem(lot_index, item_name, "water", target_username): + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendUseItem"): + if tcp_network_manager_panel.sendUseItem(lot_index, item_name, "water", target_username): # 取消道具选择状态 _clear_item_selection() var action_text = "帮助浇水" if is_visiting_mode else "浇水" @@ -2541,8 +3345,8 @@ func _use_removal_item(lot_index: int, item_name: String, lot: Dictionary): if is_visiting_mode: target_username = visited_player_data.get("user_name", "") - if network_manager and network_manager.has_method("sendUseItem"): - if network_manager.sendUseItem(lot_index, item_name, "remove", target_username): + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendUseItem"): + if tcp_network_manager_panel.sendUseItem(lot_index, item_name, "remove", target_username): # 取消道具选择状态 _clear_item_selection() var action_text = "帮助铲除" if is_visiting_mode else "铲除" @@ -2584,8 +3388,8 @@ func _use_weed_killer_item(lot_index: int, item_name: String, lot: Dictionary): if is_visiting_mode: target_username = visited_player_data.get("user_name", "") - if network_manager and network_manager.has_method("sendUseItem"): - if network_manager.sendUseItem(lot_index, item_name, "weed_killer", target_username): + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendUseItem"): + if tcp_network_manager_panel.sendUseItem(lot_index, item_name, "weed_killer", target_username): # 取消道具选择状态 _clear_item_selection() var action_text = "帮助除草" if is_visiting_mode else "除草" @@ -2629,8 +3433,8 @@ func _use_harvest_item(lot_index: int, item_name: String, lot: Dictionary): if is_visiting_mode: target_username = visited_player_data.get("user_name", "") - if network_manager and network_manager.has_method("sendUseItem"): - if network_manager.sendUseItem(lot_index, item_name, "harvest", target_username): + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendUseItem"): + if tcp_network_manager_panel.sendUseItem(lot_index, item_name, "harvest", target_username): # 取消道具选择状态 _clear_item_selection() var action_text = "帮助收获" if is_visiting_mode else "收获" @@ -2649,3 +3453,667 @@ func _clear_item_selection(): if item_bag_panel and item_bag_panel.has_method("_deselect_item"): item_bag_panel._deselect_item() #===============================================道具使用处理=============================================== + + + + +#===============================================巡逻宠物管理=============================================== + +# 当前巡逻宠物实例(只允许一个) +var current_patrol_pet: CharacterBody2D = null + +# 初始化巡逻宠物(登录时调用) +func init_patrol_pets(): + # 确保巡逻宠物数组存在 + if patrol_pets == null: + patrol_pets = [] + + # 检查巡逻线设置 + check_patrol_line_setup() + + # 更新巡逻宠物显示 + update_patrol_pets() + +# 检查巡逻线设置 +func check_patrol_line_setup(): + if not pet_patrol_path_line: + print("错误:找不到巡逻线节点 PetPatrolPathLine,请检查场景设置") + return + + print("巡逻线节点找到: " + pet_patrol_path_line.name) + print("巡逻路径点数: " + str(pet_patrol_path_line.points.size())) + + if pet_patrol_path_line.points.size() == 0: + print("警告:巡逻线没有设置路径点,将设置默认路径") + # 设置一个简单的矩形巡逻路径作为默认 + pet_patrol_path_line.points = PackedVector2Array([ + Vector2(100, 100), + Vector2(300, 100), + Vector2(300, 300), + Vector2(100, 300) + ]) + print("已设置默认矩形巡逻路径") + + # 设置巡逻线可见性和样式 + pet_patrol_path_line.visible = true + pet_patrol_path_line.width = 3.0 + pet_patrol_path_line.default_color = Color.YELLOW + pet_patrol_path_line.closed = true # 闭合路径 + + # 打印路径点信息 + for i in range(pet_patrol_path_line.points.size()): + print("巡逻点 " + str(i) + ": " + str(pet_patrol_path_line.points[i])) + + print("巡逻线节点位置: " + str(pet_patrol_path_line.position)) + print("巡逻线节点全局位置: " + str(pet_patrol_path_line.global_position)) + +# 更新巡逻宠物显示(根据patrol_pets数组创建) +func update_patrol_pets(): + # 先清除现有巡逻宠物 + clear_patrol_pets() + + if patrol_pets == null or patrol_pets.size() == 0: + print("没有巡逻宠物需要显示") + return + + # 目前只支持一个巡逻宠物,取第一个 + var first_patrol_pet = patrol_pets[0] + var pet_id = first_patrol_pet.get("基本信息", {}).get("宠物ID", "") + + if pet_id != "": + # 直接根据巡逻宠物数据创建(不从宠物背包查找) + create_patrol_pet_from_data(first_patrol_pet) + else: + print("巡逻宠物ID为空") + +# 清除巡逻宠物实例 +func clear_patrol_pets(): + if current_patrol_pet and is_instance_valid(current_patrol_pet): + current_patrol_pet.queue_free() + current_patrol_pet = null + + # 清除巡逻线节点下的所有宠物(确保完全清理) + if pet_patrol_path_line: + for child in pet_patrol_path_line.get_children(): + if child is CharacterBody2D: + child.queue_free() + + print("已清除巡逻宠物") + +# 根据宠物ID设置巡逻宠物 +func set_patrol_pet_by_id(pet_id: String): + if pet_id == "": + print("警告:宠物ID为空,无法设置巡逻宠物") + return + + # 从宠物背包中查找宠物数据 + var pet_data = find_pet_by_id(pet_id) + if pet_data.is_empty(): + print("错误:在宠物背包中找不到ID为 " + pet_id + " 的宠物") + return + + # 检查巡逻线节点是否存在 + if not pet_patrol_path_line: + print("错误:找不到巡逻线节点 PetPatrolPathLine") + return + + # 检查巡逻路径是否设置 + if pet_patrol_path_line.points.size() < 2: + print("警告:巡逻路径点数少于2个,无法创建巡逻宠物") + return + + # 先清除现有巡逻宠物 + clear_patrol_pets() + + # 等待一帧确保旧实例被清理 + await get_tree().process_frame + + # 获取宠物场景路径 + var scene_path = pet_data.get("场景路径", "") + if scene_path == "": + print("错误:宠物数据中没有场景路径") + return + + # 检查场景文件是否存在 + if not ResourceLoader.exists(scene_path): + print("错误:宠物场景文件不存在: " + scene_path) + return + + # 加载宠物场景 + var pet_scene = load(scene_path) + if not pet_scene: + print("错误:无法加载宠物场景: " + scene_path) + return + + var pet_instance = pet_scene.instantiate() + if not pet_instance: + print("错误:无法创建宠物实例") + return + + # 应用宠物数据到实例 + apply_pet_data_to_patrol_instance(pet_instance, pet_data) + + # 设置巡逻状态和路径 + pet_instance.is_patrolling = true + pet_instance.patrol_path = pet_patrol_path_line.points.duplicate() + pet_instance.patrol_speed = 80.0 + pet_instance.current_patrol_index = 0 + pet_instance.patrol_wait_time = 0.0 + + # 添加到巡逻线节点下 + pet_patrol_path_line.add_child(pet_instance) + current_patrol_pet = pet_instance + + # 设置初始位置 + pet_instance.position = pet_patrol_path_line.points[0] + + var pet_name = pet_data.get("基本信息", {}).get("宠物名称", "未知") + print("创建巡逻宠物成功: " + pet_name + " (场景: " + scene_path + ")") + +# 在宠物背包中根据ID查找宠物数据 +func find_pet_by_id(pet_id: String) -> Dictionary: + if pet_bag == null: + return {} + + for pet_data in pet_bag: + var current_id = pet_data.get("基本信息", {}).get("宠物ID", "") + if current_id == pet_id: + return pet_data + + return {} + +# 应用宠物数据到巡逻实例 +func apply_pet_data_to_patrol_instance(pet_instance: CharacterBody2D, pet_data: Dictionary): + var basic_info = pet_data.get("基本信息", {}) + var level_exp = pet_data.get("等级经验", {}) + var health_defense = pet_data.get("生命与防御", {}) + + # 设置基本信息 + var original_name = basic_info.get("宠物名称", basic_info.get("宠物类型", "未知宠物")) + pet_instance.pet_name = "[巡逻] " + original_name # 添加巡逻标识 + pet_instance.pet_id = basic_info.get("宠物ID", "") + pet_instance.pet_type = basic_info.get("宠物类型", "") + pet_instance.pet_birthday = basic_info.get("生日", "") + pet_instance.pet_personality = basic_info.get("性格", "活泼") + pet_instance.pet_team = "patrol" # 设置为巡逻队伍 + + # 设置等级经验 + pet_instance.pet_level = level_exp.get("宠物等级", 1) + pet_instance.pet_experience = level_exp.get("当前经验", 0.0) + pet_instance.max_experience = level_exp.get("最大经验", 100.0) + pet_instance.pet_intimacy = level_exp.get("亲密度", 0.0) + + # 设置生命防御 + pet_instance.max_health = health_defense.get("最大生命值", 100.0) + pet_instance.current_health = health_defense.get("当前生命值", pet_instance.max_health) + pet_instance.max_shield = health_defense.get("最大护盾值", 0.0) + pet_instance.current_shield = health_defense.get("当前护盾值", 0.0) + pet_instance.max_armor = health_defense.get("最大护甲值", 0.0) + pet_instance.current_armor = health_defense.get("当前护甲值", 0.0) + + # 禁用战斗行为(巡逻宠物不参与战斗) + if pet_instance.has_method("set_combat_enabled"): + pet_instance.set_combat_enabled(false) + + # 显示宠物状态栏,让访问者看到宠物的强大! + if pet_instance.has_node("PetInformVBox"): + pet_instance.get_node("PetInformVBox").visible = true # 显示状态栏 + + # 设置宠物为稍小的比例 + pet_instance.scale = Vector2(0.8, 0.8) + + # 设置宠物名称标签,并确保可见 + if pet_instance.pet_name_rich_text: + pet_instance.pet_name_rich_text.text = pet_instance.pet_name + pet_instance.pet_name_rich_text.modulate = Color.YELLOW # 巡逻宠物名称为黄色 + pet_instance.pet_name_rich_text.visible = true + +# 根据巡逻宠物数据直接创建巡逻宠物(不依赖宠物背包) +func create_patrol_pet_from_data(pet_data: Dictionary): + # 检查巡逻线节点是否存在 + if not pet_patrol_path_line: + print("错误:找不到巡逻线节点 PetPatrolPathLine") + return + + # 检查巡逻路径是否设置 + if pet_patrol_path_line.points.size() < 2: + print("警告:巡逻路径点数少于2个,无法创建巡逻宠物") + return + + # 获取宠物场景路径 + var scene_path = pet_data.get("场景路径", "") + if scene_path == "": + print("错误:巡逻宠物数据中没有场景路径") + return + + # 检查场景文件是否存在 + if not ResourceLoader.exists(scene_path): + print("错误:巡逻宠物场景文件不存在: " + scene_path) + return + + # 加载宠物场景 + var pet_scene = load(scene_path) + if not pet_scene: + print("错误:无法加载巡逻宠物场景: " + scene_path) + return + + var pet_instance = pet_scene.instantiate() + if not pet_instance: + print("错误:无法创建巡逻宠物实例") + return + + # 应用宠物数据到实例 + apply_pet_data_to_patrol_instance(pet_instance, pet_data) + + # 设置巡逻状态和路径 + pet_instance.is_patrolling = true + pet_instance.patrol_path = pet_patrol_path_line.points.duplicate() + pet_instance.patrol_speed = 80.0 + pet_instance.current_patrol_index = 0 + pet_instance.patrol_wait_time = 0.0 + + # 设置宠物状态为巡逻 + pet_instance.current_state = pet_instance.PetState.PATROLLING + + # 添加到巡逻线节点下 + pet_patrol_path_line.add_child(pet_instance) + current_patrol_pet = pet_instance + + # 设置初始位置 + pet_instance.position = pet_patrol_path_line.points[0] + + var pet_name = pet_data.get("基本信息", {}).get("宠物名称", "未知") + print("从服务器数据创建巡逻宠物成功: " + pet_name + " (场景: " + scene_path + ")") + + + +#====================================偷菜被发现处理========================================= +# 处理偷菜被发现响应 +func _handle_steal_caught_response(data: Dictionary): + var success = data.get("success", false) + var message = data.get("message", "") + var has_battle_pet = data.get("has_battle_pet", false) + + if not success: + if has_battle_pet: + # 有出战宠物,显示对战选择弹窗 + var patrol_pet_data = data.get("patrol_pet_data", {}) + var battle_pet_data = data.get("battle_pet_data", {}) + var escape_cost = data.get("escape_cost", 1000) + var battle_cost = data.get("battle_cost", 1300) + var target_username = data.get("target_username", "") + var current_username = data.get("current_username", "") + + _show_steal_caught_dialog( + message, + patrol_pet_data, + battle_pet_data, + escape_cost, + battle_cost, + target_username, + current_username + ) + else: + # 没有出战宠物,直接显示逃跑结果 + var updated_data = data.get("updated_data", {}) + if updated_data.has("money"): + money = updated_data["money"] + _update_ui() + Toast.show(message, Color.RED, 3.0) + else: + # 成功情况的处理(如果有的话) + Toast.show(message, Color.GREEN) + +# 显示偷菜被发现对话框 +func _show_steal_caught_dialog(message: String, patrol_pet_data: Dictionary, battle_pet_data: Dictionary, escape_cost: int, battle_cost: int, target_username: String, current_username: String): + # 使用AcceptDialog创建对战选择弹窗 + if not accept_dialog: + print("错误:找不到AcceptDialog") + return + + # 获取巡逻宠物和出战宠物信息 + var patrol_pet_name = patrol_pet_data.get("基本信息", {}).get("宠物名称", "未知宠物") + var patrol_pet_level = patrol_pet_data.get("等级经验", {}).get("宠物等级", 1) + var patrol_pet_type = patrol_pet_data.get("基本信息", {}).get("宠物类型", "未知类型") + + var battle_pet_name = battle_pet_data.get("基本信息", {}).get("宠物名称", "未知宠物") + var battle_pet_level = battle_pet_data.get("等级经验", {}).get("宠物等级", 1) + var battle_pet_type = battle_pet_data.get("基本信息", {}).get("宠物类型", "未知类型") + + # 构建对话框内容 + var dialog_content = message + "\n\n" + dialog_content += "🛡️ " + target_username + "的巡逻宠物:\n" + dialog_content += " " + patrol_pet_name + " (类型:" + patrol_pet_type + ", 等级:" + str(patrol_pet_level) + ")\n\n" + dialog_content += "⚔️ 你的出战宠物:\n" + dialog_content += " " + battle_pet_name + " (类型:" + battle_pet_type + ", 等级:" + str(battle_pet_level) + ")\n\n" + dialog_content += "请选择你的行动:\n" + dialog_content += "💰 逃跑:支付 " + str(escape_cost) + " 金币\n" + dialog_content += "⚔️ 对战:如果失败支付 " + str(battle_cost) + " 金币" + + # 设置对话框 + accept_dialog.set_dialog_title("偷菜被发现!") + accept_dialog.set_dialog_content(dialog_content) + accept_dialog.set_ok_text("宠物对战") + accept_dialog.set_cancel_text("逃跑") + + # 清除之前的信号连接 + if accept_dialog.confirmed.is_connected(_on_steal_battle_confirmed): + accept_dialog.confirmed.disconnect(_on_steal_battle_confirmed) + if accept_dialog.canceled.is_connected(_on_steal_escape_confirmed): + accept_dialog.canceled.disconnect(_on_steal_escape_confirmed) + + # 连接新的信号处理 + accept_dialog.confirmed.connect(_on_steal_battle_confirmed.bind(patrol_pet_data, battle_pet_data, target_username)) + accept_dialog.canceled.connect(_on_steal_escape_confirmed.bind(escape_cost)) + + # 居中显示对话框 + var screen_size = get_viewport().get_visible_rect().size + var dialog_pos = Vector2( + (screen_size.x - 500) / 2, # 假设对话框宽度为500 + (screen_size.y - 400) / 2 # 假设对话框高度为400 + ) + accept_dialog.set_dialog_position(dialog_pos) + + # 显示对话框 + accept_dialog.popup_centered() + print("显示偷菜被发现对话框") + +# 玩家选择宠物对战 +func _on_steal_battle_confirmed(patrol_pet_data: Dictionary, battle_pet_data: Dictionary, target_username: String): + print("玩家选择宠物对战") + + # 验证宠物数据完整性 + var battle_pet_id = battle_pet_data.get("基本信息", {}).get("宠物ID", "") + var patrol_pet_id = patrol_pet_data.get("基本信息", {}).get("宠物ID", "") + + if battle_pet_id == "" or patrol_pet_id == "": + Toast.show("宠物数据不完整,无法开始对战", Color.RED, 3.0) + return + + # 检查是否为同一个宠物 + if check_battle_patrol_conflict(battle_pet_id, patrol_pet_id): + Toast.show("出战宠物和巡逻宠物不能为同一个!", Color.RED, 3.0) + return + + # 停止宠物对战面板的自动对战逻辑 + if pet_fight_panel and pet_fight_panel.has_method("stop_auto_battle"): + pet_fight_panel.stop_auto_battle() + + # 加载双方宠物数据到对战面板 + if pet_fight_panel and pet_fight_panel.has_method("setup_steal_battle"): + pet_fight_panel.setup_steal_battle(battle_pet_data, patrol_pet_data, user_name, target_username) + + # 显示宠物对战面板 + pet_fight_panel.show() + GlobalVariables.isZoomDisabled = true + + Toast.show("准备进入宠物对战!", Color.YELLOW, 2.0) + +# 玩家选择逃跑 +func _on_steal_escape_confirmed(escape_cost: int): + print("玩家选择逃跑,支付", escape_cost, "金币") + + # 检查金币是否足够 + if money < escape_cost: + Toast.show("金币不足,无法逃跑!需要" + str(escape_cost) + "金币", Color.RED, 3.0) + return + + # 扣除金币 + money -= escape_cost + _update_ui() + + Toast.show("支付了 " + str(escape_cost) + " 金币逃跑成功", Color.ORANGE, 3.0) +#====================================偷菜被发现处理========================================= + +func _input(event): + if event is InputEventKey and event.pressed: + var key_code = event.keycode + + if key_code == KEY_F10: + # 显示调试面板 + if debug_panel: + debug_panel.visible = !debug_panel.visible + elif key_code == KEY_F11: + # 切换全屏模式 + if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN: + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) + else: + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) + elif key_code == KEY_F12: + # 截图 + print("截图功能暂未实现") + + +# 检查出战宠物和巡逻宠物是否冲突 +func check_battle_patrol_conflict(battle_pet_id: String, patrol_pet_id: String) -> bool: + if battle_pet_id == "" or patrol_pet_id == "": + return false + return battle_pet_id == patrol_pet_id + +# 根据宠物ID获取完整的宠物数据 +func get_pet_data_by_id(pet_id: String) -> Dictionary: + for pet_data in pet_bag: + var current_id = pet_data.get("基本信息", {}).get("宠物ID", "") + if current_id == pet_id: + return pet_data + return {} + +#智慧树按钮点击 +func _on_wisdom_tree_pressed() -> void: + wisdom_tree_panel.show() + # 确保智慧树面板有正确的可见性处理 + if wisdom_tree_panel.has_method("_on_visibility_changed"): + wisdom_tree_panel._on_visibility_changed() + +#=======================================智慧树系统========================================= +# 更新智慧树显示 +func update_wisdom_tree_display(): + if not login_data.has("智慧树配置"): + return + + var wisdom_tree_config = login_data["智慧树配置"] + + # 确保配置格式正确,兼容旧格式 + wisdom_tree_config = _ensure_wisdom_tree_config_format(wisdom_tree_config) + + var level = wisdom_tree_config.get("等级", 1) + var height = wisdom_tree_config.get("高度", 20) + var current_health = wisdom_tree_config.get("当前生命值", 100) + var max_health = wisdom_tree_config.get("最大生命值", 100) + var anonymous_message = wisdom_tree_config.get("智慧树显示的话", "") + + # 更新智慧树状态显示 + if tree_status: + tree_status.text = "等级lv:" + str(level) + " 高度:" + str(height) + "cm" + + # 更新智慧树图片大小(从0.5到1.6倍) + update_wisdom_tree_size() + + # 如果有匿名消息,显示在智慧树对话框中(访问模式下隐藏) + if anonymous_talk: + if is_visiting_mode: + # 访问模式下隐藏智慧树消息 + anonymous_talk.hide() + elif anonymous_message != "": + anonymous_talk.show() + # 获取当前时间戳 - 显示完整时间 + var current_time = Time.get_datetime_string_from_system() + var date_part = current_time.substr(0, 10) # 年月日 + var time_part = current_time.substr(11, 8) # 时分秒 + anonymous_talk.text = "[color=cyan][" + date_part + " " + time_part + "][/color] " + anonymous_message + else: + anonymous_talk.show() + anonymous_talk.text = "给未来的某个陌生人说一句话吧" + +# 更新智慧树显示(用于访问模式) +func _update_wisdom_tree_display(wisdom_config: Dictionary): + if not wisdom_config: + return + + # 更新智慧树等级和高度 + var level = wisdom_config.get("等级", 1) + var height = wisdom_config.get("高度", 20) + var current_health = wisdom_config.get("当前生命值", 100) + var max_health = wisdom_config.get("最大生命值", 100) + var current_exp = wisdom_config.get("当前经验值", 0) + var max_exp = wisdom_config.get("最大经验值", 100) + var wisdom_message = wisdom_config.get("智慧树显示的话", "") + + # 更新智慧树状态显示 + if tree_status: + tree_status.text = "等级lv:" + str(level) + " 高度:" + str(height) + "cm" + + # 更新智慧树图片大小和位置(确保居中) + if wisdom_tree_image: + # 计算缩放比例(高度20cm对应0.5倍,最大1.6倍) + var min_height = 20.0 + var max_height = 100.0 + var min_scale = 0.5 + var max_scale = 1.6 + + # 确保高度在有效范围内 + height = clamp(height, min_height, max_height) + + # 计算缩放比例 + var scale_factor = min_scale + (max_scale - min_scale) * (height - min_height) / (max_height - min_height) + + + # 应用缩放,确保图片居中 + wisdom_tree_image.scale = Vector2(scale_factor, scale_factor) + + # 根据生命值设置智慧树图片的颜色 + if current_health <= 0: + wisdom_tree_image.self_modulate = Color(0.5, 0.5, 0.5, 1.0) # 灰色表示死亡 + elif current_health <= max_health * 0.3: # 生命值低于30% + wisdom_tree_image.self_modulate = Color(1.0, 0.8, 0.8, 1.0) # 浅红色表示生病 + else: + wisdom_tree_image.self_modulate = Color(1.0, 1.0, 1.0, 1.0) # 正常颜色 + + # 更新智慧树消息显示 + if wisdom_message != "" and anonymous_talk: + # 显示完整的时间格式 + var current_time = Time.get_datetime_string_from_system() + var date_part = current_time.substr(0, 10) # 年月日 + var time_part = current_time.substr(11, 8) # 时分秒 + anonymous_talk.text = "[color=cyan][" + date_part + " " + time_part + "][/color] " + wisdom_message + + +# 更新智慧树图片大小 +func update_wisdom_tree_size(): + if not login_data.has("智慧树配置") or not wisdom_tree_image: + return + + var wisdom_tree_config = login_data["智慧树配置"] + var height = wisdom_tree_config.get("高度", 20) + + # 计算缩放比例(高度20cm对应0.5倍,最大1.6倍) + # 高度范围:20-100cm,缩放范围:0.5-1.6倍 + var min_height = 20.0 + var max_height = 999999999999.0 + var min_scale = 0.5 + var max_scale = 1.6 + + # 确保高度在有效范围内 + height = clamp(height, min_height, max_height) + + # 计算缩放比例 + var scale_factor = min_scale + (max_scale - min_scale) * (height - min_height) / (max_height - min_height) + + # 应用缩放 + wisdom_tree_image.scale = Vector2(scale_factor, scale_factor) + + print("智慧树高度: ", height, "cm, 缩放比例: ", scale_factor) + +# 随机显示智慧树匿名消息(放音乐时调用) +func show_random_wisdom_tree_message(): + # 发送请求到服务器获取随机消息 + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("send_wisdom_tree_operation"): + tcp_network_manager_panel.send_wisdom_tree_operation("get_random_message") + +# 智慧树生命值衰减现在完全由服务端处理,客户端不再处理 + + +# 智慧树护理时间更新(已移到服务端处理) +func update_wisdom_tree_care_time(): + # 护理时间更新现在由服务端处理 + pass + +# 处理智慧树响应消息 +func handle_wisdom_tree_response(data: Dictionary): + var message_type = data.get("operation_type", "") + var message_content = data.get("random_message", "") + + if message_type == "play_music" and message_content != "": + # 显示随机获得的匿名消息 + if anonymous_talk: + var current_time = Time.get_datetime_string_from_system() + var date_part = current_time.substr(0, 10) # 年月日 + var time_part = current_time.substr(11, 8) # 时分秒 + anonymous_talk.text = "[color=cyan][" + date_part + " " + time_part + "][/color] " + message_content + + # 保存到智慧树配置中 + if login_data.has("智慧树配置"): + var wisdom_tree_config = login_data["智慧树配置"] + wisdom_tree_config["智慧树显示的话"] = message_content + login_data["智慧树配置"] = wisdom_tree_config + +# 确保智慧树配置格式正确,兼容旧格式 +func _ensure_wisdom_tree_config_format(wisdom_tree_config: Dictionary) -> Dictionary: + # 创建配置副本以避免修改原始数据 + var config = wisdom_tree_config.duplicate() + + # 如果是旧格式,转换为新格式 + if config.has("生命值") and not config.has("当前生命值"): + var old_health = config.get("生命值", 100) + config["当前生命值"] = old_health + config["最大生命值"] = 100 + config.erase("生命值") + + if config.has("经验") and not config.has("当前经验值"): + var old_exp = config.get("经验", 0) + config["当前经验值"] = old_exp + var level = config.get("等级", 1) + # 使用动态公式计算最大经验值 + var base_exp = 50 + var exp_multiplier = 1.2 + var level_factor = pow(level, 1.5) + var max_exp = int(base_exp * level_factor * exp_multiplier) + config["最大经验值"] = max_exp + config.erase("经验") + + # 确保所有必需字段存在 + if not config.has("当前生命值"): + config["当前生命值"] = 100 + if not config.has("最大生命值"): + config["最大生命值"] = 100 + if not config.has("当前经验值"): + config["当前经验值"] = 0 + if not config.has("最大经验值"): + var level = config.get("等级", 1) + var base_exp = 50 + var exp_multiplier = 1.2 + var level_factor = pow(level, 1.5) + var max_exp = int(base_exp * level_factor * exp_multiplier) + config["最大经验值"] = max_exp + + return config + +#处理智慧树配置响应 +func _handle_wisdom_tree_config_response(data): + var success = data.get("success", false) + if success: + var config = data.get("config", {}) + # 确保配置格式正确 + config = _ensure_wisdom_tree_config_format(config) + # 更新本地智慧树配置 + login_data["智慧树配置"] = config + # 更新界面显示 + update_wisdom_tree_display() + print("智慧树配置已更新") + + # 如果智慧树面板打开,也更新面板显示 + var wisdom_tree_panel = get_node_or_null("BigPanel/SmallPanel/WisdomTreePanel") + if wisdom_tree_panel and wisdom_tree_panel.visible: + wisdom_tree_panel.wisdom_tree_config = config + wisdom_tree_panel.update_ui() +#=======================================智慧树系统========================================= diff --git a/MainGame.tscn b/MainGame.tscn index f5effee..055b32d 100644 --- a/MainGame.tscn +++ b/MainGame.tscn @@ -1,59 +1,54 @@ -[gd_scene load_steps=42 format=3 uid="uid://dgh61dttaas5a"] +[gd_scene load_steps=57 format=3 uid="uid://dgh61dttaas5a"] [ext_resource type="Script" uid="uid://2pt11sfcaxf7" path="res://MainGame.gd" id="1_v3yaj"] [ext_resource type="Texture2D" uid="uid://du2pyiojliasy" path="res://assets/游戏UI/经验球.webp" id="2_6jgly"] [ext_resource type="PackedScene" uid="uid://bkivlkirrx6u8" path="res://CopyItems/crop_item.tscn" id="3_isiom"] -[ext_resource type="Script" uid="uid://mtfp0ct42nrx" path="res://GUI/CropStorePanel.gd" id="3_qtrx8"] [ext_resource type="Texture2D" uid="uid://ftv231igtdoq" path="res://assets/游戏UI/等级.webp" id="3_y1hsh"] -[ext_resource type="Script" uid="uid://cgr332wsx63a8" path="res://GUI/PlayerBagPanel.gd" id="4_led80"] [ext_resource type="Texture2D" uid="uid://bqib5y8uwg6hx" path="res://assets/游戏UI/钱币.webp" id="4_ql8k3"] -[ext_resource type="Script" uid="uid://fk4q3x6uqydd" path="res://GUI/PlayerRankingPanel.gd" id="4_yphxy"] [ext_resource type="Texture2D" uid="uid://waqbwo2r33j3" path="res://assets/游戏UI/小提示.webp" id="5_5b81d"] [ext_resource type="Texture2D" uid="uid://bnhyqsw8yjekh" path="res://assets/游戏UI/体力值图标.webp" id="5_n03md"] -[ext_resource type="PackedScene" uid="uid://crd28qnymob7" path="res://GUI/PlayerRankingItem.tscn" id="5_yphxy"] [ext_resource type="Texture2D" uid="uid://cj0qac0wmm0q8" path="res://assets/游戏UI/点赞图标.webp" id="6_8kysg"] [ext_resource type="PackedScene" uid="uid://cpxiaqh0y6a5d" path="res://Network/TCPNetworkManager.tscn" id="7_401ut"] [ext_resource type="Texture2D" uid="uid://d3pev0nbt8sjd" path="res://assets/游戏UI/玩家昵称.webp" id="7_n03md"] [ext_resource type="Texture2D" uid="uid://cxm72d5t4dn0q" path="res://assets/游戏UI/农场名称.webp" id="8_uhubb"] [ext_resource type="Texture2D" uid="uid://b665dc0ye72lg" path="res://assets/游戏UI/服务器连接状态.webp" id="9_uc6q1"] -[ext_resource type="Script" uid="uid://c7bxje0wvvgo4" path="res://GameCamera2D.gd" id="10_o8l48"] +[ext_resource type="Script" uid="uid://c7bxje0wvvgo4" path="res://game_camera.gd" id="10_o8l48"] [ext_resource type="Texture2D" uid="uid://dsuaw8kcdtrst" path="res://assets/游戏UI/FPS图标.webp" id="10_uhubb"] [ext_resource type="Texture2D" uid="uid://bso5fyjavdien" path="res://assets/游戏UI/玩家数图标.webp" id="10_vygm6"] -[ext_resource type="PackedScene" uid="uid://cbhitturvihqj" path="res://GUI/loginPanel.tscn" id="11_6jgly"] -[ext_resource type="PackedScene" uid="uid://dckc8nrn7p425" path="res://GUI/LandPanel.tscn" id="12_y1hsh"] -[ext_resource type="Script" uid="uid://ccaqrb6sdwbux" path="res://GUI/OnlineGiftPanel.gd" id="13_y1hsh"] -[ext_resource type="PackedScene" uid="uid://btp1h6hic2sin" path="res://GUI/AcceptDialog.tscn" id="16_0igvr"] +[ext_resource type="PackedScene" uid="uid://cbhitturvihqj" path="res://Scene/BigPanel/LoginPanel.tscn" id="11_6jgly"] +[ext_resource type="PackedScene" uid="uid://dckc8nrn7p425" path="res://Scene/SmallPanel/LandPanel.tscn" id="12_y1hsh"] +[ext_resource type="PackedScene" uid="uid://dpiy0aim20n2h" path="res://Scene/SmallPanel/OnlineGiftPanel.tscn" id="14_5b81d"] +[ext_resource type="PackedScene" uid="uid://4rwitowdt4h" path="res://Scene/SmallPanel/OneClickPlantPanel.tscn" id="15_8kysg"] +[ext_resource type="PackedScene" uid="uid://btp1h6hic2sin" path="res://Scene/Dialog/AcceptDialog.tscn" id="16_0igvr"] +[ext_resource type="PackedScene" uid="uid://dbfqu87627yg6" path="res://Scene/BigPanel/PlayerRankingPanel.tscn" id="16_n03md"] [ext_resource type="Script" uid="uid://dckw8dskfbnkp" path="res://background.gd" id="17_0igvr"] -[ext_resource type="PackedScene" uid="uid://bndf1e4sgdjr6" path="res://GUI/LuckyDrawPanel.tscn" id="17_f21le"] -[ext_resource type="Script" uid="uid://bruqwi63myl1m" path="res://GUI/ItemStorePanel.gd" id="17_vygm6"] -[ext_resource type="PackedScene" uid="uid://smypui0vyso5" path="res://GUI/DailyCheckInPanel.tscn" id="18_m6fch"] -[ext_resource type="Script" uid="uid://rlk8e51pibtm" path="res://GUI/OneClickPlantPanel.gd" id="18_n03md"] -[ext_resource type="Script" uid="uid://ptdj0qmobihd" path="res://GUI/CropWarehousePanel.gd" id="20_uc6q1"] -[ext_resource type="Script" uid="uid://b701r833vse3u" path="res://GUI/ItemBagPanel.gd" id="22_2e153"] -[ext_resource type="Texture2D" uid="uid://dsln1w1aqgf1k" path="res://assets/游戏UI/玩家默认头像.webp" id="23_5b81d"] -[ext_resource type="Script" uid="uid://dinrduqwsf5k5" path="res://GUI/AccountSettingPanel.gd" id="23_8kysg"] -[ext_resource type="Script" uid="uid://0d2j5m6j2ema" path="res://Components/HTTPTextureRect.gd" id="24_8kysg"] +[ext_resource type="PackedScene" uid="uid://bndf1e4sgdjr6" path="res://Scene/BigPanel/LuckyDrawPanel.tscn" id="17_f21le"] +[ext_resource type="PackedScene" uid="uid://hesp70n3ondo" path="res://Scene/BigPanel/CropStorePanel.tscn" id="17_ql8k3"] +[ext_resource type="PackedScene" uid="uid://drw18a6mcr2of" path="res://Scene/BigPanel/CropWarehousePanel.tscn" id="18_5b81d"] +[ext_resource type="PackedScene" uid="uid://smypui0vyso5" path="res://Scene/BigPanel/DailyCheckInPanel.tscn" id="18_m6fch"] +[ext_resource type="PackedScene" uid="uid://bseuwniienrqy" path="res://Scene/BigPanel/PlayerBagPanel.tscn" id="19_8kysg"] +[ext_resource type="PackedScene" uid="uid://cehw5sx5pgmmc" path="res://Scene/BigPanel/ItemBagPanel.tscn" id="20_n03md"] +[ext_resource type="PackedScene" uid="uid://j4ft87o7jk14" path="res://Scene/BigPanel/ItemStorePanel.tscn" id="21_uhubb"] +[ext_resource type="PackedScene" uid="uid://cw8am7nnbgca5" path="res://Scene/Pet/PetFightPanel.tscn" id="23_n03md"] +[ext_resource type="Script" uid="uid://bdhwvqsmakna2" path="res://Script/BigPanel/PetBagPanel.gd" id="23_uc6q1"] +[ext_resource type="PackedScene" uid="uid://cnjidcwuv4nn4" path="res://Scene/BigPanel/PetStorePanel.tscn" id="24_uc6q1"] +[ext_resource type="PackedScene" uid="uid://d3i0l6ysrde6o" path="res://Scene/SmallPanel/AccountSettingPanel.tscn" id="26_uc6q1"] +[ext_resource type="PackedScene" uid="uid://d1lu2yg4xl382" path="res://Scene/SmallPanel/LoadProgressPanel.tscn" id="27_vygm6"] +[ext_resource type="Script" uid="uid://bvhupqlw2h1j8" path="res://Script/SmallPanel/DebugPanel.gd" id="28_8kysg"] [ext_resource type="Script" uid="uid://ca2chgx5w3g1y" path="res://Components/GameBGMPlayer.gd" id="28_m6fch"] +[ext_resource type="Script" uid="uid://d4fvv2sjngajr" path="res://Script/Dialog/BatchBuyPopup.gd" id="29_5b81d"] +[ext_resource type="Texture2D" uid="uid://2sdfbvf1isif" path="res://icon.svg" id="31_uc6q1"] +[ext_resource type="Script" uid="uid://doo34ll0yb078" path="res://Script/SmallPanel/PetInformPanel.gd" id="31_vygm6"] +[ext_resource type="Script" uid="uid://bakeq8tm6r4j4" path="res://Script/SmallPanel/GlobalServerBroadcastPanel.gd" id="34_k1sw4"] +[ext_resource type="Script" uid="uid://dobao5y5s2dij" path="res://Script/SmallPanel/ScareCrowPanel.gd" id="35_6ylhg"] +[ext_resource type="Texture2D" uid="uid://d06uaoowmcvxj" path="res://assets/稻草人图片/稻草人2.webp" id="36_jyxgm"] +[ext_resource type="Texture2D" uid="uid://cbe0f8ex17csy" path="res://assets/稻草人图片/稻草人3.webp" id="37_6ylhg"] [ext_resource type="PackedScene" uid="uid://ibl5wbbw3pwc" path="res://CopyItems/item_button.tscn" id="39_cdkxt"] - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8kysg"] -border_width_left = 5 -border_width_top = 5 -border_width_right = 5 -border_width_bottom = 5 -corner_radius_top_left = 20 -corner_radius_top_right = 20 -corner_radius_bottom_right = 20 -corner_radius_bottom_left = 20 -corner_detail = 5 -shadow_size = 20 - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uc6q1"] -corner_radius_top_left = 10 -corner_radius_top_right = 10 -corner_radius_bottom_right = 10 -corner_radius_bottom_left = 10 -corner_detail = 20 +[ext_resource type="Script" uid="uid://dwf28j01ckg3y" path="res://Script/SmallPanel/WisdomTreePanel.gd" id="39_np7ck"] +[ext_resource type="Texture2D" uid="uid://bt1i2yhhlor5e" path="res://assets/地块/土块1.webp" id="41_cdkxt"] +[ext_resource type="Texture2D" uid="uid://3ff2lnbc0op7" path="res://assets/稻草人图片/稻草人1.webp" id="43_6rkns"] +[ext_resource type="Texture2D" uid="uid://nci8k65dcm6b" path="res://assets/草地图片/草地1.webp" id="43_jbja5"] +[ext_resource type="Texture2D" uid="uid://cbdm5e6s8bf6l" path="res://assets/智慧树图片/智慧树4.webp" id="45_xvovi"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n03md"] border_width_left = 5 @@ -67,32 +62,56 @@ corner_radius_bottom_left = 20 corner_detail = 20 shadow_size = 20 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y1hsh"] -border_color = Color(2.98411e-06, 0.95982, 0.386903, 1) -border_blend = true -corner_radius_top_left = 10 -corner_radius_top_right = 10 -corner_radius_bottom_right = 10 -corner_radius_bottom_left = 10 -corner_detail = 20 -shadow_size = 20 -shadow_offset = Vector2(10, 10) -anti_aliasing = false -anti_aliasing_size = 5.0 - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uhubb"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5b81d"] border_width_left = 10 border_width_top = 10 border_width_right = 10 border_width_bottom = 10 +corner_detail = 20 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_k1sw4"] +bg_color = Color(0.6, 0.6, 0.6, 0.984314) +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 +corner_detail = 20 +shadow_size = 20 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jyxgm"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_np7ck"] +border_width_left = 15 +border_width_top = 15 +border_width_right = 15 +border_width_bottom = 15 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 30 [sub_resource type="Environment" id="Environment_m6fch"] background_mode = 3 ambient_light_energy = 0.0 -glow_enabled = true glow_bloom = 0.3 glow_blend_mode = 0 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6ylhg"] +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 20 +shadow_offset = Vector2(3, 3) + [node name="main" type="Node"] script = ExtResource("1_v3yaj") @@ -306,6 +325,34 @@ theme_override_constants/shadow_outline_size = 10 theme_override_font_sizes/font_size = 25 text = "游戏小提示" +[node name="GlobalServerBroadcast_image" type="TextureRect" parent="UI/GUI/GameInfoHBox3"] +layout_mode = 2 +texture = ExtResource("5_5b81d") +expand_mode = 2 + +[node name="GlobalServerBroadcast" type="Label" parent="UI/GUI/GameInfoHBox3"] +custom_minimum_size = Vector2(300, 0) +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0.564706, 0.137255, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "全服大喇叭" +vertical_alignment = 1 +clip_text = true + +[node name="WatchBroadcast" type="Button" parent="UI/GUI/GameInfoHBox3"] +layout_mode = 2 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_colors/font_color = Color(0.513233, 0.513233, 0.513233, 1) +theme_override_constants/outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "查看" + [node name="FarmVBox" type="VBoxContainer" parent="UI/GUI"] layout_mode = 0 offset_left = 4.0 @@ -462,12 +509,17 @@ layout_mode = 2 theme_override_font_sizes/font_size = 40 text = "智慧树" -[node name="MyPetButton" type="Button" parent="UI/GUI/OtherVBox"] -visible = false +[node name="PetBagButton" type="Button" parent="UI/GUI/OtherVBox"] modulate = Color(0.992157, 0.482353, 0.870588, 1) layout_mode = 2 theme_override_font_sizes/font_size = 40 -text = "我的宠物" +text = "宠物背包" + +[node name="PetStoreButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.992157, 0.482353, 0.870588, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "宠物商店" [node name="ScareCrowButton" type="Button" parent="UI/GUI/OtherVBox"] visible = false @@ -476,1171 +528,833 @@ layout_mode = 2 theme_override_font_sizes/font_size = 40 text = "稻草人" -[node name="LoginPanel" parent="UI" instance=ExtResource("11_6jgly")] +[node name="BigPanel" type="CanvasLayer" parent="UI"] -[node name="LandPanel" parent="UI" instance=ExtResource("12_y1hsh")] +[node name="LuckyDrawPanel" parent="UI/BigPanel" instance=ExtResource("17_f21le")] visible = false -offset_left = 454.0 -offset_top = 77.0 -offset_right = 970.0 -offset_bottom = 548.0 - -[node name="OnlineGiftPanel" type="Panel" parent="UI"] -visible = false -offset_left = 449.0 -offset_top = 77.0 -offset_right = 970.0 -offset_bottom = 327.0 -script = ExtResource("13_y1hsh") - -[node name="Quit_Button" type="Button" parent="UI/OnlineGiftPanel"] -layout_mode = 0 -offset_left = 465.0 -offset_right = 515.0 -offset_bottom = 50.0 -theme_override_font_sizes/font_size = 30 -text = "X" - -[node name="HBox" type="HBoxContainer" parent="UI/OnlineGiftPanel"] -layout_mode = 0 -offset_right = 40.0 -offset_bottom = 40.0 - -[node name="Title" type="Label" parent="UI/OnlineGiftPanel"] -modulate = Color(0.996846, 0.629335, 1, 1) -layout_mode = 2 -offset_right = 516.0 -offset_bottom = 42.0 -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/shadow_offset_x = 3 -theme_override_constants/shadow_offset_y = 3 -theme_override_constants/outline_size = 10 -theme_override_constants/shadow_outline_size = 10 -theme_override_font_sizes/font_size = 30 -text = "在线礼包" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="Grid" type="GridContainer" parent="UI/OnlineGiftPanel"] -layout_mode = 2 -offset_top = 46.0 -offset_right = 500.0 -offset_bottom = 210.0 -columns = 5 - -[node name="OneMinute" type="Button" parent="UI/OnlineGiftPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_colors/font_color = Color(1, 0, 0, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "在线 -1分钟" -icon_alignment = 1 -expand_icon = true - -[node name="ThreeMinutes" type="Button" parent="UI/OnlineGiftPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_colors/font_color = Color(0.995313, 0.515623, 0.748044, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "在线 -3分钟" -icon_alignment = 1 -expand_icon = true - -[node name="FiveMinutes" type="Button" parent="UI/OnlineGiftPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_colors/font_color = Color(0.635294, 0.827451, 0.537255, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "在线 -5分钟" -icon_alignment = 1 -expand_icon = true - -[node name="TenMinutes" type="Button" parent="UI/OnlineGiftPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(0.760784, 0.533333, 0.160784, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "在线 -10分钟" -icon_alignment = 1 -expand_icon = true - -[node name="ThirtyMinutes" type="Button" parent="UI/OnlineGiftPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(0.870588, 0.870588, 0, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "在线 -30分钟" -icon_alignment = 1 -expand_icon = true - -[node name="OneHour" type="Button" parent="UI/OnlineGiftPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(0.188235, 0.839216, 0.243137, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "在线 -1小时" -icon_alignment = 1 -expand_icon = true - -[node name="ThreeHours" type="Button" parent="UI/OnlineGiftPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_colors/font_color = Color(0, 0.87451, 0.87451, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "在线 -3小时" -icon_alignment = 1 -expand_icon = true - -[node name="FiveHours" type="Button" parent="UI/OnlineGiftPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(0.509804, 0.301961, 0.85098, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "在线 -5小时" -icon_alignment = 1 -expand_icon = true - -[node name="OneClickPlantPanel" type="Panel" parent="UI"] -visible = false -offset_left = 450.0 -offset_top = 77.0 -offset_right = 966.0 -offset_bottom = 327.0 -script = ExtResource("18_n03md") - -[node name="Quit_Button" type="Button" parent="UI/OneClickPlantPanel"] -layout_mode = 0 -offset_left = 465.0 -offset_right = 515.0 -offset_bottom = 50.0 -theme_override_font_sizes/font_size = 30 -text = "X" - -[node name="Title" type="Label" parent="UI/OneClickPlantPanel"] -self_modulate = Color(0.431373, 0.498039, 1, 1) -layout_mode = 2 -offset_right = 516.0 -offset_bottom = 42.0 -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/shadow_offset_x = 3 -theme_override_constants/shadow_offset_y = 3 -theme_override_constants/outline_size = 10 -theme_override_constants/shadow_outline_size = 10 -theme_override_font_sizes/font_size = 30 -text = "一键种植面板" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="Grid" type="GridContainer" parent="UI/OneClickPlantPanel"] -layout_mode = 2 -offset_top = 46.0 -offset_right = 500.0 -offset_bottom = 210.0 -columns = 5 - -[node name="FullScreenPlantBtn" type="Button" parent="UI/OneClickPlantPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(1, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "全屏种植" -icon_alignment = 1 -expand_icon = true - -[node name="OneRowPlantBtn" type="Button" parent="UI/OneClickPlantPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(1, 0.972549, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "行种植" -icon_alignment = 1 -expand_icon = true - -[node name="OneColumnPlantBtn" type="Button" parent="UI/OneClickPlantPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(0, 1, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "列种植" -icon_alignment = 1 -expand_icon = true - -[node name="NineSquarePlantBtn" type="Button" parent="UI/OneClickPlantPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(0, 1, 1, 1) -theme_override_font_sizes/font_size = 20 -text = "九宫格 -种植" -icon_alignment = 1 -expand_icon = true - -[node name="CrossPlantBtn" type="Button" parent="UI/OneClickPlantPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(1, 0.54902, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "十字法 -种植" -icon_alignment = 1 -expand_icon = true - -[node name="RandomPlantBtn" type="Button" parent="UI/OneClickPlantPanel/Grid"] -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_color = Color(1, 0.49586, 0.63552, 1) -theme_override_font_sizes/font_size = 20 -text = "随机种植" -icon_alignment = 1 -expand_icon = true - -[node name="PlayerRankingPanel" type="Panel" parent="UI"] -visible = false -offset_left = 2.0 -offset_right = 1402.0 -offset_bottom = 720.0 -script = ExtResource("4_yphxy") - -[node name="RegisterPlayerNum" type="Label" parent="UI/PlayerRankingPanel"] -self_modulate = Color(1, 0.701961, 1, 1) -layout_mode = 0 -offset_left = 864.0 -offset_right = 1014.0 -offset_bottom = 42.0 -theme_override_font_sizes/font_size = 30 -text = "注册人数:" - -[node name="Title" type="RichTextLabel" parent="UI/PlayerRankingPanel"] -layout_mode = 2 -offset_left = 2.0 -offset_right = 1395.0 -offset_bottom = 56.0 -size_flags_vertical = 3 -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_constants/outline_size = 10 -theme_override_constants/shadow_offset_y = 3 -theme_override_constants/shadow_offset_x = 3 -theme_override_constants/shadow_outline_size = 10 -theme_override_font_sizes/normal_font_size = 40 -bbcode_enabled = true -text = "玩家排行榜" -horizontal_alignment = 1 - -[node name="SearchLineEdit" type="LineEdit" parent="UI/PlayerRankingPanel"] -layout_mode = 0 -offset_left = 143.0 -offset_top = 3.0 -offset_right = 426.0 -offset_bottom = 60.0 -theme_override_font_sizes/font_size = 35 -text = "输入要搜索的人" - -[node name="RefreshButton" type="Button" parent="UI/PlayerRankingPanel"] -custom_minimum_size = Vector2(55, 55) -layout_mode = 0 -offset_top = 3.0 -offset_right = 78.0 -offset_bottom = 60.0 -theme_override_font_sizes/font_size = 35 -text = "刷新" - -[node name="SearchButton" type="Button" parent="UI/PlayerRankingPanel"] -custom_minimum_size = Vector2(55, 55) -layout_mode = 0 offset_left = 425.0 -offset_top = 3.0 -offset_right = 503.0 -offset_bottom = 60.0 -theme_override_font_sizes/font_size = 35 -text = "搜索" +offset_top = 2.0 +offset_right = 1025.0 +offset_bottom = 722.0 -[node name="QuitButton" type="Button" parent="UI/PlayerRankingPanel"] -custom_minimum_size = Vector2(55, 55) -layout_mode = 0 -offset_left = 1338.0 -offset_top = 3.0 -offset_right = 1395.0 -offset_bottom = 60.0 -theme_override_font_sizes/font_size = 35 -text = "X" - -[node name="FiterAndSortHBox" type="HBoxContainer" parent="UI/PlayerRankingPanel"] -layout_mode = 0 -offset_top = 63.0 -offset_right = 1398.0 -offset_bottom = 120.0 - -[node name="SortLabel" type="Label" parent="UI/PlayerRankingPanel/FiterAndSortHBox"] -layout_mode = 2 -size_flags_vertical = 1 -theme_override_font_sizes/font_size = 30 -text = "排序:" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="MoneySortBtn" type="Button" parent="UI/PlayerRankingPanel/FiterAndSortHBox"] -self_modulate = Color(1, 1, 0.321569, 1) -custom_minimum_size = Vector2(158, 57) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "钱币" - -[node name="SeedSortBtn" type="Button" parent="UI/PlayerRankingPanel/FiterAndSortHBox"] -self_modulate = Color(0.329412, 1, 0.345098, 1) -custom_minimum_size = Vector2(158, 57) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "种子数" - -[node name="LevelSortBtn" type="Button" parent="UI/PlayerRankingPanel/FiterAndSortHBox"] -self_modulate = Color(0, 1, 1, 1) -custom_minimum_size = Vector2(158, 57) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "等级" - -[node name="OnlineTimeSortBtn" type="Button" parent="UI/PlayerRankingPanel/FiterAndSortHBox"] -self_modulate = Color(0.784314, 0.733333, 0.521569, 1) -custom_minimum_size = Vector2(158, 57) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "在线时长" - -[node name="LoginTimeSortBtn" type="Button" parent="UI/PlayerRankingPanel/FiterAndSortHBox"] -self_modulate = Color(0.811765, 1, 0.811765, 1) -custom_minimum_size = Vector2(158, 57) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "登录时间" - -[node name="LikeNumSortBtn" type="Button" parent="UI/PlayerRankingPanel/FiterAndSortHBox"] -self_modulate = Color(1, 0.513726, 1, 1) -custom_minimum_size = Vector2(158, 57) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "点赞数" - -[node name="IsOnlineSortBtn" type="Button" parent="UI/PlayerRankingPanel/FiterAndSortHBox"] -self_modulate = Color(0.691357, 0.691357, 0.691357, 1) -custom_minimum_size = Vector2(158, 57) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "在线情况" - -[node name="Scroll" type="ScrollContainer" parent="UI/PlayerRankingPanel"] -layout_mode = 2 -offset_top = 121.0 -offset_right = 1400.0 -offset_bottom = 720.0 -size_flags_vertical = 3 - -[node name="PlayerList" type="VBoxContainer" parent="UI/PlayerRankingPanel/Scroll"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 - -[node name="player_ranking_item" parent="UI/PlayerRankingPanel/Scroll/PlayerList" instance=ExtResource("5_yphxy")] -layout_mode = 2 - -[node name="CropStorePanel" type="Panel" parent="UI"] -visible = false -offset_left = 126.0 -offset_top = 70.0 -offset_right = 1525.0 -offset_bottom = 790.0 -scale = Vector2(0.8, 0.8) -size_flags_horizontal = 3 -size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_8kysg") -script = ExtResource("3_qtrx8") - -[node name="TMBackGround" type="ColorRect" parent="UI/CropStorePanel"] -layout_mode = 0 -offset_left = -157.0 -offset_top = -87.0 -offset_right = 1592.0 -offset_bottom = 811.0 -color = Color(1, 1, 1, 0) - -[node name="Title" type="Label" parent="UI/CropStorePanel"] -layout_mode = 2 -offset_right = 1397.0 -offset_bottom = 55.0 -size_flags_horizontal = 3 -theme_override_colors/font_color = Color(1, 0.964706, 0, 1) -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/shadow_offset_x = 5 -theme_override_constants/shadow_offset_y = 5 -theme_override_constants/outline_size = 15 -theme_override_constants/shadow_outline_size = 15 -theme_override_font_sizes/font_size = 50 -text = "种子商店" -horizontal_alignment = 1 - -[node name="SortContainer" type="HBoxContainer" parent="UI/CropStorePanel"] -layout_mode = 0 -offset_top = 78.0 -offset_right = 1399.0 -offset_bottom = 141.0 -alignment = 1 - -[node name="FilterLabel" type="Label" parent="UI/CropStorePanel/SortContainer"] -self_modulate = Color(0.607843, 0.647059, 1, 1) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "筛选:" - -[node name="Sort_All" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "全部" - -[node name="Sort_Common" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "普通" - -[node name="Sort_Superior" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "优良" - -[node name="Sort_Rare" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "稀有" - -[node name="Sort_Epic" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "史诗" - -[node name="Sort_Legendary" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "传奇" - -[node name="SortLabel" type="Label" parent="UI/CropStorePanel/SortContainer"] -self_modulate = Color(0.607843, 0.647059, 1, 1) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "排序:" - -[node name="Sort_Price" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按价格" - -[node name="Sort_GrowTime" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按生长时间" - -[node name="Sort_Profit" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按收益" - -[node name="Sort_Level" type="Button" parent="UI/CropStorePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按等级" - -[node name="ScrollContainer" type="ScrollContainer" parent="UI/CropStorePanel"] -layout_mode = 2 -offset_left = 13.0 -offset_top = 144.0 -offset_right = 3450.0 -offset_bottom = 1551.0 -scale = Vector2(0.4, 0.4) -size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_uc6q1") -horizontal_scroll_mode = 0 -vertical_scroll_mode = 2 -scroll_deadzone = -10 - -[node name="Crop_Grid" type="GridContainer" parent="UI/CropStorePanel/ScrollContainer"] -layout_mode = 2 -size_flags_horizontal = 6 -size_flags_vertical = 3 -columns = 8 - -[node name="QuitButton" type="Button" parent="UI/CropStorePanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 1327.0 -offset_top = 13.0 -offset_right = 1387.0 -offset_bottom = 76.0 -theme_override_font_sizes/font_size = 40 -text = "X" - -[node name="RefreshButton" type="Button" parent="UI/CropStorePanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 13.0 -offset_top = 11.0 -offset_right = 101.0 -offset_bottom = 74.0 -theme_override_font_sizes/font_size = 40 -text = "刷新" - -[node name="CropWarehousePanel" type="Panel" parent="UI"] -visible = false -offset_left = 119.0 -offset_top = 77.0 -offset_right = 1518.0 -offset_bottom = 797.0 -scale = Vector2(0.8, 0.8) -size_flags_horizontal = 3 -size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_8kysg") -script = ExtResource("20_uc6q1") - -[node name="TMBackGround" type="ColorRect" parent="UI/CropWarehousePanel"] -layout_mode = 0 -offset_left = -76.0 -offset_top = -39.0 -offset_right = 1480.0 -offset_bottom = 764.0 -color = Color(1, 1, 1, 0) - -[node name="Title" type="Label" parent="UI/CropWarehousePanel"] -layout_mode = 2 -offset_right = 1397.0 -offset_bottom = 55.0 -size_flags_horizontal = 3 -theme_override_colors/font_color = Color(1, 0.964706, 0, 1) -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/shadow_offset_x = 3 -theme_override_constants/shadow_offset_y = 3 -theme_override_constants/outline_size = 10 -theme_override_constants/shadow_outline_size = 10 -theme_override_font_sizes/font_size = 40 -text = "作物仓库" -horizontal_alignment = 1 - -[node name="SortContainer" type="HBoxContainer" parent="UI/CropWarehousePanel"] -layout_mode = 0 -offset_top = 58.0 -offset_right = 1399.0 -offset_bottom = 121.0 -alignment = 1 - -[node name="FilterLabel" type="Label" parent="UI/CropWarehousePanel/SortContainer"] -self_modulate = Color(0.607843, 1, 1, 1) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "筛选:" - -[node name="Sort_All" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "全部" - -[node name="Sort_Common" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "普通" - -[node name="Sort_Superior" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "优良" - -[node name="Sort_Rare" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "稀有" - -[node name="Sort_Epic" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "史诗" - -[node name="Sort_Legendary" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "传奇" - -[node name="SortLabel" type="Label" parent="UI/CropWarehousePanel/SortContainer"] -self_modulate = Color(0.607843, 1, 1, 1) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "排序:" - -[node name="Sort_Price" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按价格" - -[node name="Sort_GrowTime" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按生长时间" - -[node name="Sort_Profit" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按收益" - -[node name="Sort_Level" type="Button" parent="UI/CropWarehousePanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按等级" - -[node name="ScrollContainer" type="ScrollContainer" parent="UI/CropWarehousePanel"] -layout_mode = 2 -offset_left = 9.0 -offset_top = 121.0 -offset_right = 3462.0 -offset_bottom = 1588.0 -scale = Vector2(0.4, 0.4) -size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_uc6q1") -horizontal_scroll_mode = 0 -vertical_scroll_mode = 2 -scroll_deadzone = -10 - -[node name="Warehouse_Grid" type="GridContainer" parent="UI/CropWarehousePanel/ScrollContainer"] -layout_mode = 2 -size_flags_horizontal = 6 -size_flags_vertical = 3 -columns = 8 - -[node name="QuitButton" type="Button" parent="UI/CropWarehousePanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 1327.5 -offset_top = 10.0 -offset_right = 1387.5 -offset_bottom = 73.0 -theme_override_font_sizes/font_size = 40 -text = "X" - -[node name="RefreshButton" type="Button" parent="UI/CropWarehousePanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 12.5001 -offset_top = 12.5 -offset_right = 100.5 -offset_bottom = 75.5 -theme_override_font_sizes/font_size = 40 -text = "刷新" - -[node name="PlayerBagPanel" type="Panel" parent="UI"] -visible = false -offset_left = 157.0 -offset_top = 79.0 -offset_right = 1554.0 -offset_bottom = 799.0 -scale = Vector2(0.8, 0.8) -size_flags_horizontal = 3 -size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_n03md") -script = ExtResource("4_led80") - -[node name="TMBackGround" type="ColorRect" parent="UI/PlayerBagPanel"] -layout_mode = 0 -offset_left = -157.0 -offset_top = -85.0 -offset_right = 1595.0 -offset_bottom = 811.0 -color = Color(1, 1, 1, 0) - -[node name="SortContainer" type="HBoxContainer" parent="UI/PlayerBagPanel"] -layout_mode = 0 -offset_top = 58.0 -offset_right = 1397.0 -offset_bottom = 121.0 -alignment = 1 - -[node name="FilterLabel" type="Label" parent="UI/PlayerBagPanel/SortContainer"] -modulate = Color(0.439216, 0.560784, 1, 1) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "排序:" - -[node name="Sort_All" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "全部" - -[node name="Sort_Common" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "普通" - -[node name="Sort_Superior" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "优良" - -[node name="Sort_Rare" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "稀有" - -[node name="Sort_Epic" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "史诗" - -[node name="Sort_Legendary" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "传奇" - -[node name="SortLabel" type="Label" parent="UI/PlayerBagPanel/SortContainer"] -modulate = Color(0.439216, 0.560784, 1, 1) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "排序:" - -[node name="Sort_Price" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按价格" - -[node name="Sort_GrowTime" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按生长时间" - -[node name="Sort_Profit" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按收益" - -[node name="Sort_Level" type="Button" parent="UI/PlayerBagPanel/SortContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "按等级" - -[node name="ScrollContainer" type="ScrollContainer" parent="UI/PlayerBagPanel"] -layout_mode = 2 -offset_left = 11.0 -offset_top = 121.0 -offset_right = 3452.0 -offset_bottom = 1592.0 -scale = Vector2(0.4, 0.4) -size_flags_vertical = 3 -horizontal_scroll_mode = 0 - -[node name="Bag_Grid" type="GridContainer" parent="UI/PlayerBagPanel/ScrollContainer"] -layout_mode = 2 -size_flags_horizontal = 6 -size_flags_vertical = 3 -columns = 8 - -[node name="Title" type="Label" parent="UI/PlayerBagPanel"] -layout_mode = 2 -offset_right = 1396.0 -offset_bottom = 55.0 -size_flags_horizontal = 3 -theme_override_colors/font_color = Color(1, 1, 1, 1) -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/shadow_offset_x = 2 -theme_override_constants/shadow_offset_y = 2 -theme_override_constants/outline_size = 10 -theme_override_constants/shadow_outline_size = 10 -theme_override_font_sizes/font_size = 40 -text = "种子仓库" -horizontal_alignment = 1 - -[node name="QuitButton" type="Button" parent="UI/PlayerBagPanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 1326.25 -offset_top = 13.75 -offset_right = 1386.25 -offset_bottom = 76.75 -theme_override_font_sizes/font_size = 40 -text = "X" - -[node name="RefreshButton" type="Button" parent="UI/PlayerBagPanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 15.0001 -offset_top = 13.75 -offset_right = 75.0001 -offset_bottom = 76.75 -theme_override_font_sizes/font_size = 40 -text = "刷新" - -[node name="ItemBagPanel" type="Panel" parent="UI"] -visible = false -offset_left = 145.0 -offset_top = 79.0 -offset_right = 1542.0 -offset_bottom = 799.0 -scale = Vector2(0.8, 0.8) -size_flags_horizontal = 3 -size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_n03md") -script = ExtResource("22_2e153") - -[node name="TMBackGround" type="ColorRect" parent="UI/ItemBagPanel"] -layout_mode = 0 -offset_left = -179.0 -offset_top = -100.0 -offset_right = 1566.0 -offset_bottom = 800.0 -color = Color(1, 1, 1, 0) - -[node name="ScrollContainer" type="ScrollContainer" parent="UI/ItemBagPanel"] -layout_mode = 2 -offset_left = 13.0 -offset_top = 95.0 -offset_right = 3437.0 -offset_bottom = 1608.0 -scale = Vector2(0.4, 0.4) -size_flags_vertical = 3 -horizontal_scroll_mode = 0 - -[node name="Bag_Grid" type="GridContainer" parent="UI/ItemBagPanel/ScrollContainer"] -layout_mode = 2 -size_flags_horizontal = 6 -size_flags_vertical = 3 -columns = 8 - -[node name="Title" type="Label" parent="UI/ItemBagPanel"] -layout_mode = 2 -offset_right = 1396.0 -offset_bottom = 55.0 -size_flags_horizontal = 3 -theme_override_colors/font_color = Color(1, 1, 0.807843, 1) -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/shadow_offset_x = 4 -theme_override_constants/shadow_offset_y = 4 -theme_override_constants/outline_size = 15 -theme_override_constants/shadow_outline_size = 15 -theme_override_font_sizes/font_size = 40 -text = "道具背包" -horizontal_alignment = 1 - -[node name="QuitButton" type="Button" parent="UI/ItemBagPanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 1325.0 -offset_top = 12.5 -offset_right = 1385.0 -offset_bottom = 75.5 -theme_override_font_sizes/font_size = 40 -text = "X" - -[node name="RefreshButton" type="Button" parent="UI/ItemBagPanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 12.5 -offset_top = 13.75 -offset_right = 100.5 -offset_bottom = 76.75 -theme_override_font_sizes/font_size = 40 -text = "刷新" - -[node name="ItemStorePanel" type="Panel" parent="UI"] -visible = false -offset_left = 145.0 -offset_top = 79.0 -offset_right = 1542.0 -offset_bottom = 799.0 -scale = Vector2(0.8, 0.8) -size_flags_horizontal = 3 -size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_n03md") -script = ExtResource("17_vygm6") - -[node name="TMBackGround" type="ColorRect" parent="UI/ItemStorePanel"] -layout_mode = 0 -offset_left = -184.0 -offset_top = -100.0 -offset_right = 1571.0 -offset_bottom = 804.0 -color = Color(1, 1, 1, 0) - -[node name="ScrollContainer" type="ScrollContainer" parent="UI/ItemStorePanel"] -layout_mode = 2 -offset_left = 15.0 -offset_top = 88.0 -offset_right = 3434.0 -offset_bottom = 1626.0 -scale = Vector2(0.4, 0.4) -size_flags_vertical = 3 -horizontal_scroll_mode = 0 - -[node name="Store_Grid" type="GridContainer" parent="UI/ItemStorePanel/ScrollContainer"] -layout_mode = 2 -size_flags_horizontal = 6 -size_flags_vertical = 3 -columns = 8 - -[node name="Title" type="Label" parent="UI/ItemStorePanel"] -layout_mode = 2 -offset_right = 1396.0 -offset_bottom = 62.0 -size_flags_horizontal = 3 -theme_override_colors/font_color = Color(1, 1, 0.807843, 1) -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/shadow_offset_x = 4 -theme_override_constants/shadow_offset_y = 4 -theme_override_constants/outline_size = 15 -theme_override_constants/shadow_outline_size = 15 -theme_override_font_sizes/font_size = 40 -text = "道具商店" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="QuitButton" type="Button" parent="UI/ItemStorePanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 1325.0 -offset_top = 11.25 -offset_right = 1385.0 -offset_bottom = 74.25 -theme_override_font_sizes/font_size = 40 -text = "X" - -[node name="RefreshButton" type="Button" parent="UI/ItemStorePanel"] -custom_minimum_size = Vector2(60, 60) -layout_mode = 2 -offset_left = 12.5 -offset_top = 12.5 -offset_right = 100.5 -offset_bottom = 75.5 -theme_override_font_sizes/font_size = 40 -text = "刷新" - -[node name="TCPNetworkManager" parent="UI" instance=ExtResource("7_401ut")] -visible = false -offset_left = 2.00012 -offset_top = 143.0 -offset_right = 2.00012 -offset_bottom = 143.0 -scale = Vector2(0.7, 0.7) - -[node name="AcceptDialog" parent="UI" instance=ExtResource("16_0igvr")] -visible = false - -[node name="LuckyDrawPanel" parent="UI" instance=ExtResource("17_f21le")] -visible = false -offset_left = 442.0 -offset_right = 1042.0 - -[node name="DailyCheckInPanel" parent="UI" instance=ExtResource("18_m6fch")] +[node name="DailyCheckInPanel" parent="UI/BigPanel" instance=ExtResource("18_m6fch")] visible = false offset_left = 442.0 offset_top = 3.0 offset_right = 1042.0 offset_bottom = 723.0 -[node name="AccountSettingPanel" type="Panel" parent="UI"] +[node name="TCPNetworkManagerPanel" parent="UI/BigPanel" instance=ExtResource("7_401ut")] visible = false -offset_left = 243.0 -offset_top = 42.0 -offset_right = 1154.0 -offset_bottom = 689.0 -theme_override_styles/panel = SubResource("StyleBoxFlat_y1hsh") -script = ExtResource("23_8kysg") +offset_top = 97.0 +offset_bottom = 97.0 +scale = Vector2(0.7, 0.7) -[node name="Title" type="RichTextLabel" parent="UI/AccountSettingPanel"] -modulate = Color(1, 0.745098, 0.54902, 1) -layout_mode = 0 -offset_left = 2.0 -offset_right = 911.0 -offset_bottom = 56.0 +[node name="PlayerRankingPanel" parent="UI/BigPanel" instance=ExtResource("16_n03md")] +visible = false +offset_left = 0.0 +offset_right = 1400.0 + +[node name="ItemStorePanel" parent="UI/BigPanel" instance=ExtResource("21_uhubb")] +offset_left = 80.0 +offset_top = 77.0 +offset_right = 1620.0 +offset_bottom = 797.0 + +[node name="CropWarehousePanel" parent="UI/BigPanel" instance=ExtResource("18_5b81d")] + +[node name="LoginPanel" parent="UI/BigPanel" instance=ExtResource("11_6jgly")] +visible = false +top_level = true +offset_left = 342.0 +offset_top = 40.0 +offset_right = 1092.0 +offset_bottom = 700.0 + +[node name="PlayerBagPanel" parent="UI/BigPanel" instance=ExtResource("19_8kysg")] +visible = false + +[node name="CropStorePanel" parent="UI/BigPanel" instance=ExtResource("17_ql8k3")] +visible = false + +[node name="ItemBagPanel" parent="UI/BigPanel" instance=ExtResource("20_n03md")] +visible = false + +[node name="PetStorePanel" parent="UI/BigPanel" instance=ExtResource("24_uc6q1")] +visible = false + +[node name="PetBagPanel" type="Panel" parent="UI/BigPanel"] +visible = false +offset_left = 69.0 +offset_top = 56.0 +offset_right = 1635.0 +offset_bottom = 836.0 +scale = Vector2(0.8, 0.8) +size_flags_horizontal = 3 size_flags_vertical = 3 -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_constants/outline_size = 10 -theme_override_constants/shadow_offset_y = 3 -theme_override_constants/shadow_offset_x = 3 -theme_override_constants/shadow_outline_size = 10 -theme_override_font_sizes/normal_font_size = 40 -bbcode_enabled = true -text = "玩家信息设置" -horizontal_alignment = 1 -threaded = true +theme_override_styles/panel = SubResource("StyleBoxFlat_n03md") +script = ExtResource("23_uc6q1") -[node name="QuitButton" type="Button" parent="UI/AccountSettingPanel"] -custom_minimum_size = Vector2(55, 55) +[node name="TMBackGround" type="ColorRect" parent="UI/BigPanel/PetBagPanel"] layout_mode = 0 -offset_left = 854.0 -offset_right = 911.0 -offset_bottom = 57.0 -theme_override_font_sizes/font_size = 35 +offset_left = -90.0 +offset_top = -71.0 +offset_right = 1672.0 +offset_bottom = 831.0 +color = Color(1, 1, 1, 0) + +[node name="ScrollContainer" type="ScrollContainer" parent="UI/BigPanel/PetBagPanel"] +layout_mode = 2 +offset_left = 28.0 +offset_top = 95.0 +offset_right = 3805.0 +offset_bottom = 1723.0 +scale = Vector2(0.4, 0.4) +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="Bag_Grid" type="GridContainer" parent="UI/BigPanel/PetBagPanel/ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 3 +columns = 8 + +[node name="Title" type="Label" parent="UI/BigPanel/PetBagPanel"] +layout_mode = 2 +offset_right = 1566.0 +offset_bottom = 69.0 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(1, 1, 0.807843, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_offset_y = 4 +theme_override_constants/outline_size = 15 +theme_override_constants/shadow_outline_size = 15 +theme_override_font_sizes/font_size = 50 +text = "宠物背包2" +horizontal_alignment = 1 + +[node name="QuitButton" type="Button" parent="UI/BigPanel/PetBagPanel"] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 1478.75 +offset_top = 20.0 +offset_right = 1538.75 +offset_bottom = 83.0 +theme_override_font_sizes/font_size = 40 text = "X" -[node name="RefreshButton" type="Button" parent="UI/AccountSettingPanel"] -custom_minimum_size = Vector2(55, 55) -layout_mode = 0 -offset_left = 2.0 -offset_right = 80.0 -offset_bottom = 57.0 -theme_override_font_sizes/font_size = 35 +[node name="RefreshButton" type="Button" parent="UI/BigPanel/PetBagPanel"] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 27.5 +offset_top = 16.25 +offset_right = 115.5 +offset_bottom = 79.25 +theme_override_font_sizes/font_size = 40 text = "刷新" -[node name="VBox1" type="VBoxContainer" parent="UI/AccountSettingPanel"] -layout_mode = 0 -offset_top = 58.0 +[node name="PetFightPanel" parent="UI/BigPanel" instance=ExtResource("23_n03md")] +visible = false + +[node name="SmallPanel" type="CanvasLayer" parent="UI"] + +[node name="LandPanel" parent="UI/SmallPanel" instance=ExtResource("12_y1hsh")] +visible = false +offset_left = 442.0 +offset_top = 77.0 +offset_right = 958.0 +offset_bottom = 548.0 + +[node name="LoadProgressPanel" parent="UI/SmallPanel" instance=ExtResource("27_vygm6")] + +[node name="AccountSettingPanel" parent="UI/SmallPanel" instance=ExtResource("26_uc6q1")] +offset_left = 0.0 +offset_top = 0.0 offset_right = 911.0 offset_bottom = 647.0 -[node name="HBox1" type="HBoxContainer" parent="UI/AccountSettingPanel/VBox1"] -layout_mode = 2 -alignment = 1 +[node name="OneClickPlantPanel" parent="UI/SmallPanel" instance=ExtResource("15_8kysg")] +offset_left = 0.0 +offset_top = 0.0 +offset_right = 516.0 +offset_bottom = 250.0 -[node name="HTTPTextureRect" type="TextureRect" parent="UI/AccountSettingPanel/VBox1/HBox1"] -layout_mode = 2 -texture = ExtResource("23_5b81d") -script = ExtResource("24_8kysg") -metadata/_custom_type_script = "uid://0d2j5m6j2ema" +[node name="OnlineGiftPanel" parent="UI/SmallPanel" instance=ExtResource("14_5b81d")] +offset_left = 0.0 +offset_top = 0.0 +offset_right = 521.0 +offset_bottom = 250.0 -[node name="Grid" type="GridContainer" parent="UI/AccountSettingPanel/VBox1"] -layout_mode = 2 -columns = 2 - -[node name="User_Name" type="Label" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "账户:" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="User_Name_Input" type="Label" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "74074091740" -vertical_alignment = 1 - -[node name="User_Password" type="Label" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "密码:" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="User_Password_Input" type="LineEdit" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 30 -placeholder_text = "请输入密码" - -[node name="Player_Name" type="Label" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "玩家昵称:" - -[node name="Player_Name_Input" type="LineEdit" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 30 -placeholder_text = "请输入玩家昵称" - -[node name="Farm_Name" type="Label" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "农场名称:" - -[node name="Farm_Name_Input" type="LineEdit" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 30 -placeholder_text = "请输入农场名称" - -[node name="Personal_Profile" type="Label" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "个人简介:" - -[node name="Personal_Profile_Input" type="LineEdit" parent="UI/AccountSettingPanel/VBox1/Grid"] -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 30 -placeholder_text = "请输入个人简介" - -[node name="HBox2" type="HBoxContainer" parent="UI/AccountSettingPanel/VBox1"] -layout_mode = 2 -alignment = 1 - -[node name="Remove_Account_Btn" type="Button" parent="UI/AccountSettingPanel/VBox1/HBox2"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "删除账号" - -[node name="Confirm_Btn" type="Button" parent="UI/AccountSettingPanel/VBox1/HBox2"] -layout_mode = 2 -theme_override_font_sizes/font_size = 30 -text = "确认修改" - -[node name="LoadProgressPanel" type="Panel" parent="UI"] +[node name="DebugPanel" type="Panel" parent="UI/SmallPanel"] visible = false +offset_left = 1000.0 +offset_top = -3.0 offset_right = 1402.0 -offset_bottom = 719.0 -theme_override_styles/panel = SubResource("StyleBoxFlat_uhubb") +offset_bottom = 716.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_5b81d") +script = ExtResource("28_8kysg") -[node name="Title" type="Label" parent="UI/LoadProgressPanel"] +[node name="Title" type="Label" parent="UI/SmallPanel/DebugPanel"] layout_mode = 0 -offset_right = 1402.0 -offset_bottom = 550.0 -theme_override_colors/font_color = Color(0.966397, 0.970739, 0.632937, 1) -theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/shadow_offset_x = 5 -theme_override_constants/shadow_offset_y = 5 -theme_override_constants/outline_size = 10 -theme_override_constants/shadow_outline_size = 10 +offset_right = 402.0 +offset_bottom = 60.0 theme_override_font_sizes/font_size = 40 -text = "正在加载资源中,请稍后..." +text = "调试面板" horizontal_alignment = 1 vertical_alignment = 1 -[node name="LoadProgressBar" type="ProgressBar" parent="UI/LoadProgressPanel"] +[node name="DebugRichText" type="RichTextLabel" parent="UI/SmallPanel/DebugPanel"] layout_mode = 0 offset_left = 8.0 -offset_top = 430.0 -offset_right = 1396.0 -offset_bottom = 489.0 -theme_override_colors/font_color = Color(0, 1, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/outline_size = 7 +offset_top = 63.0 +offset_right = 391.0 +offset_bottom = 709.0 +theme_override_font_sizes/normal_font_size = 20 +bbcode_enabled = true + +[node name="QuitButton" type="Button" parent="UI/SmallPanel/DebugPanel"] +custom_minimum_size = Vector2(70, 70) +layout_mode = 0 +offset_left = 322.0 +offset_top = 11.0 +offset_right = 392.0 +offset_bottom = 81.0 theme_override_font_sizes/font_size = 40 +text = "X" + +[node name="PetInformPanel" type="Panel" parent="UI/SmallPanel"] +visible = false +offset_left = 342.0 +offset_right = 1022.0 +offset_bottom = 723.0 +script = ExtResource("31_vygm6") + +[node name="Title" type="Label" parent="UI/SmallPanel/PetInformPanel"] +layout_mode = 0 +offset_right = 680.0 +offset_bottom = 49.0 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_offset_y = 4 +theme_override_constants/outline_size = 20 +theme_override_constants/shadow_outline_size = 20 +theme_override_font_sizes/font_size = 35 +text = "宠物信息" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="PetImage" type="TextureRect" parent="UI/SmallPanel/PetInformPanel"] +layout_mode = 0 +offset_left = 289.0 +offset_top = 56.0 +offset_right = 422.0 +offset_bottom = 184.0 +scale = Vector2(0.8, 0.8) +texture = ExtResource("31_uc6q1") + +[node name="InformScroll" type="ScrollContainer" parent="UI/SmallPanel/PetInformPanel"] +layout_mode = 0 +offset_top = 159.0 +offset_right = 683.0 +offset_bottom = 647.0 + +[node name="VBox" type="VBoxContainer" parent="UI/SmallPanel/PetInformPanel/InformScroll"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +alignment = 1 + +[node name="PetNameHBox" type="HBoxContainer" parent="UI/SmallPanel/PetInformPanel/InformScroll/VBox"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="PetName" type="Label" parent="UI/SmallPanel/PetInformPanel/InformScroll/VBox/PetNameHBox"] +layout_mode = 2 +theme_override_font_sizes/font_size = 25 +text = "宠物名字" +horizontal_alignment = 1 + +[node name="PetNameEdit" type="LineEdit" parent="UI/SmallPanel/PetInformPanel/InformScroll/VBox/PetNameHBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 25 +placeholder_text = "请输入宠物名字" + +[node name="PetInform" type="RichTextLabel" parent="UI/SmallPanel/PetInformPanel/InformScroll/VBox"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_constants/outline_size = 15 +theme_override_font_sizes/bold_italics_font_size = 25 +theme_override_font_sizes/italics_font_size = 25 +theme_override_font_sizes/mono_font_size = 25 +theme_override_font_sizes/normal_font_size = 25 +theme_override_font_sizes/bold_font_size = 30 +bbcode_enabled = true +threaded = true + +[node name="ButtonHBox" type="HBoxContainer" parent="UI/SmallPanel/PetInformPanel"] +layout_mode = 0 +offset_top = 646.0 +offset_right = 680.0 +offset_bottom = 719.0 + +[node name="EditInformButton" type="Button" parent="UI/SmallPanel/PetInformPanel/ButtonHBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 25 +text = "修改信息" + +[node name="FeedButton" type="Button" parent="UI/SmallPanel/PetInformPanel/ButtonHBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 25 +text = "喂养" + +[node name="UseItemButton" type="Button" parent="UI/SmallPanel/PetInformPanel/ButtonHBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 25 +text = "使用道具" + +[node name="BattleButton" type="Button" parent="UI/SmallPanel/PetInformPanel/ButtonHBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 25 +text = "出战" + +[node name="PatroButton" type="Button" parent="UI/SmallPanel/PetInformPanel/ButtonHBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 25 +toggle_mode = true +text = "巡逻" + +[node name="QuitButton" type="Button" parent="UI/SmallPanel/PetInformPanel"] +custom_minimum_size = Vector2(50, 50) +layout_mode = 0 +offset_left = 626.0 +offset_right = 676.0 +offset_bottom = 50.0 +theme_override_font_sizes/font_size = 30 +text = "X" + +[node name="RefreshButton" type="Button" parent="UI/SmallPanel/PetInformPanel"] +custom_minimum_size = Vector2(50, 50) +layout_mode = 0 +offset_right = 8.0 +offset_bottom = 8.0 +theme_override_font_sizes/font_size = 30 +text = "刷新" + +[node name="GlobalServerBroadcastPanel" type="Panel" parent="UI/SmallPanel"] +visible = false +offset_left = 322.0 +offset_right = 985.0 +offset_bottom = 721.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_k1sw4") +script = ExtResource("34_k1sw4") + +[node name="Title" type="Label" parent="UI/SmallPanel/GlobalServerBroadcastPanel"] +layout_mode = 0 +offset_left = 13.0 +offset_top = 12.0 +offset_right = 653.0 +offset_bottom = 63.0 +theme_override_colors/font_color = Color(0.821789, 0.821789, 0.821789, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_offset_y = 4 +theme_override_constants/outline_size = 15 +theme_override_constants/shadow_outline_size = 15 +theme_override_font_sizes/font_size = 35 +text = "全服大喇叭" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="MessageContents" type="RichTextLabel" parent="UI/SmallPanel/GlobalServerBroadcastPanel"] +layout_mode = 0 +offset_left = 10.0 +offset_top = 72.0 +offset_right = 653.0 +offset_bottom = 642.0 +theme_override_font_sizes/bold_italics_font_size = 15 +theme_override_font_sizes/italics_font_size = 15 +theme_override_font_sizes/mono_font_size = 15 +theme_override_font_sizes/normal_font_size = 15 +theme_override_font_sizes/bold_font_size = 15 +bbcode_enabled = true + +[node name="HBox" type="HBoxContainer" parent="UI/SmallPanel/GlobalServerBroadcastPanel"] +layout_mode = 0 +offset_left = 8.0 +offset_top = 649.0 +offset_right = 653.0 +offset_bottom = 709.0 + +[node name="InputMessage" type="LineEdit" parent="UI/SmallPanel/GlobalServerBroadcastPanel/HBox"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="SendMessageButton" type="Button" parent="UI/SmallPanel/GlobalServerBroadcastPanel/HBox"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = " 发送 " + +[node name="QuitButton" type="Button" parent="UI/SmallPanel/GlobalServerBroadcastPanel"] +custom_minimum_size = Vector2(50, 50) +layout_mode = 0 +offset_left = 601.0 +offset_top = 12.0 +offset_right = 651.0 +offset_bottom = 62.0 +theme_override_font_sizes/font_size = 30 +text = "X" + +[node name="WatchMoreButton" type="Button" parent="UI/SmallPanel/GlobalServerBroadcastPanel"] +custom_minimum_size = Vector2(50, 50) +layout_mode = 0 +offset_left = 13.0 +offset_top = 12.0 +offset_right = 141.0 +offset_bottom = 62.0 +theme_override_font_sizes/font_size = 30 +text = "查看更多" + +[node name="ScareCrowPanel" type="Panel" parent="UI/SmallPanel"] +visible = false +offset_right = 1402.0 +offset_bottom = 723.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_jyxgm") +script = ExtResource("35_6ylhg") + +[node name="Title" type="Label" parent="UI/SmallPanel/ScareCrowPanel"] +layout_mode = 0 +offset_top = -3.0 +offset_right = 1403.0 +offset_bottom = 63.0 +theme_override_colors/font_color = Color(0.89059, 0.89059, 0.89059, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_offset_y = 4 +theme_override_constants/outline_size = 15 +theme_override_constants/shadow_outline_size = 15 +theme_override_font_sizes/font_size = 40 +text = "农场稻草人" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="BuyScareCrowHbox" type="HBoxContainer" parent="UI/SmallPanel/ScareCrowPanel"] +layout_mode = 0 +offset_top = 69.0 +offset_right = 2337.0 +offset_bottom = 333.0 +scale = Vector2(0.6, 0.6) +alignment = 1 + +[node name="ScareCrow1" type="Button" parent="UI/SmallPanel/ScareCrowPanel/BuyScareCrowHbox"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "花费:999元" +icon = ExtResource("43_6rkns") +icon_alignment = 1 + +[node name="ScareCrow2" type="Button" parent="UI/SmallPanel/ScareCrowPanel/BuyScareCrowHbox"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "花费888元" +icon = ExtResource("36_jyxgm") +icon_alignment = 1 + +[node name="ScareCrow3" type="Button" parent="UI/SmallPanel/ScareCrowPanel/BuyScareCrowHbox"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "花费1000元" +icon = ExtResource("37_6ylhg") +icon_alignment = 1 + +[node name="HBox" type="HBoxContainer" parent="UI/SmallPanel/ScareCrowPanel"] +layout_mode = 0 +offset_top = 227.0 +offset_right = 1403.0 +offset_bottom = 284.0 + +[node name="ScareCrowName" type="Label" parent="UI/SmallPanel/ScareCrowPanel/HBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 35 +text = "稻草人名字" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ScareCrowInput" type="LineEdit" parent="UI/SmallPanel/ScareCrowPanel/HBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 35 +text = "请输入稻草人名字" + +[node name="ScareCrowNameColor" type="Label" parent="UI/SmallPanel/ScareCrowPanel/HBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 35 +text = "稻草人名字颜色" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ScareCrowNameColorInput" type="ColorPickerButton" parent="UI/SmallPanel/ScareCrowPanel/HBox"] +layout_mode = 2 +size_flags_horizontal = 3 +color = Color(0.733005, 0.733005, 0.733005, 1) + +[node name="ScareCrowTalksGrid" type="GridContainer" parent="UI/SmallPanel/ScareCrowPanel"] +layout_mode = 0 +offset_top = 283.0 +offset_right = 1402.0 +offset_bottom = 387.0 +columns = 2 + +[node name="Talk1" type="LineEdit" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksGrid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +placeholder_text = "请输入稻草人说的第一句话" + +[node name="Talk2" type="LineEdit" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksGrid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +placeholder_text = "请输入稻草人说的第二句话" + +[node name="Talk3" type="LineEdit" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksGrid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +placeholder_text = "请输入稻草人说的第三句话" + +[node name="Talk4" type="LineEdit" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksGrid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +placeholder_text = "请输入稻草人说的第四句话" + +[node name="ScareCrowTalksColorGrid" type="GridContainer" parent="UI/SmallPanel/ScareCrowPanel"] +layout_mode = 0 +offset_left = -2.0 +offset_top = 399.0 +offset_right = 1400.0 +offset_bottom = 503.0 +columns = 4 + +[node name="TalkColor1" type="Label" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksColorGrid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 35 +text = "第一句话颜色 " +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ColorPickerButton1" type="ColorPickerButton" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksColorGrid"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="TalkColor2" type="Label" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksColorGrid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 35 +text = "第二句话颜色 " +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ColorPickerButton2" type="ColorPickerButton" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksColorGrid"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="TalkColor3" type="Label" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksColorGrid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 35 +text = "第三句话颜色 " +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ColorPickerButton3" type="ColorPickerButton" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksColorGrid"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="TalkColor4" type="Label" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksColorGrid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 35 +text = "第四句话颜色 " +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ColorPickerButton4" type="ColorPickerButton" parent="UI/SmallPanel/ScareCrowPanel/ScareCrowTalksColorGrid"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="QuitButton" type="Button" parent="UI/SmallPanel/ScareCrowPanel"] +custom_minimum_size = Vector2(60, 60) +layout_mode = 0 +offset_left = 1334.0 +offset_top = 6.0 +offset_right = 1394.0 +offset_bottom = 66.0 +theme_override_font_sizes/font_size = 30 +text = "X" + +[node name="Label" type="Label" parent="UI/SmallPanel/ScareCrowPanel"] +layout_mode = 0 +offset_top = 516.0 +offset_right = 1096.0 +offset_bottom = 571.0 +theme_override_font_sizes/font_size = 40 +text = "这个可爱的稻草人可以在别人访问你农场时向他/她展示几句话" + +[node name="HBox2" type="HBoxContainer" parent="UI/SmallPanel/ScareCrowPanel"] +layout_mode = 0 +offset_left = -1.0 +offset_top = 656.0 +offset_right = 1402.0 +offset_bottom = 719.0 +alignment = 1 + +[node name="SureButton" type="Button" parent="UI/SmallPanel/ScareCrowPanel/HBox2"] +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "确认修改" + +[node name="WisdomTreePanel" type="Panel" parent="UI/SmallPanel"] +visible = false +offset_right = 1400.0 +offset_bottom = 720.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_np7ck") +script = ExtResource("39_np7ck") + +[node name="Title" type="Label" parent="UI/SmallPanel/WisdomTreePanel"] +layout_mode = 0 +offset_left = 17.0 +offset_top = 19.0 +offset_right = 1382.0 +offset_bottom = 74.0 +theme_override_colors/font_color = Color(0.954954, 0.709181, 7.70092e-07, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_offset_y = 4 +theme_override_constants/outline_size = 20 +theme_override_constants/shadow_outline_size = 20 +theme_override_font_sizes/font_size = 50 +text = "智慧树" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Description" type="Label" parent="UI/SmallPanel/WisdomTreePanel"] +layout_mode = 0 +offset_left = 58.0 +offset_top = 62.0 +offset_right = 1322.0 +offset_bottom = 280.0 +theme_override_colors/font_color = Color(0.654902, 1, 1, 1) +theme_override_font_sizes/font_size = 30 +text = "只需花费一点点钱币,就可以匿名发送一句话,由于智慧树强大的链接性,其他玩家在浇水施肥时就有概率收到这句话。向他人发送一句祝福吧(,,・ω・,,) ,只要你不断的给智慧树浇水施肥,它就会长得越来越高" +horizontal_alignment = 1 +vertical_alignment = 1 +autowrap_mode = 2 + +[node name="HBox" type="HBoxContainer" parent="UI/SmallPanel/WisdomTreePanel"] +layout_mode = 0 +offset_left = 17.0 +offset_top = 431.0 +offset_right = 1382.0 +offset_bottom = 531.0 +alignment = 1 + +[node name="WaterButton" type="Button" parent="UI/SmallPanel/WisdomTreePanel/HBox"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "浇水" + +[node name="FertilizeButton" type="Button" parent="UI/SmallPanel/WisdomTreePanel/HBox"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "施肥" + +[node name="PlayMusicButton" type="Button" parent="UI/SmallPanel/WisdomTreePanel/HBox"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "放音乐" + +[node name="KillBugButton" type="Button" parent="UI/SmallPanel/WisdomTreePanel/HBox"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "杀虫" + +[node name="KillGrassButton" type="Button" parent="UI/SmallPanel/WisdomTreePanel/HBox"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "除草" + +[node name="ReviveButton" type="Button" parent="UI/SmallPanel/WisdomTreePanel/HBox"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "复活" + +[node name="VBox" type="VBoxContainer" parent="UI/SmallPanel/WisdomTreePanel"] +layout_mode = 0 +offset_left = 17.0 +offset_top = 531.0 +offset_right = 1383.0 +offset_bottom = 706.0 + +[node name="Explanation" type="Label" parent="UI/SmallPanel/WisdomTreePanel/VBox"] +layout_mode = 2 +theme_override_font_sizes/font_size = 35 +text = "请在下方输入您想发送给别人的一句话" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="HBox" type="HBoxContainer" parent="UI/SmallPanel/WisdomTreePanel/VBox"] +layout_mode = 2 + +[node name="TalkInput" type="LineEdit" parent="UI/SmallPanel/WisdomTreePanel/VBox/HBox"] +custom_minimum_size = Vector2(800, 0) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 35 +placeholder_text = "在这里输入(*´∀ ˋ*)" +alignment = 1 + +[node name="SendButton" type="Button" parent="UI/SmallPanel/WisdomTreePanel/VBox/HBox"] +custom_minimum_size = Vector2(160, 0) +layout_mode = 2 +size_flags_horizontal = 4 +theme_override_font_sizes/font_size = 35 +text = "发送" + +[node name="Grid" type="GridContainer" parent="UI/SmallPanel/WisdomTreePanel"] +layout_mode = 0 +offset_left = 17.0 +offset_top = 303.0 +offset_right = 1383.0 +offset_bottom = 431.0 +columns = 2 + +[node name="Level" type="Label" parent="UI/SmallPanel/WisdomTreePanel/Grid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +text = "等级:999" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Health" type="Label" parent="UI/SmallPanel/WisdomTreePanel/Grid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +text = "生命值:999" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Experience" type="Label" parent="UI/SmallPanel/WisdomTreePanel/Grid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +text = "经验值:999" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Height" type="Label" parent="UI/SmallPanel/WisdomTreePanel/Grid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +text = "高度:999" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label" type="Label" parent="UI/SmallPanel/WisdomTreePanel"] +layout_mode = 0 +offset_left = 17.0 +offset_top = 235.0 +offset_right = 1383.0 +offset_bottom = 290.0 +theme_override_font_sizes/font_size = 40 +text = "智慧树状态" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="QuitButton" type="Button" parent="UI/SmallPanel/WisdomTreePanel"] +custom_minimum_size = Vector2(60, 60) +layout_mode = 0 +offset_left = 1317.0 +offset_top = 22.0 +offset_right = 1377.0 +offset_bottom = 85.0 +theme_override_font_sizes/font_size = 40 +text = "X" + +[node name="DiaLog" type="CanvasLayer" parent="UI"] + +[node name="AcceptDialog" parent="UI/DiaLog" instance=ExtResource("16_0igvr")] +visible = false + +[node name="BatchBuyPopup" type="PanelContainer" parent="UI/DiaLog"] +visible = false +offset_left = 426.0 +offset_top = 90.0 +offset_right = 928.0 +offset_bottom = 556.0 +script = ExtResource("29_5b81d") + +[node name="VBox" type="VBoxContainer" parent="UI/DiaLog/BatchBuyPopup"] +layout_mode = 2 + +[node name="Title" type="Label" parent="UI/DiaLog/BatchBuyPopup/VBox"] +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "是否购买" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Contents" type="Label" parent="UI/DiaLog/BatchBuyPopup/VBox"] +layout_mode = 2 +size_flags_vertical = 3 +theme_override_font_sizes/font_size = 20 +text = "这是说明内容" +horizontal_alignment = 1 + +[node name="BuyNumEdit" type="LineEdit" parent="UI/DiaLog/BatchBuyPopup/VBox"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 + +[node name="HBox" type="HBoxContainer" parent="UI/DiaLog/BatchBuyPopup/VBox"] +layout_mode = 2 + +[node name="SureButton" type="Button" parent="UI/DiaLog/BatchBuyPopup/VBox/HBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +text = "确定" + +[node name="CancelButton" type="Button" parent="UI/DiaLog/BatchBuyPopup/VBox/HBox"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +text = "取消" [node name="BackgroundUI" type="CanvasLayer" parent="."] layer = -1 @@ -1659,6 +1373,14 @@ self_modulate = Color(0.5, 0.5, 0.5, 1) [node name="Timer" type="Timer" parent="BackgroundUI/BackgroundSwitcher"] +[node name="PetPatrolPathLine" type="Line2D" parent="."] +position = Vector2(-52.4841, -115.095) +scale = Vector2(0.92426, 0.816774) +points = PackedVector2Array(-40, -100, -40, 1100, 1400, 1100, 1400, -100) +closed = true +width = 5.0 +default_color = Color(0, 1, 1, 1) + [node name="GridContainer" type="GridContainer" parent="."] z_as_relative = false custom_minimum_size = Vector2(100, 100) @@ -1668,6 +1390,86 @@ offset_right = 1398.0 offset_bottom = 722.0 columns = 10 +[node name="Button" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button2" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button3" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button4" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button5" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button6" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button7" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button8" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button9" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button10" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button11" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button12" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button13" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button14" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button15" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button16" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button17" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button18" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button19" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + +[node name="Button20" type="Button" parent="GridContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 + [node name="CopyNodes" type="Node2D" parent="."] position = Vector2(-1000, 0) @@ -1685,22 +1487,1494 @@ offset_bottom = -61.0 anchor_mode = 0 position_smoothing_enabled = true script = ExtResource("10_o8l48") -max_zoom = 1.1 +max_zoom = 2.0 bounds_enabled = true bounds_min = Vector2(-500, -500) bounds_max = Vector2(500, 500) -current_zoom_level = 1.1 - -[node name="GameManager" type="Node" parent="."] [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_m6fch") +[node name="GameManager" type="Node" parent="."] + [node name="GameBGMPlayer" type="Node" parent="."] script = ExtResource("28_m6fch") play_mode = 1 music_files_list = Array[String](["res://assets/音乐/Anibli&RelaxingPianoMusic-StrollThroughtheSky.ogg", "res://assets/音乐/BanAM-Futatabi.ogg", "res://assets/音乐/MCMZebra-AlwaysandManyTimes.ogg", "res://assets/音乐/MicMusicbox-Ashitakasekki.ogg", "res://assets/音乐/Nemuネム-PromiseoftheWorld.ogg", "res://assets/音乐/α-WaveRelaxationHealingMusicLab-いつも何度でも[「千と千尋の神隠し」より][ピアノ].ogg", "res://assets/音乐/久石让-ふたたび.ogg", "res://assets/音乐/广桥真纪子-いのちの名前(生命之名).ogg", "res://assets/音乐/日本群星-PromiseoftheWorld.ogg"]) +[node name="GroundBackground" type="Node2D" parent="."] +visible = false +modulate = Color(0.929412, 1, 0.431373, 1) +position = Vector2(3786, -1016) +scale = Vector2(1.5, 1.5) + +[node name="土块1" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2203, 576) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块2" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2165, 598) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块3" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2240, 598) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块4" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2202, 620) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块5" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2127, 621) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块6" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2089, 643) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块7" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2164, 643) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块8" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2126, 665) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块9" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2278, 621) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块10" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2240, 643) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块11" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2315, 643) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块12" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2277, 665) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块13" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2202, 666) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块14" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2164, 688) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块15" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2239, 688) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块16" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2201, 710) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块17" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2052, 666) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块18" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2014, 688) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块19" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2089, 688) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块20" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2051, 710) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块21" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1976, 711) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块22" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1938, 733) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块23" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2013, 733) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块24" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1975, 755) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块25" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2127, 711) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块26" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2089, 733) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块27" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2164, 733) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块28" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2126, 755) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块29" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2051, 756) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块30" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2013, 778) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块31" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2088, 778) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块32" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2050, 800) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块33" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2353, 667) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块34" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2315, 689) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块35" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2390, 689) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块36" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2352, 711) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块37" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2277, 712) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块38" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2239, 734) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块39" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2314, 734) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块40" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2276, 756) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块41" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2428, 712) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块42" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2390, 734) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块43" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2465, 734) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块44" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2427, 756) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块45" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2352, 757) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块46" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2314, 779) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块47" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2389, 779) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块48" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2351, 801) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块49" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2202, 757) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块50" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2164, 779) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块51" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2239, 779) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块52" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2201, 801) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块53" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2126, 802) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块54" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2088, 824) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块55" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2163, 824) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块56" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2125, 846) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块57" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2277, 802) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块58" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2239, 824) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块59" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2314, 824) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块60" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2276, 846) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块61" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2201, 847) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块62" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2163, 869) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块63" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2238, 869) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块64" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2200, 891) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块65" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1900, 756) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块66" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1862, 778) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块67" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1937, 778) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块68" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1899, 800) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块69" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1824, 801) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块70" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1786, 823) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块71" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1861, 823) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块72" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1823, 845) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块73" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1975, 801) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块74" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1937, 823) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块75" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2012, 823) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块76" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1974, 845) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块77" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1899, 846) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块78" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1861, 868) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块79" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1936, 868) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块80" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1898, 890) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块81" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1749, 846) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块82" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1711, 868) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块83" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1786, 868) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块84" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1748, 890) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块85" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1673, 891) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块86" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1635, 913) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块87" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1710, 913) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块88" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1672, 935) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块89" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1824, 891) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块90" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1786, 913) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块91" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1861, 913) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块92" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1823, 935) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块93" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1748, 936) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块94" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1710, 958) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块95" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1785, 958) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块96" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1747, 980) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块97" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2050, 847) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块98" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2012, 869) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块99" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2087, 869) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块100" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2049, 891) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块101" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1974, 892) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块102" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1936, 914) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块103" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2011, 914) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块104" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1973, 936) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块105" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2125, 892) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块106" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2087, 914) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块107" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2162, 914) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块108" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2124, 936) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块109" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2049, 937) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块110" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2011, 959) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块111" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2086, 959) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块112" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2048, 981) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块113" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1899, 937) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块114" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1861, 959) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块115" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1936, 959) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块116" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1898, 981) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块117" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1823, 982) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块118" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1785, 1004) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块119" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1860, 1004) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块120" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1822, 1026) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块121" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1974, 982) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块122" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1936, 1004) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块123" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2011, 1004) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块124" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1973, 1026) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块125" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1898, 1027) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块126" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1860, 1049) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块127" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1935, 1049) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块128" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1897, 1071) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块129" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2504, 756) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块130" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2466, 778) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块131" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2541, 778) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块132" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2503, 800) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块133" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2428, 801) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块134" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2390, 823) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块135" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2465, 823) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块136" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2427, 845) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块137" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2579, 801) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块138" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2541, 823) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块139" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2616, 823) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块140" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2578, 845) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块141" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2503, 846) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块142" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2465, 868) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块143" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2540, 868) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块144" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2502, 890) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块145" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2353, 846) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块146" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2315, 868) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块147" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2390, 868) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块148" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2352, 890) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块149" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2277, 891) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块150" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2239, 913) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块151" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2314, 913) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块152" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2276, 935) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块153" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2428, 891) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块154" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2390, 913) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块155" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2465, 913) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块156" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2427, 935) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块157" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2352, 936) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块158" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2314, 958) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块159" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2389, 958) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块160" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2351, 980) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块161" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2654, 847) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块162" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2616, 869) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块163" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2691, 869) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块164" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2653, 891) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块165" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2578, 892) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块166" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2540, 914) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块167" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2615, 914) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块168" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2577, 936) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块169" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2729, 892) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块170" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2691, 914) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块171" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2766, 914) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块172" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2728, 936) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块173" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2653, 937) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块174" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2615, 959) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块175" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2690, 959) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块176" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2652, 981) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块177" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2503, 937) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块178" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2465, 959) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块179" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2540, 959) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块180" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2502, 981) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块181" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2427, 982) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块182" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2389, 1004) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块183" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2464, 1004) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块184" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2426, 1026) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块185" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2578, 982) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块186" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2540, 1004) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块187" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2615, 1004) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块188" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2577, 1026) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块189" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2502, 1027) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块190" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2464, 1049) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块191" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2539, 1049) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块192" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2501, 1071) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块193" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2202, 935) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块194" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2164, 957) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块195" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2239, 957) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块196" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2201, 979) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块197" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2126, 980) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块198" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2088, 1002) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块199" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2163, 1002) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块200" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2125, 1024) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块201" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2277, 980) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块202" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2239, 1002) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块203" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2314, 1002) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块204" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2276, 1024) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块205" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2201, 1025) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块206" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2163, 1047) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块207" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2238, 1047) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块208" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2200, 1069) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块209" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2051, 1025) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块210" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2013, 1047) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块211" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2088, 1047) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块212" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2050, 1069) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块213" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1975, 1070) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块214" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1937, 1092) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块215" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2012, 1092) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块216" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-1974, 1114) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块217" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2126, 1070) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块218" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2088, 1092) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块219" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2163, 1092) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块220" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2125, 1114) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块221" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2050, 1115) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块222" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2012, 1137) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块223" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2087, 1137) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块224" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2049, 1159) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块225" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2352, 1026) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块226" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2314, 1048) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块227" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2389, 1048) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块228" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2351, 1070) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块229" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2276, 1071) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块230" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2238, 1093) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块231" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2313, 1093) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块232" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2275, 1115) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块233" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2427, 1071) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块234" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2389, 1093) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块235" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2464, 1093) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块236" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2426, 1115) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块237" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2351, 1116) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块238" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2313, 1138) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块239" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2388, 1138) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块240" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2350, 1160) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块241" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2201, 1116) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块242" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2163, 1138) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块243" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2238, 1138) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块244" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2200, 1160) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块245" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2125, 1161) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块246" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2087, 1183) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块247" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2162, 1183) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块248" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2124, 1205) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块249" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2276, 1161) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块250" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2238, 1183) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块251" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2313, 1183) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块252" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2275, 1205) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块253" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2200, 1206) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块254" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2162, 1228) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块255" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2237, 1228) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="土块256" type="Sprite2D" parent="GroundBackground"] +position = Vector2(-2199, 1250) +scale = Vector2(0.1, 0.1) +texture = ExtResource("41_cdkxt") + +[node name="Decoration" type="Node2D" parent="."] + +[node name="ScareCrow" type="Button" parent="Decoration"] +custom_minimum_size = Vector2(100, 100) +offset_left = 2.0 +offset_top = -108.0 +offset_right = 266.0 +offset_bottom = 156.0 +scale = Vector2(0.4, 0.4) + +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration/ScareCrow"] +position = Vector2(132, 134) +scale = Vector2(1.4, 1.4) +texture = ExtResource("43_jbja5") + +[node name="ScareCrowImage" type="Sprite2D" parent="Decoration/ScareCrow"] +position = Vector2(132, 48) +scale = Vector2(1.2, 1.2) +texture = ExtResource("43_6rkns") + +[node name="ScareCrowName" type="RichTextLabel" parent="Decoration/ScareCrow"] +layout_mode = 0 +offset_left = -65.0 +offset_top = -145.0 +offset_right = 339.0 +offset_bottom = -90.0 +theme_override_font_sizes/bold_italics_font_size = 40 +theme_override_font_sizes/italics_font_size = 40 +theme_override_font_sizes/mono_font_size = 40 +theme_override_font_sizes/normal_font_size = 40 +theme_override_font_sizes/bold_font_size = 40 +bbcode_enabled = true +text = "稻草人" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="BackgroundPanel" type="Panel" parent="Decoration/ScareCrow"] +layout_mode = 0 +offset_left = -65.0 +offset_top = -265.0 +offset_right = 339.0 +offset_bottom = -145.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_6ylhg") + +[node name="ScareCrowtalks" type="RichTextLabel" parent="Decoration/ScareCrow/BackgroundPanel"] +layout_mode = 0 +offset_left = 13.0 +offset_right = 390.0 +offset_bottom = 113.0 +theme_override_font_sizes/bold_italics_font_size = 35 +theme_override_font_sizes/italics_font_size = 35 +theme_override_font_sizes/mono_font_size = 35 +theme_override_font_sizes/normal_font_size = 35 +theme_override_font_sizes/bold_font_size = 35 +bbcode_enabled = true +text = "臭小子不要偷我的菜,被我逮到你就完蛋了!" +autowrap_mode = 2 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ScareCrow2" type="Button" parent="Decoration"] +custom_minimum_size = Vector2(100, 100) +offset_left = 108.0 +offset_top = -108.0 +offset_right = 372.0 +offset_bottom = 156.0 +scale = Vector2(0.4, 0.4) + +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration/ScareCrow2"] +position = Vector2(132, 134) +scale = Vector2(1.4, 1.4) +texture = ExtResource("43_jbja5") + +[node name="ScareCrowImage" type="Sprite2D" parent="Decoration/ScareCrow2"] +visible = false +position = Vector2(132, 48) +scale = Vector2(1.2, 1.2) +texture = ExtResource("43_6rkns") + +[node name="ScareCrowName" type="RichTextLabel" parent="Decoration/ScareCrow2"] +visible = false +layout_mode = 0 +offset_left = -65.0 +offset_top = -145.0 +offset_right = 339.0 +offset_bottom = -90.0 +theme_override_font_sizes/bold_italics_font_size = 40 +theme_override_font_sizes/italics_font_size = 40 +theme_override_font_sizes/mono_font_size = 40 +theme_override_font_sizes/normal_font_size = 40 +theme_override_font_sizes/bold_font_size = 40 +bbcode_enabled = true +text = "稻草人" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="BackgroundPanel" type="Panel" parent="Decoration/ScareCrow2"] +visible = false +layout_mode = 0 +offset_left = -65.0 +offset_top = -265.0 +offset_right = 339.0 +offset_bottom = -145.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_6ylhg") + +[node name="ScareCrowtalks" type="RichTextLabel" parent="Decoration/ScareCrow2/BackgroundPanel"] +layout_mode = 0 +offset_left = 13.0 +offset_right = 390.0 +offset_bottom = 113.0 +theme_override_font_sizes/bold_italics_font_size = 35 +theme_override_font_sizes/italics_font_size = 35 +theme_override_font_sizes/mono_font_size = 35 +theme_override_font_sizes/normal_font_size = 35 +theme_override_font_sizes/bold_font_size = 35 +bbcode_enabled = true +text = "臭小子不要偷我的菜,被我逮到你就完蛋了!" +autowrap_mode = 2 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="WisdomTree" type="Button" parent="Decoration"] +custom_minimum_size = Vector2(100, 100) +offset_left = 928.0 +offset_top = -108.0 +offset_right = 1192.0 +offset_bottom = 156.0 +scale = Vector2(0.4, 0.4) + +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration/WisdomTree"] +position = Vector2(132, 134) +scale = Vector2(1.4, 1.4) +texture = ExtResource("43_jbja5") + +[node name="WisdomTreeImage" type="Sprite2D" parent="Decoration/WisdomTree"] +position = Vector2(126, 82) +scale = Vector2(0.5, 0.5) +texture = ExtResource("45_xvovi") + +[node name="TreeName" type="Label" parent="Decoration/WisdomTree"] +self_modulate = Color(2, 2, 2, 1) +layout_mode = 0 +offset_top = -145.0 +offset_right = 265.0 +offset_bottom = -96.0 +theme_override_font_sizes/font_size = 35 +text = "智慧树" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="TreeStatus" type="Label" parent="Decoration/WisdomTree"] +self_modulate = Color(2, 2, 2, 1) +layout_mode = 0 +offset_left = -122.0 +offset_top = -190.0 +offset_right = 370.0 +offset_bottom = -141.0 +theme_override_font_sizes/font_size = 35 +text = "等级lv:99 高度:99m" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="BackgroundPanel" type="Panel" parent="Decoration/WisdomTree"] +layout_mode = 0 +offset_left = -212.0 +offset_top = -350.0 +offset_right = 491.0 +offset_bottom = -195.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_6ylhg") + +[node name="AnonymousTalk" type="RichTextLabel" parent="Decoration/WisdomTree/BackgroundPanel"] +layout_mode = 0 +offset_left = 13.0 +offset_right = 695.0 +offset_bottom = 155.0 +theme_override_font_sizes/bold_italics_font_size = 35 +theme_override_font_sizes/italics_font_size = 35 +theme_override_font_sizes/mono_font_size = 35 +theme_override_font_sizes/normal_font_size = 35 +theme_override_font_sizes/bold_font_size = 35 +bbcode_enabled = true +text = "给未来的某个陌生人说一句话吧" +autowrap_mode = 2 +horizontal_alignment = 1 +vertical_alignment = 1 + +[connection signal="pressed" from="UI/GUI/GameInfoHBox3/WatchBroadcast" to="." method="_on_watch_broadcast_button_pressed"] [connection signal="pressed" from="UI/GUI/FarmVBox/SeedStoreButton" to="." method="_on_open_store_button_pressed"] [connection signal="pressed" from="UI/GUI/FarmVBox/SeedWarehouseButton" to="." method="_on_seed_warehouse_button_pressed"] [connection signal="pressed" from="UI/GUI/FarmVBox/CropWarehouseButton" to="." method="_on_crop_warehouse_button_pressed"] @@ -1722,15 +2996,10 @@ music_files_list = Array[String](["res://assets/音乐/Anibli&RelaxingPianoMusic [connection signal="pressed" from="UI/GUI/OtherVBox/SmallGameButton" to="." method="_on_online_gift_button_pressed"] [connection signal="pressed" from="UI/GUI/OtherVBox/SettingButton" to="." method="_on_setting_button_pressed"] [connection signal="pressed" from="UI/GUI/OtherVBox/WisdomTreeButton" to="." method="_on_setting_button_pressed"] -[connection signal="pressed" from="UI/GUI/OtherVBox/MyPetButton" to="." method="_on_my_pet_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/PetBagButton" to="." method="_on_pet_bag_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/PetStoreButton" to="." method="_on_pet_store_button_pressed"] [connection signal="pressed" from="UI/GUI/OtherVBox/ScareCrowButton" to="." method="_on_my_pet_button_pressed"] -[connection signal="pressed" from="UI/OnlineGiftPanel/Quit_Button" to="UI/OnlineGiftPanel" method="_on_quit_button_pressed"] -[connection signal="pressed" from="UI/OneClickPlantPanel/Quit_Button" to="UI/OneClickPlantPanel" method="_on_quit_button_pressed"] -[connection signal="pressed" from="UI/CropStorePanel/QuitButton" to="." method="_on_quit_button_pressed"] -[connection signal="pressed" from="UI/CropStorePanel/RefreshButton" to="UI/CropStorePanel" method="_on_refresh_button_pressed"] -[connection signal="pressed" from="UI/CropWarehousePanel/QuitButton" to="." method="_on_quit_button_pressed"] -[connection signal="pressed" from="UI/CropWarehousePanel/RefreshButton" to="UI/CropWarehousePanel" method="_on_refresh_button_pressed"] -[connection signal="pressed" from="UI/PlayerBagPanel/RefreshButton" to="UI/PlayerBagPanel" method="_on_refresh_button_pressed"] -[connection signal="pressed" from="UI/ItemBagPanel/QuitButton" to="UI/ItemBagPanel" method="_on_quit_button_pressed"] -[connection signal="pressed" from="UI/ItemBagPanel/RefreshButton" to="UI/ItemBagPanel" method="_on_refresh_button_pressed"] -[connection signal="pressed" from="UI/ItemStorePanel/RefreshButton" to="UI/ItemStorePanel" method="_on_refresh_button_pressed"] +[connection signal="pressed" from="UI/SmallPanel/DebugPanel/QuitButton" to="UI/SmallPanel/DebugPanel" method="_on_quit_button_pressed"] +[connection signal="pressed" from="Decoration/ScareCrow" to="." method="_on_scare_crow_pressed"] +[connection signal="pressed" from="Decoration/ScareCrow2" to="." method="_on_scare_crow_pressed"] +[connection signal="pressed" from="Decoration/WisdomTree" to="." method="_on_wisdom_tree_pressed"] diff --git a/MainGame.tscn166226414114.tmp b/MainGame.tscn166226414114.tmp new file mode 100644 index 0000000..00c44b9 --- /dev/null +++ b/MainGame.tscn166226414114.tmp @@ -0,0 +1,579 @@ +[gd_scene load_steps=36 format=3 uid="uid://dgh61dttaas5a"] + +[ext_resource type="Script" uid="uid://2pt11sfcaxf7" path="res://MainGame.gd" id="1_v3yaj"] +[ext_resource type="Texture2D" uid="uid://du2pyiojliasy" path="res://assets/游戏UI/经验球.webp" id="2_6jgly"] +[ext_resource type="PackedScene" uid="uid://bkivlkirrx6u8" path="res://CopyItems/crop_item.tscn" id="3_isiom"] +[ext_resource type="Texture2D" uid="uid://ftv231igtdoq" path="res://assets/游戏UI/等级.webp" id="3_y1hsh"] +[ext_resource type="Texture2D" uid="uid://bqib5y8uwg6hx" path="res://assets/游戏UI/钱币.webp" id="4_ql8k3"] +[ext_resource type="Texture2D" uid="uid://waqbwo2r33j3" path="res://assets/游戏UI/小提示.webp" id="5_5b81d"] +[ext_resource type="Texture2D" uid="uid://bnhyqsw8yjekh" path="res://assets/游戏UI/体力值图标.webp" id="5_n03md"] +[ext_resource type="Texture2D" uid="uid://cj0qac0wmm0q8" path="res://assets/游戏UI/点赞图标.webp" id="6_8kysg"] +[ext_resource type="PackedScene" uid="uid://cpxiaqh0y6a5d" path="res://Network/TCPNetworkManager.tscn" id="7_401ut"] +[ext_resource type="Texture2D" uid="uid://d3pev0nbt8sjd" path="res://assets/游戏UI/玩家昵称.webp" id="7_n03md"] +[ext_resource type="Texture2D" uid="uid://cxm72d5t4dn0q" path="res://assets/游戏UI/农场名称.webp" id="8_uhubb"] +[ext_resource type="Texture2D" uid="uid://b665dc0ye72lg" path="res://assets/游戏UI/服务器连接状态.webp" id="9_uc6q1"] +[ext_resource type="Script" uid="uid://c7bxje0wvvgo4" path="res://game_camera.gd" id="10_o8l48"] +[ext_resource type="Texture2D" uid="uid://dsuaw8kcdtrst" path="res://assets/游戏UI/FPS图标.webp" id="10_uhubb"] +[ext_resource type="Texture2D" uid="uid://bso5fyjavdien" path="res://assets/游戏UI/玩家数图标.webp" id="10_vygm6"] +[ext_resource type="PackedScene" uid="uid://cbhitturvihqj" path="res://GUI/LoginPanel.tscn" id="11_6jgly"] +[ext_resource type="PackedScene" uid="uid://dckc8nrn7p425" path="res://GUI/LandPanel.tscn" id="12_y1hsh"] +[ext_resource type="PackedScene" uid="uid://dpiy0aim20n2h" path="res://Scene/SmallPanel/OnlineGiftPanel.tscn" id="14_5b81d"] +[ext_resource type="PackedScene" uid="uid://4rwitowdt4h" path="res://Scene/SmallPanel/OneClickPlantPanel.tscn" id="15_8kysg"] +[ext_resource type="PackedScene" uid="uid://btp1h6hic2sin" path="res://GUI/AcceptDialog.tscn" id="16_0igvr"] +[ext_resource type="PackedScene" uid="uid://dbfqu87627yg6" path="res://Scene/BigPanel/PlayerRankingPanel.tscn" id="16_n03md"] +[ext_resource type="Script" uid="uid://dckw8dskfbnkp" path="res://background.gd" id="17_0igvr"] +[ext_resource type="PackedScene" uid="uid://bndf1e4sgdjr6" path="res://GUI/LuckyDrawPanel.tscn" id="17_f21le"] +[ext_resource type="PackedScene" uid="uid://hesp70n3ondo" path="res://Scene/BigPanel/CropStorePanel.tscn" id="17_ql8k3"] +[ext_resource type="PackedScene" uid="uid://drw18a6mcr2of" path="res://Scene/BigPanel/CropWarehousePanel.tscn" id="18_5b81d"] +[ext_resource type="PackedScene" uid="uid://smypui0vyso5" path="res://GUI/DailyCheckInPanel.tscn" id="18_m6fch"] +[ext_resource type="PackedScene" uid="uid://bseuwniienrqy" path="res://Scene/BigPanel/PlayerBagPanel.tscn" id="19_8kysg"] +[ext_resource type="PackedScene" uid="uid://cehw5sx5pgmmc" path="res://Scene/BigPanel/ItemBagPanel.tscn" id="20_n03md"] +[ext_resource type="Script" uid="uid://mtfp0ct42nrx" path="res://GUI/CropStorePanel.gd" id="21_5b81d"] +[ext_resource type="PackedScene" uid="uid://j4ft87o7jk14" path="res://Scene/BigPanel/ItemStorePanel.tscn" id="21_uhubb"] +[ext_resource type="PackedScene" uid="uid://d3i0l6ysrde6o" path="res://Scene/SmallPanel/AccountSettingPanel.tscn" id="26_uc6q1"] +[ext_resource type="PackedScene" uid="uid://d1lu2yg4xl382" path="res://Scene/SmallPanel/LoadProgressPanel.tscn" id="27_vygm6"] +[ext_resource type="Script" uid="uid://ca2chgx5w3g1y" path="res://Components/GameBGMPlayer.gd" id="28_m6fch"] +[ext_resource type="PackedScene" uid="uid://ibl5wbbw3pwc" path="res://CopyItems/item_button.tscn" id="39_cdkxt"] + +[sub_resource type="Environment" id="Environment_m6fch"] +background_mode = 3 +ambient_light_energy = 0.0 +glow_enabled = true +glow_bloom = 0.3 +glow_blend_mode = 0 + +[node name="main" type="Node"] +script = ExtResource("1_v3yaj") + +[node name="UI" type="CanvasLayer" parent="."] + +[node name="GUI" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 + +[node name="GameInfoHBox1" type="HBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_right = 1400.0 +offset_bottom = 35.0 + +[node name="experience_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +self_modulate = Color(0.498039, 1, 0, 1) +layout_mode = 2 +texture = ExtResource("2_6jgly") +expand_mode = 2 + +[node name="experience" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(0, 1, 0, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "经验:999" + +[node name="level_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("3_y1hsh") +expand_mode = 2 + +[node name="level" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(0, 1, 1, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "等级:100" + +[node name="money_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("4_ql8k3") +expand_mode = 2 + +[node name="money" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(1, 1, 0, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "钱币:999" + +[node name="hungervalue_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("5_n03md") +expand_mode = 2 + +[node name="hunger_value" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(0.88617, 0.748355, 0.764238, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "体力值:20" + +[node name="like_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("6_8kysg") +expand_mode = 2 + +[node name="like" type="Label" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.992157, 0.482353, 0.482353, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "点赞数:0" + +[node name="GameInfoHBox2" type="HBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_top = 35.0 +offset_right = 1400.0 +offset_bottom = 70.0 + +[node name="player_name_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("7_n03md") +expand_mode = 2 + +[node name="player_name" type="Label" parent="UI/GUI/GameInfoHBox2"] +modulate = Color(1, 0.670588, 0.490196, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "玩家昵称:树萌芽" + +[node name="farm_name_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("8_uhubb") +expand_mode = 3 + +[node name="farm_name" type="Label" parent="UI/GUI/GameInfoHBox2"] +modulate = Color(1, 0.858824, 0.623529, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "农场名称:树萌芽的农场" + +[node name="status_label_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("9_uc6q1") +expand_mode = 2 + +[node name="StatusLabel" type="Label" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "服务器状态:正在检测中" + +[node name="FPS_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("10_uhubb") +expand_mode = 2 + +[node name="FPS" type="Label" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.68755, 0.948041, 0, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "FPS:0" + +[node name="onlineplayer_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("10_vygm6") +expand_mode = 2 + +[node name="onlineplayer" type="Label" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.423529, 1, 0.533333, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "检测中..." + +[node name="GameInfoHBox3" type="HBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_top = 70.0 +offset_right = 1400.0 +offset_bottom = 105.0 + +[node name="tip_image" type="TextureRect" parent="UI/GUI/GameInfoHBox3"] +layout_mode = 2 +texture = ExtResource("5_5b81d") +expand_mode = 2 + +[node name="tip" type="Label" parent="UI/GUI/GameInfoHBox3"] +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0.564706, 1, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "游戏小提示" + +[node name="FarmVBox" type="VBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 263.0 +offset_right = 252.0 +offset_bottom = 795.0 +scale = Vector2(0.8, 0.8) +alignment = 2 + +[node name="SeedStoreButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.564706, 0.647059, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "种子商店" + +[node name="SeedWarehouseButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.772549, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "种子仓库" + +[node name="CropWarehouseButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.772549, 0.219608, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "作物仓库" + +[node name="ItemStoreButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.231373, 0.772549, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "道具商店" + +[node name="ItemBagButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.639216, 0.984314, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "道具背包" + +[node name="OneClickHarvestButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.841258, 0.700703, 0.325362, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "一键收获" + +[node name="OneClickPlantButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.513945, 0.818793, 3.85046e-07, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "一键种植" + +[node name="AddNewGroundButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.803922, 0.729412, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "添加新土地" + +[node name="VisitVBox" type="VBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 115.0 +offset_right = 252.0 +offset_bottom = 245.0 +scale = Vector2(0.8, 0.8) +alignment = 2 + +[node name="LikeButton" type="Button" parent="UI/GUI/VisitVBox"] +modulate = Color(0.992157, 0.482353, 0.482353, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "点赞" + +[node name="ReturnMyFarmButton" type="Button" parent="UI/GUI/VisitVBox"] +modulate = Color(1, 1, 0.721569, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "返回我的农场" + +[node name="OtherVBox" type="VBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_left = 1198.0 +offset_top = 77.0 +offset_right = 1446.0 +offset_bottom = 408.0 +scale = Vector2(0.8, 0.8) +alignment = 2 + +[node name="AccountSettingButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.843137, 0.772549, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "账户设置" + +[node name="OnlineGiftButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(1, 0.615686, 0.447059, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "在线礼包" + +[node name="NewPlayerGiftButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(1, 1, 0.447059, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "新手礼包" + +[node name="OneClickScreenShot" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.407843, 0.796078, 0.996078, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "一键截图" + +[node name="LuckyDrawButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.729412, 0.764706, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "幸运抽奖" + +[node name="PlayerRankingButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.717647, 1, 0.576471, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "玩家排行榜" + +[node name="DailyCheckInButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.807843, 1, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "每日签到" + +[node name="ReturnMainMenuButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.639216, 0.482353, 0.870588, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "返回主菜单" + +[node name="SmallGameButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.513726, 0.615686, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "游玩小游戏" + +[node name="SettingButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.345098, 0.764706, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "设置" + +[node name="WisdomTreeButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.345098, 0.764706, 0.611765, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "智慧树" + +[node name="MyPetButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.992157, 0.482353, 0.870588, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "我的宠物" + +[node name="ScareCrowButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.937381, 0.612088, 0.36654, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "稻草人" + +[node name="BigPanel" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="LuckyDrawPanel" parent="UI/BigPanel" instance=ExtResource("17_f21le")] +visible = false +offset_left = 442.0 +offset_right = 1042.0 + +[node name="DailyCheckInPanel" parent="UI/BigPanel" instance=ExtResource("18_m6fch")] +visible = false +offset_left = 442.0 +offset_top = 3.0 +offset_right = 1042.0 +offset_bottom = 723.0 + +[node name="TCPNetworkManagerPanel" parent="UI/BigPanel" instance=ExtResource("7_401ut")] +visible = false +offset_left = 2.00012 +offset_top = 143.0 +offset_right = 2.00012 +offset_bottom = 143.0 +scale = Vector2(0.7, 0.7) + +[node name="ItemStorePanel" parent="UI/BigPanel" instance=ExtResource("21_uhubb")] + +[node name="ItemBagPanel" parent="UI/BigPanel" instance=ExtResource("20_n03md")] + +[node name="PlayerBagPanel" parent="UI/BigPanel" instance=ExtResource("19_8kysg")] + +[node name="CropWarehousePanel" parent="UI/BigPanel" instance=ExtResource("18_5b81d")] + +[node name="CropStorePanel" parent="UI/BigPanel" instance=ExtResource("17_ql8k3")] +script = ExtResource("21_5b81d") + +[node name="PlayerRankingPanel" parent="UI/BigPanel" instance=ExtResource("16_n03md")] + +[node name="LoginPanel" parent="UI/BigPanel" instance=ExtResource("11_6jgly")] + +[node name="SmallPanel" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="LandPanel" parent="UI/SmallPanel" instance=ExtResource("12_y1hsh")] +visible = false +offset_left = 442.0 +offset_top = 77.0 +offset_right = 958.0 +offset_bottom = 548.0 + +[node name="LoadProgressPanel" parent="UI/SmallPanel" instance=ExtResource("27_vygm6")] + +[node name="AccountSettingPanel" parent="UI/SmallPanel" instance=ExtResource("26_uc6q1")] + +[node name="OneClickPlantPanel" parent="UI/SmallPanel" instance=ExtResource("15_8kysg")] + +[node name="OnlineGiftPanel" parent="UI/SmallPanel" instance=ExtResource("14_5b81d")] + +[node name="DiaLog" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="AcceptDialog" parent="UI/DiaLog" instance=ExtResource("16_0igvr")] +visible = false + +[node name="BackgroundUI" type="CanvasLayer" parent="."] +layer = -1 + +[node name="BackgroundSwitcher" type="Sprite2D" parent="BackgroundUI"] +self_modulate = Color(0.5, 0.5, 0.5, 1) +show_behind_parent = true +z_index = -100 +z_as_relative = false +position = Vector2(703, 360) +scale = Vector2(0.92, 0.92) +script = ExtResource("17_0igvr") + +[node name="Background2" type="Sprite2D" parent="BackgroundUI/BackgroundSwitcher"] +self_modulate = Color(0.5, 0.5, 0.5, 1) + +[node name="Timer" type="Timer" parent="BackgroundUI/BackgroundSwitcher"] + +[node name="GridContainer" type="GridContainer" parent="."] +z_as_relative = false +custom_minimum_size = Vector2(100, 100) +offset_left = -2.0 +offset_top = 2.0 +offset_right = 1398.0 +offset_bottom = 722.0 +columns = 10 + +[node name="CopyNodes" type="Node2D" parent="."] +position = Vector2(-1000, 0) + +[node name="CropItem" parent="CopyNodes" instance=ExtResource("3_isiom")] +z_index = 2 +z_as_relative = false +offset_left = -1433.0 +offset_top = -161.0 +offset_right = -1333.0 +offset_bottom = -61.0 + +[node name="item_button" parent="CopyNodes" instance=ExtResource("39_cdkxt")] + +[node name="GameCamera" type="Camera2D" parent="."] +anchor_mode = 0 +position_smoothing_enabled = true +script = ExtResource("10_o8l48") +max_zoom = 1.1 +bounds_enabled = true +bounds_min = Vector2(-500, -500) +bounds_max = Vector2(500, 500) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_m6fch") + +[node name="GameManager" type="Node" parent="."] + +[node name="GameBGMPlayer" type="Node" parent="."] +script = ExtResource("28_m6fch") +play_mode = 1 +music_files_list = Array[String](["res://assets/音乐/Anibli&RelaxingPianoMusic-StrollThroughtheSky.ogg", "res://assets/音乐/BanAM-Futatabi.ogg", "res://assets/音乐/MCMZebra-AlwaysandManyTimes.ogg", "res://assets/音乐/MicMusicbox-Ashitakasekki.ogg", "res://assets/音乐/Nemuネム-PromiseoftheWorld.ogg", "res://assets/音乐/α-WaveRelaxationHealingMusicLab-いつも何度でも[「千と千尋の神隠し」より][ピアノ].ogg", "res://assets/音乐/久石让-ふたたび.ogg", "res://assets/音乐/广桥真纪子-いのちの名前(生命之名).ogg", "res://assets/音乐/日本群星-PromiseoftheWorld.ogg"]) + +[connection signal="pressed" from="UI/GUI/FarmVBox/SeedStoreButton" to="." method="_on_open_store_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/SeedWarehouseButton" to="." method="_on_seed_warehouse_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/CropWarehouseButton" to="." method="_on_crop_warehouse_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/ItemStoreButton" to="." method="_on_item_store_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/ItemBagButton" to="." method="_on_item_bag_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/OneClickHarvestButton" to="." method="_on_one_click_harvestbutton_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/OneClickPlantButton" to="." method="_on_one_click_plant_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/AddNewGroundButton" to="." method="_on_add_new_ground_button_pressed"] +[connection signal="pressed" from="UI/GUI/VisitVBox/LikeButton" to="." method="_on_like_button_pressed"] +[connection signal="pressed" from="UI/GUI/VisitVBox/ReturnMyFarmButton" to="." method="_on_return_my_farm_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/AccountSettingButton" to="." method="_on_account_setting_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/OnlineGiftButton" to="." method="_on_online_gift_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/NewPlayerGiftButton" to="." method="_on_new_player_gift_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/OneClickScreenShot" to="." method="_on_one_click_screen_shot_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/LuckyDrawButton" to="." method="_on_lucky_draw_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/PlayerRankingButton" to="." method="_on_player_ranking_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/DailyCheckInButton" to="." method="_on_daily_check_in_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/ReturnMainMenuButton" to="." method="_on_return_main_menu_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/SmallGameButton" to="." method="_on_online_gift_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/SettingButton" to="." method="_on_setting_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/WisdomTreeButton" to="." method="_on_setting_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/MyPetButton" to="." method="_on_my_pet_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/ScareCrowButton" to="." method="_on_my_pet_button_pressed"] diff --git a/MainGame.tscn166255147325.tmp b/MainGame.tscn166255147325.tmp new file mode 100644 index 0000000..00c44b9 --- /dev/null +++ b/MainGame.tscn166255147325.tmp @@ -0,0 +1,579 @@ +[gd_scene load_steps=36 format=3 uid="uid://dgh61dttaas5a"] + +[ext_resource type="Script" uid="uid://2pt11sfcaxf7" path="res://MainGame.gd" id="1_v3yaj"] +[ext_resource type="Texture2D" uid="uid://du2pyiojliasy" path="res://assets/游戏UI/经验球.webp" id="2_6jgly"] +[ext_resource type="PackedScene" uid="uid://bkivlkirrx6u8" path="res://CopyItems/crop_item.tscn" id="3_isiom"] +[ext_resource type="Texture2D" uid="uid://ftv231igtdoq" path="res://assets/游戏UI/等级.webp" id="3_y1hsh"] +[ext_resource type="Texture2D" uid="uid://bqib5y8uwg6hx" path="res://assets/游戏UI/钱币.webp" id="4_ql8k3"] +[ext_resource type="Texture2D" uid="uid://waqbwo2r33j3" path="res://assets/游戏UI/小提示.webp" id="5_5b81d"] +[ext_resource type="Texture2D" uid="uid://bnhyqsw8yjekh" path="res://assets/游戏UI/体力值图标.webp" id="5_n03md"] +[ext_resource type="Texture2D" uid="uid://cj0qac0wmm0q8" path="res://assets/游戏UI/点赞图标.webp" id="6_8kysg"] +[ext_resource type="PackedScene" uid="uid://cpxiaqh0y6a5d" path="res://Network/TCPNetworkManager.tscn" id="7_401ut"] +[ext_resource type="Texture2D" uid="uid://d3pev0nbt8sjd" path="res://assets/游戏UI/玩家昵称.webp" id="7_n03md"] +[ext_resource type="Texture2D" uid="uid://cxm72d5t4dn0q" path="res://assets/游戏UI/农场名称.webp" id="8_uhubb"] +[ext_resource type="Texture2D" uid="uid://b665dc0ye72lg" path="res://assets/游戏UI/服务器连接状态.webp" id="9_uc6q1"] +[ext_resource type="Script" uid="uid://c7bxje0wvvgo4" path="res://game_camera.gd" id="10_o8l48"] +[ext_resource type="Texture2D" uid="uid://dsuaw8kcdtrst" path="res://assets/游戏UI/FPS图标.webp" id="10_uhubb"] +[ext_resource type="Texture2D" uid="uid://bso5fyjavdien" path="res://assets/游戏UI/玩家数图标.webp" id="10_vygm6"] +[ext_resource type="PackedScene" uid="uid://cbhitturvihqj" path="res://GUI/LoginPanel.tscn" id="11_6jgly"] +[ext_resource type="PackedScene" uid="uid://dckc8nrn7p425" path="res://GUI/LandPanel.tscn" id="12_y1hsh"] +[ext_resource type="PackedScene" uid="uid://dpiy0aim20n2h" path="res://Scene/SmallPanel/OnlineGiftPanel.tscn" id="14_5b81d"] +[ext_resource type="PackedScene" uid="uid://4rwitowdt4h" path="res://Scene/SmallPanel/OneClickPlantPanel.tscn" id="15_8kysg"] +[ext_resource type="PackedScene" uid="uid://btp1h6hic2sin" path="res://GUI/AcceptDialog.tscn" id="16_0igvr"] +[ext_resource type="PackedScene" uid="uid://dbfqu87627yg6" path="res://Scene/BigPanel/PlayerRankingPanel.tscn" id="16_n03md"] +[ext_resource type="Script" uid="uid://dckw8dskfbnkp" path="res://background.gd" id="17_0igvr"] +[ext_resource type="PackedScene" uid="uid://bndf1e4sgdjr6" path="res://GUI/LuckyDrawPanel.tscn" id="17_f21le"] +[ext_resource type="PackedScene" uid="uid://hesp70n3ondo" path="res://Scene/BigPanel/CropStorePanel.tscn" id="17_ql8k3"] +[ext_resource type="PackedScene" uid="uid://drw18a6mcr2of" path="res://Scene/BigPanel/CropWarehousePanel.tscn" id="18_5b81d"] +[ext_resource type="PackedScene" uid="uid://smypui0vyso5" path="res://GUI/DailyCheckInPanel.tscn" id="18_m6fch"] +[ext_resource type="PackedScene" uid="uid://bseuwniienrqy" path="res://Scene/BigPanel/PlayerBagPanel.tscn" id="19_8kysg"] +[ext_resource type="PackedScene" uid="uid://cehw5sx5pgmmc" path="res://Scene/BigPanel/ItemBagPanel.tscn" id="20_n03md"] +[ext_resource type="Script" uid="uid://mtfp0ct42nrx" path="res://GUI/CropStorePanel.gd" id="21_5b81d"] +[ext_resource type="PackedScene" uid="uid://j4ft87o7jk14" path="res://Scene/BigPanel/ItemStorePanel.tscn" id="21_uhubb"] +[ext_resource type="PackedScene" uid="uid://d3i0l6ysrde6o" path="res://Scene/SmallPanel/AccountSettingPanel.tscn" id="26_uc6q1"] +[ext_resource type="PackedScene" uid="uid://d1lu2yg4xl382" path="res://Scene/SmallPanel/LoadProgressPanel.tscn" id="27_vygm6"] +[ext_resource type="Script" uid="uid://ca2chgx5w3g1y" path="res://Components/GameBGMPlayer.gd" id="28_m6fch"] +[ext_resource type="PackedScene" uid="uid://ibl5wbbw3pwc" path="res://CopyItems/item_button.tscn" id="39_cdkxt"] + +[sub_resource type="Environment" id="Environment_m6fch"] +background_mode = 3 +ambient_light_energy = 0.0 +glow_enabled = true +glow_bloom = 0.3 +glow_blend_mode = 0 + +[node name="main" type="Node"] +script = ExtResource("1_v3yaj") + +[node name="UI" type="CanvasLayer" parent="."] + +[node name="GUI" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 + +[node name="GameInfoHBox1" type="HBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_right = 1400.0 +offset_bottom = 35.0 + +[node name="experience_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +self_modulate = Color(0.498039, 1, 0, 1) +layout_mode = 2 +texture = ExtResource("2_6jgly") +expand_mode = 2 + +[node name="experience" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(0, 1, 0, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "经验:999" + +[node name="level_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("3_y1hsh") +expand_mode = 2 + +[node name="level" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(0, 1, 1, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "等级:100" + +[node name="money_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("4_ql8k3") +expand_mode = 2 + +[node name="money" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(1, 1, 0, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "钱币:999" + +[node name="hungervalue_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("5_n03md") +expand_mode = 2 + +[node name="hunger_value" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(0.88617, 0.748355, 0.764238, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "体力值:20" + +[node name="like_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("6_8kysg") +expand_mode = 2 + +[node name="like" type="Label" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.992157, 0.482353, 0.482353, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "点赞数:0" + +[node name="GameInfoHBox2" type="HBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_top = 35.0 +offset_right = 1400.0 +offset_bottom = 70.0 + +[node name="player_name_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("7_n03md") +expand_mode = 2 + +[node name="player_name" type="Label" parent="UI/GUI/GameInfoHBox2"] +modulate = Color(1, 0.670588, 0.490196, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "玩家昵称:树萌芽" + +[node name="farm_name_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("8_uhubb") +expand_mode = 3 + +[node name="farm_name" type="Label" parent="UI/GUI/GameInfoHBox2"] +modulate = Color(1, 0.858824, 0.623529, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "农场名称:树萌芽的农场" + +[node name="status_label_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("9_uc6q1") +expand_mode = 2 + +[node name="StatusLabel" type="Label" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "服务器状态:正在检测中" + +[node name="FPS_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("10_uhubb") +expand_mode = 2 + +[node name="FPS" type="Label" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.68755, 0.948041, 0, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "FPS:0" + +[node name="onlineplayer_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("10_vygm6") +expand_mode = 2 + +[node name="onlineplayer" type="Label" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.423529, 1, 0.533333, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "检测中..." + +[node name="GameInfoHBox3" type="HBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_top = 70.0 +offset_right = 1400.0 +offset_bottom = 105.0 + +[node name="tip_image" type="TextureRect" parent="UI/GUI/GameInfoHBox3"] +layout_mode = 2 +texture = ExtResource("5_5b81d") +expand_mode = 2 + +[node name="tip" type="Label" parent="UI/GUI/GameInfoHBox3"] +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0.564706, 1, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "游戏小提示" + +[node name="FarmVBox" type="VBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 263.0 +offset_right = 252.0 +offset_bottom = 795.0 +scale = Vector2(0.8, 0.8) +alignment = 2 + +[node name="SeedStoreButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.564706, 0.647059, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "种子商店" + +[node name="SeedWarehouseButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.772549, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "种子仓库" + +[node name="CropWarehouseButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.772549, 0.219608, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "作物仓库" + +[node name="ItemStoreButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.231373, 0.772549, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "道具商店" + +[node name="ItemBagButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.639216, 0.984314, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "道具背包" + +[node name="OneClickHarvestButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.841258, 0.700703, 0.325362, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "一键收获" + +[node name="OneClickPlantButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.513945, 0.818793, 3.85046e-07, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "一键种植" + +[node name="AddNewGroundButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.803922, 0.729412, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "添加新土地" + +[node name="VisitVBox" type="VBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 115.0 +offset_right = 252.0 +offset_bottom = 245.0 +scale = Vector2(0.8, 0.8) +alignment = 2 + +[node name="LikeButton" type="Button" parent="UI/GUI/VisitVBox"] +modulate = Color(0.992157, 0.482353, 0.482353, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "点赞" + +[node name="ReturnMyFarmButton" type="Button" parent="UI/GUI/VisitVBox"] +modulate = Color(1, 1, 0.721569, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "返回我的农场" + +[node name="OtherVBox" type="VBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_left = 1198.0 +offset_top = 77.0 +offset_right = 1446.0 +offset_bottom = 408.0 +scale = Vector2(0.8, 0.8) +alignment = 2 + +[node name="AccountSettingButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.843137, 0.772549, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "账户设置" + +[node name="OnlineGiftButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(1, 0.615686, 0.447059, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "在线礼包" + +[node name="NewPlayerGiftButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(1, 1, 0.447059, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "新手礼包" + +[node name="OneClickScreenShot" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.407843, 0.796078, 0.996078, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "一键截图" + +[node name="LuckyDrawButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.729412, 0.764706, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "幸运抽奖" + +[node name="PlayerRankingButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.717647, 1, 0.576471, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "玩家排行榜" + +[node name="DailyCheckInButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.807843, 1, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "每日签到" + +[node name="ReturnMainMenuButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.639216, 0.482353, 0.870588, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "返回主菜单" + +[node name="SmallGameButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.513726, 0.615686, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "游玩小游戏" + +[node name="SettingButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.345098, 0.764706, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "设置" + +[node name="WisdomTreeButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.345098, 0.764706, 0.611765, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "智慧树" + +[node name="MyPetButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.992157, 0.482353, 0.870588, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "我的宠物" + +[node name="ScareCrowButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.937381, 0.612088, 0.36654, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "稻草人" + +[node name="BigPanel" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="LuckyDrawPanel" parent="UI/BigPanel" instance=ExtResource("17_f21le")] +visible = false +offset_left = 442.0 +offset_right = 1042.0 + +[node name="DailyCheckInPanel" parent="UI/BigPanel" instance=ExtResource("18_m6fch")] +visible = false +offset_left = 442.0 +offset_top = 3.0 +offset_right = 1042.0 +offset_bottom = 723.0 + +[node name="TCPNetworkManagerPanel" parent="UI/BigPanel" instance=ExtResource("7_401ut")] +visible = false +offset_left = 2.00012 +offset_top = 143.0 +offset_right = 2.00012 +offset_bottom = 143.0 +scale = Vector2(0.7, 0.7) + +[node name="ItemStorePanel" parent="UI/BigPanel" instance=ExtResource("21_uhubb")] + +[node name="ItemBagPanel" parent="UI/BigPanel" instance=ExtResource("20_n03md")] + +[node name="PlayerBagPanel" parent="UI/BigPanel" instance=ExtResource("19_8kysg")] + +[node name="CropWarehousePanel" parent="UI/BigPanel" instance=ExtResource("18_5b81d")] + +[node name="CropStorePanel" parent="UI/BigPanel" instance=ExtResource("17_ql8k3")] +script = ExtResource("21_5b81d") + +[node name="PlayerRankingPanel" parent="UI/BigPanel" instance=ExtResource("16_n03md")] + +[node name="LoginPanel" parent="UI/BigPanel" instance=ExtResource("11_6jgly")] + +[node name="SmallPanel" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="LandPanel" parent="UI/SmallPanel" instance=ExtResource("12_y1hsh")] +visible = false +offset_left = 442.0 +offset_top = 77.0 +offset_right = 958.0 +offset_bottom = 548.0 + +[node name="LoadProgressPanel" parent="UI/SmallPanel" instance=ExtResource("27_vygm6")] + +[node name="AccountSettingPanel" parent="UI/SmallPanel" instance=ExtResource("26_uc6q1")] + +[node name="OneClickPlantPanel" parent="UI/SmallPanel" instance=ExtResource("15_8kysg")] + +[node name="OnlineGiftPanel" parent="UI/SmallPanel" instance=ExtResource("14_5b81d")] + +[node name="DiaLog" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="AcceptDialog" parent="UI/DiaLog" instance=ExtResource("16_0igvr")] +visible = false + +[node name="BackgroundUI" type="CanvasLayer" parent="."] +layer = -1 + +[node name="BackgroundSwitcher" type="Sprite2D" parent="BackgroundUI"] +self_modulate = Color(0.5, 0.5, 0.5, 1) +show_behind_parent = true +z_index = -100 +z_as_relative = false +position = Vector2(703, 360) +scale = Vector2(0.92, 0.92) +script = ExtResource("17_0igvr") + +[node name="Background2" type="Sprite2D" parent="BackgroundUI/BackgroundSwitcher"] +self_modulate = Color(0.5, 0.5, 0.5, 1) + +[node name="Timer" type="Timer" parent="BackgroundUI/BackgroundSwitcher"] + +[node name="GridContainer" type="GridContainer" parent="."] +z_as_relative = false +custom_minimum_size = Vector2(100, 100) +offset_left = -2.0 +offset_top = 2.0 +offset_right = 1398.0 +offset_bottom = 722.0 +columns = 10 + +[node name="CopyNodes" type="Node2D" parent="."] +position = Vector2(-1000, 0) + +[node name="CropItem" parent="CopyNodes" instance=ExtResource("3_isiom")] +z_index = 2 +z_as_relative = false +offset_left = -1433.0 +offset_top = -161.0 +offset_right = -1333.0 +offset_bottom = -61.0 + +[node name="item_button" parent="CopyNodes" instance=ExtResource("39_cdkxt")] + +[node name="GameCamera" type="Camera2D" parent="."] +anchor_mode = 0 +position_smoothing_enabled = true +script = ExtResource("10_o8l48") +max_zoom = 1.1 +bounds_enabled = true +bounds_min = Vector2(-500, -500) +bounds_max = Vector2(500, 500) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_m6fch") + +[node name="GameManager" type="Node" parent="."] + +[node name="GameBGMPlayer" type="Node" parent="."] +script = ExtResource("28_m6fch") +play_mode = 1 +music_files_list = Array[String](["res://assets/音乐/Anibli&RelaxingPianoMusic-StrollThroughtheSky.ogg", "res://assets/音乐/BanAM-Futatabi.ogg", "res://assets/音乐/MCMZebra-AlwaysandManyTimes.ogg", "res://assets/音乐/MicMusicbox-Ashitakasekki.ogg", "res://assets/音乐/Nemuネム-PromiseoftheWorld.ogg", "res://assets/音乐/α-WaveRelaxationHealingMusicLab-いつも何度でも[「千と千尋の神隠し」より][ピアノ].ogg", "res://assets/音乐/久石让-ふたたび.ogg", "res://assets/音乐/广桥真纪子-いのちの名前(生命之名).ogg", "res://assets/音乐/日本群星-PromiseoftheWorld.ogg"]) + +[connection signal="pressed" from="UI/GUI/FarmVBox/SeedStoreButton" to="." method="_on_open_store_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/SeedWarehouseButton" to="." method="_on_seed_warehouse_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/CropWarehouseButton" to="." method="_on_crop_warehouse_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/ItemStoreButton" to="." method="_on_item_store_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/ItemBagButton" to="." method="_on_item_bag_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/OneClickHarvestButton" to="." method="_on_one_click_harvestbutton_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/OneClickPlantButton" to="." method="_on_one_click_plant_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/AddNewGroundButton" to="." method="_on_add_new_ground_button_pressed"] +[connection signal="pressed" from="UI/GUI/VisitVBox/LikeButton" to="." method="_on_like_button_pressed"] +[connection signal="pressed" from="UI/GUI/VisitVBox/ReturnMyFarmButton" to="." method="_on_return_my_farm_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/AccountSettingButton" to="." method="_on_account_setting_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/OnlineGiftButton" to="." method="_on_online_gift_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/NewPlayerGiftButton" to="." method="_on_new_player_gift_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/OneClickScreenShot" to="." method="_on_one_click_screen_shot_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/LuckyDrawButton" to="." method="_on_lucky_draw_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/PlayerRankingButton" to="." method="_on_player_ranking_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/DailyCheckInButton" to="." method="_on_daily_check_in_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/ReturnMainMenuButton" to="." method="_on_return_main_menu_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/SmallGameButton" to="." method="_on_online_gift_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/SettingButton" to="." method="_on_setting_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/WisdomTreeButton" to="." method="_on_setting_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/MyPetButton" to="." method="_on_my_pet_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/ScareCrowButton" to="." method="_on_my_pet_button_pressed"] diff --git a/MainGame.tscn166426675922.tmp b/MainGame.tscn166426675922.tmp new file mode 100644 index 0000000..00c44b9 --- /dev/null +++ b/MainGame.tscn166426675922.tmp @@ -0,0 +1,579 @@ +[gd_scene load_steps=36 format=3 uid="uid://dgh61dttaas5a"] + +[ext_resource type="Script" uid="uid://2pt11sfcaxf7" path="res://MainGame.gd" id="1_v3yaj"] +[ext_resource type="Texture2D" uid="uid://du2pyiojliasy" path="res://assets/游戏UI/经验球.webp" id="2_6jgly"] +[ext_resource type="PackedScene" uid="uid://bkivlkirrx6u8" path="res://CopyItems/crop_item.tscn" id="3_isiom"] +[ext_resource type="Texture2D" uid="uid://ftv231igtdoq" path="res://assets/游戏UI/等级.webp" id="3_y1hsh"] +[ext_resource type="Texture2D" uid="uid://bqib5y8uwg6hx" path="res://assets/游戏UI/钱币.webp" id="4_ql8k3"] +[ext_resource type="Texture2D" uid="uid://waqbwo2r33j3" path="res://assets/游戏UI/小提示.webp" id="5_5b81d"] +[ext_resource type="Texture2D" uid="uid://bnhyqsw8yjekh" path="res://assets/游戏UI/体力值图标.webp" id="5_n03md"] +[ext_resource type="Texture2D" uid="uid://cj0qac0wmm0q8" path="res://assets/游戏UI/点赞图标.webp" id="6_8kysg"] +[ext_resource type="PackedScene" uid="uid://cpxiaqh0y6a5d" path="res://Network/TCPNetworkManager.tscn" id="7_401ut"] +[ext_resource type="Texture2D" uid="uid://d3pev0nbt8sjd" path="res://assets/游戏UI/玩家昵称.webp" id="7_n03md"] +[ext_resource type="Texture2D" uid="uid://cxm72d5t4dn0q" path="res://assets/游戏UI/农场名称.webp" id="8_uhubb"] +[ext_resource type="Texture2D" uid="uid://b665dc0ye72lg" path="res://assets/游戏UI/服务器连接状态.webp" id="9_uc6q1"] +[ext_resource type="Script" uid="uid://c7bxje0wvvgo4" path="res://game_camera.gd" id="10_o8l48"] +[ext_resource type="Texture2D" uid="uid://dsuaw8kcdtrst" path="res://assets/游戏UI/FPS图标.webp" id="10_uhubb"] +[ext_resource type="Texture2D" uid="uid://bso5fyjavdien" path="res://assets/游戏UI/玩家数图标.webp" id="10_vygm6"] +[ext_resource type="PackedScene" uid="uid://cbhitturvihqj" path="res://GUI/LoginPanel.tscn" id="11_6jgly"] +[ext_resource type="PackedScene" uid="uid://dckc8nrn7p425" path="res://GUI/LandPanel.tscn" id="12_y1hsh"] +[ext_resource type="PackedScene" uid="uid://dpiy0aim20n2h" path="res://Scene/SmallPanel/OnlineGiftPanel.tscn" id="14_5b81d"] +[ext_resource type="PackedScene" uid="uid://4rwitowdt4h" path="res://Scene/SmallPanel/OneClickPlantPanel.tscn" id="15_8kysg"] +[ext_resource type="PackedScene" uid="uid://btp1h6hic2sin" path="res://GUI/AcceptDialog.tscn" id="16_0igvr"] +[ext_resource type="PackedScene" uid="uid://dbfqu87627yg6" path="res://Scene/BigPanel/PlayerRankingPanel.tscn" id="16_n03md"] +[ext_resource type="Script" uid="uid://dckw8dskfbnkp" path="res://background.gd" id="17_0igvr"] +[ext_resource type="PackedScene" uid="uid://bndf1e4sgdjr6" path="res://GUI/LuckyDrawPanel.tscn" id="17_f21le"] +[ext_resource type="PackedScene" uid="uid://hesp70n3ondo" path="res://Scene/BigPanel/CropStorePanel.tscn" id="17_ql8k3"] +[ext_resource type="PackedScene" uid="uid://drw18a6mcr2of" path="res://Scene/BigPanel/CropWarehousePanel.tscn" id="18_5b81d"] +[ext_resource type="PackedScene" uid="uid://smypui0vyso5" path="res://GUI/DailyCheckInPanel.tscn" id="18_m6fch"] +[ext_resource type="PackedScene" uid="uid://bseuwniienrqy" path="res://Scene/BigPanel/PlayerBagPanel.tscn" id="19_8kysg"] +[ext_resource type="PackedScene" uid="uid://cehw5sx5pgmmc" path="res://Scene/BigPanel/ItemBagPanel.tscn" id="20_n03md"] +[ext_resource type="Script" uid="uid://mtfp0ct42nrx" path="res://GUI/CropStorePanel.gd" id="21_5b81d"] +[ext_resource type="PackedScene" uid="uid://j4ft87o7jk14" path="res://Scene/BigPanel/ItemStorePanel.tscn" id="21_uhubb"] +[ext_resource type="PackedScene" uid="uid://d3i0l6ysrde6o" path="res://Scene/SmallPanel/AccountSettingPanel.tscn" id="26_uc6q1"] +[ext_resource type="PackedScene" uid="uid://d1lu2yg4xl382" path="res://Scene/SmallPanel/LoadProgressPanel.tscn" id="27_vygm6"] +[ext_resource type="Script" uid="uid://ca2chgx5w3g1y" path="res://Components/GameBGMPlayer.gd" id="28_m6fch"] +[ext_resource type="PackedScene" uid="uid://ibl5wbbw3pwc" path="res://CopyItems/item_button.tscn" id="39_cdkxt"] + +[sub_resource type="Environment" id="Environment_m6fch"] +background_mode = 3 +ambient_light_energy = 0.0 +glow_enabled = true +glow_bloom = 0.3 +glow_blend_mode = 0 + +[node name="main" type="Node"] +script = ExtResource("1_v3yaj") + +[node name="UI" type="CanvasLayer" parent="."] + +[node name="GUI" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 + +[node name="GameInfoHBox1" type="HBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_right = 1400.0 +offset_bottom = 35.0 + +[node name="experience_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +self_modulate = Color(0.498039, 1, 0, 1) +layout_mode = 2 +texture = ExtResource("2_6jgly") +expand_mode = 2 + +[node name="experience" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(0, 1, 0, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "经验:999" + +[node name="level_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("3_y1hsh") +expand_mode = 2 + +[node name="level" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(0, 1, 1, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "等级:100" + +[node name="money_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("4_ql8k3") +expand_mode = 2 + +[node name="money" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(1, 1, 0, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "钱币:999" + +[node name="hungervalue_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("5_n03md") +expand_mode = 2 + +[node name="hunger_value" type="Label" parent="UI/GUI/GameInfoHBox1"] +modulate = Color(0.88617, 0.748355, 0.764238, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "体力值:20" + +[node name="like_image" type="TextureRect" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +texture = ExtResource("6_8kysg") +expand_mode = 2 + +[node name="like" type="Label" parent="UI/GUI/GameInfoHBox1"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.992157, 0.482353, 0.482353, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0.372549, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "点赞数:0" + +[node name="GameInfoHBox2" type="HBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_top = 35.0 +offset_right = 1400.0 +offset_bottom = 70.0 + +[node name="player_name_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("7_n03md") +expand_mode = 2 + +[node name="player_name" type="Label" parent="UI/GUI/GameInfoHBox2"] +modulate = Color(1, 0.670588, 0.490196, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "玩家昵称:树萌芽" + +[node name="farm_name_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("8_uhubb") +expand_mode = 3 + +[node name="farm_name" type="Label" parent="UI/GUI/GameInfoHBox2"] +modulate = Color(1, 0.858824, 0.623529, 1) +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "农场名称:树萌芽的农场" + +[node name="status_label_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("9_uc6q1") +expand_mode = 2 + +[node name="StatusLabel" type="Label" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "服务器状态:正在检测中" + +[node name="FPS_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("10_uhubb") +expand_mode = 2 + +[node name="FPS" type="Label" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.68755, 0.948041, 0, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "FPS:0" + +[node name="onlineplayer_image" type="TextureRect" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +texture = ExtResource("10_vygm6") +expand_mode = 2 + +[node name="onlineplayer" type="Label" parent="UI/GUI/GameInfoHBox2"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.423529, 1, 0.533333, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "检测中..." + +[node name="GameInfoHBox3" type="HBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_top = 70.0 +offset_right = 1400.0 +offset_bottom = 105.0 + +[node name="tip_image" type="TextureRect" parent="UI/GUI/GameInfoHBox3"] +layout_mode = 2 +texture = ExtResource("5_5b81d") +expand_mode = 2 + +[node name="tip" type="Label" parent="UI/GUI/GameInfoHBox3"] +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0.564706, 1, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 25 +text = "游戏小提示" + +[node name="FarmVBox" type="VBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 263.0 +offset_right = 252.0 +offset_bottom = 795.0 +scale = Vector2(0.8, 0.8) +alignment = 2 + +[node name="SeedStoreButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.564706, 0.647059, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "种子商店" + +[node name="SeedWarehouseButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.772549, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "种子仓库" + +[node name="CropWarehouseButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.772549, 0.219608, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "作物仓库" + +[node name="ItemStoreButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.231373, 0.772549, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "道具商店" + +[node name="ItemBagButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.639216, 0.984314, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "道具背包" + +[node name="OneClickHarvestButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.841258, 0.700703, 0.325362, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "一键收获" + +[node name="OneClickPlantButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(0.513945, 0.818793, 3.85046e-07, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "一键种植" + +[node name="AddNewGroundButton" type="Button" parent="UI/GUI/FarmVBox"] +modulate = Color(1, 0.803922, 0.729412, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "添加新土地" + +[node name="VisitVBox" type="VBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_left = 4.0 +offset_top = 115.0 +offset_right = 252.0 +offset_bottom = 245.0 +scale = Vector2(0.8, 0.8) +alignment = 2 + +[node name="LikeButton" type="Button" parent="UI/GUI/VisitVBox"] +modulate = Color(0.992157, 0.482353, 0.482353, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "点赞" + +[node name="ReturnMyFarmButton" type="Button" parent="UI/GUI/VisitVBox"] +modulate = Color(1, 1, 0.721569, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "返回我的农场" + +[node name="OtherVBox" type="VBoxContainer" parent="UI/GUI"] +layout_mode = 0 +offset_left = 1198.0 +offset_top = 77.0 +offset_right = 1446.0 +offset_bottom = 408.0 +scale = Vector2(0.8, 0.8) +alignment = 2 + +[node name="AccountSettingButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.843137, 0.772549, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "账户设置" + +[node name="OnlineGiftButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(1, 0.615686, 0.447059, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "在线礼包" + +[node name="NewPlayerGiftButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(1, 1, 0.447059, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "新手礼包" + +[node name="OneClickScreenShot" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.407843, 0.796078, 0.996078, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "一键截图" + +[node name="LuckyDrawButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.729412, 0.764706, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "幸运抽奖" + +[node name="PlayerRankingButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.717647, 1, 0.576471, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "玩家排行榜" + +[node name="DailyCheckInButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.807843, 1, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "每日签到" + +[node name="ReturnMainMenuButton" type="Button" parent="UI/GUI/OtherVBox"] +modulate = Color(0.639216, 0.482353, 0.870588, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "返回主菜单" + +[node name="SmallGameButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.513726, 0.615686, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "游玩小游戏" + +[node name="SettingButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.345098, 0.764706, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "设置" + +[node name="WisdomTreeButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.345098, 0.764706, 0.611765, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "智慧树" + +[node name="MyPetButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.992157, 0.482353, 0.870588, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "我的宠物" + +[node name="ScareCrowButton" type="Button" parent="UI/GUI/OtherVBox"] +visible = false +modulate = Color(0.937381, 0.612088, 0.36654, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "稻草人" + +[node name="BigPanel" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="LuckyDrawPanel" parent="UI/BigPanel" instance=ExtResource("17_f21le")] +visible = false +offset_left = 442.0 +offset_right = 1042.0 + +[node name="DailyCheckInPanel" parent="UI/BigPanel" instance=ExtResource("18_m6fch")] +visible = false +offset_left = 442.0 +offset_top = 3.0 +offset_right = 1042.0 +offset_bottom = 723.0 + +[node name="TCPNetworkManagerPanel" parent="UI/BigPanel" instance=ExtResource("7_401ut")] +visible = false +offset_left = 2.00012 +offset_top = 143.0 +offset_right = 2.00012 +offset_bottom = 143.0 +scale = Vector2(0.7, 0.7) + +[node name="ItemStorePanel" parent="UI/BigPanel" instance=ExtResource("21_uhubb")] + +[node name="ItemBagPanel" parent="UI/BigPanel" instance=ExtResource("20_n03md")] + +[node name="PlayerBagPanel" parent="UI/BigPanel" instance=ExtResource("19_8kysg")] + +[node name="CropWarehousePanel" parent="UI/BigPanel" instance=ExtResource("18_5b81d")] + +[node name="CropStorePanel" parent="UI/BigPanel" instance=ExtResource("17_ql8k3")] +script = ExtResource("21_5b81d") + +[node name="PlayerRankingPanel" parent="UI/BigPanel" instance=ExtResource("16_n03md")] + +[node name="LoginPanel" parent="UI/BigPanel" instance=ExtResource("11_6jgly")] + +[node name="SmallPanel" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="LandPanel" parent="UI/SmallPanel" instance=ExtResource("12_y1hsh")] +visible = false +offset_left = 442.0 +offset_top = 77.0 +offset_right = 958.0 +offset_bottom = 548.0 + +[node name="LoadProgressPanel" parent="UI/SmallPanel" instance=ExtResource("27_vygm6")] + +[node name="AccountSettingPanel" parent="UI/SmallPanel" instance=ExtResource("26_uc6q1")] + +[node name="OneClickPlantPanel" parent="UI/SmallPanel" instance=ExtResource("15_8kysg")] + +[node name="OnlineGiftPanel" parent="UI/SmallPanel" instance=ExtResource("14_5b81d")] + +[node name="DiaLog" type="Control" parent="UI"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="AcceptDialog" parent="UI/DiaLog" instance=ExtResource("16_0igvr")] +visible = false + +[node name="BackgroundUI" type="CanvasLayer" parent="."] +layer = -1 + +[node name="BackgroundSwitcher" type="Sprite2D" parent="BackgroundUI"] +self_modulate = Color(0.5, 0.5, 0.5, 1) +show_behind_parent = true +z_index = -100 +z_as_relative = false +position = Vector2(703, 360) +scale = Vector2(0.92, 0.92) +script = ExtResource("17_0igvr") + +[node name="Background2" type="Sprite2D" parent="BackgroundUI/BackgroundSwitcher"] +self_modulate = Color(0.5, 0.5, 0.5, 1) + +[node name="Timer" type="Timer" parent="BackgroundUI/BackgroundSwitcher"] + +[node name="GridContainer" type="GridContainer" parent="."] +z_as_relative = false +custom_minimum_size = Vector2(100, 100) +offset_left = -2.0 +offset_top = 2.0 +offset_right = 1398.0 +offset_bottom = 722.0 +columns = 10 + +[node name="CopyNodes" type="Node2D" parent="."] +position = Vector2(-1000, 0) + +[node name="CropItem" parent="CopyNodes" instance=ExtResource("3_isiom")] +z_index = 2 +z_as_relative = false +offset_left = -1433.0 +offset_top = -161.0 +offset_right = -1333.0 +offset_bottom = -61.0 + +[node name="item_button" parent="CopyNodes" instance=ExtResource("39_cdkxt")] + +[node name="GameCamera" type="Camera2D" parent="."] +anchor_mode = 0 +position_smoothing_enabled = true +script = ExtResource("10_o8l48") +max_zoom = 1.1 +bounds_enabled = true +bounds_min = Vector2(-500, -500) +bounds_max = Vector2(500, 500) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_m6fch") + +[node name="GameManager" type="Node" parent="."] + +[node name="GameBGMPlayer" type="Node" parent="."] +script = ExtResource("28_m6fch") +play_mode = 1 +music_files_list = Array[String](["res://assets/音乐/Anibli&RelaxingPianoMusic-StrollThroughtheSky.ogg", "res://assets/音乐/BanAM-Futatabi.ogg", "res://assets/音乐/MCMZebra-AlwaysandManyTimes.ogg", "res://assets/音乐/MicMusicbox-Ashitakasekki.ogg", "res://assets/音乐/Nemuネム-PromiseoftheWorld.ogg", "res://assets/音乐/α-WaveRelaxationHealingMusicLab-いつも何度でも[「千と千尋の神隠し」より][ピアノ].ogg", "res://assets/音乐/久石让-ふたたび.ogg", "res://assets/音乐/广桥真纪子-いのちの名前(生命之名).ogg", "res://assets/音乐/日本群星-PromiseoftheWorld.ogg"]) + +[connection signal="pressed" from="UI/GUI/FarmVBox/SeedStoreButton" to="." method="_on_open_store_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/SeedWarehouseButton" to="." method="_on_seed_warehouse_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/CropWarehouseButton" to="." method="_on_crop_warehouse_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/ItemStoreButton" to="." method="_on_item_store_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/ItemBagButton" to="." method="_on_item_bag_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/OneClickHarvestButton" to="." method="_on_one_click_harvestbutton_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/OneClickPlantButton" to="." method="_on_one_click_plant_button_pressed"] +[connection signal="pressed" from="UI/GUI/FarmVBox/AddNewGroundButton" to="." method="_on_add_new_ground_button_pressed"] +[connection signal="pressed" from="UI/GUI/VisitVBox/LikeButton" to="." method="_on_like_button_pressed"] +[connection signal="pressed" from="UI/GUI/VisitVBox/ReturnMyFarmButton" to="." method="_on_return_my_farm_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/AccountSettingButton" to="." method="_on_account_setting_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/OnlineGiftButton" to="." method="_on_online_gift_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/NewPlayerGiftButton" to="." method="_on_new_player_gift_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/OneClickScreenShot" to="." method="_on_one_click_screen_shot_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/LuckyDrawButton" to="." method="_on_lucky_draw_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/PlayerRankingButton" to="." method="_on_player_ranking_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/DailyCheckInButton" to="." method="_on_daily_check_in_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/ReturnMainMenuButton" to="." method="_on_return_main_menu_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/SmallGameButton" to="." method="_on_online_gift_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/SettingButton" to="." method="_on_setting_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/WisdomTreeButton" to="." method="_on_setting_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/MyPetButton" to="." method="_on_my_pet_button_pressed"] +[connection signal="pressed" from="UI/GUI/OtherVBox/ScareCrowButton" to="." method="_on_my_pet_button_pressed"] diff --git a/Network/TCPNetworkManager.gd b/Network/TCPNetworkManager.gd index 2f9440f..4d49e57 100644 --- a/Network/TCPNetworkManager.gd +++ b/Network/TCPNetworkManager.gd @@ -1,7 +1,6 @@ extends Panel -# TCP客户端演示 -# 这个脚本展示如何在UI中使用TCPClient类 +# TCP客户端通信处理 # UI组件引用 @onready var status_label = $StatusLabel @@ -9,19 +8,27 @@ extends Panel @onready var send_button = $SendButton @onready var response_label = $Scroll/ResponseLabel @onready var connection_button = $ConnectionButton -@onready var login_panel = $"/root/main/UI/LoginPanel" + +#所有面板 @onready var main_game = get_node("/root/main") +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' +@onready var wisdom_tree_panel: Panel = $'../../SmallPanel/WisdomTreePanel' + + # TCP客户端 var client: TCPClient = TCPClient.new() # 服务器配置 - 支持多个服务器地址 -var server_configs = [ - {"host": "127.0.0.1", "port": 4040, "name": "本地"}, - #{"host": "192.168.1.110", "port": 4040, "name": "局域网"}, - #{"host": "47.108.90.0", "port": 4040, "name": "成都内网穿透"}#成都内网穿透 - #{"host": "47.108.90.0", "port": 6060, "name": "成都公网"}#成都服务器 -] +var server_configs = GlobalVariables.server_configs var current_server_index = 0 var auto_retry = true @@ -55,15 +62,10 @@ func _ready(): send_button.pressed.connect(_on_send_button_pressed) # 初始设置 - status_label.text = "❌ 未连接" + status_label.text = "❌未连接" status_label.modulate = Color.RED response_label.text = "等待响应..." connection_button.text = "连接" - - # 初始化延迟测量变量 - current_ping = -1 - is_measuring_ping = false - ping_timer = 0.0 # 每帧检查连接状态和超时 func _process(delta): @@ -132,6 +134,9 @@ func _on_connected(): # 连接成功后立即请求在线人数 sendGetOnlinePlayers() + # 请求智慧树配置 + send_get_wisdom_tree_config() + # 立即开始第一次ping测量 send_ping() @@ -281,6 +286,59 @@ func _on_data_received(data): Toast.show(message, Color.GREEN) else: Toast.show(message, Color.RED) + "buy_pet":#处理购买宠物响应 + if success: + # 更新玩家数据 + if updated_data.has("money"): + main_game.money = updated_data["money"] + if updated_data.has("宠物背包"): + main_game.pet_bag = updated_data["宠物背包"] + + # 更新UI + main_game._update_ui() + if main_game.pet_bag_panel: + main_game.pet_bag_panel.update_pet_bag_ui() + Toast.show(message, Color.MAGENTA) + else: + Toast.show(message, Color.RED) + "rename_pet":#处理重命名宠物响应 + if success: + # 更新玩家数据 + if updated_data.has("宠物背包"): + main_game.pet_bag = updated_data["宠物背包"] + + # 更新UI + if main_game.pet_bag_panel: + main_game.pet_bag_panel.update_pet_bag_ui() + + # 通知宠物信息面板更新 + var pet_inform_panel = get_node_or_null("/root/main/BigPanel/SmallPanel/PetInformPanel") + if pet_inform_panel and pet_inform_panel.has_method("on_rename_pet_success"): + var pet_id = data.get("pet_id", "") + var new_name = data.get("new_name", "") + pet_inform_panel.on_rename_pet_success(pet_id, new_name) + + Toast.show(message, Color.GREEN) + else: + Toast.show(message, Color.RED) + "set_patrol_pet":#处理设置巡逻宠物响应 + if success: + # 更新巡逻宠物数据 + if updated_data.has("巡逻宠物"): + main_game.patrol_pets = updated_data["巡逻宠物"] + + # 更新巡逻宠物显示 + if main_game.has_method("update_patrol_pets"): + main_game.update_patrol_pets() + + # 更新巡逻按钮状态 + var pet_inform_panel = get_node_or_null("/root/main/BigPanel/SmallPanel/PetInformPanel") + if pet_inform_panel and pet_inform_panel.has_method("_refresh_patrol_button"): + pet_inform_panel._refresh_patrol_button() + + Toast.show(message, Color.GREEN) + else: + Toast.show(message, Color.RED) "use_item":#处理使用道具响应 print("调试:收到道具使用响应") print(" - success: ", success) @@ -425,6 +483,9 @@ func _on_data_received(data): "crop_data_response": #作物数据更新响应 if main_game and main_game.has_method("_handle_crop_data_response"): main_game._handle_crop_data_response(data) + "item_config_response": #道具配置数据响应 + if main_game and main_game.has_method("_handle_item_config_response"): + main_game._handle_item_config_response(data) "visit_player_response": #访问玩家响应 if main_game and main_game.has_method("_handle_visit_player_response"): main_game._handle_visit_player_response(data) @@ -466,6 +527,51 @@ func _on_data_received(data): "refresh_player_info_response": #刷新玩家信息响应 if main_game and main_game.has_method("_handle_account_setting_response"): main_game._handle_account_setting_response(data) + "steal_caught": #偷菜被发现响应 + if main_game and main_game.has_method("_handle_steal_caught_response"): + main_game._handle_steal_caught_response(data) + "global_broadcast_message": #全服大喇叭消息 + if main_game and main_game.has_method("_handle_global_broadcast_message"): + main_game._handle_global_broadcast_message(data) + "global_broadcast_response": #全服大喇叭发送响应 + if main_game and main_game.has_method("_handle_global_broadcast_response"): + main_game._handle_global_broadcast_response(data) + "broadcast_history_response": #全服大喇叭历史消息响应 + if main_game and main_game.has_method("_handle_broadcast_history_response"): + main_game._handle_broadcast_history_response(data) + "use_pet_item_response": #宠物使用道具响应 + if main_game and main_game.has_method("_handle_use_pet_item_response"): + main_game._handle_use_pet_item_response(data) + "use_farm_item_response": #农场道具使用响应 + if main_game and main_game.has_method("_handle_use_farm_item_response"): + main_game._handle_use_farm_item_response(data) + "buy_scare_crow_response": #购买稻草人响应 + if main_game and main_game.has_method("_handle_buy_scare_crow_response"): + main_game._handle_buy_scare_crow_response(data) + "modify_scare_crow_config_response": #修改稻草人配置响应 + if main_game and main_game.has_method("_handle_modify_scare_crow_config_response"): + main_game._handle_modify_scare_crow_config_response(data) + "get_scare_crow_config_response": #获取稻草人配置响应 + if main_game and main_game.has_method("_handle_get_scare_crow_config_response"): + main_game._handle_get_scare_crow_config_response(data) + "wisdom_tree_operation_response": #智慧树操作响应 + var success = data.get("success", false) + var message = data.get("message", "") + var operation_type = data.get("operation_type", "") + var updated_data = data.get("updated_data", {}) + + if wisdom_tree_panel and wisdom_tree_panel.has_method("handle_wisdom_tree_operation_response"): + wisdom_tree_panel.handle_wisdom_tree_operation_response(success, message, operation_type, updated_data) + "wisdom_tree_message_response": #智慧树消息发送响应 + var success = data.get("success", false) + var message = data.get("message", "") + var updated_data = data.get("updated_data", {}) + + if wisdom_tree_panel and wisdom_tree_panel.has_method("handle_wisdom_tree_message_response"): + wisdom_tree_panel.handle_wisdom_tree_message_response(success, message, updated_data) + "wisdom_tree_config_response": #智慧树配置响应 + if main_game and main_game.has_method("_handle_wisdom_tree_config_response"): + main_game._handle_wisdom_tree_config_response(data) _: # 显示其他类型的消息 return @@ -603,19 +709,20 @@ func sendRemoveCrop(lot_index): return true #发送购买种子信息 -func sendBuySeed(crop_name): +func sendBuySeed(crop_name, quantity = 1): if not client.is_client_connected(): return false client.send_data({ "type": "buy_seed", "crop_name": crop_name, + "quantity": quantity, "timestamp": Time.get_unix_time_from_system() }) return true #发送购买道具信息 -func sendBuyItem(item_name, item_cost): +func sendBuyItem(item_name, item_cost, quantity = 1): if not client.is_client_connected(): return false @@ -623,6 +730,59 @@ func sendBuyItem(item_name, item_cost): "type": "buy_item", "item_name": item_name, "item_cost": item_cost, + "quantity": quantity, + "timestamp": Time.get_unix_time_from_system() + }) + return true + +#发送购买宠物信息 +func sendBuyPet(pet_name, pet_cost): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "buy_pet", + "pet_name": pet_name, + "pet_cost": pet_cost, + "timestamp": Time.get_unix_time_from_system() + }) + return true + +#发送重命名宠物信息 +func sendRenamePet(pet_id, new_name): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "rename_pet", + "pet_id": pet_id, + "new_name": new_name, + "timestamp": Time.get_unix_time_from_system() + }) + return true + +#发送设置巡逻宠物信息 +func sendSetPatrolPet(pet_id, is_patrolling): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "set_patrol_pet", + "pet_id": pet_id, + "is_patrolling": is_patrolling, + "timestamp": Time.get_unix_time_from_system() + }) + return true + +#发送设置出战宠物信息 +func sendSetBattlePet(pet_id, is_battle): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "set_battle_pet", + "pet_id": pet_id, + "is_battle": is_battle, "timestamp": Time.get_unix_time_from_system() }) return true @@ -631,8 +791,8 @@ func sendBuyItem(item_name, item_cost): func sendUseItem(lot_index, item_name, use_type, target_username = ""): if not client.is_client_connected(): - print("错误:客户端未连接") return false + var message = { "type": "use_item", "lot_index": lot_index, @@ -713,6 +873,16 @@ func sendGetCropData(): }) return true +#发送获取道具配置数据请求 +func sendGetItemConfig(): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "request_item_config" + }) + return true + #发送访问玩家请求 func sendVisitPlayer(target_username): if not client.is_client_connected(): @@ -876,6 +1046,78 @@ func sendClaimOnlineGift(gift_name: String): }) return true +#发送购买稻草人请求 +func send_buy_scare_crow(scare_crow_type: String, price: int): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "buy_scare_crow", + "scare_crow_type": scare_crow_type, + "price": price, + "timestamp": Time.get_unix_time_from_system() + }) + return true + +#发送修改稻草人配置请求 +func send_modify_scare_crow_config(config_data: Dictionary, modify_cost: int): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "modify_scare_crow_config", + "config_data": config_data, + "modify_cost": modify_cost, + "timestamp": Time.get_unix_time_from_system() + }) + return true + +#发送获取稻草人配置请求 +func send_get_scare_crow_config(): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "get_scare_crow_config", + "timestamp": Time.get_unix_time_from_system() + }) + return true + +#发送智慧树操作请求 +func send_wisdom_tree_operation(operation_type: String): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "wisdom_tree_operation", + "operation_type": operation_type, + "timestamp": Time.get_unix_time_from_system() + }) + return true + +#发送智慧树消息 +func send_wisdom_tree_message(message: String): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "wisdom_tree_message", + "message": message, + "timestamp": Time.get_unix_time_from_system() + }) + return true + +#发送获取智慧树配置请求 +func send_get_wisdom_tree_config(): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "get_wisdom_tree_config", + "timestamp": Time.get_unix_time_from_system() + }) + return true + #检查是否连接到服务器 func is_connected_to_server(): return client.is_client_connected() diff --git a/Scene/BigPanel/CropStorePanel.tscn b/Scene/BigPanel/CropStorePanel.tscn new file mode 100644 index 0000000..e1c0a75 --- /dev/null +++ b/Scene/BigPanel/CropStorePanel.tscn @@ -0,0 +1,167 @@ +[gd_scene load_steps=4 format=3 uid="uid://hesp70n3ondo"] + +[ext_resource type="Script" uid="uid://mtfp0ct42nrx" path="res://Script/BigPanel/CropStorePanel.gd" id="1_ehof8"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8kysg"] +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 5 +shadow_size = 20 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uc6q1"] +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 20 + +[node name="CropStorePanel" type="Panel"] +offset_left = 79.0 +offset_top = 70.0 +offset_right = 1598.0 +offset_bottom = 790.0 +scale = Vector2(0.8, 0.8) +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_8kysg") +script = ExtResource("1_ehof8") + +[node name="TMBackGround" type="ColorRect" parent="."] +layout_mode = 0 +offset_left = -101.0 +offset_top = -87.0 +offset_right = 1655.0 +offset_bottom = 811.0 +color = Color(1, 1, 1, 0) + +[node name="Title" type="Label" parent="."] +layout_mode = 2 +offset_right = 1519.0 +offset_bottom = 69.0 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(1, 0.964706, 0, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 5 +theme_override_constants/shadow_offset_y = 5 +theme_override_constants/outline_size = 15 +theme_override_constants/shadow_outline_size = 15 +theme_override_font_sizes/font_size = 50 +text = "种子商店" +horizontal_alignment = 1 + +[node name="SortContainer" type="HBoxContainer" parent="."] +layout_mode = 0 +offset_top = 78.0 +offset_right = 1519.0 +offset_bottom = 141.0 +alignment = 1 + +[node name="FilterLabel" type="Label" parent="SortContainer"] +self_modulate = Color(0.607843, 0.647059, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "筛选:" + +[node name="Sort_All" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "全部" + +[node name="Sort_Common" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "普通" + +[node name="Sort_Superior" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "优良" + +[node name="Sort_Rare" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "稀有" + +[node name="Sort_Epic" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "史诗" + +[node name="Sort_Legendary" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "传奇" + +[node name="SortLabel" type="Label" parent="SortContainer"] +self_modulate = Color(0.607843, 0.647059, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "排序:" + +[node name="Sort_Price" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按价格" + +[node name="Sort_GrowTime" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按生长时间" + +[node name="Sort_Profit" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按收益" + +[node name="Sort_Level" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按等级" + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +layout_mode = 2 +offset_left = 13.0 +offset_top = 144.0 +offset_right = 3727.0 +offset_bottom = 1551.0 +scale = Vector2(0.4, 0.4) +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_uc6q1") +horizontal_scroll_mode = 0 +vertical_scroll_mode = 2 +scroll_deadzone = -10 + +[node name="Crop_Grid" type="GridContainer" parent="ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 3 +columns = 8 + +[node name="QuitButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 1438.75 +offset_top = 11.25 +offset_right = 1498.75 +offset_bottom = 74.25 +theme_override_font_sizes/font_size = 40 +text = "X" + +[node name="RefreshButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 13.0 +offset_top = 11.0 +offset_right = 101.0 +offset_bottom = 74.0 +theme_override_font_sizes/font_size = 40 +text = "刷新" + +[connection signal="pressed" from="RefreshButton" to="." method="_on_refresh_button_pressed"] diff --git a/Scene/BigPanel/CropWarehousePanel.tscn b/Scene/BigPanel/CropWarehousePanel.tscn new file mode 100644 index 0000000..bb4ff89 --- /dev/null +++ b/Scene/BigPanel/CropWarehousePanel.tscn @@ -0,0 +1,166 @@ +[gd_scene load_steps=4 format=3 uid="uid://drw18a6mcr2of"] + +[ext_resource type="Script" uid="uid://ptdj0qmobihd" path="res://Script/BigPanel/CropWarehousePanel.gd" id="1_24g1t"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8kysg"] +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 5 +shadow_size = 20 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uc6q1"] +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 20 + +[node name="CropWarehousePanel" type="Panel"] +visible = false +offset_left = 58.0 +offset_top = 77.0 +offset_right = 1624.0 +offset_bottom = 797.0 +scale = Vector2(0.8, 0.8) +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_8kysg") +script = ExtResource("1_24g1t") + +[node name="TMBackGround" type="ColorRect" parent="."] +layout_mode = 0 +offset_left = -72.0 +offset_top = -95.0 +offset_right = 1678.0 +offset_bottom = 804.0 +color = Color(1, 1, 1, 0) + +[node name="Title" type="Label" parent="."] +layout_mode = 2 +offset_right = 1566.0 +offset_bottom = 55.0 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(1, 0.964706, 0, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 40 +text = "作物仓库" +horizontal_alignment = 1 + +[node name="SortContainer" type="HBoxContainer" parent="."] +layout_mode = 0 +offset_top = 58.0 +offset_right = 1566.0 +offset_bottom = 121.0 +alignment = 1 + +[node name="FilterLabel" type="Label" parent="SortContainer"] +self_modulate = Color(0.607843, 1, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "筛选:" + +[node name="Sort_All" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "全部" + +[node name="Sort_Common" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "普通" + +[node name="Sort_Superior" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "优良" + +[node name="Sort_Rare" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "稀有" + +[node name="Sort_Epic" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "史诗" + +[node name="Sort_Legendary" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "传奇" + +[node name="SortLabel" type="Label" parent="SortContainer"] +self_modulate = Color(0.607843, 1, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "排序:" + +[node name="Sort_Price" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按价格" + +[node name="Sort_GrowTime" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按生长时间" + +[node name="Sort_Profit" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按收益" + +[node name="Sort_Level" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按等级" + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +layout_mode = 2 +offset_left = 9.0 +offset_top = 121.0 +offset_right = 3890.0 +offset_bottom = 1588.0 +scale = Vector2(0.4, 0.4) +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_uc6q1") +horizontal_scroll_mode = 0 +vertical_scroll_mode = 2 +scroll_deadzone = -10 + +[node name="Warehouse_Grid" type="GridContainer" parent="ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 3 +columns = 8 + +[node name="QuitButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 1495.0 +offset_top = 12.5 +offset_right = 1555.0 +offset_bottom = 75.5 +theme_override_font_sizes/font_size = 40 +text = "X" + +[node name="RefreshButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 12.5001 +offset_top = 12.5 +offset_right = 100.5 +offset_bottom = 75.5 +theme_override_font_sizes/font_size = 40 +text = "刷新" diff --git a/GUI/DailyCheckInPanel.tscn b/Scene/BigPanel/DailyCheckInPanel.tscn similarity index 97% rename from GUI/DailyCheckInPanel.tscn rename to Scene/BigPanel/DailyCheckInPanel.tscn index 74d0644..9695be2 100644 --- a/GUI/DailyCheckInPanel.tscn +++ b/Scene/BigPanel/DailyCheckInPanel.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://smypui0vyso5"] -[ext_resource type="Script" uid="uid://c0jfbtkh0mj5b" path="res://GUI/DailyCheckInPanel.gd" id="1_fj7a7"] +[ext_resource type="Script" uid="uid://c0jfbtkh0mj5b" path="res://Script/BigPanel/DailyCheckInPanel.gd" id="1_fj7a7"] [node name="DailyCheckInPanel" type="Panel"] offset_right = 600.0 diff --git a/Scene/BigPanel/ItemBagPanel.tscn b/Scene/BigPanel/ItemBagPanel.tscn new file mode 100644 index 0000000..1e275c8 --- /dev/null +++ b/Scene/BigPanel/ItemBagPanel.tscn @@ -0,0 +1,89 @@ +[gd_scene load_steps=3 format=3 uid="uid://cehw5sx5pgmmc"] + +[ext_resource type="Script" uid="uid://b701r833vse3u" path="res://Script/BigPanel/ItemBagPanel.gd" id="1_ixe68"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n03md"] +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 20 + +[node name="ItemBagPanel" type="Panel"] +offset_left = 69.0 +offset_top = 56.0 +offset_right = 1635.0 +offset_bottom = 836.0 +scale = Vector2(0.8, 0.8) +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_n03md") +script = ExtResource("1_ixe68") + +[node name="TMBackGround" type="ColorRect" parent="."] +layout_mode = 0 +offset_left = -90.0 +offset_top = -71.0 +offset_right = 1672.0 +offset_bottom = 831.0 +color = Color(1, 1, 1, 0) + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +layout_mode = 2 +offset_left = 28.0 +offset_top = 95.0 +offset_right = 3805.0 +offset_bottom = 1723.0 +scale = Vector2(0.4, 0.4) +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="Bag_Grid" type="GridContainer" parent="ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 3 +columns = 8 + +[node name="Title" type="Label" parent="."] +layout_mode = 2 +offset_right = 1566.0 +offset_bottom = 69.0 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(1, 1, 0.807843, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_offset_y = 4 +theme_override_constants/outline_size = 15 +theme_override_constants/shadow_outline_size = 15 +theme_override_font_sizes/font_size = 50 +text = "道具背包" +horizontal_alignment = 1 + +[node name="QuitButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 1478.75 +offset_top = 20.0 +offset_right = 1538.75 +offset_bottom = 83.0 +theme_override_font_sizes/font_size = 40 +text = "X" + +[node name="RefreshButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 27.5 +offset_top = 16.25 +offset_right = 115.5 +offset_bottom = 79.25 +theme_override_font_sizes/font_size = 40 +text = "刷新" + +[connection signal="pressed" from="QuitButton" to="." method="_on_quit_button_pressed"] +[connection signal="pressed" from="RefreshButton" to="." method="_on_refresh_button_pressed"] diff --git a/Scene/BigPanel/ItemStorePanel.tscn b/Scene/BigPanel/ItemStorePanel.tscn new file mode 100644 index 0000000..47781bf --- /dev/null +++ b/Scene/BigPanel/ItemStorePanel.tscn @@ -0,0 +1,90 @@ +[gd_scene load_steps=3 format=3 uid="uid://j4ft87o7jk14"] + +[ext_resource type="Script" uid="uid://bruqwi63myl1m" path="res://Script/BigPanel/ItemStorePanel.gd" id="1_vx1qn"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n03md"] +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 20 + +[node name="ItemStorePanel" type="Panel"] +visible = false +offset_left = 58.0 +offset_top = 79.0 +offset_right = 1598.0 +offset_bottom = 799.0 +scale = Vector2(0.8, 0.8) +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_n03md") +script = ExtResource("1_vx1qn") + +[node name="TMBackGround" type="ColorRect" parent="."] +layout_mode = 0 +offset_left = -184.0 +offset_top = -100.0 +offset_right = 1571.0 +offset_bottom = 804.0 +color = Color(1, 1, 1, 0) + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +layout_mode = 2 +offset_left = 15.0 +offset_top = 88.0 +offset_right = 3799.0 +offset_bottom = 1626.0 +scale = Vector2(0.4, 0.4) +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="Store_Grid" type="GridContainer" parent="ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 3 +columns = 8 + +[node name="Title" type="Label" parent="."] +layout_mode = 2 +offset_right = 1540.0 +offset_bottom = 75.0 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(1, 1, 0.807843, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_offset_y = 4 +theme_override_constants/outline_size = 15 +theme_override_constants/shadow_outline_size = 15 +theme_override_font_sizes/font_size = 40 +text = "道具商店" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="QuitButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 1457.5 +offset_top = 13.75 +offset_right = 1517.5 +offset_bottom = 76.75 +theme_override_font_sizes/font_size = 40 +text = "X" + +[node name="RefreshButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 12.5 +offset_top = 12.5 +offset_right = 100.5 +offset_bottom = 75.5 +theme_override_font_sizes/font_size = 40 +text = "刷新" + +[connection signal="pressed" from="RefreshButton" to="." method="_on_refresh_button_pressed"] diff --git a/GUI/loginPanel.tscn b/Scene/BigPanel/LoginPanel.tscn similarity index 84% rename from GUI/loginPanel.tscn rename to Scene/BigPanel/LoginPanel.tscn index a9f81da..ebbc030 100644 --- a/GUI/loginPanel.tscn +++ b/Scene/BigPanel/LoginPanel.tscn @@ -1,12 +1,12 @@ [gd_scene load_steps=2 format=3 uid="uid://cbhitturvihqj"] -[ext_resource type="Script" uid="uid://cka0r4g8tbf0" path="res://GUI/LoginPanel.gd" id="1_xnwaq"] +[ext_resource type="Script" uid="uid://cka0r4g8tbf0" path="res://Script/BigPanel/LoginPanel.gd" id="1_xnwaq"] [node name="LoginPanel" type="PanelContainer"] -offset_left = 449.0 -offset_top = 77.0 -offset_right = 952.0 -offset_bottom = 550.0 +offset_left = 343.0 +offset_top = 36.0 +offset_right = 1071.0 +offset_bottom = 667.0 script = ExtResource("1_xnwaq") [node name="VBox" type="VBoxContainer" parent="."] @@ -21,7 +21,7 @@ theme_override_constants/shadow_offset_x = 5 theme_override_constants/shadow_offset_y = 5 theme_override_constants/outline_size = 15 theme_override_constants/shadow_outline_size = 15 -theme_override_font_sizes/font_size = 30 +theme_override_font_sizes/font_size = 40 text = "登录/注册面板" horizontal_alignment = 1 vertical_alignment = 1 @@ -31,7 +31,7 @@ layout_mode = 2 [node name="Label" type="Label" parent="VBox/UserName"] layout_mode = 2 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "账号" horizontal_alignment = 1 vertical_alignment = 1 @@ -39,7 +39,7 @@ vertical_alignment = 1 [node name="username_input" type="LineEdit" parent="VBox/UserName"] layout_mode = 2 size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 placeholder_text = "请输入QQ号" metadata/_edit_use_anchors_ = true @@ -48,7 +48,7 @@ layout_mode = 2 [node name="Label2" type="Label" parent="VBox/Password1"] layout_mode = 2 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "密码" horizontal_alignment = 1 vertical_alignment = 1 @@ -56,16 +56,15 @@ vertical_alignment = 1 [node name="password_input" type="LineEdit" parent="VBox/Password1"] layout_mode = 2 size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 placeholder_text = "请输入密码" [node name="Password2" type="HBoxContainer" parent="VBox"] -visible = false layout_mode = 2 [node name="Label2" type="Label" parent="VBox/Password2"] layout_mode = 2 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "确认密码" horizontal_alignment = 1 vertical_alignment = 1 @@ -73,16 +72,15 @@ vertical_alignment = 1 [node name="password_input2" type="LineEdit" parent="VBox/Password2"] layout_mode = 2 size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 placeholder_text = "请再次输入密码" [node name="VerificationCode" type="HBoxContainer" parent="VBox"] -visible = false layout_mode = 2 [node name="Label" type="Label" parent="VBox/VerificationCode"] layout_mode = 2 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "验证码" horizontal_alignment = 1 vertical_alignment = 1 @@ -90,22 +88,21 @@ vertical_alignment = 1 [node name="verificationcode_input" type="LineEdit" parent="VBox/VerificationCode"] layout_mode = 2 size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 placeholder_text = "请输入您的QQ邮箱收到的验证码" metadata/_edit_use_anchors_ = true [node name="SendButton" type="Button" parent="VBox/VerificationCode"] layout_mode = 2 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "发送验证码" [node name="PlayerName" type="HBoxContainer" parent="VBox"] -visible = false layout_mode = 2 [node name="Label2" type="Label" parent="VBox/PlayerName"] layout_mode = 2 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "玩家昵称" horizontal_alignment = 1 vertical_alignment = 1 @@ -113,16 +110,15 @@ vertical_alignment = 1 [node name="playername_input" type="LineEdit" parent="VBox/PlayerName"] layout_mode = 2 size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 placeholder_text = "请输入您的玩家昵称" [node name="FarmName" type="HBoxContainer" parent="VBox"] -visible = false layout_mode = 2 [node name="Label" type="Label" parent="VBox/FarmName"] layout_mode = 2 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "农场名称" horizontal_alignment = 1 vertical_alignment = 1 @@ -130,7 +126,7 @@ vertical_alignment = 1 [node name="farmname_input" type="LineEdit" parent="VBox/FarmName"] layout_mode = 2 size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 placeholder_text = "请输入您的农场名称" metadata/_edit_use_anchors_ = true @@ -140,13 +136,13 @@ layout_mode = 2 [node name="login_button" type="Button" parent="VBox/LoginRegister"] layout_mode = 2 size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "登录" [node name="register_button" type="Button" parent="VBox/LoginRegister"] layout_mode = 2 size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "注册" [node name="Password3" type="HBoxContainer" parent="VBox"] @@ -175,7 +171,7 @@ placeholder_text = "请输入QQ邮箱验证码" [node name="Note" type="Label" parent="VBox"] modulate = Color(1, 0.552941, 1, 1) layout_mode = 2 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "注意:首次游玩游戏需要注册账号, 账号请直接输入您的QQ号,系统会直接向您的QQ 邮箱发送一串验证码进行注册验证,密码请设置的复杂一 @@ -185,6 +181,6 @@ vertical_alignment = 1 [node name="status_label" type="Label" parent="VBox"] layout_mode = 2 -theme_override_font_sizes/font_size = 20 +theme_override_font_sizes/font_size = 30 text = "连接状态" horizontal_alignment = 1 diff --git a/GUI/LuckyDrawPanel.tscn b/Scene/BigPanel/LuckyDrawPanel.tscn similarity index 98% rename from GUI/LuckyDrawPanel.tscn rename to Scene/BigPanel/LuckyDrawPanel.tscn index 961422e..774c876 100644 --- a/GUI/LuckyDrawPanel.tscn +++ b/Scene/BigPanel/LuckyDrawPanel.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://bndf1e4sgdjr6"] -[ext_resource type="Script" uid="uid://65e0rl31fx0i" path="res://GUI/LuckyDrawPanel.gd" id="1_dcmen"] +[ext_resource type="Script" uid="uid://65e0rl31fx0i" path="res://Script/BigPanel/LuckyDrawPanel.gd" id="1_dcmen"] [node name="LuckyDrawPanel" type="Panel"] offset_right = 600.0 diff --git a/Scene/BigPanel/PetBagPanel.tscn b/Scene/BigPanel/PetBagPanel.tscn new file mode 100644 index 0000000..3cfa813 --- /dev/null +++ b/Scene/BigPanel/PetBagPanel.tscn @@ -0,0 +1,86 @@ +[gd_scene load_steps=3 format=3 uid="uid://bnf1u6re1r1if"] + +[ext_resource type="Script" uid="uid://bdhwvqsmakna2" path="res://Script/BigPanel/PetBagPanel.gd" id="1_m60ti"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n03md"] +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 20 + +[node name="PetBagPanel" type="Panel"] +offset_left = 69.0 +offset_top = 56.0 +offset_right = 1635.0 +offset_bottom = 836.0 +scale = Vector2(0.8, 0.8) +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_n03md") +script = ExtResource("1_m60ti") + +[node name="TMBackGround" type="ColorRect" parent="."] +layout_mode = 0 +offset_left = -90.0 +offset_top = -71.0 +offset_right = 1672.0 +offset_bottom = 831.0 +color = Color(1, 1, 1, 0) + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +layout_mode = 2 +offset_left = 28.0 +offset_top = 95.0 +offset_right = 3805.0 +offset_bottom = 1723.0 +scale = Vector2(0.4, 0.4) +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="Bag_Grid" type="GridContainer" parent="ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 3 +columns = 8 + +[node name="Title" type="Label" parent="."] +layout_mode = 2 +offset_right = 1566.0 +offset_bottom = 69.0 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(1, 1, 0.807843, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_offset_y = 4 +theme_override_constants/outline_size = 15 +theme_override_constants/shadow_outline_size = 15 +theme_override_font_sizes/font_size = 50 +text = "宠物背包" +horizontal_alignment = 1 + +[node name="QuitButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 1478.75 +offset_top = 20.0 +offset_right = 1538.75 +offset_bottom = 83.0 +theme_override_font_sizes/font_size = 40 +text = "X" + +[node name="RefreshButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 27.5 +offset_top = 16.25 +offset_right = 115.5 +offset_bottom = 79.25 +theme_override_font_sizes/font_size = 40 +text = "刷新" diff --git a/Scene/BigPanel/PetStorePanel.tscn b/Scene/BigPanel/PetStorePanel.tscn new file mode 100644 index 0000000..1e5774f --- /dev/null +++ b/Scene/BigPanel/PetStorePanel.tscn @@ -0,0 +1,86 @@ +[gd_scene load_steps=3 format=3 uid="uid://cnjidcwuv4nn4"] + +[ext_resource type="Script" uid="uid://dc1pmi1ubd2cf" path="res://Script/BigPanel/PetStorePanel.gd" id="1_pfdc7"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n03md"] +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 20 + +[node name="PetStorePanel" type="Panel"] +offset_left = 69.0 +offset_top = 56.0 +offset_right = 1635.0 +offset_bottom = 836.0 +scale = Vector2(0.8, 0.8) +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_n03md") +script = ExtResource("1_pfdc7") + +[node name="TMBackGround" type="ColorRect" parent="."] +layout_mode = 0 +offset_left = -90.0 +offset_top = -71.0 +offset_right = 1672.0 +offset_bottom = 831.0 +color = Color(1, 1, 1, 0) + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +layout_mode = 2 +offset_left = 28.0 +offset_top = 95.0 +offset_right = 3805.0 +offset_bottom = 1723.0 +scale = Vector2(0.4, 0.4) +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="Store_Grid" type="GridContainer" parent="ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 3 +columns = 8 + +[node name="Title" type="Label" parent="."] +layout_mode = 2 +offset_right = 1566.0 +offset_bottom = 69.0 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(1, 1, 0.807843, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 4 +theme_override_constants/shadow_offset_y = 4 +theme_override_constants/outline_size = 15 +theme_override_constants/shadow_outline_size = 15 +theme_override_font_sizes/font_size = 50 +text = "宠物商店" +horizontal_alignment = 1 + +[node name="QuitButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 1478.75 +offset_top = 20.0 +offset_right = 1538.75 +offset_bottom = 83.0 +theme_override_font_sizes/font_size = 40 +text = "X" + +[node name="RefreshButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 27.5 +offset_top = 16.25 +offset_right = 115.5 +offset_bottom = 79.25 +theme_override_font_sizes/font_size = 40 +text = "刷新" diff --git a/Scene/BigPanel/PlayerBagPanel.tscn b/Scene/BigPanel/PlayerBagPanel.tscn new file mode 100644 index 0000000..22e6494 --- /dev/null +++ b/Scene/BigPanel/PlayerBagPanel.tscn @@ -0,0 +1,157 @@ +[gd_scene load_steps=3 format=3 uid="uid://bseuwniienrqy"] + +[ext_resource type="Script" uid="uid://cgr332wsx63a8" path="res://Script/BigPanel/PlayerBagPanel.gd" id="1_srags"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n03md"] +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +corner_detail = 20 +shadow_size = 20 + +[node name="PlayerBagPanel" type="Panel"] +offset_left = 63.0 +offset_top = 79.0 +offset_right = 1620.0 +offset_bottom = 799.0 +scale = Vector2(0.8, 0.8) +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_n03md") +script = ExtResource("1_srags") + +[node name="TMBackGround" type="ColorRect" parent="."] +layout_mode = 0 +offset_left = -81.0 +offset_top = -96.0 +offset_right = 1677.0 +offset_bottom = 802.0 +color = Color(1, 1, 1, 0) + +[node name="SortContainer" type="HBoxContainer" parent="."] +layout_mode = 0 +offset_top = 58.0 +offset_right = 1557.0 +offset_bottom = 121.0 +alignment = 1 + +[node name="FilterLabel" type="Label" parent="SortContainer"] +modulate = Color(0.439216, 0.560784, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "排序:" + +[node name="Sort_All" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "全部" + +[node name="Sort_Common" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "普通" + +[node name="Sort_Superior" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "优良" + +[node name="Sort_Rare" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "稀有" + +[node name="Sort_Epic" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "史诗" + +[node name="Sort_Legendary" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "传奇" + +[node name="SortLabel" type="Label" parent="SortContainer"] +modulate = Color(0.439216, 0.560784, 1, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "排序:" + +[node name="Sort_Price" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按价格" + +[node name="Sort_GrowTime" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按生长时间" + +[node name="Sort_Profit" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按收益" + +[node name="Sort_Level" type="Button" parent="SortContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "按等级" + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +layout_mode = 2 +offset_left = 11.0 +offset_top = 121.0 +offset_right = 3877.0 +offset_bottom = 1592.0 +scale = Vector2(0.4, 0.4) +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="Bag_Grid" type="GridContainer" parent="ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 6 +size_flags_vertical = 3 +columns = 8 + +[node name="Title" type="Label" parent="."] +layout_mode = 2 +offset_right = 1557.0 +offset_bottom = 55.0 +size_flags_horizontal = 3 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 2 +theme_override_constants/shadow_offset_y = 2 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 40 +text = "种子仓库" +horizontal_alignment = 1 + +[node name="QuitButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 1478.75 +offset_top = 13.75 +offset_right = 1538.75 +offset_bottom = 76.75 +theme_override_font_sizes/font_size = 40 +text = "X" + +[node name="RefreshButton" type="Button" parent="."] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +offset_left = 15.0001 +offset_top = 13.75 +offset_right = 75.0001 +offset_bottom = 76.75 +theme_override_font_sizes/font_size = 40 +text = "刷新" + +[connection signal="pressed" from="RefreshButton" to="." method="_on_refresh_button_pressed"] diff --git a/Scene/BigPanel/PlayerRankingPanel.tscn b/Scene/BigPanel/PlayerRankingPanel.tscn new file mode 100644 index 0000000..e0ad364 --- /dev/null +++ b/Scene/BigPanel/PlayerRankingPanel.tscn @@ -0,0 +1,152 @@ +[gd_scene load_steps=3 format=3 uid="uid://dbfqu87627yg6"] + +[ext_resource type="Script" uid="uid://fk4q3x6uqydd" path="res://Script/BigPanel/PlayerRankingPanel.gd" id="1_efhd6"] +[ext_resource type="PackedScene" uid="uid://crd28qnymob7" path="res://GUI/PlayerRankingItem.tscn" id="1_xwp76"] + +[node name="PlayerRankingPanel" type="Panel"] +offset_left = 2.0 +offset_right = 1402.0 +offset_bottom = 720.0 +script = ExtResource("1_efhd6") + +[node name="RegisterPlayerNum" type="Label" parent="."] +self_modulate = Color(1, 0.701961, 1, 1) +layout_mode = 0 +offset_left = 864.0 +offset_right = 1014.0 +offset_bottom = 42.0 +theme_override_font_sizes/font_size = 30 +text = "注册人数:" + +[node name="Title" type="RichTextLabel" parent="."] +layout_mode = 2 +offset_left = 2.0 +offset_right = 1395.0 +offset_bottom = 56.0 +size_flags_vertical = 3 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/normal_font_size = 40 +bbcode_enabled = true +text = "玩家排行榜" +horizontal_alignment = 1 + +[node name="SearchLineEdit" type="LineEdit" parent="."] +layout_mode = 0 +offset_left = 143.0 +offset_top = 3.0 +offset_right = 426.0 +offset_bottom = 60.0 +theme_override_font_sizes/font_size = 35 +text = "输入要搜索的人" + +[node name="RefreshButton" type="Button" parent="."] +custom_minimum_size = Vector2(55, 55) +layout_mode = 0 +offset_top = 3.0 +offset_right = 78.0 +offset_bottom = 60.0 +theme_override_font_sizes/font_size = 35 +text = "刷新" + +[node name="SearchButton" type="Button" parent="."] +custom_minimum_size = Vector2(55, 55) +layout_mode = 0 +offset_left = 425.0 +offset_top = 3.0 +offset_right = 503.0 +offset_bottom = 60.0 +theme_override_font_sizes/font_size = 35 +text = "搜索" + +[node name="QuitButton" type="Button" parent="."] +custom_minimum_size = Vector2(55, 55) +layout_mode = 0 +offset_left = 1338.0 +offset_top = 3.0 +offset_right = 1395.0 +offset_bottom = 60.0 +theme_override_font_sizes/font_size = 35 +text = "X" + +[node name="FiterAndSortHBox" type="HBoxContainer" parent="."] +layout_mode = 0 +offset_top = 63.0 +offset_right = 1398.0 +offset_bottom = 120.0 + +[node name="SortLabel" type="Label" parent="FiterAndSortHBox"] +layout_mode = 2 +size_flags_vertical = 1 +theme_override_font_sizes/font_size = 30 +text = "排序:" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="MoneySortBtn" type="Button" parent="FiterAndSortHBox"] +self_modulate = Color(1, 1, 0.321569, 1) +custom_minimum_size = Vector2(158, 57) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "钱币" + +[node name="SeedSortBtn" type="Button" parent="FiterAndSortHBox"] +self_modulate = Color(0.329412, 1, 0.345098, 1) +custom_minimum_size = Vector2(158, 57) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "种子数" + +[node name="LevelSortBtn" type="Button" parent="FiterAndSortHBox"] +self_modulate = Color(0, 1, 1, 1) +custom_minimum_size = Vector2(158, 57) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "等级" + +[node name="OnlineTimeSortBtn" type="Button" parent="FiterAndSortHBox"] +self_modulate = Color(0.784314, 0.733333, 0.521569, 1) +custom_minimum_size = Vector2(158, 57) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "在线时长" + +[node name="LoginTimeSortBtn" type="Button" parent="FiterAndSortHBox"] +self_modulate = Color(0.811765, 1, 0.811765, 1) +custom_minimum_size = Vector2(158, 57) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "登录时间" + +[node name="LikeNumSortBtn" type="Button" parent="FiterAndSortHBox"] +self_modulate = Color(1, 0.513726, 1, 1) +custom_minimum_size = Vector2(158, 57) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "点赞数" + +[node name="IsOnlineSortBtn" type="Button" parent="FiterAndSortHBox"] +self_modulate = Color(0.691357, 0.691357, 0.691357, 1) +custom_minimum_size = Vector2(158, 57) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "在线情况" + +[node name="Scroll" type="ScrollContainer" parent="."] +layout_mode = 2 +offset_top = 121.0 +offset_right = 1400.0 +offset_bottom = 720.0 +size_flags_vertical = 3 + +[node name="PlayerList" type="VBoxContainer" parent="Scroll"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="PlayerRankingItem" parent="Scroll/PlayerList" instance=ExtResource("1_xwp76")] +layout_mode = 2 diff --git a/GUI/AcceptDialog.tscn b/Scene/Dialog/AcceptDialog.tscn similarity index 78% rename from GUI/AcceptDialog.tscn rename to Scene/Dialog/AcceptDialog.tscn index 9160854..dbd457d 100644 --- a/GUI/AcceptDialog.tscn +++ b/Scene/Dialog/AcceptDialog.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://btp1h6hic2sin"] -[ext_resource type="Script" path="res://GUI/AcceptDialog.gd" id="1_yc5jp"] +[ext_resource type="Script" uid="uid://ce8xcp770tolo" path="res://Script/Dialog/AcceptDialog.gd" id="1_yc5jp"] [node name="AcceptDialog" type="AcceptDialog"] auto_translate_mode = 1 diff --git a/Scene/Pet/BigBeetle.tscn b/Scene/Pet/BigBeetle.tscn new file mode 100644 index 0000000..05b8ef3 --- /dev/null +++ b/Scene/Pet/BigBeetle.tscn @@ -0,0 +1,61 @@ +[gd_scene load_steps=8 format=3 uid="uid://bd111pvwvdwv5"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_op7i3"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_c36rm"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_op7i3"] +atlas = ExtResource("2_c36rm") +region = Rect2(72, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c36rm"] +atlas = ExtResource("2_c36rm") +region = Rect2(120, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mjdfm"] +atlas = ExtResource("2_c36rm") +region = Rect2(72, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_q454c"] +atlas = ExtResource("2_c36rm") +region = Rect2(96, 48, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_b73qu"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_op7i3") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_c36rm") +}], +"loop": true, +"name": &"sleep", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_mjdfm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_q454c") +}], +"loop": true, +"name": &"walk", +"speed": 5.0 +}] + +[node name="BigBeetle" instance=ExtResource("1_op7i3")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_b73qu") + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false + +[node name="VolumeCollision" parent="." index="1"] +position = Vector2(0.5, 5.5) diff --git a/Scene/Pet/FlyingBird.tscn b/Scene/Pet/FlyingBird.tscn new file mode 100644 index 0000000..044b88c --- /dev/null +++ b/Scene/Pet/FlyingBird.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=8 format=3 uid="uid://dia4sld41ne72"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_lgi35"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_wn6km"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_lgi35"] +atlas = ExtResource("2_wn6km") +region = Rect2(192, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wn6km"] +atlas = ExtResource("2_wn6km") +region = Rect2(144, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qmpjj"] +atlas = ExtResource("2_wn6km") +region = Rect2(168, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1mpkc"] +atlas = ExtResource("2_wn6km") +region = Rect2(192, 48, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_b73qu"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_lgi35") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_wn6km") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qmpjj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1mpkc") +}], +"loop": true, +"name": &"walk", +"speed": 10.0 +}] + +[node name="FlyingBird" instance=ExtResource("1_lgi35")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_b73qu") +frame_progress = 0.111287 + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false + +[node name="VolumeCollision" parent="." index="1"] +position = Vector2(1.5, 1.5) diff --git a/Scene/Pet/GreenSlime.tscn b/Scene/Pet/GreenSlime.tscn new file mode 100644 index 0000000..e1f14a4 --- /dev/null +++ b/Scene/Pet/GreenSlime.tscn @@ -0,0 +1,95 @@ +[gd_scene load_steps=13 format=3 uid="uid://dqv5q1xhouipa"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_saxlb"] +[ext_resource type="Texture2D" uid="uid://b75oytao5cgjo" path="res://assets/宠物图片/绿色史莱姆.png" id="2_saxlb"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_ou315"] +atlas = ExtResource("2_saxlb") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_saxlb"] +atlas = ExtResource("2_saxlb") +region = Rect2(72, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bxslx"] +atlas = ExtResource("2_saxlb") +region = Rect2(48, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dvhl1"] +atlas = ExtResource("2_saxlb") +region = Rect2(24, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0t1ns"] +atlas = ExtResource("2_saxlb") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sbjn0"] +atlas = ExtResource("2_saxlb") +region = Rect2(72, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qvnbx"] +atlas = ExtResource("2_saxlb") +region = Rect2(48, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n0kjo"] +atlas = ExtResource("2_saxlb") +region = Rect2(24, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_obu0n"] +atlas = ExtResource("2_saxlb") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_yhcbw"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_ou315") +}], +"loop": true, +"name": &"idle", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_saxlb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bxslx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_dvhl1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0t1ns") +}], +"loop": false, +"name": &"wake", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_sbjn0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qvnbx") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_n0kjo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_obu0n") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[node name="GreenSlime" instance=ExtResource("1_saxlb")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_yhcbw") +animation = &"idle" + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false +position = Vector2(-11.25, 3.25) diff --git a/Scene/Pet/LittleKnight.tscn b/Scene/Pet/LittleKnight.tscn new file mode 100644 index 0000000..70b0373 --- /dev/null +++ b/Scene/Pet/LittleKnight.tscn @@ -0,0 +1,167 @@ +[gd_scene load_steps=24 format=3 uid="uid://xcigvfp1hms"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_rjt8u"] +[ext_resource type="Texture2D" uid="uid://bal78ts2eq4yu" path="res://assets/宠物图片/护卫.png" id="3_81r1q"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_rjt8u"] +atlas = ExtResource("3_81r1q") +region = Rect2(224, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_81r1q"] +atlas = ExtResource("3_81r1q") +region = Rect2(192, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nliwy"] +atlas = ExtResource("3_81r1q") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kbr5d"] +atlas = ExtResource("3_81r1q") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yhrjc"] +atlas = ExtResource("3_81r1q") +region = Rect2(224, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2dbgw"] +atlas = ExtResource("3_81r1q") +region = Rect2(192, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h0n46"] +atlas = ExtResource("3_81r1q") +region = Rect2(160, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1tk7r"] +atlas = ExtResource("3_81r1q") +region = Rect2(128, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ogy1e"] +atlas = ExtResource("3_81r1q") +region = Rect2(96, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mygjj"] +atlas = ExtResource("3_81r1q") +region = Rect2(64, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rkj0j"] +atlas = ExtResource("3_81r1q") +region = Rect2(32, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j7anc"] +atlas = ExtResource("3_81r1q") +region = Rect2(0, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cxgnv"] +atlas = ExtResource("3_81r1q") +region = Rect2(224, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2itrd"] +atlas = ExtResource("3_81r1q") +region = Rect2(192, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c7ofb"] +atlas = ExtResource("3_81r1q") +region = Rect2(160, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_aa4e4"] +atlas = ExtResource("3_81r1q") +region = Rect2(128, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jx5oo"] +atlas = ExtResource("3_81r1q") +region = Rect2(96, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_umo24"] +atlas = ExtResource("3_81r1q") +region = Rect2(64, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_853s8"] +atlas = ExtResource("3_81r1q") +region = Rect2(32, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6x5xm"] +atlas = ExtResource("3_81r1q") +region = Rect2(0, 96, 32, 32) + +[sub_resource type="SpriteFrames" id="SpriteFrames_yhcbw"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_rjt8u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_81r1q") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nliwy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kbr5d") +}], +"loop": true, +"name": &"idle", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_yhrjc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2dbgw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_h0n46") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1tk7r") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ogy1e") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_mygjj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rkj0j") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j7anc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cxgnv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2itrd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_c7ofb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_aa4e4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jx5oo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_umo24") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_853s8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6x5xm") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[node name="LittleKnight" instance=ExtResource("1_rjt8u")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_yhcbw") +frame_progress = 0.272604 + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false +position = Vector2(-8, 4) diff --git a/Scene/Pet/PetBase.tscn b/Scene/Pet/PetBase.tscn new file mode 100644 index 0000000..dbd795d --- /dev/null +++ b/Scene/Pet/PetBase.tscn @@ -0,0 +1,123 @@ +[gd_scene load_steps=8 format=3 uid="uid://h66an0p6pl53"] + +[ext_resource type="Script" uid="uid://hucuy8guuj6w" path="res://Script/Pet/PetBase.gd" id="1_xpyyb"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_5si3e"] +[ext_resource type="Texture2D" uid="uid://cdhf25ktn3jp3" path="res://assets/我的世界图片/武器工具/钻石剑.png" id="3_5si3e"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_h4hw6"] +atlas = ExtResource("2_5si3e") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_51c25"] +atlas = ExtResource("2_5si3e") +region = Rect2(24, 0, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_wmdx5"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_h4hw6") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_h4hw6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_51c25") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_h4hw6"] +size = Vector2(79, 92) + +[node name="PetBase" type="CharacterBody2D"] +motion_mode = 1 +slide_on_ceiling = false +floor_stop_on_slope = false +floor_block_on_wall = false +script = ExtResource("1_xpyyb") + +[node name="PetImage" type="AnimatedSprite2D" parent="."] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_wmdx5") +animation = &"walk" +autoplay = "walk" + +[node name="PetToolImage" type="Sprite2D" parent="PetImage"] +visible = false +position = Vector2(-10, 0) +texture = ExtResource("3_5si3e") +flip_h = true + +[node name="VolumeCollision" type="CollisionShape2D" parent="."] +position = Vector2(0.5, 2) +shape = SubResource("RectangleShape2D_h4hw6") + +[node name="PetInformVBox" type="VBoxContainer" parent="."] +offset_left = -72.0 +offset_top = -261.0 +offset_right = 430.0 +offset_bottom = 453.0 +scale = Vector2(0.3, 0.3) +alignment = 2 + +[node name="PetNameRichText" type="RichTextLabel" parent="PetInformVBox"] +layout_mode = 2 +size_flags_vertical = 3 +theme_override_font_sizes/normal_font_size = 40 +bbcode_enabled = true +text = "萌芽小绿人" +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="ArmorBar" type="ProgressBar" parent="PetInformVBox"] +modulate = Color(0.758192, 0.758192, 0.758192, 1) +custom_minimum_size = Vector2(0, 60) +layout_mode = 2 +show_percentage = false + +[node name="ArmorLabel" type="Label" parent="PetInformVBox/ArmorBar"] +layout_mode = 0 +offset_right = 502.0 +offset_bottom = 60.0 +theme_override_font_sizes/font_size = 30 +text = "盔甲值:100/100" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ShieldBar" type="ProgressBar" parent="PetInformVBox"] +modulate = Color(0, 1, 1, 1) +custom_minimum_size = Vector2(0, 60) +layout_mode = 2 +show_percentage = false + +[node name="ShieldLabel" type="Label" parent="PetInformVBox/ShieldBar"] +layout_mode = 0 +offset_right = 502.0 +offset_bottom = 60.0 +theme_override_font_sizes/font_size = 30 +text = "护盾值:100/100" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="HealthBar" type="ProgressBar" parent="PetInformVBox"] +modulate = Color(0, 1, 0, 1) +custom_minimum_size = Vector2(0, 60) +layout_mode = 2 +show_percentage = false + +[node name="HealthLabel" type="Label" parent="PetInformVBox/HealthBar"] +layout_mode = 0 +offset_right = 502.0 +offset_bottom = 60.0 +theme_override_font_sizes/font_size = 30 +text = "生命值:100/100" +horizontal_alignment = 1 +vertical_alignment = 1 diff --git a/Scene/Pet/PetFightPanel.tscn b/Scene/Pet/PetFightPanel.tscn new file mode 100644 index 0000000..2cc71da --- /dev/null +++ b/Scene/Pet/PetFightPanel.tscn @@ -0,0 +1,102 @@ +[gd_scene load_steps=3 format=3 uid="uid://cw8am7nnbgca5"] + +[ext_resource type="Script" uid="uid://ke4moxwg1gfd" path="res://Script/Pet/PetFightPanel.gd" id="1_h4hw6"] +[ext_resource type="Texture2D" uid="uid://dh0dsw3jr0gra" path="res://assets/宠物对战背景图片/背景2.webp" id="2_h4hw6"] + +[node name="PetFightPanel" type="Panel"] +offset_right = 1400.0 +offset_bottom = 720.0 +script = ExtResource("1_h4hw6") + +[node name="MapBackGround" type="TextureRect" parent="."] +layout_mode = 0 +offset_right = 1557.0 +offset_bottom = 867.0 +scale = Vector2(0.9, 0.9) +texture = ExtResource("2_h4hw6") + +[node name="Title" type="Label" parent="."] +layout_mode = 0 +offset_right = 1400.0 +offset_bottom = 55.0 +theme_override_colors/font_color = Color(0.623819, 1, 0.593898, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 5 +theme_override_constants/shadow_offset_y = 5 +theme_override_constants/outline_size = 20 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 50 +text = "宠物对战" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="team1" type="Node" parent="."] + +[node name="team2" type="Node" parent="."] + +[node name="neutral" type="Node" parent="."] + +[node name="BattleEndPanel" type="Panel" parent="."] +top_level = true +layout_mode = 0 +offset_left = 294.0 +offset_right = 1071.0 +offset_bottom = 720.0 + +[node name="Title" type="Label" parent="BattleEndPanel"] +layout_mode = 0 +offset_right = 777.0 +offset_bottom = 104.0 +theme_override_colors/font_color = Color(0.991435, 0.798103, 0.357309, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 5 +theme_override_constants/shadow_offset_y = 5 +theme_override_constants/outline_size = 20 +theme_override_constants/shadow_outline_size = 20 +theme_override_font_sizes/font_size = 60 +text = "战斗结束" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Contents" type="Label" parent="BattleEndPanel"] +layout_mode = 0 +offset_top = 104.0 +offset_right = 777.0 +offset_bottom = 567.0 +theme_override_colors/font_color = Color(0, 1, 0, 1) +theme_override_font_sizes/font_size = 30 +text = "[宠物名字]获得300经验, +增加200亲密度" +horizontal_alignment = 1 + +[node name="ReturnFarmButton" type="Button" parent="BattleEndPanel"] +layout_mode = 0 +offset_left = 294.0 +offset_top = 567.0 +offset_right = 502.0 +offset_bottom = 644.0 +theme_override_font_sizes/font_size = 50 +text = "返回农场" + +[node name="PetBattleDetailsPanel" type="Panel" parent="."] +layout_mode = 0 +offset_right = 257.0 +offset_bottom = 720.0 + +[node name="Title" type="Label" parent="PetBattleDetailsPanel"] +layout_mode = 0 +offset_right = 257.0 +offset_bottom = 23.0 +theme_override_font_sizes/font_size = 30 +text = "战斗细节" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="BattleDetails" type="RichTextLabel" parent="PetBattleDetailsPanel"] +layout_mode = 0 +offset_top = 42.0 +offset_right = 257.0 +offset_bottom = 720.0 +bbcode_enabled = true diff --git a/Scene/Pet/Projectile.tscn b/Scene/Pet/Projectile.tscn new file mode 100644 index 0000000..8e40f1e --- /dev/null +++ b/Scene/Pet/Projectile.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=3 uid="uid://bvqkm1n2p6xty"] + +[ext_resource type="Script" uid="uid://cbhhx6st14pse" path="res://Script/Pet/Projectile.gd" id="1_vqkm1"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_1"] +radius = 5.0 + +[node name="Projectile" type="Area2D"] +script = ExtResource("1_vqkm1") + +[node name="ProjectileSprite" type="Sprite2D" parent="."] +modulate = Color(1, 1, 0, 1) +scale = Vector2(0.5, 0.5) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_1") + +[node name="Trail" type="Line2D" parent="."] +width = 2.0 +default_color = Color(1, 1, 0, 0.5) diff --git a/Scene/Pet/RedSlime.tscn b/Scene/Pet/RedSlime.tscn new file mode 100644 index 0000000..7a0316d --- /dev/null +++ b/Scene/Pet/RedSlime.tscn @@ -0,0 +1,96 @@ +[gd_scene load_steps=13 format=3 uid="uid://cqfa6ng6x2s8q"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_ff7pm"] +[ext_resource type="Texture2D" uid="uid://cvpsjlje7q3to" path="res://assets/宠物图片/红色史莱姆.png" id="2_ff7pm"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_s7ip1"] +atlas = ExtResource("2_ff7pm") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ff7pm"] +atlas = ExtResource("2_ff7pm") +region = Rect2(72, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_53j2r"] +atlas = ExtResource("2_ff7pm") +region = Rect2(48, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0ij01"] +atlas = ExtResource("2_ff7pm") +region = Rect2(24, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_20513"] +atlas = ExtResource("2_ff7pm") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3f8fr"] +atlas = ExtResource("2_ff7pm") +region = Rect2(72, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kbexh"] +atlas = ExtResource("2_ff7pm") +region = Rect2(48, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_njkpw"] +atlas = ExtResource("2_ff7pm") +region = Rect2(24, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xbspe"] +atlas = ExtResource("2_ff7pm") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_yhcbw"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_s7ip1") +}], +"loop": true, +"name": &"idle", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_ff7pm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_53j2r") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0ij01") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_20513") +}], +"loop": false, +"name": &"wake", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_3f8fr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kbexh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_njkpw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xbspe") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[node name="RedSlime" instance=ExtResource("1_ff7pm")] +position = Vector2(0, -1) + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_yhcbw") +frame_progress = 0.528863 + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false +position = Vector2(-11.25, 3.25) diff --git a/Scene/Pet/SmallBeetle.tscn b/Scene/Pet/SmallBeetle.tscn new file mode 100644 index 0000000..5d81a0a --- /dev/null +++ b/Scene/Pet/SmallBeetle.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=7 format=3 uid="uid://ckvagocpiudyu"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_nswws"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_1eo38"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_nswws"] +atlas = ExtResource("2_1eo38") +region = Rect2(0, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mjdfm"] +atlas = ExtResource("2_1eo38") +region = Rect2(48, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1eo38"] +atlas = ExtResource("2_1eo38") +region = Rect2(24, 48, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_b73qu"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_nswws") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_mjdfm") +}], +"loop": true, +"name": &"sleep", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_nswws") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1eo38") +}], +"loop": true, +"name": &"walk", +"speed": 5.0 +}] + +[node name="SmallBeetle" instance=ExtResource("1_nswws")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_b73qu") + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false + +[node name="VolumeCollision" parent="." index="1"] +position = Vector2(2, 26) diff --git a/Scene/Pet/SmallBlue.tscn b/Scene/Pet/SmallBlue.tscn new file mode 100644 index 0000000..556f2ee --- /dev/null +++ b/Scene/Pet/SmallBlue.tscn @@ -0,0 +1,45 @@ +[gd_scene load_steps=6 format=3 uid="uid://coryhl8jl4xfg"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_4ggjc"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_stamd"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_stamd"] +atlas = ExtResource("2_stamd") +region = Rect2(48, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v0b4v"] +atlas = ExtResource("2_stamd") +region = Rect2(72, 0, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_b2ss3"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_stamd") +}], +"loop": true, +"name": &"idle", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_stamd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_v0b4v") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[node name="SmallBlue" instance=ExtResource("1_4ggjc")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_b2ss3") + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false + +[node name="VolumeCollision" parent="." index="1"] +position = Vector2(0, 1) diff --git a/Scene/Pet/SmallDrillBit.tscn b/Scene/Pet/SmallDrillBit.tscn new file mode 100644 index 0000000..74fbb33 --- /dev/null +++ b/Scene/Pet/SmallDrillBit.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=7 format=3 uid="uid://cb4spsrxunrrh"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_j2fq3"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_xvdwk"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_j2fq3"] +atlas = ExtResource("2_xvdwk") +region = Rect2(144, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6q1oc"] +atlas = ExtResource("2_xvdwk") +region = Rect2(192, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xvdwk"] +atlas = ExtResource("2_xvdwk") +region = Rect2(168, 24, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_6q1oc"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_j2fq3") +}], +"loop": true, +"name": &"idle", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_6q1oc") +}], +"loop": true, +"name": &"sleep", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_j2fq3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xvdwk") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[node name="SmallDrillBit" instance=ExtResource("1_j2fq3")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_6q1oc") + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false + +[node name="VolumeCollision" parent="." index="1"] +position = Vector2(-1.5, 10.5) diff --git a/Scene/Pet/SmallGreen.tscn b/Scene/Pet/SmallGreen.tscn new file mode 100644 index 0000000..d8f2d4c --- /dev/null +++ b/Scene/Pet/SmallGreen.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=7 format=3 uid="uid://v8bx7hhl5st6"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_5igge"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_5gxwu"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_5gxwu"] +atlas = ExtResource("2_5gxwu") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pxsqn"] +atlas = ExtResource("2_5gxwu") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xxlll"] +atlas = ExtResource("2_5gxwu") +region = Rect2(24, 0, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_k25pl"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5gxwu") +}], +"loop": true, +"name": &"idle", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_pxsqn") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xxlll") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[node name="SmallGreen" instance=ExtResource("1_5igge")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_k25pl") +animation = &"idle" + +[node name="VolumeCollision" parent="." index="1"] +position = Vector2(-0.5, 3) diff --git a/Scene/Pet/SmallOrange.tscn b/Scene/Pet/SmallOrange.tscn new file mode 100644 index 0000000..a45722b --- /dev/null +++ b/Scene/Pet/SmallOrange.tscn @@ -0,0 +1,42 @@ +[gd_scene load_steps=6 format=3 uid="uid://c2u0gl7ym1v2e"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_tdtxh"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_5rxf3"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_tdtxh"] +atlas = ExtResource("2_5rxf3") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5rxf3"] +atlas = ExtResource("2_5rxf3") +region = Rect2(24, 24, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_ujsmd"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_tdtxh") +}], +"loop": true, +"name": &"idle", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_tdtxh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5rxf3") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[node name="SmallOrange" instance=ExtResource("1_tdtxh")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_ujsmd") + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false diff --git a/Scene/Pet/SmallPink.tscn b/Scene/Pet/SmallPink.tscn new file mode 100644 index 0000000..f5682a7 --- /dev/null +++ b/Scene/Pet/SmallPink.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=7 format=3 uid="uid://cf76wr07xbxvy"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_cxnqb"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_auciw"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_cxnqb"] +atlas = ExtResource("2_auciw") +region = Rect2(96, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_auciw"] +atlas = ExtResource("2_auciw") +region = Rect2(96, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nrp4g"] +atlas = ExtResource("2_auciw") +region = Rect2(120, 0, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_b2ss3"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_cxnqb") +}], +"loop": true, +"name": &"idle", +"speed": 8.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_auciw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nrp4g") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[node name="SmallPink" instance=ExtResource("1_cxnqb")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_b2ss3") +animation = &"idle" + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false diff --git a/Scene/Pet/SmallYellow.tscn b/Scene/Pet/SmallYellow.tscn new file mode 100644 index 0000000..4252e69 --- /dev/null +++ b/Scene/Pet/SmallYellow.tscn @@ -0,0 +1,42 @@ +[gd_scene load_steps=6 format=3 uid="uid://i7pgirkgv1u1"] + +[ext_resource type="PackedScene" uid="uid://h66an0p6pl53" path="res://Scene/Pet/PetBase.tscn" id="1_trhvc"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_k5jn7"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_trhvc"] +atlas = ExtResource("2_k5jn7") +region = Rect2(144, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_k5jn7"] +atlas = ExtResource("2_k5jn7") +region = Rect2(168, 0, 24, 24) + +[sub_resource type="SpriteFrames" id="SpriteFrames_yhcbw"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_trhvc") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_trhvc") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_k5jn7") +}], +"loop": true, +"name": &"walk", +"speed": 8.0 +}] + +[node name="SmallYellow" instance=ExtResource("1_trhvc")] + +[node name="PetImage" parent="." index="0"] +sprite_frames = SubResource("SpriteFrames_yhcbw") + +[node name="PetToolImage" parent="PetImage" index="0"] +visible = false diff --git a/Scene/SmallPanel/AccountSettingPanel.tscn b/Scene/SmallPanel/AccountSettingPanel.tscn new file mode 100644 index 0000000..475d981 --- /dev/null +++ b/Scene/SmallPanel/AccountSettingPanel.tscn @@ -0,0 +1,157 @@ +[gd_scene load_steps=5 format=3 uid="uid://d3i0l6ysrde6o"] + +[ext_resource type="Script" uid="uid://dinrduqwsf5k5" path="res://Script/SmallPanel/AccountSettingPanel.gd" id="1_xfiot"] +[ext_resource type="Texture2D" uid="uid://dsln1w1aqgf1k" path="res://assets/游戏UI/玩家默认头像.webp" id="2_a2cah"] +[ext_resource type="Script" uid="uid://0d2j5m6j2ema" path="res://Components/HTTPTextureRect.gd" id="3_wibl7"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y1hsh"] +border_color = Color(2.98411e-06, 0.95982, 0.386903, 1) +border_blend = true +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 20 +shadow_size = 20 +shadow_offset = Vector2(10, 10) +anti_aliasing = false +anti_aliasing_size = 5.0 + +[node name="AccountSettingPanel" type="Panel"] +visible = false +offset_left = 243.0 +offset_top = 42.0 +offset_right = 1154.0 +offset_bottom = 689.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_y1hsh") +script = ExtResource("1_xfiot") + +[node name="Title" type="RichTextLabel" parent="."] +modulate = Color(1, 0.745098, 0.54902, 1) +layout_mode = 0 +offset_left = 2.0 +offset_right = 911.0 +offset_bottom = 56.0 +size_flags_vertical = 3 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/normal_font_size = 40 +bbcode_enabled = true +text = "玩家信息设置" +horizontal_alignment = 1 +threaded = true + +[node name="QuitButton" type="Button" parent="."] +custom_minimum_size = Vector2(55, 55) +layout_mode = 0 +offset_left = 854.0 +offset_right = 911.0 +offset_bottom = 57.0 +theme_override_font_sizes/font_size = 35 +text = "X" + +[node name="RefreshButton" type="Button" parent="."] +custom_minimum_size = Vector2(55, 55) +layout_mode = 0 +offset_left = 2.0 +offset_right = 80.0 +offset_bottom = 57.0 +theme_override_font_sizes/font_size = 35 +text = "刷新" + +[node name="VBox1" type="VBoxContainer" parent="."] +layout_mode = 0 +offset_top = 58.0 +offset_right = 911.0 +offset_bottom = 647.0 + +[node name="HBox1" type="HBoxContainer" parent="VBox1"] +layout_mode = 2 +alignment = 1 + +[node name="HTTPTextureRect" type="TextureRect" parent="VBox1/HBox1"] +layout_mode = 2 +texture = ExtResource("2_a2cah") +script = ExtResource("3_wibl7") +metadata/_custom_type_script = "uid://0d2j5m6j2ema" + +[node name="Grid" type="GridContainer" parent="VBox1"] +layout_mode = 2 +columns = 2 + +[node name="User_Name" type="Label" parent="VBox1/Grid"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "账户:" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="User_Name_Input" type="Label" parent="VBox1/Grid"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "74074091740" +vertical_alignment = 1 + +[node name="User_Password" type="Label" parent="VBox1/Grid"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "密码:" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="User_Password_Input" type="LineEdit" parent="VBox1/Grid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +placeholder_text = "请输入密码" + +[node name="Player_Name" type="Label" parent="VBox1/Grid"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "玩家昵称:" + +[node name="Player_Name_Input" type="LineEdit" parent="VBox1/Grid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +placeholder_text = "请输入玩家昵称" + +[node name="Farm_Name" type="Label" parent="VBox1/Grid"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "农场名称:" + +[node name="Farm_Name_Input" type="LineEdit" parent="VBox1/Grid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +placeholder_text = "请输入农场名称" + +[node name="Personal_Profile" type="Label" parent="VBox1/Grid"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "个人简介:" + +[node name="Personal_Profile_Input" type="LineEdit" parent="VBox1/Grid"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 30 +placeholder_text = "请输入个人简介" + +[node name="HBox2" type="HBoxContainer" parent="VBox1"] +layout_mode = 2 +alignment = 1 + +[node name="Remove_Account_Btn" type="Button" parent="VBox1/HBox2"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "删除账号" + +[node name="Confirm_Btn" type="Button" parent="VBox1/HBox2"] +layout_mode = 2 +theme_override_font_sizes/font_size = 30 +text = "确认修改" diff --git a/GUI/LandPanel.tscn b/Scene/SmallPanel/LandPanel.tscn similarity index 58% rename from GUI/LandPanel.tscn rename to Scene/SmallPanel/LandPanel.tscn index 9c52ff4..2b447bc 100644 --- a/GUI/LandPanel.tscn +++ b/Scene/SmallPanel/LandPanel.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=3 uid="uid://dckc8nrn7p425"] -[ext_resource type="Script" uid="uid://bljtkxil64h14" path="res://GUI/LandPanel.gd" id="1_nmy5p"] +[ext_resource type="Script" uid="uid://bljtkxil64h14" path="res://Script/SmallPanel/LandPanel.gd" id="1_nmy5p"] [ext_resource type="Texture2D" uid="uid://2sdfbvf1isif" path="res://icon.svg" id="2_07q41"] [node name="LandPanel" type="Panel"] @@ -18,6 +18,13 @@ offset_bottom = 43.0 theme_override_font_sizes/font_size = 25 text = "X" +[node name="Refresh_Button" type="Button" parent="."] +layout_mode = 0 +offset_right = 58.0 +offset_bottom = 43.0 +theme_override_font_sizes/font_size = 25 +text = "刷新" + [node name="Title" type="Label" parent="."] self_modulate = Color(0, 0.87451, 1, 1) layout_mode = 2 @@ -34,114 +41,18 @@ text = "土地面板" horizontal_alignment = 1 vertical_alignment = 1 -[node name="TextureRect" type="TextureRect" parent="."] -layout_mode = 2 -offset_left = 224.0 -offset_top = 249.0 -offset_right = 352.0 -offset_bottom = 377.0 -scale = Vector2(0.5, 0.5) -size_flags_horizontal = 4 -texture = ExtResource("2_07q41") -expand_mode = 1 - -[node name="VBox" type="VBoxContainer" parent="."] -layout_mode = 0 -offset_top = 313.0 -offset_right = 1287.0 -offset_bottom = 700.0 -scale = Vector2(0.4, 0.4) - -[node name="ProgressBar" type="ProgressBar" parent="VBox"] -modulate = Color(0, 1, 0, 1) -layout_mode = 2 -theme_override_font_sizes/font_size = 30 - -[node name="HBox1" type="HBoxContainer" parent="VBox"] -layout_mode = 2 -size_flags_vertical = 3 - -[node name="cost" type="Label" parent="VBox/HBox1"] -modulate = Color(1, 1, 0, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 40 -text = "花费:999" - -[node name="earn" type="Label" parent="VBox/HBox1"] -modulate = Color(1, 1, 0, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 40 -text = "收益:999" - -[node name="growthtime" type="Label" parent="VBox/HBox1"] -modulate = Color(1, 0.635294, 1, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 40 -text = "生长时间:999" - -[node name="experience" type="Label" parent="VBox/HBox1"] -modulate = Color(0.164706, 1, 0.341176, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 40 -text = "收获经验:999" - -[node name="HBox2" type="HBoxContainer" parent="VBox"] -layout_mode = 2 -size_flags_vertical = 3 - -[node name="canbuy" type="Label" parent="VBox/HBox2"] -modulate = Color(0.466667, 1, 1, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 40 -text = "能否购买:是" - -[node name="quality" type="Label" parent="VBox/HBox2"] -modulate = Color(1, 0.607843, 0.239216, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 40 -text = "品质:传奇" - -[node name="weatherability" type="Label" parent="VBox/HBox2"] -modulate = Color(0.784314, 0.647059, 0.498039, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 40 -text = "耐候性:999" - -[node name="level" type="Label" parent="VBox/HBox2"] -modulate = Color(0.394367, 0.644385, 0.816557, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 40 -text = "种植等级:999" - -[node name="HBox3" type="HBoxContainer" parent="VBox"] -layout_mode = 2 -size_flags_vertical = 3 - -[node name="description" type="Label" parent="VBox/HBox3"] -modulate = Color(0.988235, 0.831373, 1, 1) -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_font_sizes/font_size = 40 -text = "描述:啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊" - -[node name="Grid" type="GridContainer" parent="."] +[node name="GroundFunctionGrid" type="GridContainer" parent="."] layout_mode = 2 offset_top = 42.0 offset_right = 516.0 -offset_bottom = 249.0 +offset_bottom = 142.0 columns = 5 -[node name="Dig_Button" type="Button" parent="Grid"] +[node name="Dig_Button" type="Button" parent="GroundFunctionGrid"] custom_minimum_size = Vector2(100, 100) layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 4 theme_override_colors/font_disabled_color = Color(0, 0, 0, 1) theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1) theme_override_colors/font_hover_color = Color(0, 0, 0, 1) @@ -154,9 +65,11 @@ text = "开垦" icon_alignment = 1 expand_icon = true -[node name="Plant_Button" type="Button" parent="Grid"] +[node name="Plant_Button" type="Button" parent="GroundFunctionGrid"] custom_minimum_size = Vector2(100, 100) layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 4 theme_override_colors/font_disabled_color = Color(0, 0, 0, 1) theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1) theme_override_colors/font_hover_color = Color(0, 0, 0, 1) @@ -168,24 +81,11 @@ text = "种植" icon_alignment = 1 expand_icon = true -[node name="Remove_Button" type="Button" parent="Grid"] -visible = false -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_disabled_color = Color(0, 0, 0, 1) -theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1) -theme_override_colors/font_hover_color = Color(0, 0, 0, 1) -theme_override_colors/font_color = Color(0.870588, 0.870588, 0, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "铲除" -icon_alignment = 1 -expand_icon = true - -[node name="Harvest_Button" type="Button" parent="Grid"] +[node name="Harvest_Button" type="Button" parent="GroundFunctionGrid"] custom_minimum_size = Vector2(100, 100) layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 4 theme_override_colors/font_disabled_color = Color(0, 0, 0, 1) theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1) theme_override_colors/font_hover_color = Color(0, 0, 0, 1) @@ -197,37 +97,11 @@ text = "收获" icon_alignment = 1 expand_icon = true -[node name="Water_Button" type="Button" parent="Grid"] -visible = false -custom_minimum_size = Vector2(100, 100) -layout_mode = 2 -theme_override_colors/font_disabled_color = Color(0, 0, 0, 1) -theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1) -theme_override_colors/font_hover_color = Color(0, 0, 0, 1) -theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_colors/font_color = Color(0, 0.87451, 0.87451, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "浇水" -icon_alignment = 1 -expand_icon = true - -[node name="Fertilize_Button" type="Button" parent="Grid"] -visible = false -custom_minimum_size = Vector2(80, 80) -layout_mode = 2 -theme_override_colors/font_color = Color(0.509804, 0.301961, 0.85098, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "施肥" -icon_alignment = 1 -expand_icon = true - -[node name="Upgrade_Button" type="Button" parent="Grid"] +[node name="Upgrade_Button" type="Button" parent="GroundFunctionGrid"] custom_minimum_size = Vector2(100, 100) layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 4 theme_override_colors/font_color = Color(0.0705882, 0.411765, 0.87451, 1) theme_override_colors/font_focus_color = Color(0, 0, 0, 1) theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) @@ -236,21 +110,127 @@ text = "升级" icon_alignment = 1 expand_icon = true -[node name="KillInsect_Button" type="Button" parent="Grid"] -visible = false -custom_minimum_size = Vector2(100, 100) +[node name="CropImageVBox" type="VBoxContainer" parent="."] layout_mode = 2 -theme_override_colors/font_color = Color(0.988235, 0.929412, 0.760784, 1) -theme_override_colors/font_focus_color = Color(0, 0, 0, 1) -theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) -theme_override_font_sizes/font_size = 20 -text = "杀虫" -icon_alignment = 1 -expand_icon = true +offset_top = 280.0 +offset_right = 512.0 +offset_bottom = 408.0 +alignment = 1 -[node name="Grid2" type="GridContainer" parent="."] +[node name="CropTextureRect" type="TextureRect" parent="CropImageVBox"] +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 3 +texture = ExtResource("2_07q41") +expand_mode = 2 +stretch_mode = 5 + +[node name="InformVBox" type="VBoxContainer" parent="."] layout_mode = 0 -offset_top = 345.0 -offset_right = 515.0 -offset_bottom = 468.0 -columns = 3 +offset_top = 142.0 +offset_right = 1280.0 +offset_bottom = 483.0 +scale = Vector2(0.4, 0.4) + +[node name="GroundInformVBox" type="VBoxContainer" parent="InformVBox"] +layout_mode = 2 + +[node name="GroundLevel" type="Label" parent="InformVBox/GroundInformVBox"] +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "土地等级:" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="GroundFunction" type="Label" parent="InformVBox/GroundInformVBox"] +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "土地功能:" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="CropInformVBox" type="VBoxContainer" parent="InformVBox"] +layout_mode = 2 + +[node name="ProgressBar" type="ProgressBar" parent="InformVBox/CropInformVBox"] +modulate = Color(0, 1, 0, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 30 + +[node name="HBox1" type="HBoxContainer" parent="InformVBox/CropInformVBox"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="cost" type="Label" parent="InformVBox/CropInformVBox/HBox1"] +modulate = Color(1, 1, 0, 1) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 40 +text = "花费:999" + +[node name="earn" type="Label" parent="InformVBox/CropInformVBox/HBox1"] +modulate = Color(1, 1, 0, 1) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 40 +text = "收益:999" + +[node name="growthtime" type="Label" parent="InformVBox/CropInformVBox/HBox1"] +modulate = Color(1, 0.635294, 1, 1) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 40 +text = "生长时间:999" + +[node name="experience" type="Label" parent="InformVBox/CropInformVBox/HBox1"] +modulate = Color(0.164706, 1, 0.341176, 1) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 40 +text = "收获经验:999" + +[node name="HBox2" type="HBoxContainer" parent="InformVBox/CropInformVBox"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="canbuy" type="Label" parent="InformVBox/CropInformVBox/HBox2"] +modulate = Color(0.466667, 1, 1, 1) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 40 +text = "能否购买:是" + +[node name="quality" type="Label" parent="InformVBox/CropInformVBox/HBox2"] +modulate = Color(1, 0.607843, 0.239216, 1) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 40 +text = "品质:传奇" + +[node name="weatherability" type="Label" parent="InformVBox/CropInformVBox/HBox2"] +modulate = Color(0.784314, 0.647059, 0.498039, 1) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 40 +text = "耐候性:999" + +[node name="level" type="Label" parent="InformVBox/CropInformVBox/HBox2"] +modulate = Color(0.394367, 0.644385, 0.816557, 1) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 40 +text = "种植等级:999" + +[node name="HBox3" type="HBoxContainer" parent="InformVBox/CropInformVBox"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="description" type="Label" parent="InformVBox/CropInformVBox/HBox3"] +modulate = Color(0.988235, 0.831373, 1, 1) +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 40 +text = "描述:啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊" + +[connection signal="pressed" from="Quit_Button" to="." method="_on_quit_button_pressed"] +[connection signal="pressed" from="Refresh_Button" to="." method="_on_refresh_button_pressed"] diff --git a/Scene/SmallPanel/LoadProgressPanel.tscn b/Scene/SmallPanel/LoadProgressPanel.tscn new file mode 100644 index 0000000..04d7029 --- /dev/null +++ b/Scene/SmallPanel/LoadProgressPanel.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=2 format=3 uid="uid://d1lu2yg4xl382"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uhubb"] +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 + +[node name="LoadProgressPanel" type="Panel"] +visible = false +offset_right = 1402.0 +offset_bottom = 719.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_uhubb") + +[node name="Title" type="Label" parent="."] +layout_mode = 0 +offset_right = 1402.0 +offset_bottom = 550.0 +theme_override_colors/font_color = Color(0.966397, 0.970739, 0.632937, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 5 +theme_override_constants/shadow_offset_y = 5 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 40 +text = "正在加载资源中,请稍后..." +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="LoadProgressBar" type="ProgressBar" parent="."] +layout_mode = 0 +offset_left = 8.0 +offset_top = 430.0 +offset_right = 1396.0 +offset_bottom = 489.0 +theme_override_colors/font_color = Color(0, 1, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 7 +theme_override_font_sizes/font_size = 40 diff --git a/Scene/SmallPanel/OneClickPlantPanel.tscn b/Scene/SmallPanel/OneClickPlantPanel.tscn new file mode 100644 index 0000000..ea5ff5a --- /dev/null +++ b/Scene/SmallPanel/OneClickPlantPanel.tscn @@ -0,0 +1,100 @@ +[gd_scene load_steps=2 format=3 uid="uid://4rwitowdt4h"] + +[ext_resource type="Script" uid="uid://rlk8e51pibtm" path="res://Script/SmallPanel/OneClickPlantPanel.gd" id="1_cvoer"] + +[node name="OneClickPlantPanel" type="Panel"] +visible = false +offset_left = 450.0 +offset_top = 77.0 +offset_right = 966.0 +offset_bottom = 327.0 +script = ExtResource("1_cvoer") + +[node name="Quit_Button" type="Button" parent="."] +layout_mode = 0 +offset_left = 465.0 +offset_right = 515.0 +offset_bottom = 50.0 +theme_override_font_sizes/font_size = 30 +text = "X" + +[node name="Title" type="Label" parent="."] +self_modulate = Color(0.431373, 0.498039, 1, 1) +layout_mode = 2 +offset_right = 516.0 +offset_bottom = 42.0 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 30 +text = "一键种植面板" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Grid" type="GridContainer" parent="."] +layout_mode = 2 +offset_top = 46.0 +offset_right = 500.0 +offset_bottom = 210.0 +columns = 5 + +[node name="FullScreenPlantBtn" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "全屏种植" +icon_alignment = 1 +expand_icon = true + +[node name="OneRowPlantBtn" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0.972549, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "行种植" +icon_alignment = 1 +expand_icon = true + +[node name="OneColumnPlantBtn" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 1, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "列种植" +icon_alignment = 1 +expand_icon = true + +[node name="NineSquarePlantBtn" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 1, 1, 1) +theme_override_font_sizes/font_size = 20 +text = "九宫格 +种植" +icon_alignment = 1 +expand_icon = true + +[node name="CrossPlantBtn" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0.54902, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "十字法 +种植" +icon_alignment = 1 +expand_icon = true + +[node name="RandomPlantBtn" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0.49586, 0.63552, 1) +theme_override_font_sizes/font_size = 20 +text = "随机种植" +icon_alignment = 1 +expand_icon = true + +[connection signal="pressed" from="Quit_Button" to="." method="_on_quit_button_pressed"] diff --git a/Scene/SmallPanel/OnlineGiftPanel.tscn b/Scene/SmallPanel/OnlineGiftPanel.tscn new file mode 100644 index 0000000..c1b82c5 --- /dev/null +++ b/Scene/SmallPanel/OnlineGiftPanel.tscn @@ -0,0 +1,149 @@ +[gd_scene load_steps=2 format=3 uid="uid://dpiy0aim20n2h"] + +[ext_resource type="Script" uid="uid://ccaqrb6sdwbux" path="res://Script/SmallPanel/OnlineGiftPanel.gd" id="1_i0ga4"] + +[node name="OnlineGiftPanel" type="Panel"] +visible = false +offset_left = 449.0 +offset_top = 77.0 +offset_right = 970.0 +offset_bottom = 327.0 +script = ExtResource("1_i0ga4") + +[node name="Quit_Button" type="Button" parent="."] +layout_mode = 0 +offset_left = 465.0 +offset_right = 515.0 +offset_bottom = 50.0 +theme_override_font_sizes/font_size = 30 +text = "X" + +[node name="HBox" type="HBoxContainer" parent="."] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="Title" type="Label" parent="."] +modulate = Color(0.996846, 0.629335, 1, 1) +layout_mode = 2 +offset_right = 516.0 +offset_bottom = 42.0 +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 3 +theme_override_constants/shadow_offset_y = 3 +theme_override_constants/outline_size = 10 +theme_override_constants/shadow_outline_size = 10 +theme_override_font_sizes/font_size = 30 +text = "在线礼包" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Grid" type="GridContainer" parent="."] +layout_mode = 2 +offset_top = 46.0 +offset_right = 500.0 +offset_bottom = 210.0 +columns = 5 + +[node name="OneMinute" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_colors/font_color = Color(1, 0, 0, 1) +theme_override_colors/font_focus_color = Color(0, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "在线 +1分钟" +icon_alignment = 1 +expand_icon = true + +[node name="ThreeMinutes" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_colors/font_color = Color(0.995313, 0.515623, 0.748044, 1) +theme_override_colors/font_focus_color = Color(0, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "在线 +3分钟" +icon_alignment = 1 +expand_icon = true + +[node name="FiveMinutes" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_colors/font_color = Color(0.635294, 0.827451, 0.537255, 1) +theme_override_colors/font_focus_color = Color(0, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "在线 +5分钟" +icon_alignment = 1 +expand_icon = true + +[node name="TenMinutes" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(0.760784, 0.533333, 0.160784, 1) +theme_override_colors/font_focus_color = Color(0, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "在线 +10分钟" +icon_alignment = 1 +expand_icon = true + +[node name="ThirtyMinutes" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(0.870588, 0.870588, 0, 1) +theme_override_colors/font_focus_color = Color(0, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "在线 +30分钟" +icon_alignment = 1 +expand_icon = true + +[node name="OneHour" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(0.188235, 0.839216, 0.243137, 1) +theme_override_colors/font_focus_color = Color(0, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "在线 +1小时" +icon_alignment = 1 +expand_icon = true + +[node name="ThreeHours" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_colors/font_color = Color(0, 0.87451, 0.87451, 1) +theme_override_colors/font_focus_color = Color(0, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "在线 +3小时" +icon_alignment = 1 +expand_icon = true + +[node name="FiveHours" type="Button" parent="Grid"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +theme_override_colors/font_color = Color(0.509804, 0.301961, 0.85098, 1) +theme_override_colors/font_focus_color = Color(0, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "在线 +5小时" +icon_alignment = 1 +expand_icon = true + +[connection signal="pressed" from="Quit_Button" to="." method="_on_quit_button_pressed"] diff --git a/GUI/CropStorePanel.gd b/Script/BigPanel/CropStorePanel.gd similarity index 86% rename from GUI/CropStorePanel.gd rename to Script/BigPanel/CropStorePanel.gd index 8c0def6..1685e4a 100644 --- a/GUI/CropStorePanel.gd +++ b/Script/BigPanel/CropStorePanel.gd @@ -4,6 +4,7 @@ extends Panel #种子商店格子 @onready var crop_grid_container : GridContainer = $ScrollContainer/Crop_Grid @onready var quit_button : Button = $QuitButton +@onready var refresh_button : Button = $RefreshButton #各种排序过滤按钮 @onready var sort_all_button : Button = $SortContainer/Sort_All#全部 @@ -19,11 +20,19 @@ extends Panel #预添加常用的面板 @onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' +@onready var batch_buy_popup: PanelContainer = $'../../DiaLog/BatchBuyPopup' + + # 作物图片缓存(复用主游戏的缓存系统) var crop_textures_cache : Dictionary = {} @@ -38,9 +47,24 @@ var current_sort_ascending = true func _ready(): # 连接按钮信号 _connect_buttons() + + # 连接可见性改变信号 + visibility_changed.connect(_on_visibility_changed) + # 隐藏面板(初始默认隐藏) self.hide() +# 面板显示时的处理 +func _on_visibility_changed(): + if visible: + # 面板显示时自动刷新数据 + init_store() + GlobalVariables.isZoomDisabled = true + pass + else: + GlobalVariables.isZoomDisabled = false + pass + # 连接所有按钮信号 func _connect_buttons(): # 关闭按钮 @@ -79,7 +103,6 @@ func init_store(): if crop["等级"] <= main_game.level: var store_btn = _create_store_button(crop_name, crop["品质"]) crop_grid_container.add_child(store_btn) - #print("添加商店按钮: " + crop_name) print("商店初始化完成,共添加按钮: " + str(crop_grid_container.get_child_count()) + "个") @@ -173,35 +196,49 @@ func _on_store_buy_pressed(crop_name: String): Toast.show("等级不足,无法购买此种子", Color.RED) return - # 检查金钱是否足够 + # 检查金钱是否足够(至少能买1个) if main_game.money < crop["花费"]: Toast.show("金钱不足,无法购买种子", Color.RED) return - # 发送购买请求到服务器 - if network_manager and network_manager.sendBuySeed(crop_name): - - # 将种子添加到背包 - var found = false - for seed_item in main_game.player_bag: - if seed_item["name"] == crop_name: - seed_item["count"] += 1 - found = true - break - - if not found: - main_game.player_bag.append({ - "name": crop_name, - "quality": crop["品质"], - "count": 1 - }) - - - # 更新背包UI - crop_store_panel.update_player_bag_ui() - - # 更新金钱显示 - _update_money_display() + # 显示批量购买弹窗 + if batch_buy_popup: + var crop_desc = crop.get("描述", "暂无描述") + batch_buy_popup.show_buy_popup( + crop_name, + crop["花费"], + crop_desc, + "seed", + _on_confirm_buy_seed, + _on_cancel_buy_seed + ) + else: + print("批量购买弹窗未找到") + +# 确认购买种子回调 +func _on_confirm_buy_seed(crop_name: String, unit_cost: int, quantity: int, buy_type: String): + var total_cost = unit_cost * quantity + + # 再次检查金钱是否足够 + if main_game.money < total_cost: + Toast.show("金钱不足!需要 " + str(total_cost) + " 元,当前只有 " + str(main_game.money) + " 元", Color.RED, 3.0, 1.0) + return + + # 发送批量购买请求到服务器 + _send_batch_buy_seed_request(crop_name, quantity) + +# 取消购买种子回调 +func _on_cancel_buy_seed(): + print("取消购买种子") + +# 发送批量购买种子请求 +func _send_batch_buy_seed_request(crop_name: String, quantity: int): + # 发送批量购买请求到服务器 + if tcp_network_manager_panel and tcp_network_manager_panel.sendBuySeed(crop_name, quantity): + # 服务器会处理批量购买逻辑,客户端等待响应 + print("已发送批量购买种子请求:", crop_name, " 数量:", quantity) + else: + Toast.show("购买请求发送失败", Color.RED, 2.0, 1.0) # 按品质过滤作物 @@ -493,8 +530,5 @@ func _on_refresh_button_pressed() -> void: #关闭种子商店面板 func _on_quit_button_pressed(): - #打开面板后暂时禁用相机功能 - GlobalVariables.isZoomDisabled = false - self.hide() #=========================面板通用处理========================= diff --git a/GUI/CropStorePanel.gd.uid b/Script/BigPanel/CropStorePanel.gd.uid similarity index 100% rename from GUI/CropStorePanel.gd.uid rename to Script/BigPanel/CropStorePanel.gd.uid diff --git a/GUI/CropWarehousePanel.gd b/Script/BigPanel/CropWarehousePanel.gd similarity index 67% rename from GUI/CropWarehousePanel.gd rename to Script/BigPanel/CropWarehousePanel.gd index 818d29f..ea96662 100644 --- a/GUI/CropWarehousePanel.gd +++ b/Script/BigPanel/CropWarehousePanel.gd @@ -4,6 +4,7 @@ extends Panel # 作物仓库格子容器 @onready var crop_warehouse_grid_container : GridContainer = $ScrollContainer/Warehouse_Grid @onready var quit_button : Button = $QuitButton +@onready var refresh_button : Button = $RefreshButton #各种排序过滤按钮 @onready var sort_all_button : Button = $SortContainer/Sort_All#全部 @@ -19,11 +20,17 @@ extends Panel #预添加常用的面板 @onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' + # 作物图片缓存(复用主游戏的缓存系统) var crop_textures_cache : Dictionary = {} @@ -34,18 +41,26 @@ var current_filter_quality = "" var current_sort_key = "" var current_sort_ascending = true +# 宠物喂食模式相关变量 +var is_pet_feeding_mode = false +var current_pet_data = {} + # 准备函数 func _ready(): # 连接按钮信号 _connect_buttons() + # 连接可见性改变信号 + visibility_changed.connect(_on_visibility_changed) + # 隐藏面板(初始默认隐藏) self.hide() + # 连接所有按钮信号 func _connect_buttons(): - # 关闭按钮 quit_button.pressed.connect(self._on_quit_button_pressed) + refresh_button.pressed.connect(self._on_refresh_button_pressed) # 过滤按钮 sort_all_button.pressed.connect(func(): _filter_by_quality("")) @@ -61,12 +76,28 @@ func _connect_buttons(): sort_profit_button.pressed.connect(func(): _sort_by("收益")) sort_level_button.pressed.connect(func(): _sort_by("等级")) +# 设置宠物喂食模式 +func set_pet_feeding_mode(feeding_mode: bool, pet_data: Dictionary = {}): + is_pet_feeding_mode = feeding_mode + current_pet_data = pet_data + + # 更新UI以反映当前模式 + if is_pet_feeding_mode: + # 宠物喂食模式下,只显示有喂养效果的作物 + var pet_name = pet_data.get("基本信息", {}).get("宠物名称", "未知宠物") + Toast.show("宠物喂食模式:选择要喂给 " + pet_name + " 的作物", Color.CYAN, 3.0, 1.0) + else: + # 普通模式 + Toast.show("普通模式:查看作物仓库", Color.GREEN, 2.0, 1.0) + + # 刷新UI + update_crop_warehouse_ui() + # 初始化作物仓库 func init_crop_warehouse(): # 清空作物仓库格子 for child in crop_warehouse_grid_container.get_children(): child.queue_free() - # 显示仓库中的成熟物 update_crop_warehouse_ui() @@ -75,7 +106,6 @@ func update_crop_warehouse_ui(): # 清空作物仓库格子 for child in crop_warehouse_grid_container.get_children(): child.queue_free() - #print("更新作物仓库UI,仓库中物品数量:", main_game.crop_warehouse.size()) # 应用过滤和排序 var filtered_crops = _get_filtered_and_sorted_crops() @@ -85,21 +115,31 @@ func update_crop_warehouse_ui(): var crop_name = crop_item["name"] var crop_quality = crop_item.get("quality", "普通") var crop_count = crop_item["count"] - #print("仓库物品:", crop_name, " 数量:", crop_count) # 创建成熟物按钮 var button = _create_crop_button(crop_name, crop_quality) - # 更新按钮文本显示数量 - button.text = str(crop_quality + "-" + crop_name + "\n数量:" + str(crop_count)) - # 根据是否处于访问模式连接不同的事件 - if main_game.is_visiting_mode: - # 访问模式下,点击成熟物只显示信息,不能操作 - button.pressed.connect(func(): _on_visit_crop_selected(crop_name, crop_count)) + # 更新按钮文本显示数量 + if is_pet_feeding_mode: + # 宠物喂食模式下显示喂养效果 + var crop_data = main_game.can_planted_crop.get(crop_name, {}) + var feed_effects = crop_data.get("喂养效果", {}) + + # 构建效果描述 + var effect_descriptions = [] + for effect_name in feed_effects: + var effect_value = feed_effects[effect_name] + if effect_value > 0: + effect_descriptions.append(effect_name + "+" + str(effect_value)) + + var effect_text = " ".join(effect_descriptions) if effect_descriptions.size() > 0 else "无效果" + button.text = str(crop_quality + "-" + crop_name + "\n数量:" + str(crop_count) ) + button.pressed.connect(func(): _on_crop_feed_selected(crop_name, crop_count)) else: - # 正常模式下,连接成熟物信息显示事件 + button.text = str(crop_quality + "-" + crop_name + "\n数量:" + str(crop_count)) button.pressed.connect(func(): _on_crop_selected(crop_name, crop_count)) crop_warehouse_grid_container.add_child(button) + print("作物仓库初始化完成,共添加按钮: " + str(crop_warehouse_grid_container.get_child_count()) + "个") # 获取过滤和排序后的成熟物列表 func _get_filtered_and_sorted_crops(): @@ -119,6 +159,11 @@ func _get_filtered_and_sorted_crops(): if main_game.can_planted_crop.has(crop_item["name"]): crop_data = main_game.can_planted_crop[crop_item["name"]] + # 宠物喂食模式过滤:只显示有喂养效果的作物 + if is_pet_feeding_mode: + if crop_data == null or not crop_data.has("喂养效果"): + continue + # 添加到过滤后的列表 filtered_crops.append({ "name": crop_item["name"], @@ -159,7 +204,6 @@ func _sort_crop_items(a, b): # 按品质过滤成熟物 func _filter_by_quality(quality: String): current_filter_quality = quality - print("过滤成熟物,品质: " + (quality if quality != "" else "全部")) update_crop_warehouse_ui() # 按指定键排序 @@ -171,21 +215,12 @@ func _sort_by(sort_key: String): current_sort_key = sort_key current_sort_ascending = true - print("排序成熟物,键: " + sort_key + ",升序: " + str(current_sort_ascending)) update_crop_warehouse_ui() # 创建作物按钮 func _create_crop_button(crop_name: String, crop_quality: String) -> Button: # 根据品质选择相应的进度条 var button = main_game.item_button.duplicate() - #普通 Color.HONEYDEW#白色 - #优良 Color.DODGER_BLUE#深蓝色 - #稀有 Color.HOT_PINK#品红色 - #史诗 Color.YELLOW#黄色 - #传奇 Color.ORANGE_RED#红色 - #空地 Color.GREEN#绿色 - #未开垦 Color.WEB_GRAY#深褐色 - # 确保按钮可见并可点击 button.visible = true @@ -295,7 +330,6 @@ func _on_crop_selected(crop_name, crop_count): info_text = crop_name + " (数量: " + str(crop_count) + ")" Toast.show(info_text, Color.GOLD, 3.0, 1.0) - print("查看成熟物信息: ", info_text) # 访问模式下的成熟物点击处理 func _on_visit_crop_selected(crop_name, crop_count): @@ -331,7 +365,97 @@ func _on_visit_crop_selected(crop_name, crop_count): info_text = crop_name + " (数量: " + str(crop_count) + ")" Toast.show(info_text, Color.CYAN, 3.0, 1.0) - print("查看成熟物信息: ", info_text) + +# 宠物喂食模式下的作物选择处理 +func _on_crop_feed_selected(crop_name: String, crop_count: int): + if not is_pet_feeding_mode or current_pet_data.is_empty(): + Toast.show("当前不在宠物喂食模式", Color.RED, 2.0, 1.0) + return + + # 检查作物是否有喂养效果 + var crop_data = main_game.can_planted_crop.get(crop_name, {}) + if not crop_data.has("喂养效果"): + Toast.show("该作物没有喂养效果", Color.RED, 2.0, 1.0) + return + + # 获取喂养效果 + var feed_effects = crop_data.get("喂养效果", {}) + + # 获取宠物信息 + var pet_name = current_pet_data.get("基本信息", {}).get("宠物名称", "未知宠物") + var pet_id = current_pet_data.get("基本信息", {}).get("宠物ID", "") + + if pet_id == "": + Toast.show("宠物ID无效", Color.RED, 2.0, 1.0) + return + + # 构建效果描述 + var effect_descriptions = [] + for effect_name in feed_effects: + var effect_value = feed_effects[effect_name] + if effect_value > 0: + effect_descriptions.append(effect_name + "+" + str(effect_value)) + + var effect_text = ",".join(effect_descriptions) if effect_descriptions.size() > 0 else "无效果" + + # 显示确认对话框 + var confirm_text = str( + "确认喂食 " + pet_name + " 吗?\n\n" + + "作物:" + crop_name + "\n" + + "效果:" + effect_text + "\n\n" + + "确认后将消耗1个" + crop_name + ) + + _show_feed_confirmation_dialog(confirm_text, crop_name, pet_id, feed_effects) + +# 显示喂食确认对话框 +func _show_feed_confirmation_dialog(confirm_text: String, crop_name: String, pet_id: String, feed_effects: Dictionary): + var confirm_dialog = AcceptDialog.new() + confirm_dialog.dialog_text = confirm_text + confirm_dialog.title = "宠物喂食确认" + confirm_dialog.ok_button_text = "确认喂食" + confirm_dialog.add_cancel_button("取消") + + # 添加到场景 + add_child(confirm_dialog) + + # 连接信号 + confirm_dialog.confirmed.connect(_on_confirm_feed_pet.bind(crop_name, pet_id, feed_effects, confirm_dialog)) + confirm_dialog.canceled.connect(_on_cancel_feed_pet.bind(confirm_dialog)) + + # 显示对话框 + confirm_dialog.popup_centered() + +# 确认喂食宠物 +func _on_confirm_feed_pet(crop_name: String, pet_id: String, feed_effects: Dictionary, dialog: AcceptDialog): + # 发送喂食请求到服务器 + _send_feed_pet_request(crop_name, pet_id, feed_effects) + dialog.queue_free() + +# 取消喂食宠物 +func _on_cancel_feed_pet(dialog: AcceptDialog): + dialog.queue_free() + +# 发送喂食宠物请求 +func _send_feed_pet_request(crop_name: String, pet_id: String, feed_effects: Dictionary): + if not tcp_network_manager_panel or not tcp_network_manager_panel.has_method("send_message"): + Toast.show("网络功能不可用", Color.RED, 2.0, 1.0) + return + + # 构建喂食请求消息 + var message = { + "type": "feed_pet", + "pet_id": pet_id, + "crop_name": crop_name, + "feed_effects": feed_effects + } + + # 发送请求 + tcp_network_manager_panel.send_message(message) + + # 退出喂食模式 + set_pet_feeding_mode(false) + self.hide() @@ -347,13 +471,6 @@ func _get_crop_harvest_texture(crop_name: String) -> Texture2D: print("仓库加载作物收获物图片:", crop_name) return texture - # 如果没有找到收获物图片,使用成熟图片作为后备 - var mature_texture_path = crop_path + "成熟.webp" - if ResourceLoader.exists(mature_texture_path): - var texture = load(mature_texture_path) - if texture: - print("仓库使用成熟图片作为收获物:", crop_name) - return texture # 如果都没有找到,使用默认的收获物图片 var default_harvest_path = "res://assets/作物/默认/收获物.webp" @@ -363,14 +480,6 @@ func _get_crop_harvest_texture(crop_name: String) -> Texture2D: print("仓库使用默认收获物图片:", crop_name) return texture - # 最后尝试默认成熟图片 - var default_mature_path = "res://assets/作物/默认/成熟.webp" - if ResourceLoader.exists(default_mature_path): - var texture = load(default_mature_path) - if texture: - print("仓库使用默认成熟图片:", crop_name) - return texture - return null # 更新按钮的作物图片 @@ -402,7 +511,21 @@ func _on_refresh_button_pressed() -> void: # 关闭作物仓库面板 func _on_quit_button_pressed(): - #打开面板后暂时禁用相机功能 - GlobalVariables.isZoomDisabled = false + + # 如果是宠物喂食模式,退出该模式 + if is_pet_feeding_mode: + set_pet_feeding_mode(false) + self.hide() + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + update_crop_warehouse_ui() + pass + else: + GlobalVariables.isZoomDisabled = false + pass + #=========================面板通用处理========================= diff --git a/GUI/CropWarehousePanel.gd.uid b/Script/BigPanel/CropWarehousePanel.gd.uid similarity index 100% rename from GUI/CropWarehousePanel.gd.uid rename to Script/BigPanel/CropWarehousePanel.gd.uid diff --git a/GUI/DailyCheckInPanel.gd b/Script/BigPanel/DailyCheckInPanel.gd similarity index 92% rename from GUI/DailyCheckInPanel.gd rename to Script/BigPanel/DailyCheckInPanel.gd index e2747ea..6dd8efb 100644 --- a/GUI/DailyCheckInPanel.gd +++ b/Script/BigPanel/DailyCheckInPanel.gd @@ -29,8 +29,19 @@ var consecutive_days: int = 0 var has_checked_in_today: bool = false # 网络管理器引用 -var network_manager -var main_game +@onready var main_game = get_node("/root/main") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'.' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' + # ============================================================================= # 奖励配置系统 - 根据 crop_data.json 平衡调整 @@ -106,16 +117,14 @@ func _initialize_system() -> void: daily_check_in_reward.hide() today_date = Time.get_date_string_from_system() - # 获取网络管理器和主游戏引用 - network_manager = get_node("/root/main/UI/TCPNetworkManager") - main_game = get_node("/root/main") + _update_display() _check_daily_status() # 从服务器加载签到数据 - if network_manager and network_manager.is_connected_to_server(): - network_manager.sendGetCheckInData() + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + tcp_network_manager_panel.sendGetCheckInData() # ============================================================================= # 网络后端交互方法 @@ -201,12 +210,12 @@ func execute_check_in() -> void: Toast.show("今日已签到,请明日再来", Color.ORANGE) return - if not network_manager or not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel or not tcp_network_manager_panel.is_connected_to_server(): Toast.show("未连接到服务器,无法签到", Color.RED) return # 发送签到请求到服务器 - network_manager.sendDailyCheckIn() + tcp_network_manager_panel.sendDailyCheckIn() daily_check_in_button.disabled = true daily_check_in_button.text = "签到中..." @@ -402,14 +411,23 @@ func _on_quit_button_pressed() -> void: func _on_daily_check_in_button_pressed() -> void: execute_check_in() + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + pass + else: + GlobalVariables.isZoomDisabled = false + pass # ============================================================================= # 公共接口方法 - 供主游戏调用 # ============================================================================= ## 刷新签到数据 func refresh_check_in_data() -> void: - if network_manager and network_manager.is_connected_to_server(): - network_manager.sendGetCheckInData() + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + tcp_network_manager_panel.sendGetCheckInData() ## 获取当前签到状态 func get_check_in_status() -> Dictionary: diff --git a/GUI/DailyCheckInPanel.gd.uid b/Script/BigPanel/DailyCheckInPanel.gd.uid similarity index 100% rename from GUI/DailyCheckInPanel.gd.uid rename to Script/BigPanel/DailyCheckInPanel.gd.uid diff --git a/Script/BigPanel/ItemBagPanel.gd b/Script/BigPanel/ItemBagPanel.gd new file mode 100644 index 0000000..5a81cb8 --- /dev/null +++ b/Script/BigPanel/ItemBagPanel.gd @@ -0,0 +1,519 @@ +extends Panel +# 这是道具背包面板,用来显示玩家获得的道具 + +# 道具背包格子容器 +@onready var bag_grid: GridContainer = $ScrollContainer/Bag_Grid +@onready var quit_button : Button = $QuitButton +@onready var refresh_button : Button = $RefreshButton + +# 预添加常用的面板 +@onready var main_game = get_node("/root/main") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' + + +# 道具使用状态 +var selected_item_name: String = "" +var selected_item_button: Button = null +var is_item_selected: bool = false + +# 宠物使用道具模式 +var is_pet_item_mode: bool = false +var current_pet_data: Dictionary = {} + +# 准备函数 +func _ready(): + # 连接可见性改变信号 + visibility_changed.connect(_on_visibility_changed) + # 隐藏面板(初始默认隐藏) + self.hide() + + +# 异步更新道具背包UI +func _update_item_bag_ui_async(): + # 清空道具背包格子 + for child in bag_grid.get_children(): + child.queue_free() + + # 等待一帧确保子节点被清理 + await get_tree().process_frame + + # 为背包中的每个道具创建按钮 + for item_data in main_game.item_bag: + var item_name = item_data["name"] + var item_count = item_data["count"] + + # 创建道具按钮 + var button = _create_item_button(item_name) + + # 更新按钮文本显示数量 + button.text = str(item_name + "\n数量:" + str(item_count)) + + # 根据是否处于访问模式连接不同的事件 + if main_game.is_visiting_mode: + # 访问模式下,点击道具只显示信息,不能使用 + button.pressed.connect(func(): _on_visit_item_selected(item_name, item_count)) + else: + # 正常模式下,连接道具选择事件 + button.pressed.connect(func(): _on_item_selected(item_name, item_count, button)) + + bag_grid.add_child(button) + +# 初始化道具背包 +func init_item_bag(): + # 清空道具背包格子 + for child in bag_grid.get_children(): + child.queue_free() + + # 显示背包中的道具 + update_item_bag_ui() + +# 更新道具背包UI(同步版本,用于刷新按钮) +func update_item_bag_ui(): + # 清空道具背包格子 + for child in bag_grid.get_children(): + child.queue_free() + + # 获取过滤后的道具列表 + var filtered_items = _get_filtered_items() + + # 为背包中的每个道具创建按钮 + for item_data in filtered_items: + var item_name = item_data["name"] + var item_count = item_data["count"] + + # 创建道具按钮 + var button = _create_item_button(item_name) + + # 更新按钮文本显示数量 + button.text = str(item_name + "\n数量:" + str(item_count)) + + # 根据模式连接不同的事件 + if main_game.is_visiting_mode: + # 访问模式下,点击道具只显示信息,不能使用 + button.pressed.connect(func(): _on_visit_item_selected(item_name, item_count)) + elif is_pet_item_mode: + # 宠物使用道具模式下,连接宠物道具选择事件 + button.pressed.connect(func(): _on_pet_item_selected(item_name, item_count)) + else: + # 正常模式下,连接道具选择事件 + button.pressed.connect(func(): _on_item_selected(item_name, item_count, button)) + + bag_grid.add_child(button) + +# 创建道具按钮 +func _create_item_button(item_name: String) -> Button: + # 使用绿色按钮作为道具按钮的默认样式 + var button = main_game.item_button.duplicate() + + # 确保按钮可见并可点击 + button.visible = true + button.disabled = false + button.focus_mode = Control.FOCUS_ALL + + # 设置按钮文本 + button.text = item_name + + # 添加工具提示,从item_config.json获取道具信息 + var item_config = _load_item_config() + if item_config and item_config.has(item_name): + var item_info = item_config[item_name] + var description = item_info.get("描述", "暂无描述") + var cost = item_info.get("花费", 0) + + button.tooltip_text = str( + "道具: " + item_name + "\n" + + "价格: " + str(cost) + "元\n" + + "描述: " + description + "\n" + + "点击选择道具,然后对地块使用" + ) + else: + button.tooltip_text = str("道具: " + item_name + "\n描述: 暂无信息") + + # 如果按钮有标题标签,设置标题 + if button.has_node("Title"): + button.get_node("Title").text = "道具" + button.get_node("Title").modulate = Color.CYAN # 道具标题使用青色 + + # 更新按钮的道具图片 + _update_button_item_image(button, item_name) + + return button + +# 从主游戏脚本获取道具配置数据 +func _load_item_config() -> Dictionary: + # 从主游戏脚本的全局变量获取道具配置数据 + if main_game.item_config_data.size() > 0: + return main_game.item_config_data + else: + print("道具背包:主游戏脚本中没有道具配置数据") + return {} + +# 设置宠物使用道具模式 +func set_pet_item_mode(enabled: bool, pet_data: Dictionary = {}): + is_pet_item_mode = enabled + current_pet_data = pet_data + + # 刷新UI以应用新的模式 + update_item_bag_ui() + +# 获取过滤后的道具列表 +func _get_filtered_items() -> Array: + var filtered_items = [] + + for item_data in main_game.item_bag: + var item_name = item_data["name"] + + # 如果是宠物使用道具模式,只显示宠物道具 + if is_pet_item_mode: + if _is_pet_item(item_name): + filtered_items.append(item_data) + else: + # 正常模式显示所有道具 + filtered_items.append(item_data) + + return filtered_items + +# 检查是否为宠物道具 +func _is_pet_item(item_name: String) -> bool: + var item_config = _load_item_config() + if item_config and item_config.has(item_name): + var item_info = item_config[item_name] + var item_type = item_info.get("类型", "") + return item_type == "宠物道具" + return false + + +# 正常模式下的道具点击处理 - 选择道具 +func _on_item_selected(item_name: String, item_count: int, button: Button): + # 检查道具是否可以使用 + if not _is_item_usable(item_name): + # 显示道具信息 + _show_item_info(item_name, item_count) + return + + # 检查是否为农场道具(直接使用类型) + if _is_farm_item(item_name): + # 农场道具直接使用,显示确认对话框 + _show_farm_item_confirmation_dialog(item_name, item_count) + return + + # 取消之前选择的道具 + if selected_item_button and selected_item_button != button: + _deselect_item() + + if selected_item_name == item_name: + # 如果点击的是已选择的道具,取消选择 + _deselect_item() + Toast.show("已取消选择道具", Color.YELLOW, 2.0, 1.0) + else: + # 选择新道具 + _select_item(item_name, button) + #点击后关闭玩家道具面板 + _on_quit_button_pressed() + Toast.show("已选择 " + item_name + ",点击地块使用道具", Color.CYAN, 3.0, 1.0) + +# 选择道具 +func _select_item(item_name: String, button: Button): + selected_item_name = item_name + selected_item_button = button + is_item_selected = true + + # 设置全局选择状态 + main_game.selected_item_name = item_name + main_game.is_item_selected = true + + # 更改按钮样式表示选中 + if button.has_node("Title"): + button.get_node("Title").modulate = Color.YELLOW # 选中时使用黄色 + +# 取消选择道具 +func _deselect_item(): + selected_item_name = "" + is_item_selected = false + + # 清除全局选择状态 + main_game.selected_item_name = "" + main_game.is_item_selected = false + + # 恢复按钮样式 + if selected_item_button and selected_item_button.has_node("Title"): + selected_item_button.get_node("Title").modulate = Color.CYAN + + selected_item_button = null + +# 检查道具是否可以使用 +func _is_item_usable(item_name: String) -> bool: + # 根据道具类型判断是否可以使用 + match item_name: + "农家肥", "金坷垃", "生长素": + return true # 施肥道具 + "水壶", "水桶": + return true # 浇水道具 + "铲子","除草剂": + return true # 铲除道具 + "精准采集锄", "时运锄": + return true # 采集道具 + "小额经验卡", "小额金币卡": + return true # 农场道具(直接使用) + "杀虫剂": + return false # 其他道具(暂不实现) + _: + return false + +# 检查道具是否为农场道具(直接使用类型) +func _is_farm_item(item_name: String) -> bool: + var item_config = _load_item_config() + if item_config and item_config.has(item_name): + var item_info = item_config[item_name] + var item_type = item_info.get("类型", "") + return item_type == "农场道具" + return false + +# 显示道具信息 +func _show_item_info(item_name: String, item_count: int): + var info_text = "" + + var item_config = _load_item_config() + if item_config and item_config.has(item_name): + var item_info = item_config[item_name] + var description = item_info.get("描述", "暂无描述") + var cost = item_info.get("花费", 0) + + info_text = item_name + " (数量: " + str(item_count) + ")\n" + info_text += "价格: " + str(cost) + "元\n" + info_text += "描述: " + description + + if not _is_item_usable(item_name): + info_text += "\n注意: 此道具功能暂未实现" + else: + info_text = item_name + " (数量: " + str(item_count) + ")\n描述: 暂无信息" + + Toast.show(info_text, Color.CYAN, 3.0, 1.0) + +# 访问模式下的道具点击处理 +func _on_visit_item_selected(item_name: String, item_count: int): + # 显示道具信息 + _show_item_info(item_name, item_count) + +# 宠物使用道具模式下的道具选择处理 +func _on_pet_item_selected(item_name: String, item_count: int): + # 显示确认对话框 + _show_pet_item_confirmation_dialog(item_name, item_count) + +# 显示农场道具确认对话框 +func _show_farm_item_confirmation_dialog(item_name: String, item_count: int): + # 获取道具信息 + var item_config = _load_item_config() + var item_description = "未知效果" + if item_config and item_config.has(item_name): + var item_info = item_config[item_name] + item_description = item_info.get("描述", "未知效果") + + var confirmation_text = str( + "确定要使用道具 " + item_name + " 吗?\n\n" + + "道具效果:" + item_description + "\n\n" + + "使用后道具数量将减少1个" + ) + + # 使用自定义的AcceptDialog + var dialog = preload("res://Script/Dialog/AcceptDialog.gd").new() + + # 添加到场景(这会触发_ready函数) + add_child(dialog) + + # 在_ready执行后设置内容 + dialog.set_dialog_title("确认使用道具") + dialog.set_dialog_content(confirmation_text) + dialog.set_ok_text("确认使用") + dialog.set_cancel_text("取消") + + # 连接信号 + dialog.confirmed.connect(_on_confirm_farm_item_use.bind(item_name, dialog)) + dialog.canceled.connect(_on_cancel_farm_item_use.bind(dialog)) + + # 显示对话框 + dialog.popup_centered() + +# 确认使用农场道具 +func _on_confirm_farm_item_use(item_name: String, dialog: AcceptDialog): + _send_farm_item_use_request(item_name) + dialog.queue_free() + self.hide() + +# 取消使用农场道具 +func _on_cancel_farm_item_use(dialog: AcceptDialog): + dialog.queue_free() + +# 发送农场道具使用请求 +func _send_farm_item_use_request(item_name: String): + var message = { + "type": "use_farm_item", + "item_name": item_name + } + + # 发送请求 + tcp_network_manager_panel.send_message(message) + + Toast.show("正在使用道具...", Color.BLUE, 2.0, 1.0) + +# 显示宠物使用道具确认对话框 +func _show_pet_item_confirmation_dialog(item_name: String, item_count: int): + if current_pet_data.is_empty(): + Toast.show("宠物数据丢失,请重新选择宠物", Color.RED, 2.0, 1.0) + return + + var pet_name = current_pet_data.get("基本信息", {}).get("宠物名称", "未知宠物") + var pet_id = current_pet_data.get("基本信息", {}).get("宠物ID", "") + + # 获取道具信息 + var item_config = _load_item_config() + var item_description = "未知效果" + if item_config and item_config.has(item_name): + var item_info = item_config[item_name] + item_description = item_info.get("描述", "未知效果") + + var confirmation_text = str( + "确定要对宠物 " + pet_name + " 使用道具 " + item_name + " 吗?\n\n" + + "道具效果:" + item_description + "\n\n" + + "使用后道具数量将减少1个" + ) + + # 使用自定义的AcceptDialog + var dialog = preload("res://Script/Dialog/AcceptDialog.gd").new() + + # 添加到场景(这会触发_ready函数) + add_child(dialog) + + # 在_ready执行后设置内容 + dialog.set_dialog_title("确认使用道具") + dialog.set_dialog_content(confirmation_text) + dialog.set_ok_text("确认使用") + dialog.set_cancel_text("取消") + + # 连接信号 + dialog.confirmed.connect(_on_confirm_pet_item_use.bind(item_name, pet_id, dialog)) + dialog.canceled.connect(_on_cancel_pet_item_use.bind(dialog)) + + # 显示对话框 + dialog.popup_centered() + +# 确认使用宠物道具 +func _on_confirm_pet_item_use(item_name: String, pet_id: String, dialog: AcceptDialog): + _send_pet_item_use_request(item_name, pet_id) + dialog.queue_free() + self.hide() + +# 取消使用宠物道具 +func _on_cancel_pet_item_use(dialog: AcceptDialog): + dialog.queue_free() + self.hide() + +# 发送宠物使用道具请求 +func _send_pet_item_use_request(item_name: String, pet_id: String): + var message = { + "type": "use_pet_item", + "item_name": item_name, + "pet_id": pet_id + } + + # 发送请求 + tcp_network_manager_panel.send_message(message) + + # 退出宠物使用道具模式 + _exit_pet_item_mode() + + Toast.show("正在使用道具...", Color.BLUE, 2.0, 1.0) + +# 退出宠物使用道具模式 +func _exit_pet_item_mode(): + is_pet_item_mode = false + current_pet_data = {} + + # 刷新UI + update_item_bag_ui() + +# 更新按钮的道具图片 +func _update_button_item_image(button: Button, item_name: String): + # 检查按钮是否有CropImage节点 + var item_image = button.get_node_or_null("CropImage") + if not item_image: + return + + # 从配置文件获取道具图片路径 + var item_config = _load_item_config() + var texture = null + + if item_config and item_config.has(item_name): + var item_info = item_config[item_name] + var image_path = item_info.get("道具图片", "") + + if image_path != "" and ResourceLoader.exists(image_path): + # 尝试加载道具图片 + texture = load(image_path) + if texture: + pass + else: + print("加载道具图片失败:", item_name, " -> ", image_path) + else: + print("道具图片路径无效或不存在:", item_name, " -> ", image_path) + + # 如果没有找到道具图片,尝试使用默认道具图片 + if not texture: + var default_item_path = "res://assets/道具图片/默认道具.webp" + if ResourceLoader.exists(default_item_path): + texture = load(default_item_path) + if texture: + print("使用默认道具图片:", item_name) + + # 设置图片 + if texture: + # CropImage是Sprite2D,直接设置texture属性 + item_image.texture = texture + item_image.visible = true + else: + # 如果没有图片,隐藏图片节点 + item_image.visible = false + +#=========================面板通用处理========================= +# 关闭道具背包面板 +func _on_quit_button_pressed() -> void: + # 如果是宠物使用道具模式,退出该模式 + if is_pet_item_mode: + _exit_pet_item_mode() + + self.hide() + +#手动刷新道具背包面板 +func _on_refresh_button_pressed() -> void: + # 刷新道具背包UI + update_item_bag_ui() + Toast.show("道具背包已刷新", Color.GREEN, 2.0, 1.0) + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + # 面板显示时自动刷新数据 + update_item_bag_ui() + pass + else: + GlobalVariables.isZoomDisabled = false + pass +#=========================面板通用处理========================= + +# 获取当前选择的道具名称 +func get_selected_item_name() -> String: + return selected_item_name + +# 检查是否有道具被选择 +func is_item_currently_selected() -> bool: + return is_item_selected diff --git a/GUI/ItemBagPanel.gd.uid b/Script/BigPanel/ItemBagPanel.gd.uid similarity index 100% rename from GUI/ItemBagPanel.gd.uid rename to Script/BigPanel/ItemBagPanel.gd.uid diff --git a/GUI/ItemStorePanel.gd b/Script/BigPanel/ItemStorePanel.gd similarity index 61% rename from GUI/ItemStorePanel.gd rename to Script/BigPanel/ItemStorePanel.gd index ac93c96..d6a1003 100644 --- a/GUI/ItemStorePanel.gd +++ b/Script/BigPanel/ItemStorePanel.gd @@ -4,10 +4,22 @@ extends Panel # 道具商店格子容器 @onready var store_grid: GridContainer = $ScrollContainer/Store_Grid @onready var quit_button : Button = $QuitButton +@onready var refresh_button : Button = $RefreshButton # 预添加常用的面板 @onready var main_game = get_node("/root/main") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' +@onready var batch_buy_popup: PanelContainer = $'../../DiaLog/BatchBuyPopup' + # 道具配置数据 var item_config : Dictionary = {} @@ -16,20 +28,16 @@ var item_config : Dictionary = {} func _ready(): # 连接关闭按钮信号 quit_button.pressed.connect(self._on_quit_button_pressed) + # 连接可见性改变信号 + visibility_changed.connect(_on_visibility_changed) # 隐藏面板(初始默认隐藏) self.hide() # 初始化道具商店 func init_item_store(): - # 加载道具配置数据 - _load_item_config() - - # 清空道具商店格子 - for child in store_grid.get_children(): - child.queue_free() - - # 显示商店中的道具 + # 从主游戏脚本获取道具配置数据 + _load_item_config_from_main() update_item_store_ui() # 更新道具商店UI @@ -88,37 +96,36 @@ func _create_item_button(item_name: String, item_cost: int, item_desc: String) - return button -# 加载道具配置数据 -func _load_item_config(): - # 从item_config.json加载道具配置数据 - var file = FileAccess.open("res://Server/config/item_config.json", FileAccess.READ) - if not file: - print("无法读取道具配置文件!") +# 从主游戏脚本获取道具配置数据 +func _load_item_config_from_main(): + # 从主游戏脚本的全局变量获取道具配置数据 + if main_game.item_config_data.size() > 0: + item_config = main_game.item_config_data + print("道具商店:从主游戏脚本获取道具配置数据,道具种类:", item_config.size()) + else: + print("道具商店:主游戏脚本中没有道具配置数据,使用空配置") item_config = {} - return - - var json_text = file.get_as_text() - file.close() - - var json = JSON.new() - var parse_result = json.parse(json_text) - if parse_result != OK: - print("道具配置JSON解析错误:", json.get_error_message()) - item_config = {} - return - - item_config = json.get_data() - print("成功加载道具配置,道具种类:", item_config.size()) + # 商店道具点击处理 - 购买道具 func _on_store_item_selected(item_name: String, item_cost: int, item_desc: String): - # 检查玩家金钱是否足够 + # 检查玩家金钱是否足够(至少能买1个) if main_game.money < item_cost: Toast.show("金钱不足!需要 " + str(item_cost) + " 元,当前只有 " + str(main_game.money) + " 元", Color.RED, 3.0, 1.0) return - # 显示购买确认对话框 - _show_buy_confirmation_dialog(item_name, item_cost, item_desc) + # 显示批量购买弹窗 + if batch_buy_popup: + batch_buy_popup.show_buy_popup( + item_name, + item_cost, + item_desc, + "item", + _on_confirm_buy_item, + _on_cancel_buy_item + ) + else: + print("批量购买弹窗未找到") # 显示购买确认对话框 func _show_buy_confirmation_dialog(item_name: String, item_cost: int, item_desc: String): @@ -146,24 +153,54 @@ func _show_buy_confirmation_dialog(item_name: String, item_cost: int, item_desc: # 显示对话框 confirm_dialog.popup_centered() -# 确认购买道具 -func _on_confirm_buy_item(item_name: String, item_cost: int, dialog: AcceptDialog): - if network_manager and network_manager.has_method("sendBuyItem"): - if network_manager.sendBuyItem(item_name, item_cost): - Toast.show("正在购买 " + item_name + "...", Color.YELLOW, 2.0, 1.0) +# 确认购买道具(批量购买版本) +func _on_confirm_buy_item(item_name: String, unit_cost: int, quantity: int, buy_type: String): + var total_cost = unit_cost * quantity + + # 再次检查金钱是否足够 + if main_game.money < total_cost: + Toast.show("金钱不足!需要 " + str(total_cost) + " 元,当前只有 " + str(main_game.money) + " 元", Color.RED, 3.0, 1.0) + return + + # 发送批量购买请求到服务器 + _send_batch_buy_item_request(item_name, unit_cost, quantity) + +# 取消购买道具(批量购买版本) +func _on_cancel_buy_item(): + print("取消购买道具") + +# 发送批量购买道具请求 +func _send_batch_buy_item_request(item_name: String, unit_cost: int, quantity: int): + # 发送批量购买请求到服务器 + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendBuyItem"): + if tcp_network_manager_panel.sendBuyItem(item_name, unit_cost, quantity): + # 服务器会处理批量购买逻辑,客户端等待响应 + print("已发送批量购买道具请求:", item_name, " 数量:", quantity) else: - Toast.show("发送购买请求失败", Color.RED, 2.0, 1.0) + Toast.show("购买请求发送失败", Color.RED, 2.0, 1.0) else: Toast.show("网络管理器不可用", Color.RED, 2.0, 1.0) - - # 清理对话框 - if dialog: - dialog.queue_free() -# 取消购买道具 -func _on_cancel_buy_item(dialog: AcceptDialog): - if dialog: - dialog.queue_free() +# 将道具添加到道具背包(客户端同步) +func _add_item_to_bag(item_name: String): + # 确保道具背包存在 + if "道具背包" not in main_game: + main_game["道具背包"] = [] + + # 查找是否已存在该道具 + var found = false + for item in main_game["道具背包"]: + if item.get("name") == item_name: + item["count"] += 1 + found = true + break + + # 如果不存在,添加新道具 + if not found: + main_game["道具背包"].append({ + "name": item_name, + "count": 1 + }) # 更新按钮的道具图片 func _update_button_item_image(button: Button, item_name: String): @@ -184,7 +221,7 @@ func _update_button_item_image(button: Button, item_name: String): # 尝试加载道具图片 texture = load(image_path) if texture: - print("成功加载道具图片:", item_name, " -> ", image_path) + pass else: print("加载道具图片失败:", item_name, " -> ", image_path) else: @@ -217,11 +254,22 @@ func _on_refresh_button_pressed() -> void: init_item_store() Toast.show("道具商店已刷新", Color.GREEN, 2.0, 1.0) + + # 关闭道具商店面板 func _on_quit_button_pressed() -> void: - # 打开面板后暂时禁用相机功能 - GlobalVariables.isZoomDisabled = false self.hide() pass + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + # 面板显示时自动刷新数据 + init_item_store() + pass + else: + GlobalVariables.isZoomDisabled = false + pass #=========================面板通用处理========================= diff --git a/GUI/ItemStorePanel.gd.uid b/Script/BigPanel/ItemStorePanel.gd.uid similarity index 100% rename from GUI/ItemStorePanel.gd.uid rename to Script/BigPanel/ItemStorePanel.gd.uid diff --git a/GUI/LoginPanel.gd b/Script/BigPanel/LoginPanel.gd similarity index 83% rename from GUI/LoginPanel.gd rename to Script/BigPanel/LoginPanel.gd index 1fbdf75..ffc1f09 100644 --- a/GUI/LoginPanel.gd +++ b/Script/BigPanel/LoginPanel.gd @@ -24,7 +24,7 @@ extends PanelContainer #状态提示标签 @onready var status_label : Label = $VBox/status_label -#隐藏注册相关 + @onready var password_2: HBoxContainer = $VBox/Password2 @onready var verification_code: HBoxContainer = $VBox/VerificationCode @onready var player_name: HBoxContainer = $VBox/PlayerName @@ -37,16 +37,27 @@ var remember_password : bool = true # 默认记住密码 # 引用主场景和全局函数 @onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var tcp_network_manager = get_node("/root/main/UI/TCPNetworkManager") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' +@onready var pet_bag_panel: Panel = $'../PetBagPanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' + # 准备函数 func _ready(): - - + self.show() + #隐藏注册相关UI + password_2.hide() + verification_code.hide() + player_name.hide() + farm_name.hide() # 连接按钮信号 login_button.pressed.connect(self._on_login_button_pressed) @@ -61,6 +72,13 @@ func _ready(): # 处理登录按钮点击 func _on_login_button_pressed(): + password_2.hide() + verification_code.hide() + player_name.hide() + farm_name.hide() + + + var user_name = username_input.text.strip_edges() # 修剪前后的空格 var user_password = password_input.text.strip_edges() var farmname = farmname_input.text.strip_edges() @@ -71,13 +89,19 @@ func _on_login_button_pressed(): return # 检查网络连接状态 - if !tcp_network_manager.client.is_client_connected(): + if !tcp_network_manager_panel.client.is_client_connected(): status_label.text = "未连接到服务器,正在尝试连接..." status_label.modulate = Color.YELLOW # 尝试自动连接到服务器 - tcp_network_manager.connect_to_current_server() + tcp_network_manager_panel.connect_to_current_server() await get_tree().create_timer(2.0).timeout + # 再次检查连接状态 + if !tcp_network_manager_panel.client.is_client_connected(): + status_label.text = "连接服务器失败,正在尝试其他服务器..." + status_label.modulate = Color.YELLOW + # 等待自动服务器切换完成 + await get_tree().create_timer(3.0).timeout # 禁用按钮,防止重复点击 @@ -90,7 +114,7 @@ func _on_login_button_pressed(): if remember_password: _save_login_info(user_name, user_password) - tcp_network_manager.sendLoginInfo(user_name, user_password) + tcp_network_manager_panel.sendLoginInfo(user_name, user_password) # 更新主游戏数据 main_game.user_name = user_name @@ -105,6 +129,8 @@ func _on_login_button_pressed(): # 处理验证码发送按钮点击 func _on_send_button_pressed(): + + var user_name = username_input.text.strip_edges() if user_name == "": @@ -118,15 +144,15 @@ func _on_send_button_pressed(): return # 检查网络连接状态 - if !tcp_network_manager.client.is_client_connected(): + if !tcp_network_manager_panel.client.is_client_connected(): status_label.text = "未连接到服务器,正在尝试连接..." status_label.modulate = Color.YELLOW # 尝试自动连接到服务器 - tcp_network_manager.connect_to_current_server() + tcp_network_manager_panel.connect_to_current_server() await get_tree().create_timer(2.0).timeout # 再次检查连接状态 - if !tcp_network_manager.client.is_client_connected(): + if !tcp_network_manager_panel.client.is_client_connected(): status_label.text = "连接服务器失败,正在尝试其他服务器..." status_label.modulate = Color.YELLOW # 等待自动服务器切换完成 @@ -140,7 +166,7 @@ func _on_send_button_pressed(): status_label.modulate = Color.YELLOW # 发送验证码请求 - tcp_network_manager.sendVerificationCodeRequest(user_name) + tcp_network_manager_panel.sendVerificationCodeRequest(user_name) # 60秒后重新启用按钮(或收到响应后提前启用) var timer = 60 @@ -201,15 +227,15 @@ func _on_register_button_pressed(): return # 检查网络连接状态 - if !tcp_network_manager.client.is_client_connected(): + if !tcp_network_manager_panel.client.is_client_connected(): status_label.text = "未连接到服务器,正在尝试连接..." status_label.modulate = Color.YELLOW # 尝试自动连接到服务器 - tcp_network_manager.connect_to_current_server() + tcp_network_manager_panel.connect_to_current_server() await get_tree().create_timer(2.0).timeout # 再次检查连接状态 - if !tcp_network_manager.client.is_client_connected(): + if !tcp_network_manager_panel.client.is_client_connected(): status_label.text = "连接服务器失败,正在尝试其他服务器..." status_label.modulate = Color.YELLOW # 等待自动服务器切换完成 @@ -223,12 +249,12 @@ func _on_register_button_pressed(): status_label.modulate = Color.YELLOW # 发送注册请求 - tcp_network_manager.sendRegisterInfo(user_name, user_password, farmname, player_name, verification_code) + tcp_network_manager_panel.sendRegisterInfo(user_name, user_password, farmname, player_name, verification_code) # 更新主游戏数据 - #main_game.user_name = user_name - #main_game.user_password = user_password - #main_game.farmname = farmname + main_game.user_name = user_name + main_game.user_password = user_password + main_game.farmname = farmname # 5秒后重新启用按钮(如果没有收到响应) await get_tree().create_timer(5.0).timeout @@ -273,30 +299,9 @@ func is_valid_qq_number(qq_number: String) -> bool: # 添加密码验证函数 func is_valid_password(password: String) -> bool: - # 检查密码是否为空 - if password.length() == 0: - return false - - # 遍历密码中的每个字符 - for i in range(password.length()): - var char = password[i] - - # 检查字符是否为数字 - var is_digit = char >= "0" and char <= "9" - - # 检查字符是否为大写字母 - var is_upper = char >= "A" and char <= "Z" - - # 检查字符是否为小写字母 - var is_lower = char >= "a" and char <= "z" - - # 如果字符既不是数字也不是字母,则返回false - if not (is_digit or is_upper or is_lower): - return false - - # 如果所有字符都是字母或数字,则返回true - return true - + # 使用正则表达式检查是否只包含数字和字母 + var pattern = r"^[a-zA-Z0-9]+$" + return password.match(pattern) != null # 处理登录响应 func _on_login_response_received(success: bool, message: String, user_data: Dictionary): @@ -338,19 +343,36 @@ func _on_login_response_received(success: bool, message: String, user_data: Dict else: main_game.item_bag = [] + # 加载宠物背包数据 + if user_data.has("宠物背包"): + main_game.pet_bag = user_data.get("宠物背包", []) + else: + main_game.pet_bag = [] + + # 加载巡逻宠物数据 + if user_data.has("巡逻宠物"): + main_game.patrol_pets = user_data.get("巡逻宠物", []) + else: + main_game.patrol_pets = [] + main_game.start_game = true self.hide() # 确保在更新数据后调用主游戏的 UI 更新函数 main_game._update_ui() main_game._refresh_farm_lots() + player_bag_panel.update_player_bag_ui() - # 更新作物仓库和道具背包UI - if main_game.crop_warehouse_panel and main_game.crop_warehouse_panel.has_method("update_crop_warehouse_ui"): - main_game.crop_warehouse_panel.update_crop_warehouse_ui() - if main_game.item_bag_panel and main_game.item_bag_panel.has_method("update_item_bag_ui"): - main_game.item_bag_panel.update_item_bag_ui() + crop_warehouse_panel.update_crop_warehouse_ui() + item_bag_panel.update_item_bag_ui() + # 更新宠物背包UI + if pet_bag_panel and pet_bag_panel.has_method("update_pet_bag_ui"): + pet_bag_panel.update_pet_bag_ui() + + # 初始化巡逻宠物 + if main_game.has_method("init_patrol_pets"): + main_game.init_patrol_pets() # 调用主游戏的登录成功处理函数 main_game.handle_login_success(user_data) @@ -515,16 +537,12 @@ func _display_version_info(): status_label.text = "萌芽农场 v" + main_game.client_version + " - 欢迎使用" status_label.modulate = Color.CYAN -# 处理连接断开事件 -func _on_connection_lost(): - print("登录面板收到连接断开通知") - - # 更新状态标签 - status_label.text = "与服务器连接已断开,请重新登录" - status_label.modulate = Color.ORANGE - - # 重新启用所有按钮 - login_button.disabled = false - register_button.disabled = false - send_button.disabled = false - send_button.text = "发送验证码" + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + pass + else: + GlobalVariables.isZoomDisabled = false + pass diff --git a/GUI/LoginPanel.gd.uid b/Script/BigPanel/LoginPanel.gd.uid similarity index 100% rename from GUI/LoginPanel.gd.uid rename to Script/BigPanel/LoginPanel.gd.uid diff --git a/GUI/LuckyDrawPanel.gd b/Script/BigPanel/LuckyDrawPanel.gd similarity index 95% rename from GUI/LuckyDrawPanel.gd rename to Script/BigPanel/LuckyDrawPanel.gd index 7721ef7..a9926c9 100644 --- a/GUI/LuckyDrawPanel.gd +++ b/Script/BigPanel/LuckyDrawPanel.gd @@ -27,9 +27,19 @@ signal draw_failed(error_message: String) # 抽奖失败信号 # ============================================================================= var reward_templates: Array[RichTextLabel] = [] var current_rewards: Array = [] -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") @onready var main_game = get_node("/root/main") +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' + + # 15种不同的模板颜色 var template_colors: Array[Color] = [ Color(1.0, 0.8, 0.8, 1.0), # 淡红色 @@ -266,7 +276,7 @@ func _format_template_text(reward: Dictionary) -> String: ## 执行网络抽奖 func _perform_network_draw(draw_type: String) -> void: - if not network_manager or not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel or not tcp_network_manager_panel.is_connected_to_server(): _show_error_message("网络未连接,无法进行抽奖") return @@ -277,7 +287,7 @@ func _perform_network_draw(draw_type: String) -> void: return # 发送抽奖请求 - var success = network_manager.sendLuckyDraw(draw_type) + var success = tcp_network_manager_panel.sendLuckyDraw(draw_type) if not success: _show_error_message("发送抽奖请求失败") return @@ -571,3 +581,13 @@ func clear_draw_results() -> void: func refresh_reward_display() -> void: _load_crop_data_and_build_rewards() _update_template_display() + + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + pass + else: + GlobalVariables.isZoomDisabled = false + pass diff --git a/GUI/LuckyDrawPanel.gd.uid b/Script/BigPanel/LuckyDrawPanel.gd.uid similarity index 100% rename from GUI/LuckyDrawPanel.gd.uid rename to Script/BigPanel/LuckyDrawPanel.gd.uid diff --git a/Script/BigPanel/PetBagPanel.gd b/Script/BigPanel/PetBagPanel.gd new file mode 100644 index 0000000..e734f1b --- /dev/null +++ b/Script/BigPanel/PetBagPanel.gd @@ -0,0 +1,276 @@ +extends Panel +# 这是宠物背包面板,用来显示玩家获得的宠物 + +# 宠物背包格子容器 +@onready var bag_grid: GridContainer = $ScrollContainer/Bag_Grid +@onready var quit_button: Button = $QuitButton +@onready var refresh_button: Button = $RefreshButton +@onready var scroll_container = $ScrollContainer + +# 预添加常用的面板 +@onready var main_game = get_node("/root/main") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var pet_store_panel: Panel = $'../PetStorePanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' +@onready var pet_inform_panel: Panel = $'../../SmallPanel/PetInformPanel' + +# 宠物配置数据 +var pet_config: Dictionary = {} + +# 准备函数 +func _ready(): + # 连接关闭按钮信号 + quit_button.pressed.connect(self._on_quit_button_pressed) + refresh_button.pressed.connect(self._on_refresh_button_pressed) + # 连接可见性改变信号 + visibility_changed.connect(_on_visibility_changed) + + # 隐藏面板(初始默认隐藏) + self.hide() + +# 初始化宠物背包 +func init_pet_bag(): + + # 显示背包中的宠物 + update_pet_bag_ui() + + # 更新宠物背包UI(同步版本,用于刷新按钮) +func update_pet_bag_ui(): + if scroll_container: + scroll_container.clip_contents = false + + # 设置GridContainer也不裁剪内容 + if bag_grid: + bag_grid.clip_contents = false + + # 清空宠物背包格子 + for child in bag_grid.get_children(): + child.queue_free() + + # 确保宠物背包存在 + if not "pet_bag" in main_game or main_game.pet_bag == null: + main_game.pet_bag = [] + + # 为背包中的每个宠物创建按钮 + for pet_data in main_game.pet_bag: + var pet_name = pet_data.get("基本信息", {}).get("宠物类型", "未知宠物") + var pet_level = pet_data.get("等级经验", {}).get("宠物等级", 1) + var pet_owner_name = pet_data.get("基本信息", {}).get("宠物名称", pet_name) + + # 创建宠物按钮 + var button = _create_pet_button(pet_name, pet_level, pet_owner_name) + + # 更新按钮文本显示宠物信息 + button.text = str(pet_owner_name + "\n等级:" + str(pet_level)) + + # 根据是否处于访问模式连接不同的事件 + if main_game.is_visiting_mode: + # 访问模式下,点击宠物只显示信息 + button.pressed.connect(func(): _on_visit_pet_selected(pet_name, pet_data)) + else: + # 正常模式下,连接宠物选择事件 + button.pressed.connect(func(): _on_pet_selected(pet_name, pet_data, button)) + + bag_grid.add_child(button) + +# 创建宠物按钮 +func _create_pet_button(pet_name: String, pet_level: int, pet_owner_name: String) -> Button: + # 使用按钮作为宠物背包按钮的样式 + var button = main_game.item_button.duplicate() + + # 确保按钮可见并可点击 + button.visible = true + button.disabled = false + button.focus_mode = Control.FOCUS_ALL + + # 关闭按钮的内容裁剪,允许图片超出按钮边界 + button.clip_contents = false + + + # 添加工具提示 + button.tooltip_text = str( + "宠物: " + pet_name + "\n" + + "名称: " + pet_owner_name + "\n" + + "等级: " + str(pet_level) + "\n" + + "点击查看宠物详情" + ) + + # 如果按钮有标题标签,设置标题 + if button.has_node("Title"): + button.get_node("Title").text = "宠物" + button.get_node("Title").modulate = Color.MAGENTA # 宠物标题使用洋红色 + + # 更新按钮的宠物图片 + _update_button_pet_image(button, pet_name) + + return button + +# 更新按钮的宠物图片 +func _update_button_pet_image(button: Button, pet_name: String): + # 检查按钮是否有CropImage节点 + var pet_image = button.get_node_or_null("CropImage") + if not pet_image: + return + + # 从宠物配置获取场景路径 + var texture = null + var pet_config = _load_pet_config() + + if pet_config.has(pet_name): + var pet_info = pet_config[pet_name] + var scene_path = pet_info.get("场景路径", "") + + if scene_path != "" and ResourceLoader.exists(scene_path): + # 加载宠物场景并获取PetImage的纹理 + var pet_scene = load(scene_path) + if pet_scene: + var pet_instance = pet_scene.instantiate() + var pet_image_node = pet_instance.get_node_or_null("PetImage") + if pet_image_node and pet_image_node.sprite_frames: + # 获取默认动画的第一帧 + var animation_names = pet_image_node.sprite_frames.get_animation_names() + if animation_names.size() > 0: + var default_animation = animation_names[0] + var frame_count = pet_image_node.sprite_frames.get_frame_count(default_animation) + if frame_count > 0: + texture = pet_image_node.sprite_frames.get_frame_texture(default_animation, 0) + pet_instance.queue_free() + + # 设置图片 + if texture: + pet_image.texture = texture + pet_image.visible = true + pet_image.scale = Vector2(10, 10) + # 确保图片居中显示 + pet_image.centered = true + else: + pet_image.visible = false + +# 加载宠物配置数据 +func _load_pet_config() -> Dictionary: + var file = FileAccess.open("res://Data/pet_data.json", FileAccess.READ) + if file == null: + return {} + + var json = JSON.new() + var json_string = file.get_as_text() + file.close() + + var parse_result = json.parse(json_string) + if parse_result != OK: + return {} + + return json.data + +# 计算宠物年龄(以天为单位) +func _calculate_pet_age(birthday: String) -> int: + if birthday == "": + return 0 + + # 解析生日字符串,格式:2025年7月5日10时7分25秒 + var birthday_parts = birthday.split("年") + if birthday_parts.size() < 2: + return 0 + + var year = int(birthday_parts[0]) + var rest = birthday_parts[1] + + var month_parts = rest.split("月") + if month_parts.size() < 2: + return 0 + + var month = int(month_parts[0]) + var rest2 = month_parts[1] + + var day_parts = rest2.split("日") + if day_parts.size() < 2: + return 0 + + var day = int(day_parts[0]) + var rest3 = day_parts[1] + + var hour_parts = rest3.split("时") + if hour_parts.size() < 2: + return 0 + + var hour = int(hour_parts[0]) + var rest4 = hour_parts[1] + + var minute_parts = rest4.split("分") + if minute_parts.size() < 2: + return 0 + + var minute = int(minute_parts[0]) + var rest5 = minute_parts[1] + + var second_parts = rest5.split("秒") + if second_parts.size() < 1: + return 0 + + var second = int(second_parts[0]) + + # 将生日转换为Unix时间戳 + var birthday_dict = { + "year": year, + "month": month, + "day": day, + "hour": hour, + "minute": minute, + "second": second + } + + var birthday_timestamp = Time.get_unix_time_from_datetime_dict(birthday_dict) + var current_timestamp = Time.get_unix_time_from_system() + + # 计算天数差 + var age_seconds = current_timestamp - birthday_timestamp + var age_days = int(age_seconds / (24 * 3600)) + + return max(0, age_days) + + +# 正常模式下的宠物点击处理 - 查看宠物信息 +func _on_pet_selected(pet_name: String, pet_data: Dictionary, button: Button): + # 显示宠物信息面板 + if pet_inform_panel: + pet_inform_panel.show_pet_info(pet_name, pet_data) + pet_inform_panel.show() + + +# 访问模式下的宠物点击处理 +func _on_visit_pet_selected(pet_name: String, pet_data: Dictionary): + # 显示宠物信息面板 + if pet_inform_panel: + pet_inform_panel.show_pet_info(pet_name, pet_data) + pet_inform_panel.show() + +#=========================面板通用处理========================= +# 关闭宠物背包面板 +func _on_quit_button_pressed() -> void: + self.hide() + +# 手动刷新宠物背包面板 +func _on_refresh_button_pressed() -> void: + # 刷新宠物背包UI + update_pet_bag_ui() + Toast.show("宠物背包已刷新", Color.GREEN, 2.0, 1.0) + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + # 面板显示时自动刷新数据 + update_pet_bag_ui() + pass + else: + GlobalVariables.isZoomDisabled = false + pass +#=========================面板通用处理========================= diff --git a/Script/BigPanel/PetBagPanel.gd.uid b/Script/BigPanel/PetBagPanel.gd.uid new file mode 100644 index 0000000..84ba149 --- /dev/null +++ b/Script/BigPanel/PetBagPanel.gd.uid @@ -0,0 +1 @@ +uid://bdhwvqsmakna2 diff --git a/Script/BigPanel/PetStorePanel.gd b/Script/BigPanel/PetStorePanel.gd new file mode 100644 index 0000000..c9b2c58 --- /dev/null +++ b/Script/BigPanel/PetStorePanel.gd @@ -0,0 +1,292 @@ +extends Panel +# 这是宠物商店面板,用来展示各种宠物 + +# 宠物商店格子容器 +@onready var store_grid: GridContainer = $ScrollContainer/Store_Grid +@onready var quit_button: Button = $QuitButton +@onready var refresh_button: Button = $RefreshButton +@onready var scroll_container = $ScrollContainer + +# 预添加常用的面板 +@onready var main_game = get_node("/root/main") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' +@onready var pet_bag_panel: Panel = $'../PetBagPanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' +@onready var batch_buy_popup: PanelContainer = $'../../DiaLog/BatchBuyPopup' + +# 宠物配置数据 +var pet_config: Dictionary = {} + +# 准备函数 +func _ready(): + # 连接关闭按钮信号 + quit_button.pressed.connect(self._on_quit_button_pressed) + refresh_button.pressed.connect(self._on_refresh_button_pressed) + # 连接可见性改变信号 + visibility_changed.connect(_on_visibility_changed) + + # 隐藏面板(初始默认隐藏) + self.hide() + + +# 初始化宠物商店 +func init_pet_store(): + # 从主游戏脚本获取宠物配置数据 + _load_pet_config_from_main() + update_pet_store_ui() + +# 更新宠物商店UI +func update_pet_store_ui(): + if scroll_container: + scroll_container.clip_contents = false + + # 设置GridContainer也不裁剪内容 + if store_grid: + store_grid.clip_contents = false + + # 清空宠物商店格子 + for child in store_grid.get_children(): + child.queue_free() + + print("更新宠物商店UI,宠物种类:", pet_config.size()) + + # 为每个宠物配置创建按钮 + for pet_name in pet_config.keys(): + var pet_info = pet_config[pet_name] + var purchase_info = pet_info.get("购买信息", {}) + var can_buy = purchase_info.get("能否购买", false) + + # 只显示可购买的宠物 + if not can_buy: + continue + + var pet_cost = purchase_info.get("购买价格", 0) + var basic_info = pet_info.get("基本信息", {}) + var pet_desc = basic_info.get("简介", "可爱的宠物伙伴") + + # 检查玩家是否已购买该宠物 + var is_owned = _check_pet_owned(pet_name) + + # 创建宠物按钮 + var button = _create_pet_button(pet_name, pet_cost, pet_desc, is_owned) + + # 更新按钮文本显示价格和状态 + if is_owned: + button.text = str(pet_name + "\n(已购买)") + button.disabled = true + else: + button.text = str(pet_name + "\n价格:" + str(pet_cost) + "元") + # 连接购买点击事件 + button.pressed.connect(func(): _on_store_pet_selected(pet_name, pet_cost, pet_desc)) + + store_grid.add_child(button) + +# 检查玩家是否已拥有某种宠物 +func _check_pet_owned(pet_name: String) -> bool: + if not main_game.pet_bag: + return false + + for pet_data in main_game.pet_bag: + var basic_info = pet_data.get("基本信息", {}) + var pet_type = basic_info.get("宠物类型", "") + if pet_type == pet_name: + return true + return false + +# 创建宠物按钮 +func _create_pet_button(pet_name: String, pet_cost: int, pet_desc: String, is_owned: bool = false) -> Button: + # 使用按钮作为宠物商店按钮的样式 + var button = main_game.item_button.duplicate() + + # 确保按钮可见并可点击 + button.visible = true + button.disabled = false + button.focus_mode = Control.FOCUS_ALL + + # 关闭按钮的内容裁剪,允许图片超出按钮边界 + button.clip_contents = false + + # 设置按钮文本 + button.text = pet_name + + # 添加工具提示 + button.tooltip_text = str( + "宠物: " + pet_name + "\n" + + "价格: " + str(pet_cost) + "元\n" + + "描述: " + pet_desc + "\n" + + "点击购买宠物" + ) + + # 如果按钮有标题标签,设置标题 + if button.has_node("Title"): + if is_owned: + button.get_node("Title").text = "已购买" + button.get_node("Title").modulate = Color.GRAY # 已购买使用灰色 + else: + button.get_node("Title").text = "宠物商店" + button.get_node("Title").modulate = Color.PINK # 宠物商店标题使用粉色 + + # 更新按钮的宠物图片 + _update_button_pet_image(button, pet_name) + + return button + +# 更新按钮的宠物图片 +func _update_button_pet_image(button: Button, pet_name: String): + # 检查按钮是否有CropImage节点 + var pet_image = button.get_node_or_null("CropImage") + if not pet_image: + return + + # 从宠物配置获取场景路径 + var texture = null + if pet_config.has(pet_name): + var pet_info = pet_config[pet_name] + var scene_path = pet_info.get("场景路径", "") + + if scene_path != "" and ResourceLoader.exists(scene_path): + # 加载宠物场景并获取PetImage的纹理 + var pet_scene = load(scene_path) + if pet_scene: + var pet_instance = pet_scene.instantiate() + var pet_image_node = pet_instance.get_node_or_null("PetImage") + if pet_image_node and pet_image_node.sprite_frames: + # 获取默认动画的第一帧 + var default_animation = pet_image_node.sprite_frames.get_animation_names()[0] + var frame_count = pet_image_node.sprite_frames.get_frame_count(default_animation) + if frame_count > 0: + texture = pet_image_node.sprite_frames.get_frame_texture(default_animation, 0) + pet_instance.queue_free() + + + # 设置图片 + if texture: + pet_image.texture = texture + pet_image.visible = true + pet_image.scale = Vector2(10, 10) + # 确保图片居中显示 + pet_image.centered = true + + else: + pet_image.visible = false + +# 从主游戏脚本获取宠物配置数据 +func _load_pet_config_from_main(): + # 从宠物数据文件加载配置 + var file = FileAccess.open("res://Data/pet_data.json", FileAccess.READ) + if file == null: + print("宠物商店:无法打开宠物配置文件") + pet_config = {} + return + + var json = JSON.new() + var json_string = file.get_as_text() + file.close() + + var parse_result = json.parse(json_string) + if parse_result != OK: + print("宠物商店:解析宠物配置文件失败") + pet_config = {} + return + + pet_config = json.data + print("宠物商店:成功加载宠物配置数据,宠物种类:", pet_config.size()) + +# 商店宠物点击处理 - 购买宠物 +func _on_store_pet_selected(pet_name: String, pet_cost: int, pet_desc: String): + # 检查玩家金钱是否足够 + if main_game.money < pet_cost: + Toast.show("金钱不足!需要 " + str(pet_cost) + " 元,当前只有 " + str(main_game.money) + " 元", Color.RED, 3.0, 1.0) + return + + # 显示购买确认对话框(宠物只能购买1只,不需要批量购买) + _show_buy_confirmation_dialog(pet_name, pet_cost, pet_desc) + +# 显示购买确认对话框 +func _show_buy_confirmation_dialog(pet_name: String, pet_cost: int, pet_desc: String): + # 创建确认对话框 + var confirm_dialog = AcceptDialog.new() + confirm_dialog.dialog_text = str( + "确认购买宠物?\n\n" + + "宠物名称: " + pet_name + "\n" + + "购买价格: " + str(pet_cost) + " 元\n" + + "宠物描述: " + pet_desc + "\n\n" + + "当前金钱: " + str(main_game.money) + " 元\n" + + "购买后余额: " + str(main_game.money - pet_cost) + " 元\n\n" + + "注意:每种宠物只能购买一只!" + ) + confirm_dialog.title = "购买宠物确认" + confirm_dialog.ok_button_text = "确认购买" + confirm_dialog.add_cancel_button("取消") + + # 添加到场景 + add_child(confirm_dialog) + + # 连接信号 + confirm_dialog.confirmed.connect(_on_confirm_buy_pet.bind(pet_name, pet_cost, confirm_dialog)) + confirm_dialog.canceled.connect(_on_cancel_buy_pet.bind(confirm_dialog)) + + # 显示对话框 + confirm_dialog.popup_centered() + +# 确认购买宠物 +func _on_confirm_buy_pet(pet_name: String, pet_cost: int, dialog: AcceptDialog): + # 再次检查金钱是否足够 + if main_game.money < pet_cost: + Toast.show("金钱不足!需要 " + str(pet_cost) + " 元,当前只有 " + str(main_game.money) + " 元", Color.RED, 3.0, 1.0) + dialog.queue_free() + return + + # 发送购买请求到服务器 + _send_buy_pet_request(pet_name, pet_cost) + dialog.queue_free() + +# 取消购买宠物 +func _on_cancel_buy_pet(dialog: AcceptDialog): + print("取消购买宠物") + dialog.queue_free() + +# 发送购买宠物请求 +func _send_buy_pet_request(pet_name: String, pet_cost: int): + # 发送购买请求到服务器 + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendBuyPet"): + if tcp_network_manager_panel.sendBuyPet(pet_name, pet_cost): + # 服务器会处理购买逻辑,客户端等待响应 + print("已发送购买宠物请求:", pet_name) + else: + Toast.show("购买请求发送失败", Color.RED, 2.0, 1.0) + else: + Toast.show("网络管理器不可用", Color.RED, 2.0, 1.0) + +#=========================面板通用处理========================= +# 手动刷新宠物商店面板 +func _on_refresh_button_pressed() -> void: + # 重新初始化宠物商店 + init_pet_store() + Toast.show("宠物商店已刷新", Color.GREEN, 2.0, 1.0) + +# 关闭宠物商店面板 +func _on_quit_button_pressed() -> void: + # 打开面板后暂时禁用相机功能 + GlobalVariables.isZoomDisabled = false + self.hide() + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + # 面板显示时自动刷新数据 + update_pet_store_ui() + pass + else: + GlobalVariables.isZoomDisabled = false + pass +#=========================面板通用处理========================= diff --git a/Script/BigPanel/PetStorePanel.gd.uid b/Script/BigPanel/PetStorePanel.gd.uid new file mode 100644 index 0000000..363f09f --- /dev/null +++ b/Script/BigPanel/PetStorePanel.gd.uid @@ -0,0 +1 @@ +uid://dc1pmi1ubd2cf diff --git a/GUI/PlayerBagPanel.gd b/Script/BigPanel/PlayerBagPanel.gd similarity index 92% rename from GUI/PlayerBagPanel.gd rename to Script/BigPanel/PlayerBagPanel.gd index 8d9e206..bd1a640 100644 --- a/GUI/PlayerBagPanel.gd +++ b/Script/BigPanel/PlayerBagPanel.gd @@ -3,6 +3,7 @@ extends Panel # 背包格子容器 @onready var player_bag_grid_container : GridContainer = $ScrollContainer/Bag_Grid @onready var quit_button : Button = $QuitButton +@onready var refresh_button : Button = $RefreshButton #各种排序过滤按钮 @onready var sort_all_button : Button = $SortContainer/Sort_All#全部 @@ -18,11 +19,16 @@ extends Panel #预添加常用的面板 @onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' + # 作物图片缓存(复用主游戏的缓存系统) var crop_textures_cache : Dictionary = {} @@ -46,9 +52,13 @@ func _ready(): # 连接按钮信号 _connect_buttons() + # 连接可见性改变信号 + visibility_changed.connect(_on_visibility_changed) + # 隐藏面板(初始默认隐藏) self.hide() + # 连接所有按钮信号 func _connect_buttons(): # 关闭按钮 @@ -82,7 +92,6 @@ func update_player_bag_ui(): # 清空玩家背包格子 for child in player_bag_grid_container.get_children(): child.queue_free() - #print("更新背包UI,背包中物品数量:", main_game.player_bag.size()) # 应用过滤和排序 var filtered_seeds = _get_filtered_and_sorted_seeds() @@ -336,7 +345,7 @@ func _plant_crop_from_bag(index, crop_name, seed_index): #print("错误:无效的种子索引 ", seed_index) return # 发送种植请求到服务器 - if network_manager and network_manager.sendPlantCrop(index, crop_name): + if tcp_network_manager_panel and tcp_network_manager_panel.sendPlantCrop(index, crop_name): # 关闭背包面板 hide() @@ -345,14 +354,14 @@ func set_planting_mode(plant_type: String, plant_panel): is_planting_mode = true planting_type = plant_type one_click_plant_panel = plant_panel - print("进入种植模式:", plant_type) + Toast.show("进入种植模式:"+plant_type,Color.GREEN) # 退出种植模式 func _exit_planting_mode(): is_planting_mode = false planting_type = "" one_click_plant_panel = null - print("退出种植模式") + Toast.show("退出种植模式",Color.GREEN) # 获取作物的成熟图片(用于背包显示) @@ -368,7 +377,6 @@ func _get_crop_final_texture(crop_name: String) -> Texture2D: if ResourceLoader.exists(mature_texture_path): var texture = load(mature_texture_path) if texture: - print("背包加载作物成熟图片:", crop_name) # 如果主游戏存在,也缓存到主游戏中 if main_game: main_game.crop_mature_textures_cache[crop_name] = texture @@ -421,7 +429,7 @@ func _load_crop_textures(crop_name: String) -> Array: break if textures.size() > 0: - print("背包加载作物 ", crop_name, " 的 ", textures.size(), " 帧图片") + pass else: print("背包:作物 ", crop_name, " 文件夹存在但没有找到有效图片,使用默认图片") textures = _load_default_textures() @@ -487,7 +495,6 @@ func _update_button_crop_image(button: Button, crop_name: String): # CropImage是Sprite2D,直接设置texture属性 crop_image.texture = texture crop_image.visible = true - print("背包更新作物图片:", crop_name) else: crop_image.visible = false print("背包无法获取作物图片:", crop_name) @@ -497,7 +504,7 @@ func _update_button_crop_image(button: Button, crop_name: String): func _on_refresh_button_pressed() -> void: # 刷新种子背包UI update_player_bag_ui() - Toast.show("种子背包已刷新", Color.GREEN, 2.0, 1.0) + Toast.show("种子仓库已刷新", Color.GREEN) # 关闭面板 func _on_quit_button_pressed(): @@ -507,4 +514,15 @@ func _on_quit_button_pressed(): if is_planting_mode: _exit_planting_mode() self.hide() + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + # 面板显示时自动刷新数据 + update_player_bag_ui() + pass + else: + GlobalVariables.isZoomDisabled = false + pass #=========================面板通用处理========================= diff --git a/GUI/PlayerBagPanel.gd.uid b/Script/BigPanel/PlayerBagPanel.gd.uid similarity index 100% rename from GUI/PlayerBagPanel.gd.uid rename to Script/BigPanel/PlayerBagPanel.gd.uid diff --git a/GUI/PlayerRankingPanel.gd b/Script/BigPanel/PlayerRankingPanel.gd similarity index 88% rename from GUI/PlayerRankingPanel.gd rename to Script/BigPanel/PlayerRankingPanel.gd index e7bd6cf..fd20db7 100644 --- a/GUI/PlayerRankingPanel.gd +++ b/Script/BigPanel/PlayerRankingPanel.gd @@ -23,11 +23,17 @@ extends Panel #预添加常用的面板 @onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../ItemStorePanel' +@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel' +@onready var login_panel: PanelContainer = $'../LoginPanel' +@onready var player_bag_panel: Panel = $'../PlayerBagPanel' +@onready var crop_store_panel: Panel = $'../CropStorePanel' +@onready var item_bag_panel: Panel = $'../ItemBagPanel' + # 排序状态管理 var current_sort_by = "level" # 当前排序字段 @@ -37,7 +43,8 @@ var current_search_qq = "" # 当前搜索的QQ号 #下面这是每个玩家要展示的信息,直接获取服务器玩家数据json文件来实现 #模板用于复制创建新的玩家条目 -@onready var player_info_template : VBoxContainer = $Scroll/PlayerList/player_ranking_item +@onready var player_info_template : VBoxContainer = $Scroll/PlayerList/PlayerRankingItem +@onready var player_entry_scene : PackedScene = preload("res://GUI/PlayerRankingItem.tscn") func _ready() -> void: # 隐藏模板 @@ -114,17 +121,17 @@ func _update_button_states(): # 请求玩家排行榜数据 func request_player_rankings(): - if not network_manager: + if not tcp_network_manager_panel: register_player_num.text = "网络管理器不可用" register_player_num.modulate = Color.RED return false - if not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel.is_connected_to_server(): register_player_num.text = "未连接服务器" register_player_num.modulate = Color.RED return false - var success = network_manager.sendGetPlayerRankings(current_sort_by, current_sort_order, filter_online_only, current_search_qq) + var success = tcp_network_manager_panel.sendGetPlayerRankings(current_sort_by, current_sort_order, filter_online_only, current_search_qq) if not success: register_player_num.text = "请求发送失败" register_player_num.modulate = Color.RED @@ -185,8 +192,8 @@ func handle_player_rankings_response(data): # 添加单个玩家条目 func add_player_entry(player_data): - # 复制模板 - var player_entry = player_info_template.duplicate() + # 实例化新的玩家条目场景,避免 duplicate 引发的复制错误 + var player_entry = player_entry_scene.instantiate() player_entry.visible = true player_ranking_list.add_child(player_entry) @@ -240,7 +247,7 @@ func _on_visit_player_pressed(username): # 检查网络连接 - if not network_manager or not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel or not tcp_network_manager_panel.is_connected_to_server(): Toast.show("未连接服务器,无法访问玩家", Color.RED) return @@ -250,8 +257,8 @@ func _on_visit_player_pressed(username): return # 发送访问玩家请求 - if network_manager and network_manager.has_method("sendVisitPlayer"): - var success = network_manager.sendVisitPlayer(username) + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendVisitPlayer"): + var success = tcp_network_manager_panel.sendVisitPlayer(username) if success: Toast.show("正在访问 " + username + " 的农场...", Color.YELLOW) else: @@ -262,7 +269,7 @@ func _on_visit_player_pressed(username): # 刷新按钮点击 func _on_refresh_button_pressed(): # 检查网络连接 - if not network_manager or not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel or not tcp_network_manager_panel.is_connected_to_server(): register_player_num.text = "未连接服务器,无法刷新" register_player_num.modulate = Color.RED Toast.show("未连接服务器,无法刷新排行榜", Color.RED) diff --git a/GUI/PlayerRankingPanel.gd.uid b/Script/BigPanel/PlayerRankingPanel.gd.uid similarity index 100% rename from GUI/PlayerRankingPanel.gd.uid rename to Script/BigPanel/PlayerRankingPanel.gd.uid diff --git a/GUI/AcceptDialog.gd b/Script/Dialog/AcceptDialog.gd similarity index 100% rename from GUI/AcceptDialog.gd rename to Script/Dialog/AcceptDialog.gd diff --git a/GUI/AcceptDialog.gd.uid b/Script/Dialog/AcceptDialog.gd.uid similarity index 100% rename from GUI/AcceptDialog.gd.uid rename to Script/Dialog/AcceptDialog.gd.uid diff --git a/Script/Dialog/BatchBuyPopup.gd b/Script/Dialog/BatchBuyPopup.gd new file mode 100644 index 0000000..4b528a9 --- /dev/null +++ b/Script/Dialog/BatchBuyPopup.gd @@ -0,0 +1,143 @@ +extends PanelContainer +#这是批量购买弹窗 +@onready var title: Label = $VBox/Title #弹窗标题 +@onready var contents: Label = $VBox/Contents #弹窗内容 +@onready var buy_num_edit: LineEdit = $VBox/BuyNumEdit #购买数量 +@onready var sure_button: Button = $VBox/HBox/SureButton #确认购买 +@onready var cancel_button: Button = $VBox/HBox/CancelButton #取消购买 + +# 当前购买的商品信息 +var current_item_name: String = "" +var current_item_cost: int = 0 +var current_item_desc: String = "" +var current_buy_type: String = "" # "seed" 或 "item" + +# 回调函数,用于处理确认购买 +var confirm_callback: Callable +var cancel_callback: Callable + +func _ready(): + # 连接按钮信号 + sure_button.pressed.connect(_on_sure_button_pressed) + cancel_button.pressed.connect(_on_cancel_button_pressed) + + # 设置数量输入框的默认值和限制 + buy_num_edit.text = "1" + buy_num_edit.placeholder_text = "请输入购买数量" + + # 只允许输入数字 + buy_num_edit.text_changed.connect(_on_buy_num_changed) + + # 默认隐藏弹窗 + self.hide() + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + pass + else: + GlobalVariables.isZoomDisabled = false + pass + +# 显示批量购买弹窗 +func show_buy_popup(item_name: String, item_cost: int, item_desc: String, buy_type: String, on_confirm: Callable, on_cancel: Callable = Callable()): + current_item_name = item_name + current_item_cost = item_cost + current_item_desc = item_desc + current_buy_type = buy_type + confirm_callback = on_confirm + cancel_callback = on_cancel + + # 设置弹窗内容 + if buy_type == "seed": + title.text = "批量购买种子" + else: + title.text = "批量购买道具" + + contents.text = str( + "商品名称: " + item_name + "\n" + + "单价: " + str(item_cost) + " 元\n" + + "描述: " + item_desc + "\n\n" + + "请输入购买数量:" + ) + + # 重置购买数量为1 + buy_num_edit.text = "1" + + # 显示弹窗并居中 + self.show() + + +# 处理数量输入变化 +func _on_buy_num_changed(new_text: String): + # 只允许输入数字 + var filtered_text = "" + for char in new_text: + if char.is_valid_int(): + filtered_text += char + + if filtered_text != new_text: + buy_num_edit.text = filtered_text + buy_num_edit.caret_column = filtered_text.length() + + # 更新总价显示 + _update_total_cost() + +# 更新总价显示 +func _update_total_cost(): + var quantity = get_buy_quantity() + var total_cost = quantity * current_item_cost + + var cost_info = "\n总价: " + str(total_cost) + " 元" + + # 更新内容显示 + var base_content = str( + "商品名称: " + current_item_name + "\n" + + "单价: " + str(current_item_cost) + " 元\n" + + "描述: " + current_item_desc + "\n\n" + + "请输入购买数量:" + ) + + contents.text = base_content + cost_info + +# 获取购买数量 +func get_buy_quantity() -> int: + var text = buy_num_edit.text.strip_edges() + if text.is_empty(): + return 1 + + var quantity = text.to_int() + return max(1, quantity) # 至少购买1个 + +# 确认购买按钮处理 +func _on_sure_button_pressed(): + var quantity = get_buy_quantity() + + if quantity <= 0: + _show_error("购买数量必须大于0") + return + + # 调用确认回调函数 + if confirm_callback.is_valid(): + confirm_callback.call(current_item_name, current_item_cost, quantity, current_buy_type) + + # 隐藏弹窗 + self.hide() + +# 取消购买按钮处理 +func _on_cancel_button_pressed(): + # 调用取消回调函数 + if cancel_callback.is_valid(): + cancel_callback.call() + + # 隐藏弹窗 + self.hide() + +# 显示错误信息 +func _show_error(message: String): + # 这里可以显示Toast或者其他错误提示 + if has_node("/root/Toast"): + get_node("/root/Toast").show(message, Color.RED, 2.0, 1.0) + else: + print("批量购买弹窗错误: " + message) diff --git a/Script/Dialog/BatchBuyPopup.gd.uid b/Script/Dialog/BatchBuyPopup.gd.uid new file mode 100644 index 0000000..8643cf0 --- /dev/null +++ b/Script/Dialog/BatchBuyPopup.gd.uid @@ -0,0 +1 @@ +uid://d4fvv2sjngajr diff --git a/Script/Pet/PetBase.gd b/Script/Pet/PetBase.gd new file mode 100644 index 0000000..0ccc703 --- /dev/null +++ b/Script/Pet/PetBase.gd @@ -0,0 +1,1829 @@ +extends CharacterBody2D + +@onready var pet_image: AnimatedSprite2D = $PetImage #这里展示宠物动画 +@onready var pet_tool_image: Sprite2D = $PetImage/PetToolImage #这里展示宠物武器工具 +@onready var pet_name_rich_text: RichTextLabel = $PetInformVBox/PetNameRichText #这里展示主人给宠物命名的名字 +@onready var armor_bar: ProgressBar = $PetInformVBox/ArmorBar #宠物盔甲值进度条 +@onready var armor_label: Label = $PetInformVBox/ArmorBar/ArmorLabel #宠物盔甲值 +@onready var shield_bar: ProgressBar = $PetInformVBox/ShieldBar #宠物护盾值进度条 +@onready var shield_label: Label = $PetInformVBox/ShieldBar/ShieldLabel #宠物护盾值 +@onready var health_bar: ProgressBar = $PetInformVBox/HealthBar #宠物生命值进度条 +@onready var health_label: Label = $PetInformVBox/HealthBar/HealthLabel #宠物生命值 +@onready var volume_collision: CollisionShape2D = $VolumeCollision #宠物碰撞体积 + + +#=====================宠物基本属性===================== +### 一、基础信息 +#- 主人(主人名字) +#- 生日(年月日时分秒) +#- 年龄(从生日开始算 +#- 性格(开朗,内向,活泼,安静,暴躁,温和,调皮,懒惰 +#- 简介 +#- 爱好 +#- 宠物ID(唯一标识,从0000开始) +#- 宠物类型(宠物原本的名字,比如绿史莱姆,红史莱姆,迷你护卫,小绿人) +#- 宠物名称 (主人给宠物命名的名字) +#- 能否购买(true/false) +#- 购买价格(如果可以购买) +#- 出售价格(如果可以出售) + +### 二、生存与防御 +#- 生命值(可恢复,小于等于0则死亡) +#- 护盾值(不可恢复的生命值) +#- 护甲值(折扣伤害) +#- 生命恢复(恢复生命值,多少秒恢复多少生命值,如0.5秒恢复10点生命值) +#- 闪避率(免疫伤害概率) +#- 控制抗性(减免被控时长和概率) +#- 击退抗性(抵消击退力度) +#- 移动速度 + +### 三、攻击与效果 +#- 普通攻击伤害 +#- 普通攻击速度 +#- 暴击率(暴击概率) +#- 暴击伤害 +#- 护甲穿透(忽视敌人护甲) +#- 生命汲取(普攻回血%) +#- 击退(攻击使敌人后退) + +### 四、其他属性 +#- 元素属性(金木水火土,雷) +#- 等级(等级高属性强) +#- 经验值(满额升级) +#- 亲密度(额外加属性) +#- 品质(白/绿/蓝/橙/红/紫) + +#基本攻击方式: +#近战 +#近战攻击伤害 +#近战攻击速度 + +#远程 +#远程攻击伤害 +#远程攻击速度 + +#附录 +#- 护甲公式示例:实际伤害 = 基础伤害 × (1 - 护甲值/(护甲值 + 100)),搭配"护甲穿透"可直接减少目标护甲值 +#- 元素克制:火属性攻击对冰属性敌人造成150%伤害,同时被水属性克制(仅造成80%伤害) +#- 成长曲线:低级宠物升级快,高级宠物经验需求指数增长,避免养成周期过短 + +#特殊机制 +#1.伤害反弹,无视防具穿透伤害, +#2.血量低于某个值进入狂暴模式, +#3.死亡后重生一次, +#4.毅力不倒、不死图腾(受到致命伤害抵挡并维持一滴血) +#5.援助 宠物血量低于某个值时,会自动召唤宠物仆从,宠物仆从会自动攻击敌人,唤数量(一次召唤多少个宠物仆从),唤间隔(多少秒召唤一次) +#=====================宠物基本属性===================== + + +# 宠物基本属性(从JSON配置文件加载) +var pet_owner: String = "树萌芽" # 宠物主人 +var pet_name: String = "宠物名称" # 宠物名称 +var pet_team: String = "team1" # 队伍标识:team1, team2, neutral +var pet_id: String = "0001" # 宠物唯一ID +var pet_type: String = "小绿人" # 宠物类型(原本名字) +var pet_birthday: String = "" # 生日(年月日时分秒) +var pet_age: int = 0 # 年龄(天数) +var pet_personality: String = "活泼" # 性格 +var pet_introduction: String = "" # 简介 +var pet_hobby: String = "" # 爱好 + +var pet_level: int = 1 # 宠物等级 +var pet_experience: float = 0.0 # 当前经验值 +var max_experience: float = 100.0 # 升级所需经验值 +var pet_intimacy: float = 0.0 # 亲密度 +var max_intimacy: float = 1000.0 # 最大亲密度 + +var can_buy: bool = true # 能否购买 +var buy_price: int = 100 # 购买价格 +var sell_price: int = 50 # 出售价格 + +# 生命与防御属性 +var max_health: float = 100.0 # 最大生命值 +var current_health: float = 100.0 # 当前生命值 +var health_regen: float = 1.0 # 生命恢复速度(每秒) +var max_shield: float = 0.0 # 最大护盾值 +var current_shield: float = 0.0 # 当前护盾值 +var shield_regen: float = 0.0 # 护盾恢复速度(每秒)- 默认不恢复 +var max_armor: float = 100.0 # 最大护甲值 +var current_armor: float = 100.0 # 当前护甲值 + +# 攻击属性 +var attack_type: AttackType = AttackType.RANGED # 攻击类型 +var attack_damage: float = 20.0 # 基础攻击伤害 +var attack_range: float = 300.0 # 攻击距离 +var crit_rate: float = 0.1 # 暴击率(0.0-1.0) +var crit_damage: float = 1.5 # 暴击伤害倍数 +var life_steal: float = 0.1 # 生命汲取(0.0-1.0) +var armor_penetration: float = 0.0 # 护甲穿透 + +var melee_damage_bonus: float = 0.0 # 近战额外伤害(在基础伤害上加成) +var melee_attack_speed: float = 1.0 # 近战攻击速度 + +var ranged_damage_bonus: float = 0.0 # 远程额外伤害(在基础伤害上加成) +var ranged_attack_speed: float = 1.0 # 远程攻击速度 +var ranged_mode: RangedAttackMode = RangedAttackMode.SINGLE # 远程攻击模式 +var projectile_speed: float = 300.0 # 子弹速度 + +var shotgun_bullets: int = 5 # 散弹数量 +var shotgun_spread_angle: float = 45.0 # 散弹扩散角度(度) + +var burst_rows: int = 2 # 多发射击行数 +var burst_cols: int = 3 # 多发射击列数 +var burst_spacing: float = 30.0 # 多发射击间距 + +var gatling_bullets: int = 8 # 加特林子弹数量 +var gatling_interval: float = 0.1 # 加特林射击间隔 +var gatling_cooldown: float = 2.0 # 加特林冷却时间 + +var pierce_count: int = 3 # 穿透数量 + +# 远程攻击类型枚举 +enum AttackType { + MELEE, # 近战攻击 + RANGED # 远程攻击 +} + +enum RangedAttackMode { + SINGLE, # 普通单发 + SHOTGUN, # 散弹攻击 + BURST, # 多发射击(平行) + GATLING, # 加特林式连射 + PIERCING # 穿透攻击 +} + +# 内部状态变量(不需要导出) +var attack_speed: float = 1.0 # 当前攻击速度(根据攻击类型动态设置) +var gatling_firing: bool = false # 是否正在加特林射击 +var gatling_current_bullet: int = 0 # 当前加特林子弹计数 +var gatling_last_shot: float = 0.0 # 上次加特林射击时间 + +@export var projectile_scene: PackedScene = preload("res://Scene/Pet/Projectile.tscn") # 子弹场景 + +# 移动与闪避属性 +var move_speed: float = 100.0 # 移动速度 +var dodge_rate: float = 0.05 # 闪避率(0.0-1.0) +var knockback_force: float = 300.0 # 击退力度 +var knockback_resist: float = 0.0 # 击退抗性(0.0-1.0) + +# 元素属性 +enum ElementType { + NONE, # 无属性 + METAL, # 金 + WOOD, # 木 + WATER, # 水 + FIRE, # 火 + EARTH, # 土 + THUNDER # 雷 +} +var element_type: ElementType = ElementType.NONE# 宠物元素属性 +var element_damage_bonus: float = 50.0 # 元素克制额外伤害 + +var control_resist: float = 0.0 # 控制抗性(减少眩晕等控制时间) +var damage_reflect: float = 0.0 # 伤害反弹(0.0-1.0) +var death_immunity: bool = false # 死亡免疫(一次性) +var berserker_threshold: float = 0.3 # 狂暴阈值(血量低于此值时触发狂暴) +var berserker_bonus: float = 1.5 # 狂暴状态伤害倍数 + +# 特殊机制开关(布尔值控制是否启用各种特殊机制) +var enable_damage_reflect: bool = false # 启用伤害反弹机制 +var enable_berserker_mode: bool = false # 启用狂暴模式机制 +var enable_death_immunity: bool = false # 启用死亡免疫机制 +var enable_aid_system: bool = false # 启用援助召唤机制 +var enable_resurrection: bool = false # 启用死亡重生机制 +var resurrection_used: bool = false # 重生是否已使用 + +# 援助系统属性 +var aid_threshold: float = 0.2 # 援助触发阈值(血量低于此值时召唤援助) +var aid_summon_count: int = 2 # 一次召唤的援助数量 +var aid_summon_interval: float = 5.0 # 援助召唤间隔(秒) +var aid_last_summon_time: float = 0.0 # 上次召唤援助的时间 +var aid_summoned: bool = false # 是否已经召唤过援助(防止重复召唤) +var aid_minions: Array[CharacterBody2D] = [] # 召唤的援助宠物列表 + +# 品质系统 +enum PetQuality { + COMMON, # 普通(白) + UNCOMMON, # 不凡(绿) + RARE, # 稀有(蓝) + EPIC, # 史诗(紫) + LEGENDARY, # 传说(橙) + MYTHIC # 神话(红) +} +var pet_quality: PetQuality = PetQuality.COMMON # 宠物品质 + +# 战斗状态 +var is_alive: bool = true # 是否存活 +var is_dying: bool = false # 是否正在死亡过程中(防止重复调用die()) +var is_attacking: bool = false # 是否正在攻击 +var is_berserker: bool = false # 是否处于狂暴状态 +var is_stunned: bool = false # 是否被眩晕 +var is_invulnerable: bool = false # 是否无敌 +var is_being_knocked_back: bool = false # 是否正在被击退 +var current_target: CharacterBody2D = null # 当前目标 +var last_attacker: CharacterBody2D = null # 最后攻击者(用于击杀奖励) +var last_attack_time: float = 0.0 # 上次攻击时间 +var last_regen_time: float = 0.0 # 上次恢复时间 +var last_target_check_time: float = 0.0 # 上次目标检查时间 +var knockback_velocity: Vector2 = Vector2.ZERO # 击退速度 + +# 巡逻状态 +var is_patrolling: bool = false # 是否正在巡逻 +var patrol_path: PackedVector2Array = [] # 巡逻路径点 +var patrol_speed: float = 80.0 # 巡逻移动速度 +var current_patrol_index: int = 0 # 当前巡逻目标点索引 +var patrol_wait_time: float = 0.0 # 在巡逻点等待的时间 +var patrol_max_wait_time: float = 1.0 # 在巡逻点的最大等待时间 + +# 战斗控制 +var combat_enabled: bool = true # 是否启用战斗行为 + +# AI状态 +enum PetState { + IDLE, #站立空闲 + MOVING_TO_TARGET, #移动到目标 + ATTACKING, #攻击 + PATROLLING, #巡逻 + DEAD #死亡 +} +var current_state: PetState = PetState.IDLE # 当前状态 + +# 队伍节点引用 +var team_nodes: Dictionary = {} + +# 从JSON配置文件加载宠物配置(强制要求) +func load_pet_config_from_json(): + var file = FileAccess.open("res://Data/pet_data.json", FileAccess.READ) + if not file: + set_basic_default_values() + return + + var json_string = file.get_as_text() + file.close() + + var json = JSON.new() + var parse_result = json.parse(json_string) + if parse_result != OK: + set_basic_default_values() + return + + var pet_configs = json.data + var pet_name_key = get_pet_name_key() + + if not pet_configs.has(pet_name_key): + set_basic_default_values() + return + + var config = pet_configs[pet_name_key] + apply_json_config(config) + +# 设置基本默认值(当JSON加载失败时使用) +func set_basic_default_values(): + # 基本信息 + pet_owner = "未知主人" + pet_name = "未配置宠物" + pet_team = "team1" + pet_id = "0000" + pet_type = "未知类型" + pet_birthday = "" + pet_age = 0 + pet_personality = "活泼" + pet_introduction = "" + pet_hobby = "" + + # 等级经验 + pet_level = 1 + pet_experience = 0.0 + max_experience = 100.0 + pet_intimacy = 0.0 + max_intimacy = 1000.0 + + # 购买信息 + can_buy = true + buy_price = 100 + sell_price = 50 + + # 生命与防御 + max_health = 100.0 + current_health = 100.0 + health_regen = 1.0 + max_shield = 0.0 + current_shield = 0.0 + shield_regen = 0.0 + max_armor = 100.0 + current_armor = 100.0 + + # 基础攻击属性 + attack_type = AttackType.RANGED + attack_damage = 20.0 + attack_range = 300.0 + crit_rate = 0.1 + crit_damage = 1.5 + life_steal = 0.1 + armor_penetration = 0.0 + + # 近战攻击 + melee_damage_bonus = 0.0 + melee_attack_speed = 1.0 + + # 远程攻击 + ranged_damage_bonus = 0.0 + ranged_attack_speed = 1.0 + ranged_mode = RangedAttackMode.SINGLE + projectile_speed = 300.0 + + # 散弹攻击 + shotgun_bullets = 5 + shotgun_spread_angle = 45.0 + + # 多发射击 + burst_rows = 2 + burst_cols = 3 + burst_spacing = 30.0 + + # 加特林属性 + gatling_bullets = 8 + gatling_interval = 0.1 + gatling_cooldown = 2.0 + + # 穿透属性 + pierce_count = 3 + + # 移动与闪避 + move_speed = 100.0 + dodge_rate = 0.05 + knockback_force = 300.0 + knockback_resist = 0.0 + + # 元素属性 + element_type = ElementType.NONE + element_damage_bonus = 50.0 + + # 特殊属性 + control_resist = 0.0 + damage_reflect = 0.0 + death_immunity = false + berserker_threshold = 0.3 + berserker_bonus = 1.5 + + # 特殊机制开关 + enable_damage_reflect = false + enable_berserker_mode = false + enable_death_immunity = false + enable_aid_system = false + enable_resurrection = false + + # 援助系统 + aid_threshold = 0.2 + aid_summon_count = 2 + aid_summon_interval = 5.0 + + # 品质系统 + pet_quality = PetQuality.COMMON + +# 获取宠物名称键(用于JSON配置查找) +func get_pet_name_key() -> String: + # 直接返回宠物类型作为JSON键 + # 现在pet_type已经是正确的JSON键名了 + return pet_type + +# 应用JSON配置到宠物属性 +func apply_json_config(config: Dictionary): + # 基本信息 + if config.has("基本信息"): + var basic_info = config["基本信息"] + if basic_info.has("宠物主人"): + pet_owner = basic_info["宠物主人"] + if basic_info.has("宠物名称"): + pet_name = basic_info["宠物名称"] + if basic_info.has("队伍标识"): + pet_team = basic_info["队伍标识"] + if basic_info.has("宠物ID"): + pet_id = basic_info["宠物ID"] + if basic_info.has("宠物类型"): + pet_type = basic_info["宠物类型"] + if basic_info.has("生日"): + pet_birthday = basic_info["生日"] + if basic_info.has("年龄"): + pet_age = basic_info["年龄"] + if basic_info.has("性格"): + pet_personality = basic_info["性格"] + if basic_info.has("简介"): + pet_introduction = basic_info["简介"] + if basic_info.has("爱好"): + pet_hobby = basic_info["爱好"] + + # 等级经验 + if config.has("等级经验"): + var level_exp = config["等级经验"] + if level_exp.has("宠物等级"): + pet_level = level_exp["宠物等级"] + if level_exp.has("当前经验"): + pet_experience = level_exp["当前经验"] + if level_exp.has("最大经验"): + max_experience = level_exp["最大经验"] + if level_exp.has("亲密度"): + pet_intimacy = level_exp["亲密度"] + if level_exp.has("最大亲密度"): + max_intimacy = level_exp["最大亲密度"] + + # 购买信息 + if config.has("购买信息"): + var buy_info = config["购买信息"] + if buy_info.has("能否购买"): + can_buy = buy_info["能否购买"] + if buy_info.has("购买价格"): + buy_price = buy_info["购买价格"] + if buy_info.has("出售价格"): + sell_price = buy_info["出售价格"] + + # 生命与防御 + if config.has("生命与防御"): + var health_defense = config["生命与防御"] + if health_defense.has("最大生命值"): + max_health = health_defense["最大生命值"] + if health_defense.has("当前生命值"): + current_health = health_defense["当前生命值"] + if health_defense.has("生命恢复速度"): + health_regen = health_defense["生命恢复速度"] + if health_defense.has("最大护盾值"): + max_shield = health_defense["最大护盾值"] + if health_defense.has("当前护盾值"): + current_shield = health_defense["当前护盾值"] + if health_defense.has("护盾恢复速度"): + shield_regen = health_defense["护盾恢复速度"] + if health_defense.has("最大护甲值"): + max_armor = health_defense["最大护甲值"] + if health_defense.has("当前护甲值"): + current_armor = health_defense["当前护甲值"] + + # 基础攻击属性 + if config.has("基础攻击属性"): + var attack_attr = config["基础攻击属性"] + if attack_attr.has("攻击类型"): + var attack_type_str = attack_attr["攻击类型"] + if attack_type_str == "MELEE": + attack_type = AttackType.MELEE + elif attack_type_str == "RANGED": + attack_type = AttackType.RANGED + if attack_attr.has("基础攻击伤害"): + attack_damage = attack_attr["基础攻击伤害"] + if attack_attr.has("攻击距离"): + attack_range = attack_attr["攻击距离"] + if attack_attr.has("暴击率"): + crit_rate = attack_attr["暴击率"] + if attack_attr.has("暴击伤害倍数"): + crit_damage = attack_attr["暴击伤害倍数"] + if attack_attr.has("生命汲取"): + life_steal = attack_attr["生命汲取"] + if attack_attr.has("护甲穿透"): + armor_penetration = attack_attr["护甲穿透"] + + # 近战攻击 + if config.has("近战攻击"): + var melee_attack = config["近战攻击"] + if melee_attack.has("近战额外伤害"): + melee_damage_bonus = melee_attack["近战额外伤害"] + if melee_attack.has("近战攻击速度"): + melee_attack_speed = melee_attack["近战攻击速度"] + + # 远程攻击 + if config.has("远程攻击"): + var ranged_attack = config["远程攻击"] + if ranged_attack.has("远程额外伤害"): + ranged_damage_bonus = ranged_attack["远程额外伤害"] + if ranged_attack.has("远程攻击速度"): + ranged_attack_speed = ranged_attack["远程攻击速度"] + if ranged_attack.has("远程攻击模式"): + var ranged_mode_str = ranged_attack["远程攻击模式"] + match ranged_mode_str: + "SINGLE": + ranged_mode = RangedAttackMode.SINGLE + "SHOTGUN": + ranged_mode = RangedAttackMode.SHOTGUN + "BURST": + ranged_mode = RangedAttackMode.BURST + "GATLING": + ranged_mode = RangedAttackMode.GATLING + "PIERCING": + ranged_mode = RangedAttackMode.PIERCING + if ranged_attack.has("子弹速度"): + projectile_speed = ranged_attack["子弹速度"] + + # 散弹攻击 + if config.has("散弹攻击"): + var shotgun_attack = config["散弹攻击"] + if shotgun_attack.has("散弹数量"): + shotgun_bullets = shotgun_attack["散弹数量"] + if shotgun_attack.has("散弹扩散角度"): + shotgun_spread_angle = shotgun_attack["散弹扩散角度"] + + # 多发射击 + if config.has("多发射击"): + var burst_attack = config["多发射击"] + if burst_attack.has("多发射击行数"): + burst_rows = burst_attack["多发射击行数"] + if burst_attack.has("多发射击列数"): + burst_cols = burst_attack["多发射击列数"] + if burst_attack.has("多发射击间距"): + burst_spacing = burst_attack["多发射击间距"] + + # 加特林属性 + if config.has("加特林属性"): + var gatling_attr = config["加特林属性"] + if gatling_attr.has("加特林子弹数量"): + gatling_bullets = gatling_attr["加特林子弹数量"] + if gatling_attr.has("加特林射击间隔"): + gatling_interval = gatling_attr["加特林射击间隔"] + if gatling_attr.has("加特林冷却时间"): + gatling_cooldown = gatling_attr["加特林冷却时间"] + + # 穿透属性 + if config.has("穿透属性"): + var pierce_attr = config["穿透属性"] + if pierce_attr.has("穿透数量"): + pierce_count = pierce_attr["穿透数量"] + + # 移动与闪避 + if config.has("移动与闪避"): + var move_dodge = config["移动与闪避"] + if move_dodge.has("移动速度"): + move_speed = move_dodge["移动速度"] + if move_dodge.has("闪避率"): + dodge_rate = move_dodge["闪避率"] + if move_dodge.has("击退力度"): + knockback_force = move_dodge["击退力度"] + if move_dodge.has("击退抗性"): + knockback_resist = move_dodge["击退抗性"] + + # 元素属性 + if config.has("元素属性"): + var element_attr = config["元素属性"] + if element_attr.has("元素类型"): + var element_type_str = element_attr["元素类型"] + match element_type_str: + "NONE": + element_type = ElementType.NONE + "METAL": + element_type = ElementType.METAL + "WOOD": + element_type = ElementType.WOOD + "WATER": + element_type = ElementType.WATER + "FIRE": + element_type = ElementType.FIRE + "EARTH": + element_type = ElementType.EARTH + "THUNDER": + element_type = ElementType.THUNDER + if element_attr.has("元素克制额外伤害"): + element_damage_bonus = element_attr["元素克制额外伤害"] + + # 特殊属性 + if config.has("特殊属性"): + var special_attr = config["特殊属性"] + if special_attr.has("控制抗性"): + control_resist = special_attr["控制抗性"] + if special_attr.has("伤害反弹"): + damage_reflect = special_attr["伤害反弹"] + if special_attr.has("死亡免疫"): + death_immunity = special_attr["死亡免疫"] + if special_attr.has("狂暴阈值"): + berserker_threshold = special_attr["狂暴阈值"] + if special_attr.has("狂暴状态伤害倍数"): + berserker_bonus = special_attr["狂暴状态伤害倍数"] + + # 特殊机制开关 + if config.has("特殊机制开关"): + var special_toggle = config["特殊机制开关"] + if special_toggle.has("启用伤害反弹机制"): + enable_damage_reflect = special_toggle["启用伤害反弹机制"] + if special_toggle.has("启用狂暴模式机制"): + enable_berserker_mode = special_toggle["启用狂暴模式机制"] + if special_toggle.has("启用死亡免疫机制"): + enable_death_immunity = special_toggle["启用死亡免疫机制"] + if special_toggle.has("启用援助召唤机制"): + enable_aid_system = special_toggle["启用援助召唤机制"] + if special_toggle.has("启用死亡重生机制"): + enable_resurrection = special_toggle["启用死亡重生机制"] + + # 援助系统 + if config.has("援助系统"): + var aid_system = config["援助系统"] + if aid_system.has("援助触发阈值"): + aid_threshold = aid_system["援助触发阈值"] + if aid_system.has("援助召唤数量"): + aid_summon_count = aid_system["援助召唤数量"] + if aid_system.has("援助召唤间隔"): + aid_summon_interval = aid_system["援助召唤间隔"] + + # 品质系统 + if config.has("品质系统"): + var quality_system = config["品质系统"] + if quality_system.has("宠物品质"): + var quality_str = quality_system["宠物品质"] + match quality_str: + "COMMON": + pet_quality = PetQuality.COMMON + "UNCOMMON": + pet_quality = PetQuality.UNCOMMON + "RARE": + pet_quality = PetQuality.RARE + "EPIC": + pet_quality = PetQuality.EPIC + "LEGENDARY": + pet_quality = PetQuality.LEGENDARY + "MYTHIC": + pet_quality = PetQuality.MYTHIC + + + +func _ready(): + # 初始化生日 + initialize_birthday() + + # 延迟初始化UI显示,确保所有节点都已准备好 + call_deferred("update_ui") + + # 设置初始动画为空闲状态 + if pet_image: + pet_image.animation = "idle" + + # 获取队伍节点引用 + call_deferred("setup_team_references") + + # 延迟设置碰撞层,确保队伍信息已设置 + call_deferred("setup_collision_layers") + +# 设置宠物类型并加载对应配置 +func set_pet_type_and_load_config(pet_type_name: String): + pet_type = pet_type_name + load_pet_config_from_json() + +# 设置队伍节点引用 +func setup_team_references(): + var battle_panel = get_parent() + while battle_panel and not battle_panel.has_method("get_team_node"): + battle_panel = battle_panel.get_parent() + + if battle_panel: + team_nodes["team1"] = battle_panel.get_node_or_null("team1") + team_nodes["team2"] = battle_panel.get_node_or_null("team2") + team_nodes["neutral"] = battle_panel.get_node_or_null("neutral") + +# 设置碰撞层,让队友之间不碰撞 +func setup_collision_layers(): + # 简化的碰撞层设计: + # 第1位(值1):team1宠物 + # 第2位(值2):team2宠物 + # 第3位(值4):中立宠物 + + match pet_team: + "team1": + collision_layer = 1 # 第1位 + collision_mask = 2 # 只检测team2 + "team2": + collision_layer = 2 # 第2位 + collision_mask = 1 # 只检测team1 + "neutral": + collision_layer = 4 # 第3位 + collision_mask = 3 # 检测team1和team2 + _: + # 默认设置为team1 + collision_layer = 1 + collision_mask = 2 + +#限制宠物在战斗区域内 +func clamp_to_battle_area(): + var battle_area_min = Vector2(0,0) + var battle_area_max = Vector2(1400, 720) + + # 限制位置 + global_position.x = clamp(global_position.x, battle_area_min.x, battle_area_max.x) + global_position.y = clamp(global_position.y, battle_area_min.y, battle_area_max.y) + +#宠物物理更新 +func _physics_process(delta): + if not is_alive or is_dying: + return + + # 巡逻宠物特殊处理 + if is_patrolling: + handle_patrol(delta) + return + + # 处理生命和护盾恢复 + handle_regeneration(delta) + + # 更新年龄和亲密度 + update_age_and_intimacy(delta) + + # 检查狂暴状态 + check_berserker_mode() + + # 检查援助系统 + check_aid_system() + + # 如果被眩晕则不能行动 + if is_stunned: + return + + # 定期检查目标状态(每0.5秒检查一次) + var current_time = Time.get_ticks_msec() / 1000.0 + if current_time - last_target_check_time >= 0.5: + check_target_validity() + last_target_check_time = current_time + + # 更新AI状态机 + update_ai_state(delta) + + # 处理移动 + handle_movement(delta) + + # 处理攻击 + handle_attack(delta) + + # 应用移动 + move_and_slide() + + # 限制在战斗区域内 + clamp_to_battle_area() + +#宠物AI状态机 +func update_ai_state(delta): + match current_state: + PetState.IDLE: + # 播放空闲动画 + if pet_image.animation != "idle": + pet_image.animation = "idle" + + # 只有启用战斗时才寻找敌人 + if combat_enabled: + find_nearest_enemy() + if current_target and is_instance_valid(current_target): + current_state = PetState.MOVING_TO_TARGET + + PetState.MOVING_TO_TARGET: + # 播放行走动画 + if pet_image.animation != "walk": + pet_image.animation = "walk" + + if not current_target or not is_instance_valid(current_target): + current_state = PetState.IDLE + else: + var distance_to_target = global_position.distance_to(current_target.global_position) + if distance_to_target <= attack_range: + # 进入攻击范围开始攻击 + current_state = PetState.ATTACKING + + PetState.ATTACKING: + # 攻击时播放空闲动画(或者你可以添加攻击动画) + if pet_image.animation != "idle": + pet_image.animation = "idle" + + if not current_target or not is_instance_valid(current_target): + current_state = PetState.IDLE + else: + var distance_to_target = global_position.distance_to(current_target.global_position) + if distance_to_target > attack_range * 1.2: + # 目标超出射程,继续追击 + current_state = PetState.MOVING_TO_TARGET + +#宠物移动 +func handle_movement(delta): + # 处理击退效果 + if is_being_knocked_back: + velocity = knockback_velocity + # 击退衰减 + knockback_velocity = knockback_velocity.lerp(Vector2.ZERO, 5.0 * delta) + if knockback_velocity.length() < 10.0: + is_being_knocked_back = false + knockback_velocity = Vector2.ZERO + elif current_state == PetState.MOVING_TO_TARGET and current_target: + var distance_to_target = global_position.distance_to(current_target.global_position) + var direction = (current_target.global_position - global_position).normalized() + + # 根据攻击类型调整移动策略 + if attack_type == AttackType.MELEE: + # 近战:直接冲向目标 + velocity = direction * move_speed + else: + # 远程:保持适当距离 + var optimal_distance = attack_range * 0.8 # 保持在80%射程距离 + if distance_to_target > optimal_distance: + # 太远了,靠近一点 + velocity = direction * move_speed + elif distance_to_target < optimal_distance * 0.6: + # 太近了,后退一点 + velocity = -direction * move_speed * 0.5 + else: + # 距离合适,停止移动 + velocity = Vector2.ZERO + + # 翻转精灵朝向 + if direction.x < 0: + pet_image.flip_h = false + pet_tool_image.flip_h = true + pet_tool_image.position.x = -10 + elif direction.x > 0: + pet_image.flip_h = true + pet_tool_image.flip_h = false + pet_tool_image.position.x = 10 + else: + velocity = Vector2.ZERO + +#宠物攻击 +func handle_attack(delta): + if current_state == PetState.ATTACKING and current_target: + var current_time = Time.get_ticks_msec() / 1000.0 # 转换为秒 + + # 处理加特林连射 + if ranged_mode == RangedAttackMode.GATLING: + handle_gatling_attack(current_time, delta) + else: + # 普通攻击频率控制 + if current_time - last_attack_time >= 1.0 / attack_speed: + perform_attack(current_target) + last_attack_time = current_time + +# 处理加特林攻击 +func handle_gatling_attack(current_time: float, delta: float): + if gatling_firing: + # 正在连射 + if current_time - gatling_last_shot >= gatling_interval: + fire_projectile_by_mode(current_target) + gatling_current_bullet += 1 + gatling_last_shot = current_time + + if gatling_current_bullet >= gatling_bullets: + # 连射完毕,进入冷却 + gatling_firing = false + gatling_current_bullet = 0 + last_attack_time = current_time + gatling_cooldown + print(pet_name + " 加特林连射完毕,进入冷却") + else: + # 检查是否可以开始新的连射 + if current_time - last_attack_time >= 1.0 / attack_speed: + gatling_firing = true + gatling_current_bullet = 0 + gatling_last_shot = current_time - gatling_interval # 立即开始第一发 + print(pet_name + " 开始加特林连射!") + +#寻找最近的敌人 +func find_nearest_enemy(): + var nearest_enemy: CharacterBody2D = null + var nearest_distance: float = INF + + # 获取所有存活的敌方宠物 + var all_enemies: Array[CharacterBody2D] = [] + + # 直接从pets组中查找敌人(更可靠的方法) + var all_pets = get_tree().get_nodes_in_group("pets") + for pet in all_pets: + if not is_instance_valid(pet) or pet == self or not pet.is_alive: + continue + + # 检查是否为敌人 + if pet.has_method("get_team") and pet.get_team() != pet_team: + all_enemies.append(pet) + + # 如果没有敌人,清除目标 + if all_enemies.is_empty(): + if current_target: + current_target = null + return + + # 寻找最近的敌人 + for enemy in all_enemies: + var distance = global_position.distance_to(enemy.global_position) + if distance < nearest_distance: + nearest_distance = distance + nearest_enemy = enemy + + # 更新目标(只有在没有目标或目标已死亡时才更换) + if not current_target or not is_instance_valid(current_target) or not current_target.is_alive: + if nearest_enemy != current_target: + current_target = nearest_enemy + +# 检查目标有效性 +func check_target_validity(): + if current_target: + # 检查目标是否还存活且有效 + if not is_instance_valid(current_target) or not current_target.is_alive: + current_target = null + current_state = PetState.IDLE + # 检查目标是否还是敌人(防止队伍变更等情况) + elif current_target.get_team() == pet_team: + current_target = null + current_state = PetState.IDLE + +#宠物攻击 +func perform_attack(target: CharacterBody2D): + if not target or not is_instance_valid(target) or not target.is_alive: + # 目标无效或已死亡,重新寻找目标 + current_target = null + current_state = PetState.IDLE + return + + # 根据攻击类型执行不同的攻击方式 + if attack_type == AttackType.MELEE: + perform_melee_attack(target) + else: + fire_projectile_by_mode(target) + +# 执行近战攻击 +func perform_melee_attack(target: CharacterBody2D): + # 计算基础伤害 + 近战额外伤害 + var damage = attack_damage + melee_damage_bonus + + # 狂暴状态加成 + if is_berserker: + damage *= berserker_bonus + + # 护甲穿透计算 + var final_armor_penetration = armor_penetration + + # 暴击计算 + var is_critical = randf() < crit_rate + if is_critical: + damage *= crit_damage + + # 添加战斗细节 + add_battle_detail_to_panel("⚔️ " + pet_name + " 对 " + target.pet_name + " 造成近战攻击 " + str(int(damage)) + " 点伤害" + ("(暴击)" if is_critical else "")) + + # 对目标造成伤害 + target.take_damage(damage, final_armor_penetration, element_type, self) + + # 生命汲取 + if life_steal > 0: + var heal_amount = damage * life_steal + heal(heal_amount) + + # 击退效果 + if knockback_force > 0: + apply_knockback_to_target(target) + +# 根据攻击模式发射子弹 +func fire_projectile_by_mode(target: CharacterBody2D): + # 计算基础伤害 + 远程额外伤害 + var damage = attack_damage + ranged_damage_bonus + + # 狂暴状态加成 + if is_berserker: + damage *= berserker_bonus + + # 护甲穿透计算 + var final_armor_penetration = armor_penetration + + # 暴击计算 + var is_critical = randf() < crit_rate + if is_critical: + damage *= crit_damage + + # 根据远程攻击模式执行不同的射击方式 + match ranged_mode: + RangedAttackMode.SINGLE: + fire_single_projectile(target, damage, final_armor_penetration, is_critical) + RangedAttackMode.SHOTGUN: + fire_shotgun_projectiles(target, damage, final_armor_penetration, is_critical) + RangedAttackMode.BURST: + fire_burst_projectiles(target, damage, final_armor_penetration, is_critical) + RangedAttackMode.GATLING: + fire_single_projectile(target, damage, final_armor_penetration, is_critical) # 加特林也是单发,但频率高 + RangedAttackMode.PIERCING: + fire_piercing_projectile(target, damage, final_armor_penetration, is_critical) + +# 发射单发子弹 +func fire_single_projectile(target: CharacterBody2D, damage: float, armor_pen: float, is_critical: bool): + add_battle_detail_to_panel("🏹 " + pet_name + " 向 " + target.pet_name + " 发射单发子弹 " + str(int(damage)) + " 点伤害" + ("(暴击)" if is_critical else "")) + create_and_fire_projectile(global_position, target.global_position, damage, armor_pen, is_critical, 1) + +# 发射散弹 +func fire_shotgun_projectiles(target: CharacterBody2D, damage: float, armor_pen: float, is_critical: bool): + var base_direction = (target.global_position - global_position).normalized() + var base_angle = atan2(base_direction.y, base_direction.x) + + # 计算每发子弹的角度偏移 + var angle_step = deg_to_rad(shotgun_spread_angle) / (shotgun_bullets - 1) + var start_angle = base_angle - deg_to_rad(shotgun_spread_angle) / 2 + + for i in range(shotgun_bullets): + var bullet_angle = start_angle + i * angle_step + var bullet_direction = Vector2(cos(bullet_angle), sin(bullet_angle)) + var target_pos = global_position + bullet_direction * attack_range + + create_and_fire_projectile(global_position, target_pos, damage * 0.7, armor_pen, is_critical, 1) # 散弹伤害降低 + +# 发射多发射击(平行) +func fire_burst_projectiles(target: CharacterBody2D, damage: float, armor_pen: float, is_critical: bool): + var base_direction = (target.global_position - global_position).normalized() + var perpendicular = Vector2(-base_direction.y, base_direction.x) # 垂直方向 + + # 计算起始位置偏移 + var total_width = (burst_cols - 1) * burst_spacing + var total_height = (burst_rows - 1) * burst_spacing + + for row in range(burst_rows): + for col in range(burst_cols): + var offset_x = (col - (burst_cols - 1) * 0.5) * burst_spacing + var offset_y = (row - (burst_rows - 1) * 0.5) * burst_spacing + + var start_pos = global_position + perpendicular * offset_x + base_direction.rotated(PI/2) * offset_y + var target_pos = target.global_position + perpendicular * offset_x + base_direction.rotated(PI/2) * offset_y + + create_and_fire_projectile(start_pos, target_pos, damage * 0.8, armor_pen, is_critical, 1) # 多发伤害稍微降低 + +# 发射穿透子弹 +func fire_piercing_projectile(target: CharacterBody2D, damage: float, armor_pen: float, is_critical: bool): + create_and_fire_projectile(global_position, target.global_position, damage * 1.2, armor_pen, is_critical, pierce_count) # 穿透子弹伤害更高 + +# 创建并发射子弹的通用函数 +func create_and_fire_projectile(start_pos: Vector2, target_pos: Vector2, damage: float, armor_pen: float, is_critical: bool, pierce: int = 1): + # 直接创建新子弹 + if not projectile_scene: + print("错误:没有设置子弹场景!") + return + + var projectile: Area2D = projectile_scene.instantiate() + if not projectile: + print("错误:无法创建子弹实例") + return + + # 将子弹添加到战斗场景中 + if get_tree(): + var battle_scene = get_tree().current_scene + if battle_scene.has_node("PetFightPanel"): + battle_scene.get_node("PetFightPanel").add_child(projectile) + else: + get_tree().current_scene.add_child(projectile) + else: + # 如果场景树不存在,直接销毁子弹 + projectile.queue_free() + return + + # 设置子弹位置 + projectile.global_position = start_pos + + # 计算射击方向 + var direction = (target_pos - start_pos).normalized() + + # 设置子弹数据 + projectile.set_projectile_data(damage, projectile_speed, direction, pet_team, element_type, armor_pen, pierce, self) + + # 设置子弹颜色 + if projectile.has_node("ProjectileSprite"): + if is_critical: + projectile.get_node("ProjectileSprite").modulate = Color.RED # 暴击红色 + elif pierce > 1: + projectile.get_node("ProjectileSprite").modulate = Color.PURPLE # 穿透紫色 + else: + # 根据攻击模式设置不同颜色 + match ranged_mode: + RangedAttackMode.SINGLE: + projectile.get_node("ProjectileSprite").modulate = Color.YELLOW + RangedAttackMode.SHOTGUN: + projectile.get_node("ProjectileSprite").modulate = Color.ORANGE + RangedAttackMode.BURST: + projectile.get_node("ProjectileSprite").modulate = Color.CYAN + RangedAttackMode.GATLING: + projectile.get_node("ProjectileSprite").modulate = Color.GREEN + RangedAttackMode.PIERCING: + projectile.get_node("ProjectileSprite").modulate = Color.PURPLE + +#宠物受到伤害 +func take_damage(damage: float, armor_pen: float = 0.0, attacker_element: ElementType = ElementType.NONE, attacker: CharacterBody2D = null): + if not is_alive or is_invulnerable: + return + + # 闪避检测 + if randf() < dodge_rate: + if attacker and is_instance_valid(attacker): + add_battle_detail_to_panel("✨ " + pet_name + " 闪避了 " + attacker.pet_name + " 的攻击!", Color.CYAN) + return + + var actual_damage = damage + + # 元素克制计算 - 额外伤害 + var element_extra_damage = get_element_multiplier(attacker_element, element_type) + actual_damage += element_extra_damage + + # 护甲减伤计算(考虑护甲穿透) + var effective_armor = max(0, current_armor - armor_pen) + if effective_armor > 0: + var armor_reduction = effective_armor / (effective_armor + 100.0) + actual_damage = actual_damage * (1.0 - armor_reduction) + + # 先扣护盾 + if current_shield > 0: + var shield_damage = min(actual_damage, current_shield) + current_shield -= shield_damage + actual_damage -= shield_damage + + # 再扣血量 + if actual_damage > 0: + current_health -= actual_damage + + # 添加受伤细节 + if attacker and is_instance_valid(attacker): + var damage_text = "💔 " + pet_name + " 受到 " + str(int(actual_damage)) + " 点伤害" + if element_extra_damage > 0: + damage_text += " (元素克制 +" + str(int(element_extra_damage)) + ")" + add_battle_detail_to_panel(damage_text, Color.ORANGE) + + # 记录最后攻击者 + if attacker and is_instance_valid(attacker): + last_attacker = attacker + + # 反击机制:立即将攻击者设为目标(只有启用战斗时才反击) + if combat_enabled and attacker and is_instance_valid(attacker) and attacker.is_alive: + if attacker.get_team() != pet_team: # 确保不攻击队友 + current_target = attacker + current_state = PetState.MOVING_TO_TARGET + + # 伤害反弹 + if enable_damage_reflect and damage_reflect > 0.0 and attacker and is_instance_valid(attacker): + var reflect_damage = damage * damage_reflect + attacker.take_damage(reflect_damage, 0.0, element_type, self) # 反弹伤害也会触发反击 + + # 检查死亡 + if current_health <= 0: + if enable_death_immunity and death_immunity: + current_health = 1.0 + death_immunity = false + is_invulnerable = true + # 设置短暂无敌时间 + if get_tree(): + var timer = get_tree().create_timer(2.0) + timer.timeout.connect(func(): is_invulnerable = false) + else: + if not is_dying: # 防止重复调用die() + call_deferred("die") + + # 更新UI + call_deferred("update_ui") + +#宠物死亡 +func die(): + if is_dying: # 如果已经在死亡过程中,直接返回 + return + + # 检查重生机制 + if enable_resurrection and not resurrection_used: + resurrection_used = true + add_battle_detail_to_panel("💀 " + pet_name + " 死亡,但触发重生机制!", Color.GOLD) + resurrect() + return + + is_dying = true # 设置死亡标志 + is_alive = false + current_state = PetState.DEAD + + # 添加死亡细节 + var death_message = "💀 " + pet_name + " 死亡了!" + if last_attacker and is_instance_valid(last_attacker): + death_message += " (被 " + last_attacker.pet_name + " 击杀)" + add_battle_detail_to_panel(death_message, Color.RED) + + # 给击杀者奖励 + if last_attacker and is_instance_valid(last_attacker) and last_attacker.has_method("on_kill_enemy"): + last_attacker.on_kill_enemy(self) + + # 通知其他宠物这个目标已死亡,让它们重新寻找目标 + if get_tree(): # 确保场景树存在 + var all_pets = get_tree().get_nodes_in_group("pets") + for pet in all_pets: + if pet != self and is_instance_valid(pet) and pet.has_method("on_enemy_died"): + pet.on_enemy_died(self) + + # 立即通知战斗面板检查战斗结束 + var battle_panel = get_parent() + while battle_panel and not battle_panel.has_method("check_battle_end"): + battle_panel = battle_panel.get_parent() + + if battle_panel: + battle_panel.call_deferred("check_battle_end") + + # 延迟0.5秒后移除自己,避免在物理回调中操作 + if get_tree(): + await get_tree().create_timer(0.5).timeout + if get_parent(): + get_parent().remove_child(self) + queue_free() + else: + # 如果场景树不存在,直接销毁 + queue_free() + +# 重生机制 +func resurrect(): + # 恢复生命值到50% + current_health = max_health * 0.5 + current_shield = max_shield * 0.5 + current_armor = max_armor * 0.5 + + # 设置短暂无敌状态 + is_invulnerable = true + is_dying = false + is_alive = true + current_state = PetState.IDLE + + # 清除目标,重新开始 + current_target = null + + # 重生特效(变为金色闪烁) + var original_modulate = pet_image.modulate + pet_image.modulate = Color.GOLD + + # 3秒后恢复正常状态 + if get_tree(): + var timer = get_tree().create_timer(3.0) + timer.timeout.connect(func(): + is_invulnerable = false + pet_image.modulate = original_modulate + ) + + call_deferred("update_ui") + +# 显示启用的特殊机制 +func show_enabled_special_abilities(): + var abilities: Array[String] = [] + + if enable_damage_reflect: + abilities.append("伤害反弹(" + str(int(damage_reflect * 100)) + "%)") + if enable_berserker_mode: + abilities.append("狂暴模式(" + str(int(berserker_threshold * 100)) + "%血量触发)") + if enable_death_immunity: + abilities.append("死亡免疫") + if enable_aid_system: + abilities.append("援助召唤(x" + str(aid_summon_count) + ")") + if enable_resurrection: + abilities.append("死亡重生") + + # 可以在这里添加UI显示特殊能力的逻辑,暂时注释掉print + # if abilities.size() > 0: + # print(pet_name + " 启用特殊机制: " + ", ".join(abilities)) + # else: + # print(pet_name + " 无特殊机制") + +#更新宠物状态UI +func update_ui(): + # 检查UI节点是否存在,防止援助宠物或未完全初始化的宠物出错 + if not health_bar or not shield_bar or not armor_bar or not health_label or not shield_label or not armor_label or not pet_name_rich_text: + return + + # 更新血量条 + health_bar.max_value = max_health + health_bar.value = current_health + health_label.text = "生命值:" + str(int(current_health)) + "/" + str(int(max_health)) + + # 更新护盾条 + shield_bar.max_value = max_shield + shield_bar.value = current_shield + shield_label.text = "护盾值:" + str(int(current_shield)) + "/" + str(int(max_shield)) + + # 更新护甲条 + armor_bar.max_value = max_armor + armor_bar.value = current_armor + armor_label.text = "护甲值:" + str(int(current_armor)) + "/" + str(int(max_armor)) + + # 更新名称(包含等级、经验、亲密度信息) + var display_name = pet_name + " [Lv." + str(pet_level) + "]" + display_name += "\n经验:" + str(int(pet_experience)) + "/" + str(int(max_experience)) + display_name += "\n亲密度:" + str(int(pet_intimacy)) + "/" + str(int(max_intimacy)) + if pet_age > 0: + display_name += "\n年龄:" + get_age_display() + pet_name_rich_text.text = display_name + +# 获取友好的年龄显示 +func get_age_display() -> String: + if pet_age == 0: + return "新生" + elif pet_age < 7: + return str(pet_age) + "天" + elif pet_age < 30: + var weeks = pet_age / 7 + return str(weeks) + "周" + elif pet_age < 365: + var months = pet_age / 30 + return str(months) + "个月" + else: + var years = pet_age / 365 + var remaining_days = pet_age % 365 + if remaining_days > 0: + return str(years) + "年" + str(remaining_days) + "天" + else: + return str(years) + "年" + +# 添加战斗细节到对战面板 +func add_battle_detail_to_panel(text: String, color: Color = Color.WHITE): + # 查找战斗面板 + var battle_panel = find_battle_panel() + if battle_panel and battle_panel.has_method("add_battle_detail"): + battle_panel.add_battle_detail(text, color) + +# 查找战斗面板 +func find_battle_panel(): + var current_scene = get_tree().current_scene + if current_scene.has_node("PetFightPanel"): + return current_scene.get_node("PetFightPanel") + else: + # 遍历所有子节点查找 + var queue = [current_scene] + while queue.size() > 0: + var node = queue.pop_front() + if node.name == "PetFightPanel": + return node + for child in node.get_children(): + queue.append(child) + return null + +#设置宠物数据 +func set_pet_data(name: String, team: String, health: float = 100.0, attack: float = 20.0, speed: float = 100.0, quality: PetQuality = PetQuality.COMMON, element: ElementType = ElementType.NONE): + pet_name = name + pet_team = team + max_health = health + current_health = health + attack_damage = attack + move_speed = speed + pet_quality = quality + element_type = element + + # 根据品质调整属性 + apply_quality_bonuses() + + # 更新攻击速度 + update_attack_speed() + + # 设置碰撞层(现在team信息已确定) + setup_collision_layers() + + # 显示启用的特殊机制 + call_deferred("show_enabled_special_abilities") + + call_deferred("update_ui") + +# 更新攻击速度(根据当前攻击类型) +func update_attack_speed(): + if attack_type == AttackType.MELEE: + attack_speed = melee_attack_speed + else: + attack_speed = ranged_attack_speed + +# 根据品质应用属性加成 +func apply_quality_bonuses(): + var quality_multiplier = 1.0 + match pet_quality: + PetQuality.COMMON: + quality_multiplier = 1.0 + PetQuality.UNCOMMON: + quality_multiplier = 1.1 + PetQuality.RARE: + quality_multiplier = 1.25 + PetQuality.EPIC: + quality_multiplier = 1.5 + PetQuality.LEGENDARY: + quality_multiplier = 1.75 + PetQuality.MYTHIC: + quality_multiplier = 2.0 + + # 应用品质加成到基础属性 + max_health *= quality_multiplier + current_health = max_health + max_shield *= quality_multiplier + current_shield = max_shield + max_armor *= quality_multiplier + current_armor = max_armor + attack_damage *= quality_multiplier + + # 高品质宠物获得额外属性 + if pet_quality >= PetQuality.RARE: + crit_rate += 0.05 + life_steal += 0.05 + enable_berserker_mode = true # 稀有品质启用狂暴模式 + if pet_quality >= PetQuality.EPIC: + armor_penetration += 10.0 + health_regen += 1.0 + enable_damage_reflect = true # 史诗品质启用伤害反弹 + damage_reflect += 0.1 + if pet_quality >= PetQuality.LEGENDARY: + knockback_resist += 0.2 + enable_aid_system = true # 传说品质启用援助系统 + enable_death_immunity = true # 传说品质启用死亡免疫 + death_immunity = true + if pet_quality >= PetQuality.MYTHIC: + berserker_bonus += 0.5 + enable_resurrection = true # 神话品质启用重生机制 + +func get_team() -> String: + return pet_team + +# 处理生命和护盾恢复 +func handle_regeneration(delta: float): + var current_time = Time.get_ticks_msec() / 1000.0 + if current_time - last_regen_time >= 1.0: # 每秒恢复一次 + # 生命恢复 + if current_health < max_health and health_regen > 0: + current_health = min(max_health, current_health + health_regen) + + # 护盾恢复 + if current_shield < max_shield and shield_regen > 0: + current_shield = min(max_shield, current_shield + shield_regen) + + last_regen_time = current_time + call_deferred("update_ui") + +# 更新亲密度 +var intimacy_timer: float = 0.0 + +func update_age_and_intimacy(delta: float): + # 更新年龄(基于出生日期和现实时间) + update_pet_age() + + # 每10秒增加1点亲密度(战斗中会增加更多) + intimacy_timer += delta + if intimacy_timer >= 10.0: + gain_intimacy(1.0) + intimacy_timer = 0.0 + +# 根据出生日期计算宠物年龄 +func update_pet_age(): + if pet_birthday == "": + return + + # 解析出生日期 + var birth_parts = pet_birthday.split(" ") + if birth_parts.size() != 2: + return + + var date_parts = birth_parts[0].split("-") + var time_parts = birth_parts[1].split(":") + + if date_parts.size() != 3 or time_parts.size() != 3: + return + + # 获取当前时间 + var current_time = Time.get_datetime_dict_from_system() + + # 计算出生时间 + var birth_year = int(date_parts[0]) + var birth_month = int(date_parts[1]) + var birth_day = int(date_parts[2]) + var birth_hour = int(time_parts[0]) + var birth_minute = int(time_parts[1]) + var birth_second = int(time_parts[2]) + + # 创建出生时间的Unix时间戳 + var birth_dict = { + "year": birth_year, + "month": birth_month, + "day": birth_day, + "hour": birth_hour, + "minute": birth_minute, + "second": birth_second + } + + var birth_unix = Time.get_unix_time_from_datetime_dict(birth_dict) + var current_unix = Time.get_unix_time_from_system() + + # 计算年龄(秒差转换为天数) + var age_seconds = current_unix - birth_unix + pet_age = int(age_seconds / 86400) # 86400秒 = 1天 + + if pet_age < 0: + pet_age = 0 # 防止负数年龄 + +# 增加亲密度 +func gain_intimacy(amount: float): + if pet_intimacy < max_intimacy: + pet_intimacy = min(max_intimacy, pet_intimacy + amount) + + # 每100点亲密度提供属性加成 + var intimacy_level = int(pet_intimacy / 100.0) + if intimacy_level > 0: + # 亲密度加成:每100点提供5%属性加成 + var intimacy_bonus = 1.0 + (intimacy_level * 0.05) + # 这里可以应用到各种属性上,暂时先输出提示 + if int(pet_intimacy) % 100 == 0: + pass + +# 增加经验值 +func gain_experience(amount: float): + if pet_level >= 50: # 等级上限 + return + + pet_experience += amount + + # 检查是否升级 + while pet_experience >= max_experience and pet_level < 50: + level_up() + +# 升级 +func level_up(): + pet_experience -= max_experience + pet_level += 1 + + # 计算新的升级经验需求(指数增长) + max_experience = 100.0 * pow(1.2, pet_level - 1) + + # 升级属性加成 + var level_bonus = 1.1 # 每级10%属性加成 + + max_health *= level_bonus + current_health = max_health # 升级回满血 + attack_damage *= level_bonus + max_shield *= level_bonus + current_shield = max_shield # 升级回满护盾 + max_armor *= level_bonus + current_armor = max_armor # 升级回满护甲 + + # 升级特效 + show_level_up_effect() + + # 添加升级细节 + add_battle_detail_to_panel("🎉 " + pet_name + " 升级到 " + str(pet_level) + " 级!", Color.GOLD) + + call_deferred("update_ui") + +# 显示升级特效 +func show_level_up_effect(): + if not pet_image: + return + + # 保存原始颜色 + var original_color = pet_image.modulate + + # 创建升级特效(金色闪烁) + var tween = create_tween() + tween.set_loops(3) # 闪烁3次 + + # 闪烁效果 + tween.tween_method(func(color): pet_image.modulate = color, original_color, Color.GOLD, 0.2) + tween.tween_method(func(color): pet_image.modulate = color, Color.GOLD, original_color, 0.2) + + # 恢复原始颜色 + tween.tween_callback(func(): pet_image.modulate = original_color) + +# 击杀敌人时获得额外经验 +func on_kill_enemy(enemy: CharacterBody2D): + var kill_exp = enemy.pet_level * 20.0 # 根据敌人等级获得经验 + gain_experience(kill_exp) + gain_intimacy(10.0) # 击杀获得更多亲密度 + +# 初始化生日 +func initialize_birthday(): + if pet_birthday == "": + var time_dict = Time.get_datetime_dict_from_system() + pet_birthday = str(time_dict.year) + "-" + str(time_dict.month).pad_zeros(2) + "-" + str(time_dict.day).pad_zeros(2) + " " + str(time_dict.hour).pad_zeros(2) + ":" + str(time_dict.minute).pad_zeros(2) + ":" + str(time_dict.second).pad_zeros(2) + +# 检查狂暴模式 +func check_berserker_mode(): + if not enable_berserker_mode: + return + + var health_ratio = current_health / max_health + if health_ratio <= berserker_threshold and not is_berserker: + is_berserker = true + pet_image.modulate = Color.RED # 狂暴状态变红色 + add_battle_detail_to_panel("🔥 " + pet_name + " 血量过低,进入狂暴模式!", Color.RED) + elif health_ratio > berserker_threshold and is_berserker: + is_berserker = false + add_battle_detail_to_panel("😌 " + pet_name + " 脱离狂暴模式", Color.GREEN) + # 恢复原来的队伍颜色 + if pet_team == "team1": + pet_image.modulate = Color.CYAN + else: + pet_image.modulate = Color.ORANGE + +# 检查援助系统 +func check_aid_system(): + if not enable_aid_system: + return + + var health_ratio = current_health / max_health + var current_time = Time.get_ticks_msec() / 1000.0 + + # 如果血量低于阈值且还没召唤过援助,或者距离上次召唤已经超过间隔时间 + if health_ratio <= aid_threshold: + if not aid_summoned or (current_time - aid_last_summon_time >= aid_summon_interval): + summon_aid() + aid_last_summon_time = current_time + aid_summoned = true + +# 召唤援助 +func summon_aid(): + # 获取战斗面板引用 + var battle_panel = get_parent() + while battle_panel and not battle_panel.has_method("get_team_node"): + battle_panel = battle_panel.get_parent() + + if not battle_panel: + return + + var team_node = battle_panel.get_team_node(pet_team) + if not team_node: + return + + # 召唤多个援助宠物 + for i in range(aid_summon_count): + var aid_pet = create_aid_minion() + if aid_pet: + team_node.add_child(aid_pet) + aid_minions.append(aid_pet) + + # 设置援助宠物位置(在主宠物周围) + var offset_angle = (PI * 2 / aid_summon_count) * i + var offset_distance = 80.0 + var offset = Vector2(cos(offset_angle), sin(offset_angle)) * offset_distance + aid_pet.global_position = global_position + offset + + # 添加到宠物组 + aid_pet.add_to_group("pets") + aid_pet.add_to_group(pet_team) + aid_pet.add_to_group("aid_minions") + +# 创建援助宠物 +func create_aid_minion() -> CharacterBody2D: + # 使用相同的宠物场景 + var pet_scene = preload("res://Scene/Pet/PetBase.tscn") + var aid_pet = pet_scene.instantiate() + + # 设置援助宠物属性(比主宠物弱一些) + var aid_name = pet_name + "的援助" + var aid_health = max_health * 0.3 # 30%血量 + var aid_attack = attack_damage * 0.5 # 50%攻击力 + var aid_speed = move_speed * 1.2 # 120%移动速度 + + aid_pet.set_pet_data(aid_name, pet_team, aid_health, aid_attack, aid_speed, PetQuality.COMMON, element_type) + + # 援助宠物使用简单的远程攻击 + aid_pet.attack_type = AttackType.RANGED + aid_pet.ranged_mode = RangedAttackMode.SINGLE + aid_pet.attack_range = 250.0 + + # 设置援助宠物的特殊标识(小一点,颜色稍微不同) + aid_pet.scale = Vector2(0.7, 0.7) # 缩小到70% + if aid_pet.pet_image: + aid_pet.pet_image.modulate = aid_pet.pet_image.modulate * Color(1.0, 1.0, 1.0, 0.8) # 半透明 + + # 隐藏援助宠物的UI面板,减少性能开销 + if aid_pet.has_node("PetInformVBox"): + aid_pet.get_node("PetInformVBox").visible = false + + return aid_pet + +# 治疗函数 +func heal(amount: float): + if not is_alive: + return + current_health = min(max_health, current_health + amount) + call_deferred("update_ui") + +# 对目标应用击退效果 +func apply_knockback_to_target(target: CharacterBody2D): + if not target or not is_instance_valid(target): + return + + # 计算击退方向 + var direction = (target.global_position - global_position).normalized() + + # 计算击退力度(考虑目标的击退抗性) + var effective_knockback = knockback_force * (1.0 - target.knockback_resist) + + if effective_knockback > 0: + target.apply_knockback(direction, effective_knockback) + add_battle_detail_to_panel(pet_name + " 击退了 " + target.pet_name) + +# 被击退时调用 +func apply_knockback(direction: Vector2, force: float): + if not is_alive: + return + + # 设置击退状态 + is_being_knocked_back = true + knockback_velocity = direction * force + + # 击退时短暂失去目标(可选) + if current_target and randf() < 0.3: # 30%概率失去目标 + current_target = null + current_state = PetState.IDLE + +# 元素克制计算 +func get_element_multiplier(attacker_element: ElementType, defender_element: ElementType) -> float: + # 如果攻击者无属性,返回正常伤害 + if attacker_element == ElementType.NONE: + return 0.0 # 无额外伤害 + + # 雷属性克制所有其他属性 + if attacker_element == ElementType.THUNDER and defender_element != ElementType.NONE: + return element_damage_bonus # 雷克制所有 + + # 如果防御者无属性,无克制关系 + if defender_element == ElementType.NONE: + return 0.0 + + # 五行克制:金克木,木克水,水克火,火克土,土克金 + match attacker_element: + ElementType.METAL: + if defender_element == ElementType.WOOD: + return element_damage_bonus # 金克木 + ElementType.WOOD: + if defender_element == ElementType.WATER: + return element_damage_bonus # 木克水 + ElementType.WATER: + if defender_element == ElementType.FIRE: + return element_damage_bonus # 水克火 + ElementType.FIRE: + if defender_element == ElementType.EARTH: + return element_damage_bonus # 火克土 + ElementType.EARTH: + if defender_element == ElementType.METAL: + return element_damage_bonus # 土克金 + + return 0.0 # 无克制关系,无额外伤害 + +# 当敌人死亡时被调用 +func on_enemy_died(dead_enemy: CharacterBody2D): + if current_target == dead_enemy: + current_target = null + current_state = PetState.IDLE + +# 处理巡逻逻辑 +func handle_patrol(delta: float): + if patrol_path.size() == 0: + return + + # 确保当前巡逻索引有效 + if current_patrol_index >= patrol_path.size(): + current_patrol_index = 0 + + var target_point = patrol_path[current_patrol_index] + # 使用本地坐标进行计算(因为宠物现在在巡逻线节点下) + var distance_to_target = position.distance_to(target_point) + + # 如果距离目标点很近,移动到下一个点 + if distance_to_target < 30.0: # 增加检测距离,避免抖动 + patrol_wait_time += delta + if patrol_wait_time >= patrol_max_wait_time: + current_patrol_index = (current_patrol_index + 1) % patrol_path.size() + patrol_wait_time = 0.0 + + # 在等待期间播放空闲动画 + if pet_image and pet_image.animation != "idle": + pet_image.animation = "idle" + velocity = Vector2.ZERO + else: + # 移动到目标点 + var direction = (target_point - position).normalized() + velocity = direction * patrol_speed + + # 播放移动动画 + if pet_image and pet_image.animation != "walk": + pet_image.animation = "walk" + + # 根据移动方向翻转精灵 + if direction.x < 0: + pet_image.flip_h = false + elif direction.x > 0: + pet_image.flip_h = true + + patrol_wait_time = 0.0 + + # 应用移动 + move_and_slide() + + # 限制在巡逻区域内(使用本地坐标) + clamp_to_patrol_area() + +# 设置战斗启用状态 +func set_combat_enabled(enabled: bool): + combat_enabled = enabled + if not enabled: + # 禁用战斗时,清除当前目标 + current_target = null + current_state = PetState.IDLE + +# 限制巡逻宠物在合理的坐标范围内 +func clamp_to_patrol_area(): + # 基于巡逻路径计算合理的边界 + if patrol_path.size() > 0: + var min_x = patrol_path[0].x + var max_x = patrol_path[0].x + var min_y = patrol_path[0].y + var max_y = patrol_path[0].y + + # 找到路径的边界 + for point in patrol_path: + min_x = min(min_x, point.x) + max_x = max(max_x, point.x) + min_y = min(min_y, point.y) + max_y = max(max_y, point.y) + + # 添加一些缓冲区域 + var buffer = 100.0 + min_x -= buffer + max_x += buffer + min_y -= buffer + max_y += buffer + + # 限制位置 + position.x = clamp(position.x, min_x, max_x) + position.y = clamp(position.y, min_y, max_y) diff --git a/Script/Pet/PetBase.gd.uid b/Script/Pet/PetBase.gd.uid new file mode 100644 index 0000000..79c8b26 --- /dev/null +++ b/Script/Pet/PetBase.gd.uid @@ -0,0 +1 @@ +uid://hucuy8guuj6w diff --git a/Script/Pet/PetFightPanel.gd b/Script/Pet/PetFightPanel.gd new file mode 100644 index 0000000..f634a96 --- /dev/null +++ b/Script/Pet/PetFightPanel.gd @@ -0,0 +1,586 @@ +extends Panel + +# 可用的宠物场景字典(直接使用现有场景文件) +var available_pets: Dictionary = { + "小绿": preload("res://Scene/Pet/SmallGreen.tscn"), + "小蓝": preload("res://Scene/Pet/SmallBlue.tscn"), + "小黄": preload("res://Scene/Pet/SmallYellow.tscn"), + "小橙": preload("res://Scene/Pet/SmallOrange.tscn"), + "小粉": preload("res://Scene/Pet/SmallPink.tscn"), + "红史莱姆": preload("res://Scene/Pet/RedSlime.tscn"), + "绿史莱姆": preload("res://Scene/Pet/GreenSlime.tscn"), + "小骑士": preload("res://Scene/Pet/LittleKnight.tscn"), + "大甲虫": preload("res://Scene/Pet/BigBeetle.tscn"), + "小甲虫": preload("res://Scene/Pet/SmallBeetle.tscn"), + "飞鸟": preload("res://Scene/Pet/FlyingBird.tscn"), + "小钻头": preload("res://Scene/Pet/SmallDrillBit.tscn") +} + +# 宠物配置数据 +var pet_configs: Dictionary = {} + +@onready var battle_end_panel: Panel = $BattleEndPanel #战斗结算面板 +@onready var contents: Label = $BattleEndPanel/Contents #结算内容 +@onready var return_farm_button: Button = $BattleEndPanel/ReturnFarmButton #返回农场按钮 暂时设定为隐藏战斗面板 + +@onready var pet_battle_details_panel: Panel = $PetBattleDetailsPanel #宠物对战细节面板 +@onready var battle_details: RichTextLabel = $PetBattleDetailsPanel/BattleDetails #宠物对战细节 + +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel' + + +# 对战区域边界 +var battle_area_min: Vector2 = Vector2(50, 50) +var battle_area_max: Vector2 = Vector2(1350, 670) + +# 队伍宠物列表 +var team1_pets: Array[CharacterBody2D] = [] +var team2_pets: Array[CharacterBody2D] = [] + +# 对战状态 +var battle_started: bool = false +var battle_ended: bool = false +var winner_team: String = "" +var auto_battle_enabled: bool = true # 是否启用自动对战 +var is_steal_battle: bool = false # 是否为偷菜对战 +var steal_battle_cost: int = 1300 # 偷菜对战失败的惩罚金币 +var battle_start_time: float = 0.0 # 战斗开始时间 + +# 偷菜对战相关数据 +var current_battle_pet_id: String = "" # 当前出战宠物ID +var current_attacker_name: String = "" # 当前进攻者用户名 + +# 队伍节点引用 +@onready var team1_node: Node = $team1 +@onready var team2_node: Node = $team2 +@onready var neutral_node: Node = $neutral + + +func _ready(): + # 加载宠物配置 + load_pet_configs() + + # 连接返回农场按钮 + if return_farm_button: + return_farm_button.pressed.connect(_on_return_farm_pressed) + + # 初始隐藏结算面板和细节面板 + if battle_end_panel: + battle_end_panel.visible = false + if pet_battle_details_panel: + pet_battle_details_panel.visible = false + + +# 加载宠物配置 +func load_pet_configs(): + var file = FileAccess.open("res://Data/pet_data.json", FileAccess.READ) + if file == null: + return + + var json_string = file.get_as_text() + file.close() + + var json = JSON.new() + var parse_result = json.parse(json_string) + if parse_result != OK: + return + + pet_configs = json.data + +# 添加对战细节到细节面板 +func add_battle_detail(text: String, color: Color = Color.WHITE): + if not battle_details: + return + + # 安全获取当前时间 + var time_parts = Time.get_datetime_string_from_system().split(" ") + var current_time = "" + if time_parts.size() >= 2: + current_time = time_parts[1] # 获取时间部分 + else: + # 如果格式不对,使用简单的时间格式 + var time_dict = Time.get_datetime_dict_from_system() + current_time = str(time_dict.hour).pad_zeros(2) + ":" + str(time_dict.minute).pad_zeros(2) + ":" + str(time_dict.second).pad_zeros(2) + + var detail_text = "[color=#" + color.to_html() + "]" + current_time + " " + text + "[/color]\n" + battle_details.text += detail_text + + # 自动滚动到底部 + await get_tree().process_frame + if battle_details.get_v_scroll_bar(): + battle_details.get_v_scroll_bar().value = battle_details.get_v_scroll_bar().max_value + +# 清空对战细节 +func clear_battle_details(): + if battle_details: + battle_details.text = "" + +func _process(delta): + # 只有启用自动对战时才检查战斗结束 + if auto_battle_enabled and battle_started and not battle_ended: + check_battle_end() + + +# 获取队伍节点 - 供宠物调用 +func get_team_node(team_name: String) -> Node: + match team_name: + "team1": + return team1_node + "team2": + return team2_node + "neutral": + return neutral_node + _: + return null + + + +# 开始战斗 +func start_battle(): + if battle_started: + return + + battle_started = true + battle_ended = false + battle_start_time = Time.get_ticks_msec() / 1000.0 # 记录战斗开始时间 + + # 显示细节面板并初始化内容 + if pet_battle_details_panel: + pet_battle_details_panel.visible = true + add_battle_detail("⚔️ 战斗开始!", Color.YELLOW) + + # 显示双方宠物信息 + var all_pets = get_tree().get_nodes_in_group("pets") + for pet in all_pets: + if pet.pet_team == "team1": + add_battle_detail("🔵 " + pet.pet_name + " 参战!", Color.CYAN) + elif pet.pet_team == "team2": + add_battle_detail("🟠 " + pet.pet_name + " 参战!", Color.ORANGE) + +# 检查战斗是否结束 +func check_battle_end(): + if battle_ended or not battle_started: + return + + # 等待战斗真正开始后再检查(避免立即结束) + if Time.get_ticks_msec() / 1000.0 - battle_start_time < 2.0: + return + + var team1_alive = 0 + var team2_alive = 0 + + # 统计存活宠物数量 - 只检查当前对战面板下的宠物 + for pet in team1_pets: + if is_instance_valid(pet) and pet.is_alive: + team1_alive += 1 + + for pet in team2_pets: + if is_instance_valid(pet) and pet.is_alive: + team2_alive += 1 + + # 判断胜负 + if team1_alive == 0 and team2_alive == 0: + end_battle("draw") + elif team1_alive == 0: + end_battle("team2") + elif team2_alive == 0: + end_battle("team1") + +# 结束战斗 +func end_battle(winner: String): + if battle_ended: + return + + battle_ended = true + winner_team = winner + + # 添加战斗结束细节 + var end_message = "" + var end_color = Color.WHITE + match winner: + "team1": + end_message = "🏆 我方获胜!" + end_color = Color.GREEN + "team2": + end_message = "🏆 敌方获胜!" + end_color = Color.RED + "draw": + end_message = "🤝 平局!双方同归于尽" + end_color = Color.GRAY + + add_battle_detail(end_message, end_color) + + # 显示战斗结算面板 + show_battle_end_panel(winner) + + # 处理偷菜对战结果 + if is_steal_battle: + await get_tree().create_timer(2.0).timeout + handle_steal_battle_result(winner) + + + + +# 显示战斗结算面板 +func show_battle_end_panel(winner: String): + var result_text = "" + var team1_survivors = 0 + var team2_survivors = 0 + var team1_total_damage = 0.0 + var team2_total_damage = 0.0 + var team1_pets_info: Array[String] = [] + var team2_pets_info: Array[String] = [] + + # 统计存活宠物和详细信息 - 从宠物组中获取 + var all_pets = get_tree().get_nodes_in_group("pets") + for pet in all_pets: + if not is_instance_valid(pet): + continue + + var status = "💀死亡" + if pet.is_alive: + status = "❤️存活(" + str(int(pet.current_health)) + ")" + if pet.pet_team == "team1": + team1_survivors += 1 + elif pet.pet_team == "team2": + team2_survivors += 1 + + # 统计战力 + if pet.pet_team == "team1": + team1_total_damage += pet.attack_damage + team1_pets_info.append(pet.pet_name + " " + status) + elif pet.pet_team == "team2": + team2_total_damage += pet.attack_damage + team2_pets_info.append(pet.pet_name + " " + status) + + # 构建结算文本 + result_text += "=== 战斗结算 ===\n\n" + + match winner: + "team1": + result_text += "🏆 我方获胜!\n\n" + "team2": + result_text += "🏆 敌方获胜!\n\n" + "draw": + result_text += "🤝 平局!双方同归于尽\n\n" + + # 给所有参与对战的宠物奖励经验和亲密度 + for pet in all_pets: + if is_instance_valid(pet): + # 所有宠物获得参与对战奖励 + pet.gain_experience(30.0) # 参与对战随机获得30-100经验 + pet.gain_intimacy(15.0) # 参与对战随机获得1-12亲密度 + + + contents.text = result_text + battle_end_panel.visible = true + +# 设置偷菜对战 +func setup_steal_battle(battle_pet_data: Dictionary, patrol_pet_data: Dictionary, attacker_name: String, defender_name: String): + + # 停止当前对战 + stop_auto_battle() + + # 清理现有宠物 + clear_all_pets() + + # 设置为偷菜对战模式 + is_steal_battle = true + steal_battle_cost = 1300 + + # 记录对战信息 + current_attacker_name = attacker_name + current_battle_pet_id = battle_pet_data.get("基本信息", {}).get("宠物ID", "") + + # 根据宠物数据创建对战宠物 + var battle_pet = create_pet_from_data(battle_pet_data, team1_node, Vector2(200, 300)) + var patrol_pet = create_pet_from_data(patrol_pet_data, team2_node, Vector2(1000, 300)) + + if battle_pet and patrol_pet: + # 设置宠物名称标识 + var battle_original_name = battle_pet_data.get("基本信息", {}).get("宠物名称", "未知宠物") + var patrol_original_name = patrol_pet_data.get("基本信息", {}).get("宠物名称", "未知宠物") + + battle_pet.pet_name = "[出战] " + battle_original_name + patrol_pet.pet_name = "[巡逻] " + patrol_original_name + + # 确保宠物正确设置类型并加载配置 + var battle_pet_type = battle_pet_data.get("基本信息", {}).get("宠物类型", "") + var patrol_pet_type = patrol_pet_data.get("基本信息", {}).get("宠物类型", "") + + if battle_pet_type != "": + battle_pet.set_pet_type_and_load_config(battle_pet_type) + if patrol_pet_type != "": + patrol_pet.set_pet_type_and_load_config(patrol_pet_type) + + # 重新应用宠物数据(覆盖JSON配置) + apply_pet_data_to_instance(battle_pet, battle_pet_data) + apply_pet_data_to_instance(patrol_pet, patrol_pet_data) + + # 强制设置正确的队伍信息(在数据应用之后) + battle_pet.pet_team = "team1" + patrol_pet.pet_team = "team2" + + # 设置碰撞层 + battle_pet.setup_collision_layers() + patrol_pet.setup_collision_layers() + + # 启用战斗模式 + battle_pet.set_combat_enabled(true) + patrol_pet.set_combat_enabled(true) + + # 添加到队伍数组 + team1_pets.clear() + team2_pets.clear() + team1_pets.append(battle_pet) + team2_pets.append(patrol_pet) + + # 添加到宠物组 + battle_pet.add_to_group("pets") + battle_pet.add_to_group("team1") + patrol_pet.add_to_group("pets") + patrol_pet.add_to_group("team2") + + # 重置对战状态 + auto_battle_enabled = true + battle_started = false + battle_ended = false + + # 延迟启动战斗 + await get_tree().create_timer(1.0).timeout + start_battle() + +# 根据宠物数据创建宠物实例 +func create_pet_from_data(pet_data: Dictionary, team_node: Node, spawn_pos: Vector2) -> CharacterBody2D: + var pet_type = pet_data.get("基本信息", {}).get("宠物类型", "") + var scene_path = pet_data.get("场景路径", "") + + # 优先使用场景路径 + var pet_scene = null + if scene_path != "" and ResourceLoader.exists(scene_path): + pet_scene = load(scene_path) + elif available_pets.has(pet_type): + pet_scene = available_pets[pet_type] + else: + return null + + var pet_instance = pet_scene.instantiate() + team_node.add_child(pet_instance) + + # 应用宠物数据 + apply_pet_data_to_instance(pet_instance, pet_data) + + # 设置位置 + pet_instance.global_position = spawn_pos + + return pet_instance + +# 应用宠物数据到实例 +func apply_pet_data_to_instance(pet_instance: CharacterBody2D, pet_data: Dictionary): + var basic_info = pet_data.get("基本信息", {}) + var level_exp = pet_data.get("等级经验", {}) + var health_defense = pet_data.get("生命与防御", {}) + + # 应用基本信息 + pet_instance.pet_owner = basic_info.get("宠物主人", "未知主人") + pet_instance.pet_name = basic_info.get("宠物名称", basic_info.get("宠物类型", "未知宠物")) + pet_instance.pet_id = basic_info.get("宠物ID", "") + pet_instance.pet_type = basic_info.get("宠物类型", "") + pet_instance.pet_birthday = basic_info.get("生日", "") + pet_instance.pet_personality = basic_info.get("性格", "活泼") + + # 应用等级经验 + pet_instance.pet_level = level_exp.get("宠物等级", 1) + pet_instance.pet_experience = level_exp.get("当前经验", 0.0) + pet_instance.max_experience = level_exp.get("最大经验", 100.0) + pet_instance.pet_intimacy = level_exp.get("亲密度", 0.0) + + # 应用生命防御属性 + pet_instance.max_health = health_defense.get("最大生命值", 100.0) + pet_instance.current_health = health_defense.get("当前生命值", pet_instance.max_health) + pet_instance.max_shield = health_defense.get("最大护盾值", 0.0) + pet_instance.current_shield = health_defense.get("当前护盾值", 0.0) + pet_instance.max_armor = health_defense.get("最大护甲值", 0.0) + pet_instance.current_armor = health_defense.get("当前护甲值", 0.0) + + # 启用战斗模式 + if pet_instance.has_method("set_combat_enabled"): + pet_instance.set_combat_enabled(true) + + # 更新UI显示 + if pet_instance.has_method("update_ui"): + pet_instance.update_ui() + +# 清理所有宠物 +func clear_all_pets(): + # 清空对战细节 + clear_battle_details() + + # 先移除宠物组标签 + var all_pets = get_tree().get_nodes_in_group("pets") + for pet in all_pets: + if is_instance_valid(pet): + # 检查是否是当前面板下的宠物 + if pet.get_parent() == team1_node or pet.get_parent() == team2_node or pet.get_parent() == neutral_node: + pet.remove_from_group("pets") + pet.remove_from_group("team1") + pet.remove_from_group("team2") + pet.remove_from_group("neutral") + + # 清理现有宠物 + for child in team1_node.get_children(): + if is_instance_valid(child): + child.queue_free() + + for child in team2_node.get_children(): + if is_instance_valid(child): + child.queue_free() + + for child in neutral_node.get_children(): + if is_instance_valid(child): + child.queue_free() + + # 清空队伍数组 + team1_pets.clear() + team2_pets.clear() + + # 清理所有子弹 + var all_projectiles = get_tree().get_nodes_in_group("projectiles") + for projectile in all_projectiles: + if is_instance_valid(projectile): + projectile.queue_free() + +# 处理偷菜对战结果 +func handle_steal_battle_result(winner: String): + var main_game = get_node("/root/main") + if not main_game: + return + + # 计算出战宠物获得的经验和亲密度 + var exp_gained = 30.0 # 基础参与经验 + var intimacy_gained = 15.0 # 基础参与亲密度 + + # 获取出战宠物的当前状态 + var battle_pet = null + for pet in team1_pets: + if is_instance_valid(pet): + battle_pet = pet + break + + if not battle_pet: + return + + if winner == "team1": # 出战宠物获胜 + exp_gained += 50.0 # 胜利额外经验 + intimacy_gained += 25.0 # 胜利额外亲密度 + Toast.show("对战胜利!可以继续偷菜", Color.GREEN, 3.0) + else: # 巡逻宠物获胜或平局 + exp_gained += 10.0 # 失败安慰经验 + intimacy_gained += 5.0 # 失败安慰亲密度 + + # 扣除惩罚金币 + if main_game.money >= steal_battle_cost: + main_game.money -= steal_battle_cost + main_game._update_ui() + Toast.show("对战失败!支付了 " + str(steal_battle_cost) + " 金币", Color.RED, 3.0) + else: + Toast.show("对战失败!但金币不足支付惩罚", Color.RED, 3.0) + + # 更新宠物数据到服务器 + update_battle_pet_data(current_battle_pet_id, current_attacker_name, exp_gained, intimacy_gained, battle_pet) + + # 重置偷菜对战状态 + is_steal_battle = false + current_battle_pet_id = "" + current_attacker_name = "" + +# 返回农场按钮点击事件 +func _on_return_farm_pressed(): + # 隐藏结算面板和细节面板 + if battle_end_panel: + battle_end_panel.visible = false + if pet_battle_details_panel: + pet_battle_details_panel.visible = false + + # 完全清理所有宠物和数据 + clear_all_pets() + + # 等待一帧确保清理完成 + await get_tree().process_frame + + # 重置对战状态 + battle_started = false + battle_ended = false + is_steal_battle = false + auto_battle_enabled = true + winner_team = "" + + # 重新启用相机缩放 + GlobalVariables.isZoomDisabled = false + + # 隐藏面板 + self.hide() + +# 更新出战宠物数据到服务器 +func update_battle_pet_data(pet_id: String, attacker_name: String, exp_gained: float, intimacy_gained: float, battle_pet: CharacterBody2D): + if pet_id == "" or attacker_name == "": + return + + # 计算新的经验和亲密度 + var current_exp = battle_pet.pet_experience + exp_gained + var current_intimacy = battle_pet.pet_intimacy + intimacy_gained + var current_level = battle_pet.pet_level + var max_exp = battle_pet.max_experience + + # 检查升级 + var level_ups = 0 + while current_exp >= max_exp and current_level < 50: + current_exp -= max_exp + current_level += 1 + level_ups += 1 + # 重新计算升级经验需求(指数增长) + max_exp = 100.0 * pow(1.2, current_level - 1) + + # 计算升级后的属性加成 + var level_bonus_multiplier = pow(1.1, level_ups) # 每级10%属性加成 + + # 准备发送给服务器的数据 + var update_data = { + "type": "update_battle_pet_data", + "pet_id": pet_id, + "attacker_name": attacker_name, + "exp_gained": exp_gained, + "intimacy_gained": intimacy_gained, + "new_level": current_level, + "new_experience": current_exp, + "new_max_experience": max_exp, + "new_intimacy": current_intimacy, + "level_ups": level_ups, + "level_bonus_multiplier": level_bonus_multiplier + } + + # 发送数据到服务器 + + if tcp_network_manager_panel: + tcp_network_manager_panel.client.send_data(update_data) + if level_ups > 0: + add_battle_detail("🎉 " + battle_pet.pet_name + " 升级了 " + str(level_ups) + " 级!当前等级:" + str(current_level), Color.GOLD) + add_battle_detail("📈 " + battle_pet.pet_name + " 获得 " + str(int(exp_gained)) + " 经验," + str(int(intimacy_gained)) + " 亲密度", Color.GREEN) + +# 停止自动对战逻辑 +func stop_auto_battle(): + auto_battle_enabled = false + battle_started = false + battle_ended = false + is_steal_battle = false # 重置偷菜对战状态 + battle_start_time = 0.0 # 重置战斗开始时间 + winner_team = "" + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + pass + else: + GlobalVariables.isZoomDisabled = false + pass diff --git a/Script/Pet/PetFightPanel.gd.uid b/Script/Pet/PetFightPanel.gd.uid new file mode 100644 index 0000000..20c5bb0 --- /dev/null +++ b/Script/Pet/PetFightPanel.gd.uid @@ -0,0 +1 @@ +uid://ke4moxwg1gfd diff --git a/Script/Pet/PetFightPanel_BattleRoyale.gd.uid b/Script/Pet/PetFightPanel_BattleRoyale.gd.uid new file mode 100644 index 0000000..08ad1c9 --- /dev/null +++ b/Script/Pet/PetFightPanel_BattleRoyale.gd.uid @@ -0,0 +1 @@ +uid://b4p4xk0pdf7yg diff --git a/Script/Pet/Projectile.gd b/Script/Pet/Projectile.gd new file mode 100644 index 0000000..27df39a --- /dev/null +++ b/Script/Pet/Projectile.gd @@ -0,0 +1,129 @@ +extends Area2D + +# 子弹属性 +var damage: float = 20.0 +var speed: float = 300.0 +var direction: Vector2 = Vector2.ZERO +var attacker_team: String = "" +var attacker_element: int = 0 +var armor_penetration: float = 0.0 +var attacker_pet: CharacterBody2D = null # 攻击者引用 + +# 子弹生存时间(防止子弹飞出边界后一直存在) +var lifetime: float = 3.0 + +var lifetime_timer: float = 0.0 # 生存时间计时器 + +func _ready(): + # 连接碰撞信号 + area_entered.connect(_on_area_entered) + body_entered.connect(_on_body_entered) + + # 设置子弹的碰撞层 - 子弹需要能检测到所有队伍的宠物 + collision_layer = 0 # 子弹本身不需要被检测 + collision_mask = 3 # 检测team1和team2的宠物 (1+2) + + # 创建简单的圆形纹理 + create_circle_texture() + + # 添加到子弹组 + add_to_group("projectiles") + +func _physics_process(delta): + # 子弹移动 + global_position += direction * speed * delta + + # 更新生存时间 + lifetime_timer += delta + if lifetime_timer >= lifetime: + destroy_projectile() + +# 销毁子弹(直接销毁) +func destroy_projectile(): + # 延迟销毁,避免在物理回调中移除节点 + call_deferred("queue_free") + +# 穿透属性 +var pierce_remaining: int = 1 # 剩余穿透次数 +var hit_enemies: Array[CharacterBody2D] = [] # 已击中的敌人列表(防止重复击中) + +func set_projectile_data(dmg: float, spd: float, dir: Vector2, team: String, element: int, armor_pen: float = 0.0, pierce: int = 1, attacker: CharacterBody2D = null): + damage = dmg + speed = spd + direction = dir.normalized() + attacker_team = team + attacker_element = element + armor_penetration = armor_pen + pierce_remaining = pierce + attacker_pet = attacker + +func _on_area_entered(area): + # 这里可以处理与其他Area2D的碰撞(如果需要) + pass + +func _on_body_entered(body): + # 检查是否击中敌方宠物 + if body is CharacterBody2D and body.has_method("get_team"): + var target_team = body.get_team() + + # 不能击中同队伍的宠物 + if target_team == attacker_team: + print("子弹跳过同队伍宠物: " + body.pet_name + " (队伍: " + target_team + ")") + return + + # 不能击中死亡的宠物 + if not body.is_alive: + print("子弹跳过死亡宠物: " + body.pet_name) + return + + # 不能重复击中同一个敌人 + if body in hit_enemies: + print("子弹跳过已击中的宠物: " + body.pet_name) + return + + # 记录击中的敌人 + hit_enemies.append(body) + + # 对目标造成伤害(检查攻击者是否还有效) + var valid_attacker = null + if attacker_pet and is_instance_valid(attacker_pet): + valid_attacker = attacker_pet + body.take_damage(damage, armor_penetration, attacker_element, valid_attacker) + print("子弹击中敌方宠物: " + body.pet_name + " (攻击方: " + attacker_team + " 目标: " + target_team + ") 造成伤害: " + str(damage)) + + # 减少穿透次数 + pierce_remaining -= 1 + + # 如果穿透次数用完,销毁子弹 + if pierce_remaining <= 0: + print("子弹穿透次数用完,销毁") + destroy_projectile() + else: + print("子弹穿透,剩余穿透次数: " + str(pierce_remaining)) + else: + print("子弹击中非宠物对象: " + str(body)) + +# 创建简单的圆形纹理 +func create_circle_texture(): + var sprite = get_node_or_null("ProjectileSprite") + if sprite: + # 创建一个简单的圆形图像纹理 + var image = Image.create(20, 20, false, Image.FORMAT_RGBA8) + var center = Vector2(10, 10) + var radius = 8 + + # 绘制圆形 + for x in range(20): + for y in range(20): + var distance = Vector2(x, y).distance_to(center) + if distance <= radius: + # 设置黄色像素 + image.set_pixel(x, y, Color.YELLOW) + else: + # 设置透明像素 + image.set_pixel(x, y, Color.TRANSPARENT) + + # 创建纹理并应用 + var texture = ImageTexture.new() + texture.set_image(image) + sprite.texture = texture diff --git a/Script/Pet/Projectile.gd.uid b/Script/Pet/Projectile.gd.uid new file mode 100644 index 0000000..d61e055 --- /dev/null +++ b/Script/Pet/Projectile.gd.uid @@ -0,0 +1 @@ +uid://cbhhx6st14pse diff --git a/GUI/AccountSettingPanel.gd b/Script/SmallPanel/AccountSettingPanel.gd similarity index 88% rename from GUI/AccountSettingPanel.gd rename to Script/SmallPanel/AccountSettingPanel.gd index 31556b6..3956277 100644 --- a/GUI/AccountSettingPanel.gd +++ b/Script/SmallPanel/AccountSettingPanel.gd @@ -14,8 +14,9 @@ extends Panel #预添加常用的面板和组件 @onready var main_game = get_node("/root/main") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") -@onready var accept_dialog = get_node("/root/main/UI/AcceptDialog") + +@onready var accept_dialog: AcceptDialog = $'../../DiaLog/AcceptDialog' +@onready var tcp_network_manager_panel: Panel = $'../../BigPanel/TCPNetworkManagerPanel' # 存储待执行的操作类型 var pending_action = "" @@ -31,14 +32,23 @@ func _ready() -> void: _refresh_player_info() # 如果有网络连接,自动请求最新数据(延迟一秒等待初始化完成) - if network_manager and network_manager.has_method("is_connected_to_server") and network_manager.is_connected_to_server(): + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("is_connected_to_server") and tcp_network_manager_panel.is_connected_to_server(): await get_tree().create_timer(1.0).timeout _request_player_info_from_server() + +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + pass + else: + GlobalVariables.isZoomDisabled = false + pass + + #关闭玩家信息面板按钮点击 func _on_quit_button_pressed() -> void: self.hide() - GlobalVariables.isZoomDisabled = false #刷新玩家信息按钮点击 func _on_refresh_button_pressed() -> void: @@ -47,11 +57,11 @@ func _on_refresh_button_pressed() -> void: #向服务器请求玩家信息 func _request_player_info_from_server(): - if not network_manager: + if not tcp_network_manager_panel: _show_message("网络管理器不可用", Color.RED) return - if not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel.is_connected_to_server(): _show_message("未连接到服务器", Color.RED) return @@ -60,7 +70,7 @@ func _request_player_info_from_server(): "type": "refresh_player_info" } - var success = network_manager.send_message(message) + var success = tcp_network_manager_panel.send_message(message) if success: _show_message("正在刷新玩家信息...", Color.YELLOW) else: @@ -107,11 +117,11 @@ func _on_accept_dialog_confirmed() -> void: #修改账号信息 func _modify_account_info(): - if not network_manager: + if not tcp_network_manager_panel: _show_message("网络管理器不可用", Color.RED) return - if not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel.is_connected_to_server(): _show_message("未连接到服务器", Color.RED) return @@ -143,7 +153,7 @@ func _modify_account_info(): "new_personal_profile": new_personal_profile } - var success = network_manager.send_message(message) + var success = tcp_network_manager_panel.send_message(message) if success: _show_message("正在更新账号信息...", Color.YELLOW) else: @@ -151,11 +161,11 @@ func _modify_account_info(): #删除账号 func _delete_account(): - if not network_manager: + if not tcp_network_manager_panel: _show_message("网络管理器不可用", Color.RED) return - if not network_manager.is_connected_to_server(): + if not tcp_network_manager_panel.is_connected_to_server(): _show_message("未连接到服务器", Color.RED) return @@ -164,7 +174,7 @@ func _delete_account(): "type": "delete_account" } - var success = network_manager.send_message(message) + var success =tcp_network_manager_panel.send_message(message) if success: _show_message("正在删除账号...", Color.YELLOW) else: diff --git a/GUI/AccountSettingPanel.gd.uid b/Script/SmallPanel/AccountSettingPanel.gd.uid similarity index 100% rename from GUI/AccountSettingPanel.gd.uid rename to Script/SmallPanel/AccountSettingPanel.gd.uid diff --git a/Script/SmallPanel/DebugPanel.gd b/Script/SmallPanel/DebugPanel.gd new file mode 100644 index 0000000..9e316fe --- /dev/null +++ b/Script/SmallPanel/DebugPanel.gd @@ -0,0 +1,458 @@ +extends Panel + +## 调试面板 - 显示资源加载和设备性能信息 +## 特别用于在移动设备上调试资源加载问题 + +@onready var debug_rich_text: RichTextLabel = $DebugRichText +@onready var copy_button: Button = null # 复制按钮引用 + +# 调试信息管理 +var debug_messages: Array = [] +var max_debug_messages: int = 50 # 最大保留消息数量 +var update_timer: float = 0.0 +var update_interval: float = 1.0 # 每秒更新一次 + +# 性能监控数据 +var performance_data: Dictionary = { + "cpu_usage": 0.0, + "memory_usage": 0, + "memory_peak": 0, + "fps": 0.0, + "loading_progress": 0, + "loaded_textures": 0, + "failed_textures": 0, + "current_loading_item": "", + "device_info": {} +} + +# 主游戏引用 +var main_game = null + +func _ready(): + print("[DebugPanel] 调试面板已初始化") + # 获取主游戏引用 + main_game = get_node("/root/main") + + # 创建复制按钮 + _create_copy_button() + + # 初始化设备信息 + _collect_device_info() + + # 添加初始消息 + add_debug_message("调试面板已启动", Color.GREEN) + add_debug_message("设备: " + OS.get_name(), Color.CYAN) + add_debug_message("CPU核心: " + str(OS.get_processor_count()), Color.CYAN) + +func _process(delta): + update_timer += delta + if update_timer >= update_interval: + update_timer = 0.0 + _update_performance_data() + _check_performance_warnings() + _update_debug_display() + +## 检查性能警告 +func _check_performance_warnings(): + # 内存警告 + var memory_mb = performance_data["memory_usage"] / (1024 * 1024) + if memory_mb > 800: + report_memory_warning(memory_mb) + + # FPS警告 + if performance_data["fps"] < 20 and performance_data["fps"] > 0: + report_performance_warning(performance_data["fps"]) + + # 加载失败警告 + if performance_data["failed_textures"] > 10: + add_debug_message("⚠ 大量纹理加载失败: %d 个" % performance_data["failed_textures"], Color.RED) + +## 收集设备基本信息 +func _collect_device_info(): + performance_data["device_info"] = { + "platform": OS.get_name(), + "processor_count": OS.get_processor_count(), + "processor_name": OS.get_processor_name(), + "memory_total": OS.get_static_memory_usage(), + "gpu_vendor": RenderingServer.get_video_adapter_vendor(), + "gpu_name": RenderingServer.get_video_adapter_name(), + "screen_size": DisplayServer.screen_get_size(), + "screen_dpi": DisplayServer.screen_get_dpi() + } + +## 更新性能数据 +func _update_performance_data(): + # CPU使用率(通过帧时间估算) + var frame_time = Performance.get_monitor(Performance.TIME_PROCESS) + performance_data["cpu_usage"] = min(frame_time * 100.0, 100.0) + + # 内存使用情况 + var current_memory = OS.get_static_memory_usage() + performance_data["memory_usage"] = current_memory + if current_memory > performance_data["memory_peak"]: + performance_data["memory_peak"] = current_memory + + # FPS + performance_data["fps"] = Engine.get_frames_per_second() + + # 从主游戏获取加载信息 + if main_game and main_game.crop_texture_manager: + var manager = main_game.crop_texture_manager + performance_data["loaded_textures"] = manager.texture_cache.size() + manager.mature_texture_cache.size() + performance_data["failed_textures"] = manager.failed_resources.size() + + # 加载进度 + if manager.is_loading: + var total = manager.total_crops * 2 # 序列帧 + 成熟图片 + var loaded = manager.loaded_crops + performance_data["loading_progress"] = int((float(loaded) / float(total)) * 100) if total > 0 else 0 + else: + performance_data["loading_progress"] = 100 + +## 更新调试显示 +func _update_debug_display(): + if not debug_rich_text: + return + + var text = "" + + # 为复制按钮留出空间,添加一些空行 + text += "\n\n" + + # 快速摘要(最重要的信息) + text += "[color=yellow][b]=== 快速摘要 ===[/b][/color]\n" + var summary_memory_mb = performance_data["memory_usage"] / (1024 * 1024) + var status_color = "green" + if performance_data["failed_textures"] > 0 or summary_memory_mb > 500 or performance_data["fps"] < 30: + status_color = "red" + elif performance_data["loading_progress"] < 100: + status_color = "yellow" + + text += "[color=" + status_color + "]状态: " + if performance_data["loading_progress"] < 100: + text += "加载中 " + str(performance_data["loading_progress"]) + "%" + elif performance_data["failed_textures"] > 0: + text += "有 " + str(performance_data["failed_textures"]) + " 个资源加载失败" + else: + text += "正常运行" + text += "[/color]\n" + + text += "[color=cyan]内存: %.1fMB | FPS: %d | 纹理: %d[/color]\n\n" % [summary_memory_mb, performance_data["fps"], performance_data["loaded_textures"]] + + # 设备信息标题 + text += "[color=yellow][b]=== 设备信息 ===[/b][/color]\n" + var device = performance_data["device_info"] + text += "[color=cyan]平台:[/color] " + str(device.get("platform", "未知")) + "\n" + text += "[color=cyan]CPU:[/color] " + str(device.get("processor_name", "未知")) + " (" + str(device.get("processor_count", 0)) + "核)\n" + text += "[color=cyan]GPU:[/color] " + str(device.get("gpu_name", "未知")) + "\n" + text += "[color=cyan]屏幕:[/color] " + str(device.get("screen_size", Vector2.ZERO)) + " DPI:" + str(device.get("screen_dpi", 0)) + "\n" + + # 性能监控标题 + text += "\n[color=yellow][b]=== 性能监控 ===[/b][/color]\n" + + # CPU使用率(颜色编码) + var cpu_color = "green" + if performance_data["cpu_usage"] > 70: + cpu_color = "red" + elif performance_data["cpu_usage"] > 50: + cpu_color = "yellow" + text += "[color=cyan]CPU使用率:[/color] [color=" + cpu_color + "]" + "%.1f%%" % performance_data["cpu_usage"] + "[/color]\n" + + # 内存使用情况(颜色编码) + var memory_mb = performance_data["memory_usage"] / (1024 * 1024) + var memory_peak_mb = performance_data["memory_peak"] / (1024 * 1024) + var memory_color = "green" + if memory_mb > 800: + memory_color = "red" + elif memory_mb > 500: + memory_color = "yellow" + text += "[color=cyan]内存使用:[/color] [color=" + memory_color + "]%.1fMB[/color] (峰值: %.1fMB)\n" % [memory_mb, memory_peak_mb] + + # FPS(颜色编码) + var fps_color = "green" + if performance_data["fps"] < 30: + fps_color = "red" + elif performance_data["fps"] < 50: + fps_color = "yellow" + text += "[color=cyan]FPS:[/color] [color=" + fps_color + "]" + str(performance_data["fps"]) + "[/color]\n" + + # 资源加载状态标题 + text += "\n[color=yellow][b]=== 资源加载状态 ===[/b][/color]\n" + + # 加载进度(颜色编码) + var progress_color = "yellow" + if performance_data["loading_progress"] >= 100: + progress_color = "green" + elif performance_data["loading_progress"] < 50: + progress_color = "red" + text += "[color=cyan]加载进度:[/color] [color=" + progress_color + "]" + str(performance_data["loading_progress"]) + "%[/color]\n" + + # 纹理统计 + text += "[color=cyan]已加载纹理:[/color] " + str(performance_data["loaded_textures"]) + "\n" + + # 失败纹理(突出显示) + if performance_data["failed_textures"] > 0: + text += "[color=cyan]失败纹理:[/color] [color=red]" + str(performance_data["failed_textures"]) + "[/color]\n" + else: + text += "[color=cyan]失败纹理:[/color] [color=green]0[/color]\n" + + # 当前加载项目 + if performance_data["current_loading_item"] != "": + text += "[color=cyan]当前加载:[/color] " + performance_data["current_loading_item"] + "\n" + + # 线程信息 + if main_game and main_game.crop_texture_manager: + var manager = main_game.crop_texture_manager + text += "[color=cyan]工作线程:[/color] " + str(manager.max_threads) + "\n" + if manager.is_loading: + text += "[color=cyan]队列任务:[/color] " + str(manager.loading_queue.size()) + "\n" + + # 调试消息标题 + text += "\n[color=yellow][b]=== 调试日志 ===[/b][/color]\n" + + # 显示最近的调试消息 + var recent_messages = debug_messages.slice(-15) # 显示最近15条消息 + for message in recent_messages: + text += message + "\n" + + # 更新显示 + debug_rich_text.text = text + + # 自动滚动到底部 + debug_rich_text.scroll_to_line(debug_rich_text.get_line_count()) + +## 添加调试消息 +func add_debug_message(message: String, color: Color = Color.WHITE): + var timestamp = Time.get_datetime_string_from_system() + var time_parts = timestamp.split(" ") + var time_str = "" + + # 安全地获取时间部分 + if time_parts.size() >= 2: + time_str = time_parts[1].substr(0, 8) # 只要时间部分 + else: + # 如果分割失败,使用当前时间 + var time_dict = Time.get_time_dict_from_system() + time_str = "%02d:%02d:%02d" % [time_dict.hour, time_dict.minute, time_dict.second] + + var color_name = _color_to_name(color) + var formatted_message = "[color=gray]%s[/color] [color=%s]%s[/color]" % [time_str, color_name, message] + + debug_messages.append(formatted_message) + + # 限制消息数量 + if debug_messages.size() > max_debug_messages: + debug_messages = debug_messages.slice(-max_debug_messages) + + # 同时输出到控制台 + print("[DebugPanel] " + message) + +## 颜色转换为名称 +func _color_to_name(color: Color) -> String: + if color == Color.RED: + return "red" + elif color == Color.GREEN: + return "green" + elif color == Color.BLUE: + return "blue" + elif color == Color.YELLOW: + return "yellow" + elif color == Color.CYAN: + return "cyan" + elif color == Color.MAGENTA: + return "magenta" + elif color == Color.ORANGE: + return "orange" + elif color == Color.PINK: + return "pink" + else: + return "white" + +## 设置当前加载项目 +func set_current_loading_item(item_name: String): + performance_data["current_loading_item"] = item_name + if item_name != "": + add_debug_message("正在加载: " + item_name, Color.CYAN) + +## 报告加载成功 +func report_loading_success(item_name: String): + add_debug_message("✓ 加载成功: " + item_name, Color.GREEN) + +## 报告加载失败 +func report_loading_failure(item_name: String, reason: String = ""): + var message = "✗ 加载失败: " + item_name + if reason != "": + message += " (" + reason + ")" + add_debug_message(message, Color.RED) + +## 报告内存警告 +func report_memory_warning(memory_mb: float): + add_debug_message("⚠ 内存使用过高: %.1fMB" % memory_mb, Color.ORANGE) + +## 报告性能警告 +func report_performance_warning(fps: float): + add_debug_message("⚠ 性能下降: FPS=" + str(fps), Color.ORANGE) + +## 清理调试信息 +func clear_debug_log(): + debug_messages.clear() + add_debug_message("调试日志已清理", Color.YELLOW) + +## 导出调试信息到文件 +func export_debug_log(): + var datetime = Time.get_datetime_dict_from_system() + var filename = "debug_log_%04d%02d%02d_%02d%02d%02d.txt" % [ + datetime.year, datetime.month, datetime.day, + datetime.hour, datetime.minute, datetime.second + ] + + var file_path = OS.get_user_data_dir() + "/" + filename + var file = FileAccess.open(file_path, FileAccess.WRITE) + if file: + file.store_string("=== 萌芽农场调试日志 ===\n\n") + file.store_string("设备信息:\n") + for key in performance_data["device_info"]: + file.store_string(" %s: %s\n" % [key, str(performance_data["device_info"][key])]) + + file.store_string("\n性能数据:\n") + file.store_string(" CPU使用率: %.1f%%\n" % performance_data["cpu_usage"]) + file.store_string(" 内存使用: %.1fMB\n" % (performance_data["memory_usage"] / (1024 * 1024))) + file.store_string(" FPS: %d\n" % performance_data["fps"]) + file.store_string(" 已加载纹理: %d\n" % performance_data["loaded_textures"]) + file.store_string(" 失败纹理: %d\n" % performance_data["failed_textures"]) + + file.store_string("\n调试日志:\n") + for message in debug_messages: + # 移除BBCode标签 + var clean_message = message.replace("[color=gray]", "").replace("[/color]", "") + clean_message = clean_message.replace("[color=red]", "").replace("[color=green]", "") + clean_message = clean_message.replace("[color=cyan]", "").replace("[color=yellow]", "") + clean_message = clean_message.replace("[color=orange]", "") + file.store_string(clean_message + "\n") + + file.close() + add_debug_message("调试日志已导出到: " + filename, Color.GREEN) + return file_path + else: + add_debug_message("导出调试日志失败", Color.RED) + return "" + +## 创建复制按钮 +func _create_copy_button(): + # 复制按钮 + copy_button = Button.new() + copy_button.text = "复制调试信息" + copy_button.size = Vector2(140, 35) + copy_button.position = Vector2(10, 10) # 左上角位置 + + # 设置按钮样式 + copy_button.modulate = Color(1.0, 0.8, 0.6, 0.9) # 淡橙色 + + # 连接点击信号 + copy_button.pressed.connect(_on_copy_button_pressed) + + # 添加到面板 + add_child(copy_button) + + # 清理日志按钮 + var clear_button = Button.new() + clear_button.text = "清理日志" + clear_button.size = Vector2(100, 35) + clear_button.position = Vector2(160, 10) # 复制按钮右边 + + # 设置按钮样式 + clear_button.modulate = Color(1.0, 0.6, 0.6, 0.9) # 淡红色 + + # 连接点击信号 + clear_button.pressed.connect(_on_clear_button_pressed) + + # 添加到面板 + add_child(clear_button) + + print("[DebugPanel] 复制和清理按钮已创建") + +## 清理按钮点击处理 +func _on_clear_button_pressed(): + clear_debug_log() + print("[DebugPanel] 调试日志已清理") + +## 复制按钮点击处理 +func _on_copy_button_pressed(): + var debug_text = _generate_debug_text_for_copy() + DisplayServer.clipboard_set(debug_text) + add_debug_message("调试信息已复制到剪贴板", Color.GREEN) + print("[DebugPanel] 调试信息已复制到剪贴板") + +## 生成用于复制的调试文本(纯文本格式) +func _generate_debug_text_for_copy() -> String: + var text = "=== 萌芽农场调试信息 ===\n\n" + + # 设备信息 + text += "=== 设备信息 ===\n" + var device = performance_data["device_info"] + text += "平台: " + str(device.get("platform", "未知")) + "\n" + text += "CPU: " + str(device.get("processor_name", "未知")) + " (" + str(device.get("processor_count", 0)) + "核)\n" + text += "GPU: " + str(device.get("gpu_name", "未知")) + "\n" + text += "屏幕: " + str(device.get("screen_size", Vector2.ZERO)) + " DPI:" + str(device.get("screen_dpi", 0)) + "\n" + + # 性能监控 + text += "\n=== 性能监控 ===\n" + text += "CPU使用率: %.1f%%\n" % performance_data["cpu_usage"] + var memory_mb = performance_data["memory_usage"] / (1024 * 1024) + var memory_peak_mb = performance_data["memory_peak"] / (1024 * 1024) + text += "内存使用: %.1fMB (峰值: %.1fMB)\n" % [memory_mb, memory_peak_mb] + text += "FPS: %d\n" % performance_data["fps"] + + # 资源加载状态 + text += "\n=== 资源加载状态 ===\n" + text += "加载进度: %d%%\n" % performance_data["loading_progress"] + text += "已加载纹理: %d\n" % performance_data["loaded_textures"] + text += "失败纹理: %d\n" % performance_data["failed_textures"] + + if performance_data["current_loading_item"] != "": + text += "当前加载: " + performance_data["current_loading_item"] + "\n" + + # 线程信息 + if main_game and main_game.crop_texture_manager: + var manager = main_game.crop_texture_manager + text += "工作线程: %d\n" % manager.max_threads + if manager.is_loading: + text += "队列任务: %d\n" % manager.loading_queue.size() + + # 调试日志 + text += "\n=== 调试日志 ===\n" + for message in debug_messages: + # 移除BBCode标签 + var clean_message = _remove_bbcode_tags(message) + text += clean_message + "\n" + + return text + +## 移除BBCode标签 +func _remove_bbcode_tags(text: String) -> String: + var clean_text = text + + # 移除所有颜色标签 + var color_regex = RegEx.new() + color_regex.compile("\\[color=[^\\]]*\\]|\\[/color\\]") + clean_text = color_regex.sub(clean_text, "", true) + + # 移除粗体标签 + clean_text = clean_text.replace("[b]", "").replace("[/b]", "") + + return clean_text + +## 获取当前性能摘要 +func get_performance_summary() -> String: + return "CPU:%.1f%% 内存:%.1fMB FPS:%d 纹理:%d/%d" % [ + performance_data["cpu_usage"], + performance_data["memory_usage"] / (1024 * 1024), + performance_data["fps"], + performance_data["loaded_textures"], + performance_data["failed_textures"] + ] + + +func _on_quit_button_pressed() -> void: + self.hide() + pass diff --git a/Script/SmallPanel/DebugPanel.gd.uid b/Script/SmallPanel/DebugPanel.gd.uid new file mode 100644 index 0000000..b9168b4 --- /dev/null +++ b/Script/SmallPanel/DebugPanel.gd.uid @@ -0,0 +1 @@ +uid://bvhupqlw2h1j8 diff --git a/Script/SmallPanel/GlobalServerBroadcastPanel.gd b/Script/SmallPanel/GlobalServerBroadcastPanel.gd new file mode 100644 index 0000000..e8fc451 --- /dev/null +++ b/Script/SmallPanel/GlobalServerBroadcastPanel.gd @@ -0,0 +1,304 @@ +extends Panel +@onready var message_contents: RichTextLabel = $MessageContents #显示历史消息 +@onready var input_message: LineEdit = $HBox/InputMessage #输入要发送的消息 +@onready var send_message_button: Button = $HBox/SendMessageButton #发送消息按钮 +@onready var quit_button: Button = $QuitButton +@onready var watch_more_button: Button = $WatchMoreButton + +# 获取主游戏和网络管理器的引用 +@onready var main_game = get_node("/root/main") +@onready var tcp_network_manager_panel = get_node("/root/main/UI/BigPanel/TCPNetworkManagerPanel") + +# 消息历史记录 +var message_history: Array = [] +var max_message_history: int = 100 # 最大消息历史记录数量 + +# 历史消息加载状态 +var current_load_days: int = 3 # 当前加载的天数 +var max_load_days: int = 30 # 最大加载30天的历史 + +func _ready() -> void: + # 连接按钮信号 + quit_button.pressed.connect(on_quit_button_pressed) + send_message_button.pressed.connect(on_send_message_button_pressed) + watch_more_button.pressed.connect(on_watch_more_button_pressed) + + # 连接输入框回车信号 + input_message.text_submitted.connect(on_input_message_submitted) + + # 连接面板显示隐藏信号 + visibility_changed.connect(_on_visibility_changed) + + # 初始化消息显示 + message_contents.bbcode_enabled = true + message_contents.scroll_following = true + + # 隐藏面板 + self.hide() + +# 退出按钮点击事件 +func on_quit_button_pressed(): + self.hide() + +# 发送消息按钮点击事件 +func on_send_message_button_pressed(): + send_broadcast_message() + +# 查看更多消息按钮点击事件 +func on_watch_more_button_pressed(): + load_more_history() + +# 输入框回车事件 +func on_input_message_submitted(text: String): + send_broadcast_message() + +# 发送全服大喇叭消息 +func send_broadcast_message(): + var message_text = input_message.text.strip_edges() + + # 检查消息是否为空 + if message_text.is_empty(): + Toast.show("消息不能为空", Color.RED, 2.0, 1.0) + return + + # 检查消息长度 + if message_text.length() > 200: + Toast.show("消息长度不能超过200字符", Color.RED, 2.0, 1.0) + return + + # 检查网络连接 + if not tcp_network_manager_panel or not tcp_network_manager_panel.is_connected_to_server(): + Toast.show("未连接服务器,无法发送消息", Color.RED, 2.0, 1.0) + return + + # 发送消息到服务器 + var success = tcp_network_manager_panel.send_message({ + "type": "global_broadcast", + "content": message_text, + "timestamp": Time.get_unix_time_from_system() + }) + + if success: + # 清空输入框 + input_message.text = "" + Toast.show("消息发送成功", Color.GREEN, 2.0, 1.0) + else: + Toast.show("消息发送失败", Color.RED, 2.0, 1.0) + +# 接收全服大喇叭消息 +func receive_broadcast_message(data: Dictionary): + var username = data.get("username", "匿名") + var player_name = data.get("player_name", "") + var content = data.get("content", "") + var timestamp = data.get("timestamp", Time.get_unix_time_from_system()) + + # 如果有玩家昵称,优先显示昵称 + var display_name = player_name if player_name != "" else username + + # 格式化时间 + var datetime = Time.get_datetime_dict_from_unix_time(timestamp) + var time_str = "%04d年%02d月%02d日 %02d:%02d:%02d" % [datetime.year, datetime.month, datetime.day, datetime.hour, datetime.minute, datetime.second] + + # 创建消息记录 + var message_record = { + "username": username, + "player_name": player_name, + "content": content, + "timestamp": timestamp, + "time_str": time_str, + "display_name": display_name + } + + # 按时间戳插入到正确位置(保持时间顺序) + var inserted = false + for i in range(message_history.size()): + if message_history[i].get("timestamp", 0) > timestamp: + message_history.insert(i, message_record) + inserted = true + break + + # 如果没有找到插入位置,说明是最新消息,添加到末尾 + if not inserted: + message_history.append(message_record) + + # 保持消息历史记录在限制范围内 + if message_history.size() > max_message_history: + message_history.pop_front() + + # 如果面板当前可见,立即更新显示 + if visible: + update_message_display() + + # 更新主界面的大喇叭显示 + if main_game and main_game.has_method("update_broadcast_display"): + main_game.update_broadcast_display(display_name + ": " + content) + + # 保存到本地 + save_chat_history() + +# 更新消息显示 +func update_message_display(): + var display_text = "" + + for message in message_history: + var username = message.get("username", "匿名") + var display_name = message.get("display_name", username) + var content = message.get("content", "") + var time_str = message.get("time_str", "") + ":" + + # 使用BBCode格式化消息 + var formatted_message = "[color=#FFD700][b]%s[/b][/color] [color=#87CEEB](%s)[/color] [color=#FFA500]%s[/color][color=#FFFFFF]%s[/color]\n\n" % [ + display_name, username, time_str, content + ] + + display_text += formatted_message + + # 更新显示 + message_contents.text = display_text + + # 滚动到底部 + call_deferred("scroll_to_bottom") + +# 滚动到底部 +func scroll_to_bottom(): + if message_contents.get_v_scroll_bar(): + message_contents.get_v_scroll_bar().value = message_contents.get_v_scroll_bar().max_value + +# 加载聊天历史记录 +func load_chat_history(): + # 请求服务器加载最近3天的历史消息 + request_history_from_server(current_load_days) + +# 从服务器请求历史消息 +func request_history_from_server(days: int): + if not tcp_network_manager_panel or not tcp_network_manager_panel.is_connected_to_server(): + # 如果没有连接服务器,从本地文件加载 + load_local_chat_history() + return + + # 向服务器请求历史消息 + var success = tcp_network_manager_panel.send_message({ + "type": "request_broadcast_history", + "days": days, + "timestamp": Time.get_unix_time_from_system() + }) + + if not success: + Toast.show("请求历史消息失败", Color.RED, 2.0, 1.0) + load_local_chat_history() + +# 从本地文件加载历史消息 +func load_local_chat_history(): + var file_path = "user://chat_history.json" + + if FileAccess.file_exists(file_path): + var file = FileAccess.open(file_path, FileAccess.READ) + if file: + var json_string = file.get_as_text() + file.close() + + var json = JSON.new() + var parse_result = json.parse(json_string) + + if parse_result == OK: + var data = json.data + if data is Array: + message_history = data + # 按时间戳排序消息历史(从旧到新) + message_history.sort_custom(func(a, b): return a.get("timestamp", 0) < b.get("timestamp", 0)) + update_message_display() + +# 加载更多历史消息 +func load_more_history(): + if current_load_days >= max_load_days: + Toast.show("已经加载了最多30天的历史消息", Color.YELLOW, 2.0, 1.0) + return + + # 增加加载天数 + current_load_days += 7 # 每次多加载7天 + if current_load_days > max_load_days: + current_load_days = max_load_days + + # 请求更多历史消息 + request_history_from_server(current_load_days) + Toast.show("正在加载更多历史消息...", Color.YELLOW, 2.0, 1.0) + +# 接收服务器返回的历史消息 +func receive_history_messages(data: Dictionary): + var messages = data.get("messages", []) + print("大喇叭面板收到历史消息: ", messages.size(), " 条") + + if messages.size() > 0: + # 清空当前消息历史 + message_history.clear() + + # 添加服务器返回的历史消息 + for msg in messages: + var message_record = { + "username": msg.get("username", "匿名"), + "player_name": msg.get("player_name", ""), + "content": msg.get("content", ""), + "timestamp": msg.get("timestamp", 0), + "time_str": msg.get("time_str", ""), + "display_name": msg.get("display_name", msg.get("username", "匿名")) + } + message_history.append(message_record) + print("添加消息: ", message_record.display_name, ": ", message_record.content) + + # 按时间戳排序消息历史(从旧到新) + message_history.sort_custom(func(a, b): return a.get("timestamp", 0) < b.get("timestamp", 0)) + print("排序后消息历史大小: ", message_history.size()) + + # 更新显示 + update_message_display() + + # 保存到本地 + save_chat_history() + + Toast.show("历史消息加载完成,共%d条消息" % messages.size(), Color.GREEN, 2.0, 1.0) + else: + Toast.show("没有找到历史消息", Color.YELLOW, 2.0, 1.0) + +# 保存聊天历史记录 +func save_chat_history(): + var file_path = "user://chat_history.json" + var file = FileAccess.open(file_path, FileAccess.WRITE) + + if file: + var json_string = JSON.stringify(message_history) + file.store_string(json_string) + file.close() + +# 面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + # 面板显示时,重新加载历史消息 + current_load_days = 3 # 重置为3天 + load_chat_history() + # 滚动到底部 + call_deferred("scroll_to_bottom") + else: + GlobalVariables.isZoomDisabled = false + # 面板隐藏时,保存聊天历史 + save_chat_history() + +# 清空消息历史 +func clear_message_history(): + message_history.clear() + update_message_display() + save_chat_history() + Toast.show("消息历史已清空", Color.YELLOW, 2.0, 1.0) + +# 获取最新消息用于主界面显示 +func get_latest_message() -> String: + print("get_latest_message 被调用,消息历史大小: ", message_history.size()) + if message_history.size() > 0: + # 确保消息按时间排序 + message_history.sort_custom(func(a, b): return a.get("timestamp", 0) < b.get("timestamp", 0)) + var latest = message_history[-1] + var result = latest.get("display_name", "匿名") + ": " + latest.get("content", "") + print("返回最新消息: ", result) + return result + print("没有消息历史,返回'暂无消息'") + return "暂无消息" diff --git a/Script/SmallPanel/GlobalServerBroadcastPanel.gd.uid b/Script/SmallPanel/GlobalServerBroadcastPanel.gd.uid new file mode 100644 index 0000000..3a5752f --- /dev/null +++ b/Script/SmallPanel/GlobalServerBroadcastPanel.gd.uid @@ -0,0 +1 @@ +uid://bakeq8tm6r4j4 diff --git a/GUI/LandPanel.gd b/Script/SmallPanel/LandPanel.gd similarity index 54% rename from GUI/LandPanel.gd rename to Script/SmallPanel/LandPanel.gd index 900aeea..ba2597f 100644 --- a/GUI/LandPanel.gd +++ b/Script/SmallPanel/LandPanel.gd @@ -5,41 +5,43 @@ var selected_lot_index = 0 #预添加常用的面板 @onready var main_game = get_node("/root/main") -@onready var land_panel = get_node("/root/main/UI/LandPanel") -@onready var crop_store_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var player_ranking_panel = get_node("/root/main/UI/PlayerRankingPanel") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") +@onready var lucky_draw_panel: LuckyDrawPanel = $'../../BigPanel/LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../../BigPanel/DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../../BigPanel/TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../../BigPanel/ItemStorePanel' +@onready var item_bag_panel: Panel = $'../../BigPanel/ItemBagPanel' +@onready var player_bag_panel: Panel = $'../../BigPanel/PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../../BigPanel/CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../../BigPanel/CropStorePanel' +@onready var player_ranking_panel: Panel = $'../../BigPanel/PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../../BigPanel/LoginPanel' + + +#土地面板功能 @onready var quit_button :Button = $Quit_Button -@onready var dig_button: Button = $Grid/Dig_Button #开垦 -@onready var water_button: Button = $Grid/Water_Button #浇水 -@onready var fertilize_button: Button = $Grid/Fertilize_Button #施肥 -@onready var upgrade_button: Button = $Grid/Upgrade_Button #升级 -@onready var plant_button: Button = $Grid/Plant_Button #种植 -@onready var remove_button: Button = $Grid/Remove_Button #铲除 -@onready var harvest_button: Button = $Grid/Harvest_Button #收获 -@onready var kill_insect_button: Button = $Grid/KillInsect_Button #杀虫 - - - -#下面这些来实时获取被点击地块的作物情况 -@onready var crop_texture_rect: TextureRect = $TextureRect #这个显示作物当前图片 -@onready var progress_bar: ProgressBar = $VBox/ProgressBar #显示作物当前生长进度 -@onready var cost: Label = $VBox/HBox1/cost #显示花费 -@onready var earn: Label = $VBox/HBox1/earn #显示收益 -@onready var growthtime: Label = $VBox/HBox1/growthtime #生长时间 -@onready var experience: Label = $VBox/HBox1/experience #收获经验 -@onready var canbuy: Label = $VBox/HBox2/canbuy #能否购买 -@onready var quality: Label = $VBox/HBox2/quality #作物品质 -@onready var weatherability: Label = $VBox/HBox2/weatherability #耐候性 -@onready var level: Label = $VBox/HBox2/level #种植等级 -@onready var description: Label = $VBox/HBox3/description #描述 - -#没有作物直接一键隐藏这个 -@onready var v_box: VBoxContainer = $VBox +@onready var dig_button: Button = $GroundFunctionGrid/Dig_Button +@onready var plant_button: Button = $GroundFunctionGrid/Plant_Button +@onready var harvest_button: Button = $GroundFunctionGrid/Harvest_Button +@onready var upgrade_button: Button = $GroundFunctionGrid/Upgrade_Button +#展示被点击土地上的作物信息,如果没有作物就隐藏crop_inform_v_box +@onready var crop_inform_v_box: VBoxContainer = $InformVBox/CropInformVBox +@onready var progress_bar: ProgressBar = $InformVBox/CropInformVBox/ProgressBar #作物生长进度 +@onready var cost: Label = $InformVBox/CropInformVBox/HBox1/cost #作物购买花费 +@onready var earn: Label = $InformVBox/CropInformVBox/HBox1/earn #作物收益 +@onready var growthtime: Label = $InformVBox/CropInformVBox/HBox1/growthtime #作物生长时间精确到天时分秒 +@onready var experience: Label = $InformVBox/CropInformVBox/HBox1/experience #作物收获经验 +@onready var canbuy: Label = $InformVBox/CropInformVBox/HBox2/canbuy #作物能否在商店购买 +@onready var quality: Label = $InformVBox/CropInformVBox/HBox2/quality #作物品质 +@onready var weatherability: Label = $InformVBox/CropInformVBox/HBox2/weatherability #作物耐候性 +@onready var level: Label = $InformVBox/CropInformVBox/HBox2/level #作物等级 +@onready var description: Label = $InformVBox/CropInformVBox/HBox3/description #作物描述 +@onready var crop_texture_rect: TextureRect = $CropImageVBox/CropTextureRect #作物当前图片 +#展示被点击土地的地块信息 +@onready var ground_level: Label = $InformVBox/GroundInformVBox/GroundLevel #土地等级 +@onready var ground_function: Label = $InformVBox/GroundInformVBox/GroundFunction #土地功能 @@ -47,18 +49,11 @@ var selected_lot_index = 0 func _ready(): self.hide() - quit_button.pressed.connect(self._on_quit_button_pressed) dig_button.pressed.connect(self._on_dig_button_pressed) - water_button.pressed.connect(self._on_water_button_pressed) - fertilize_button.pressed.connect(self._on_fertilize_button_pressed) upgrade_button.pressed.connect(self._on_upgrade_button_pressed) 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) - # 显示浇水、施肥、升级按钮 - water_button.visible = true - fertilize_button.visible = true upgrade_button.visible = true _update_button_texts() @@ -68,43 +63,32 @@ func show_panel(): self.show() _update_button_texts() _update_button_availability() - _update_crop_info() + _update_panel_information() # 添加更新面板信息 # 更新按钮可用性 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(): # 根据是否访问模式显示不同的按钮文本 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() @@ -138,8 +122,6 @@ func _update_upgrade_button_text(): else: upgrade_button.text = "选择地块" - -#=====================================土地面板功能处理========================================= #开垦 func _on_dig_button_pressed(): # 检查是否处于访问模式 @@ -163,8 +145,8 @@ func _on_dig_button_pressed(): return # 发送开垦土地请求到服务器 - if network_manager and network_manager.is_connected_to_server(): - if network_manager.sendDigGround(selected_lot_index): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + if tcp_network_manager_panel.sendDigGround(selected_lot_index): self.hide() else: Toast.show("发送开垦请求失败", Color.RED, 2.0, 1.0) @@ -226,8 +208,8 @@ func _on_water_button_pressed(): 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, target_username): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + if tcp_network_manager_panel.sendWaterCrop(selected_lot_index, target_username): self.hide() else: Toast.show("发送浇水请求失败", Color.RED, 2.0, 1.0) @@ -283,8 +265,8 @@ func _on_fertilize_button_pressed(): 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, target_username): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + if tcp_network_manager_panel.sendFertilizeCrop(selected_lot_index, target_username): self.hide() else: Toast.show("发送施肥请求失败", Color.RED, 2.0, 1.0) @@ -354,9 +336,9 @@ func _on_upgrade_button_pressed(): return # 发送升级请求到服务器 - if network_manager and network_manager.is_connected_to_server(): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): print("发送升级请求,地块索引: ", selected_lot_index, ",当前等级: ", current_level) - if network_manager.sendUpgradeLand(selected_lot_index): + if tcp_network_manager_panel.sendUpgradeLand(selected_lot_index): self.hide() else: Toast.show("发送升级请求失败", Color.RED, 2.0, 1.0) @@ -400,8 +382,8 @@ func _on_remove_button_pressed(): return # 发送铲除作物请求到服务器 - if network_manager and network_manager.is_connected_to_server(): - if network_manager.sendRemoveCrop(selected_lot_index): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + if tcp_network_manager_panel.sendRemoveCrop(selected_lot_index): self.hide() else: Toast.show("发送铲除请求失败", Color.RED, 2.0, 1.0) @@ -431,8 +413,8 @@ func _on_harvest_button_pressed(): 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): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): + if tcp_network_manager_panel.sendHarvestCrop(selected_lot_index, target_username): self.hide() else: Toast.show("发送收获请求失败", Color.RED, 2.0, 1.0) @@ -442,157 +424,215 @@ func _on_harvest_button_pressed(): Toast.show("网络未连接,无法" + action_text, Color.RED, 2.0, 1.0) self.hide() pass -#=====================================土地面板功能处理========================================= -#关闭土地面板按钮 + +#=================面板通用函数========================== +#退出 func _on_quit_button_pressed(): self.hide() pass - -# 更新作物信息显示 -func _update_crop_info(): - print("调试:_update_crop_info 被调用,selected_lot_index = ", selected_lot_index) - if not main_game or not main_game.farm_lots: - print("调试:main_game 或 farm_lots 不存在") - v_box.hide() - crop_texture_rect.hide() - return - +#刷新面板信息 +func _on_refresh_button_pressed() -> void: + print("刷新土地面板信息") + _update_panel_information() + Toast.show("面板信息已刷新", Color.GREEN, 1.5, 1.0) + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + pass + else: + GlobalVariables.isZoomDisabled = false + pass + +#=================面板通用函数========================== + +# 更新面板信息显示 +func _update_panel_information(): if selected_lot_index < 0 or selected_lot_index >= main_game.farm_lots.size(): - print("调试:selected_lot_index 无效: ", selected_lot_index, " / ", main_game.farm_lots.size()) - v_box.hide() - crop_texture_rect.hide() + print("无效的地块索引:", selected_lot_index) return var lot = main_game.farm_lots[selected_lot_index] - print("调试:地块数据: ", lot) - # 检查地块是否有作物 - if not lot.get("is_planted", false) or lot.get("crop_type", "") == "": - print("调试:地块没有作物") - v_box.hide() + # 更新土地信息 + _update_ground_information(lot) + + # 检查是否有作物 + if lot.get("is_planted", false) and lot.get("crop_type", "") != "": + # 有作物,显示作物信息 + crop_inform_v_box.show() + _update_crop_information(lot) + _update_crop_texture(lot) + else: + # 没有作物,隐藏作物信息框 + crop_inform_v_box.hide() crop_texture_rect.hide() - # 清除所有显示内容 - crop_texture_rect.texture = null + +# 更新作物信息 +func _update_crop_information(lot: Dictionary): + var crop_name = lot.get("crop_type", "") + var grow_time = float(lot.get("grow_time", 0)) + var max_grow_time = float(lot.get("max_grow_time", 1)) + var is_dead = lot.get("is_dead", false) + var is_watered = lot.get("已浇水", false) + var is_fertilized = lot.get("已施肥", false) + + # 从作物数据中获取详细信息 + if main_game.can_planted_crop.has(crop_name): + var crop_data = main_game.can_planted_crop[crop_name] + + # 更新作物基本信息 + cost.text = "花费:" + str(crop_data.get("花费", 0)) + "元" + earn.text = "收益:" + str(crop_data.get("收益", 0)) + "元" + experience.text = "经验:" + str(crop_data.get("经验", 0)) + "点" + quality.text = "品质:" + str(crop_data.get("品质", "未知")) + weatherability.text = "耐候性:" + str(crop_data.get("耐候性", 0)) + level.text = "等级:" + str(crop_data.get("等级", 1)) + description.text = "描述:" + str(crop_data.get("描述", "无描述")) + + # 更新生长时间显示 + var total_seconds = int(crop_data.get("生长时间", 0)) + var time_str = _format_time_display(total_seconds) + growthtime.text = "生长时间:" + time_str + + # 更新能否购买 + var can_buy = crop_data.get("能否购买", false) + canbuy.text = "可购买:" + ("是" if can_buy else "否") + else: + # 作物数据不存在,显示基本信息 + cost.text = "花费:未知" + earn.text = "收益:未知" + experience.text = "经验:未知" + quality.text = "品质:未知" + weatherability.text = "耐候性:未知" + level.text = "等级:未知" + description.text = "描述:作物数据未找到" + growthtime.text = "生长时间:未知" + canbuy.text = "可购买:未知" + + # 更新生长进度条 + if is_dead: progress_bar.value = 0 - cost.text = "" - earn.text = "" - growthtime.text = "" - experience.text = "" - canbuy.text = "" - quality.text = "" - weatherability.text = "" - level.text = "" - description.text = "" - return + progress_bar.modulate = Color.RED + progress_bar.show() + elif max_grow_time > 0: + var progress = clamp(grow_time / max_grow_time, 0.0, 1.0) * 100 + progress_bar.value = progress + + # 根据生长状态设置进度条颜色 + if progress >= 100: + progress_bar.modulate = Color.GREEN # 成熟 + elif is_fertilized: + progress_bar.modulate = Color.YELLOW # 已施肥 + elif is_watered: + progress_bar.modulate = Color.CYAN # 已浇水 + else: + progress_bar.modulate = Color.WHITE # 正常生长 + + progress_bar.show() + else: + progress_bar.hide() + +# 更新作物图片 +func _update_crop_texture(lot: Dictionary): + var crop_name = lot.get("crop_type", "") + var grow_time = float(lot.get("grow_time", 0)) + var max_grow_time = float(lot.get("max_grow_time", 1)) + var is_dead = lot.get("is_dead", false) - # 获取作物类型 - var crop_type = lot.get("crop_type", "") - print("调试:作物类型: ", crop_type) - - # 从网络管理器获取作物数据 - var crop_data = null - if network_manager and network_manager.has_method("get_crop_data"): - crop_data = network_manager.get_crop_data() - - # 如果没有作物数据,尝试从主游戏获取 - if not crop_data and main_game and main_game.has_method("get_crop_data"): - crop_data = main_game.get_crop_data() - - # 如果仍然没有作物数据,隐藏信息面板 - if not crop_data or not crop_data.has(crop_type): - print("调试:没有作物数据或作物类型不存在: ", crop_type) - v_box.hide() + if crop_name == "": crop_texture_rect.hide() return - print("调试:找到作物数据,开始显示作物信息") - - # 显示作物信息面板 - v_box.show() crop_texture_rect.show() - # 获取作物信息 - var crop_info = crop_data[crop_type] - print("调试:作物信息: ", crop_info) - - # 更新作物图片 - var crop_texture_path = "res://assets/作物/" + crop_type + "/0.webp" - if ResourceLoader.exists(crop_texture_path): - var texture = load(crop_texture_path) - crop_texture_rect.texture = texture + # 如果作物已死亡,显示死亡状态 + if is_dead: + crop_texture_rect.modulate = Color.GRAY + # 可以在这里设置死亡图片,暂时使用灰色调 else: - # 如果没有序列帧,尝试加载单个图片 - crop_texture_path = "res://assets/作物/" + crop_type + ".webp" - if ResourceLoader.exists(crop_texture_path): - var texture = load(crop_texture_path) + crop_texture_rect.modulate = Color.WHITE + + # 计算生长进度 + var progress = 0.0 + if max_grow_time > 0: + progress = clamp(grow_time / max_grow_time, 0.0, 1.0) + + # 获取对应的作物图片 + var texture: Texture2D = null + if main_game.crop_texture_manager: + texture = main_game.crop_texture_manager.get_texture_by_progress(crop_name, progress) + + if texture: crop_texture_rect.texture = texture else: - # 加载默认图片 - crop_texture_path = "res://assets/作物/默认/0.webp" - if ResourceLoader.exists(crop_texture_path): - var texture = load(crop_texture_path) - crop_texture_rect.texture = texture + # 如果没有找到图片,尝试加载默认图片 + var default_path = "res://assets/作物/默认/0.webp" + if ResourceLoader.exists(default_path): + crop_texture_rect.texture = load(default_path) else: - crop_texture_rect.texture = null - - # 更新进度条 - var grow_time = lot.get("grow_time", 0) - var max_grow_time = lot.get("max_grow_time", 1) - var progress = float(grow_time) / float(max_grow_time) * 100.0 - progress_bar.value = min(progress, 100.0) - - # 更新作物信息标签 - cost.text = "花费: ¥" + str(crop_info.get("花费", 0)) - earn.text = "收益: ¥" + str(crop_info.get("收益", 0)) - - # 格式化生长时间 - var growth_seconds = crop_info.get("生长时间", 0) - var growth_time_text = _format_time_seconds(growth_seconds) - growthtime.text = "生长时间: " + growth_time_text - - experience.text = "经验: " + str(crop_info.get("经验", 0)) - canbuy.text = "可购买: " + ("是" if crop_info.get("能否购买", false) else "否") - quality.text = "品质: " + str(crop_info.get("品质", "普通")) - weatherability.text = "耐候性: " + str(crop_info.get("耐候性", 0)) - level.text = "等级要求: " + str(crop_info.get("等级", 1)) - - # 检查是否为杂草,显示特殊描述并控制收获按钮 - var is_weed = crop_info.get("是否杂草", false) - if is_weed: - description.text = "描述: " + str(crop_info.get("描述", "无描述")) + " [杂草不能收获,只能铲除]" - # 隐藏收获按钮(杂草不能收获) - harvest_button.hide() - else: - description.text = "描述: " + str(crop_info.get("描述", "无描述")) - # 显示收获按钮并设置正常文本 - harvest_button.show() - if main_game.is_visiting_mode: - harvest_button.text = "偷菜" - else: - harvest_button.text = "收获" + crop_texture_rect.hide() -# 格式化时间(秒转换为时分秒) -func _format_time_seconds(seconds: int) -> String: - var hours = seconds / 3600 - var minutes = (seconds % 3600) / 60 - var secs = seconds % 60 +# 更新土地信息 +func _update_ground_information(lot: Dictionary): + var land_level = int(lot.get("土地等级", 0)) + var is_diged = lot.get("is_diged", false) - if hours > 0: - return str(hours) + "时" + str(minutes) + "分" + str(secs) + "秒" - elif minutes > 0: - return str(minutes) + "分" + str(secs) + "秒" + # 土地等级配置 + var level_config = { + 0: {"name": "普通土地", "color": Color.WHITE, "speed": "1倍"}, + 1: {"name": "黄土地", "color": Color(1.0, 1.0, 0.0), "speed": "2倍"}, + 2: {"name": "红土地", "color": Color(1.0, 0.41, 0.0), "speed": "4倍"}, + 3: {"name": "紫土地", "color": Color(0.55, 0.29, 0.97), "speed": "6倍"}, + 4: {"name": "黑土地", "color": Color(0.33, 0.4, 0.59), "speed": "10倍"} + } + + if is_diged: + if level_config.has(land_level): + var config = level_config[land_level] + ground_level.text = "土地等级:" + config["name"] + " (Lv." + str(land_level) + ")" + ground_function.text = "生长速度:" + config["speed"] + ground_level.modulate = config["color"] + else: + ground_level.text = "土地等级:未知等级 (Lv." + str(land_level) + ")" + ground_function.text = "生长速度:未知" + ground_level.modulate = Color.WHITE else: - return str(secs) + "秒" - - - - + ground_level.text = "土地状态:未开垦" + ground_function.text = "功能:需要开垦后才能使用" + ground_level.modulate = Color.GRAY + +# 格式化时间显示 +func _format_time_display(total_seconds: int) -> String: + var time_str = "" + # 定义时间单位换算 + var SECONDS_PER_MINUTE = 60 + var SECONDS_PER_HOUR = 3600 + var SECONDS_PER_DAY = 86400 + # 计算各时间单位 + var days = total_seconds / SECONDS_PER_DAY + total_seconds %= SECONDS_PER_DAY + var hours = total_seconds / SECONDS_PER_HOUR + total_seconds %= SECONDS_PER_HOUR + var minutes = total_seconds / SECONDS_PER_MINUTE + var seconds = total_seconds % SECONDS_PER_MINUTE + # 构建时间字符串(只显示有值的单位) + if days > 0: + time_str += str(days) + "天" + if hours > 0: + time_str += str(hours) + "小时" + if minutes > 0: + time_str += str(minutes) + "分钟" + if seconds > 0: + time_str += str(seconds) + "秒" + return time_str if time_str != "" else "0秒" diff --git a/GUI/LandPanel.gd.uid b/Script/SmallPanel/LandPanel.gd.uid similarity index 100% rename from GUI/LandPanel.gd.uid rename to Script/SmallPanel/LandPanel.gd.uid diff --git a/GUI/OneClickPlantPanel.gd b/Script/SmallPanel/OneClickPlantPanel.gd similarity index 95% rename from GUI/OneClickPlantPanel.gd rename to Script/SmallPanel/OneClickPlantPanel.gd index 6c9ad99..8685002 100644 --- a/GUI/OneClickPlantPanel.gd +++ b/Script/SmallPanel/OneClickPlantPanel.gd @@ -25,8 +25,18 @@ extends Panel # 引用主游戏和其他面板 @onready var main_game = get_node("/root/main") -@onready var player_bag_panel = get_node("/root/main/UI/PlayerBagPanel") -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") + +@onready var lucky_draw_panel: LuckyDrawPanel = $'../../BigPanel/LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../../BigPanel/DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../../BigPanel/TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../../BigPanel/ItemStorePanel' +@onready var item_bag_panel: Panel = $'../../BigPanel/ItemBagPanel' +@onready var player_bag_panel: Panel = $'../../BigPanel/PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../../BigPanel/CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../../BigPanel/CropStorePanel' +@onready var player_ranking_panel: Panel = $'../../BigPanel/PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../../BigPanel/LoginPanel' + # 种植配置 # 注意:地块的实际布局可能与代码设想的不同,这里提供可配置的接口 @@ -480,14 +490,14 @@ func _finish_planting(): # 在指定索引处种植 func _plant_at_index(lot_index: int): - if network_manager and network_manager.sendPlantCrop(lot_index, selected_crop_name): + if tcp_network_manager_panel and tcp_network_manager_panel.sendPlantCrop(lot_index, selected_crop_name): pass else: print("发送种植请求失败:地块 %d" % lot_index) # 在指定索引处种植指定种子(用于随机种植) func _plant_at_index_with_seed(lot_index: int, seed_name: String): - if network_manager and network_manager.sendPlantCrop(lot_index, seed_name): + if tcp_network_manager_panel and tcp_network_manager_panel.sendPlantCrop(lot_index, seed_name): pass else: print("发送种植请求失败:地块 %d,种子 %s" % [lot_index, seed_name]) diff --git a/GUI/OneClickPlantPanel.gd.uid b/Script/SmallPanel/OneClickPlantPanel.gd.uid similarity index 100% rename from GUI/OneClickPlantPanel.gd.uid rename to Script/SmallPanel/OneClickPlantPanel.gd.uid diff --git a/GUI/OnlineGiftPanel.gd b/Script/SmallPanel/OnlineGiftPanel.gd similarity index 86% rename from GUI/OnlineGiftPanel.gd rename to Script/SmallPanel/OnlineGiftPanel.gd index 558055b..17de1c9 100644 --- a/GUI/OnlineGiftPanel.gd +++ b/Script/SmallPanel/OnlineGiftPanel.gd @@ -9,8 +9,18 @@ extends Panel @onready var three_hours: Button = $Grid/ThreeHours @onready var five_hours: Button = $Grid/FiveHours -# 网络管理器引用,运行时获取 -@onready var network_manager = get_node("/root/main/UI/TCPNetworkManager") +@onready var lucky_draw_panel: LuckyDrawPanel = $'../../BigPanel/LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../../BigPanel/DailyCheckInPanel' +@onready var tcp_network_manager_panel: Panel = $'../../BigPanel/TCPNetworkManagerPanel' +@onready var item_store_panel: Panel = $'../../BigPanel/ItemStorePanel' +@onready var item_bag_panel: Panel = $'../../BigPanel/ItemBagPanel' +@onready var player_bag_panel: Panel = $'../../BigPanel/PlayerBagPanel' +@onready var crop_warehouse_panel: Panel = $'../../BigPanel/CropWarehousePanel' +@onready var crop_store_panel: Panel = $'../../BigPanel/CropStorePanel' +@onready var player_ranking_panel: Panel = $'../../BigPanel/PlayerRankingPanel' +@onready var login_panel: PanelContainer = $'../../BigPanel/LoginPanel' + + # 在线礼包数据结构 var online_gift_config = { @@ -172,11 +182,11 @@ func _on_gift_button_pressed(gift_name: String): #请求在线礼包数据 func request_online_gift_data(): - network_manager.sendGetOnlineGiftData() + tcp_network_manager_panel.sendGetOnlineGiftData() #请求领取在线礼包 func request_claim_online_gift(gift_name: String): - network_manager.sendClaimOnlineGift(gift_name) + tcp_network_manager_panel.sendClaimOnlineGift(gift_name) #处理在线礼包数据响应 func handle_online_gift_data_response(data: Dictionary): diff --git a/GUI/OnlineGiftPanel.gd.uid b/Script/SmallPanel/OnlineGiftPanel.gd.uid similarity index 100% rename from GUI/OnlineGiftPanel.gd.uid rename to Script/SmallPanel/OnlineGiftPanel.gd.uid diff --git a/Script/SmallPanel/PetInformPanel.gd b/Script/SmallPanel/PetInformPanel.gd new file mode 100644 index 0000000..e7c8167 --- /dev/null +++ b/Script/SmallPanel/PetInformPanel.gd @@ -0,0 +1,675 @@ +extends Panel +@onready var pet_image: TextureRect = $PetImage #显示宠物图片 +@onready var pet_name_edit: LineEdit = $InformScroll/VBox/PetNameHBox/PetNameEdit #编辑宠物名字 +@onready var pet_inform: RichTextLabel = $InformScroll/VBox/PetInform #显示宠物其他信息 + +@onready var quit_button: Button = $QuitButton +@onready var refresh_button: Button = $RefreshButton + +@onready var edit_inform_button: Button = $ButtonHBox/EditInformButton +@onready var feed_button: Button = $ButtonHBox/FeedButton #宠物喂食 +@onready var use_item_button: Button = $ButtonHBox/UseItemButton #宠物使用道具 +@onready var patro_button: Button = $ButtonHBox/PatroButton #宠物农场巡逻 +@onready var battle_button: Button = $ButtonHBox/BattleButton #宠物设置为出战 + + +# 当前显示的宠物数据 +var current_pet_data: Dictionary = {} +var current_pet_name: String = "" + +# 游戏节点引用 +@onready var main_game = get_node("/root/main") + +@onready var tcp_network_manager_panel: Panel = $'../../BigPanel/TCPNetworkManagerPanel' +@onready var lucky_draw_panel: LuckyDrawPanel = $'../../BigPanel/LuckyDrawPanel' +@onready var daily_check_in_panel: DailyCheckInPanel = $'../../BigPanel/DailyCheckInPanel' +@onready var player_ranking_panel: Panel = $'../../BigPanel/PlayerRankingPanel' +@onready var item_store_panel: Panel = $'../../BigPanel/ItemStorePanel' +@onready var crop_warehouse_panel: Panel = $'../../BigPanel/CropWarehousePanel' +@onready var login_panel: PanelContainer = $'../../BigPanel/LoginPanel' +@onready var player_bag_panel: Panel = $'../../BigPanel/PlayerBagPanel' +@onready var crop_store_panel: Panel = $'../../BigPanel/CropStorePanel' +@onready var item_bag_panel: Panel = $'../../BigPanel/ItemBagPanel' +@onready var pet_store_panel: Panel = $'../../BigPanel/PetStorePanel' +@onready var pet_bag_panel: Panel = $'../../BigPanel/PetBagPanel' +@onready var pet_fight_panel: Panel = $'../../BigPanel/PetFightPanel' + + + + +func _ready() -> void: + quit_button.pressed.connect(self.on_quit_button_pressed) + refresh_button.pressed.connect(self.on_refresh_button_pressed) + edit_inform_button.pressed.connect(self.on_edit_inform_button_pressed) + feed_button.pressed.connect(self.on_feed_button_pressed) + use_item_button.pressed.connect(self.on_use_item_button_pressed) + patro_button.pressed.connect(self._on_patrol_button_pressed) + battle_button.pressed.connect(self._on_battle_button_pressed) + + # 启用bbcode支持 + pet_inform.bbcode_enabled = true + + # 默认隐藏面板 + self.hide() + +# 显示宠物信息的主函数 +func show_pet_info(pet_name: String, pet_data: Dictionary): + current_pet_name = pet_name + current_pet_data = pet_data + + # 设置宠物图片 + _set_pet_image(pet_name) + + # 设置宠物名称 + var basic_info = pet_data.get("基本信息", {}) + var pet_owner_name = basic_info.get("宠物名称", pet_name) + pet_name_edit.text = pet_owner_name + + # 设置宠物详细信息 + _set_pet_detailed_info(pet_name, pet_data) + + # 刷新巡逻按钮状态 + _refresh_patrol_button() + + # 刷新出战按钮状态 + _refresh_battle_button() + +# 设置宠物图片 +func _set_pet_image(pet_name: String): + var texture = _get_pet_texture(pet_name) + if texture: + pet_image.texture = texture + pet_image.visible = true + else: + pet_image.visible = false + +# 获取宠物纹理 +func _get_pet_texture(pet_name: String) -> Texture2D: + var pet_config = _load_pet_config() + if pet_config.has(pet_name): + var pet_info = pet_config[pet_name] + var scene_path = pet_info.get("场景路径", "") + + if scene_path != "" and ResourceLoader.exists(scene_path): + var pet_scene = load(scene_path) + if pet_scene: + var pet_instance = pet_scene.instantiate() + var pet_image_node = pet_instance.get_node_or_null("PetImage") + if pet_image_node and pet_image_node.sprite_frames: + var animation_names = pet_image_node.sprite_frames.get_animation_names() + if animation_names.size() > 0: + var default_animation = animation_names[0] + var frame_count = pet_image_node.sprite_frames.get_frame_count(default_animation) + if frame_count > 0: + var texture = pet_image_node.sprite_frames.get_frame_texture(default_animation, 0) + pet_instance.queue_free() + return texture + pet_instance.queue_free() + return null + +# 加载宠物配置数据 +func _load_pet_config() -> Dictionary: + var file = FileAccess.open("res://Data/pet_data.json", FileAccess.READ) + if file == null: + return {} + + var json = JSON.new() + var json_string = file.get_as_text() + file.close() + + var parse_result = json.parse(json_string) + if parse_result != OK: + return {} + + return json.data + +# 设置宠物详细信息(使用bbcode美化) +func _set_pet_detailed_info(pet_name: String, pet_data: Dictionary): + var basic_info = pet_data.get("基本信息", {}) + var level_exp = pet_data.get("等级经验", {}) + var purchase_info = pet_data.get("购买信息", {}) + var health_defense = pet_data.get("生命与防御", {}) + var attack_info = pet_data.get("基础攻击属性", {}) + var movement = pet_data.get("移动与闪避", {}) + var element = pet_data.get("元素属性", {}) + var quality = pet_data.get("品质系统", {}) + + # 计算宠物年龄 + var pet_birthday = basic_info.get("生日", "") + var pet_age = 0 + if pet_birthday != "": + pet_age = _calculate_pet_age(pet_birthday) + + # 使用bbcode美化显示 + var info_text = "" + + # 基本信息 + info_text += "[color=pink][b]🐾 基本信息[/b][/color]\n" + info_text += "宠物类型:[color=yellow]" + str(basic_info.get("宠物类型", "未知")) + "[/color]\n" + info_text += "宠物编号:[color=gray]" + str(basic_info.get("宠物ID", "无")) + "[/color]\n" + info_text += "性格特点:[color=cyan]" + str(basic_info.get("性格", "活泼")) + "[/color]\n" + info_text += "出生日期:[color=green]" + str(pet_birthday) + "[/color]\n" + info_text += "年龄天数:[color=orange]" + str(pet_age) + " 天[/color]\n" + + # 等级经验 + info_text += "[color=gold][b]⭐ 等级经验[/b][/color]\n" + info_text += "当前等级:[color=yellow]" + str(level_exp.get("宠物等级", 1)) + " 级[/color]\n" + info_text += "经验值:[color=cyan]" + str(level_exp.get("当前经验", 0)) + "/" + str(level_exp.get("最大经验", 100)) + "[/color]\n" + info_text += "亲密度:[color=pink]" + str(level_exp.get("亲密度", 0)) + "/" + str(level_exp.get("最大亲密度", 1000)) + "[/color]\n\n" + + # 生命与防御 + info_text += "[color=red][b]❤️ 生命与防御[/b][/color]\n" + info_text += "生命值:[color=red]" + str(health_defense.get("当前生命值", 0)) + "/" + str(health_defense.get("最大生命值", 0)) + "[/color]\n" + info_text += "护甲值:[color=blue]" + str(health_defense.get("当前护甲值", 0)) + "/" + str(health_defense.get("最大护甲值", 0)) + "[/color]\n" + info_text += "护盾值:[color=cyan]" + str(health_defense.get("当前护盾值", 0)) + "/" + str(health_defense.get("最大护盾值", 0)) + "[/color]\n" + info_text += "生命恢复:[color=lime]" + str(health_defense.get("生命恢复速度", 0)) + "/秒[/color]\n\n" + + # 攻击属性 + info_text += "[color=orange][b]⚔️ 攻击属性[/b][/color]\n" + info_text += "攻击类型:[color=yellow]" + _get_attack_type_name(str(attack_info.get("攻击类型", "MELEE"))) + "[/color]\n" + info_text += "攻击伤害:[color=red]" + str(attack_info.get("基础攻击伤害", 0)) + " 点[/color]\n" + info_text += "攻击距离:[color=green]" + str(attack_info.get("攻击距离", 0)) + " 像素[/color]\n" + info_text += "暴击几率:[color=purple]" + str(attack_info.get("暴击率", 0) * 100) + "%[/color]\n" + info_text += "暴击倍数:[color=purple]" + str(attack_info.get("暴击伤害倍数", 1.0)) + " 倍[/color]\n" + info_text += "生命汲取:[color=magenta]" + str(attack_info.get("生命汲取", 0) * 100) + "%[/color]\n\n" + + # 移动与闪避 + info_text += "[color=green][b]🏃 移动与闪避[/b][/color]\n" + info_text += "移动速度:[color=cyan]" + str(movement.get("移动速度", 0)) + " 像素/秒[/color]\n" + info_text += "闪避几率:[color=yellow]" + str(movement.get("闪避率", 0) * 100) + "%[/color]\n" + info_text += "击退力度:[color=red]" + str(movement.get("击退力度", 0)) + " 点[/color]\n" + info_text += "击退抗性:[color=blue]" + str(movement.get("击退抗性", 0) * 100) + "%[/color]\n\n" + + # 元素属性 + info_text += "[color=purple][b]🔥 元素属性[/b][/color]\n" + info_text += "元素类型:[color=yellow]" + _get_element_name(str(element.get("元素类型", "NONE"))) + "[/color]\n" + info_text += "元素伤害:[color=orange]" + str(element.get("元素克制额外伤害", 0)) + " 点[/color]\n\n" + + # 品质系统 + var quality_text = str(quality.get("宠物品质", "COMMON")) + var quality_color = "white" + var quality_name = "" + if quality_text == "COMMON": + quality_color = "gray" + quality_name = "普通" + elif quality_text == "RARE": + quality_color = "blue" + quality_name = "稀有" + elif quality_text == "EPIC": + quality_color = "purple" + quality_name = "史诗" + elif quality_text == "LEGENDARY": + quality_color = "orange" + quality_name = "传说" + else: + quality_name = quality_text + + info_text += "[color=gold][b]✨ 品质系统[/b][/color]\n" + info_text += "宠物品质:[color=" + quality_color + "]" + quality_name + "[/color]\n\n" + + # 购买信息 + info_text += "[color=gold][b]💰 购买信息[/b][/color]\n" + info_text += "购买价格:[color=yellow]" + str(purchase_info.get("购买价格", 0)) + " 金币[/color]\n" + + # 设置文本 + pet_inform.text = info_text + + +# 获取攻击类型名称 +func _get_attack_type_name(attack_type: String) -> String: + match attack_type: + "MELEE": + return "近战攻击" + "RANGED": + return "远程攻击" + "MAGIC": + return "魔法攻击" + _: + return attack_type + +# 获取元素类型名称 +func _get_element_name(element_type: String) -> String: + match element_type: + "NONE": + return "无元素" + "FIRE": + return "火元素" + "WATER": + return "水元素" + "EARTH": + return "土元素" + "AIR": + return "风元素" + "LIGHT": + return "光元素" + "DARK": + return "暗元素" + _: + return element_type + +# 计算宠物年龄(以天为单位) +func _calculate_pet_age(birthday: String) -> int: + if birthday == "": + return 0 + + # 解析生日字符串,格式:2025年7月5日10时7分25秒 + var birthday_parts = birthday.split("年") + if birthday_parts.size() < 2: + return 0 + + var year = int(birthday_parts[0]) + var rest = birthday_parts[1] + + var month_parts = rest.split("月") + if month_parts.size() < 2: + return 0 + + var month = int(month_parts[0]) + var rest2 = month_parts[1] + + var day_parts = rest2.split("日") + if day_parts.size() < 2: + return 0 + + var day = int(day_parts[0]) + var rest3 = day_parts[1] + + var hour_parts = rest3.split("时") + if hour_parts.size() < 2: + return 0 + + var hour = int(hour_parts[0]) + var rest4 = hour_parts[1] + + var minute_parts = rest4.split("分") + if minute_parts.size() < 2: + return 0 + + var minute = int(minute_parts[0]) + var rest5 = minute_parts[1] + + var second_parts = rest5.split("秒") + if second_parts.size() < 1: + return 0 + + var second = int(second_parts[0]) + + # 将生日转换为Unix时间戳 + var birthday_dict = { + "year": year, + "month": month, + "day": day, + "hour": hour, + "minute": minute, + "second": second + } + + var birthday_timestamp = Time.get_unix_time_from_datetime_dict(birthday_dict) + var current_timestamp = Time.get_unix_time_from_system() + + # 计算天数差 + var age_seconds = current_timestamp - birthday_timestamp + var age_days = int(age_seconds / (24 * 3600)) + + return max(0, age_days) + +func on_quit_button_pressed(): + self.hide() + +#刷新面板 +func on_refresh_button_pressed(): + if current_pet_name != "" and current_pet_data.size() > 0: + show_pet_info(current_pet_name, current_pet_data) + +#编辑宠物信息按钮(目前就只有宠物名字) +func on_edit_inform_button_pressed(): + if current_pet_data.is_empty(): + Toast.show("没有选择宠物", Color.RED, 2.0, 1.0) + return + + # 获取输入框中的新名字 + var new_pet_name = pet_name_edit.text.strip_edges() + + # 检查名字是否为空 + if new_pet_name == "": + Toast.show("宠物名字不能为空", Color.RED, 2.0, 1.0) + return + + # 检查名字长度 + if new_pet_name.length() > 20: + Toast.show("宠物名字太长,最多20个字符", Color.RED, 2.0, 1.0) + return + + # 获取当前宠物名字 + var basic_info = current_pet_data.get("基本信息", {}) + var current_name = basic_info.get("宠物名称", "") + + # 检查名字是否有变化 + if new_pet_name == current_name: + Toast.show("宠物名字没有变化", Color.YELLOW, 2.0, 1.0) + return + + # 显示确认对话框 + _show_rename_confirmation_dialog(new_pet_name, current_name) + +# 显示重命名确认对话框 +func _show_rename_confirmation_dialog(new_name: String, old_name: String): + var confirm_dialog = AcceptDialog.new() + confirm_dialog.dialog_text = str( + "确认修改宠物名字?\n\n" + + "原名字:" + old_name + "\n" + + "新名字:" + new_name + "\n\n" + + "修改后将无法撤销!" + ) + confirm_dialog.title = "宠物重命名确认" + confirm_dialog.ok_button_text = "确认修改" + confirm_dialog.add_cancel_button("取消") + + # 添加到场景 + add_child(confirm_dialog) + + # 连接信号 + confirm_dialog.confirmed.connect(_on_confirm_rename_pet.bind(new_name, confirm_dialog)) + confirm_dialog.canceled.connect(_on_cancel_rename_pet.bind(confirm_dialog)) + + # 显示对话框 + confirm_dialog.popup_centered() + +# 确认重命名宠物 +func _on_confirm_rename_pet(new_name: String, dialog: AcceptDialog): + # 发送重命名请求到服务器 + _send_rename_pet_request(new_name) + dialog.queue_free() + +# 取消重命名宠物 +func _on_cancel_rename_pet(dialog: AcceptDialog): + # 恢复原名字 + var basic_info = current_pet_data.get("基本信息", {}) + var original_name = basic_info.get("宠物名称", "") + pet_name_edit.text = original_name + dialog.queue_free() + +# 发送重命名宠物请求 +func _send_rename_pet_request(new_name: String): + if not tcp_network_manager_panel or not tcp_network_manager_panel.has_method("sendRenamePet"): + Toast.show("网络功能不可用", Color.RED, 2.0, 1.0) + return + + # 获取宠物ID + var basic_info = current_pet_data.get("基本信息", {}) + var pet_id = basic_info.get("宠物ID", "") + + if pet_id == "": + Toast.show("宠物ID无效", Color.RED, 2.0, 1.0) + return + + # 发送重命名请求 + if tcp_network_manager_panel.sendRenamePet(pet_id, new_name): + pass + else: + Toast.show("重命名请求发送失败", Color.RED, 2.0, 1.0) + +# 处理重命名成功的响应(从宠物背包或其他地方调用) +func on_rename_pet_success(pet_id: String, new_name: String): + # 更新当前宠物数据 + if current_pet_data.get("基本信息", {}).get("宠物ID", "") == pet_id: + current_pet_data["基本信息"]["宠物名称"] = new_name + pet_name_edit.text = new_name + Toast.show("宠物名字修改成功!", Color.GREEN, 2.0, 1.0) + + # 刷新显示 + show_pet_info(current_pet_name, current_pet_data) + +#喂养宠物 +func on_feed_button_pressed(): + if current_pet_data.is_empty(): + Toast.show("没有选择宠物", Color.RED, 2.0, 1.0) + return + + # 检查是否为访问模式 + if main_game.is_visiting_mode: + Toast.show("访问模式下无法喂养宠物", Color.ORANGE, 2.0, 1.0) + return + + + if crop_warehouse_panel: + # 设置为宠物喂食模式 + crop_warehouse_panel.set_pet_feeding_mode(true, current_pet_data) + crop_warehouse_panel.show() + + pet_bag_panel.hide() + self.hide() + else: + Toast.show("无法找到作物仓库面板", Color.RED, 2.0, 1.0) + +#对宠物使用道具 +func on_use_item_button_pressed(): + # 检查是否有选择的宠物 + if current_pet_data.is_empty(): + Toast.show("请先选择一个宠物", Color.RED, 2.0, 1.0) + return + + # 检查是否为访问模式 + if main_game.is_visiting_mode: + Toast.show("访问模式下无法使用道具", Color.ORANGE, 2.0, 1.0) + return + + if item_bag_panel: + # 设置道具背包面板为宠物使用道具模式 + item_bag_panel.set_pet_item_mode(true, current_pet_data) + item_bag_panel.show() + + # 隐藏宠物信息面板 + self.hide() + pet_bag_panel.hide() + + Toast.show("请选择要使用的宠物道具", Color.CYAN, 3.0, 1.0) + else: + Toast.show("无法找到道具背包面板", Color.RED, 2.0, 1.0) + +# 巡逻按钮点击事件 +func _on_patrol_button_pressed(): + #直接在客户端 + patro_button.text = "取消巡逻" + patro_button.modulate = Color.ORANGE + + + if current_pet_data.is_empty(): + Toast.show("没有选择宠物", Color.RED, 2.0, 1.0) + return + + # 检查是否为访问模式 + if main_game.is_visiting_mode: + Toast.show("访问模式下无法设置巡逻宠物", Color.ORANGE, 2.0, 1.0) + return + + # 获取宠物ID + var basic_info = current_pet_data.get("基本信息", {}) + var pet_id = basic_info.get("宠物ID", "") + + if pet_id == "": + Toast.show("宠物ID无效", Color.RED, 2.0, 1.0) + return + + # 检查当前宠物是否已在巡逻 + var is_currently_patrolling = _is_pet_patrolling(pet_id) + + if is_currently_patrolling: + # 取消巡逻 + _remove_from_patrol(pet_id) + else: + # 添加到巡逻 + _add_to_patrol(pet_id) + +# 检查宠物是否正在巡逻(基于服务器数据) +func _is_pet_patrolling(pet_id: String) -> bool: + # 检查服务器的巡逻宠物数据 + if main_game.patrol_pets == null or main_game.patrol_pets.size() == 0: + return false + + # 遍历巡逻宠物列表,查找匹配的ID + for patrol_pet in main_game.patrol_pets: + var patrol_pet_id = patrol_pet.get("基本信息", {}).get("宠物ID", "") + if patrol_pet_id == pet_id: + return true + + return false + +# 添加到巡逻(新的基于ID的逻辑) +func _add_to_patrol(pet_id: String): + # 检查巡逻宠物数量限制(目前服务器设置最多3个) + if main_game.patrol_pets != null and main_game.patrol_pets.size() >= 3: + Toast.show("最多只能设置3个巡逻宠物", Color.ORANGE, 3.0, 1.0) + return + + # 目前简化为只允许一个巡逻宠物 + if main_game.patrol_pets != null and main_game.patrol_pets.size() >= 1: + Toast.show("已有宠物在巡逻,请先取消当前巡逻", Color.ORANGE, 3.0, 1.0) + return + + # 如果不是访问模式,则发送到服务器保存 + if not main_game.is_visiting_mode: + # 发送到服务器保存 + tcp_network_manager_panel.sendSetPatrolPet(pet_id, true) + var pet_name = current_pet_data.get("基本信息", {}).get("宠物名称", "未知") + else: + Toast.show("访问模式下无法设置巡逻宠物", Color.ORANGE, 2.0, 1.0) + +# 从巡逻中移除(新的基于ID的逻辑) +func _remove_from_patrol(pet_id: String): + # 如果不是访问模式,则发送到服务器保存 + if not main_game.is_visiting_mode: + # 发送到服务器移除 + tcp_network_manager_panel.sendSetPatrolPet(pet_id, false) + else: + Toast.show("访问模式下无法取消巡逻宠物", Color.ORANGE, 2.0, 1.0) + +# 更新巡逻按钮文本 +func _update_patrol_button_text(is_patrolling: bool): + if is_patrolling: + patro_button.text = "取消巡逻" + patro_button.modulate = Color.ORANGE + else: + patro_button.text = "设置巡逻" + patro_button.modulate = Color.GREEN + +# 刷新巡逻按钮状态(在显示宠物信息时调用) +func _refresh_patrol_button(): + if current_pet_data.is_empty(): + return + + var basic_info = current_pet_data.get("基本信息", {}) + var pet_id = basic_info.get("宠物ID", "") + + if pet_id == "": + return + + var is_patrolling = _is_pet_patrolling(pet_id) + _update_patrol_button_text(is_patrolling) + +# 出战按钮点击事件 +func _on_battle_button_pressed(): + if current_pet_data.is_empty(): + Toast.show("没有选择宠物", Color.RED, 2.0, 1.0) + return + + # 检查是否为访问模式 + if main_game.is_visiting_mode: + Toast.show("访问模式下无法设置出战宠物", Color.ORANGE, 2.0, 1.0) + return + + # 获取宠物ID + var basic_info = current_pet_data.get("基本信息", {}) + var pet_id = basic_info.get("宠物ID", "") + + if pet_id == "": + Toast.show("宠物ID无效", Color.RED, 2.0, 1.0) + return + + # 检查当前宠物是否已在出战 + var is_currently_battling = _is_pet_battling(pet_id) + + if is_currently_battling: + # 取消出战 + _remove_from_battle(pet_id) + else: + # 添加到出战 + _add_to_battle(pet_id) + +# 检查宠物是否正在出战(基于服务器数据) +func _is_pet_battling(pet_id: String) -> bool: + # 检查服务器的出战宠物数据 + if main_game.battle_pets == null or main_game.battle_pets.size() == 0: + return false + + # 遍历出战宠物列表,查找匹配的ID + for battle_pet in main_game.battle_pets: + var battle_pet_id = battle_pet.get("基本信息", {}).get("宠物ID", "") + if battle_pet_id == pet_id: + return true + + return false + +# 添加到出战(新的基于ID的逻辑) +func _add_to_battle(pet_id: String): + # 检查出战宠物数量限制(目前服务器设置最多1个) + if main_game.battle_pets != null and main_game.battle_pets.size() >= 1: + Toast.show("最多只能设置1个出战宠物", Color.ORANGE, 3.0, 1.0) + return + + # 检查是否在巡逻中(出战宠物不能是巡逻宠物) + if _is_pet_patrolling(pet_id): + Toast.show("该宠物正在巡逻,不能同时设置为出战宠物", Color.ORANGE, 3.0, 1.0) + return + + # 如果不是访问模式,则发送到服务器保存 + if not main_game.is_visiting_mode: + # 发送到服务器保存 + tcp_network_manager_panel.sendSetBattlePet(pet_id, true) + var pet_name = current_pet_data.get("基本信息", {}).get("宠物名称", "未知") + Toast.show("正在设置 " + pet_name + " 为出战宠物...", Color.YELLOW, 2.0, 1.0) + else: + Toast.show("访问模式下无法设置出战宠物", Color.ORANGE, 2.0, 1.0) + +# 从出战中移除(新的基于ID的逻辑) +func _remove_from_battle(pet_id: String): + # 如果不是访问模式,则发送到服务器保存 + if not main_game.is_visiting_mode: + # 发送到服务器移除 + tcp_network_manager_panel.sendSetBattlePet(pet_id, false) + pass + else: + Toast.show("访问模式下无法取消出战宠物", Color.ORANGE, 2.0, 1.0) + +# 更新出战按钮文本 +func _update_battle_button_text(is_battling: bool): + if is_battling: + battle_button.text = "取消出战" + battle_button.modulate = Color.ORANGE + else: + battle_button.text = "设置出战" + battle_button.modulate = Color.GREEN + +# 刷新出战按钮状态(在显示宠物信息时调用) +func _refresh_battle_button(): + if current_pet_data.is_empty(): + return + + var basic_info = current_pet_data.get("基本信息", {}) + var pet_id = basic_info.get("宠物ID", "") + + if pet_id == "": + return + + var is_battling = _is_pet_battling(pet_id) + _update_battle_button_text(is_battling) + + +#面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + pass + else: + GlobalVariables.isZoomDisabled = false + pass diff --git a/Script/SmallPanel/PetInformPanel.gd.uid b/Script/SmallPanel/PetInformPanel.gd.uid new file mode 100644 index 0000000..364aa7b --- /dev/null +++ b/Script/SmallPanel/PetInformPanel.gd.uid @@ -0,0 +1 @@ +uid://doo34ll0yb078 diff --git a/Script/SmallPanel/ScareCrowPanel.gd b/Script/SmallPanel/ScareCrowPanel.gd new file mode 100644 index 0000000..a798287 --- /dev/null +++ b/Script/SmallPanel/ScareCrowPanel.gd @@ -0,0 +1,257 @@ +extends Panel + +@onready var scare_crow_1: Button = $BuyScareCrowHbox/ScareCrow1 #稻草人类型1 +@onready var scare_crow_2: Button = $BuyScareCrowHbox/ScareCrow2 #稻草人类型2 +@onready var scare_crow_3: Button = $BuyScareCrowHbox/ScareCrow3 #稻草人类型3 +@onready var scare_crow_input: LineEdit = $HBox/ScareCrowInput #稻草人的昵称 +@onready var scare_crow_name_color_input: ColorPickerButton = $HBox/ScareCrowNameColorInput #稻草人昵称的颜色 +@onready var talk_1: LineEdit = $ScareCrowTalksGrid/Talk1 #稻草人展示的第一句话 +@onready var talk_2: LineEdit = $ScareCrowTalksGrid/Talk2 #稻草人展示的第二句话 +@onready var talk_3: LineEdit = $ScareCrowTalksGrid/Talk3 #稻草人展示的第三句话 +@onready var talk_4: LineEdit = $ScareCrowTalksGrid/Talk4 #稻草人展示的第四句话 +@onready var quit_button: Button = $QuitButton #关闭面板按钮 +@onready var sure_button: Button = $HBox2/SureButton #确认修改按钮 + +@onready var color_picker_button_1: ColorPickerButton = $ScareCrowTalksColorGrid/ColorPickerButton1 #第一句话颜色 +@onready var color_picker_button_2: ColorPickerButton = $ScareCrowTalksColorGrid/ColorPickerButton2 #第二句话颜色 +@onready var color_picker_button_3: ColorPickerButton = $ScareCrowTalksColorGrid/ColorPickerButton3 #第三句话颜色 +@onready var color_picker_button_4: ColorPickerButton = $ScareCrowTalksColorGrid/ColorPickerButton4 #第四句话颜色 + +# 引用主游戏和网络管理器 +@onready var main_game = get_node("/root/main") +@onready var tcp_network_manager_panel: Panel = $'../../BigPanel/TCPNetworkManagerPanel' + + +# 稻草人配置数据 +var scare_crow_config = {} +var player_scare_crow_config = {} + +# 稻草人按钮数组 +var scare_crow_buttons = [] + +func _ready(): + # 初始化按钮数组 + scare_crow_buttons = [scare_crow_1, scare_crow_2, scare_crow_3] + + # 连接信号 + scare_crow_1.pressed.connect(_on_scare_crow_1_pressed) + scare_crow_2.pressed.connect(_on_scare_crow_2_pressed) + scare_crow_3.pressed.connect(_on_scare_crow_3_pressed) + quit_button.pressed.connect(_on_quit_button_pressed) + sure_button.pressed.connect(_on_sure_button_pressed) + # 连接可见性改变信号 + visibility_changed.connect(_on_visibility_changed) + # 加载稻草人配置 + load_scare_crow_config() + + # 初始化UI + update_ui() + +# 加载稻草人配置 +func load_scare_crow_config(): + var file = FileAccess.open("res://Server/config/scare_crow_config.json", FileAccess.READ) + if file: + var json_text = file.get_as_text() + file.close() + + var json = JSON.new() + var parse_result = json.parse(json_text) + if parse_result == OK: + scare_crow_config = json.get_data() + print("稻草人配置加载成功") + else: + print("稻草人配置JSON解析失败") + else: + print("无法读取稻草人配置文件") + +# 更新UI显示 +func update_ui(): + if not scare_crow_config.has("稻草人类型"): + return + + # 更新稻草人按钮 + var scare_crow_types = scare_crow_config["稻草人类型"] + var type_names = ["稻草人1", "稻草人2", "稻草人3"] + + for i in range(min(3, scare_crow_buttons.size())): + var button = scare_crow_buttons[i] + var type_name = type_names[i] + + if scare_crow_types.has(type_name): + var price = scare_crow_types[type_name]["价格"] + var is_owned = player_scare_crow_config.get("已拥有稻草人类型", []).has(type_name) + + if is_owned: + button.text = type_name + " (已拥有)" + button.disabled = false + button.modulate = Color.GREEN + else: + button.text = type_name + " (" + str(price) + "金币)" + button.disabled = false + button.modulate = Color.WHITE + else: + button.text = "未知类型" + button.disabled = true + + # 更新当前稻草人配置 + if player_scare_crow_config.has("稻草人昵称"): + scare_crow_input.text = player_scare_crow_config["稻草人昵称"] + + # 更新昵称颜色 + if player_scare_crow_config.has("稻草人昵称颜色"): + scare_crow_name_color_input.color = Color(player_scare_crow_config["稻草人昵称颜色"]) + + if player_scare_crow_config.has("稻草人说的话"): + var talks = player_scare_crow_config["稻草人说的话"] + if talks.has("第一句话"): + talk_1.text = talks["第一句话"]["内容"] + color_picker_button_1.color = Color(talks["第一句话"]["颜色"]) + if talks.has("第二句话"): + talk_2.text = talks["第二句话"]["内容"] + color_picker_button_2.color = Color(talks["第二句话"]["颜色"]) + if talks.has("第三句话"): + talk_3.text = talks["第三句话"]["内容"] + color_picker_button_3.color = Color(talks["第三句话"]["颜色"]) + if talks.has("第四句话"): + talk_4.text = talks["第四句话"]["内容"] + color_picker_button_4.color = Color(talks["第四句话"]["颜色"]) + +# 设置玩家稻草人配置 +func set_player_scare_crow_config(config: Dictionary): + player_scare_crow_config = config + update_ui() + +# 购买/选择稻草人1 +func _on_scare_crow_1_pressed(): + handle_scare_crow_selection("稻草人1") + +# 购买/选择稻草人2 +func _on_scare_crow_2_pressed(): + handle_scare_crow_selection("稻草人2") + +# 购买/选择稻草人3 +func _on_scare_crow_3_pressed(): + handle_scare_crow_selection("稻草人3") + +# 处理稻草人选择 +func handle_scare_crow_selection(type_name: String): + var owned_types = player_scare_crow_config.get("已拥有稻草人类型", []) + + if owned_types.has(type_name): + # 已拥有,选择为当前展示类型 + # 发送修改请求到服务器保存展示类型 + var config_data = { + "稻草人展示类型": type_name + } + + # 发送修改请求(不需要费用,只是切换展示类型) + tcp_network_manager_panel.send_modify_scare_crow_config(config_data, 0) + + Toast.show("正在切换到" + type_name + "...", Color.CYAN) + else: + # 未拥有,购买 + var price = scare_crow_config["稻草人类型"][type_name]["价格"] + if main_game.money >= price: + # 发送购买请求 + tcp_network_manager_panel.send_buy_scare_crow(type_name, price) + else: + Toast.show("金币不足,需要" + str(price) + "金币", Color.RED) + +# 确认修改按钮 +func _on_sure_button_pressed(): + # 检查网络连接 + if not tcp_network_manager_panel.is_connected_to_server(): + Toast.show("未连接到服务器", Color.RED) + return + + # 获取修改费用 + var modify_cost = scare_crow_config.get("修改稻草人配置花费", 300) + + # 检查金币是否足够 + if main_game.money < modify_cost: + Toast.show("金币不足,修改配置需要" + str(modify_cost) + "金币", Color.RED) + return + + # 准备配置数据 + var config_data = { + "稻草人昵称": scare_crow_input.text, + "稻草人昵称颜色": scare_crow_name_color_input.color.to_html(), + "稻草人说的话": { + "第一句话": { + "内容": talk_1.text, + "颜色": color_picker_button_1.color.to_html() + }, + "第二句话": { + "内容": talk_2.text, + "颜色": color_picker_button_2.color.to_html() + }, + "第三句话": { + "内容": talk_3.text, + "颜色": color_picker_button_3.color.to_html() + }, + "第四句话": { + "内容": talk_4.text, + "颜色": color_picker_button_4.color.to_html() + } + } + } + + # 发送修改请求 + tcp_network_manager_panel.send_modify_scare_crow_config(config_data, modify_cost) + +# 关闭面板按钮 +func _on_quit_button_pressed(): + hide() + +# 处理购买稻草人响应 +func handle_buy_scare_crow_response(success: bool, message: String, updated_data: Dictionary): + if success: + Toast.show(message, Color.GREEN) + + # 更新玩家数据 + if updated_data.has("money"): + main_game.money = updated_data["money"] + if updated_data.has("稻草人配置"): + player_scare_crow_config = updated_data["稻草人配置"] + + # 更新UI + main_game._update_ui() + update_ui() + + # 更新主游戏中的稻草人显示 + if main_game.has_method("update_scare_crow_display"): + main_game.update_scare_crow_display() + else: + Toast.show(message, Color.RED) + +# 处理修改稻草人配置响应 +func handle_modify_scare_crow_config_response(success: bool, message: String, updated_data: Dictionary): + if success: + Toast.show(message, Color.GREEN) + + # 更新玩家数据 + if updated_data.has("money"): + main_game.money = updated_data["money"] + if updated_data.has("稻草人配置"): + player_scare_crow_config = updated_data["稻草人配置"] + + # 更新UI + main_game._update_ui() + update_ui() + + # 更新主游戏中的稻草人显示 + if main_game.has_method("update_scare_crow_display"): + main_game.update_scare_crow_display() + else: + Toast.show(message, Color.RED) + +# 面板显示时的处理 +func _on_visibility_changed(): + if visible: + # 请求最新的稻草人配置 + if tcp_network_manager_panel.is_connected_to_server(): + tcp_network_manager_panel.send_get_scare_crow_config() + + GlobalVariables.isZoomDisabled = true + else: + GlobalVariables.isZoomDisabled = false diff --git a/Script/SmallPanel/ScareCrowPanel.gd.uid b/Script/SmallPanel/ScareCrowPanel.gd.uid new file mode 100644 index 0000000..d817872 --- /dev/null +++ b/Script/SmallPanel/ScareCrowPanel.gd.uid @@ -0,0 +1 @@ +uid://dobao5y5s2dij diff --git a/Script/SmallPanel/WisdomTreePanel.gd b/Script/SmallPanel/WisdomTreePanel.gd new file mode 100644 index 0000000..8f6e5e3 --- /dev/null +++ b/Script/SmallPanel/WisdomTreePanel.gd @@ -0,0 +1,393 @@ +extends Panel + +@onready var water_button: Button = $HBox/WaterButton #给智慧树浇水 +@onready var fertilize_button: Button = $HBox/FertilizeButton #给智慧树施肥 +@onready var play_music_button: Button = $HBox/PlayMusicButton #给智慧树放音乐 +@onready var kill_bug_button: Button = $HBox/KillBugButton #给智慧树杀虫 +@onready var kill_grass_button: Button = $HBox/KillGrassButton #给智慧树除草 +@onready var revive_button: Button = $HBox/ReviveButton #智慧树死亡后需点击此处复活花费1000元 + +@onready var talk_input: LineEdit = $VBox/HBox/TalkInput #输入要发送给陌生人的一句话 +@onready var send_button: Button = $VBox/HBox/SendButton #发送按钮 + +@onready var level: Label = $Grid/Level #玩家智慧树等级 +@onready var health: Label = $Grid/Health #玩家智慧树生命值 +@onready var experience: Label = $Grid/Experience #玩家智慧树经验值 +@onready var height: Label = $Grid/Height #玩家智慧树高度 + +@onready var quit_button: Button = $QuitButton #退出按钮 + +@onready var tcp_network_manager_panel: Panel = $'../../BigPanel/TCPNetworkManagerPanel' #客户端与服务端通信核心 +@onready var login_panel: PanelContainer = $'../../BigPanel/LoginPanel' #登录时要加载玩家智慧树状态 + +@onready var accept_dialog: AcceptDialog = $'../../DiaLog/AcceptDialog' + +# 主游戏节点引用 +@onready var main_game = get_node("/root/main") + +# 智慧树配置数据 +var wisdom_tree_config = { + "智慧树显示的话": "", + "等级": 1, + "当前经验值": 0, + "最大经验值": 100, + "当前生命值": 100, + "最大生命值": 100, + "高度": 20 +} + +# 智慧树升级经验计算函数(使用动态公式) +func calculate_wisdom_tree_max_exp(level): + if level <= 1: + return 100 + # 使用指数增长公式:基础经验 * (等级^1.5) * 1.2 + var base_exp = 50 + var exp_multiplier = 1.2 + var level_factor = pow(level, 1.5) + var max_exp = int(base_exp * level_factor * exp_multiplier) + return max_exp + + +# 确保智慧树配置格式正确,兼容旧格式 +func _ensure_config_format(): + # 如果是旧格式,转换为新格式 + if wisdom_tree_config.has("生命值") and not wisdom_tree_config.has("当前生命值"): + var old_health = wisdom_tree_config.get("生命值", 100) + wisdom_tree_config["当前生命值"] = old_health + wisdom_tree_config["最大生命值"] = 100 + wisdom_tree_config.erase("生命值") + + if wisdom_tree_config.has("经验") and not wisdom_tree_config.has("当前经验值"): + var old_exp = wisdom_tree_config.get("经验", 0) + wisdom_tree_config["当前经验值"] = old_exp + var level = wisdom_tree_config.get("等级", 1) + wisdom_tree_config["最大经验值"] = calculate_wisdom_tree_max_exp(level) + wisdom_tree_config.erase("经验") + + # 确保所有必需字段存在 + if not wisdom_tree_config.has("当前生命值"): + wisdom_tree_config["当前生命值"] = 100 + if not wisdom_tree_config.has("最大生命值"): + wisdom_tree_config["最大生命值"] = 100 + if not wisdom_tree_config.has("当前经验值"): + wisdom_tree_config["当前经验值"] = 0 + if not wisdom_tree_config.has("最大经验值"): + var level = wisdom_tree_config.get("等级", 1) + wisdom_tree_config["最大经验值"] = calculate_wisdom_tree_max_exp(level) + if not wisdom_tree_config.has("等级"): + wisdom_tree_config["等级"] = 1 + if not wisdom_tree_config.has("高度"): + wisdom_tree_config["高度"] = 20 + if not wisdom_tree_config.has("智慧树显示的话"): + wisdom_tree_config["智慧树显示的话"] = "" + +func _ready() -> void: + self.hide() + + # 连接按钮信号 + water_button.pressed.connect(_on_water_button_pressed) + fertilize_button.pressed.connect(_on_fertilize_button_pressed) + play_music_button.pressed.connect(_on_play_music_button_pressed) + kill_bug_button.pressed.connect(_on_kill_bug_button_pressed) + kill_grass_button.pressed.connect(_on_kill_grass_button_pressed) + revive_button.pressed.connect(_on_revive_button_pressed) + send_button.pressed.connect(_on_send_button_pressed) + quit_button.pressed.connect(_on_quit_button_pressed) + visibility_changed.connect(_on_visibility_changed) + + # 加载智慧树数据 + load_wisdom_tree_data() + + # 更新UI显示 + update_ui() + +# 加载智慧树数据 +func load_wisdom_tree_data(): + if main_game and main_game.login_data.has("智慧树配置"): + wisdom_tree_config = main_game.login_data["智慧树配置"] + else: + # 如果没有数据,使用默认值 + wisdom_tree_config = { + "智慧树显示的话": "", + "等级": 1, + "经验": 0, + "生命值": 100, + "高度": 20 + } + +# 更新UI显示 +func update_ui(): + # 确保配置数据格式正确,兼容旧格式 + _ensure_config_format() + + level.text = "等级: " + str(wisdom_tree_config["等级"]) + var current_health = wisdom_tree_config["当前生命值"] + var max_health = wisdom_tree_config["最大生命值"] + health.text = "生命值: " + str(current_health) + "/" + str(max_health) + var current_exp = wisdom_tree_config["当前经验值"] + var max_exp = wisdom_tree_config["最大经验值"] + experience.text = "经验: " + str(current_exp) + "/" + str(max_exp) + height.text = "高度: " + str(wisdom_tree_config["高度"]) + "cm" + + # 检查是否处于访问模式 + var is_visiting_mode = main_game and main_game.is_visiting_mode + + # 根据生命值设置颜色 + if current_health <= 0: + health.modulate = Color.RED + revive_button.show() + # 智慧树死亡时禁用其他按钮 + _set_buttons_enabled(false) + elif current_health <= max_health * 0.3: # 生命值低于30% + health.modulate = Color.ORANGE + revive_button.hide() + _set_buttons_enabled(not is_visiting_mode) # 访问模式下禁用按钮 + else: + health.modulate = Color.GREEN + revive_button.hide() + _set_buttons_enabled(not is_visiting_mode) # 访问模式下禁用按钮 + + # 访问模式下的特殊处理 + if is_visiting_mode: + revive_button.hide() + talk_input.editable = false + talk_input.placeholder_text = "访问模式下无法发送消息" + send_button.disabled = true + send_button.text = "访问模式" + else: + talk_input.editable = true + talk_input.placeholder_text = "在这里输入(*´∀ ˋ*)" + send_button.disabled = false + send_button.text = "发送" + +# 获取下一等级需要的经验 +func get_next_level_experience() -> int: + var current_level = wisdom_tree_config["等级"] + if current_level >= 20: + return 99999 # 最大等级 + return calculate_wisdom_tree_max_exp(current_level + 1) + +# 设置按钮启用状态 +func _set_buttons_enabled(enabled: bool): + water_button.disabled = !enabled + fertilize_button.disabled = !enabled + play_music_button.disabled = !enabled + kill_bug_button.disabled = !enabled + kill_grass_button.disabled = !enabled + send_button.disabled = !enabled + +# 显示操作确认弹窗 +func show_operation_confirm(operation_type: String, cost: int, description: String): + if accept_dialog: + accept_dialog.set_dialog_title("确认操作") + accept_dialog.set_dialog_content("确定要" + description + "吗?\n费用:" + str(cost) + "金币") + accept_dialog.show() + + # 连接确认信号 + if not accept_dialog.confirmed.is_connected(_on_operation_confirmed): + accept_dialog.confirmed.connect(_on_operation_confirmed.bind(operation_type)) + else: + # 断开之前的连接,重新连接 + accept_dialog.confirmed.disconnect(_on_operation_confirmed) + accept_dialog.confirmed.connect(_on_operation_confirmed.bind(operation_type)) + +# 操作确认回调 +func _on_operation_confirmed(operation_type: String): + # 发送操作请求到服务器 + tcp_network_manager_panel.send_wisdom_tree_operation(operation_type) + +# 浇水按钮 +func _on_water_button_pressed(): + # 检查是否处于访问模式 + if main_game and main_game.is_visiting_mode: + Toast.show("访问模式下无法操作智慧树!", Color.YELLOW) + return + + if wisdom_tree_config["当前生命值"] <= 0: + Toast.show("智慧树已死亡,请先复活!", Color.RED) + return + + show_operation_confirm("water", 100, "给智慧树浇水") + +# 施肥按钮 +func _on_fertilize_button_pressed(): + # 检查是否处于访问模式 + if main_game and main_game.is_visiting_mode: + Toast.show("访问模式下无法操作智慧树!", Color.YELLOW) + return + + if wisdom_tree_config["当前生命值"] <= 0: + Toast.show("智慧树已死亡,请先复活!", Color.RED) + return + + show_operation_confirm("fertilize", 200, "给智慧树施肥") + +# 除草按钮 +func _on_kill_grass_button_pressed(): + # 检查是否处于访问模式 + if main_game and main_game.is_visiting_mode: + Toast.show("访问模式下无法操作智慧树!", Color.YELLOW) + return + + if wisdom_tree_config["当前生命值"] <= 0: + Toast.show("智慧树已死亡,请先复活!", Color.RED) + return + + show_operation_confirm("kill_grass", 150, "给智慧树除草") + +# 杀虫按钮 +func _on_kill_bug_button_pressed(): + # 检查是否处于访问模式 + if main_game and main_game.is_visiting_mode: + Toast.show("访问模式下无法操作智慧树!", Color.YELLOW) + return + + if wisdom_tree_config["当前生命值"] <= 0: + Toast.show("智慧树已死亡,请先复活!", Color.RED) + return + + show_operation_confirm("kill_bug", 150, "给智慧树杀虫") + +# 放音乐按钮 +func _on_play_music_button_pressed(): + # 检查是否处于访问模式 + if main_game and main_game.is_visiting_mode: + Toast.show("访问模式下无法操作智慧树!", Color.YELLOW) + return + + if wisdom_tree_config["当前生命值"] <= 0: + Toast.show("智慧树已死亡,请先复活!", Color.RED) + return + + show_operation_confirm("play_music", 100, "给智慧树放音乐") + +# 复活按钮 +func _on_revive_button_pressed(): + # 检查是否处于访问模式 + if main_game and main_game.is_visiting_mode: + Toast.show("访问模式下无法操作智慧树!", Color.YELLOW) + return + + if wisdom_tree_config["当前生命值"] > 0: + Toast.show("智慧树还活着,不需要复活!", Color.YELLOW) + return + + show_operation_confirm("revive", 1000, "复活智慧树") + +# 发送消息按钮 +func _on_send_button_pressed(): + # 检查是否处于访问模式 + if main_game and main_game.is_visiting_mode: + Toast.show("访问模式下无法发送消息!", Color.YELLOW) + return + + var message = talk_input.text.strip_edges() + if message.is_empty(): + Toast.show("请输入要发送的消息!", Color.YELLOW) + return + + if message.length() > 100: + Toast.show("消息长度不能超过100个字符!", Color.RED) + return + + # 发送消息到服务器 + tcp_network_manager_panel.send_wisdom_tree_message(message) + + # 清空输入框 + talk_input.text = "" + +# 退出按钮 +func _on_quit_button_pressed(): + self.hide() + +# 处理智慧树操作响应 +func handle_wisdom_tree_operation_response(success: bool, message: String, operation_type: String, updated_data: Dictionary): + if success: + # 更新智慧树配置 + if updated_data.has("智慧树配置"): + wisdom_tree_config = updated_data["智慧树配置"] + # 同步更新MainGame中的智慧树配置 + if main_game and main_game.login_data: + main_game.login_data["智慧树配置"] = wisdom_tree_config + + # 更新玩家数据 + if updated_data.has("money"): + main_game.money = updated_data["money"] + main_game._update_ui() + + # 更新面板UI + update_ui() + + # 同步更新MainGame中的智慧树显示 + if main_game.has_method("update_wisdom_tree_display"): + main_game.update_wisdom_tree_display() + + # 根据操作类型显示不同的提示 + match operation_type: + "water": + Toast.show("浇水成功!" + message, Color.CYAN) + "fertilize": + Toast.show("施肥成功!" + message, Color.PURPLE) + "kill_grass": + Toast.show("除草成功!" + message, Color.GREEN) + "kill_bug": + Toast.show("杀虫成功!" + message, Color.GREEN) + "play_music": + Toast.show("放音乐成功!" + message, Color.MAGENTA) + # 放音乐时可能获得随机消息,需要特殊处理 + if updated_data.has("random_message"): + var random_message = updated_data["random_message"] + if random_message != "": + # 更新智慧树显示的话 + wisdom_tree_config["智慧树显示的话"] = random_message + if main_game and main_game.login_data: + main_game.login_data["智慧树配置"]["智慧树显示的话"] = random_message + # 再次更新MainGame显示 + if main_game.has_method("update_wisdom_tree_display"): + main_game.update_wisdom_tree_display() + "revive": + Toast.show("智慧树复活成功!", Color.GOLD) + "get_random_message": + # 获取随机消息操作 + if updated_data.has("random_message"): + var random_message = updated_data["random_message"] + if random_message != "": + # 更新智慧树显示的话 + wisdom_tree_config["智慧树显示的话"] = random_message + if main_game and main_game.login_data: + main_game.login_data["智慧树配置"]["智慧树显示的话"] = random_message + # 更新MainGame显示 + if main_game.has_method("update_wisdom_tree_display"): + main_game.update_wisdom_tree_display() + Toast.show("获得了新的智慧树消息!", Color.MAGENTA) + else: + Toast.show(message, Color.RED) + +# 处理智慧树消息发送响应 +func handle_wisdom_tree_message_response(success: bool, message: String, updated_data: Dictionary = {}): + if success: + # 更新玩家金钱 + if updated_data.has("money"): + main_game.money = updated_data["money"] + main_game._update_ui() + + Toast.show("消息发送成功!", Color.GREEN) + else: + Toast.show(message, Color.RED) + +# 检查等级是否提升(此函数已不再需要,服务器端处理) +func check_level_up(): + # 等级提升现在由服务器端处理,客户端只需要接收更新后的数据 + pass + +# 面板显示与隐藏切换处理 +func _on_visibility_changed(): + if visible: + GlobalVariables.isZoomDisabled = true + # 面板打开时主动请求最新的智慧树配置 + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("send_get_wisdom_tree_config"): + tcp_network_manager_panel.send_get_wisdom_tree_config() + load_wisdom_tree_data() + update_ui() + else: + GlobalVariables.isZoomDisabled = false diff --git a/Script/SmallPanel/WisdomTreePanel.gd.uid b/Script/SmallPanel/WisdomTreePanel.gd.uid new file mode 100644 index 0000000..af04019 --- /dev/null +++ b/Script/SmallPanel/WisdomTreePanel.gd.uid @@ -0,0 +1 @@ +uid://dwf28j01ckg3y diff --git a/Server/.dockerignore b/Server/.dockerignore new file mode 100644 index 0000000..26c5831 --- /dev/null +++ b/Server/.dockerignore @@ -0,0 +1,46 @@ +# Docker相关文件 +Dockerfile +docker-compose.yml +.dockerignore + +# Git相关 +.git +.gitignore + +# Python缓存 +__pycache__/ +*.pyc +*.pyo +*.pyd +.Python +*.so + +# IDE和编辑器 +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# 系统文件 +.DS_Store +Thumbs.db + +# 日志文件 +*.log + +# 临时文件 +*.tmp +*.temp + +# 文档 +*.md +help.txt + +# 服务配置文件 +*.service +start.bat +start.sh + +# 其他不需要的文件 +console_demo.py \ No newline at end of file diff --git a/Server/Dockerfile b/Server/Dockerfile new file mode 100644 index 0000000..2acd1c5 --- /dev/null +++ b/Server/Dockerfile @@ -0,0 +1,41 @@ +# 使用Python 3.13.2官方镜像作为基础镜像 +FROM python:3.13.2-slim + +# 设置工作目录 +WORKDIR /app + +# 设置环境变量 +ENV PYTHONUNBUFFERED=1 +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 + +# 配置apt使用阿里云镜像源 +RUN echo "deb https://mirrors.aliyun.com/debian/ bookworm main" > /etc/apt/sources.list && \ + echo "deb https://mirrors.aliyun.com/debian/ bookworm-updates main" >> /etc/apt/sources.list && \ + echo "deb https://mirrors.aliyun.com/debian-security/ bookworm-security main" >> /etc/apt/sources.list + +# 复制requirements.txt并安装Python依赖 +COPY requirements.txt . +# 配置pip使用国内镜像源 +RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \ + pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn && \ + pip install --no-cache-dir -r requirements.txt + +# 复制所有源代码 +COPY . . + +# 创建必要的目录 +RUN mkdir -p config game_saves chat __pycache__ + +# 设置目录权限 +RUN chmod -R 755 /app + +# 暴露端口 +EXPOSE 6060 + +# 健康检查 +HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ + CMD python -c "import socket; s = socket.socket(); s.settimeout(5); s.connect(('localhost', 6060)); s.close()" || exit 1 + +# 启动命令 +CMD ["python", "TCPGameServer.py"] \ No newline at end of file diff --git a/Server/TCPGameServer.py b/Server/TCPGameServer.py index 307746c..5f411bc 100644 --- a/Server/TCPGameServer.py +++ b/Server/TCPGameServer.py @@ -55,9 +55,9 @@ import random # 服务器配置参数 # ============================================================================ server_host: str = "0.0.0.0" -server_port: int = 4040 +server_port: int = 6060 buffer_size: int = 4096 -server_version: str = "1.0.5" +server_version: str = "2.0.1" @@ -89,6 +89,7 @@ class TCPGameServer(TCPServer): self.start_crop_growth_timer() self.start_batch_save_timer() self.start_weed_growth_timer() + self.start_wisdom_tree_health_decay_timer() #初始化性能操作 def _init_performance_settings(self): @@ -153,6 +154,18 @@ class TCPGameServer(TCPServer): self.weed_timer.daemon = True self.weed_timer.start() + def start_wisdom_tree_health_decay_timer(self): + """启动智慧树生命值衰减定时器""" + try: + self.check_wisdom_tree_health_decay() + except Exception as e: + self.log('ERROR', f"智慧树生命值衰减检查时出错: {str(e)}", 'SERVER') + + # 创建下一个智慧树衰减检查计时器(每天检查一次) + self.wisdom_tree_decay_timer = threading.Timer(86400, self.start_wisdom_tree_health_decay_timer) # 每24小时检查一次 + self.wisdom_tree_decay_timer.daemon = True + self.wisdom_tree_decay_timer.start() + #获取服务器统计信息 def get_server_stats(self): """获取服务器统计信息""" @@ -180,6 +193,12 @@ class TCPGameServer(TCPServer): self.weed_timer = None self.log('INFO', "杂草生长计时器已停止", 'SERVER') + # 停止智慧树生命值衰减计时器 + if hasattr(self, 'wisdom_tree_decay_timer') and self.wisdom_tree_decay_timer: + self.wisdom_tree_decay_timer.cancel() + self.wisdom_tree_decay_timer = None + self.log('INFO', "智慧树生命值衰减计时器已停止", 'SERVER') + # 强制保存所有缓存数据 self.log('INFO', "正在保存所有玩家数据...", 'SERVER') saved_count = self.force_save_all_data() @@ -674,6 +693,18 @@ class TCPGameServer(TCPServer): return self._handle_buy_seed(client_id, message) elif message_type == "buy_item":#购买道具 return self._handle_buy_item(client_id, message) + elif message_type == "buy_pet":#购买宠物 + return self._handle_buy_pet(client_id, message) + elif message_type == "rename_pet":#重命名宠物 + return self._handle_rename_pet(client_id, message) + elif message_type == "set_patrol_pet":#设置巡逻宠物 + return self._handle_set_patrol_pet(client_id, message) + elif message_type == "set_battle_pet":#设置出战宠物 + return self._handle_set_battle_pet(client_id, message) + elif message_type == "update_battle_pet_data":#更新宠物对战数据 + return self._handle_update_battle_pet_data(client_id, message) + elif message_type == "feed_pet":#喂食宠物 + return self._handle_feed_pet(client_id, message) elif message_type == "dig_ground":#开垦土地 return self._handle_dig_ground(client_id, message) elif message_type == "remove_crop":#铲除作物 @@ -700,6 +731,8 @@ class TCPGameServer(TCPServer): return self._handle_player_rankings_request(client_id, message) elif message_type == "request_crop_data":#请求作物数据 return self._handle_crop_data_request(client_id) + elif message_type == "request_item_config":#请求道具配置数据 + return self._handle_item_config_request(client_id) elif message_type == "visit_player":#拜访其他玩家农场 return self._handle_visit_player_request(client_id, message) elif message_type == "return_my_farm":#返回我的农场 @@ -724,6 +757,26 @@ class TCPGameServer(TCPServer): return self._handle_delete_account_request(client_id, message) elif message_type == "refresh_player_info":#刷新玩家信息 return self._handle_refresh_player_info_request(client_id, message) + elif message_type == "global_broadcast":#全服大喇叭消息 + return self._handle_global_broadcast_message(client_id, message) + elif message_type == "request_broadcast_history":#请求全服大喇叭历史消息 + return self._handle_request_broadcast_history(client_id, message) + elif message_type == "use_pet_item":#宠物使用道具 + return self._handle_use_pet_item(client_id, message) + elif message_type == "use_farm_item":#农场道具使用 + return self._handle_use_farm_item(client_id, message) + elif message_type == "buy_scare_crow":#购买稻草人 + return self._handle_buy_scare_crow(client_id, message) + elif message_type == "modify_scare_crow_config":#修改稻草人配置 + return self._handle_modify_scare_crow_config(client_id, message) + elif message_type == "get_scare_crow_config":#获取稻草人配置 + return self._handle_get_scare_crow_config(client_id, message) + elif message_type == "wisdom_tree_operation":#智慧树操作 + return self._handle_wisdom_tree_operation(client_id, message) + elif message_type == "wisdom_tree_message":#智慧树消息 + return self._handle_wisdom_tree_message(client_id, message) + elif message_type == "get_wisdom_tree_config":#获取智慧树配置 + return self._handle_get_wisdom_tree_config(client_id, message) #--------------------------------------------------------------------------- elif message_type == "message":#处理聊天消息(暂未实现) @@ -803,6 +856,9 @@ class TCPGameServer(TCPServer): # 检查并更新已存在玩家的注册时间 self._check_and_update_register_time(player_data, username) + # 检查并修复智慧树配置 + self._check_and_fix_wisdom_tree_config(player_data, username) + # 初始化今日在线礼包数据 current_date = datetime.datetime.now().strftime("%Y-%m-%d") if "online_gift" not in player_data: @@ -831,12 +887,16 @@ class TCPGameServer(TCPServer): # 发送初始数据 self._send_initial_login_data(client_id, player_data) - # 返回登录成功消息 + # 返回登录成功消息,转换巡逻宠物和出战宠物数据 + response_player_data = player_data.copy() + response_player_data["巡逻宠物"] = self._convert_patrol_pets_to_full_data(player_data) + response_player_data["出战宠物"] = self._convert_battle_pets_to_full_data(player_data) + response = { "type": "login_response", "status": "success", "message": "登录成功", - "player_data": player_data + "player_data": response_player_data } else: # 登录失败 @@ -871,6 +931,17 @@ class TCPGameServer(TCPServer): } self.send_data(client_id, crop_data_message) self.log('INFO', f"已向登录用户发送作物数据配置", 'SERVER') + + # 发送最新的道具配置数据 + item_config = self._load_item_config() + if item_config: + item_config_message = { + "type": "item_config_response", + "success": True, + "item_config": item_config + } + self.send_data(client_id, item_config_message) + self.log('INFO', f"已向登录用户发送道具配置数据,道具种类:{len(item_config)}", 'SERVER') #处理注册消息 @@ -1302,6 +1373,18 @@ class TCPGameServer(TCPServer): if not self._check_stamina_sufficient(current_player_data, stamina_cost): return self._send_action_error(client_id, "harvest_crop", f"体力值不足,偷菜需要 {stamina_cost} 点体力,当前体力:{current_player_data.get('体力值', 0)}") + # 检查是否被巡逻宠物发现(调试:100%概率) + patrol_pets = target_player_data.get("巡逻宠物", []) + if patrol_pets and len(patrol_pets) > 0: + # 100%概率被发现(调试用) + import random + if random.random() <= 1.0: + # 被巡逻宠物发现了! + return self._handle_steal_caught_by_patrol( + client_id, current_player_data, current_username, + target_player_data, target_username, patrol_pets[0] + ) + # 读取作物配置 crop_data = self._load_crop_data() @@ -1399,6 +1482,107 @@ class TCPGameServer(TCPServer): } }) + # 处理偷菜被巡逻宠物发现的情况 + def _handle_steal_caught_by_patrol(self, client_id, current_player_data, current_username, target_player_data, target_username, patrol_pet_id): + """处理偷菜被巡逻宠物发现的情况""" + # 检查当前玩家是否有出战宠物 + battle_pets = current_player_data.get("出战宠物", []) + + if len(battle_pets) == 0: + # 没有出战宠物,只能逃跑,支付1000金币 + escape_cost = 1000 + if current_player_data.get("money", 0) < escape_cost: + # 金币不足,偷菜失败 + self.log('INFO', f"玩家 {current_username} 偷菜被发现,金币不足逃跑,偷菜失败", 'SERVER') + return self.send_data(client_id, { + "type": "steal_caught", + "success": False, + "message": f"偷菜被 {target_username} 的巡逻宠物发现!金币不足支付逃跑费用(需要{escape_cost}金币),偷菜失败!", + "patrol_pet_data": self._get_patrol_pet_data(target_player_data, patrol_pet_id), + "has_battle_pet": False, + "escape_cost": escape_cost, + "current_money": current_player_data.get("money", 0) + }) + else: + # 自动逃跑,扣除金币 + current_player_data["money"] -= escape_cost + target_player_data["money"] += escape_cost + + # 保存数据 + self.save_player_data(current_username, current_player_data) + self.save_player_data(target_username, target_player_data) + + self.log('INFO', f"玩家 {current_username} 偷菜被发现,支付 {escape_cost} 金币逃跑", 'SERVER') + return self.send_data(client_id, { + "type": "steal_caught", + "success": False, + "message": f"偷菜被 {target_username} 的巡逻宠物发现!支付了 {escape_cost} 金币逃跑", + "patrol_pet_data": self._get_patrol_pet_data(target_player_data, patrol_pet_id), + "has_battle_pet": False, + "escape_cost": escape_cost, + "updated_data": { + "money": current_player_data["money"] + } + }) + else: + # 有出战宠物,可以选择战斗或逃跑 + battle_pet_id = battle_pets[0] # 取第一个出战宠物 + + # 检查出战宠物是否与巡逻宠物是同一个(不应该发生,但保险起见) + if battle_pet_id == patrol_pet_id: + self.log('WARNING', f"玩家 {current_username} 的出战宠物与 {target_username} 的巡逻宠物是同一个,这不应该发生", 'SERVER') + return self._send_action_error(client_id, "harvest_crop", "系统错误:宠物冲突") + + self.log('INFO', f"玩家 {current_username} 偷菜被发现,可以选择战斗或逃跑", 'SERVER') + return self.send_data(client_id, { + "type": "steal_caught", + "success": False, + "message": f"偷菜被 {target_username} 的巡逻宠物发现!", + "patrol_pet_data": self._get_patrol_pet_data(target_player_data, patrol_pet_id), + "battle_pet_data": self._get_battle_pet_data(current_player_data, battle_pet_id), + "has_battle_pet": True, + "escape_cost": 1000, + "battle_cost": 1300, + "target_username": target_username, + "current_username": current_username + }) + + # 获取巡逻宠物数据 + def _get_patrol_pet_data(self, player_data, patrol_pet_id): + """根据巡逻宠物ID获取完整宠物数据""" + pet_bag = player_data.get("宠物背包", []) + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == patrol_pet_id: + # 添加场景路径 + import copy + pet_data = copy.deepcopy(pet) + pet_type = pet.get("基本信息", {}).get("宠物类型", "") + pet_configs = self._load_pet_config() + if pet_type in pet_configs: + pet_data["场景路径"] = pet_configs[pet_type].get("场景路径", "res://Scene/Pet/PetBase.tscn") + else: + pet_data["场景路径"] = "res://Scene/Pet/PetBase.tscn" + return pet_data + return None + + # 获取出战宠物数据 + def _get_battle_pet_data(self, player_data, battle_pet_id): + """根据出战宠物ID获取完整宠物数据""" + pet_bag = player_data.get("宠物背包", []) + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == battle_pet_id: + # 添加场景路径 + import copy + pet_data = copy.deepcopy(pet) + pet_type = pet.get("基本信息", {}).get("宠物类型", "") + pet_configs = self._load_pet_config() + if pet_type in pet_configs: + pet_data["场景路径"] = pet_configs[pet_type].get("场景路径", "res://Scene/Pet/PetBase.tscn") + else: + pet_data["场景路径"] = "res://Scene/Pet/PetBase.tscn" + return pet_data + return None + # 生成收获种子奖励(10%概率获得1-2个种子) def _generate_harvest_seed_reward(self, crop_type): """生成收获作物时的种子奖励""" @@ -1744,6 +1928,11 @@ class TCPGameServer(TCPServer): return self.send_data(client_id, response) crop_name = message.get("crop_name", "") + quantity = message.get("quantity", 1) # 获取购买数量,默认为1 + + # 确保购买数量为正整数 + if not isinstance(quantity, int) or quantity <= 0: + quantity = 1 # 加载作物配置 crop_data = self._load_crop_data() @@ -1754,29 +1943,33 @@ class TCPGameServer(TCPServer): if crop_name not in crop_data: return self._send_action_error(client_id, "buy_seed", "该种子不存在") - # 处理购买 - return self._process_seed_purchase(client_id, player_data, username, crop_name, crop_data[crop_name]) + # 处理批量购买 + return self._process_seed_purchase(client_id, player_data, username, crop_name, crop_data[crop_name], quantity) #处理种子购买逻辑 - def _process_seed_purchase(self, client_id, player_data, username, crop_name, crop): + def _process_seed_purchase(self, client_id, player_data, username, crop_name, crop, quantity=1): """处理种子购买逻辑""" # 检查玩家等级 if player_data["level"] < crop.get("等级", 1): return self._send_action_error(client_id, "buy_seed", "等级不足,无法购买此种子") + # 计算总花费 + unit_cost = crop.get("花费", 0) + total_cost = unit_cost * quantity + # 检查玩家金钱 - if player_data["money"] < crop.get("花费", 0): - return self._send_action_error(client_id, "buy_seed", "金钱不足,无法购买此种子") + if player_data["money"] < total_cost: + return self._send_action_error(client_id, "buy_seed", f"金钱不足,无法购买此种子。需要{total_cost}元,当前只有{player_data['money']}元") # 扣除金钱 - player_data["money"] -= crop.get("花费", 0) + player_data["money"] -= total_cost # 将种子添加到背包 seed_found = False for item in player_data.get("player_bag", []): if item.get("name") == crop_name: - item["count"] += 1 + item["count"] += quantity seed_found = True break @@ -1787,19 +1980,19 @@ class TCPGameServer(TCPServer): player_data["player_bag"].append({ "name": crop_name, "quality": crop.get("品质", "普通"), - "count": 1 + "count": quantity }) # 保存玩家数据 self.save_player_data(username, player_data) - self.log('INFO', f"玩家 {username} 购买了种子 {crop_name}", 'SERVER') + self.log('INFO', f"玩家 {username} 购买了 {quantity} 个种子 {crop_name},花费 {total_cost} 元", 'SERVER') return self.send_data(client_id, { "type": "action_response", "action_type": "buy_seed", "success": True, - "message": f"成功购买 {crop_name} 种子", + "message": f"成功购买 {quantity} 个 {crop_name} 种子", "updated_data": { "money": player_data["money"], "player_bag": player_data["player_bag"] @@ -1827,6 +2020,11 @@ class TCPGameServer(TCPServer): item_name = message.get("item_name", "") item_cost = message.get("item_cost", 0) + quantity = message.get("quantity", 1) # 获取购买数量,默认为1 + + # 确保购买数量为正整数 + if not isinstance(quantity, int) or quantity <= 0: + quantity = 1 # 加载道具配置 item_config = self._load_item_config() @@ -1842,20 +2040,21 @@ class TCPGameServer(TCPServer): if item_cost != actual_cost: return self._send_action_error(client_id, "buy_item", f"道具价格验证失败,实际价格为{actual_cost}元") - # 处理购买 - return self._process_item_purchase(client_id, player_data, username, item_name, item_config[item_name]) + # 处理批量购买 + return self._process_item_purchase(client_id, player_data, username, item_name, item_config[item_name], quantity) #处理道具购买逻辑 - def _process_item_purchase(self, client_id, player_data, username, item_name, item_info): + def _process_item_purchase(self, client_id, player_data, username, item_name, item_info, quantity=1): """处理道具购买逻辑""" - item_cost = item_info.get("花费", 0) + unit_cost = item_info.get("花费", 0) + total_cost = unit_cost * quantity # 检查玩家金钱 - if player_data["money"] < item_cost: - return self._send_action_error(client_id, "buy_item", "金钱不足,无法购买此道具") + if player_data["money"] < total_cost: + return self._send_action_error(client_id, "buy_item", f"金钱不足,无法购买此道具。需要{total_cost}元,当前只有{player_data['money']}元") # 扣除金钱 - player_data["money"] -= item_cost + player_data["money"] -= total_cost # 将道具添加到道具背包 item_found = False @@ -1866,26 +2065,26 @@ class TCPGameServer(TCPServer): for item in player_data["道具背包"]: if item.get("name") == item_name: - item["count"] += 1 + item["count"] += quantity item_found = True break if not item_found: player_data["道具背包"].append({ "name": item_name, - "count": 1 + "count": quantity }) # 保存玩家数据 self.save_player_data(username, player_data) - self.log('INFO', f"玩家 {username} 购买了道具 {item_name},花费 {item_cost} 元", 'SERVER') + self.log('INFO', f"玩家 {username} 购买了 {quantity} 个道具 {item_name},花费 {total_cost} 元", 'SERVER') return self.send_data(client_id, { "type": "action_response", "action_type": "buy_item", "success": True, - "message": f"成功购买 {item_name}", + "message": f"成功购买 {quantity} 个 {item_name}", "updated_data": { "money": player_data["money"], "道具背包": player_data["道具背包"] @@ -1904,6 +2103,835 @@ class TCPGameServer(TCPServer): #==========================购买道具处理========================== +#==========================购买宠物处理========================== + #处理购买宠物请求 + def _handle_buy_pet(self, client_id, message): + """处理购买宠物请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "购买宠物", "buy_pet") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "buy_pet") + if not player_data: + return self.send_data(client_id, response) + + pet_name = message.get("pet_name", "") + pet_cost = message.get("pet_cost", 0) + + # 加载宠物配置 + pet_config = self._load_pet_config() + if not pet_config: + return self._send_action_error(client_id, "buy_pet", "服务器无法加载宠物数据") + + # 检查宠物是否存在 + if pet_name not in pet_config: + return self._send_action_error(client_id, "buy_pet", "该宠物不存在") + + # 检查宠物是否可购买 + pet_info = pet_config[pet_name] + purchase_info = pet_info.get("购买信息", {}) + if not purchase_info.get("能否购买", False): + return self._send_action_error(client_id, "buy_pet", "该宠物不可购买") + + # 验证价格是否正确 + actual_cost = purchase_info.get("购买价格", 0) + if pet_cost != actual_cost: + return self._send_action_error(client_id, "buy_pet", f"宠物价格验证失败,实际价格为{actual_cost}元") + + # 检查玩家是否已拥有该宠物 + if self._player_has_pet(player_data, pet_name): + return self._send_action_error(client_id, "buy_pet", f"你已经拥有 {pet_name} 了!") + + # 处理宠物购买 + return self._process_pet_purchase(client_id, player_data, username, pet_name, pet_info) + + #处理宠物购买逻辑 + def _process_pet_purchase(self, client_id, player_data, username, pet_name, pet_info): + """处理宠物购买逻辑""" + purchase_info = pet_info.get("购买信息", {}) + pet_cost = purchase_info.get("购买价格", 0) + + # 检查玩家金钱 + if player_data["money"] < pet_cost: + return self._send_action_error(client_id, "buy_pet", f"金钱不足,无法购买此宠物。需要{pet_cost}元,当前只有{player_data['money']}元") + + # 扣除金钱 + player_data["money"] -= pet_cost + + # 确保宠物背包存在 + if "宠物背包" not in player_data: + player_data["宠物背包"] = [] + + # 创建宠物实例数据 - 复制宠物配置的完整JSON数据 + import copy + pet_instance = copy.deepcopy(pet_info) + + # 为购买的宠物设置独特的ID和主人信息 + import time + current_time = time.time() + unique_id = str(int(current_time * 1000)) # 使用时间戳作为唯一ID + + # 更新基本信息 + if "基本信息" in pet_instance: + pet_instance["基本信息"]["宠物主人"] = username + pet_instance["基本信息"]["宠物ID"] = unique_id + pet_instance["基本信息"]["宠物名称"] = f"{username}的{pet_name}" + + # 设置宠物生日(详细时间) + import datetime + now = datetime.datetime.now() + birthday = f"{now.year}年{now.month}月{now.day}日{now.hour}时{now.minute}分{now.second}秒" + pet_instance["基本信息"]["生日"] = birthday + pet_instance["基本信息"]["年龄"] = 0 # 刚出生年龄为0 + + # 将宠物添加到宠物背包 + player_data["宠物背包"].append(pet_instance) + + # 保存玩家数据 + self.save_player_data(username, player_data) + + self.log('INFO', f"玩家 {username} 购买了宠物 {pet_name},花费 {pet_cost} 元", 'SERVER') + + return self.send_data(client_id, { + "type": "action_response", + "action_type": "buy_pet", + "success": True, + "message": f"成功购买宠物 {pet_name}!", + "updated_data": { + "money": player_data["money"], + "宠物背包": player_data["宠物背包"] + } + }) + + #检查玩家是否已拥有某种宠物 + def _player_has_pet(self, player_data, pet_name): + """检查玩家是否已拥有指定类型的宠物""" + pet_bag = player_data.get("宠物背包", []) + for pet in pet_bag: + basic_info = pet.get("基本信息", {}) + pet_type = basic_info.get("宠物类型", "") + if pet_type == pet_name: + return True + return False + + #加载宠物配置数据 + def _load_pet_config(self): + """从pet_data.json加载宠物配置数据""" + try: + with open("config/pet_data.json", 'r', encoding='utf-8') as file: + return json.load(file) + except Exception as e: + self.log('ERROR', f"无法加载宠物数据: {str(e)}", 'SERVER') + return {} + + # 将巡逻宠物ID转换为完整宠物数据 + def _convert_patrol_pets_to_full_data(self, player_data): + """将存储的巡逻宠物ID转换为完整的宠物数据""" + patrol_pets_data = [] + patrol_pets_ids = player_data.get("巡逻宠物", []) + pet_bag = player_data.get("宠物背包", []) + + for patrol_pet_id in patrol_pets_ids: + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == patrol_pet_id: + # 为巡逻宠物添加场景路径 + import copy + patrol_pet_data = copy.deepcopy(pet) + + # 根据宠物类型获取场景路径 + pet_type = pet.get("基本信息", {}).get("宠物类型", "") + pet_configs = self._load_pet_config() + if pet_type in pet_configs: + scene_path = pet_configs[pet_type].get("场景路径", "") + patrol_pet_data["场景路径"] = scene_path + + patrol_pets_data.append(patrol_pet_data) + break + + return patrol_pets_data + + # 将出战宠物ID转换为完整宠物数据 + def _convert_battle_pets_to_full_data(self, player_data): + """将存储的出战宠物ID转换为完整的宠物数据""" + battle_pets_data = [] + battle_pets_ids = player_data.get("出战宠物", []) + pet_bag = player_data.get("宠物背包", []) + + for battle_pet_id in battle_pets_ids: + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == battle_pet_id: + # 为出战宠物添加场景路径 + import copy + battle_pet_data = copy.deepcopy(pet) + + # 根据宠物类型获取场景路径 + pet_type = pet.get("基本信息", {}).get("宠物类型", "") + pet_configs = self._load_pet_config() + if pet_type in pet_configs: + scene_path = pet_configs[pet_type].get("场景路径", "") + battle_pet_data["场景路径"] = scene_path + + battle_pets_data.append(battle_pet_data) + break + + return battle_pets_data +#==========================购买宠物处理========================== + + +#==========================重命名宠物处理========================== + #处理重命名宠物请求 + def _handle_rename_pet(self, client_id, message): + """处理重命名宠物请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "重命名宠物", "rename_pet") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "rename_pet") + if not player_data: + return self.send_data(client_id, response) + + pet_id = message.get("pet_id", "") + new_name = message.get("new_name", "") + + # 验证参数 + if not pet_id: + return self._send_action_error(client_id, "rename_pet", "宠物ID不能为空") + + if not new_name: + return self._send_action_error(client_id, "rename_pet", "宠物名字不能为空") + + # 验证名字长度 + if len(new_name) > 20: + return self._send_action_error(client_id, "rename_pet", "宠物名字太长,最多20个字符") + + # 检查宠物是否存在 + pet_bag = player_data.get("宠物背包", []) + pet_found = False + + for pet in pet_bag: + basic_info = pet.get("基本信息", {}) + if basic_info.get("宠物ID", "") == pet_id: + # 检查宠物主人是否正确 + if basic_info.get("宠物主人", "") != username: + return self._send_action_error(client_id, "rename_pet", "你不是该宠物的主人") + + # 更新宠物名字 + basic_info["宠物名称"] = new_name + pet_found = True + break + + if not pet_found: + return self._send_action_error(client_id, "rename_pet", "未找到指定ID的宠物") + + # 保存玩家数据 + self.save_player_data(username, player_data) + + self.log('INFO', f"玩家 {username} 重命名宠物 {pet_id} 为 {new_name}", 'SERVER') + + return self.send_data(client_id, { + "type": "action_response", + "action_type": "rename_pet", + "success": True, + "message": f"宠物名字已成功修改为 {new_name}", + "pet_id": pet_id, + "new_name": new_name, + "updated_data": { + "宠物背包": player_data["宠物背包"] + } + }) +#==========================重命名宠物处理========================== + + +#==========================设置巡逻宠物处理========================== + #处理设置巡逻宠物请求 + def _handle_set_patrol_pet(self, client_id, message): + """处理设置或取消巡逻宠物的请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "设置巡逻宠物", "set_patrol_pet") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "set_patrol_pet") + if not player_data: + return self.send_data(client_id, response) + + pet_id = message.get("pet_id", "") + is_patrolling = message.get("is_patrolling", False) + + self.log('INFO', f"处理巡逻宠物请求: pet_id={pet_id}, is_patrolling={is_patrolling}", client_id) + + # 验证参数 + if not pet_id: + return self._send_action_error(client_id, "set_patrol_pet", "宠物ID不能为空") + + # 获取宠物背包和巡逻宠物列表 + pet_bag = player_data.get("宠物背包", []) + patrol_pets = player_data.get("巡逻宠物", []) + + # 查找目标宠物 + target_pet = None + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == pet_id: + target_pet = pet + break + + if not target_pet: + return self._send_action_error(client_id, "set_patrol_pet", "未找到指定的宠物") + + # 检查宠物主人是否正确 + basic_info = target_pet.get("基本信息", {}) + if basic_info.get("宠物主人", "") != username: + return self._send_action_error(client_id, "set_patrol_pet", "你不是该宠物的主人") + + pet_name = basic_info.get("宠物名称", basic_info.get("宠物类型", "未知宠物")) + + if is_patrolling: + # 添加到巡逻列表 + # 检查巡逻宠物数量限制(最多3个) + if len(patrol_pets) >= 3: + return self._send_action_error(client_id, "set_patrol_pet", "最多只能设置3个巡逻宠物") + + # 检查是否已在巡逻列表中(现在只检查ID) + for patrol_pet_id in patrol_pets: + if patrol_pet_id == pet_id: + return self._send_action_error(client_id, "set_patrol_pet", f"{pet_name} 已在巡逻列表中") + + # 添加到巡逻列表(只保存宠物ID) + patrol_pets.append(pet_id) + message_text = f"{pet_name} 已设置为巡逻宠物" + self.log('INFO', f"玩家 {username} 设置宠物 {pet_name} 为巡逻宠物", 'SERVER') + + else: + # 从巡逻列表移除 + original_count = len(patrol_pets) + patrol_pets = [pid for pid in patrol_pets if pid != pet_id] + + if len(patrol_pets) == original_count: + return self._send_action_error(client_id, "set_patrol_pet", f"{pet_name} 不在巡逻列表中") + + message_text = f"{pet_name} 已取消巡逻" + self.log('INFO', f"玩家 {username} 取消宠物 {pet_name} 的巡逻", 'SERVER') + + # 更新玩家数据 + player_data["巡逻宠物"] = patrol_pets + + # 保存玩家数据 + self.save_player_data(username, player_data) + + # 构建返回给客户端的巡逻宠物数据(完整宠物数据) + patrol_pets_data = [] + for patrol_pet_id in patrol_pets: + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == patrol_pet_id: + # 为巡逻宠物添加场景路径 + import copy + patrol_pet_data = copy.deepcopy(pet) + + # 根据宠物类型获取场景路径 + pet_type = pet.get("基本信息", {}).get("宠物类型", "") + pet_configs = self._load_pet_config() + if pet_type in pet_configs: + scene_path = pet_configs[pet_type].get("场景路径", "") + patrol_pet_data["场景路径"] = scene_path + + patrol_pets_data.append(patrol_pet_data) + break + + return self.send_data(client_id, { + "type": "action_response", + "action_type": "set_patrol_pet", + "success": True, + "message": message_text, + "pet_id": pet_id, + "is_patrolling": is_patrolling, + "updated_data": { + "巡逻宠物": patrol_pets_data + } + }) +#==========================设置巡逻宠物处理========================== + + +#==========================设置出战宠物处理========================== + #处理设置出战宠物请求 + def _handle_set_battle_pet(self, client_id, message): + """处理设置出战宠物请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "设置出战宠物", "set_battle_pet") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "set_battle_pet") + if not player_data: + return self.send_data(client_id, response) + + pet_id = message.get("pet_id", "") + is_battle = message.get("is_battle", True) # 默认为设置出战 + + if not pet_id: + return self._send_action_error(client_id, "set_battle_pet", "宠物ID不能为空") + + # 获取宠物背包和出战宠物列表 + pet_bag = player_data.get("宠物背包", []) + battle_pets = player_data.get("出战宠物", []) + patrol_pets = player_data.get("巡逻宠物", []) + + # 查找宠物是否在背包中 + target_pet = None + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == pet_id: + target_pet = pet + break + + if not target_pet: + return self._send_action_error(client_id, "set_battle_pet", f"宠物背包中找不到ID为 {pet_id} 的宠物") + + pet_name = target_pet.get("基本信息", {}).get("宠物名称", "未知宠物") + + if is_battle: + # 添加到出战列表 + # 检查是否已在出战列表中 + if pet_id in battle_pets: + return self._send_action_error(client_id, "set_battle_pet", f"{pet_name} 已在出战列表中") + + # 检查是否在巡逻列表中(出战宠物不能是巡逻宠物) + if pet_id in patrol_pets: + return self._send_action_error(client_id, "set_battle_pet", f"{pet_name} 正在巡逻,不能同时设置为出战宠物") + + # 检查出战宠物数量限制(最多1个) + if len(battle_pets) >= 1: + return self._send_action_error(client_id, "set_battle_pet", "最多只能设置1个出战宠物") + + # 添加到出战列表 + battle_pets.append(pet_id) + message_text = f"{pet_name} 已设置为出战宠物" + self.log('INFO', f"玩家 {username} 设置宠物 {pet_name} 为出战宠物", 'SERVER') + + else: + # 从出战列表移除 + if pet_id not in battle_pets: + return self._send_action_error(client_id, "set_battle_pet", f"{pet_name} 不在出战列表中") + + battle_pets.remove(pet_id) + message_text = f"{pet_name} 已移除出战状态" + self.log('INFO', f"玩家 {username} 移除宠物 {pet_name} 的出战状态", 'SERVER') + + # 更新玩家数据 + player_data["出战宠物"] = battle_pets + + # 保存玩家数据 + self.save_player_data(username, player_data) + + # 构建返回给客户端的出战宠物数据(完整宠物数据) + battle_pets_data = [] + for battle_pet_id in battle_pets: + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == battle_pet_id: + # 为出战宠物添加场景路径 + import copy + battle_pet_data = copy.deepcopy(pet) + + # 根据宠物类型获取场景路径 + pet_type = pet.get("基本信息", {}).get("宠物类型", "") + pet_configs = self._load_pet_config() + if pet_configs and pet_type in pet_configs: + battle_pet_data["场景路径"] = pet_configs[pet_type].get("场景路径", "res://Scene/Pet/PetBase.tscn") + else: + battle_pet_data["场景路径"] = "res://Scene/Pet/PetBase.tscn" + + battle_pets_data.append(battle_pet_data) + break + + return self.send_data(client_id, { + "type": "action_response", + "action_type": "set_battle_pet", + "success": True, + "message": message_text, + "pet_id": pet_id, + "is_battle": is_battle, + "updated_data": { + "出战宠物": battle_pets_data + } + }) +#==========================设置出战宠物处理========================== + + +#==========================更新宠物对战数据处理========================== + #处理更新宠物对战数据请求 + def _handle_update_battle_pet_data(self, client_id, message): + """处理更新宠物对战数据请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "更新宠物对战数据", "update_battle_pet_data") + if not logged_in: + return self.send_data(client_id, response) + + # 获取请求参数 + pet_id = message.get("pet_id", "") + attacker_name = message.get("attacker_name", "") + exp_gained = message.get("exp_gained", 0) + intimacy_gained = message.get("intimacy_gained", 0) + new_level = message.get("new_level", 1) + new_experience = message.get("new_experience", 0) + new_max_experience = message.get("new_max_experience", 100) + new_intimacy = message.get("new_intimacy", 0) + level_ups = message.get("level_ups", 0) + level_bonus_multiplier = message.get("level_bonus_multiplier", 1.0) + + if not pet_id or not attacker_name: + return self._send_action_error(client_id, "update_battle_pet_data", "无效的宠物ID或进攻者名称") + + # 获取进攻者玩家数据 + player_data = self.load_player_data(attacker_name) + if not player_data: + return self._send_action_error(client_id, "update_battle_pet_data", "无法找到进攻者数据") + + # 更新宠物数据 + success = self._update_pet_battle_data(player_data, pet_id, exp_gained, intimacy_gained, + new_level, new_experience, new_max_experience, + new_intimacy, level_ups, level_bonus_multiplier) + + if success: + # 保存玩家数据 + self.save_player_data(attacker_name, player_data) + + self.log('INFO', f"成功更新玩家 {attacker_name} 的宠物 {pet_id} 对战数据:经验+{exp_gained},亲密度+{intimacy_gained},升级{level_ups}级", 'SERVER') + + return self.send_data(client_id, { + "type": "action_response", + "action_type": "update_battle_pet_data", + "success": True, + "message": f"成功更新宠物对战数据", + "pet_id": pet_id, + "exp_gained": exp_gained, + "intimacy_gained": intimacy_gained, + "level_ups": level_ups + }) + else: + return self._send_action_error(client_id, "update_battle_pet_data", f"无法找到宠物ID为 {pet_id} 的宠物") + + #辅助函数-更新宠物对战数据 + def _update_pet_battle_data(self, player_data, pet_id, exp_gained, intimacy_gained, + new_level, new_experience, new_max_experience, + new_intimacy, level_ups, level_bonus_multiplier): + """更新宠物对战数据""" + + # 确保宠物背包存在 + if "宠物背包" not in player_data: + player_data["宠物背包"] = [] + + # 查找指定宠物 + target_pet = None + for pet in player_data["宠物背包"]: + if pet.get("基本信息", {}).get("宠物ID") == pet_id: + target_pet = pet + break + + if not target_pet: + return False + + # 更新等级经验数据 + level_exp_data = target_pet.setdefault("等级经验", {}) + level_exp_data["宠物等级"] = new_level + level_exp_data["当前经验"] = new_experience + level_exp_data["最大经验"] = new_max_experience + level_exp_data["亲密度"] = new_intimacy + + # 如果有升级,更新属性 + if level_ups > 0: + health_defense_data = target_pet.setdefault("生命与防御", {}) + + # 计算升级后的属性(每级10%加成) + old_max_health = health_defense_data.get("最大生命值", 100.0) + old_max_shield = health_defense_data.get("最大护盾值", 0.0) + old_max_armor = health_defense_data.get("最大护甲值", 100.0) + + # 应用升级加成 + new_max_health = old_max_health * level_bonus_multiplier + new_max_shield = old_max_shield * level_bonus_multiplier + new_max_armor = old_max_armor * level_bonus_multiplier + + health_defense_data["最大生命值"] = new_max_health + health_defense_data["当前生命值"] = new_max_health # 升级回满血 + health_defense_data["最大护盾值"] = new_max_shield + health_defense_data["当前护盾值"] = new_max_shield # 升级回满护盾 + health_defense_data["最大护甲值"] = new_max_armor + health_defense_data["当前护甲值"] = new_max_armor # 升级回满护甲 + + # 更新攻击属性 + attack_data = target_pet.setdefault("基础攻击属性", {}) + old_attack_damage = attack_data.get("基础攻击伤害", 20.0) + new_attack_damage = old_attack_damage * level_bonus_multiplier + attack_data["基础攻击伤害"] = new_attack_damage + + return True +#==========================更新宠物对战数据处理========================== + + +#==========================宠物喂食处理========================== + #处理宠物喂食请求 + def _handle_feed_pet(self, client_id, message): + """处理宠物喂食请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "宠物喂食", "feed_pet") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "feed_pet") + if not player_data: + return self.send_data(client_id, response) + + # 获取请求参数 + pet_id = message.get("pet_id", "") + crop_name = message.get("crop_name", "") + feed_effects = message.get("feed_effects", {}) + + # 验证参数 + if not pet_id: + return self._send_action_error(client_id, "feed_pet", "宠物ID不能为空") + + if not crop_name: + return self._send_action_error(client_id, "feed_pet", "作物名称不能为空") + + # 检查玩家是否有该作物 + crop_warehouse = player_data.get("crop_warehouse", []) + crop_found = False + crop_index = -1 + + for i, crop_item in enumerate(crop_warehouse): + if crop_item.get("name") == crop_name: + if crop_item.get("count", 0) > 0: + crop_found = True + crop_index = i + break + + if not crop_found: + return self._send_action_error(client_id, "feed_pet", f"没有足够的{crop_name}用于喂食") + + # 检查宠物是否存在 + pet_bag = player_data.get("宠物背包", []) + target_pet = None + + for pet in pet_bag: + if pet.get("基本信息", {}).get("宠物ID", "") == pet_id: + # 检查宠物主人是否正确 + if pet.get("基本信息", {}).get("宠物主人", "") != username: + return self._send_action_error(client_id, "feed_pet", "你不是该宠物的主人") + target_pet = pet + break + + if not target_pet: + return self._send_action_error(client_id, "feed_pet", "未找到指定的宠物") + + # 验证作物是否有喂养效果 + crop_data = self._load_crop_data() + if crop_name not in crop_data or "喂养效果" not in crop_data[crop_name]: + return self._send_action_error(client_id, "feed_pet", f"{crop_name}没有喂养效果") + + # 获取作物的喂养效果 + crop_feed_effects = crop_data[crop_name]["喂养效果"] + + # 执行喂食 + success, applied_effects = self._process_pet_feeding(player_data, target_pet, crop_name, crop_index, crop_feed_effects) + + if success: + # 保存玩家数据 + self.save_player_data(username, player_data) + + pet_name = target_pet.get("基本信息", {}).get("宠物名称", "未知宠物") + + # 构建效果描述 + effect_descriptions = [] + for effect_name, effect_value in applied_effects.items(): + if effect_value > 0: + effect_descriptions.append(f"{effect_name}+{effect_value}") + + effect_text = ",".join(effect_descriptions) if effect_descriptions else "无效果" + self.log('INFO', f"玩家 {username} 用{crop_name}喂食宠物 {pet_name},获得:{effect_text}", 'SERVER') + + return self.send_data(client_id, { + "type": "action_response", + "action_type": "feed_pet", + "success": True, + "message": f"成功喂食{pet_name}!获得:{effect_text}", + "pet_id": pet_id, + "crop_name": crop_name, + "applied_effects": applied_effects, + "updated_data": { + "宠物背包": player_data["宠物背包"], + "crop_warehouse": player_data["crop_warehouse"] + } + }) + else: + return self._send_action_error(client_id, "feed_pet", "喂食失败") + + #辅助函数-处理宠物喂食逻辑 + def _process_pet_feeding(self, player_data, target_pet, crop_name, crop_index, feed_effects): + """处理宠物喂食逻辑,支持多种属性提升""" + try: + # 消耗作物 + crop_warehouse = player_data.get("crop_warehouse", []) + if crop_index >= 0 and crop_index < len(crop_warehouse): + crop_warehouse[crop_index]["count"] -= 1 + # 如果数量为0,移除该作物 + if crop_warehouse[crop_index]["count"] <= 0: + crop_warehouse.pop(crop_index) + + # 记录实际应用的效果 + applied_effects = {} + + # 获取宠物各个属性数据 + level_exp_data = target_pet.setdefault("等级经验", {}) + health_defense_data = target_pet.setdefault("生命与防御", {}) + attack_data = target_pet.setdefault("基础攻击属性", {}) + movement_data = target_pet.setdefault("移动与闪避", {}) + + # 处理经验效果 + if "经验" in feed_effects: + exp_gain = feed_effects["经验"] + current_exp = level_exp_data.get("当前经验", 0) + max_exp = level_exp_data.get("最大经验", 100) + current_level = level_exp_data.get("宠物等级", 1) + + new_exp = current_exp + exp_gain + applied_effects["经验"] = exp_gain + + # 检查是否升级 + level_ups = 0 + while new_exp >= max_exp and current_level < 100: # 假设最大等级为100 + level_ups += 1 + new_exp -= max_exp + current_level += 1 + # 每升一级,最大经验增加20% + max_exp = int(max_exp * 1.2) + + # 更新经验数据 + level_exp_data["当前经验"] = new_exp + level_exp_data["最大经验"] = max_exp + level_exp_data["宠物等级"] = current_level + + # 如果升级了,记录升级次数 + if level_ups > 0: + applied_effects["升级"] = level_ups + # 升级时应用属性加成 + self._apply_level_up_bonus(target_pet, level_ups) + + # 处理生命值效果 + if "生命值" in feed_effects: + hp_gain = feed_effects["生命值"] + current_hp = health_defense_data.get("当前生命值", 100) + max_hp = health_defense_data.get("最大生命值", 100) + + actual_hp_gain = min(hp_gain, max_hp - current_hp) # 不能超过最大生命值 + if actual_hp_gain > 0: + health_defense_data["当前生命值"] = current_hp + actual_hp_gain + applied_effects["生命值"] = actual_hp_gain + + # 处理攻击力效果 + if "攻击力" in feed_effects: + attack_gain = feed_effects["攻击力"] + current_attack = attack_data.get("基础攻击伤害", 20) + new_attack = current_attack + attack_gain + attack_data["基础攻击伤害"] = new_attack + applied_effects["攻击力"] = attack_gain + + # 处理移动速度效果 + if "移动速度" in feed_effects: + speed_gain = feed_effects["移动速度"] + current_speed = movement_data.get("移动速度", 100) + new_speed = current_speed + speed_gain + movement_data["移动速度"] = new_speed + applied_effects["移动速度"] = speed_gain + + # 处理亲密度效果 + if "亲密度" in feed_effects: + intimacy_gain = feed_effects["亲密度"] + current_intimacy = level_exp_data.get("亲密度", 0) + max_intimacy = level_exp_data.get("最大亲密度", 1000) + + actual_intimacy_gain = min(intimacy_gain, max_intimacy - current_intimacy) + if actual_intimacy_gain > 0: + level_exp_data["亲密度"] = current_intimacy + actual_intimacy_gain + applied_effects["亲密度"] = actual_intimacy_gain + + # 处理护甲值效果 + if "护甲值" in feed_effects: + armor_gain = feed_effects["护甲值"] + current_armor = health_defense_data.get("当前护甲值", 10) + max_armor = health_defense_data.get("最大护甲值", 10) + + actual_armor_gain = min(armor_gain, max_armor - current_armor) + if actual_armor_gain > 0: + health_defense_data["当前护甲值"] = current_armor + actual_armor_gain + applied_effects["护甲值"] = actual_armor_gain + + # 处理护盾值效果 + if "护盾值" in feed_effects: + shield_gain = feed_effects["护盾值"] + current_shield = health_defense_data.get("当前护盾值", 0) + max_shield = health_defense_data.get("最大护盾值", 0) + + actual_shield_gain = min(shield_gain, max_shield - current_shield) + if actual_shield_gain > 0: + health_defense_data["当前护盾值"] = current_shield + actual_shield_gain + applied_effects["护盾值"] = actual_shield_gain + + # 处理暴击率效果 + if "暴击率" in feed_effects: + crit_gain = feed_effects["暴击率"] / 100.0 # 转换为小数 + current_crit = attack_data.get("暴击率", 0.1) + new_crit = min(current_crit + crit_gain, 1.0) # 最大100% + attack_data["暴击率"] = new_crit + applied_effects["暴击率"] = feed_effects["暴击率"] + + # 处理闪避率效果 + if "闪避率" in feed_effects: + dodge_gain = feed_effects["闪避率"] / 100.0 # 转换为小数 + current_dodge = movement_data.get("闪避率", 0.05) + new_dodge = min(current_dodge + dodge_gain, 1.0) # 最大100% + movement_data["闪避率"] = new_dodge + applied_effects["闪避率"] = feed_effects["闪避率"] + + return True, applied_effects + + except Exception as e: + self.log('ERROR', f"宠物喂食处理失败: {str(e)}", 'SERVER') + return False, {} + + #辅助函数-应用升级加成 + def _apply_level_up_bonus(self, target_pet, level_ups): + """应用升级时的属性加成""" + # 每升一级,属性增加10% + level_bonus_multiplier = 1.1 ** level_ups + + # 更新生命和防御属性 + health_defense_data = target_pet.setdefault("生命与防御", {}) + old_max_hp = health_defense_data.get("最大生命值", 100) + old_max_armor = health_defense_data.get("最大护甲值", 10) + old_max_shield = health_defense_data.get("最大护盾值", 0) + + new_max_hp = old_max_hp * level_bonus_multiplier + new_max_armor = old_max_armor * level_bonus_multiplier + new_max_shield = old_max_shield * level_bonus_multiplier + + health_defense_data["最大生命值"] = new_max_hp + health_defense_data["当前生命值"] = new_max_hp # 升级回满血 + health_defense_data["最大护甲值"] = new_max_armor + health_defense_data["当前护甲值"] = new_max_armor + health_defense_data["最大护盾值"] = new_max_shield + health_defense_data["当前护盾值"] = new_max_shield + + # 更新攻击属性 + attack_data = target_pet.setdefault("基础攻击属性", {}) + old_attack = attack_data.get("基础攻击伤害", 20) + new_attack = old_attack * level_bonus_multiplier + attack_data["基础攻击伤害"] = new_attack +#==========================宠物喂食处理========================== #==========================开垦土地处理========================== @@ -3396,6 +4424,342 @@ class TCPGameServer(TCPServer): +#==========================宠物使用道具处理========================== + def _handle_use_pet_item(self, client_id, message): + """处理宠物使用道具请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "宠物使用道具", "use_pet_item") + if not logged_in: + return self.send_data(client_id, response) + + # 获取请求参数 + item_name = message.get("item_name", "") + pet_id = message.get("pet_id", "") + + if not item_name or not pet_id: + return self.send_data(client_id, { + "type": "use_pet_item_response", + "success": False, + "message": "缺少必要参数" + }) + + # 获取玩家数据 + username = self.user_data[client_id]["username"] + player_data = self.load_player_data(username) + + if not player_data: + return self.send_data(client_id, { + "type": "use_pet_item_response", + "success": False, + "message": "玩家数据加载失败" + }) + + # 检查道具是否存在 + item_bag = player_data.get("道具背包", []) + item_found = False + item_index = -1 + + for i, item in enumerate(item_bag): + if item.get("name") == item_name: + if item.get("count", 0) > 0: + item_found = True + item_index = i + break + + if not item_found: + return self.send_data(client_id, { + "type": "use_pet_item_response", + "success": False, + "message": f"道具 {item_name} 不足" + }) + + # 检查宠物是否存在 + pet_bag = player_data.get("宠物背包", []) + pet_found = False + pet_index = -1 + + for i, pet in enumerate(pet_bag): + if pet.get("基本信息", {}).get("宠物ID") == pet_id: + pet_found = True + pet_index = i + break + + if not pet_found: + return self.send_data(client_id, { + "type": "use_pet_item_response", + "success": False, + "message": "找不到指定的宠物" + }) + + # 处理道具使用 + try: + success, result_message, updated_pet = self._process_pet_item_use( + item_name, pet_bag[pet_index] + ) + + if success: + # 更新宠物数据 + pet_bag[pet_index] = updated_pet + + # 减少道具数量 + item_bag[item_index]["count"] -= 1 + if item_bag[item_index]["count"] <= 0: + item_bag.pop(item_index) + + # 保存玩家数据 + self.save_player_data(username, player_data) + + # 发送成功响应 + response = { + "type": "use_pet_item_response", + "success": True, + "message": result_message, + "updated_data": { + "宠物背包": pet_bag, + "道具背包": item_bag + } + } + + self.log('INFO', f"用户 {username} 对宠物 {pet_id} 使用道具 {item_name} 成功", 'PET_ITEM') + + else: + # 发送失败响应 + response = { + "type": "use_pet_item_response", + "success": False, + "message": result_message + } + + return self.send_data(client_id, response) + + except Exception as e: + self.log('ERROR', f"宠物使用道具处理失败: {str(e)}", 'PET_ITEM') + return self.send_data(client_id, { + "type": "use_pet_item_response", + "success": False, + "message": "道具使用处理失败" + }) + + def _process_pet_item_use(self, item_name, pet_data): + """处理具体的宠物道具使用逻辑""" + try: + # 根据道具类型应用不同的效果 + if item_name == "不死图腾": + # 启用死亡免疫机制 + pet_data["特殊机制开关"]["启用死亡免疫机制"] = True + pet_data["特殊属性"]["死亡免疫"] = True + return True, f"宠物 {pet_data['基本信息']['宠物名称']} 获得了死亡免疫能力!", pet_data + + elif item_name == "荆棘护甲": + # 启用伤害反弹机制 + pet_data["特殊机制开关"]["启用伤害反弹机制"] = True + pet_data["特殊属性"]["伤害反弹"] = 0.3 # 反弹30%伤害 + return True, f"宠物 {pet_data['基本信息']['宠物名称']} 获得了荆棘护甲!", pet_data + + elif item_name == "狂暴药水": + # 启用狂暴模式机制 + pet_data["特殊机制开关"]["启用狂暴模式机制"] = True + pet_data["特殊属性"]["狂暴阈值"] = 0.3 # 血量低于30%时触发 + pet_data["特殊属性"]["狂暴状态伤害倍数"] = 2.0 # 狂暴时伤害翻倍 + return True, f"宠物 {pet_data['基本信息']['宠物名称']} 获得了狂暴能力!", pet_data + + elif item_name == "援军令牌": + # 启用援助召唤机制 + pet_data["特殊机制开关"]["启用援助召唤机制"] = True + pet_data["援助系统"]["援助触发阈值"] = 0.2 # 血量低于20%时触发 + pet_data["援助系统"]["援助召唤数量"] = 3 # 召唤3个援军 + return True, f"宠物 {pet_data['基本信息']['宠物名称']} 获得了援军召唤能力!", pet_data + + elif item_name in ["金刚图腾", "灵木图腾", "潮汐图腾", "烈焰图腾", "敦岩图腾"]: + # 改变宠物元素 + element_map = { + "金刚图腾": "METAL", + "灵木图腾": "WOOD", + "潮汐图腾": "WATER", + "烈焰图腾": "FIRE", + "敦岩图腾": "EARTH" + } + + element_name_map = { + "金刚图腾": "金", + "灵木图腾": "木", + "潮汐图腾": "水", + "烈焰图腾": "火", + "敦岩图腾": "土" + } + + new_element = element_map[item_name] + element_name = element_name_map[item_name] + + pet_data["元素属性"]["元素类型"] = new_element + pet_data["元素属性"]["元素克制额外伤害"] = 100.0 # 元素克制时额外伤害 + + return True, f"宠物 {pet_data['基本信息']['宠物名称']} 的元素属性已改变为{element_name}元素!", pet_data + + else: + return False, f"未知的宠物道具: {item_name}" + + except Exception as e: + self.log('ERROR', f"处理宠物道具效果失败: {str(e)}", 'PET_ITEM') + return False, "道具效果处理失败" + +#==========================宠物使用道具处理========================== + + + #==========================农场道具使用处理========================== + def _handle_use_farm_item(self, client_id, message): + """处理农场道具使用请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "农场道具使用", "use_farm_item") + if not logged_in: + return self.send_data(client_id, response) + + # 获取请求参数 + item_name = message.get("item_name", "") + + if not item_name: + return self.send_data(client_id, { + "type": "use_farm_item_response", + "success": False, + "message": "缺少必要参数" + }) + + # 获取玩家数据 + username = self.user_data[client_id]["username"] + player_data = self.load_player_data(username) + + if not player_data: + return self.send_data(client_id, { + "type": "use_farm_item_response", + "success": False, + "message": "玩家数据加载失败" + }) + + # 检查道具是否存在 + item_bag = player_data.get("道具背包", []) + item_found = False + item_index = -1 + + for i, item in enumerate(item_bag): + if item.get("name") == item_name: + if item.get("count", 0) > 0: + item_found = True + item_index = i + break + + if not item_found: + return self.send_data(client_id, { + "type": "use_farm_item_response", + "success": False, + "message": f"道具 {item_name} 不足" + }) + + # 处理道具使用 + try: + success, result_message, rewards = self._process_farm_item_use(item_name, player_data) + + if success: + # 减少道具数量 + item_bag[item_index]["count"] -= 1 + if item_bag[item_index]["count"] <= 0: + item_bag.pop(item_index) + + # 应用奖励 + if "money" in rewards: + player_data["money"] += rewards["money"] + if "experience" in rewards: + player_data["experience"] += rewards["experience"] + + # 检查是否升级 + self._check_level_up(player_data) + + # 保存玩家数据 + self.save_player_data(username, player_data) + + # 发送成功响应 + response = { + "type": "use_farm_item_response", + "success": True, + "message": result_message, + "updated_data": { + "money": player_data["money"], + "experience": player_data["experience"], + "level": player_data["level"], + "道具背包": item_bag + } + } + + self.log('INFO', f"用户 {username} 使用农场道具 {item_name} 成功", 'FARM_ITEM') + + else: + # 发送失败响应 + response = { + "type": "use_farm_item_response", + "success": False, + "message": result_message + } + + return self.send_data(client_id, response) + + except Exception as e: + self.log('ERROR', f"农场道具使用处理失败: {str(e)}", 'FARM_ITEM') + return self.send_data(client_id, { + "type": "use_farm_item_response", + "success": False, + "message": "道具使用处理失败" + }) + + def _process_farm_item_use(self, item_name, player_data): + """处理具体的农场道具使用逻辑""" + try: + rewards = {} + + if item_name == "小额经验卡": + # 给玩家增加500经验 + rewards["experience"] = 500 + return True, f"使用 {item_name} 成功!获得了500经验值", rewards + + elif item_name == "小额金币卡": + # 给玩家增加500金币 + rewards["money"] = 500 + return True, f"使用 {item_name} 成功!获得了500金币", rewards + + else: + return False, f"未知的农场道具: {item_name}", {} + + except Exception as e: + self.log('ERROR', f"处理农场道具效果失败: {str(e)}", 'FARM_ITEM') + return False, "道具效果处理失败", {} + + #==========================农场道具使用处理========================== + + + + +#==========================道具配置数据处理========================== + #处理客户端请求道具配置数据 + def _handle_item_config_request(self, client_id): + """处理客户端请求道具配置数据""" + item_config = self._load_item_config() + + if item_config: + self.log('INFO', f"向客户端 {client_id} 发送道具配置数据,道具种类:{len(item_config)}", 'SERVER') + return self.send_data(client_id, { + "type": "item_config_response", + "success": True, + "item_config": item_config + }) + else: + return self.send_data(client_id, { + "type": "item_config_response", + "success": False, + "message": "无法读取道具配置数据" + }) +#==========================道具配置数据处理========================== + + + + #==========================升级土地处理========================== #处理升级土地请求 def _handle_upgrade_land(self, client_id, message): @@ -3730,6 +5094,90 @@ class TCPGameServer(TCPServer): self.save_player_data(username, player_data) self.log('INFO', f"为已存在玩家 {username} 设置默认注册时间", 'SERVER') + def _check_and_fix_wisdom_tree_config(self, player_data, username): + """检查并修复智慧树配置""" + import time + current_time = int(time.time()) + + # 初始化智慧树配置(如果不存在) + if "智慧树配置" not in player_data: + player_data["智慧树配置"] = { + "距离上一次杀虫时间": current_time, + "距离上一次除草时间": current_time, + "智慧树显示的话": "", + "等级": 1, + "当前经验值": 0, + "最大经验值": 100, + "最大生命值": 100, + "当前生命值": 100, + "高度": 20 + } + self.log('INFO', f"为玩家 {username} 初始化智慧树配置", 'SERVER') + else: + # 检查并修复已存在的智慧树配置 + wisdom_tree_config = player_data["智慧树配置"] + config_fixed = False + + # 修复空字符串或无效的时间戳 + if "距离上一次除草时间" not in wisdom_tree_config or not wisdom_tree_config["距离上一次除草时间"] or wisdom_tree_config["距离上一次除草时间"] == "": + wisdom_tree_config["距离上一次除草时间"] = current_time + config_fixed = True + + if "距离上一次杀虫时间" not in wisdom_tree_config or not wisdom_tree_config["距离上一次杀虫时间"] or wisdom_tree_config["距离上一次杀虫时间"] == "": + wisdom_tree_config["距离上一次杀虫时间"] = current_time + config_fixed = True + + if "上次护理时间" not in wisdom_tree_config or not wisdom_tree_config["上次护理时间"]: + wisdom_tree_config["上次护理时间"] = current_time + config_fixed = True + + # 确保其他必需字段存在并转换旧格式 + if "等级" not in wisdom_tree_config: + wisdom_tree_config["等级"] = 1 + config_fixed = True + if "当前经验值" not in wisdom_tree_config: + # 兼容旧的"经验"字段 + old_exp = wisdom_tree_config.get("经验", 0) + wisdom_tree_config["当前经验值"] = old_exp + if "经验" in wisdom_tree_config: + del wisdom_tree_config["经验"] + config_fixed = True + if "最大经验值" not in wisdom_tree_config: + wisdom_tree_config["最大经验值"] = self._calculate_wisdom_tree_max_exp(wisdom_tree_config.get("等级", 1)) + config_fixed = True + if "当前生命值" not in wisdom_tree_config: + # 兼容旧的"生命值"字段 + old_health = wisdom_tree_config.get("生命值", 100) + wisdom_tree_config["当前生命值"] = old_health + if "生命值" in wisdom_tree_config: + del wisdom_tree_config["生命值"] # 删除旧字段 + config_fixed = True + if "最大生命值" not in wisdom_tree_config: + wisdom_tree_config["最大生命值"] = 100 + config_fixed = True + if "高度" not in wisdom_tree_config: + wisdom_tree_config["高度"] = 20 + config_fixed = True + if "智慧树显示的话" not in wisdom_tree_config: + wisdom_tree_config["智慧树显示的话"] = "" + config_fixed = True + + if config_fixed: + self.log('INFO', f"为玩家 {username} 修复智慧树配置", 'SERVER') + + def _calculate_wisdom_tree_max_exp(self, level): + """计算智慧树指定等级的最大经验值 + 使用前期升级快,后期愈来愈慢的公式 + """ + if level <= 1: + return 100 + # 使用指数增长公式:基础经验 * (等级^1.5) * 1.2 + base_exp = 50 + exp_multiplier = 1.2 + level_factor = pow(level, 1.5) + max_exp = int(base_exp * level_factor * exp_multiplier) + return max_exp + #==========================玩家体力值处理========================== @@ -4008,6 +5456,10 @@ class TCPGameServer(TCPServer): + + + + #==========================访问其他玩家农场处理========================== #处理访问其他玩家农场的请求 def _handle_visit_player_request(self, client_id, message): @@ -4036,6 +5488,9 @@ class TCPGameServer(TCPServer): "message": f"无法找到玩家 {target_username} 的数据" }) + # 检查并修复目标玩家的智慧树配置格式 + self._check_and_fix_wisdom_tree_config(target_player_data, target_username) + # 返回目标玩家的农场数据(只返回可见的数据,不包含敏感信息如密码) safe_player_data = { "user_name": target_player_data.get("user_name", target_username), @@ -4049,6 +5504,11 @@ class TCPGameServer(TCPServer): "player_bag": target_player_data.get("player_bag", []), "作物仓库": target_player_data.get("作物仓库", []), "道具背包": target_player_data.get("道具背包", []), + "宠物背包": target_player_data.get("宠物背包", []), + "巡逻宠物": self._convert_patrol_pets_to_full_data(target_player_data), + "出战宠物": self._convert_battle_pets_to_full_data(target_player_data), + "稻草人配置": target_player_data.get("稻草人配置", {}), + "智慧树配置": target_player_data.get("智慧树配置", {}), "last_login_time": target_player_data.get("last_login_time", "未知"), "total_login_time": target_player_data.get("total_login_time", "0时0分0秒"), "total_likes": target_player_data.get("total_likes", 0) @@ -4108,6 +5568,10 @@ class TCPGameServer(TCPServer): "体力值": player_data.get("体力值", 20), "farm_lots": player_data.get("farm_lots", []), "player_bag": player_data.get("player_bag", []), + "宠物背包": player_data.get("宠物背包", []), + "巡逻宠物": self._convert_patrol_pets_to_full_data(player_data), + "出战宠物": self._convert_battle_pets_to_full_data(player_data), + "稻草人配置": player_data.get("稻草人配置", {}), "total_likes": player_data.get("total_likes", 0) }, "is_visiting": False @@ -4470,6 +5934,240 @@ class TCPGameServer(TCPServer): +#==========================全服大喇叭消息处理========================== + #处理全服大喇叭消息 + def _handle_global_broadcast_message(self, client_id, message): + """处理全服大喇叭消息""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "发送全服大喇叭消息", "global_broadcast") + if not logged_in: + return self.send_data(client_id, response) + + # 获取消息内容 + content = message.get("content", "").strip() + if not content: + return self.send_data(client_id, { + "type": "global_broadcast_response", + "success": False, + "message": "消息内容不能为空" + }) + + # 检查消息长度 + if len(content) > 200: + return self.send_data(client_id, { + "type": "global_broadcast_response", + "success": False, + "message": "消息长度不能超过200字符" + }) + + # 获取发送者信息 + username = self.user_data[client_id]["username"] + + # 获取玩家数据以获取昵称 + player_data = self.load_player_data(username) + player_name = "" + if player_data: + player_name = player_data.get("player_name", "") + + # 创建广播消息 + broadcast_message = { + "type": "global_broadcast_message", + "username": username, + "player_name": player_name, + "content": content, + "timestamp": time.time() + } + + # 广播给所有在线用户 + self.broadcast(broadcast_message) + + # 保存消息到日志文件 + self._save_broadcast_message_to_log(username, player_name, content) + + # 发送成功响应给发送者 + self.send_data(client_id, { + "type": "global_broadcast_response", + "success": True, + "message": "大喇叭消息发送成功" + }) + + self.log('INFO', f"用户 {username}({player_name}) 发送全服大喇叭消息: {content}", 'BROADCAST') + + return True + + #保存大喇叭消息到日志文件 + def _save_broadcast_message_to_log(self, username, player_name, content): + """保存大喇叭消息到日志文件""" + try: + # 创建chat文件夹(如果不存在) + import os + chat_dir = os.path.join(os.path.dirname(__file__), "chat") + if not os.path.exists(chat_dir): + os.makedirs(chat_dir) + + # 获取当前日期作为文件名 + current_date = datetime.datetime.now().strftime("%Y-%m-%d") + log_file_path = os.path.join(chat_dir, f"{current_date}.log") + + # 格式化时间戳 + timestamp = datetime.datetime.now().strftime("%Y年%m月%d日 %H:%M:%S") + + # 创建日志条目 + display_name = player_name if player_name else username + log_entry = f"[{timestamp}] {display_name}({username}): {content}\n" + + # 追加到日志文件 + with open(log_file_path, 'a', encoding='utf-8') as f: + f.write(log_entry) + + except Exception as e: + self.log('ERROR', f"保存大喇叭消息到日志文件时出错: {str(e)}", 'BROADCAST') + + def _handle_request_broadcast_history(self, client_id, message): + """处理请求全服大喇叭历史消息""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "请求全服大喇叭历史消息", "request_broadcast_history") + if not logged_in: + return self.send_data(client_id, response) + + try: + days = message.get("days", 3) # 默认加载3天 + if days > 30: # 限制最多30天 + days = 30 + + messages = self._load_broadcast_history(days) + + # 发送历史消息响应 + response = { + "type": "broadcast_history_response", + "success": True, + "messages": messages, + "days": days + } + + self.log('INFO', f"向客户端 {client_id} 发送了 {len(messages)} 条历史消息(最近{days}天)", 'SERVER') + return self.send_data(client_id, response) + + except Exception as e: + self.log('ERROR', f"处理全服大喇叭历史消息请求失败: {str(e)}", 'SERVER') + error_response = { + "type": "broadcast_history_response", + "success": False, + "message": "加载历史消息失败" + } + return self.send_data(client_id, error_response) + + def _load_broadcast_history(self, days): + """从日志文件加载历史消息""" + messages = [] + chat_dir = os.path.join(os.path.dirname(__file__), "chat") + + if not os.path.exists(chat_dir): + return messages + + try: + # 获取需要加载的日期范围 + end_date = datetime.datetime.now() + start_date = end_date - datetime.timedelta(days=days-1) + + self.log('INFO', f"查找历史消息,日期范围: {start_date.strftime('%Y-%m-%d')} 到 {end_date.strftime('%Y-%m-%d')}", 'SERVER') + + # 遍历日期范围内的所有日志文件 + current_date = start_date + while current_date <= end_date: + date_str = current_date.strftime("%Y-%m-%d") + log_file = os.path.join(chat_dir, f"{date_str}.log") + + self.log('INFO', f"检查日志文件: {log_file}", 'SERVER') + + if os.path.exists(log_file): + self.log('INFO', f"找到日志文件: {log_file}", 'SERVER') + with open(log_file, "r", encoding="utf-8") as f: + lines = f.readlines() + + self.log('INFO', f"日志文件 {date_str}.log 包含 {len(lines)} 行", 'SERVER') + + # 解析每一行消息 + for line in lines: + line = line.strip() + if line: + parsed_message = self._parse_log_message(line) + if parsed_message: + messages.append(parsed_message) + self.log('INFO', f"解析消息成功: {parsed_message['content'][:20]}...", 'SERVER') + else: + self.log('WARNING', f"解析消息失败: {line[:50]}...", 'SERVER') + else: + self.log('INFO', f"日志文件不存在: {log_file}", 'SERVER') + + current_date += datetime.timedelta(days=1) + + # 按时间戳排序 + messages.sort(key=lambda x: x.get("timestamp", 0)) + + # 限制消息数量,最多返回500条 + if len(messages) > 500: + messages = messages[-500:] + + return messages + + except Exception as e: + self.log('ERROR', f"加载全服大喇叭历史消息失败: {str(e)}", 'SERVER') + return [] + + def _parse_log_message(self, line): + """解析日志消息行""" + try: + # 消息格式: [时间] 昵称(QQ号): 消息内容 + import re + + # 匹配时间部分 + time_match = re.match(r'\[([^\]]+)\]', line) + if not time_match: + return None + + time_str = time_match.group(1) + + # 匹配用户名和消息内容 + # 格式: 昵称(QQ号): 消息内容 + content_part = line[len(time_match.group(0)):].strip() + + # 查找用户名和消息内容 + user_match = re.match(r'([^(]+)\(([^)]+)\):\s*(.+)', content_part) + if not user_match: + return None + + player_name = user_match.group(1).strip() + username = user_match.group(2).strip() + content = user_match.group(3).strip() + + # 解析时间戳 + try: + # 时间格式: 2024年01月01日 12:00:00 + time_obj = datetime.datetime.strptime(time_str, "%Y年%m月%d日 %H:%M:%S") + timestamp = time_obj.timestamp() + except: + timestamp = time.time() + + return { + "username": username, + "player_name": player_name, + "display_name": player_name if player_name else username, + "content": content, + "timestamp": timestamp, + "time_str": time_str + } + + except Exception as e: + self.log('ERROR', f"解析日志消息失败: {line}, 错误: {str(e)}", 'SERVER') + return None + + #==========================全服大喇叭消息处理========================== + + + + + #==========================聊天消息处理========================== #处理聊天消息(暂未完成) def _handle_chat_message(self, client_id, message): @@ -5719,6 +7417,1255 @@ class TCPGameServer(TCPServer): }) # ================================账户设置处理方法================================ + + +#==========================稻草人系统处理========================== + def _handle_buy_scare_crow(self, client_id, message): + """处理购买稻草人请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "购买稻草人", "buy_scare_crow") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "buy_scare_crow") + if not player_data: + return self.send_data(client_id, response) + + scare_crow_type = message.get("scare_crow_type", "") + price = message.get("price", 0) + + # 加载稻草人配置 + scare_crow_config = self._load_scare_crow_config() + if not scare_crow_config: + return self._send_buy_scare_crow_error(client_id, "服务器无法加载稻草人配置") + + # 检查稻草人类型是否存在 + if scare_crow_type not in scare_crow_config.get("稻草人类型", {}): + return self._send_buy_scare_crow_error(client_id, "该稻草人类型不存在") + + # 验证价格是否正确 + actual_price = scare_crow_config["稻草人类型"][scare_crow_type]["价格"] + if price != actual_price: + return self._send_buy_scare_crow_error(client_id, f"稻草人价格验证失败,实际价格为{actual_price}金币") + + # 检查玩家金钱 + if player_data["money"] < price: + return self._send_buy_scare_crow_error(client_id, f"金币不足,需要{price}金币,当前只有{player_data['money']}金币") + + # 确保稻草人配置存在 + if "稻草人配置" not in player_data: + player_data["稻草人配置"] = { + "已拥有稻草人类型": ["稻草人1"], + "稻草人展示类型": "", + "稻草人昵称": "我的稻草人", + "稻草人昵称颜色": "#ffffff", + "稻草人说的话": { + "第一句话": {"内容": "", "颜色": "#000000"}, + "第二句话": {"内容": "", "颜色": "#000000"}, + "第三句话": {"内容": "", "颜色": "#000000"}, + "第四句话": {"内容": "", "颜色": "#000000"} + } + } + + # 检查是否已拥有该稻草人 + if scare_crow_type in player_data["稻草人配置"]["已拥有稻草人类型"]: + return self._send_buy_scare_crow_error(client_id, f"你已经拥有{scare_crow_type}了") + + # 扣除金钱 + player_data["money"] -= price + + # 添加稻草人到已拥有列表 + player_data["稻草人配置"]["已拥有稻草人类型"].append(scare_crow_type) + + # 如果是第一个稻草人,设置为展示类型 + if player_data["稻草人配置"]["稻草人展示类型"] == "": + player_data["稻草人配置"]["稻草人展示类型"] = scare_crow_type + + # 保存玩家数据 + self.save_player_data(username, player_data) + + self.log('INFO', f"玩家 {username} 购买了稻草人 {scare_crow_type},花费 {price} 金币", 'SERVER') + + return self.send_data(client_id, { + "type": "buy_scare_crow_response", + "success": True, + "message": f"成功购买{scare_crow_type}!", + "updated_data": { + "money": player_data["money"], + "稻草人配置": player_data["稻草人配置"] + } + }) + + def _handle_modify_scare_crow_config(self, client_id, message): + """处理修改稻草人配置请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "修改稻草人配置", "modify_scare_crow_config") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "modify_scare_crow_config") + if not player_data: + return self.send_data(client_id, response) + + config_data = message.get("config_data", {}) + modify_cost = message.get("modify_cost", 300) + + # 加载稻草人配置 + scare_crow_config = self._load_scare_crow_config() + if not scare_crow_config: + return self._send_modify_scare_crow_config_error(client_id, "服务器无法加载稻草人配置") + + # 检查是否只是切换展示类型(不收费) + is_only_changing_display = ( + len(config_data) == 1 and + "稻草人展示类型" in config_data and + modify_cost == 0 + ) + + if not is_only_changing_display: + # 验证修改费用 + actual_cost = scare_crow_config.get("修改稻草人配置花费", 300) + if modify_cost != actual_cost: + return self._send_modify_scare_crow_config_error(client_id, f"修改费用验证失败,实际费用为{actual_cost}金币") + + # 检查玩家金钱 + if player_data["money"] < modify_cost: + return self._send_modify_scare_crow_config_error(client_id, f"金币不足,需要{modify_cost}金币,当前只有{player_data['money']}金币") + + # 确保稻草人配置存在 + if "稻草人配置" not in player_data: + return self._send_modify_scare_crow_config_error(client_id, "你还没有稻草人,请先购买稻草人") + + # 只在非切换展示类型时扣除金钱 + if not is_only_changing_display: + player_data["money"] -= modify_cost + + # 更新稻草人配置 + if "稻草人展示类型" in config_data: + # 检查展示类型是否已拥有 + owned_types = player_data["稻草人配置"].get("已拥有稻草人类型", []) + if config_data["稻草人展示类型"] in owned_types: + player_data["稻草人配置"]["稻草人展示类型"] = config_data["稻草人展示类型"] + else: + return self._send_modify_scare_crow_config_error(client_id, "你没有拥有该稻草人类型") + + if "稻草人昵称" in config_data: + player_data["稻草人配置"]["稻草人昵称"] = config_data["稻草人昵称"] + + if "稻草人昵称颜色" in config_data: + player_data["稻草人配置"]["稻草人昵称颜色"] = config_data["稻草人昵称颜色"] + + if "稻草人说的话" in config_data: + player_data["稻草人配置"]["稻草人说的话"] = config_data["稻草人说的话"] + + # 保存玩家数据 + self.save_player_data(username, player_data) + + if is_only_changing_display: + self.log('INFO', f"玩家 {username} 切换了稻草人展示类型到 {config_data['稻草人展示类型']}", 'SERVER') + message = f"成功切换到{config_data['稻草人展示类型']}!" + else: + self.log('INFO', f"玩家 {username} 修改了稻草人配置,花费 {modify_cost} 金币", 'SERVER') + message = f"稻草人配置修改成功!花费{modify_cost}金币" + + return self.send_data(client_id, { + "type": "modify_scare_crow_config_response", + "success": True, + "message": message, + "updated_data": { + "money": player_data["money"], + "稻草人配置": player_data["稻草人配置"] + } + }) + + def _handle_get_scare_crow_config(self, client_id, message): + """处理获取稻草人配置请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "获取稻草人配置", "get_scare_crow_config") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "get_scare_crow_config") + if not player_data: + return self.send_data(client_id, response) + + # 确保稻草人配置存在 + if "稻草人配置" not in player_data: + player_data["稻草人配置"] = { + "已拥有稻草人类型": [], + "稻草人展示类型": "", + "稻草人昵称": "我的稻草人", + "稻草人昵称颜色": "#ffffff", + "稻草人说的话": { + "第一句话": {"内容": "", "颜色": "#000000"}, + "第二句话": {"内容": "", "颜色": "#000000"}, + "第三句话": {"内容": "", "颜色": "#000000"}, + "第四句话": {"内容": "", "颜色": "#000000"} + } + } + # 保存默认配置 + self.save_player_data(username, player_data) + + return self.send_data(client_id, { + "type": "get_scare_crow_config_response", + "success": True, + "message": "获取稻草人配置成功", + "scare_crow_config": player_data["稻草人配置"] + }) + + def _load_scare_crow_config(self): + """加载稻草人配置""" + try: + with open("config/scare_crow_config.json", 'r', encoding='utf-8') as file: + return json.load(file) + except Exception as e: + self.log('ERROR', f"无法加载稻草人配置: {str(e)}", 'SERVER') + return {} + + def _send_buy_scare_crow_error(self, client_id, message): + """发送购买稻草人错误响应""" + return self.send_data(client_id, { + "type": "buy_scare_crow_response", + "success": False, + "message": message + }) + + def _send_modify_scare_crow_config_error(self, client_id, message): + """发送修改稻草人配置错误响应""" + return self.send_data(client_id, { + "type": "modify_scare_crow_config_response", + "success": False, + "message": message + }) + +#==========================智慧树系统处理========================== + def _handle_wisdom_tree_operation(self, client_id, message): + """处理智慧树操作请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "智慧树操作", "wisdom_tree_operation") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "wisdom_tree_operation") + if not player_data: + return self.send_data(client_id, response) + + operation_type = message.get("operation_type", "") + + # 检查并修复智慧树配置格式 + self._check_and_fix_wisdom_tree_config(player_data, username) + + # 获取修复后的智慧树配置 + wisdom_tree_config = player_data["智慧树配置"] + + # 处理不同的操作类型 + if operation_type == "water": + return self._process_wisdom_tree_water(client_id, player_data, username, wisdom_tree_config) + elif operation_type == "fertilize": + return self._process_wisdom_tree_fertilize(client_id, player_data, username, wisdom_tree_config) + elif operation_type == "kill_grass": + return self._process_wisdom_tree_kill_grass(client_id, player_data, username, wisdom_tree_config) + elif operation_type == "kill_bug": + return self._process_wisdom_tree_kill_bug(client_id, player_data, username, wisdom_tree_config) + elif operation_type == "play_music": + return self._process_wisdom_tree_play_music(client_id, player_data, username, wisdom_tree_config) + elif operation_type == "revive": + return self._process_wisdom_tree_revive(client_id, player_data, username, wisdom_tree_config) + elif operation_type == "get_random_message": + return self._process_wisdom_tree_get_random_message(client_id, player_data, username, wisdom_tree_config) + else: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": "未知的智慧树操作类型", + "operation_type": operation_type + }) + + def _process_wisdom_tree_water(self, client_id, player_data, username, wisdom_tree_config): + """处理智慧树浇水""" + # 检查智慧树是否死亡 + if wisdom_tree_config["当前生命值"] <= 0: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": "智慧树已死亡,请先复活!", + "operation_type": "water" + }) + + # 浇水费用 + water_cost = 100 + + # 检查金钱是否足够 + if player_data["money"] < water_cost: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": f"金钱不足,浇水需要 {water_cost} 金币", + "operation_type": "water" + }) + + # 执行浇水 + player_data["money"] -= water_cost + + # 浇水经验:50-150随机 + import random + exp_gained = random.randint(50, 150) + wisdom_tree_config["当前经验值"] += exp_gained + + # 浇水高度:40%概率增加1-2高度 + height_gained = 0 + if random.random() < 0.4: # 40%概率 + height_gained = random.randint(1, 2) + wisdom_tree_config["高度"] = min(100, wisdom_tree_config["高度"] + height_gained) + + # 检查等级提升 + level_up_occurred = self._check_wisdom_tree_level_up(wisdom_tree_config) + + # 保存数据 + self.save_player_data(username, player_data) + + height_msg = f",高度+{height_gained}" if height_gained > 0 else "" + self.log('INFO', f"玩家 {username} 给智慧树浇水,花费 {water_cost} 金币,经验+{exp_gained}{height_msg}", 'SERVER') + + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": True, + "message": f"浇水成功!经验+{exp_gained}{height_msg}", + "operation_type": "water", + "updated_data": { + "money": player_data["money"], + "智慧树配置": wisdom_tree_config + } + }) + + def _process_wisdom_tree_fertilize(self, client_id, player_data, username, wisdom_tree_config): + """处理智慧树施肥""" + # 检查智慧树是否死亡 + if wisdom_tree_config["当前生命值"] <= 0: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": "智慧树已死亡,请先复活!", + "operation_type": "fertilize" + }) + + # 施肥费用 + fertilize_cost = 200 + + # 检查金钱是否足够 + if player_data["money"] < fertilize_cost: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": f"金钱不足,施肥需要 {fertilize_cost} 金币", + "operation_type": "fertilize" + }) + + # 执行施肥 + player_data["money"] -= fertilize_cost + + # 施肥经验:10-40随机 + import random + exp_gained = random.randint(10, 40) + wisdom_tree_config["当前经验值"] += exp_gained + + # 施肥高度:80%概率增加1-7高度 + height_gained = 0 + if random.random() < 0.8: # 80%概率 + height_gained = random.randint(1, 7) + wisdom_tree_config["高度"] = min(100, wisdom_tree_config["高度"] + height_gained) + + # 检查等级提升 + level_up_occurred = self._check_wisdom_tree_level_up(wisdom_tree_config) + + # 保存数据 + self.save_player_data(username, player_data) + + height_msg = f",高度+{height_gained}" if height_gained > 0 else "" + self.log('INFO', f"玩家 {username} 给智慧树施肥,花费 {fertilize_cost} 金币,经验+{exp_gained}{height_msg}", 'SERVER') + + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": True, + "message": f"施肥成功!经验+{exp_gained}{height_msg}", + "operation_type": "fertilize", + "updated_data": { + "money": player_data["money"], + "智慧树配置": wisdom_tree_config + } + }) + + def _process_wisdom_tree_kill_grass(self, client_id, player_data, username, wisdom_tree_config): + """处理智慧树除草""" + # 检查智慧树是否死亡 + if wisdom_tree_config["当前生命值"] <= 0: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": "智慧树已死亡,请先复活!", + "operation_type": "kill_grass" + }) + + # 除草费用 + kill_grass_cost = 150 + + # 检查金钱是否足够 + if player_data["money"] < kill_grass_cost: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": f"金钱不足,除草需要 {kill_grass_cost} 金币", + "operation_type": "kill_grass" + }) + + # 执行除草 + import time + player_data["money"] -= kill_grass_cost + max_health = wisdom_tree_config["最大生命值"] + wisdom_tree_config["当前生命值"] = min(max_health, wisdom_tree_config["当前生命值"] + 10) + wisdom_tree_config["距离上一次除草时间"] = int(time.time()) + + # 保存数据 + self.save_player_data(username, player_data) + + self.log('INFO', f"玩家 {username} 给智慧树除草,花费 {kill_grass_cost} 金币,生命值+10", 'SERVER') + + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": True, + "message": "除草成功!生命值+10", + "operation_type": "kill_grass", + "updated_data": { + "money": player_data["money"], + "智慧树配置": wisdom_tree_config + } + }) + + def _process_wisdom_tree_kill_bug(self, client_id, player_data, username, wisdom_tree_config): + """处理智慧树杀虫""" + # 检查智慧树是否死亡 + if wisdom_tree_config["当前生命值"] <= 0: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": "智慧树已死亡,请先复活!", + "operation_type": "kill_bug" + }) + + # 杀虫费用 + kill_bug_cost = 150 + + # 检查金钱是否足够 + if player_data["money"] < kill_bug_cost: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": f"金钱不足,杀虫需要 {kill_bug_cost} 金币", + "operation_type": "kill_bug" + }) + + # 执行杀虫 + player_data["money"] -= kill_bug_cost + max_health = wisdom_tree_config["最大生命值"] + wisdom_tree_config["当前生命值"] = min(max_health, wisdom_tree_config["当前生命值"] + 15) + wisdom_tree_config["距离上一次杀虫时间"] = int(time.time()) + + # 保存数据 + self.save_player_data(username, player_data) + + self.log('INFO', f"玩家 {username} 给智慧树杀虫,花费 {kill_bug_cost} 金币,生命值+15", 'SERVER') + + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": True, + "message": "杀虫成功!生命值+15", + "operation_type": "kill_bug", + "updated_data": { + "money": player_data["money"], + "智慧树配置": wisdom_tree_config + } + }) + + def _process_wisdom_tree_play_music(self, client_id, player_data, username, wisdom_tree_config): + """处理智慧树放音乐""" + # 检查智慧树是否死亡 + if wisdom_tree_config["当前生命值"] <= 0: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": "智慧树已死亡,请先复活!", + "operation_type": "play_music" + }) + + # 放音乐费用 + play_music_cost = 100 + + # 检查金钱是否足够 + if player_data["money"] < play_music_cost: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": f"金钱不足,放音乐需要 {play_music_cost} 金币", + "operation_type": "play_music" + }) + + # 执行放音乐 + player_data["money"] -= play_music_cost + + # 从智慧树消息库中随机获取一条消息 + random_message = self._get_random_wisdom_tree_message() + if random_message: + wisdom_tree_config["智慧树显示的话"] = random_message + + # 保存数据 + self.save_player_data(username, player_data) + + self.log('INFO', f"玩家 {username} 给智慧树放音乐,花费 {play_music_cost} 金币,获得随机消息", 'SERVER') + + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": True, + "message": "放音乐成功!获得了一条神秘消息", + "operation_type": "play_music", + "random_message": random_message, + "updated_data": { + "money": player_data["money"], + "智慧树配置": wisdom_tree_config + } + }) + + def _process_wisdom_tree_revive(self, client_id, player_data, username, wisdom_tree_config): + """处理智慧树复活""" + # 检查智慧树是否真的死亡 + if wisdom_tree_config["当前生命值"] > 0: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": "智慧树还活着,不需要复活!", + "operation_type": "revive" + }) + + # 复活费用 + revive_cost = 1000 + + # 检查金钱是否足够 + if player_data["money"] < revive_cost: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": f"金钱不足,复活智慧树需要 {revive_cost} 金币", + "operation_type": "revive" + }) + + # 执行复活 + player_data["money"] -= revive_cost + wisdom_tree_config["当前生命值"] = wisdom_tree_config["最大生命值"] + + # 保存数据 + self.save_player_data(username, player_data) + + self.log('INFO', f"玩家 {username} 复活了智慧树,花费 {revive_cost} 金币", 'SERVER') + + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": True, + "message": "智慧树复活成功!", + "operation_type": "revive", + "updated_data": { + "money": player_data["money"], + "智慧树配置": wisdom_tree_config + } + }) + + def _process_wisdom_tree_get_random_message(self, client_id, player_data, username, wisdom_tree_config): + """处理获取随机智慧树消息""" + # 从智慧树消息库中随机获取一条消息 + random_message = self._get_random_wisdom_tree_message() + + if random_message: + wisdom_tree_config["智慧树显示的话"] = random_message + + # 保存数据 + self.save_player_data(username, player_data) + + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": True, + "message": "获得了一条神秘消息", + "operation_type": "get_random_message", + "random_message": random_message, + "updated_data": { + "智慧树配置": wisdom_tree_config + } + }) + else: + return self.send_data(client_id, { + "type": "wisdom_tree_operation_response", + "success": False, + "message": "暂时没有新消息", + "operation_type": "get_random_message" + }) + + def _handle_wisdom_tree_message(self, client_id, message): + """处理智慧树消息发送请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "发送智慧树消息", "wisdom_tree_message") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "wisdom_tree_message") + if not player_data: + return self.send_data(client_id, response) + + message_content = message.get("message", "").strip() + + # 验证消息内容 + if not message_content: + return self.send_data(client_id, { + "type": "wisdom_tree_message_response", + "success": False, + "message": "消息内容不能为空" + }) + + if len(message_content) > 100: + return self.send_data(client_id, { + "type": "wisdom_tree_message_response", + "success": False, + "message": "消息长度不能超过100个字符" + }) + + # 发送消息费用 + send_cost = 50 + + # 检查金钱是否足够 + if player_data["money"] < send_cost: + return self.send_data(client_id, { + "type": "wisdom_tree_message_response", + "success": False, + "message": f"金钱不足,发送消息需要 {send_cost} 金币" + }) + + # 扣除费用 + player_data["money"] -= send_cost + + # 保存消息到智慧树消息库 + success = self._save_wisdom_tree_message(username, message_content) + + if success: + # 保存玩家数据 + self.save_player_data(username, player_data) + + self.log('INFO', f"玩家 {username} 发送智慧树消息,花费 {send_cost} 金币:{message_content}", 'SERVER') + + return self.send_data(client_id, { + "type": "wisdom_tree_message_response", + "success": True, + "message": "消息发送成功!", + "updated_data": { + "money": player_data["money"] + } + }) + else: + return self.send_data(client_id, { + "type": "wisdom_tree_message_response", + "success": False, + "message": "消息发送失败,请重试" + }) + + def _handle_get_wisdom_tree_config(self, client_id, message): + """处理获取智慧树配置请求""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "获取智慧树配置", "get_wisdom_tree_config") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "get_wisdom_tree_config") + if not player_data: + return self.send_data(client_id, response) + + # 检查并修复智慧树配置 + self._check_and_fix_wisdom_tree_config(player_data, username) + + # 保存修复后的数据 + self.save_player_data(username, player_data) + + # 返回智慧树配置 + wisdom_tree_config = player_data.get("智慧树配置", {}) + + self.log('INFO', f"玩家 {username} 请求智慧树配置", 'SERVER') + + return self.send_data(client_id, { + "type": "wisdom_tree_config_response", + "success": True, + "config": wisdom_tree_config + }) + + def _check_wisdom_tree_level_up(self, wisdom_tree_config): + """检查智慧树等级提升""" + current_level = wisdom_tree_config["等级"] + current_experience = wisdom_tree_config["当前经验值"] + max_experience = wisdom_tree_config["最大经验值"] + level_ups = 0 + + # 检查是否可以升级(最高等级20) + while current_level < 20 and current_experience >= max_experience: + # 升级 + current_level += 1 + current_experience -= max_experience # 扣除升级所需经验 + level_ups += 1 + + # 计算新等级的最大经验值 + max_experience = self._calculate_wisdom_tree_max_exp(current_level) + + self.log('INFO', f"智慧树等级提升到 {current_level} 级,新的最大经验值: {max_experience}", 'SERVER') + + # 每升一级,最大生命值+2,当前生命值也+2 + if level_ups > 0: + health_bonus = level_ups * 2 + wisdom_tree_config["最大生命值"] = min(200, wisdom_tree_config["最大生命值"] + health_bonus) + wisdom_tree_config["当前生命值"] = min(wisdom_tree_config["最大生命值"], wisdom_tree_config["当前生命值"] + health_bonus) + self.log('INFO', f"智慧树升级 {level_ups} 级,最大生命值+{health_bonus}", 'SERVER') + + # 更新配置 + wisdom_tree_config["等级"] = current_level + wisdom_tree_config["当前经验值"] = current_experience + wisdom_tree_config["最大经验值"] = max_experience + + return level_ups > 0 + + def _get_random_wisdom_tree_message(self): + """从智慧树消息库中随机获取一条消息""" + import os + import json + import random + + wisdom_tree_data_path = os.path.join(os.path.dirname(__file__), "config", "wisdom_tree_data.json") + + try: + with open(wisdom_tree_data_path, 'r', encoding='utf-8') as f: + wisdom_tree_data = json.load(f) + + messages = wisdom_tree_data.get("messages", []) + if messages: + selected_message = random.choice(messages) + return selected_message.get("content", "") + else: + return "" + except Exception as e: + print(f"读取智慧树消息失败:{e}") + return "" + + def _save_wisdom_tree_message(self, username, message_content): + """保存智慧树消息到消息库""" + import os + import json + import time + import uuid + + wisdom_tree_data_path = os.path.join(os.path.dirname(__file__), "config", "wisdom_tree_data.json") + + try: + # 读取现有数据 + if os.path.exists(wisdom_tree_data_path): + with open(wisdom_tree_data_path, 'r', encoding='utf-8') as f: + wisdom_tree_data = json.load(f) + else: + wisdom_tree_data = { + "messages": [], + "total_messages": 0, + "last_update": "" + } + + # 创建新消息 + new_message = { + "timestamp": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), + "sender": username, + "content": message_content, + "id": str(uuid.uuid4()) + } + + # 添加到消息列表 + wisdom_tree_data["messages"].append(new_message) + wisdom_tree_data["total_messages"] = len(wisdom_tree_data["messages"]) + wisdom_tree_data["last_update"] = new_message["timestamp"] + + # 保持最多1000条消息 + if len(wisdom_tree_data["messages"]) > 1000: + wisdom_tree_data["messages"] = wisdom_tree_data["messages"][-1000:] + wisdom_tree_data["total_messages"] = len(wisdom_tree_data["messages"]) + + # 保存数据 + with open(wisdom_tree_data_path, 'w', encoding='utf-8') as f: + json.dump(wisdom_tree_data, f, ensure_ascii=False, indent=4) + + return True + except Exception as e: + print(f"保存智慧树消息失败:{e}") + return False + + def check_wisdom_tree_health_decay(self): + """检查智慧树生命值衰减""" + import time + import random + + current_time = int(time.time()) + processed_count = 0 + + # 检查所有在线玩家 + for client_id in self.user_data: + if self.user_data[client_id].get("logged_in", False): + username = self.user_data[client_id]["username"] + player_data = self.load_player_data(username) + if player_data and "智慧树配置" in player_data: + self._process_wisdom_tree_decay(player_data["智慧树配置"], username) + self.save_player_data(username, player_data) + processed_count += 1 + + # 检查缓存中的离线玩家 + for username in list(self.player_cache.keys()): + if username not in [self.user_data[cid].get("username") for cid in self.user_data if self.user_data[cid].get("logged_in", False)]: + player_data = self.player_cache[username] + if "智慧树配置" in player_data: + self._process_wisdom_tree_decay(player_data["智慧树配置"], username) + self.save_player_data(username, player_data) + processed_count += 1 + + if processed_count > 0: + self.log('INFO', f"已处理 {processed_count} 个玩家的智慧树生命值衰减", 'SERVER') + + def _process_wisdom_tree_decay(self, wisdom_tree_config, username): + """处理单个玩家的智慧树生命值衰减""" + import time + import random + + current_time = int(time.time()) + + # 获取上次除草和杀虫时间,处理空字符串和无效值 + last_grass_time_raw = wisdom_tree_config.get("距离上一次除草时间", current_time) + last_bug_time_raw = wisdom_tree_config.get("距离上一次杀虫时间", current_time) + + # 处理空字符串和无效时间戳 + try: + last_grass_time = int(last_grass_time_raw) if last_grass_time_raw and str(last_grass_time_raw).strip() else current_time + except (ValueError, TypeError): + last_grass_time = current_time + + try: + last_bug_time = int(last_bug_time_raw) if last_bug_time_raw and str(last_bug_time_raw).strip() else current_time + except (ValueError, TypeError): + last_bug_time = current_time + + # 如果时间戳无效(为0或负数),设置为当前时间 + if last_grass_time <= 0: + last_grass_time = current_time + if last_bug_time <= 0: + last_bug_time = current_time + + # 检查是否3天没有除草 + days_since_grass = (current_time - last_grass_time) / 86400 # 转换为天数 + if days_since_grass >= 3: + # 计算应该衰减的天数 + decay_days = int(days_since_grass) + if decay_days > 0: + # 每天减少1-3血量 + total_decay = 0 + for _ in range(decay_days): + daily_decay = random.randint(1, 3) + total_decay += daily_decay + + wisdom_tree_config["当前生命值"] = max(0, wisdom_tree_config["当前生命值"] - total_decay) + self.log('INFO', f"玩家 {username} 的智慧树因{decay_days}天未除草,生命值减少{total_decay}", 'SERVER') + + # 更新除草时间为当前时间,避免重复扣血 + wisdom_tree_config["距离上一次除草时间"] = current_time + + # 检查是否3天没有杀虫 + days_since_bug = (current_time - last_bug_time) / 86400 # 转换为天数 + if days_since_bug >= 3: + # 计算应该衰减的天数 + decay_days = int(days_since_bug) + if decay_days > 0: + # 每天减少1-3血量 + total_decay = 0 + for _ in range(decay_days): + daily_decay = random.randint(1, 3) + total_decay += daily_decay + + wisdom_tree_config["当前生命值"] = max(0, wisdom_tree_config["当前生命值"] - total_decay) + self.log('INFO', f"玩家 {username} 的智慧树因{decay_days}天未杀虫,生命值减少{total_decay}", 'SERVER') + + # 更新杀虫时间为当前时间,避免重复扣血 + wisdom_tree_config["距离上一次杀虫时间"] = current_time +#==========================智慧树系统处理========================== +#==========================稻草人系统处理========================== + + + +# ================================账户设置处理方法================================ + +# 控制台命令系统 +class ConsoleCommands: + """控制台命令处理类""" + + def __init__(self, server): + self.server = server + self.commands = { + "addmoney": self.cmd_add_money, + "addxp": self.cmd_add_experience, + "addlevel": self.cmd_add_level, + "addseed": self.cmd_add_seed, + "lsplayer": self.cmd_list_players, + "playerinfo": self.cmd_player_info, + "resetland": self.cmd_reset_land, + "help": self.cmd_help, + "stop": self.cmd_stop, + "save": self.cmd_save_all, + "reload": self.cmd_reload_config + } + + def process_command(self, command_line): + """处理控制台命令""" + if not command_line.strip(): + return + + parts = command_line.strip().split() + if not parts: + return + + # 移除命令前的斜杠(如果有) + command = parts[0].lstrip('/') + args = parts[1:] if len(parts) > 1 else [] + + if command in self.commands: + try: + self.commands[command](args) + except Exception as e: + print(f"❌ 执行命令 '{command}' 时出错: {str(e)}") + else: + print(f"❌ 未知命令: {command}") + print("💡 输入 'help' 查看可用命令") + + def cmd_add_money(self, args): + """添加金币命令: /addmoney QQ号 数量""" + if len(args) != 2: + print("❌ 用法: /addmoney <数量>") + return + + qq_number, amount_str = args + try: + amount = int(amount_str) + except ValueError: + print("❌ 金币数量必须是整数") + return + + # 加载玩家数据 + player_data = self.server.load_player_data(qq_number) + if not player_data: + print(f"❌ 玩家 {qq_number} 不存在") + return + + # 修改金币 + old_money = player_data.get("money", 0) + player_data["money"] = old_money + amount + + # 保存数据 + self.server.save_player_data(qq_number, player_data) + self.server.save_player_data_immediate(qq_number) + + print(f"✅ 已为玩家 {qq_number} 添加 {amount} 金币") + print(f" 原金币: {old_money} → 新金币: {player_data['money']}") + + def cmd_add_experience(self, args): + """添加经验命令: /addxp QQ号 数量""" + if len(args) != 2: + print("❌ 用法: /addxp <数量>") + return + + qq_number, amount_str = args + try: + amount = int(amount_str) + except ValueError: + print("❌ 经验数量必须是整数") + return + + # 加载玩家数据 + player_data = self.server.load_player_data(qq_number) + if not player_data: + print(f"❌ 玩家 {qq_number} 不存在") + return + + # 修改经验 + old_exp = player_data.get("experience", 0) + player_data["experience"] = old_exp + amount + + # 检查是否升级 + old_level = player_data.get("level", 1) + self.server._check_level_up(player_data) + new_level = player_data.get("level", 1) + + # 保存数据 + self.server.save_player_data(qq_number, player_data) + self.server.save_player_data_immediate(qq_number) + + print(f"✅ 已为玩家 {qq_number} 添加 {amount} 经验") + print(f" 原经验: {old_exp} → 新经验: {player_data['experience']}") + if new_level > old_level: + print(f"🎉 玩家升级了! {old_level} → {new_level}") + + def cmd_add_level(self, args): + """添加等级命令: /addlevel QQ号 数量""" + if len(args) != 2: + print("❌ 用法: /addlevel <数量>") + return + + qq_number, amount_str = args + try: + amount = int(amount_str) + except ValueError: + print("❌ 等级数量必须是整数") + return + + # 加载玩家数据 + player_data = self.server.load_player_data(qq_number) + if not player_data: + print(f"❌ 玩家 {qq_number} 不存在") + return + + # 修改等级 + old_level = player_data.get("level", 1) + new_level = max(1, old_level + amount) # 确保等级不小于1 + player_data["level"] = new_level + + # 保存数据 + self.server.save_player_data(qq_number, player_data) + self.server.save_player_data_immediate(qq_number) + + print(f"✅ 已为玩家 {qq_number} 添加 {amount} 等级") + print(f" 原等级: {old_level} → 新等级: {new_level}") + + def cmd_add_seed(self, args): + """添加种子命令: /addseed QQ号 作物名称 数量""" + if len(args) != 3: + print("❌ 用法: /addseed <作物名称> <数量>") + return + + qq_number, crop_name, amount_str = args + try: + amount = int(amount_str) + except ValueError: + print("❌ 种子数量必须是整数") + return + + # 加载玩家数据 + player_data = self.server.load_player_data(qq_number) + if not player_data: + print(f"❌ 玩家 {qq_number} 不存在") + return + + # 检查作物是否存在 + crop_data = self.server._load_crop_data() + if crop_name not in crop_data: + print(f"❌ 作物 '{crop_name}' 不存在") + print(f"💡 可用作物: {', '.join(list(crop_data.keys())[:10])}...") + return + + # 添加种子到背包 + if "seeds" not in player_data: + player_data["seeds"] = {} + + old_count = player_data["seeds"].get(crop_name, 0) + player_data["seeds"][crop_name] = old_count + amount + + # 保存数据 + self.server.save_player_data(qq_number, player_data) + self.server.save_player_data_immediate(qq_number) + + print(f"✅ 已为玩家 {qq_number} 添加 {amount} 个 {crop_name} 种子") + print(f" 原数量: {old_count} → 新数量: {player_data['seeds'][crop_name]}") + + def cmd_list_players(self, args): + """列出所有玩家命令: /lsplayer""" + saves_dir = "game_saves" + if not os.path.exists(saves_dir): + print("❌ 游戏存档目录不存在") + return + + player_files = [f for f in os.listdir(saves_dir) if f.endswith('.json')] + if not player_files: + print("📭 暂无已注册玩家") + return + + print(f"📋 已注册玩家列表 (共 {len(player_files)} 人):") + print("-" * 80) + print(f"{'QQ号':<12} {'昵称':<15} {'等级':<6} {'金币':<10} {'最后登录':<20}") + print("-" * 80) + + for i, filename in enumerate(sorted(player_files), 1): + qq_number = filename.replace('.json', '') + try: + player_data = self.server._load_player_data_from_file(qq_number) + if player_data: + nickname = player_data.get("player_name", "未设置") + level = player_data.get("level", 1) + money = player_data.get("money", 0) + last_login = player_data.get("last_login_time", "从未登录") + + print(f"{qq_number:<12} {nickname:<15} {level:<6} {money:<10} {last_login:<20}") + except Exception as e: + print(f"{qq_number:<12} {'数据错误':<15} {'--':<6} {'--':<10} {'无法读取':<20}") + + print("-" * 80) + + def cmd_player_info(self, args): + """查看玩家信息命令: /playerinfo QQ号""" + if len(args) != 1: + print("❌ 用法: /playerinfo ") + return + + qq_number = args[0] + player_data = self.server.load_player_data(qq_number) + if not player_data: + print(f"❌ 玩家 {qq_number} 不存在") + return + + print(f"👤 玩家信息: {qq_number}") + print("=" * 50) + print(f"昵称: {player_data.get('player_name', '未设置')}") + print(f"农场名: {player_data.get('farm_name', '未设置')}") + print(f"等级: {player_data.get('level', 1)}") + print(f"经验: {player_data.get('experience', 0)}") + print(f"金币: {player_data.get('money', 0)}") + print(f"体力: {player_data.get('体力值', 20)}") + print(f"注册时间: {player_data.get('注册时间', '未知')}") + print(f"最后登录: {player_data.get('last_login_time', '从未登录')}") + print(f"总在线时长: {player_data.get('total_login_time', '0时0分0秒')}") + + # 显示土地信息 + farm_lots = player_data.get("farm_lots", []) + planted_count = sum(1 for lot in farm_lots if lot.get("is_planted", False)) + digged_count = sum(1 for lot in farm_lots if lot.get("is_diged", False)) + print(f"土地状态: 总共{len(farm_lots)}块,已开垦{digged_count}块,已种植{planted_count}块") + + # 显示种子信息 + seeds = player_data.get("seeds", {}) + if seeds: + print(f"种子背包: {len(seeds)}种作物,总计{sum(seeds.values())}个种子") + else: + print("种子背包: 空") + + print("=" * 50) + + def cmd_reset_land(self, args): + """重置玩家土地命令: /resetland QQ号""" + if len(args) != 1: + print("❌ 用法: /resetland ") + return + + qq_number = args[0] + player_data = self.server.load_player_data(qq_number) + if not player_data: + print(f"❌ 玩家 {qq_number} 不存在") + return + + # 加载初始化模板 + try: + with open("config/initial_player_data_template.json", 'r', encoding='utf-8') as f: + template_data = json.load(f) + except Exception as e: + print(f"❌ 无法加载初始化模板: {str(e)}") + return + + # 重置土地状态 + if "farm_lots" in template_data: + old_lots_count = len(player_data.get("farm_lots", [])) + player_data["farm_lots"] = template_data["farm_lots"] + new_lots_count = len(player_data["farm_lots"]) + + # 保存数据 + self.server.save_player_data(qq_number, player_data) + self.server.save_player_data_immediate(qq_number) + + print(f"✅ 已重置玩家 {qq_number} 的土地状态") + print(f" 土地数量: {old_lots_count} → {new_lots_count}") + print(f" 所有作物和状态已清除,恢复为初始状态") + else: + print("❌ 初始化模板中没有找到土地数据") + + def cmd_help(self, args): + """显示帮助信息""" + print("🌱 萌芽农场服务器控制台命令帮助") + print("=" * 60) + print("玩家管理命令:") + print(" /addmoney <数量> - 为玩家添加金币") + print(" /addxp <数量> - 为玩家添加经验") + print(" /addlevel <数量> - 为玩家添加等级") + print(" /addseed <作物> <数量> - 为玩家添加种子") + print(" /lsplayer - 列出所有已注册玩家") + print(" /playerinfo - 查看玩家详细信息") + print(" /resetland - 重置玩家土地状态") + print("") + print("服务器管理命令:") + print(" /save - 立即保存所有玩家数据") + print(" /reload - 重新加载配置文件") + print(" /stop - 停止服务器") + print(" /help - 显示此帮助信息") + print("=" * 60) + print("💡 提示: 命令前的斜杠(/)是可选的") + + def cmd_save_all(self, args): + """保存所有数据命令""" + try: + self.server.force_save_all_data() + print("✅ 已强制保存所有玩家数据") + except Exception as e: + print(f"❌ 保存数据时出错: {str(e)}") + + def cmd_reload_config(self, args): + """重新加载配置命令""" + try: + # 重新加载作物数据 + self.server._load_crop_data() + print("✅ 已重新加载配置文件") + except Exception as e: + print(f"❌ 重新加载配置时出错: {str(e)}") + + def cmd_stop(self, args): + """停止服务器命令""" + print("⚠️ 正在停止服务器...") + try: + self.server.force_save_all_data() + print("💾 数据保存完成") + except: + pass + self.server.stop() + print("✅ 服务器已停止") + import sys + sys.exit(0) + +def console_input_thread(server): + """控制台输入处理线程""" + console = ConsoleCommands(server) + + print("💬 控制台已就绪,输入 'help' 查看可用命令") + + while True: + try: + command = input("> ").strip() + if command: + console.process_command(command) + except EOFError: + break + except KeyboardInterrupt: + break + except Exception as e: + print(f"❌ 处理命令时出错: {str(e)}") + # 主程序启动入口 if __name__ == "__main__": import sys @@ -5748,10 +8695,15 @@ if __name__ == "__main__": print(" ├── 每日签到奖励") print(" ├── 幸运抽奖系统") print(" ├── 玩家互动功能") - print(" └── 性能优化缓存") - print("=" * 60) - print("🔥 服务器运行中... 按 Ctrl+C 停止服务器") + print(" ├── 性能优化缓存") + print(" └── 控制台命令系统") print("=" * 60) + print("🔥 服务器运行中...") + + # 启动控制台输入线程 + console_thread = threading.Thread(target=console_input_thread, args=(server,)) + console_thread.daemon = True + console_thread.start() # 主循环:保持服务器运行 while True: @@ -5763,6 +8715,11 @@ if __name__ == "__main__": print("💾 正在保存数据并关闭服务器...") if 'server' in locals(): + try: + server.force_save_all_data() + print("💾 数据保存完成") + except: + pass server.stop() print("✅ 服务器已安全关闭") diff --git a/Server/chat/.gitkeep b/Server/chat/.gitkeep new file mode 100644 index 0000000..2c0d4f4 --- /dev/null +++ b/Server/chat/.gitkeep @@ -0,0 +1,2 @@ +# 这个文件确保 chat 文件夹被包含在版本控制中 +# 全服大喇叭消息日志将储存在这个文件夹中 \ No newline at end of file diff --git a/Server/chat/2025-07-06.log b/Server/chat/2025-07-06.log new file mode 100644 index 0000000..f62261d --- /dev/null +++ b/Server/chat/2025-07-06.log @@ -0,0 +1,8 @@ +[2025年07月06日 23:45:03] 树萌芽(3205788256): 1 +[2025年07月06日 23:45:05] 树萌芽(3205788256): 2 +[2025年07月06日 23:45:07] 树萌芽(3205788256): 3 +[2025年07月06日 23:45:09] 树萌芽(3205788256): 4 +[2025年07月06日 23:45:18] 树萌芽(3205788256): 5 +[2025年07月06日 23:51:18] 树萌芽(3205788256): 我知道你在玩,柚大青! +[2025年07月06日 23:51:52] 柚大青(2143323382): (≧▽≦) +[2025年07月06日 23:52:22] 柚大青(2143323382): 被你发现了哈哈哈ꉂꉂ(ᵔᗜᵔ*) diff --git a/Server/chat/2025-07-09.log b/Server/chat/2025-07-09.log new file mode 100644 index 0000000..8c3dcb3 --- /dev/null +++ b/Server/chat/2025-07-09.log @@ -0,0 +1 @@ +[2025年07月09日 09:19:45] 柚大青(2143323382): 12321312312 diff --git a/Server/config/crop_data.json b/Server/config/crop_data.json index d940d9d..22f1bb6 100644 --- a/Server/config/crop_data.json +++ b/Server/config/crop_data.json @@ -1,102 +1,90 @@ { - "测试作物": {"花费": 1, "生长时间": 5, "收益": 10000, "品质": "普通", "描述": "仅供测试使用的特殊作物", "耐候性": 10, "等级": 1, "经验": 999, "能否购买": false}, - "野草1": {"花费": 0, "生长时间": 5, "收益": -110, "品质": "普通", "描述": "野草", "耐候性": 99, "等级": 1, "经验": 0, "能否购买": true,"是否杂草":true}, - "野草2": {"花费": 0, "生长时间": 5, "收益": -200, "品质": "普通", "描述": "野草", "耐候性": 99, "等级": 1, "经验": 0, "能否购买": true,"是否杂草":true}, - "杂草1": {"花费": 0, "生长时间": 5, "收益": -150, "品质": "普通", "描述": "杂草", "耐候性": 99, "等级": 1, "经验": 0, "能否购买": true,"是否杂草":true}, - "杂草2": {"花费": 0, "生长时间": 5, "收益": -90, "品质": "普通", "描述": "野草", "耐候性": 99, "等级": 1, "经验": 0, "能否购买": true,"是否杂草":true}, - - "小麦": {"花费": 50, "生长时间": 300, "收益": 75, "品质": "普通", "描述": "最基础的粮食作物,生长快速,适合新手练习", "耐候性": 8, "等级": 1, "经验": 8, "能否购买": true}, - "胡萝卜": {"花费": 40, "生长时间": 240, "收益": 65, "品质": "普通", "描述": "营养丰富的根茎类蔬菜,容易种植", "耐候性": 9, "等级": 1, "经验": 7, "能否购买": true}, - "土豆": {"花费": 60, "生长时间": 480, "收益": 95, "品质": "普通", "描述": "耐寒的块茎作物,产量稳定", "耐候性": 12, "等级": 1, "经验": 10, "能否购买": true}, - "稻谷": {"花费": 70, "生长时间": 600, "收益": 110, "品质": "普通", "描述": "重要的主粮作物,需要充足水分", "耐候性": 7, "等级": 1, "经验": 12, "能否购买": true}, - "大蒜": {"花费": 50, "生长时间": 550, "收益": 100, "品质": "普通", "描述": "常用调味作物,具有抗菌功效,种植门槛低", "耐候性": 10, "等级": 1, "经验": 8, "能否购买": true}, - "生菜": {"花费": 45, "生长时间": 650, "收益": 120, "品质": "普通", "描述": "速生叶菜,适合沙拉生食,需保持土壤湿润", "耐候性": 17, "等级": 1, "经验": 9, "能否购买": true}, - "石榴": {"花费": 45, "生长时间": 650, "收益": 120, "品质": "普通", "描述": "速生叶菜,适合沙拉生食,需保持土壤湿润", "耐候性": 17, "等级": 1, "经验": 9, "能否购买": true}, - "辣椒": {"花费": 45, "生长时间": 650, "收益": 120, "品质": "普通", "描述": "速生叶菜,适合沙拉生食,需保持土壤湿润", "耐候性": 17, "等级": 1, "经验": 9, "能否购买": true}, + "测试作物": {"花费":1,"生长时间":5,"收益":10000,"品质":"普通","描述":"仅供测试使用的特殊作物","耐候性":10,"等级":1,"经验":999,"能否购买":false,"是否有成熟物":true,"作物ID":"作物1"}, + "野草1": {"花费":0,"生长时间":5,"收益":-110,"品质":"普通","描述":"野草","耐候性":99,"等级":1,"经验":0,"能否购买":true,"是否杂草":true,"是否有成熟物":true,"作物ID":"作物2"}, + "野草2": {"花费":0,"生长时间":5,"收益":-200,"品质":"普通","描述":"野草","耐候性":99,"等级":1,"经验":0,"能否购买":true,"是否杂草":true,"是否有成熟物":true,"作物ID":"作物3"}, + "杂草1": {"花费":0,"生长时间":5,"收益":-150,"品质":"普通","描述":"杂草","耐候性":99,"等级":1,"经验":0,"能否购买":true,"是否杂草":true,"是否有成熟物":true,"作物ID":"作物4"}, + "杂草2": {"花费":0,"生长时间":5,"收益":-90,"品质":"普通","描述":"野草","耐候性":99,"等级":1,"经验":0,"能否购买":true,"是否杂草":true,"是否有成熟物":true,"作物ID":"作物5"}, + "小麦": {"花费":50,"生长时间":300,"收益":75,"品质":"普通","描述":"最基础的粮食作物,生长快速,适合新手练习","耐候性":8,"等级":1,"经验":8,"能否购买":true,"是否有成熟物":true,"作物ID":"作物6"}, + "胡萝卜": {"花费":40,"生长时间":240,"收益":65,"品质":"普通","描述":"营养丰富的根茎类蔬菜,容易种植","耐候性":9,"等级":1,"经验":7,"能否购买":true,"是否有成熟物":true,"作物ID":"作物7","喂养效果":{"移动速度":5,"闪避率":2}}, + "土豆": {"花费":60,"生长时间":480,"收益":95,"品质":"普通","描述":"耐寒的块茎作物,产量稳定","耐候性":12,"等级":1,"经验":10,"能否购买":true,"是否有成熟物":true,"作物ID":"作物8"}, + "稻谷": {"花费":70,"生长时间":600,"收益":110,"品质":"普通","描述":"重要的主粮作物,需要充足水分","耐候性":7,"等级":1,"经验":12,"能否购买":true,"是否有成熟物":true,"作物ID":"作物9"}, + "大蒜": {"花费":50,"生长时间":550,"收益":100,"品质":"普通","描述":"常用调味作物,具有抗菌功效,种植门槛低","耐候性":10,"等级":1,"经验":8,"能否购买":true,"是否有成熟物":true,"作物ID":"作物10"}, + "生菜": {"花费":45,"生长时间":650,"收益":120,"品质":"普通","描述":"速生叶菜,适合沙拉生食,需保持土壤湿润","耐候性":17,"等级":1,"经验":9,"能否购买":true,"是否有成熟物":true,"作物ID":"作物11"}, + "石榴": {"花费":45,"生长时间":650,"收益":120,"品质":"普通","描述":"速生叶菜,适合沙拉生食,需保持土壤湿润","耐候性":17,"等级":1,"经验":9,"能否购买":true,"是否有成熟物":true,"作物ID":"作物12"}, + "辣椒": {"花费":45,"生长时间":650,"收益":120,"品质":"普通","描述":"速生叶菜,适合沙拉生食,需保持土壤湿润","耐候性":17,"等级":1,"经验":9,"能否购买":true,"是否有成熟物":true,"作物ID":"作物13"}, + "番茄": {"花费":90,"生长时间":720,"收益":140,"品质":"普通","描述":"多汁的果实,市场需求大","耐候性":8,"等级":2,"经验":16,"能否购买":true,"是否有成熟物":true,"作物ID":"作物15"}, + "洋葱": {"花费":75,"生长时间":840,"收益":125,"品质":"普通","描述":"调味蔬菜,储存时间长","耐候性":11,"等级":2,"经验":14,"能否购买":true,"是否有成熟物":true,"作物ID":"作物16"}, + "大豆": {"花费":85,"生长时间":1080,"收益":145,"品质":"普通","描述":"富含蛋白质的豆类作物","耐候性":9,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物25"}, + "豌豆": {"花费":65,"生长时间":720,"收益":110,"品质":"普通","描述":"嫩绿的豆荚蔬菜","耐候性":10,"等级":2,"经验":15,"能否购买":true,"是否有成熟物":true,"作物ID":"作物68"}, + "黄瓜": {"花费":85,"生长时间":1200,"收益":150,"品质":"普通","描述":"清脆爽口的瓜类","耐候性":8,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物69"}, + "大白菜": {"花费":70,"生长时间":900,"收益":120,"品质":"普通","描述":"北方冬季的主要蔬菜","耐候性":15,"等级":2,"经验":16,"能否购买":true,"是否有成熟物":true,"作物ID":"作物70"}, + "葡萄": {"花费":200,"生长时间":2700,"收益":340,"品质":"普通","描述":"用于酿酒的珍贵果实","耐候性":9,"等级":4,"经验":35,"能否购买":true,"是否有成熟物":true,"作物ID":"作物43"}, + "南瓜": {"花费":180,"生长时间":3600,"收益":320,"品质":"普通","描述":"大型瓜果,节庆装饰的首选","耐候性":12,"等级":4,"经验":38,"能否购买":true,"是否有成熟物":true,"作物ID":"作物44"}, + "茄子": {"花费":190,"生长时间":2400,"收益":310,"品质":"普通","描述":"紫色的营养蔬菜","耐候性":10,"等级":4,"经验":32,"能否购买":true,"是否有成熟物":true,"作物ID":"作物46"}, - "玉米": {"花费": 80, "生长时间": 900, "收益": 130, "品质": "优良", "描述": "高产的谷物作物,营养价值高", "耐候性": 10, "等级": 2, "经验": 15, "能否购买": true}, - "番茄": {"花费": 90, "生长时间": 720, "收益": 140, "品质": "优良", "描述": "多汁的果实,市场需求大", "耐候性": 8, "等级": 2, "经验": 16, "能否购买": true}, - "洋葱": {"花费": 75, "生长时间": 840, "收益": 125, "品质": "优良", "描述": "调味蔬菜,储存时间长", "耐候性": 11, "等级": 2, "经验": 14, "能否购买": true}, - "葫芦": {"花费": 85, "生长时间": 1080, "收益": 145, "品质": "优良", "描述": "富含蛋白质的豆类作物", "耐候性": 9, "等级": 2, "经验": 18, "能否购买": true}, - "柠檬": {"花费": 85, "生长时间": 1080, "收益": 145, "品质": "优良", "描述": "富含蛋白质的豆类作物", "耐候性": 9, "等级": 2, "经验": 18, "能否购买": true}, - "枇杷": {"花费": 85, "生长时间": 1080, "收益": 145, "品质": "优良", "描述": "富含蛋白质的豆类作物", "耐候性": 9, "等级": 2, "经验": 18, "能否购买": true}, - "牵牛花": {"花费": 85, "生长时间": 1080, "收益": 145, "品质": "优良", "描述": "富含蛋白质的豆类作物", "耐候性": 9, "等级": 2, "经验": 18, "能否购买": true}, - "山楂": {"花费": 85, "生长时间": 1080, "收益": 145, "品质": "优良", "描述": "富含蛋白质的豆类作物", "耐候性": 9, "等级": 2, "经验": 18, "能否购买": true}, - "仙人掌": {"花费": 85, "生长时间": 1080, "收益": 145, "品质": "优良", "描述": "富含蛋白质的豆类作物", "耐候性": 9, "等级": 2, "经验": 18, "能否购买": true}, - "杨桃": {"花费": 85, "生长时间": 1080, "收益": 145, "品质": "优良", "描述": "富含蛋白质的豆类作物", "耐候性": 9, "等级": 2, "经验": 18, "能否购买": true}, - "椰子": {"花费": 85, "生长时间": 1080, "收益": 145, "品质": "优良", "描述": "富含蛋白质的豆类作物", "耐候性": 9, "等级": 2, "经验": 18, "能否购买": true}, - "大豆": {"花费": 85, "生长时间": 1080, "收益": 145, "品质": "优良", "描述": "富含蛋白质的豆类作物", "耐候性": 9, "等级": 2, "经验": 18, "能否购买": true}, + "玉米": {"花费":80,"生长时间":900,"收益":130,"品质":"优良","描述":"高产的谷物作物,营养价值高","耐候性":10,"等级":2,"经验":15,"能否购买":true,"是否有成熟物":true,"作物ID":"作物14"}, + "葫芦": {"花费":85,"生长时间":1080,"收益":145,"品质":"优良","描述":"富含蛋白质的豆类作物","耐候性":9,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物17"}, + "柠檬": {"花费":85,"生长时间":1080,"收益":145,"品质":"优良","描述":"富含蛋白质的豆类作物","耐候性":9,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物18"}, + "枇杷": {"花费":85,"生长时间":1080,"收益":145,"品质":"优良","描述":"富含蛋白质的豆类作物","耐候性":9,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物19"}, + "山楂": {"花费":85,"生长时间":1080,"收益":145,"品质":"优良","描述":"富含蛋白质的豆类作物","耐候性":9,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物21"}, + "仙人掌": {"花费":85,"生长时间":1080,"收益":145,"品质":"优良","描述":"富含蛋白质的豆类作物","耐候性":9,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物22"}, + "椰子": {"花费":85,"生长时间":1080,"收益":145,"品质":"优良","描述":"富含蛋白质的豆类作物","耐候性":9,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物24"}, + "西瓜": {"花费":250,"生长时间":4800,"收益":450,"品质":"优良","描述":"夏日消暑的大型水果","耐候性":6,"等级":5,"经验":50,"能否购买":true,"是否有成熟物":true,"作物ID":"作物49"}, + "甘蔗": {"花费":280,"生长时间":5400,"收益":500,"品质":"优良","描述":"制糖的重要原料","耐候性":5,"等级":5,"经验":55,"能否购买":true,"是否有成熟物":true,"作物ID":"作物50"}, + "甜菜": {"花费":240,"生长时间":4200,"收益":420,"品质":"优良","描述":"制糖的另一种选择","耐候性":11,"等级":5,"经验":45,"能否购买":true,"是否有成熟物":true,"作物ID":"作物52"}, + "郁金香": {"花费":280,"生长时间":5100,"收益":510,"品质":"优良","描述":"美丽的观赏植物","耐候性":10,"等级":5,"经验":50,"能否购买":true,"是否有成熟物":true,"作物ID":"作物55"}, + "花椰菜": {"花费":110,"生长时间":1320,"收益":185,"品质":"优良","描述":"营养丰富的十字花科蔬菜","耐候性":8,"等级":3,"经验":20,"能否购买":true,"是否有成熟物":true,"作物ID":"作物28"}, + "柿子": {"花费":140,"生长时间":1800,"收益":230,"品质":"优良","描述":"秋季成熟的甜美果实","耐候性":10,"等级":3,"经验":25,"能否购买":true,"是否有成熟物":true,"作物ID":"作物29"}, + "梨子": {"花费":210,"生长时间":2820,"收益":350,"品质":"优良","描述":"春季开花的落叶果树","耐候性":10,"等级":3,"经验":25,"能否购买":true,"是否有成熟物":true,"作物ID":"作物34"}, + "桃子": {"花费":220,"生长时间":2940,"收益":360,"品质":"优良","描述":"粉色花海中的果实树种","耐候性":9,"等级":3,"经验":25,"能否购买":true,"是否有成熟物":true,"作物ID":"作物35","喂养效果":{"经验":10,"生命值":3,"攻击力":2,"移动速度":1,"亲密度":5}}, + "荔枝": {"花费":230,"生长时间":3060,"收益":380,"品质":"优良","描述":"亚热带珍稀水果,果肉如凝脂","耐候性":8,"等级":3,"经验":26,"能否购买":true,"是否有成熟物":true,"作物ID":"作物36"}, + "树莓": {"花费":140,"生长时间":2700,"收益":240,"品质":"优良","描述":"小巧精致的浆果","耐候性":9,"等级":3,"经验":30,"能否购买":true,"是否有成熟物":true,"作物ID":"作物67"}, + "鱼腥草": {"花费":300,"生长时间":7200,"收益":600,"品质":"优良","描述":"具有特殊药用价值的野菜","耐候性":18,"等级":6,"经验":90,"能否购买":true,"是否有成熟物":true,"作物ID":"作物76"}, + "芦笋": {"花费":220,"生长时间":3000,"收益":370,"品质":"优良","描述":"高档蔬菜,营养价值极高","耐候性":8,"等级":4,"经验":40,"能否购买":true,"是否有成熟物":true,"作物ID":"作物45"}, + "苹果": {"花费":450,"生长时间":9600,"收益":820,"品质":"优良","描述":"结果丰富的果树","耐候性":14,"等级":7,"经验":110,"能否购买":true,"是否有成熟物":true,"作物ID":"作物63","喂养效果":{"生命值":5,"护甲值":2}}, + "橘子": {"花费":480,"生长时间":10200,"收益":850,"品质":"优良","描述":"维生素C丰富的果树","耐候性":12,"等级":7,"经验":115,"能否购买":true,"是否有成熟物":true,"作物ID":"作物64"}, + "香蕉": {"花费":420,"生长时间":8400,"收益":780,"品质":"优良","描述":"热带水果之王","耐候性":5,"等级":7,"经验":100,"能否购买":true,"是否有成熟物":true,"作物ID":"作物65"}, + - - "迷迭香": {"花费": 100, "生长时间": 1680, "收益": 210, "品质": "稀有", "描述": "芳香型草本植物,可用于烹饪和精油提取,耐旱易存活", "耐候性": 12, "等级": 3, "经验": 22, "能否购买": true}, - "草莓": {"花费": 120, "生长时间": 1440, "收益": 200, "品质": "稀有", "描述": "甜美的浆果,深受喜爱", "耐候性": 6, "等级": 3, "经验": 22, "能否购买": true}, - "花椰菜": {"花费": 110, "生长时间": 1320, "收益": 185, "品质": "稀有", "描述": "营养丰富的十字花科蔬菜", "耐候性": 8, "等级": 3, "经验": 20, "能否购买": true}, - "柿子": {"花费": 140, "生长时间": 1800, "收益": 230, "品质": "稀有", "描述": "秋季成熟的甜美果实", "耐候性": 10, "等级": 3, "经验": 25, "能否购买": true}, - "蓝莓": {"花费": 160, "生长时间": 2100, "收益": 260, "品质": "稀有", "描述": "抗氧化的超级食物", "耐候性": 7, "等级": 3, "经验": 28, "能否购买": true}, - "栀子花": {"花费": 180, "生长时间": 2400, "收益": 300, "品质": "稀有", "描述": "美丽的观赏植物", "耐候性": 10, "等级": 3, "经验": 25, "能否购买": true}, - "玫瑰花": {"花费": 190, "生长时间": 2520, "收益": 310, "品质": "稀有", "描述": "美丽的观赏植物", "耐候性": 10, "等级": 3, "经验": 25, "能否购买": true}, - "菠萝": {"花费": 200, "生长时间": 2700, "收益": 340, "品质": "稀有", "描述": "热带水果之王", "耐候性": 10, "等级": 3, "经验": 25, "能否购买": true}, - "梨子": {"花费": 210, "生长时间": 2820, "收益": 350, "品质": "稀有", "描述": "春季开花的落叶果树", "耐候性": 10, "等级": 3, "经验": 25, "能否购买": true}, - "桃子": {"花费": 220, "生长时间": 2940, "收益": 360, "品质": "稀有", "描述": "粉色花海中的果实树种", "耐候性": 9, "等级": 3, "经验": 25, "能否购买": true}, - "荔枝": {"花费": 230, "生长时间": 3060, "收益": 380, "品质": "稀有", "描述": "亚热带珍稀水果,果肉如凝脂", "耐候性": 8, "等级": 3, "经验": 26, "能否购买": true}, - "芒果": {"花费": 240, "生长时间": 3180, "收益": 400, "品质": "稀有", "描述": "热带阳光孕育的香甜果实", "耐候性": 10, "等级": 3, "经验": 27, "能否购买": true}, - "糖果树": {"花费": 250, "生长时间": 3300, "收益": 420, "品质": "稀有", "描述": "传说中结出彩色糖果的魔法树", "耐候性": 7, "等级": 3, "经验": 25, "能否购买": true}, - "面包树": {"花费": 260, "生长时间": 3420, "收益": 440, "品质": "稀有", "描述": "热带地区的淀粉质主食树种", "耐候性": 9, "等级": 3, "经验": 25, "能否购买": true}, - "幸运草": {"花费": 150, "生长时间": 1560, "收益": 220, "品质": "稀有", "描述": "四片叶子的幸运象征植物", "耐候性": 6, "等级": 3, "经验": 20, "能否购买": true}, - "幸运花": {"花费": 170, "生长时间": 1680, "收益": 240, "品质": "稀有", "描述": "绽放时带来好运的神秘花卉", "耐候性": 7, "等级": 3, "经验": 22, "能否购买": true}, - "摇钱树": {"花费": 300, "生长时间": 3600, "收益": 500, "品质": "稀有", "描述": "传说中能结出金币的神树", "耐候性": 10, "等级": 3, "经验": 30, "能否购买": true}, - - - - "葡萄": {"花费": 200, "生长时间": 2700, "收益": 340, "品质": "史诗", "描述": "用于酿酒的珍贵果实", "耐候性": 9, "等级": 4, "经验": 35, "能否购买": true}, - "南瓜": {"花费": 180, "生长时间": 3600, "收益": 320, "品质": "史诗", "描述": "大型瓜果,节庆装饰的首选", "耐候性": 12, "等级": 4, "经验": 38, "能否购买": true}, - "芦笋": {"花费": 220, "生长时间": 3000, "收益": 370, "品质": "史诗", "描述": "高档蔬菜,营养价值极高", "耐候性": 8, "等级": 4, "经验": 40, "能否购买": true}, - "茄子": {"花费": 190, "生长时间": 2400, "收益": 310, "品质": "史诗", "描述": "紫色的营养蔬菜", "耐候性": 10, "等级": 4, "经验": 32, "能否购买": true}, - "咖啡豆": {"花费": 200, "生长时间": 2500, "收益": 340, "品质": "史诗", "描述": "热带经济作物,果实经烘焙后可制成饮品,需温暖气候", "耐候性": 8, "等级": 4, "经验": 35, "能否购买": true}, - "可可豆": {"花费": 200, "生长时间": 2500, "收益": 340, "品质": "史诗", "描述": "制作巧克力的原料,需高温高湿环境,经济价值较高", "耐候性": 10, "等级": 4, "经验": 36, "能否购买": true}, - - - "西瓜": {"花费": 250, "生长时间": 4800, "收益": 450, "品质": "优良", "描述": "夏日消暑的大型水果", "耐候性": 6, "等级": 5, "经验": 50, "能否购买": true}, - "甘蔗": {"花费": 280, "生长时间": 5400, "收益": 500, "品质": "优良", "描述": "制糖的重要原料", "耐候性": 5, "等级": 5, "经验": 55, "能否购买": true}, - "香草": {"花费": 300, "生长时间": 6000, "收益": 550, "品质": "优良", "描述": "珍贵的调料植物", "耐候性": 7, "等级": 5, "经验": 60, "能否购买": true}, - "甜菜": {"花费": 240, "生长时间": 4200, "收益": 420, "品质": "优良", "描述": "制糖的另一种选择", "耐候性": 11, "等级": 5, "经验": 45, "能否购买": true}, - "百合花": {"花费": 260, "生长时间": 4800, "收益": 480, "品质": "优良", "描述": "美丽的观赏植物", "耐候性": 10, "等级": 5, "经验": 50, "能否购买": true}, - "康乃馨": {"花费": 270, "生长时间": 5100, "收益": 510, "品质": "优良", "描述": "美丽的观赏植物", "耐候性": 10, "等级": 5, "经验": 50, "能否购买": true}, - "郁金香": {"花费": 280, "生长时间": 5100, "收益": 510, "品质": "优良", "描述": "美丽的观赏植物", "耐候性": 10, "等级": 5, "经验": 50, "能否购买": true}, - "藏羚羊草": {"花费": 80, "生长时间": 200, "收益": 200, "品质": "优良", "描述": "高原珍稀草种,用于生态修复,对土壤要求苛刻但市场需求大", "耐候性": 15, "等级": 5, "经验": 20, "能否购买": true}, - - - "人参": {"花费": 400, "生长时间": 7200, "收益": 720, "品质": "传奇", "描述": "珍贵的药用植物,需要耐心培养", "耐候性": 15, "等级": 6, "经验": 80, "能否购买": true}, - "富贵竹": {"花费": 350, "生长时间": 6600, "收益": 650, "品质": "传奇", "描述": "寓意吉祥的观赏植物", "耐候性": 12, "等级": 6, "经验": 75, "能否购买": true}, - "芦荟": {"花费": 320, "生长时间": 6000, "收益": 600, "品质": "传奇", "描述": "具有药用价值的多肉植物", "耐候性": 18, "等级": 6, "经验": 70, "能否购买": true}, - "哈密瓜": {"花费": 380, "生长时间": 7800, "收益": 700, "品质": "传奇", "描述": "甘甜的高级水果", "耐候性": 8, "等级": 6, "经验": 85, "能否购买": true}, - "藏红花": {"花费": 400, "生长时间": 7000, "收益": 710, "品质": "传奇", "描述": "世界上最昂贵的香料之一,需精心照料,花朵可提取柱头", "耐候性": 9, "等级": 6, "经验": 80, "能否购买": true}, - - - "金橘": {"花费": 500, "生长时间": 10800, "收益": 900, "品质": "传奇", "描述": "金黄色的珍贵柑橘", "耐候性": 10, "等级": 7, "经验": 120, "能否购买": true}, - "苹果": {"花费": 450, "生长时间": 9600, "收益": 820, "品质": "传奇", "描述": "结果丰富的果树", "耐候性": 14, "等级": 7, "经验": 110, "能否购买": true}, - "橘子": {"花费": 480, "生长时间": 10200, "收益": 850, "品质": "传奇", "描述": "维生素C丰富的果树", "耐候性": 12, "等级": 7, "经验": 115, "能否购买": true}, - "香蕉": {"花费": 420, "生长时间": 8400, "收益": 780, "品质": "传奇", "描述": "热带水果之王", "耐候性": 5, "等级": 7, "经验": 100, "能否购买": true}, - - - "向日葵": {"花费": 160, "生长时间": 3600, "收益": 280, "品质": "史诗", "描述": "向阳而生的美丽花朵", "耐候性": 13, "等级": 4, "经验": 35, "能否购买": true}, - "树莓": {"花费": 140, "生长时间": 2700, "收益": 240, "品质": "稀有", "描述": "小巧精致的浆果", "耐候性": 9, "等级": 3, "经验": 30, "能否购买": true}, - "豌豆": {"花费": 65, "生长时间": 720, "收益": 110, "品质": "优良", "描述": "嫩绿的豆荚蔬菜", "耐候性": 10, "等级": 2, "经验": 15, "能否购买": true}, - "黄瓜": {"花费": 85, "生长时间": 1200, "收益": 150, "品质": "优良", "描述": "清脆爽口的瓜类", "耐候性": 8, "等级": 2, "经验": 18, "能否购买": true}, - "大白菜": {"花费": 70, "生长时间": 900, "收益": 120, "品质": "优良", "描述": "北方冬季的主要蔬菜", "耐候性": 15, "等级": 2, "经验": 16, "能否购买": true}, - "蕨菜": {"花费": 180, "生长时间": 2400, "收益": 300, "品质": "史诗", "描述": "野生山菜,口感独特", "耐候性": 16, "等级": 4, "经验": 35, "能否购买": true}, - - - "龙果": {"花费": 800, "生长时间": 14400, "收益": 1500, "品质": "传奇", "描述": "传说中的神秘果实,蕴含强大能量", "耐候性": 25, "等级": 8, "经验": 200, "能否购买": true}, - "松露": {"花费": 1000, "生长时间": 18000, "收益": 2000, "品质": "传奇", "描述": "地下的黑金,顶级料理的灵魂", "耐候性": 20, "等级": 8, "经验": 250, "能否购买": true}, - "冬虫夏草": {"花费": 600, "生长时间": 12000, "收益": 1200, "品质": "传奇", "描述": "稀世珍宝,药王之称", "耐候性": 30, "等级": 7, "经验": 180, "能否购买": true}, - "山葵": {"花费": 500, "生长时间": 10800, "收益": 1000, "品质": "优良", "描述": "日式料理的珍贵调料", "耐候性": 22, "等级": 7, "经验": 150, "能否购买": true}, - "鱼腥草": {"花费": 300, "生长时间": 7200, "收益": 600, "品质": "稀有", "描述": "具有特殊药用价值的野菜", "耐候性": 18, "等级": 6, "经验": 90, "能否购买": true}, - "月光草": {"花费": 700, "生长时间": 14500, "收益": 1500, "品质": "传奇", "描述": "夜间开花的神秘植物,花瓣在月光下散发荧光,传说具有许愿功效", "耐候性": 20, "等级": 8, "经验": 200, "能否购买": true}, - "凤凰木": {"花费": 650, "生长时间": 12600, "收益": 1400, "品质": "传奇", "描述": "传说中凤凰栖息的神树,开花时如火焰般绚烂,木材可驱邪避灾", "耐候性": 25, "等级": 8, "经验": 210, "能否购买": true}, - - - "杂交树1": {"花费": 1200, "生长时间": 21600, "收益": 2500, "品质": "传奇", "描述": "初中生物书最后的幻想", "耐候性": 35, "等级": 9, "经验": 300, "能否购买": true}, - "杂交树2": {"花费": 1500, "生长时间": 25200, "收益": 3000, "品质": "传奇", "描述": "初中生物书最后的想象", "耐候性": 40, "等级": 10, "经验": 400, "能否购买": true} + "牵牛花": {"花费":85,"生长时间":1080,"收益":145,"品质":"稀有","描述":"富含蛋白质的豆类作物","耐候性":9,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物20"}, + "百合花": {"花费":260,"生长时间":4800,"收益":480,"品质":"稀有","描述":"美丽的观赏植物","耐候性":10,"等级":5,"经验":50,"能否购买":true,"是否有成熟物":true,"作物ID":"作物53"}, + "山葵": {"花费":500,"生长时间":10800,"收益":1000,"品质":"稀有","描述":"日式料理的珍贵调料","耐候性":22,"等级":7,"经验":150,"能否购买":true,"是否有成熟物":true,"作物ID":"作物75"}, + "草莓": {"花费":120,"生长时间":1440,"收益":200,"品质":"稀有","描述":"甜美的浆果,深受喜爱","耐候性":6,"等级":3,"经验":22,"能否购买":true,"是否有成熟物":true,"作物ID":"作物27","喂养效果":{"经验":8,"暴击率":3,"亲密度":10}}, + "蓝莓": {"花费":160,"生长时间":2100,"收益":260,"品质":"稀有","描述":"抗氧化的超级食物","耐候性":7,"等级":3,"经验":28,"能否购买":true,"是否有成熟物":true,"作物ID":"作物30"}, + "栀子花": {"花费":180,"生长时间":2400,"收益":300,"品质":"稀有","描述":"美丽的观赏植物","耐候性":10,"等级":3,"经验":25,"能否购买":true,"是否有成熟物":true,"作物ID":"作物31"}, + "玫瑰花": {"花费":190,"生长时间":2520,"收益":310,"品质":"稀有","描述":"美丽的观赏植物","耐候性":10,"等级":3,"经验":25,"能否购买":true,"是否有成熟物":true,"作物ID":"作物32"}, + "菠萝": {"花费":200,"生长时间":2700,"收益":340,"品质":"稀有","描述":"热带水果之王","耐候性":10,"等级":3,"经验":25,"能否购买":true,"是否有成熟物":true,"作物ID":"作物33"}, + "芒果": {"花费":240,"生长时间":3180,"收益":400,"品质":"稀有","描述":"热带阳光孕育的香甜果实","耐候性":10,"等级":3,"经验":27,"能否购买":true,"是否有成熟物":true,"作物ID":"作物37"}, + "咖啡豆": {"花费":200,"生长时间":2500,"收益":340,"品质":"稀有","描述":"热带经济作物,果实经烘焙后可制成饮品,需温暖气候","耐候性":8,"等级":4,"经验":35,"能否购买":true,"是否有成熟物":true,"作物ID":"作物47"}, + "可可豆": {"花费":200,"生长时间":2500,"收益":340,"品质":"稀有","描述":"制作巧克力的原料,需高温高湿环境,经济价值较高","耐候性":10,"等级":4,"经验":36,"能否购买":true,"是否有成熟物":true,"作物ID":"作物48"}, + "向日葵": {"花费":160,"生长时间":3600,"收益":280,"品质":"稀有","描述":"向阳而生的美丽花朵","耐候性":13,"等级":4,"经验":35,"能否购买":true,"是否有成熟物":true,"作物ID":"作物66"}, + "哈密瓜": {"花费":380,"生长时间":7800,"收益":700,"品质":"稀有","描述":"甘甜的高级水果","耐候性":8,"等级":6,"经验":85,"能否购买":true,"是否有成熟物":true,"作物ID":"作物60"}, + "藏红花": {"花费":400,"生长时间":7000,"收益":710,"品质":"稀有","描述":"世界上最昂贵的香料之一,需精心照料,花朵可提取柱头","耐候性":9,"等级":6,"经验":80,"能否购买":true,"是否有成熟物":true,"作物ID":"作物61"}, + "龙果": {"花费":800,"生长时间":14400,"收益":1500,"品质":"稀有","描述":"传说中的神秘果实,蕴含强大能量","耐候性":25,"等级":8,"经验":200,"能否购买":true,"是否有成熟物":true,"作物ID":"作物72"}, + + + "杨桃": {"花费":85,"生长时间":1080,"收益":145,"品质":"史诗","描述":"富含蛋白质的豆类作物","耐候性":9,"等级":2,"经验":18,"能否购买":true,"是否有成熟物":true,"作物ID":"作物23"}, + "香草": {"花费":300,"生长时间":6000,"收益":550,"品质":"史诗","描述":"珍贵的调料植物","耐候性":7,"等级":5,"经验":60,"能否购买":true,"是否有成熟物":true,"作物ID":"作物51"}, + "康乃馨": {"花费":270,"生长时间":5100,"收益":510,"品质":"史诗","描述":"美丽的观赏植物","耐候性":10,"等级":5,"经验":50,"能否购买":true,"是否有成熟物":true,"作物ID":"作物54"}, + "藏羚羊草": {"花费":80,"生长时间":200,"收益":200,"品质":"史诗","描述":"高原珍稀草种,用于生态修复,对土壤要求苛刻但市场需求大","耐候性":15,"等级":5,"经验":20,"能否购买":true,"是否有成熟物":true,"作物ID":"作物56"}, + "迷迭香": {"花费":100,"生长时间":1680,"收益":210,"品质":"史诗","描述":"芳香型草本植物,可用于烹饪和精油提取,耐旱易存活","耐候性":12,"等级":3,"经验":22,"能否购买":true,"是否有成熟物":true,"作物ID":"作物26"}, + "蕨菜": {"花费":180,"生长时间":2400,"收益":300,"品质":"史诗","描述":"野生山菜,口感独特","耐候性":16,"等级":4,"经验":35,"能否购买":true,"是否有成熟物":true,"作物ID":"作物71"}, + "人参": {"花费":400,"生长时间":7200,"收益":720,"品质":"史诗","描述":"珍贵的药用植物,需要耐心培养","耐候性":15,"等级":6,"经验":80,"能否购买":true,"是否有成熟物":true,"作物ID":"作物57"}, + "富贵竹": {"花费":350,"生长时间":6600,"收益":650,"品质":"史诗","描述":"寓意吉祥的观赏植物","耐候性":12,"等级":6,"经验":75,"能否购买":true,"是否有成熟物":true,"作物ID":"作物58"}, + "芦荟": {"花费":320,"生长时间":6000,"收益":600,"品质":"史诗","描述":"具有药用价值的多肉植物","耐候性":18,"等级":6,"经验":70,"能否购买":true,"是否有成熟物":true,"作物ID":"作物59"}, + "金橘": {"花费":500,"生长时间":10800,"收益":900,"品质":"史诗","描述":"金黄色的珍贵柑橘","耐候性":10,"等级":7,"经验":120,"能否购买":true,"是否有成熟物":true,"作物ID":"作物62"}, + "松露": {"花费":1000,"生长时间":18000,"收益":2000,"品质":"史诗","描述":"地下的黑金,顶级料理的灵魂","耐候性":20,"等级":8,"经验":250,"能否购买":true,"是否有成熟物":true,"作物ID":"作物73"}, + "冬虫夏草": {"花费":600,"生长时间":12000,"收益":1200,"品质":"史诗","描述":"稀世珍宝,药王之称","耐候性":30,"等级":7,"经验":180,"能否购买":true,"是否有成熟物":true,"作物ID":"作物74"}, + + + "糖果树": {"花费":250,"生长时间":3300,"收益":420,"品质":"传奇","描述":"传说中结出彩色糖果的魔法树","耐候性":7,"等级":3,"经验":25,"能否购买":true,"是否有成熟物":false,"作物ID":"作物38"}, + "面包树": {"花费":260,"生长时间":3420,"收益":440,"品质":"传奇","描述":"热带地区的淀粉质主食树种","耐候性":9,"等级":3,"经验":25,"能否购买":true,"是否有成熟物":false,"作物ID":"作物39"}, + "幸运草": {"花费":150,"生长时间":1560,"收益":220,"品质":"传奇","描述":"四片叶子的幸运象征植物","耐候性":6,"等级":3,"经验":20,"能否购买":true,"是否有成熟物":true,"作物ID":"作物40"}, + "幸运花": {"花费":170,"生长时间":1680,"收益":240,"品质":"传奇","描述":"绽放时带来好运的神秘花卉","耐候性":7,"等级":3,"经验":22,"能否购买":true,"是否有成熟物":true,"作物ID":"作物41"}, + "摇钱树": {"花费":300,"生长时间":3600,"收益":500,"品质":"传奇","描述":"传说中能结出金币的神树","耐候性":10,"等级":3,"经验":30,"能否购买":true,"是否有成熟物":false,"作物ID":"作物42"}, + "月光草": {"花费":700,"生长时间":14500,"收益":1500,"品质":"传奇","描述":"夜间开花的神秘植物,花瓣在月光下散发荧光,传说具有许愿功效","耐候性":20,"等级":8,"经验":200,"能否购买":true,"是否有成熟物":true,"作物ID":"作物77"}, + "凤凰木": {"花费":650,"生长时间":12600,"收益":1400,"品质":"传奇","描述":"传说中凤凰栖息的神树,开花时如火焰般绚烂,木材可驱邪避灾","耐候性":25,"等级":8,"经验":210,"能否购买":true,"是否有成熟物":true,"作物ID":"作物78"}, + "杂交树1": {"花费":1200,"生长时间":21600,"收益":2500,"品质":"传奇","描述":"初中生物书最后的幻想","耐候性":35,"等级":9,"经验":300,"能否购买":true,"是否有成熟物":false,"作物ID":"作物79"}, + "杂交树2": {"花费":1500,"生长时间":25200,"收益":3000,"品质":"传奇","描述":"初中生物书最后的想象","耐候性":40,"等级":10,"经验":400,"能否购买":true,"是否有成熟物":false,"作物ID":"作物80"} } \ No newline at end of file diff --git a/Server/config/initial_player_data_template.json b/Server/config/initial_player_data_template.json index e78562a..bfdb2e7 100644 --- a/Server/config/initial_player_data_template.json +++ b/Server/config/initial_player_data_template.json @@ -13,6 +13,7 @@ "total_login_time": "0时0分0秒", "personal_profile": "个人简介", "注册时间": "2025年05月21日15时00分00秒", + "farm_lots": [ {"crop_type":"","grow_time":0,"is_dead":false,"is_diged":true,"is_planted":false,"max_grow_time":3,"已浇水":false,"已施肥":false,"土地等级":0}, {"crop_type":"","grow_time":0,"is_dead":false,"is_diged":true,"is_planted":false,"max_grow_time":3,"已浇水":false,"已施肥":false,"土地等级":0}, @@ -64,16 +65,11 @@ ], "player_bag": [], "作物仓库": [], - "道具背包": [ - { - "name": "精准采集锄", - "count": 1 - }, - { - "name": "农家肥", - "count": 3 - } - ], + "道具背包": [], + "宠物背包":[], + "巡逻宠物":[], + "出战宠物":[], + "last_water_reset_date": "", "daily_likes": {}, "seeds": {}, diff --git a/Server/config/item_config.json b/Server/config/item_config.json index 6bfd9f9..3ab2e55 100644 --- a/Server/config/item_config.json +++ b/Server/config/item_config.json @@ -8,5 +8,19 @@ "杀虫剂": {"花费":100,"描述":"杀虫,暂时没什么用","类型":"作物道具","道具图片":"res://assets/道具图片/杀虫剂.webp"}, "除草剂": {"花费":100,"描述":"除草","类型":"作物道具","道具图片":"res://assets/道具图片/除草剂.webp"}, "生长素": {"花费":100,"描述":"时运可以10分钟内3倍速作物生长,而且作物生长速度+3%","类型":"作物道具","道具图片":"res://assets/道具图片/生长素.webp"}, - "铲子": {"花费":100,"描述":"铲除作物","类型":"作物道具","道具图片":"res://assets/道具图片/附魔铁铲.webp"} + "铲子": {"花费":100,"描述":"铲除作物","类型":"作物道具","道具图片":"res://assets/道具图片/附魔铁铲.webp"}, + + "不死图腾": {"花费":100,"描述":"让宠物死亡复活一次","类型":"宠物道具","道具图片":"res://assets/道具图片/不死图腾.webp"}, + "荆棘护甲": {"花费":100,"描述":"宠物收到伤害时反弹伤害给敌人","类型":"宠物道具","道具图片":"res://assets/道具图片/荆棘护甲.webp"}, + "狂暴药水": {"花费":100,"描述":"宠物血量低于某个值,进入狂暴模式","类型":"宠物道具","道具图片":"res://assets/道具图片/狂暴药水.webp"}, + "援军令牌": {"花费":100,"描述":"血量低于某个值,召唤一堆宠物仆从帮助你战斗","类型":"宠物道具","道具图片":"res://assets/道具图片/援军令牌.webp"}, + "金刚图腾": {"花费":100,"描述":"更改宠物元素为金元素","类型":"宠物道具","道具图片":"res://assets/道具图片/金元素图腾.webp"}, + "灵木图腾": {"花费":100,"描述":"更改宠物元素为木元素","类型":"宠物道具","道具图片":"res://assets/道具图片/木元素图腾.webp"}, + "潮汐图腾": {"花费":100,"描述":"更改宠物元素为水元素","类型":"宠物道具","道具图片":"res://assets/道具图片/水元素图腾.webp"}, + "烈焰图腾": {"花费":100,"描述":"更改宠物元素为火元素","类型":"宠物道具","道具图片":"res://assets/道具图片/火元素图腾.webp"}, + "敦岩图腾": {"花费":100,"描述":"更改宠物元素为土元素","类型":"宠物道具","道具图片":"res://assets/道具图片/土元素图腾.webp"}, + + "小额经验卡": {"花费":100,"描述":"让宠物获得500经验值","类型":"农场道具","道具图片":"res://assets/道具图片/小额经验卡.webp"}, + "小额金币卡": {"花费":100,"描述":"让宠物获得500金币","类型":"农场道具","道具图片":"res://assets/道具图片/小额金币卡.webp"} + } \ No newline at end of file diff --git a/Server/config/pet_data.json b/Server/config/pet_data.json new file mode 100644 index 0000000..f541c13 --- /dev/null +++ b/Server/config/pet_data.json @@ -0,0 +1,1466 @@ +{ + "小绿": { + "场景路径": "res://Scene/Pet/SmallGreen.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小绿", + "队伍标识": "team1", + "宠物ID": "0001", + "宠物类型": "小绿", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小蓝": { + "场景路径": "res://Scene/Pet/SmallBlue.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小蓝", + "队伍标识": "team1", + "宠物ID": "0002", + "宠物类型": "小蓝", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小黄": { + "场景路径": "res://Scene/Pet/SmallYellow.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小黄", + "队伍标识": "team1", + "宠物ID": "0003", + "宠物类型": "小黄", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小橙": { + "场景路径": "res://Scene/Pet/SmallOrange.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小橙", + "队伍标识": "team1", + "宠物ID": "0004", + "宠物类型": "小橙", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小粉": { + "场景路径": "res://Scene/Pet/SmallPink.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小粉", + "队伍标识": "team1", + "宠物ID": "0005", + "宠物类型": "小粉", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "红史莱姆": { + "场景路径": "res://Scene/Pet/RedSlime.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽红史莱姆", + "队伍标识": "team1", + "宠物ID": "0006", + "宠物类型": "红史莱姆", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "绿史莱姆": { + "场景路径": "res://Scene/Pet/GreenSlime.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽绿史莱姆", + "队伍标识": "team1", + "宠物ID": "0007", + "宠物类型": "绿史莱姆", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小骑士": { + "场景路径": "res://Scene/Pet/LittleKnight.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小骑士", + "队伍标识": "team1", + "宠物ID": "0008", + "宠物类型": "小骑士", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "大甲虫": { + "场景路径": "res://Scene/Pet/BigBeetle.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽大甲虫", + "队伍标识": "team1", + "宠物ID": "0009", + "宠物类型": "大甲虫", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小甲虫": { + "场景路径": "res://Scene/Pet/SmallBeetle.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小甲虫", + "队伍标识": "team1", + "宠物ID": "0010", + "宠物类型": "小甲虫", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "飞鸟": { + "场景路径": "res://Scene/Pet/FlyingBird.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽飞鸟", + "队伍标识": "team1", + "宠物ID": "0011", + "宠物类型": "飞鸟", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + }, + "小钻头": { + "场景路径": "res://Scene/Pet/SmallDrillBit.tscn", + + "基本信息": { + "宠物主人": "树萌芽", + "宠物名称": "萌芽小钻头", + "队伍标识": "team1", + "宠物ID": "0012", + "宠物类型": "小钻头", + "生日": "", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + + "穿透属性": { + "穿透数量": 3 + }, + + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + + "品质系统": { + "宠物品质": "COMMON" + } + } +} \ No newline at end of file diff --git a/Server/config/scare_crow_config.json b/Server/config/scare_crow_config.json new file mode 100644 index 0000000..c76cb8f --- /dev/null +++ b/Server/config/scare_crow_config.json @@ -0,0 +1,8 @@ +{ + "稻草人类型": { + "稻草人1": {"图片": "res://assets/道具图片/稻草人1.webp", "价格": 1000}, + "稻草人2": {"图片": "res://assets/道具图片/稻草人2.webp", "价格": 1000}, + "稻草人3": {"图片": "res://assets/道具图片/稻草人3.webp", "价格": 1000} + }, + "修改稻草人配置花费": 300 +} \ No newline at end of file diff --git a/Server/config/wisdom_tree_data.json b/Server/config/wisdom_tree_data.json new file mode 100644 index 0000000..f49a9e7 --- /dev/null +++ b/Server/config/wisdom_tree_data.json @@ -0,0 +1,48 @@ +{ + "messages": [ + { + "timestamp": "2024-01-01 12:00:00", + "sender": "system", + "content": "欢迎来到智慧树!这里是一个匿名的心愿许愿池,分享你的心声吧~", + "id": "default_message_001" + }, + { + "timestamp": "2024-01-01 12:30:00", + "sender": "system", + "content": "记得定期给智慧树浇水施肥哦,它会越长越高~", + "id": "default_message_002" + }, + { + "timestamp": "2024-01-01 13:00:00", + "sender": "system", + "content": "智慧树需要你的呵护,除草杀虫让它更健康!", + "id": "default_message_003" + }, + { + "timestamp": "2025-07-09 10:52:31", + "sender": "2143323382", + "content": "陌生人你好呀", + "id": "e62d7c3e-4965-4110-b7f2-a5f5a3806d86" + }, + { + "timestamp": "2025-07-09 15:46:18", + "sender": "2143323382", + "content": "你好", + "id": "13c3e296-b23b-4ad4-a68e-93d28769614a" + }, + { + "timestamp": "2025-07-09 16:53:16", + "sender": "2143323382", + "content": "我喜欢柚小青", + "id": "5bf10c6b-fc73-4a5f-a246-99a474148175" + }, + { + "timestamp": "2025-07-09 16:54:31", + "sender": "2143323382", + "content": "柚小青最可爱", + "id": "f1af2d77-c860-4f1a-8d2b-f5dd0dc5a672" + } + ], + "total_messages": 7, + "last_update": "2025-07-09 16:54:31" +} \ No newline at end of file diff --git a/Server/console_demo.py b/Server/console_demo.py new file mode 100644 index 0000000..0c4ace1 --- /dev/null +++ b/Server/console_demo.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +萌芽农场服务器控制台命令演示 +展示各种控制台命令的使用方法和效果 +""" + +def show_console_demo(): + """展示控制台命令使用示例""" + print("🌱 萌芽农场服务器控制台命令演示") + print("=" * 60) + + print("\n📋 可用命令列表:") + commands = [ + ("help", "显示帮助信息"), + ("lsplayer", "列出所有已注册玩家"), + ("playerinfo ", "查看玩家详细信息"), + ("addmoney <数量>", "为玩家添加金币"), + ("addxp <数量>", "为玩家添加经验"), + ("addlevel <数量>", "为玩家添加等级"), + ("addseed <作物> <数量>", "为玩家添加种子"), + ("resetland ", "重置玩家土地状态"), + ("save", "立即保存所有数据"), + ("reload", "重新加载配置"), + ("stop", "停止服务器") + ] + + for cmd, desc in commands: + print(f" {cmd:<30} - {desc}") + + print("\n" + "=" * 60) + print("🎯 使用示例:") + + examples = [ + { + "title": "查看玩家信息", + "commands": [ + "lsplayer", + "playerinfo 2143323382" + ], + "description": "首先列出所有玩家,然后查看特定玩家的详细信息" + }, + { + "title": "发放新手福利", + "commands": [ + "addmoney 2143323382 5000", + "addxp 2143323382 1000", + "addseed 2143323382 番茄 50", + "addseed 2143323382 胡萝卜 30" + ], + "description": "为新玩家发放启动资金、经验和种子" + }, + { + "title": "活动奖励发放", + "commands": [ + "addlevel 2143323382 3", + "addmoney 2143323382 10000", + "addseed 2143323382 龙果 5" + ], + "description": "为参与活动的玩家发放等级、金币和稀有种子奖励" + }, + { + "title": "问题处理", + "commands": [ + "playerinfo 2143323382", + "resetland 2143323382", + "save" + ], + "description": "查看玩家状态,重置有问题的土地,保存数据" + } + ] + + for i, example in enumerate(examples, 1): + print(f"\n{i}. {example['title']}") + print(f" 说明: {example['description']}") + print(" 命令序列:") + for cmd in example['commands']: + print(f" > {cmd}") + + print("\n" + "=" * 60) + print("⚠️ 注意事项:") + notices = [ + "命令前的斜杠(/)是可选的,'addmoney' 和 '/addmoney' 效果相同", + "QQ号必须是已注册的玩家账号", + "数量参数必须是正整数", + "作物名称必须在游戏配置中存在", + "resetland 命令会清除玩家所有农场进度,请谨慎使用", + "对在线玩家的修改会立即生效并推送到客户端", + "所有修改都会自动保存到磁盘" + ] + + for notice in notices: + print(f" • {notice}") + + print("\n" + "=" * 60) + print("🔧 常见作物名称参考:") + crops = [ + "基础作物: 小麦、胡萝卜、土豆、稻谷、玉米、番茄", + "花卉类: 玫瑰花、向日葵、郁金香、百合花、康乃馨", + "水果类: 草莓、蓝莓、苹果、香蕉、橘子、葡萄、西瓜", + "高级作物: 人参、藏红花、松露、龙果、冬虫夏草", + "特殊作物: 摇钱树、糖果树、月光草、凤凰木" + ] + + for crop_group in crops: + print(f" • {crop_group}") + + print("\n" + "=" * 60) + print("🚀 快速开始:") + print("1. 启动服务器: python TCPGameServer.py") + print("2. 等待看到控制台提示符: >") + print("3. 输入命令,例如: help") + print("4. 查看命令执行结果") + print("5. 继续输入其他命令进行管理") + + print("\n💡 提示: 输入 'help' 可以随时查看完整的命令帮助信息") + print("=" * 60) + +if __name__ == "__main__": + show_console_demo() \ No newline at end of file diff --git a/Server/deploy.sh b/Server/deploy.sh new file mode 100644 index 0000000..7a52586 --- /dev/null +++ b/Server/deploy.sh @@ -0,0 +1,147 @@ +#!/bin/bash + +# 萌芽农场服务器 Docker 部署脚本 +# 使用方法: ./deploy.sh [start|stop|restart|logs|status] + +set -e + +CONTAINER_NAME="mengyafarm-server" +IMAGE_NAME="mengyafarm-server" + +# 显示帮助信息 +show_help() { + echo "萌芽农场服务器 Docker 部署脚本" + echo "使用方法: $0 [命令]" + echo "" + echo "可用命令:" + echo " start - 启动服务器" + echo " stop - 停止服务器" + echo " restart - 重启服务器" + echo " logs - 查看日志" + echo " status - 查看状态" + echo " build - 重新构建镜像" + echo " clean - 清理停止的容器和未使用的镜像" + echo " help - 显示此帮助信息" +} + +# 检查Docker是否安装 +check_docker() { + if ! command -v docker &> /dev/null; then + echo "❌ Docker 未安装,请先安装 Docker" + exit 1 + fi + + if ! command -v docker-compose &> /dev/null; then + echo "❌ Docker Compose 未安装,请先安装 Docker Compose" + exit 1 + fi +} + +# 启动服务器 +start_server() { + echo "🚀 启动萌芽农场服务器..." + + # 创建必要的目录 + mkdir -p game_saves config chat + + # 检查配置文件是否存在 + if [ ! -f "config/crop_data.json" ]; then + echo "⚠️ 警告: 配置文件不存在,请确保 config 目录包含必要的配置文件" + fi + + # 启动容器 + docker-compose up -d + + echo "✅ 服务器启动成功!" + echo "📡 服务器地址: localhost:6060" + echo "📝 查看日志: $0 logs" +} + +# 停止服务器 +stop_server() { + echo "⏹️ 停止萌芽农场服务器..." + docker-compose down + echo "✅ 服务器已停止" +} + +# 重启服务器 +restart_server() { + echo "🔄 重启萌芽农场服务器..." + docker-compose restart + echo "✅ 服务器重启完成" +} + +# 查看日志 +show_logs() { + echo "📝 查看服务器日志 (按 Ctrl+C 退出)..." + docker-compose logs -f +} + +# 查看状态 +show_status() { + echo "📊 服务器状态:" + docker-compose ps + echo "" + + if docker-compose ps | grep -q "Up"; then + echo "✅ 服务器正在运行" + echo "🔗 端口映射: 6060:6060" + + # 显示资源使用情况 + echo "" + echo "📈 资源使用情况:" + docker stats --no-stream $CONTAINER_NAME 2>/dev/null || echo "无法获取资源使用情况" + else + echo "❌ 服务器未运行" + fi +} + +# 构建镜像 +build_image() { + echo "🔨 重新构建镜像..." + docker-compose build --no-cache + echo "✅ 镜像构建完成" +} + +# 清理 +clean_up() { + echo "🧹 清理停止的容器和未使用的镜像..." + docker-compose down + docker system prune -f + echo "✅ 清理完成" +} + +# 主函数 +main() { + check_docker + + case "${1:-help}" in + "start") + start_server + ;; + "stop") + stop_server + ;; + "restart") + restart_server + ;; + "logs") + show_logs + ;; + "status") + show_status + ;; + "build") + build_image + ;; + "clean") + clean_up + ;; + "help"|*) + show_help + ;; + esac +} + +# 执行主函数 +main "$@" \ No newline at end of file diff --git a/Server/docker-compose.yml b/Server/docker-compose.yml new file mode 100644 index 0000000..661e571 --- /dev/null +++ b/Server/docker-compose.yml @@ -0,0 +1,31 @@ +version: '3.8' + +services: + mengyafarm-server: + build: . + container_name: mengyafarm-server + restart: unless-stopped + ports: + - "6060:6060" + volumes: + # 持久化游戏存档 + - ./game_saves:/app/game_saves + # 持久化配置文件 + - ./config:/app/config + # 持久化聊天日志 + - ./chat:/app/chat + environment: + - PYTHONUNBUFFERED=1 + - LANG=C.UTF-8 + - LC_ALL=C.UTF-8 + networks: + - mengyafarm-network + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + +networks: + mengyafarm-network: + driver: bridge \ No newline at end of file diff --git a/Server/game_saves/2143323382.json b/Server/game_saves/2143323382.json new file mode 100644 index 0000000..a283b5f --- /dev/null +++ b/Server/game_saves/2143323382.json @@ -0,0 +1,1383 @@ +{ + "experience": 1858, + "level": 26, + "money": 1223582, + "farm_name": "柚大青の小农场", + "player_name": "柚大青", + "user_name": "2143323382", + "user_password": "tyh@19900420", + "last_login_time": "2025年07月09日16时52分37秒", + "total_login_time": "5时0分7秒", + "farm_lots": [ + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 650, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 720, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "野草1", + "grow_time": 6, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 3 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 900, + "已浇水": false, + "已施肥": false, + "土地等级": 1 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3000, + "已浇水": false, + "已施肥": false, + "土地等级": 1 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 7800, + "已浇水": false, + "已施肥": false, + "土地等级": 1 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 900, + "已浇水": false, + "已施肥": false, + "土地等级": 1 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 720, + "已浇水": false, + "已施肥": false, + "土地等级": 1 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 7000, + "已浇水": false, + "已施肥": false, + "土地等级": 1 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 1 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 650, + "已浇水": false, + "已施肥": false, + "土地等级": 1 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 650, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 720, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "胡萝卜", + "quality": "普通", + "count": 36 + }, + { + "name": "香草", + "count": 2 + }, + { + "name": "咖啡豆", + "count": 1 + }, + { + "name": "玉米", + "count": 23, + "type": "seed", + "quality": "优良" + }, + { + "name": "番茄", + "count": 17, + "type": "seed", + "quality": "优良" + }, + { + "name": "草莓", + "count": 2, + "type": "seed", + "quality": "稀有" + }, + { + "name": "花椰菜", + "count": 3, + "type": "seed", + "quality": "稀有" + }, + { + "name": "葡萄", + "count": 1, + "type": "seed", + "quality": "史诗" + }, + { + "name": "南瓜", + "count": 5, + "type": "seed", + "quality": "史诗" + }, + { + "name": "富贵竹", + "count": 2 + }, + { + "name": "橘子树", + "quality": "传奇", + "count": 1 + }, + { + "name": "香蕉树", + "quality": "传奇", + "count": 1 + }, + { + "name": "豌豆", + "quality": "优良", + "count": 5 + }, + { + "name": "黄瓜", + "quality": "优良", + "count": 2 + }, + { + "name": "哈密瓜", + "quality": "传奇", + "count": 4 + }, + { + "name": "人参", + "quality": "传奇", + "count": 1 + }, + { + "name": "松露", + "count": 2, + "type": "seed", + "quality": "传奇" + }, + { + "name": "冬虫夏草", + "count": 2 + }, + { + "name": "稻谷", + "quality": "普通", + "count": 6 + }, + { + "name": "小麦", + "quality": "普通", + "count": 15 + }, + { + "name": "杨桃", + "quality": "优良", + "count": 1 + }, + { + "name": "仙人掌", + "quality": "优良", + "count": 4 + }, + { + "name": "山楂", + "quality": "优良", + "count": 1 + }, + { + "name": "梨树", + "quality": "稀有", + "count": 1 + }, + { + "name": "菠萝", + "quality": "稀有", + "count": 3 + }, + { + "name": "辣椒", + "quality": "普通", + "count": 11 + }, + { + "name": "大豆", + "quality": "优良", + "count": 2 + }, + { + "name": "藏红花", + "quality": "传奇", + "count": 1 + }, + { + "name": "土豆", + "quality": "普通", + "count": 3 + }, + { + "name": "大白菜", + "count": 3 + }, + { + "name": "郁金香", + "count": 2 + }, + { + "name": "芦笋", + "quality": "史诗", + "count": 1 + }, + { + "name": "芦荟", + "quality": "传奇", + "count": 1 + }, + { + "name": "野草1", + "quality": "普通", + "count": 1 + }, + { + "name": "葫芦", + "quality": "优良", + "count": 1 + }, + { + "name": "生菜", + "quality": "普通", + "count": 1 + }, + { + "name": "杂交树1", + "quality": "传奇", + "count": 1 + } + ], + "total_likes": 3, + "last_water_reset_date": "2025-06-05", + "daily_check_in": { + "2025-06-03": { + "rewards": { + "coins": 259, + "exp": 75, + "seeds": [ + { + "name": "土豆", + "quantity": 5, + "quality": "普通" + }, + { + "name": "小麦", + "quantity": 4, + "quality": "普通" + }, + { + "name": "稻谷", + "quantity": 4, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1748950405.029992 + }, + "2025-06-04": { + "rewards": { + "coins": 455, + "exp": 93, + "seeds": [ + { + "name": "小麦", + "quantity": 3, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 1, + "timestamp": 1749033203.8079362 + }, + "2025-06-08": { + "rewards": { + "coins": 376, + "exp": 83, + "seeds": [ + { + "name": "胡萝卜", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749387590.7727287 + }, + "2025-06-15": { + "rewards": { + "coins": 329, + "exp": 58, + "seeds": [ + { + "name": "胡萝卜", + "quantity": 3, + "quality": "普通" + }, + { + "name": "稻谷", + "quantity": 2, + "quality": "普通" + }, + { + "name": "土豆", + "quantity": 5, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749994853.8761835 + }, + "2025-06-16": { + "rewards": { + "coins": 219, + "exp": 107, + "seeds": [ + { + "name": "稻谷", + "quantity": 5, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 4, + "quality": "普通" + } + ] + }, + "consecutive_days": 1, + "timestamp": 1750048317.4814892 + }, + "2025-06-17": { + "rewards": { + "coins": 292, + "exp": 125, + "seeds": [ + { + "name": "胡萝卜", + "quantity": 2, + "quality": "普通" + }, + { + "name": "小麦", + "quantity": 4, + "quality": "普通" + }, + { + "name": "土豆", + "quantity": 5, + "quality": "普通" + } + ] + }, + "consecutive_days": 2, + "timestamp": 1750171931.7031996 + }, + "2025-06-19": { + "rewards": { + "coins": 325, + "exp": 93, + "seeds": [ + { + "name": "小麦", + "quantity": 4, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1750313565.2168045 + }, + "2025-06-20": { + "rewards": { + "coins": 491, + "exp": 119, + "seeds": [ + { + "name": "稻谷", + "quantity": 3, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 3, + "quality": "普通" + }, + { + "name": "小麦", + "quantity": 2, + "quality": "普通" + } + ] + }, + "consecutive_days": 1, + "timestamp": 1750391114.5208066 + }, + "2025-06-21": { + "rewards": { + "coins": 419, + "exp": 111, + "seeds": [ + { + "name": "小麦", + "quantity": 2, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 4, + "quality": "普通" + }, + { + "name": "稻谷", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 2, + "timestamp": 1750474647.3564475 + }, + "2025-06-22": { + "rewards": { + "coins": 312, + "exp": 128, + "seeds": [ + { + "name": "番茄", + "quantity": 5, + "quality": "优良" + }, + { + "name": "豌豆", + "quantity": 5, + "quality": "优良" + }, + { + "name": "玉米", + "quantity": 2, + "quality": "优良" + } + ], + "bonus_coins": 100 + }, + "consecutive_days": 3, + "timestamp": 1750595733.8604188 + }, + "2025-06-23": { + "rewards": { + "coins": 403, + "exp": 67, + "seeds": [ + { + "name": "大豆", + "quantity": 2, + "quality": "优良" + }, + { + "name": "番茄", + "quantity": 4, + "quality": "优良" + } + ], + "bonus_coins": 100 + }, + "consecutive_days": 4, + "timestamp": 1750645219.0674949 + }, + "2025-06-25": { + "rewards": { + "coins": 285, + "exp": 71, + "seeds": [ + { + "name": "胡萝卜", + "quantity": 2, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1750843274.268298 + }, + "2025-06-27": { + "rewards": { + "coins": 264, + "exp": 71, + "seeds": [ + { + "name": "土豆", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1750985100.9851904 + } + }, + "体力值": 20, + "体力上次刷新时间": "2025-07-09", + "体力上次恢复时间": 1752023968.6234932, + "new_player_gift_claimed": true, + "new_player_gift_time": "2025-06-08 20:58:40", + "daily_likes": { + "2025-06-08": [ + "3205788256" + ], + "2025-06-19": [ + "2973419538" + ] + }, + "online_gift": { + "2025-06-15": { + "start_time": 1749994806.033348, + "claimed_gifts": { + "1分钟": 1749997525.6353114, + "10分钟": 1749997526.8762546, + "30分钟": 1749997528.1967597, + "1小时": 1749998971.9923694 + } + }, + "2025-06-16": { + "start_time": 1750048179.8969615, + "claimed_gifts": { + "1分钟": 1750048313.4611192, + "10分钟": 1750050580.5225677, + "30分钟": 1750050580.769819, + "1小时": 1750064802.2532392, + "3小时": 1750064802.9733548 + } + }, + "2025-06-17": { + "start_time": 1750171229.5381422, + "claimed_gifts": { + "1分钟": 1750171292.2183993, + "10分钟": 1750171919.3392045 + } + }, + "2025-06-19": { + "start_time": 1750313555.3165672, + "claimed_gifts": { + "1分钟": 1750313616.1958554, + "10分钟": 1750341382.3730462, + "30分钟": 1750341382.61995, + "1小时": 1750341382.880238, + "3小时": 1750341383.0264854, + "5小时": 1750341383.3938982 + } + }, + "2025-06-20": { + "start_time": 1750391071.6735287, + "claimed_gifts": { + "1分钟": 1750391912.7143624, + "10分钟": 1750391912.9116397 + } + }, + "2025-06-21": { + "start_time": 1750474630.1757886, + "claimed_gifts": {} + }, + "2025-06-22": { + "start_time": 1750595650.1403966, + "claimed_gifts": { + "1分钟": 1750602278.1127577, + "3分钟": 1750602278.3627682, + "5分钟": 1750602278.542827 + }, + "total_online_time": 409.0429630279541, + "last_login_time": 1750602277.3224318 + }, + "2025-06-23": { + "start_time": 1750608132.891424, + "claimed_gifts": { + "1分钟": 1750608269.0062823, + "3分钟": 1750645226.2449498 + }, + "last_login_time": 1750645221.9068704, + "total_online_time": 796.5319685935974 + }, + "2025-06-25": { + "start_time": 1750782020.5398943, + "claimed_gifts": { + "1分钟": 1750782151.8276432, + "3分钟": 1750812743.9859421, + "5分钟": 1750812744.246103, + "10分钟": 1750812744.4461489 + }, + "last_login_time": 1750843285.627927, + "total_online_time": 1027.647186756134 + }, + "2025-06-26": { + "start_time": 1750893531.8644083, + "claimed_gifts": {}, + "total_online_time": 21.0 + }, + "2025-06-27": { + "start_time": 1750985048.186332, + "claimed_gifts": { + "1分钟": 1751027285.606688, + "3分钟": 1751027353.2067118 + }, + "total_online_time": 329.2799735069275, + "last_login_time": 1751027459.5583248 + }, + "2025-06-29": { + "start_time": 1751209075.6939642, + "claimed_gifts": {}, + "total_online_time": 1601.0 + }, + "2025-07-05": { + "start_time": 1751715212.5978978, + "claimed_gifts": {}, + "total_online_time": 498.0 + }, + "2025-07-06": { + "start_time": 1751817047.2534895, + "claimed_gifts": {} + }, + "2025-07-07": { + "start_time": 1751900348.6906254, + "claimed_gifts": {}, + "total_online_time": 33.0 + }, + "2025-07-08": { + "start_time": 1751938810.9531775, + "claimed_gifts": {}, + "total_online_time": 427.0 + }, + "2025-07-09": { + "start_time": 1752023968.623608, + "claimed_gifts": {}, + "total_online_time": 1282.0 + } + }, + "注册时间": "2025年05月21日15时00分00秒", + "个人简介": "其实我是一个梨子,真的,不骗你", + "作物仓库": [ + { + "name": "辣椒", + "quality": "普通", + "count": 7 + }, + { + "name": "番茄", + "quality": "优良", + "count": 9 + }, + { + "name": "玉米", + "quality": "优良", + "count": 4 + }, + { + "name": "芦笋", + "quality": "史诗", + "count": 5 + }, + { + "name": "哈密瓜", + "quality": "传奇", + "count": 2 + }, + { + "name": "胡萝卜", + "quality": "普通", + "count": 11 + }, + { + "name": "小麦", + "quality": "普通", + "count": 2 + }, + { + "name": "稻谷", + "quality": "普通", + "count": 7 + }, + { + "name": "藏红花", + "quality": "传奇", + "count": 5 + }, + { + "name": "杂交树1", + "quality": "传奇", + "count": 5 + }, + { + "name": "栀子花", + "quality": "稀有", + "count": 8 + }, + { + "name": "杂交树2", + "quality": "传奇", + "count": 3 + }, + { + "name": "山楂", + "quality": "优良", + "count": 6 + } + ], + "宠物背包": [ + { + "场景路径": "res://Scene/Pet/SmallBeetle.tscn", + "基本信息": { + "宠物主人": "2143323382", + "宠物名称": "柚大青的小甲虫", + "队伍标识": "team1", + "宠物ID": "1751716398095", + "宠物类型": "小甲虫", + "生日": "2025年7月5日19时53分18秒", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + "穿透属性": { + "穿透数量": 3 + }, + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + "品质系统": { + "宠物品质": "COMMON" + } + } + ], + "巡逻宠物": [ + "1751716398095" + ], + "出战宠物": [ + "1751716398095" + ], + "稻草人配置": { + "已拥有稻草人类型": [ + "稻草人1" + ], + "稻草人展示类型": "", + "稻草人昵称": "柚大青的稻草人", + "稻草人说的话": { + "第一句话": { + "内容": "233", + "颜色": "52dceeff" + }, + "第三句话": { + "内容": "888", + "颜色": "ac52ffff" + }, + "第二句话": { + "内容": "666", + "颜色": "80d5ffff" + }, + "第四句话": { + "内容": "哈哈哈", + "颜色": "f881ffff" + } + }, + "稻草人昵称颜色": "b38282ff" + }, + "智慧树配置": { + "智慧树显示的话": "柚小青最可爱", + "等级": 4, + "高度": 76, + "上次护理时间": 1752050186, + "距离上一次除草时间": 1752050186, + "距离上一次杀虫时间": 1752050186, + "当前经验值": 278, + "最大经验值": 480, + "最大生命值": 106, + "当前生命值": 106 + } +} \ No newline at end of file diff --git a/Server/game_saves/2221023030.json b/Server/game_saves/2221023030.json new file mode 100644 index 0000000..0890d5f --- /dev/null +++ b/Server/game_saves/2221023030.json @@ -0,0 +1,4692 @@ +{ + "experience": 2212, + "level": 43, + "money": 5795, + "farm_name": "虚空农场", + "user_name": "2221023030", + "player_name": "虚空领主", + "user_password": "wangpeng666", + "last_login_time": "2025年06月09日12时38分55秒", + "total_login_time": "0时45分49秒", + "farm_lots": [ + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 7200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 7200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 7200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 6600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 10200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 5400, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 21600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 14400, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 7800, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 2400, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 2700, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3000, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 2400, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 2400, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "土豆", + "quality": "普通", + "count": 65 + }, + { + "name": "测试作物", + "quality": "普通", + "count": 12 + }, + { + "name": "小麦", + "quality": "普通", + "count": 80 + }, + { + "name": "大豆", + "quality": "优良", + "count": 18 + }, + { + "name": "番茄", + "quality": "优良", + "count": 14 + }, + { + "name": "稻谷", + "quality": "普通", + "count": 89 + }, + { + "name": "豌豆", + "quality": "稀有", + "count": 14 + }, + { + "name": "花椰菜", + "quality": "史诗", + "count": 1 + }, + { + "name": "柿子", + "quality": "稀有", + "count": 8 + }, + { + "name": "大白菜", + "quality": "优良", + "count": 13 + }, + { + "name": "山葵", + "quality": "稀有", + "count": 13 + }, + { + "name": "胡萝卜", + "quality": "优良", + "count": 74 + }, + { + "name": "洋葱", + "quality": "优良", + "count": 6 + }, + { + "name": "玉米", + "quality": "优良", + "count": 13 + }, + { + "name": "黄瓜", + "quality": "优良", + "count": 10 + }, + { + "name": "草莓", + "quality": "稀有", + "count": 1 + }, + { + "name": "人参", + "quality": "传奇", + "count": 7 + } + ], + "total_likes": 2, + "体力值": 0, + "体力上次刷新时间": "2025-06-09", + "体力上次恢复时间": 1749443832.1719506, + "new_player_gift_claimed": true, + "new_player_gift_time": "2025-06-09 12:39:35", + "lucky_draw_history": [ + { + "date": "2025-06-09 12:40:31", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 65 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 253 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 100 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1227 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 511 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 266 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-09 12:40:43", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 206 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 118 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 210 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 451 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "甘蔗", + "rarity": "传奇", + "amount": 1 + } + ] + }, + { + "date": "2025-06-09 12:40:50", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 370, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 113, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 152 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 624, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 207, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "豌豆", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 131 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 123 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 227, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 172, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 112 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 236, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 186, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-09 12:40:53", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 202 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 769, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 353, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "花椰菜", + "amount": 2, + "rarity": "史诗" + } + ] + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 1 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 300 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-09 12:40:55", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 57 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 356 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 533, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 216, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 331 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 217, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 189, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-09 12:40:56", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 592 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 168 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 236 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 197 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 85 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 1 + } + ] + }, + { + "date": "2025-06-09 12:40:56", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 213 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 650 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 306 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 294 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 376, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 132, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-09 12:40:57", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 117 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 125 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 184 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 253 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "橘子树", + "rarity": "传奇", + "amount": 1 + } + ] + }, + { + "date": "2025-06-09 12:40:57", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 332, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 133, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 597 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 533, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 242, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大白菜", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 193 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 135 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 124 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 338 + } + ] + }, + { + "date": "2025-06-09 12:40:57", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 80 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 306 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "富贵竹", + "rarity": "传奇", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 324 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 101 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 429 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 791 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 126 + } + ] + }, + { + "date": "2025-06-09 12:40:58", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 192 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 272 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 460, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 266, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大豆", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 70 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 237 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 235 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 111 + } + ] + }, + { + "date": "2025-06-09 12:40:58", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 225 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "芦笋", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 142 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 456 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 756, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 558, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "花椰菜", + "amount": 2, + "rarity": "史诗" + } + ] + } + ] + }, + { + "date": "2025-06-09 12:40:58", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 174 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 357, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 192, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 114 + }, + { + "type": "coins", + "name": "金币", + "rarity": "传奇", + "amount": 1982 + } + ] + }, + { + "date": "2025-06-09 12:40:58", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 133 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 211 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 211, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 168, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 133 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 293 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 219 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 157 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 116 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 503 + } + ] + }, + { + "date": "2025-06-09 12:40:59", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 133 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 85 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 291 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 211 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 82 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 216 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1100 + } + ] + }, + { + "date": "2025-06-09 12:40:59", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 597, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 257, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "番茄", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 986 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 411 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 240 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 248, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 128, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 442 + } + ] + }, + { + "date": "2025-06-09 12:40:59", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 213 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 122 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 264 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 148 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 136 + }, + { + "type": "seed", + "name": "哈密瓜", + "rarity": "传奇", + "amount": 1 + } + ] + }, + { + "date": "2025-06-09 12:40:59", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 999 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 762 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 397, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 200, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 412 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 469, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 223, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 1 + } + ] + }, + { + "date": "2025-06-09 12:40:59", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 216 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 144 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 410 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 146 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 274 + }, + { + "type": "seed", + "name": "富贵竹", + "rarity": "传奇", + "amount": 1 + } + ] + }, + { + "date": "2025-06-09 12:41:00", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 225, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 111, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 287 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 364 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 144 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 586 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 293, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 175, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 412, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 314, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大豆", + "amount": 2, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-09 12:41:00", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 76 + }, + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 219, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 104, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 641, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 279, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "洋葱", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 572 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 133 + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 168 + } + ] + }, + { + "date": "2025-06-09 12:41:00", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 2 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 220 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 215 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 65 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 106 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 477 + } + ] + }, + { + "date": "2025-06-09 12:41:00", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 91 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 174 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 899 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 186 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 297 + } + ] + }, + { + "date": "2025-06-09 12:41:00", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 129 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 246 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 443 + }, + { + "type": "exp", + "name": "经验", + "rarity": "传奇", + "amount": 948 + } + ] + }, + { + "date": "2025-06-09 12:41:01", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 591, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 344, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "玉米", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 210 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 129 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 3 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 64 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 314 + } + ] + }, + { + "date": "2025-06-09 12:41:01", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 83 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 298 + }, + { + "type": "seed", + "name": "草莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-09 12:41:01", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 126 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 369, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 135, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 265 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 148 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 255 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 610 + } + ] + }, + { + "date": "2025-06-09 12:41:01", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 215 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 330, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 150, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 108 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 133 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 637 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 245, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 199, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-09 12:41:02", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 58 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 846 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 849 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 109 + } + ] + }, + { + "date": "2025-06-09 12:41:02", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 321 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "茄子", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 51 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 803 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 787 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 67 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 119 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-09 12:41:02", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 145 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 71 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 438 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 92 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 162 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 133 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 951 + } + ] + }, + { + "date": "2025-06-09 12:41:02", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 203 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 149 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 62 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 93 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 91 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1355 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 545, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 318, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "玉米", + "amount": 3, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-09 12:41:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 112 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 230 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 223, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 168, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 263 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 116 + }, + { + "type": "coins", + "name": "金币", + "rarity": "传奇", + "amount": 2064 + } + ] + }, + { + "date": "2025-06-09 12:41:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 104 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 249 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 602 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 876 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 223, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 146, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + } + ] + }, + { + "date": "2025-06-09 12:41:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 235, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 155, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 99 + }, + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 455 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 630, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 331, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 240, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 119, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 225 + } + ] + }, + { + "date": "2025-06-09 12:41:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 112 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 108 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 120 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 589, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 220, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "玉米", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 136 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 568, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 343, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大豆", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-09 12:41:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 516 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 204 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 263 + }, + { + "type": "seed", + "name": "茄子", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 447 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 83 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 611 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 263 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 286 + } + ] + }, + { + "date": "2025-06-09 12:41:04", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 345 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 138 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 168 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 579 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 124 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 211 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 79 + }, + { + "type": "package", + "name": "传奇大礼包", + "rarity": "传奇", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1023, + "rarity": "传奇" + }, + { + "type": "exp", + "amount": 918, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "蕨菜", + "amount": 1, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "花椰菜", + "amount": 3, + "rarity": "传奇" + } + ] + } + ] + }, + { + "date": "2025-06-09 12:41:04", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 99 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 59 + }, + { + "type": "coins", + "name": "金币", + "rarity": "传奇", + "amount": 2103 + } + ] + }, + { + "date": "2025-06-09 12:41:04", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 232 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 894 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 252 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 247 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1212 + }, + { + "type": "seed", + "name": "蕨菜", + "rarity": "史诗", + "amount": 1 + } + ] + }, + { + "date": "2025-06-09 12:41:04", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 358 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 76 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 109 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 126 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 166 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 290 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "传奇大礼包", + "rarity": "传奇", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1243, + "rarity": "传奇" + }, + { + "type": "exp", + "amount": 912, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "茄子", + "amount": 1, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "柿子", + "amount": 3, + "rarity": "传奇" + } + ] + } + ] + }, + { + "date": "2025-06-09 12:41:05", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 110 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 181 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 114 + }, + { + "type": "seed", + "name": "南瓜", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 131 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 2 + } + ] + }, + { + "date": "2025-06-09 12:41:05", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 63 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 205 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 601, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 205, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大白菜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 143 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 233 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-09 12:41:05", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 110 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 249, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 145, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 147 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 987 + }, + { + "type": "coins", + "name": "金币", + "rarity": "传奇", + "amount": 1770 + }, + { + "type": "seed", + "name": "葡萄", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 191 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 107 + } + ] + }, + { + "date": "2025-06-09 12:41:05", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 240 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 244 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 192 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 65 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 165 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 125 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 244 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 559 + } + ] + }, + { + "date": "2025-06-09 12:41:05", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 736 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 262 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 543 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 487 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 155 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-09 12:41:06", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 146 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 174 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 206 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 918 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 79 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 100 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 184 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 291 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 102 + } + ] + }, + { + "date": "2025-06-09 12:41:06", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 158 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 252 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 94 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 455 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 546, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 201, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-09 13:09:16", + "type": "single", + "cost": 800, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 81 + } + ] + }, + { + "date": "2025-06-09 13:09:18", + "type": "single", + "cost": 800, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 622 + } + ] + }, + { + "date": "2025-06-09 13:09:24", + "type": "single", + "cost": 800, + "rewards": [ + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 3 + } + ] + }, + { + "date": "2025-06-09 13:09:25", + "type": "single", + "cost": 800, + "rewards": [ + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + } + ] + } + ], + "daily_check_in": { + "2025-06-09": { + "rewards": { + "coins": 412, + "exp": 101, + "seeds": [ + { + "name": "土豆", + "quantity": 2, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 3, + "quality": "普通" + }, + { + "name": "稻谷", + "quantity": 5, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749444292.3488579 + } + }, + "daily_likes": { + "2025-06-09": [ + "2427948832", + "3205788256" + ] + }, + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/game_saves/2253536500.json b/Server/game_saves/2253536500.json new file mode 100644 index 0000000..7d498ab --- /dev/null +++ b/Server/game_saves/2253536500.json @@ -0,0 +1,701 @@ +{ + "experience": 401, + "level": 14, + "money": 120, + "体力值": 0, + "体力上次刷新时间": "2025-06-10", + "体力上次恢复时间": 1749517835.7772367, + "farm_name": "天帝阁", + "user_name": "2253536500", + "player_name": "小朋友不哭", + "user_password": "a1567923", + "last_login_time": "2025年06月10日09时10分35秒", + "total_login_time": "1时4分20秒", + "farm_lots": [ + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "山葵", + "grow_time": 10808, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 10800, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "野草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 2, + "浇水时间": 1749394905.1548634 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "山葵", + "grow_time": 10824, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 10800, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "山葵", + "grow_time": 10820, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 10800, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "山葵", + "grow_time": 10808, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 10800, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "山葵", + "grow_time": 10800, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 10800, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "山葵", + "grow_time": 10836, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 10800, + "已浇水": false, + "已施肥": false, + "土地等级": 2 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "大豆", + "quality": "优良", + "count": 1 + } + ], + "new_player_gift_claimed": true, + "new_player_gift_time": "2025-06-08 21:54:15", + "lucky_draw_history": [ + { + "date": "2025-06-08 21:54:19", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 139 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 296, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 126, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 87 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 123 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 122 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1257 + } + ] + } + ], + "daily_check_in": { + "2025-06-08": { + "rewards": { + "coins": 241, + "exp": 95, + "seeds": [ + { + "name": "小麦", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749390877.5639822 + }, + "2025-06-09": { + "rewards": { + "coins": 303, + "exp": 61, + "seeds": [ + { + "name": "胡萝卜", + "quantity": 4, + "quality": "普通" + }, + { + "name": "小麦", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 1, + "timestamp": 1749398432.9146883 + } + }, + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/game_saves/2427948832.json b/Server/game_saves/2427948832.json new file mode 100644 index 0000000..6aecbde --- /dev/null +++ b/Server/game_saves/2427948832.json @@ -0,0 +1,7699 @@ +{ + "experience": 831, + "level": 116, + "money": 427076, + "farm_name": "神经病院", + "user_name": "2427948832", + "player_name": "唐大伟", + "user_password": "mylc205823", + "last_login_time": "2025年06月29日23时35分03秒", + "total_login_time": "5时45分12秒", + "farm_lots": [ + { + "crop_type": "杂交树2", + "grow_time": 25220, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25220, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4, + "浇水时间": 1749425231.633868 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25290, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25280, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25270, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25260, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25220, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25290, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25280, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25270, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25260, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25250, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25250, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25250, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25250, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25230, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25230, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25230, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25290, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25280, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25270, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25260, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25250, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25230, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25230, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25230, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25230, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25230, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25290, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25280, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25270, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25270, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25260, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25260, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25260, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25250, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25220, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25210, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + } + ], + "player_bag": [ + { + "name": "稻谷", + "quality": "普通", + "count": 51 + }, + { + "name": "黄瓜", + "quality": "优良", + "count": 15 + }, + { + "name": "土豆", + "quality": "优良", + "count": 123 + }, + { + "name": "草莓", + "quality": "稀有", + "count": 10 + }, + { + "name": "鱼腥草", + "quality": "稀有", + "count": 11 + }, + { + "name": "小麦", + "quality": "优良", + "count": 46 + }, + { + "name": "大白菜", + "quality": "优良", + "count": 15 + }, + { + "name": "花椰菜", + "quality": "稀有", + "count": 1 + }, + { + "name": "大豆", + "quality": "优良", + "count": 13 + }, + { + "name": "柿子", + "quality": "稀有", + "count": 4 + }, + { + "name": "山葵", + "quality": "优良", + "count": 29 + }, + { + "name": "蕨菜", + "quality": "史诗", + "count": 3 + }, + { + "name": "胡萝卜", + "quality": "普通", + "count": 15 + }, + { + "name": "蓝莓", + "quality": "稀有", + "count": 2 + }, + { + "name": "豌豆", + "quality": "优良", + "count": 3 + }, + { + "name": "南瓜", + "quality": "史诗", + "count": 1 + }, + { + "name": "树莓", + "quality": "史诗", + "count": 1 + }, + { + "name": "洋葱", + "quality": "优良", + "count": 1 + }, + { + "name": "杂交树2", + "quality": "传奇", + "count": 11 + }, + { + "name": "杂交树1", + "quality": "传奇", + "count": 1 + }, + { + "name": "玉米", + "count": 3, + "type": "seed", + "quality": "优良" + } + ], + "total_likes": 9, + "last_water_reset_date": "2025-06-04", + "体力值": 20, + "体力上次刷新时间": "2025-06-29", + "体力上次恢复时间": 1751208457.2466617, + "new_player_gift_claimed": true, + "new_player_gift_time": "2025-06-08 22:27:37", + "lucky_draw_history": [ + { + "date": "2025-06-08 22:27:43", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 260, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 129, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 296, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 188, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 339 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1433 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 236 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 494, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 233, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 321 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-08 22:32:41", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 352 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "草莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 102 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 119 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 60 + }, + { + "type": "seed", + "name": "鱼腥草", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 196 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 59 + } + ] + }, + { + "date": "2025-06-08 22:32:41", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 306 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "草莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 135 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 101 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-08 22:32:41", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 172 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 178 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 286 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 91 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 368 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 436 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 118 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 294, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 145, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:32:48", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 151 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 297 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 140 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 109 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 130 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 165 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 322, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 150, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "甜菜", + "rarity": "传奇", + "amount": 1 + } + ] + }, + { + "date": "2025-06-08 22:33:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 285 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 229 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 903 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 98 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 193 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 63 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 176 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 279, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 177, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:33:06", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "草莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 586 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 127 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "鱼腥草", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + } + ] + }, + { + "date": "2025-06-08 22:33:08", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 433 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 264 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 109 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 326 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 112 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 532, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 288, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 2, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:33:09", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 572 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 370 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 86 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 173 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 105 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 554 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 343, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 139, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 2, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:33:10", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 117 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 117 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 295, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 145, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 257 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 226 + }, + { + "type": "package", + "name": "传奇大礼包", + "rarity": "传奇", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1858, + "rarity": "传奇" + }, + { + "type": "exp", + "amount": 605, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "葡萄", + "amount": 1, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "蓝莓", + "amount": 2, + "rarity": "传奇" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:34:02", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 155 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 230 + }, + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 284 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 651, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 309, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 491, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 284, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 2, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:34:05", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 59 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 745, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 532, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "花椰菜", + "amount": 2, + "rarity": "史诗" + } + ] + }, + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 692, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 280, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "番茄", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1311 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 964 + } + ] + }, + { + "date": "2025-06-08 22:34:09", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 345, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 168, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 142 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 580 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 752 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 298, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 113, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 921 + } + ] + }, + { + "date": "2025-06-08 22:34:10", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 179 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 137 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 50 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 60 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "南瓜", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 113 + } + ] + }, + { + "date": "2025-06-08 22:34:11", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 78 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 159 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 237 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 572 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 320 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 206 + } + ] + }, + { + "date": "2025-06-08 22:34:13", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 452 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 402 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 202 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "蕨菜", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 82 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 205 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 234 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 2 + } + ] + }, + { + "date": "2025-06-08 22:34:17", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 257 + }, + { + "type": "seed", + "name": "向日葵", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 294, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 140, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 840, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 445, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "蓝莓", + "amount": 1, + "rarity": "史诗" + } + ] + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 381, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 123, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 186 + } + ] + }, + { + "date": "2025-06-08 22:34:20", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 738 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 90 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 92 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 100 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 285 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 146 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 839 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 566 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-08 22:34:24", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 139 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 334 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 358, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 129, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 143 + }, + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 471 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 418 + } + ] + }, + { + "date": "2025-06-08 22:34:27", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 133 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 530 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 341, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 180, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 811 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 136 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 267 + } + ] + }, + { + "date": "2025-06-08 22:34:28", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 172 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 71 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 70 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 247 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 295 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 216 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "传奇大礼包", + "rarity": "传奇", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1854, + "rarity": "传奇" + }, + { + "type": "exp", + "amount": 681, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "葡萄", + "amount": 1, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "花椰菜", + "amount": 3, + "rarity": "传奇" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:34:28", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 155 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 131 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 105 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 67 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 150 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 276, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 158, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 592 + }, + { + "type": "seed", + "name": "蕨菜", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 295 + } + ] + }, + { + "date": "2025-06-08 22:34:28", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 559 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 338, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 166, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "鱼腥草", + "rarity": "稀有", + "amount": 1 + } + ] + }, + { + "date": "2025-06-08 22:34:29", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 185 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "传奇大礼包", + "rarity": "传奇", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1421, + "rarity": "传奇" + }, + { + "type": "exp", + "amount": 947, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "南瓜", + "amount": 1, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "鱼腥草", + "amount": 2, + "rarity": "传奇" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:34:30", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 235 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 261, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 183, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 61 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 85 + } + ] + }, + { + "date": "2025-06-08 22:34:31", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 130 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 151 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 483 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 281 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 195 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 251 + }, + { + "type": "coins", + "name": "金币", + "rarity": "传奇", + "amount": 2103 + } + ] + }, + { + "date": "2025-06-08 22:34:31", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 147 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "鱼腥草", + "rarity": "稀有", + "amount": 2 + } + ] + }, + { + "date": "2025-06-08 22:34:31", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 251 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 163 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 555 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 710 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 323 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 293 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 564 + } + ] + }, + { + "date": "2025-06-08 22:34:32", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 894 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 155 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 158 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 110 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 583 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 187 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 69 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 339 + } + ] + }, + { + "date": "2025-06-08 22:34:32", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1027 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 741 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 3 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 614, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 309, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 253 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 300 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 104 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + } + ] + }, + { + "date": "2025-06-08 22:34:32", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 397 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 472, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 261, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "番茄", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 189 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 88 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 240 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 306 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 429 + } + ] + }, + { + "date": "2025-06-08 22:34:33", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 3 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 84 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 282 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 174 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 183 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 270 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 617, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 325, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大白菜", + "amount": 3, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:34:33", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 142 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 148 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 339 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 390 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 133 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 339, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 176, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 239 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 1 + } + ] + }, + { + "date": "2025-06-08 22:34:33", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 139 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 63 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 84 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 332, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 115, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 357 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 400 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 394 + } + ] + }, + { + "date": "2025-06-08 22:34:33", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 536 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 297 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 185 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 121 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 161 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "人参", + "rarity": "传奇", + "amount": 1 + } + ] + }, + { + "date": "2025-06-08 22:34:34", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 324, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 100, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 728 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1370 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 206, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 171, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1027 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 67 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 65 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 376 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 61 + } + ] + }, + { + "date": "2025-06-08 22:34:34", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 216 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 152 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 262 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 236 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 237 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 186 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 900 + } + ] + }, + { + "date": "2025-06-08 22:34:34", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 249 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 363 + }, + { + "type": "seed", + "name": "香草", + "rarity": "传奇", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 282 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 99 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 116 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 3 + } + ] + }, + { + "date": "2025-06-08 22:34:34", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 384, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 100, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 279 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 290 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 607 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 262 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 866 + } + ] + }, + { + "date": "2025-06-08 22:34:34", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 131 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 206 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 109 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 275 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "葡萄", + "rarity": "史诗", + "amount": 1 + } + ] + }, + { + "date": "2025-06-08 22:34:35", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 123 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 701 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 200 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 91 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 358, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 116, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 290 + } + ] + }, + { + "date": "2025-06-08 22:34:35", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 633 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 432 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 106 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 251 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 117 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + } + ] + }, + { + "date": "2025-06-08 22:34:35", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 208 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 339, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 183, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 310, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 143, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 560, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 228, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 303 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 101 + } + ] + }, + { + "date": "2025-06-08 22:34:35", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 237 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 397 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 144 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 136 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 79 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 527 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 908 + } + ] + }, + { + "date": "2025-06-08 22:34:36", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 80 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 757, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 390, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "树莓", + "amount": 1, + "rarity": "史诗" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 201 + } + ] + }, + { + "date": "2025-06-08 22:34:36", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 172 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 300 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 127 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 770, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 428, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "蓝莓", + "amount": 2, + "rarity": "史诗" + } + ] + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1147, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 597, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "蓝莓", + "amount": 2, + "rarity": "史诗" + } + ] + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 664, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 230, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 197 + } + ] + }, + { + "date": "2025-06-08 22:34:36", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 986 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 100 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 233 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 259 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 298, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 144, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 197 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 93 + } + ] + }, + { + "date": "2025-06-08 22:34:36", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 94 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 196 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 566 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 129 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 107 + }, + { + "type": "exp", + "name": "经验", + "rarity": "传奇", + "amount": 1010 + } + ] + }, + { + "date": "2025-06-08 22:34:37", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 80 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 179 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 182 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 153 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 171 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 927 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 91 + } + ] + }, + { + "date": "2025-06-08 22:34:37", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 538 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 158 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 3 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 135 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 750 + } + ] + }, + { + "date": "2025-06-08 22:34:37", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 277 + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 223, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 140, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 369, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 164, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 135 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 223, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 164, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 394, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 186, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 319 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + } + ] + }, + { + "date": "2025-06-08 22:34:37", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 261 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 432 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 215 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 254 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 334 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 551 + } + ] + }, + { + "date": "2025-06-08 22:34:38", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 656 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 139 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 171 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 656 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 207 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 210 + } + ] + }, + { + "date": "2025-06-08 22:34:38", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 154 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 246 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 135 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 343, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 115, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 169 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 128 + } + ] + }, + { + "date": "2025-06-08 22:34:38", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 217, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 198, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 133 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 130 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "橘子树", + "rarity": "传奇", + "amount": 1 + } + ] + }, + { + "date": "2025-06-08 22:34:38", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 111 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 200 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 121 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 182 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 217 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 296 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 108 + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 331 + } + ] + }, + { + "date": "2025-06-08 22:34:38", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 250 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 190 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 298 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 234 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 287, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 148, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 232 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 228, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 171, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "package", + "name": "传奇大礼包", + "rarity": "传奇", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1087, + "rarity": "传奇" + }, + { + "type": "exp", + "amount": 629, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "芦笋", + "amount": 1, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "草莓", + "amount": 3, + "rarity": "传奇" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:34:39", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 659, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 282, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "洋葱", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 143 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 237, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 184, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 472 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 620 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 262, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 177, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 91 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + } + ] + }, + { + "date": "2025-06-08 22:34:39", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 468 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 94 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 176 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 174 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 616 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 143 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + } + ] + }, + { + "date": "2025-06-08 22:34:39", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 357, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 191, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 274 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 607 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 277 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 578 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 194 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 871 + } + ] + }, + { + "date": "2025-06-08 22:34:40", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 330, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 166, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 867 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 176 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 128 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 142 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 293 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-08 22:34:40", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 172 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 86 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 146 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 82 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "富贵竹", + "rarity": "传奇", + "amount": 1 + } + ] + }, + { + "date": "2025-06-08 22:34:40", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 176 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 247 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 84 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 104 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 153 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 139 + }, + { + "type": "exp", + "name": "经验", + "rarity": "传奇", + "amount": 993 + } + ] + }, + { + "date": "2025-06-08 22:34:40", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 135 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 428 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 292 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 491 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 459 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 253 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 129 + } + ] + }, + { + "date": "2025-06-08 22:34:41", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1002 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 347, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 113, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 102 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 514 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 91 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 86 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-08 22:34:41", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 525 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 304 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 388, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 174, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 230, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 106, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-08 22:34:41", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 85 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 199 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 183 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 268 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 511 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 632 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 454 + } + ] + }, + { + "date": "2025-06-08 22:34:41", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 152 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 403 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 229, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 144, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 924 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 144 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 299 + } + ] + }, + { + "date": "2025-06-08 22:34:42", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 94 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 209, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 181, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 143 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 340 + }, + { + "type": "seed", + "name": "草莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 86 + } + ] + }, + { + "date": "2025-06-08 22:34:42", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 133 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 593 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 353 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "茄子", + "rarity": "史诗", + "amount": 1 + } + ] + }, + { + "date": "2025-06-08 22:34:42", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 65 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 55 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 101 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 469 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 567, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 202, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "洋葱", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 74 + } + ] + }, + { + "date": "2025-06-09 06:31:11", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 821 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 286 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 225 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 67 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 578 + } + ] + }, + { + "date": "2025-06-09 13:13:34", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 290 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 157 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 134 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 313 + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "蕨菜", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 299 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 359, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 128, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 223 + } + ] + }, + { + "date": "2025-06-10 09:12:27", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 61 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 273 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 169 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 294 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 673, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 291, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大豆", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 264 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 70 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 2 + } + ] + }, + { + "date": "2025-06-10 11:57:31", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 62 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 129 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 92 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 279 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 361 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 284 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 646, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 345, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大豆", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 171 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + } + ] + }, + { + "date": "2025-06-10 11:57:33", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 109 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 129 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 226 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 346, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 118, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 881 + } + ] + }, + { + "date": "2025-06-10 11:57:34", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "南瓜", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "seed", + "name": "鱼腥草", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 723 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 81 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 257 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 69 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 107 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-10 11:57:36", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 299 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 121 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 363, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 119, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 119 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 79 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 943, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 385, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "树莓", + "amount": 1, + "rarity": "史诗" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 359 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + } + ] + }, + { + "date": "2025-06-10 11:57:39", + "type": "five", + "cost": 3600, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 479 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 287 + } + ] + }, + { + "date": "2025-06-10 11:57:41", + "type": "five", + "cost": 3600, + "rewards": [ + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 552 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 467 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 253 + } + ] + }, + { + "date": "2025-06-10 11:57:45", + "type": "five", + "cost": 3600, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 329 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1444 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + } + ] + } + ], + "daily_check_in": { + "2025-06-08": { + "rewards": { + "coins": 374, + "exp": 85, + "seeds": [ + { + "name": "稻谷", + "quantity": 3, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749392892.9526005 + }, + "2025-06-09": { + "rewards": { + "coins": 210, + "exp": 59, + "seeds": [ + { + "name": "稻谷", + "quantity": 2, + "quality": "普通" + } + ] + }, + "consecutive_days": 1, + "timestamp": 1749398586.9145467 + }, + "2025-06-10": { + "rewards": { + "coins": 410, + "exp": 93, + "seeds": [ + { + "name": "稻谷", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 2, + "timestamp": 1749517875.6898322 + } + }, + "daily_likes": { + "2025-06-08": [ + "3205788256" + ], + "2025-06-09": [ + "3205788256" + ] + }, + "注册时间": "2025年05月21日15时00分00秒", + "online_gift": { + "2025-06-29": { + "start_time": 1751208457.2467475, + "claimed_gifts": { + "1分钟": 1751208925.8545015, + "3分钟": 1751208929.2945051 + }, + "total_online_time": 629.7599904537201, + "last_login_time": 1751208924.7341027 + } + }, + "作物仓库": [ + { + "name": "山葵", + "quality": "优良", + "count": 105 + } + ], + "道具背包": [ + { + "name": "铲子", + "count": 1 + } + ] +} \ No newline at end of file diff --git a/Server/game_saves/2634726358.json b/Server/game_saves/2634726358.json new file mode 100644 index 0000000..de7d991 --- /dev/null +++ b/Server/game_saves/2634726358.json @@ -0,0 +1,576 @@ +{ + "experience": 1485, + "level": 17, + "money": 106782, + "farm_name": "嘻嘻", + "user_name": "2634726358", + "player_name": "哈哈", + "user_password": "wxt20050712", + "last_login_time": "2025年05月25日19时22分59秒", + "total_login_time": "0时8分43秒", + "farm_lots": [ + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "番茄", + "quality": "优良", + "count": 4 + }, + { + "name": "测试作物", + "quality": "普通", + "count": 3 + } + ], + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/game_saves/2671387804.json b/Server/game_saves/2671387804.json new file mode 100644 index 0000000..eb253d4 --- /dev/null +++ b/Server/game_saves/2671387804.json @@ -0,0 +1,587 @@ +{ + "experience": 1678, + "level": 38, + "money": 537188, + "farm_name": "杨亮的家", + "user_name": "2671387804", + "player_name": "杨亮的主人", + "user_password": "woshiyangliang", + "last_login_time": "2025年05月25日21时45分45秒", + "total_login_time": "0时16分13秒", + "farm_lots": [ + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 4800, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 4800, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 4800, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 4800, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 4800, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "小麦", + "grow_time": 120, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 120, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "胡萝卜", + "quality": "普通", + "count": 5 + }, + { + "name": "土豆", + "quality": "普通", + "count": 2 + }, + { + "name": "稻谷", + "quality": "普通", + "count": 1 + }, + { + "name": "测试作物", + "quality": "普通", + "count": 105 + } + ], + "total_likes": 2, + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/game_saves/2809548669.json b/Server/game_saves/2809548669.json new file mode 100644 index 0000000..126e06d --- /dev/null +++ b/Server/game_saves/2809548669.json @@ -0,0 +1,565 @@ +{ + "experience": 0, + "level": 1, + "money": 1000, + "farm_name": "丿Dream丨天辰", + "user_name": "2809548669", + "player_name": "丿Dream丨天辰", + "user_password": "asd123456", + "last_login_time": "2025年05月25日22时06分21秒", + "total_login_time": "0时0分15秒", + "farm_lots": [ + { + "crop_type": "杂草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 3, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [], + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/game_saves/2968204579.json b/Server/game_saves/2968204579.json new file mode 100644 index 0000000..378b8a9 --- /dev/null +++ b/Server/game_saves/2968204579.json @@ -0,0 +1,656 @@ +{ + "experience": 12, + "level": 4, + "money": 2581, + "farm_name": "llsjjz的农村", + "user_name": "2968204579", + "player_name": "llsjjz", + "user_password": "llsjjz0920", + "last_login_time": "2025年06月13日18时57分26秒", + "total_login_time": "0时6分57秒", + "farm_lots": [ + { + "crop_type": "黄瓜", + "grow_time": 1205, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "黄瓜", + "grow_time": 1205, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 1200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "稻谷", + "quality": "普通", + "count": 5 + }, + { + "name": "土豆", + "quality": "普通", + "count": 2 + }, + { + "name": "胡萝卜", + "quality": "普通", + "count": 3 + } + ], + "daily_check_in": { + "2025-06-03": { + "rewards": { + "coins": 261, + "exp": 84, + "seeds": [ + { + "name": "稻谷", + "quantity": 4, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 4, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1748931868.513758 + }, + "2025-06-04": { + "rewards": { + "coins": 307, + "exp": 82, + "seeds": [ + { + "name": "小麦", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 1, + "timestamp": 1748992863.448056 + }, + "2025-06-13": { + "rewards": { + "coins": 303, + "exp": 90, + "seeds": [ + { + "name": "稻谷", + "quantity": 5, + "quality": "普通" + }, + { + "name": "土豆", + "quantity": 2, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749812264.8041327 + } + }, + "last_water_reset_date": "2025-06-04", + "total_likes": 1, + "daily_likes": { + "2025-06-04": [ + "2427948832" + ], + "2025-06-13": [ + "3961448694" + ] + }, + "体力值": 0, + "体力上次刷新时间": "2025-06-13", + "体力上次恢复时间": 1749812246.7495682, + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/game_saves/2973419538.json b/Server/game_saves/2973419538.json new file mode 100644 index 0000000..cf06347 --- /dev/null +++ b/Server/game_saves/2973419538.json @@ -0,0 +1,834 @@ +{ + "experience": 2683, + "level": 44, + "money": 13965, + "farm_name": "niuma", + "user_name": "2973419538", + "player_name": "niuma", + "user_password": "247896", + "last_login_time": "2025年06月19日09时27分49秒", + "total_login_time": "3时35分6秒", + "farm_lots": [ + { + "crop_type": "咖啡豆", + "grow_time": 2550, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 2500, + "已浇水": false, + "已施肥": false, + "土地等级": 4, + "浇水时间": 1749995957.60542 + }, + { + "crop_type": "葡萄", + "grow_time": 2730, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 2700, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "花椰菜", + "grow_time": 1410, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1320, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "草莓", + "grow_time": 1490, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1440, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "草莓", + "grow_time": 1480, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1440, + "已浇水": false, + "已施肥": false, + "土地等级": 4, + "浇水时间": 1750205958.482959 + }, + { + "crop_type": "胡萝卜", + "grow_time": 240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 4, + "浇水时间": 1750205961.723628 + }, + { + "crop_type": "胡萝卜", + "grow_time": 240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 4, + "浇水时间": 1750205962.6487157 + }, + { + "crop_type": "胡萝卜", + "grow_time": 240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "小麦", + "grow_time": 300, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "小麦", + "grow_time": 300, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "小麦", + "grow_time": 300, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "小麦", + "grow_time": 300, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "小麦", + "grow_time": 300, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 4, + "浇水时间": 1750205980.4600043 + }, + { + "crop_type": "番茄", + "grow_time": 750, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 720, + "已浇水": false, + "已施肥": false, + "土地等级": 4, + "浇水时间": 1750205981.6710074 + }, + { + "crop_type": "番茄", + "grow_time": 740, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 720, + "已浇水": false, + "已施肥": false, + "土地等级": 4, + "浇水时间": 1750205983.7389166 + }, + { + "crop_type": "玉米", + "grow_time": 930, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 900, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "玉米", + "grow_time": 910, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 900, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "玉米", + "grow_time": 990, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 900, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "甘蔗", + "grow_time": 5480, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5400, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "南瓜", + "grow_time": 3660, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 3600, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "南瓜", + "grow_time": 3640, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 3600, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "南瓜", + "grow_time": 3630, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 3600, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "枇杷", + "grow_time": 1110, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "藏羚羊草", + "quality": "优良", + "count": 15 + } + ], + "last_water_reset_date": "2025-06-04", + "lucky_draw_history": [ + { + "date": "2025-06-02 16:29:18", + "type": "five", + "cost": 3600, + "rewards": [ + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 81 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 277 + } + ] + } + ], + "daily_check_in": { + "2025-06-02": { + "rewards": { + "coins": 272, + "exp": 52, + "seeds": [ + { + "name": "稻谷", + "quantity": 4, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1748853203.6081908 + }, + "2025-06-03": { + "rewards": { + "coins": 476, + "exp": 88, + "seeds": [ + { + "name": "稻谷", + "quantity": 4, + "quality": "普通" + }, + { + "name": "土豆", + "quantity": 5, + "quality": "普通" + } + ] + }, + "consecutive_days": 1, + "timestamp": 1748953926.0300953 + }, + "2025-06-15": { + "rewards": { + "coins": 286, + "exp": 95, + "seeds": [ + { + "name": "稻谷", + "quantity": 5, + "quality": "普通" + }, + { + "name": "土豆", + "quantity": 3, + "quality": "普通" + }, + { + "name": "小麦", + "quantity": 5, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749995495.6988096 + }, + "2025-06-16": { + "rewards": { + "coins": 280, + "exp": 61, + "seeds": [ + { + "name": "小麦", + "quantity": 2, + "quality": "普通" + }, + { + "name": "稻谷", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 1, + "timestamp": 1750072610.4237332 + }, + "2025-06-17": { + "rewards": { + "coins": 389, + "exp": 81, + "seeds": [ + { + "name": "小麦", + "quantity": 4, + "quality": "普通" + }, + { + "name": "土豆", + "quantity": 5, + "quality": "普通" + } + ] + }, + "consecutive_days": 2, + "timestamp": 1750133937.5807126 + }, + "2025-06-18": { + "rewards": { + "coins": 322, + "exp": 86, + "seeds": [ + { + "name": "洋葱", + "quantity": 5, + "quality": "优良" + }, + { + "name": "大白菜", + "quantity": 2, + "quality": "优良" + }, + { + "name": "番茄", + "quantity": 5, + "quality": "优良" + } + ], + "bonus_coins": 100 + }, + "consecutive_days": 3, + "timestamp": 1750205250.308947 + }, + "2025-06-19": { + "rewards": { + "coins": 310, + "exp": 74, + "seeds": [ + { + "name": "黄瓜", + "quantity": 2, + "quality": "优良" + }, + { + "name": "番茄", + "quantity": 3, + "quality": "优良" + }, + { + "name": "大豆", + "quantity": 5, + "quality": "优良" + } + ], + "bonus_coins": 100 + }, + "consecutive_days": 4, + "timestamp": 1750292418.6072361 + } + }, + "daily_likes": { + "2025-06-02": [ + "3205788256" + ], + "2025-06-18": [ + "2427948832" + ] + }, + "total_likes": 5, + "体力值": 1, + "体力上次刷新时间": "2025-06-19", + "体力上次恢复时间": 1750296469.9053292, + "online_gift": { + "2025-06-15": { + "start_time": 1749995472.0264983, + "claimed_gifts": { + "1分钟": 1749995572.1688433 + } + }, + "2025-06-16": { + "start_time": 1750072499.7970674, + "claimed_gifts": { + "1分钟": 1750072614.6868362 + } + }, + "2025-06-17": { + "start_time": 1750133902.2940483, + "claimed_gifts": { + "1分钟": 1750134661.725101, + "10分钟": 1750134662.066096, + "30分钟": 1750135920.1275594, + "1小时": 1750137863.7507074, + "3小时": 1750149215.6342018 + } + }, + "2025-06-18": { + "start_time": 1750205162.440714, + "claimed_gifts": { + "1分钟": 1750205247.1951756, + "10分钟": 1750205870.246791, + "30分钟": 1750209505.8449547, + "1小时": 1750209506.154199, + "3小时": 1750221591.8159883 + } + }, + "2025-06-19": { + "start_time": 1750292394.4945037, + "claimed_gifts": { + "10分钟": 1750296507.1776748, + "1分钟": 1750296507.4928935, + "30分钟": 1750296507.787713, + "1小时": 1750296508.0431893 + } + } + }, + "new_player_gift_claimed": true, + "new_player_gift_time": "2025-06-17 13:40:30", + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/game_saves/3275498742.json b/Server/game_saves/3275498742.json new file mode 100644 index 0000000..f4345e9 --- /dev/null +++ b/Server/game_saves/3275498742.json @@ -0,0 +1,616 @@ +{ + "experience": 100, + "level": 5, + "money": 17548, + "体力值": 12, + "体力上次刷新时间": "2025-06-13", + "体力上次恢复时间": 1749789901.2122111, + "farm_name": "星露谷物语", + "user_name": "3275498742", + "player_name": "黎贤泽", + "user_password": "327549", + "last_login_time": "2025年06月13日12时45分01秒", + "total_login_time": "0时7分34秒", + "farm_lots": [ + { + "crop_type": "胡萝卜", + "grow_time": 241, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 608, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "小麦", + "grow_time": 303, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "胡萝卜", + "grow_time": 241, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "胡萝卜", + "quality": "普通", + "count": 1 + }, + { + "name": "小麦", + "quality": "普通", + "count": 1 + }, + { + "name": "稻谷", + "quality": "普通", + "count": 4 + } + ], + "daily_likes": { + "2025-06-09": [ + "2427948832" + ] + }, + "daily_check_in": { + "2025-06-09": { + "rewards": { + "coins": 294, + "exp": 83, + "seeds": [ + { + "name": "胡萝卜", + "quantity": 4, + "quality": "普通" + }, + { + "name": "小麦", + "quantity": 2, + "quality": "普通" + }, + { + "name": "稻谷", + "quantity": 5, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749438759.687467 + } + }, + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/game_saves/3346964708.json b/Server/game_saves/3346964708.json new file mode 100644 index 0000000..f8aec09 --- /dev/null +++ b/Server/game_saves/3346964708.json @@ -0,0 +1,828 @@ +{ + "experience": 505, + "level": 13, + "money": 23557, + "farm_name": "困困的鼠鼠", + "user_name": "3346964708", + "player_name": "OVO", + "user_password": "123456", + "last_login_time": "2025年06月29日22时48分26秒", + "total_login_time": "0时8分48秒", + "farm_lots": [ + { + "crop_type": "龙果", + "grow_time": 14409, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 14400, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "人参", + "grow_time": 7204, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 7200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "芦荟", + "grow_time": 6009, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 6000, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "金橘", + "grow_time": 10807, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 10800, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "富贵竹", + "grow_time": 6603, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 6600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "测试作物", + "quality": "普通", + "count": 3 + }, + { + "name": "小麦", + "quality": "普通", + "count": 3 + }, + { + "name": "稻谷", + "quality": "普通", + "count": 1 + }, + { + "name": "玉米", + "quality": "普通", + "count": 1 + }, + { + "name": "土豆", + "quality": "普通", + "count": 1 + }, + { + "name": "胡萝卜", + "quality": "普通", + "count": 1 + }, + { + "name": "草莓", + "quality": "优良", + "count": 1 + }, + { + "name": "番茄", + "quality": "优良", + "count": 1 + }, + { + "name": "大豆", + "quality": "优良", + "count": 1 + }, + { + "name": "蓝莓", + "quality": "稀有", + "count": 1 + }, + { + "name": "洋葱", + "quality": "稀有", + "count": 1 + }, + { + "name": "南瓜", + "quality": "稀有", + "count": 1 + }, + { + "name": "葡萄", + "quality": "稀有", + "count": 1 + }, + { + "name": "柿子", + "quality": "稀有", + "count": 1 + }, + { + "name": "芦笋", + "quality": "稀有", + "count": 1 + }, + { + "name": "花椰菜", + "quality": "稀有", + "count": 1 + }, + { + "name": "香草", + "quality": "史诗", + "count": 1 + }, + { + "name": "西瓜", + "quality": "史诗", + "count": 1 + }, + { + "name": "甜菜", + "quality": "史诗", + "count": 1 + }, + { + "name": "甘蔗", + "quality": "史诗", + "count": 1 + }, + { + "name": "松露", + "quality": "传奇", + "count": 1 + }, + { + "name": "杂草1", + "quality": "普通", + "count": 4 + }, + { + "name": "葫芦", + "quality": "稀有", + "count": 3 + }, + { + "name": "柠檬", + "quality": "优良", + "count": 3 + }, + { + "name": "辣椒", + "quality": "普通", + "count": 4 + }, + { + "name": "石榴", + "quality": "普通", + "count": 4 + }, + { + "name": "杂草2", + "quality": "优良", + "count": 3 + } + ], + "注册时间": "2025年05月21日15时00分00秒", + "体力值": 20, + "体力上次刷新时间": "2025-06-29", + "体力上次恢复时间": 1751208506.215262, + "online_gift": { + "2025-06-29": { + "start_time": 1751208506.215277, + "claimed_gifts": {}, + "total_online_time": 102.0 + } + }, + "作物仓库": [ + { + "name": "金橘", + "quality": "传奇", + "count": 14 + }, + { + "name": "小麦", + "quality": "普通", + "count": 3 + } + ], + "lucky_draw_history": [ + { + "date": "2025-06-29 22:49:58", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "杂草1", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 660, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 215, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "葫芦", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 510 + }, + { + "type": "seed", + "name": "柠檬", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 275 + }, + { + "type": "seed", + "name": "辣椒", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 149 + }, + { + "type": "seed", + "name": "石榴", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 317, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 185, + "rarity": "优良" + }, + { + "type": "seed", + "name": "杂草2", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Server/game_saves/3491961863.json b/Server/game_saves/3491961863.json new file mode 100644 index 0000000..f7c1455 --- /dev/null +++ b/Server/game_saves/3491961863.json @@ -0,0 +1,680 @@ +{ + "experience": 246, + "level": 6, + "money": 3963, + "体力值": 19, + "体力上次刷新时间": "2025-06-09", + "体力上次恢复时间": 1749424031.0808988, + "farm_name": "帅气大蟑螂", + "user_name": "3491961863", + "player_name": "帅气大蟑螂", + "user_password": "yyf198763", + "last_login_time": "2025年06月09日07时07分11秒", + "total_login_time": "0时3分43秒", + "farm_lots": [ + { + "crop_type": "野草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "龙果", + "quality": "传奇", + "count": 1 + }, + { + "name": "杂交树1", + "quality": "传奇", + "count": 1 + }, + { + "name": "杂交树2", + "quality": "传奇", + "count": 1 + }, + { + "name": "土豆", + "quality": "普通", + "count": 8 + }, + { + "name": "稻谷", + "quality": "普通", + "count": 2 + }, + { + "name": "山葵", + "quality": "优良", + "count": 2 + } + ], + "new_player_gift_claimed": true, + "new_player_gift_time": "2025-06-09 07:07:19", + "daily_check_in": { + "2025-06-09": { + "rewards": { + "coins": 336, + "exp": 61, + "seeds": [ + { + "name": "土豆", + "quantity": 5, + "quality": "普通" + }, + { + "name": "稻谷", + "quantity": 2, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749424078.6108391 + } + }, + "lucky_draw_history": [ + { + "date": "2025-06-09 07:10:23", + "type": "five", + "cost": 3600, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 72 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 482 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 164 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 2 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 213, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 131, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + } + ], + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/game_saves/3961448694.json b/Server/game_saves/3961448694.json new file mode 100644 index 0000000..c0d9bdd --- /dev/null +++ b/Server/game_saves/3961448694.json @@ -0,0 +1,9832 @@ +{ + "experience": 1945, + "level": 57, + "money": 70196222, + "体力值": 20, + "体力上次刷新时间": "2025-06-28", + "体力上次恢复时间": 1751115243.6199732, + "farm_name": "yuqi的农场", + "user_name": "3961448694", + "player_name": "yuqi", + "user_password": "x123456", + "last_login_time": "2025年06月28日20时54分03秒", + "total_login_time": "0时35分48秒", + "farm_lots": [ + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": true, + "is_planted": false, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "稻谷", + "grow_time": 600, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "柿子", + "grow_time": 1800, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1800, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "柿子", + "grow_time": 1800, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1800, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "土豆", + "grow_time": 480, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "胡萝卜", + "grow_time": 240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "胡萝卜", + "grow_time": 240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "小麦", + "grow_time": 300, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "胡萝卜", + "grow_time": 240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25230, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "甘蔗", + "grow_time": 5430, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5400, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "杂交树2", + "grow_time": 25220, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "胡萝卜", + "grow_time": 240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "土豆", + "grow_time": 480, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "洋葱", + "grow_time": 840, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 840, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "西瓜", + "grow_time": 4800, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 4800, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "胡萝卜", + "grow_time": 240, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 4 + }, + { + "crop_type": "小麦", + "grow_time": 309, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "胡萝卜", + "grow_time": 248, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 488, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 607, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "胡萝卜", + "grow_time": 247, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "树莓", + "grow_time": 2706, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 2700, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "胡萝卜", + "grow_time": 246, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 605, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "小麦", + "grow_time": 304, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 603, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "辣椒", + "grow_time": 653, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 650, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 482, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "胡萝卜", + "grow_time": 242, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 481, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "番茄", + "grow_time": 721, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 720, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 480, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "玉米", + "grow_time": 900, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 900, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "小麦", + "grow_time": 309, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "小麦", + "grow_time": 309, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "番茄", + "grow_time": 728, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 720, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "黄瓜", + "grow_time": 1208, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "大白菜", + "grow_time": 907, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 900, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 487, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂交树2", + "grow_time": 25206, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 606, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 605, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 604, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 484, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 483, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 483, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 482, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 482, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "西瓜", + "grow_time": 4801, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 4800, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "黄瓜", + "grow_time": 1201, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "芦笋", + "grow_time": 3000, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 3000, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "土豆", + "grow_time": 480, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 480, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "小麦", + "grow_time": 309, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 300, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "藏羚羊草", + "grow_time": 200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "胡萝卜", + "grow_time": 248, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 607, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "黄瓜", + "grow_time": 1207, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 606, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "稻谷", + "grow_time": 606, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "南瓜", + "grow_time": 3605, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 3600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "茄子", + "grow_time": 2405, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 2400, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "大豆", + "grow_time": 1084, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "向日葵", + "grow_time": 3604, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 3600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "番茄", + "grow_time": 723, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 720, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "胡萝卜", + "grow_time": 243, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 240, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "小麦", + "quality": "优良", + "count": 254 + }, + { + "name": "胡萝卜", + "quality": "优良", + "count": 296 + }, + { + "name": "稻谷", + "quality": "优良", + "count": 236 + }, + { + "name": "花椰菜", + "quality": "稀有", + "count": 7 + }, + { + "name": "土豆", + "quality": "普通", + "count": 221 + }, + { + "name": "黄瓜", + "quality": "优良", + "count": 58 + }, + { + "name": "柿子", + "quality": "史诗", + "count": 17 + }, + { + "name": "南瓜", + "quality": "史诗", + "count": 3 + }, + { + "name": "洋葱", + "quality": "稀有", + "count": 44 + }, + { + "name": "大豆", + "quality": "稀有", + "count": 41 + }, + { + "name": "蓝莓", + "quality": "稀有", + "count": 19 + }, + { + "name": "玉米", + "quality": "优良", + "count": 35 + }, + { + "name": "草莓", + "quality": "稀有", + "count": 6 + }, + { + "name": "大白菜", + "quality": "稀有", + "count": 23 + }, + { + "name": "茄子", + "quality": "史诗", + "count": 6 + }, + { + "name": "山葵", + "quality": "优良", + "count": 42 + }, + { + "name": "番茄", + "quality": "稀有", + "count": 38 + }, + { + "name": "蕨菜", + "quality": "史诗", + "count": 4 + }, + { + "name": "鱼腥草", + "quality": "稀有", + "count": 15 + }, + { + "name": "向日葵", + "quality": "史诗", + "count": 2 + }, + { + "name": "树莓", + "quality": "史诗", + "count": 16 + }, + { + "name": "芦笋", + "quality": "史诗", + "count": 4 + }, + { + "name": "葡萄", + "quality": "史诗", + "count": 4 + }, + { + "name": "豌豆", + "quality": "优良", + "count": 13 + }, + { + "name": "香草", + "quality": "传奇", + "count": 1 + }, + { + "name": "西瓜", + "quality": "传奇", + "count": 16 + }, + { + "name": "杨桃", + "quality": "优良", + "count": 4 + }, + { + "name": "辣椒", + "quality": "普通", + "count": 13 + }, + { + "name": "藏羚羊草", + "quality": "稀有", + "count": 3 + }, + { + "name": "生菜", + "quality": "优良", + "count": 4 + }, + { + "name": "野草1", + "quality": "普通", + "count": 6 + }, + { + "name": "摇钱树", + "quality": "稀有", + "count": 1 + }, + { + "name": "甘蔗", + "quality": "优良", + "count": 5 + }, + { + "name": "杂草2", + "quality": "优良", + "count": 2 + }, + { + "name": "石榴", + "quality": "普通", + "count": 7 + }, + { + "name": "柠檬", + "quality": "稀有", + "count": 2 + }, + { + "name": "野草2", + "quality": "普通", + "count": 3 + }, + { + "name": "葫芦", + "quality": "稀有", + "count": 3 + }, + { + "name": "甜菜", + "quality": "优良", + "count": 4 + }, + { + "name": "杂草1", + "quality": "优良", + "count": 3 + }, + { + "name": "枇杷", + "quality": "优良", + "count": 3 + }, + { + "name": "大蒜", + "quality": "普通", + "count": 4 + }, + { + "name": "梨树", + "quality": "史诗", + "count": 1 + }, + { + "name": "苹果树", + "quality": "传奇", + "count": 2 + }, + { + "name": "玫瑰花", + "count": 3 + }, + { + "name": "百合花", + "count": 1 + }, + { + "name": "哈密瓜", + "count": 7 + }, + { + "name": "龙果", + "count": 3 + }, + { + "name": "椰子", + "count": 2 + }, + { + "name": "山楂", + "count": 1 + }, + { + "name": "桃树", + "count": 2 + }, + { + "name": "郁金香", + "count": 1 + }, + { + "name": "金橘", + "count": 3 + }, + { + "name": "杂交树2", + "quality": "传奇", + "count": 111 + }, + { + "name": "松露", + "quality": "传奇", + "count": 1 + }, + { + "name": "杂交树1", + "quality": "传奇", + "count": 1 + }, + { + "name": "香蕉树", + "quality": "传奇", + "count": 1 + }, + { + "name": "藏红花", + "quality": "传奇", + "count": 2 + }, + { + "name": "人参", + "quality": "传奇", + "count": 3 + }, + { + "name": "芦荟", + "quality": "传奇", + "count": 3 + }, + { + "name": "冬虫夏草", + "quality": "传奇", + "count": 1 + }, + { + "name": "面包树", + "quality": "稀有", + "count": 1 + }, + { + "name": "富贵竹", + "quality": "传奇", + "count": 1 + } + ], + "new_player_gift_claimed": true, + "new_player_gift_time": "2025-06-09 10:22:18", + "lucky_draw_history": [ + { + "date": "2025-06-11 20:21:57", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 142 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 285, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 193, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 426 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 105 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 298 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-11 20:21:57", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 215 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 113 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 107 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 165 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 518, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 264, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大白菜", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 1 + } + ] + }, + { + "date": "2025-06-11 20:21:58", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 219 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 63 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 105 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 408 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 281 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 83 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 194 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "富贵竹", + "rarity": "传奇", + "amount": 1 + } + ] + }, + { + "date": "2025-06-11 20:21:58", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 571 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 101 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 127 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 200 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 539 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + } + ] + }, + { + "date": "2025-06-11 20:21:59", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 182 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 380 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 307, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 121, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 829 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 140 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1238 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 65 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 241 + } + ] + }, + { + "date": "2025-06-11 20:21:59", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 543 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 112 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 238, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 130, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 83 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 125 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 420, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 239, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大豆", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 386 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 3 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-11 20:22:00", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 233 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 759 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 96 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 503 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 104 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 95 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 128 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + } + ] + }, + { + "date": "2025-06-11 20:22:00", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 432 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 527 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 293 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 117 + }, + { + "type": "seed", + "name": "草莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 87 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 699 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 269 + } + ] + }, + { + "date": "2025-06-11 20:22:01", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 218 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 198 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 859 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 417 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 693, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 268, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大白菜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 312 + } + ] + }, + { + "date": "2025-06-11 20:22:28", + "type": "single", + "cost": 800, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 94 + } + ] + }, + { + "date": "2025-06-11 20:22:29", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 209 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 152 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 360, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 104, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 518 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 91 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 201 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 1 + } + ] + }, + { + "date": "2025-06-11 20:22:30", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 254 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 78 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 417 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 673, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 343, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "洋葱", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 261 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 412 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 695, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 210, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:22:31", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 203 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 219 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1347 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 54 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 110 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 206, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 147, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 140 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1028, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 439, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "柿子", + "amount": 2, + "rarity": "史诗" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:22:31", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 831 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 141 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 185 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 354, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 176, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 351 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-11 20:22:32", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 443 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 172 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 77 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 74 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 83 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 356, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 105, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 394 + } + ] + }, + { + "date": "2025-06-11 20:22:33", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 541, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 239, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "豌豆", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 266 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 131 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 147 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 515 + } + ] + }, + { + "date": "2025-06-11 20:22:33", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 225, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 188, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 500, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 216, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "豌豆", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 184 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 386, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 185, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 676 + } + ] + }, + { + "date": "2025-06-11 20:22:34", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 150 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 268 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 124 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 337 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 326 + } + ] + }, + { + "date": "2025-06-11 20:22:34", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 144 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 697, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 319, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "豌豆", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 108 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 235 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 738 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 461 + } + ] + }, + { + "date": "2025-06-11 20:22:35", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 282 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 313 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 507 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 774 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 58 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 62 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 223 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 290 + } + ] + }, + { + "date": "2025-06-11 20:22:35", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 313 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 289 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 149 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 88 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 612, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 269, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "洋葱", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 384 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 286 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 192 + } + ] + }, + { + "date": "2025-06-11 20:22:36", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 155 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 373, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 189, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 266, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 125, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 257, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 189, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "向日葵", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 284 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 102 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 123 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + } + ] + }, + { + "date": "2025-06-11 20:22:37", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 223 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 256 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 240, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 134, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 64 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 284 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 195 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "传奇", + "amount": 1112 + } + ] + }, + { + "date": "2025-06-11 20:22:37", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 275 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 102 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 89 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 297 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 380 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 297 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 283, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 197, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:22:46", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 116 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 291 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 138 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 457 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 711, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 419, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "花椰菜", + "amount": 1, + "rarity": "史诗" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 388, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 182, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 480 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + } + ] + }, + { + "date": "2025-06-11 20:22:47", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 120 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 280, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 192, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 106 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 403 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 221 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 204 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 310 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 151 + } + ] + }, + { + "date": "2025-06-11 20:22:47", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 3 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 89 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 529, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 253, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "玉米", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 215 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 669 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + } + ] + }, + { + "date": "2025-06-11 20:22:48", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 276 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 130 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 146 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 608 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 59 + } + ] + }, + { + "date": "2025-06-11 20:22:48", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 215 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 132 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 134 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 494 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 117 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1078 + } + ] + }, + { + "date": "2025-06-11 20:22:49", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 100 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 396 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 232 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 51 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 98 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 52 + }, + { + "type": "exp", + "name": "经验", + "rarity": "传奇", + "amount": 1064 + } + ] + }, + { + "date": "2025-06-11 20:22:50", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 290 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 185 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 66 + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 65 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 305, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 167, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 273, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 179, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 662 + } + ] + }, + { + "date": "2025-06-11 20:22:50", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 653, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 213, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "玉米", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 382 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 524, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 247, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 90 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 134 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 275 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 139 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 61 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 882 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 277, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 153, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:22:51", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 277 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 406 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 57 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 392 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 700, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 218, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-11 20:22:51", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 312 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 415 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 150 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 285 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 127 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + } + ] + }, + { + "date": "2025-06-11 20:22:52", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 232 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 127 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 137 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 1 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 763, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 501, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "鱼腥草", + "amount": 2, + "rarity": "史诗" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:22:53", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 61 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 449, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 225, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "传奇", + "amount": 858 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 53 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 556, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 236, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "玉米", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 2 + } + ] + }, + { + "date": "2025-06-11 20:22:53", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 121 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 545 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 150 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 434 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 261, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 148, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-11 20:22:54", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 582, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 295, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大豆", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 93 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 260 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 157 + } + ] + }, + { + "date": "2025-06-11 20:22:54", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 822 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 227 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 126 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 296 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 97 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 327, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 173, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:22:55", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 330 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 138 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 571 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 86 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 171 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 169 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 280, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 187, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "传奇", + "amount": 2070 + } + ] + }, + { + "date": "2025-06-11 20:22:56", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 277, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 116, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 64 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 659 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 130 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 293 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 204 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 193 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 194 + } + ] + }, + { + "date": "2025-06-11 20:22:56", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 252 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 586 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 719 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 187 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 2 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 978 + } + ] + }, + { + "date": "2025-06-11 20:22:57", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 546 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 325, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 119, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 236 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 104 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + } + ] + }, + { + "date": "2025-06-11 20:22:57", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 656, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 241, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1128 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 134 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 83 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 366 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 131 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 126 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 98 + } + ] + }, + { + "date": "2025-06-11 20:22:58", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 939 + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 3 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 657, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 220, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 125 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1063 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 595 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 310, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 176, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:22:58", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 775 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 67 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 402 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 104 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 65 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 138 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 86 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 266 + } + ] + }, + { + "date": "2025-06-11 20:22:59", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 270 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 339, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 128, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 162 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 695, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 317, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-11 20:23:00", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 133 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 132 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 128 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 201, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 184, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 257 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 136 + }, + { + "type": "seed", + "name": "芦笋", + "rarity": "史诗", + "amount": 1 + } + ] + }, + { + "date": "2025-06-11 20:23:00", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 342 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 286 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 174 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 66 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 533 + } + ] + }, + { + "date": "2025-06-11 20:23:01", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 513 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 86 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 230 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 60 + }, + { + "type": "seed", + "name": "蕨菜", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 88 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 273 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 149 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 271, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 109, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:23:01", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 139 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 704 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 286 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + } + ] + }, + { + "date": "2025-06-11 20:23:02", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 188 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 189 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 147 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 837 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 389 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 132 + } + ] + }, + { + "date": "2025-06-11 20:23:02", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 193 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 226, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 106, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 86 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 876 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 292 + }, + { + "type": "coins", + "name": "金币", + "rarity": "史诗", + "amount": 1243 + } + ] + }, + { + "date": "2025-06-11 20:23:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 247, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 100, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 283 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 72 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 158 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 118 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 116 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 463 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 294 + }, + { + "type": "seed", + "name": "葡萄", + "rarity": "史诗", + "amount": 1 + } + ] + }, + { + "date": "2025-06-11 20:23:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 443 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 516 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 56 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 110 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 152 + } + ] + }, + { + "date": "2025-06-11 20:23:04", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 659 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "鱼腥草", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 391, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 155, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 164 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 925 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 225 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 197 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 124 + } + ] + }, + { + "date": "2025-06-11 20:23:04", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 259 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 253, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 107, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 50 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 509 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "传奇", + "amount": 1182 + } + ] + }, + { + "date": "2025-06-11 20:23:05", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 84 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 374, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 139, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 214 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 69 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 58 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 190 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 83 + }, + { + "type": "seed", + "name": "芦笋", + "rarity": "史诗", + "amount": 1 + } + ] + }, + { + "date": "2025-06-11 20:26:02", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 129 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 238 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 178 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 99 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 151 + }, + { + "type": "exp", + "name": "经验", + "rarity": "传奇", + "amount": 943 + } + ] + }, + { + "date": "2025-06-11 20:26:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 94 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 525 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1057, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 501, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "蓝莓", + "amount": 2, + "rarity": "史诗" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 102 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 118 + } + ] + }, + { + "date": "2025-06-11 20:26:03", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 190 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 78 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 150 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 100 + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 2 + } + ] + }, + { + "date": "2025-06-11 20:26:04", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "蕨菜", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 110 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 635 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 708 + }, + { + "type": "seed", + "name": "大豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 518, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 231, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "豌豆", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 164 + } + ] + }, + { + "date": "2025-06-11 20:26:04", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 857 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 135 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 370 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 541 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 53 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 464 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 389, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 139, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 2, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:26:05", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 245 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 162 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 257, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 118, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 245, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 164, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 373, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 119, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "玉米", + "rarity": "优良", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 180 + }, + { + "type": "seed", + "name": "树莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + } + ] + }, + { + "date": "2025-06-11 20:26:06", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 185 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 295 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 97 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 122 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 229, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 143, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 172 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 89 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 147 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "传奇", + "amount": 1847 + } + ] + }, + { + "date": "2025-06-11 20:26:06", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 214, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 157, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "花椰菜", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 175 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 299 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 573, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 217, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大豆", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 442 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 156 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 441, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 305, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-11 20:26:07", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 172 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 271 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 175 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 313 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 233, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 132, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 102 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 647 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 136 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 292 + } + ] + }, + { + "date": "2025-06-15 16:40:40", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 131 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 542, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 281, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 147 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 385, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 162, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 419, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 217, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 256 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 254, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 194, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + } + ] + }, + { + "date": "2025-06-15 16:40:41", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 150 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 295 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 389 + }, + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 1 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 500, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 317, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "洋葱", + "amount": 2, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-15 16:40:42", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 145 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 139 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 273 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 83 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 58 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 833, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 531, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "花椰菜", + "amount": 1, + "rarity": "史诗" + } + ] + } + ] + }, + { + "date": "2025-06-15 16:40:43", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 59 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 681, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 283, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "传奇大礼包", + "rarity": "传奇", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1733, + "rarity": "传奇" + }, + { + "type": "exp", + "amount": 968, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "芦笋", + "amount": 1, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "鱼腥草", + "amount": 3, + "rarity": "传奇" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 390 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 179 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 120 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 274, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 139, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 2, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-15 16:40:43", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 412 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 590 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 205 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 353, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 171, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 289 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 240 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 506, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 306, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 111 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 230, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 125, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 3, + "rarity": "优良" + } + ] + } + ] + }, + { + "date": "2025-06-15 16:40:44", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 273 + }, + { + "type": "seed", + "name": "鱼腥草", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 74 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 228, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 172, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 105 + }, + { + "type": "seed", + "name": "蓝莓", + "rarity": "稀有", + "amount": 1 + } + ] + }, + { + "date": "2025-06-15 16:40:46", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 554 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 118 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 121 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 768 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 327 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 146 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 249 + } + ] + }, + { + "date": "2025-06-15 16:40:47", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 679, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 231, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 277 + }, + { + "type": "package", + "name": "传奇大礼包", + "rarity": "传奇", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1138, + "rarity": "传奇" + }, + { + "type": "exp", + "amount": 999, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "蕨菜", + "amount": 1, + "rarity": "传奇" + }, + { + "type": "seed", + "name": "蓝莓", + "amount": 2, + "rarity": "传奇" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 50 + }, + { + "type": "seed", + "name": "山葵", + "rarity": "优良", + "amount": 2 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 433, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 235, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "洋葱", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 255 + } + ] + }, + { + "date": "2025-06-15 16:40:47", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 639, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 200, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 77 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 147 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 430 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 499 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 1 + } + ] + }, + { + "date": "2025-06-15 16:40:48", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 63 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 170 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 144 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 227 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 958, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 518, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "柿子", + "amount": 1, + "rarity": "史诗" + } + ] + } + ] + }, + { + "date": "2025-06-15 16:40:48", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 107 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 266 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 278 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 246 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 232 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 295 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 306, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 114, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "向日葵", + "rarity": "史诗", + "amount": 1 + } + ] + }, + { + "date": "2025-06-15 16:40:49", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 388, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 193, + "rarity": "优良" + }, + { + "type": "seed", + "name": "胡萝卜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 302, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 199, + "rarity": "优良" + }, + { + "type": "seed", + "name": "小麦", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 956 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 107 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 411 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 140 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 212 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "柿子", + "rarity": "稀有", + "amount": 2 + } + ] + }, + { + "date": "2025-06-15 16:40:50", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 138 + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 2 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 370, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 188, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 143 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 81 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 295 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 457 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "葡萄", + "rarity": "史诗", + "amount": 1 + } + ] + }, + { + "date": "2025-06-15 16:40:50", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 315 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 188 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 301 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 217, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 194, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 539 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 164 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 206 + } + ] + }, + { + "date": "2025-06-15 16:40:51", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 68 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 476 + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 140 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-15 16:40:51", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "黄瓜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 83 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 672 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 412 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 272 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 91 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 152 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-15 16:40:52", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 331 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 455 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "茄子", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 189 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-15 16:40:52", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 196 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 158 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 363 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 129 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 144 + }, + { + "type": "seed", + "name": "草莓", + "rarity": "稀有", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 196 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-15 16:40:53", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 523 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 219 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 3 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 273 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 215 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 87 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 327, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 100, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 304 + } + ] + }, + { + "date": "2025-06-15 16:40:53", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 471, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 339, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大白菜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 346, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 167, + "rarity": "优良" + }, + { + "type": "seed", + "name": "稻谷", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 99 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 99 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 262 + }, + { + "type": "seed", + "name": "番茄", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 128 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + } + ] + }, + { + "date": "2025-06-15 16:40:54", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 135 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "洋葱", + "rarity": "优良", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 258 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 118 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 659, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 273, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "玉米", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 234 + } + ] + }, + { + "date": "2025-06-15 16:40:54", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 124 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 176 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 79 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 81 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 160 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 610 + }, + { + "type": "seed", + "name": "香草", + "rarity": "传奇", + "amount": 1 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 513, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 252, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "山葵", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "豌豆", + "rarity": "优良", + "amount": 1 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 482, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 236, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "洋葱", + "amount": 3, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-22 20:43:47", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 266 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 139 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 107 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "杨桃", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 132 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 656, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 228, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "黄瓜", + "amount": 3, + "rarity": "稀有" + } + ] + } + ] + }, + { + "date": "2025-06-22 20:43:48", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "辣椒", + "rarity": "普通", + "amount": 4 + }, + { + "type": "seed", + "name": "小麦", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 545, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 320, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "藏羚羊草", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "辣椒", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 136 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 199 + }, + { + "type": "seed", + "name": "大白菜", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 147 + } + ] + }, + { + "date": "2025-06-22 20:43:49", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 373, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 153, + "rarity": "优良" + }, + { + "type": "seed", + "name": "生菜", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "野草1", + "rarity": "普通", + "amount": 2 + }, + { + "type": "seed", + "name": "生菜", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 138 + }, + { + "type": "seed", + "name": "土豆", + "rarity": "普通", + "amount": 3 + }, + { + "type": "seed", + "name": "摇钱树", + "rarity": "稀有", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 410 + }, + { + "type": "seed", + "name": "甘蔗", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 76 + } + ] + }, + { + "date": "2025-06-22 20:43:49", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 611 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "甘蔗", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "稀有", + "amount": 495 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 484, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 324, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "豌豆", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 229 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 176 + }, + { + "type": "empty", + "name": "下次再来", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 295, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 100, + "rarity": "优良" + }, + { + "type": "seed", + "name": "杂草2", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "胡萝卜", + "rarity": "普通", + "amount": 2 + } + ] + }, + { + "date": "2025-06-22 20:43:50", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "石榴", + "rarity": "普通", + "amount": 4 + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 608, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 333, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "柠檬", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "seed", + "name": "稻谷", + "rarity": "普通", + "amount": 3 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 380 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "seed", + "name": "野草2", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 173 + }, + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 910 + }, + { + "type": "seed", + "name": "野草1", + "rarity": "普通", + "amount": 4 + } + ] + }, + { + "date": "2025-06-22 20:43:51", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 520, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 213, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "葫芦", + "amount": 2, + "rarity": "稀有" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 376 + }, + { + "type": "seed", + "name": "甜菜", + "rarity": "优良", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 69 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 169 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 288, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 106, + "rarity": "优良" + }, + { + "type": "seed", + "name": "土豆", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 313, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 197, + "rarity": "优良" + }, + { + "type": "seed", + "name": "杂草1", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 141 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 64 + } + ] + }, + { + "date": "2025-06-22 20:43:52", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 572 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 216, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 155, + "rarity": "优良" + }, + { + "type": "seed", + "name": "石榴", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "枇杷", + "rarity": "优良", + "amount": 3 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 130 + }, + { + "type": "empty", + "name": "再试一次", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 1102, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 439, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "草莓", + "amount": 2, + "rarity": "史诗" + } + ] + }, + { + "type": "seed", + "name": "辣椒", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 190 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 58 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 129 + } + ] + }, + { + "date": "2025-06-22 20:43:52", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 162 + }, + { + "type": "seed", + "name": "大蒜", + "rarity": "普通", + "amount": 4 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 263 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 90 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 64 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 122 + }, + { + "type": "seed", + "name": "甘蔗", + "rarity": "优良", + "amount": 2 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 183 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 290 + }, + { + "type": "coins", + "name": "金币", + "rarity": "传奇", + "amount": 1944 + } + ] + }, + { + "date": "2025-06-22 20:43:53", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "葫芦", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 162 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 152 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 72 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 96 + }, + { + "type": "seed", + "name": "杨桃", + "rarity": "优良", + "amount": 1 + }, + { + "type": "exp", + "name": "经验", + "rarity": "普通", + "amount": 78 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 280 + }, + { + "type": "seed", + "name": "野草2", + "rarity": "普通", + "amount": 4 + }, + { + "type": "exp", + "name": "经验", + "rarity": "史诗", + "amount": 694 + } + ] + }, + { + "date": "2025-06-22 20:43:54", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "seed", + "name": "辣椒", + "rarity": "普通", + "amount": 2 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 206 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 194 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 183 + }, + { + "type": "coins", + "name": "金币", + "rarity": "优良", + "amount": 466 + }, + { + "type": "seed", + "name": "芦笋", + "rarity": "史诗", + "amount": 1 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 250 + }, + { + "type": "seed", + "name": "杂草2", + "rarity": "普通", + "amount": 2 + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 292 + } + ] + }, + { + "date": "2025-06-22 20:43:54", + "type": "ten", + "cost": 6400, + "rewards": [ + { + "type": "coins", + "name": "金币", + "rarity": "稀有", + "amount": 621 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 252, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 139, + "rarity": "优良" + }, + { + "type": "seed", + "name": "辣椒", + "amount": 2, + "rarity": "优良" + } + ] + }, + { + "type": "seed", + "name": "藏羚羊草", + "rarity": "优良", + "amount": 3 + }, + { + "type": "package", + "name": "史诗礼包", + "rarity": "史诗", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 736, + "rarity": "史诗" + }, + { + "type": "exp", + "amount": 460, + "rarity": "史诗" + }, + { + "type": "seed", + "name": "梨树", + "amount": 1, + "rarity": "史诗" + } + ] + }, + { + "type": "coins", + "name": "金币", + "rarity": "普通", + "amount": 265 + }, + { + "type": "exp", + "name": "经验", + "rarity": "优良", + "amount": 297 + }, + { + "type": "package", + "name": "成长套餐", + "rarity": "优良", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 272, + "rarity": "优良" + }, + { + "type": "exp", + "amount": 153, + "rarity": "优良" + }, + { + "type": "seed", + "name": "大蒜", + "amount": 3, + "rarity": "优良" + } + ] + }, + { + "type": "package", + "name": "稀有礼包", + "rarity": "稀有", + "amount": 1, + "contents": [ + { + "type": "coins", + "amount": 538, + "rarity": "稀有" + }, + { + "type": "exp", + "amount": 262, + "rarity": "稀有" + }, + { + "type": "seed", + "name": "大白菜", + "amount": 3, + "rarity": "稀有" + } + ] + }, + { + "type": "empty", + "name": "继续努力", + "rarity": "空奖", + "amount": 0 + }, + { + "type": "empty", + "name": "谢谢惠顾", + "rarity": "空奖", + "amount": 0 + } + ] + } + ], + "daily_check_in": { + "2025-06-09": { + "rewards": { + "coins": 384, + "exp": 51, + "seeds": [ + { + "name": "小麦", + "quantity": 4, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 4, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749435767.827944 + }, + "2025-06-11": { + "rewards": { + "coins": 250, + "exp": 52, + "seeds": [ + { + "name": "土豆", + "quantity": 4, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 5, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749644148.2379906 + }, + "2025-06-15": { + "rewards": { + "coins": 430, + "exp": 72, + "seeds": [ + { + "name": "小麦", + "quantity": 4, + "quality": "普通" + }, + { + "name": "土豆", + "quantity": 2, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 2, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749976800.5474353 + } + }, + "daily_likes": { + "2025-06-11": [ + "2221023030" + ] + }, + "total_likes": 1, + "注册时间": "2025年05月21日15时00分00秒", + "online_gift": { + "2025-06-22": { + "start_time": 1750596217.493439, + "claimed_gifts": {}, + "total_online_time": 301.0 + }, + "2025-06-25": { + "start_time": 1750848576.5535095, + "claimed_gifts": {}, + "total_online_time": 137.0 + }, + "2025-06-26": { + "start_time": 1750908784.3606653, + "claimed_gifts": {}, + "total_online_time": 460.0 + }, + "2025-06-28": { + "start_time": 1751115243.6200392, + "claimed_gifts": {}, + "total_online_time": 301.0 + } + } +} \ No newline at end of file diff --git a/Server/game_saves/839151204.json b/Server/game_saves/839151204.json new file mode 100644 index 0000000..63fc4e2 --- /dev/null +++ b/Server/game_saves/839151204.json @@ -0,0 +1,628 @@ +{ + "experience": 237, + "level": 6, + "money": 17488, + "体力值": 12, + "体力上次刷新时间": "2025-06-08", + "体力上次恢复时间": 1749392811.2846332, + "farm_name": "joker xue", + "user_name": "839151204", + "player_name": "上上谦", + "user_password": "Asxx4522", + "last_login_time": "2025年06月08日22时26分51秒", + "total_login_time": "0时8分30秒", + "farm_lots": [ + { + "crop_type": "龙果", + "grow_time": 14409, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 14400, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂交树2", + "grow_time": 25200, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 25200, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂交树1", + "grow_time": 21600, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 21600, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "野草2", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "杂草1", + "grow_time": 5, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + } + ], + "player_bag": [ + { + "name": "稻谷", + "quality": "普通", + "count": 3 + }, + { + "name": "小麦", + "quality": "普通", + "count": 18 + }, + { + "name": "胡萝卜", + "quality": "普通", + "count": 3 + }, + { + "name": "玉米", + "quality": "优良", + "count": 1 + }, + { + "name": "向日葵", + "quality": "史诗", + "count": 1 + }, + { + "name": "蕨菜", + "quality": "史诗", + "count": 1 + } + ], + "new_player_gift_claimed": true, + "new_player_gift_time": "2025-06-08 22:27:14", + "daily_check_in": { + "2025-06-08": { + "rewards": { + "coins": 198, + "exp": 58, + "seeds": [ + { + "name": "稻谷", + "quantity": 5, + "quality": "普通" + }, + { + "name": "小麦", + "quantity": 5, + "quality": "普通" + }, + { + "name": "胡萝卜", + "quantity": 3, + "quality": "普通" + } + ] + }, + "consecutive_days": 0, + "timestamp": 1749392844.1468225 + } + }, + "注册时间": "2025年05月21日15时00分00秒" +} \ No newline at end of file diff --git a/Server/help.txt b/Server/systemctl/help.txt similarity index 100% rename from Server/help.txt rename to Server/systemctl/help.txt diff --git a/Server/mengyafarmserver.service b/Server/systemctl/mengyafarmserver.service similarity index 100% rename from Server/mengyafarmserver.service rename to Server/systemctl/mengyafarmserver.service diff --git a/Server/update_existing_players.py b/Server/update_existing_players.py deleted file mode 100644 index b5a1064..0000000 --- a/Server/update_existing_players.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -更新已存在玩家的注册时间为默认值的脚本 -用于确保所有已存在的玩家都有默认的注册时间,不会享受新玩家奖励 -""" - -import os -import json -import datetime - -def update_existing_players_register_time(): - """更新所有已存在玩家的注册时间为默认值""" - default_register_time = "2025年05月21日15时00分00秒" - game_saves_dir = "game_saves" - - if not os.path.exists(game_saves_dir): - print("游戏存档目录不存在:", game_saves_dir) - return - - updated_count = 0 - error_count = 0 - total_files = 0 - - # 获取所有玩家存档文件 - for filename in os.listdir(game_saves_dir): - if filename.endswith('.json'): - total_files += 1 - file_path = os.path.join(game_saves_dir, filename) - - try: - # 读取玩家数据 - with open(file_path, 'r', encoding='utf-8') as file: - player_data = json.load(file) - - # 检查是否需要更新注册时间 - current_register_time = player_data.get("注册时间", "") - - # 如果没有注册时间字段,或者不是默认值,则设置为默认值 - if not current_register_time: - player_data["注册时间"] = default_register_time - print(f"为玩家 {filename} 添加注册时间字段") - updated_count += 1 - elif current_register_time != default_register_time: - # 如果注册时间不是默认值,说明是新注册的玩家,保持不变 - print(f"玩家 {filename} 注册时间: {current_register_time} (保持不变)") - continue - else: - # 注册时间已经是默认值,无需更新 - print(f"玩家 {filename} 注册时间已是默认值") - continue - - # 保存更新后的数据 - with open(file_path, 'w', encoding='utf-8') as file: - json.dump(player_data, file, indent=2, ensure_ascii=False) - - except Exception as e: - print(f"处理文件 {filename} 时出错: {str(e)}") - error_count += 1 - - print(f"\n更新完成!") - print(f"总文件数: {total_files}") - print(f"已更新: {updated_count}") - print(f"错误: {error_count}") - print(f"默认注册时间: {default_register_time}") - -if __name__ == "__main__": - print("开始更新已存在玩家的注册时间...") - update_existing_players_register_time() - print("脚本执行完成!") \ No newline at end of file diff --git a/Temp/login.json b/Temp/login.json deleted file mode 100644 index 0f1e2ca..0000000 --- a/Temp/login.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "user_name":"", - "password":"" -} \ No newline at end of file diff --git a/assets/GUI/black_blue_bar.tres b/assets/GUI/black_blue_bar.tres deleted file mode 100644 index 5be905f..0000000 --- a/assets/GUI/black_blue_bar.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bh73krj8mnojv"] - -[ext_resource type="Texture2D" uid="uid://ifyhhbct23mk" path="res://assets/c70d56.png" id="1_1diq2"] - -[resource] -atlas = ExtResource("1_1diq2") -region = Rect2(544, 440, 400, 88) diff --git a/assets/GUI/green_bar.tres b/assets/GUI/green_bar.tres deleted file mode 100644 index 84c09c5..0000000 --- a/assets/GUI/green_bar.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://b7yavo67sf4v7"] - -[ext_resource type="Texture2D" uid="uid://ifyhhbct23mk" path="res://assets/c70d56.png" id="1_hjs0s"] - -[resource] -atlas = ExtResource("1_hjs0s") -region = Rect2(72, 304, 400, 88) diff --git a/assets/GUI/orange_bar.tres b/assets/GUI/orange_bar.tres deleted file mode 100644 index 7a8aefc..0000000 --- a/assets/GUI/orange_bar.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bc0rsd5x4pxhn"] - -[ext_resource type="Texture2D" uid="uid://ifyhhbct23mk" path="res://assets/c70d56.png" id="1_yvofj"] - -[resource] -atlas = ExtResource("1_yvofj") -region = Rect2(72, 40, 400, 88) diff --git a/assets/GUI/pink_bar.tres b/assets/GUI/pink_bar.tres deleted file mode 100644 index 464ecbd..0000000 --- a/assets/GUI/pink_bar.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://beckne13egl8u"] - -[ext_resource type="Texture2D" uid="uid://ifyhhbct23mk" path="res://assets/c70d56.png" id="1_sy611"] - -[resource] -atlas = ExtResource("1_sy611") -region = Rect2(544, 304, 400, 88) diff --git a/assets/GUI/red_bar.tres b/assets/GUI/red_bar.tres deleted file mode 100644 index dd5af1d..0000000 --- a/assets/GUI/red_bar.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://b73vvxnp31xs4"] - -[ext_resource type="Texture2D" uid="uid://ifyhhbct23mk" path="res://assets/c70d56.png" id="1_0raqg"] - -[resource] -atlas = ExtResource("1_0raqg") -region = Rect2(544, 40, 400, 88) diff --git a/assets/GUI/white_blue_bar.tres b/assets/GUI/white_blue_bar.tres deleted file mode 100644 index 03177f6..0000000 --- a/assets/GUI/white_blue_bar.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://d0h1s3wrx45a7"] - -[ext_resource type="Texture2D" uid="uid://ifyhhbct23mk" path="res://assets/c70d56.png" id="1_dylxy"] - -[resource] -atlas = ExtResource("1_dylxy") -region = Rect2(72, 440, 400, 88) diff --git a/assets/Test/c70d56.png b/assets/Test/c70d56.png deleted file mode 100644 index 5489392..0000000 Binary files a/assets/Test/c70d56.png and /dev/null differ diff --git a/assets/Test/c70d56.png.import b/assets/Test/c70d56.png.import deleted file mode 100644 index b0f756b..0000000 --- a/assets/Test/c70d56.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://ifyhhbct23mk" -path="res://.godot/imported/c70d56.png-7174862782a93933cd22e042d5be8ec8.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/Test/c70d56.png" -dest_files=["res://.godot/imported/c70d56.png-7174862782a93933cd22e042d5be8ec8.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/UI/441923.png b/assets/UI/441923.png deleted file mode 100644 index f5e9fa4..0000000 Binary files a/assets/UI/441923.png and /dev/null differ diff --git a/assets/UI/441923.png.import b/assets/UI/441923.png.import deleted file mode 100644 index f8c5633..0000000 --- a/assets/UI/441923.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dq7syuj3tce0q" -path="res://.godot/imported/441923.png-3f79c2537dd7b8eca473851fcc8bf87f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/UI/441923.png" -dest_files=["res://.godot/imported/441923.png-3f79c2537dd7b8eca473851fcc8bf87f.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/UI/QQ群.jpg b/assets/UI/QQ群.jpg deleted file mode 100644 index 613bf93..0000000 Binary files a/assets/UI/QQ群.jpg and /dev/null differ diff --git a/assets/UI/QQ群.jpg.import b/assets/UI/QQ群.jpg.import deleted file mode 100644 index 3588eac..0000000 --- a/assets/UI/QQ群.jpg.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cuuqapjbrsdy7" -path="res://.godot/imported/QQ群.jpg-9c7839635bdf98f3e20a35a794fdcff5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/UI/QQ群.jpg" -dest_files=["res://.godot/imported/QQ群.jpg-9c7839635bdf98f3e20a35a794fdcff5.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/UI/背景1.jpg b/assets/UI/背景1.jpg deleted file mode 100644 index e2d0fce..0000000 Binary files a/assets/UI/背景1.jpg and /dev/null differ diff --git a/assets/UI/背景1.jpg.import b/assets/UI/背景1.jpg.import deleted file mode 100644 index 3d6e84a..0000000 --- a/assets/UI/背景1.jpg.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bhdqkhf0y2ply" -path="res://.godot/imported/背景1.jpg-5621554ca251d088e7449217c1f7dfd5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/UI/背景1.jpg" -dest_files=["res://.godot/imported/背景1.jpg-5621554ca251d088e7449217c1f7dfd5.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/backgrounds/background1.jpg b/assets/backgrounds/background1.jpg deleted file mode 100644 index e2d0fce..0000000 Binary files a/assets/backgrounds/background1.jpg and /dev/null differ diff --git a/assets/backgrounds/background1.jpg.import b/assets/backgrounds/background1.jpg.import deleted file mode 100644 index dc02367..0000000 --- a/assets/backgrounds/background1.jpg.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cb83k0nvx8tox" -path="res://.godot/imported/background1.jpg-bd4fb4ce86484c99575f6e4e0f2f6a84.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/backgrounds/background1.jpg" -dest_files=["res://.godot/imported/background1.jpg-bd4fb4ce86484c99575f6e4e0f2f6a84.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/backgrounds/background2.jpg b/assets/backgrounds/background2.jpg deleted file mode 100644 index ebc0778..0000000 Binary files a/assets/backgrounds/background2.jpg and /dev/null differ diff --git a/assets/backgrounds/background2.jpg.import b/assets/backgrounds/background2.jpg.import deleted file mode 100644 index c96d82f..0000000 --- a/assets/backgrounds/background2.jpg.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cbjtfrej7iq3x" -path="res://.godot/imported/background2.jpg-8a5fb661801e5a0573006815988b1fcb.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/backgrounds/background2.jpg" -dest_files=["res://.godot/imported/background2.jpg-8a5fb661801e5a0573006815988b1fcb.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/logo_title/logo3.png b/assets/logo_title/logo3.png deleted file mode 100644 index 0066a15..0000000 Binary files a/assets/logo_title/logo3.png and /dev/null differ diff --git a/assets/logo_title/logo3.png.import b/assets/logo_title/logo3.png.import deleted file mode 100644 index d41fe00..0000000 --- a/assets/logo_title/logo3.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b4pla1twkbgk7" -path="res://.godot/imported/logo3.png-7ec909bf53098dd5a0196230b16b02fe.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/logo_title/logo3.png" -dest_files=["res://.godot/imported/logo3.png-7ec909bf53098dd5a0196230b16b02fe.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/作物/人参/0.webp b/assets/作物/人参/0.webp index 961b6ce..01fc443 100644 Binary files a/assets/作物/人参/0.webp and b/assets/作物/人参/0.webp differ diff --git a/assets/作物/人参/0.webp.import b/assets/作物/人参/0.webp.import index 1bc9ead..1237b86 100644 --- a/assets/作物/人参/0.webp.import +++ b/assets/作物/人参/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://duosec7bf82ms" +uid="uid://xyj4ro44cwj5" path="res://.godot/imported/0.webp-9339f1eb71d8e2d2c9d6eff2a61109e8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-9339f1eb71d8e2d2c9d6eff2a61109e8.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/人参/1.webp b/assets/作物/人参/1.webp deleted file mode 100644 index 53203bc..0000000 Binary files a/assets/作物/人参/1.webp and /dev/null differ diff --git a/assets/作物/人参/2.webp b/assets/作物/人参/2.webp deleted file mode 100644 index 7d73a52..0000000 Binary files a/assets/作物/人参/2.webp and /dev/null differ diff --git a/assets/作物/人参/成熟.webp b/assets/作物/人参/成熟.webp index 7d73a52..4511293 100644 Binary files a/assets/作物/人参/成熟.webp and b/assets/作物/人参/成熟.webp differ diff --git a/assets/作物/人参/成熟.webp.import b/assets/作物/人参/成熟.webp.import index 2dcaf9a..ef9290d 100644 --- a/assets/作物/人参/成熟.webp.import +++ b/assets/作物/人参/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://clyirnutul7bq" +uid="uid://0xv2vgg4b36d" path="res://.godot/imported/成熟.webp-ce9130a3e06cf6589c044054168410f9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-ce9130a3e06cf6589c044054168410f9. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/人参/收获物.webp b/assets/作物/人参/收获物.webp index cad572f..99a03a7 100644 Binary files a/assets/作物/人参/收获物.webp and b/assets/作物/人参/收获物.webp differ diff --git a/assets/作物/人参/收获物.webp.import b/assets/作物/人参/收获物.webp.import index 8b4f9c2..1a60e29 100644 --- a/assets/作物/人参/收获物.webp.import +++ b/assets/作物/人参/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cq6lojk4o7874" +uid="uid://bl48i2h22htyd" path="res://.godot/imported/收获物.webp-9ccbfd744d9be33e545ca51778406d54.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-9ccbfd744d9be33e545ca51778406d [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/仙人掌/0.webp b/assets/作物/仙人掌/0.webp index 91e06bd..12d5bf3 100644 Binary files a/assets/作物/仙人掌/0.webp and b/assets/作物/仙人掌/0.webp differ diff --git a/assets/作物/仙人掌/0.webp.import b/assets/作物/仙人掌/0.webp.import index d1756a7..d140f5c 100644 --- a/assets/作物/仙人掌/0.webp.import +++ b/assets/作物/仙人掌/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://nqjf05tbfwna" +uid="uid://btro2s0v3vjvc" path="res://.godot/imported/0.webp-a498150286b3ef11bcaf7062fb7c4c72.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-a498150286b3ef11bcaf7062fb7c4c72.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/仙人掌/1.webp b/assets/作物/仙人掌/1.webp index fea4143..547ec72 100644 Binary files a/assets/作物/仙人掌/1.webp and b/assets/作物/仙人掌/1.webp differ diff --git a/assets/作物/仙人掌/1.webp.import b/assets/作物/仙人掌/1.webp.import index 15e522b..b22434a 100644 --- a/assets/作物/仙人掌/1.webp.import +++ b/assets/作物/仙人掌/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://blo41i0nan4tb" +uid="uid://nh4rwteg18hf" path="res://.godot/imported/1.webp-eac2af28e41e5166de4e45fa1d9b023c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-eac2af28e41e5166de4e45fa1d9b023c.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/仙人掌/成熟.webp b/assets/作物/仙人掌/成熟.webp index e413079..9c0fd71 100644 Binary files a/assets/作物/仙人掌/成熟.webp and b/assets/作物/仙人掌/成熟.webp differ diff --git a/assets/作物/仙人掌/成熟.webp.import b/assets/作物/仙人掌/成熟.webp.import index ff62241..805f071 100644 --- a/assets/作物/仙人掌/成熟.webp.import +++ b/assets/作物/仙人掌/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bw6hipgwyv3k1" +uid="uid://60xfid4lt6i0" path="res://.godot/imported/成熟.webp-571b96d5740a8d9b84111df363e5ed74.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-571b96d5740a8d9b84111df363e5ed74. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/仙人掌/收获物.webp b/assets/作物/仙人掌/收获物.webp index 89f752f..09be0ec 100644 Binary files a/assets/作物/仙人掌/收获物.webp and b/assets/作物/仙人掌/收获物.webp differ diff --git a/assets/作物/仙人掌/收获物.webp.import b/assets/作物/仙人掌/收获物.webp.import index a73a152..d5a0b0b 100644 --- a/assets/作物/仙人掌/收获物.webp.import +++ b/assets/作物/仙人掌/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b35jvbxii87uc" +uid="uid://33ujtdwoxcvr" path="res://.godot/imported/收获物.webp-f5a0a563d7339ccd3c7a0634e5c0a5e2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-f5a0a563d7339ccd3c7a0634e5c0a5 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/冬虫夏草/0.webp b/assets/作物/冬虫夏草/0.webp index d198dc1..fe6b980 100644 Binary files a/assets/作物/冬虫夏草/0.webp and b/assets/作物/冬虫夏草/0.webp differ diff --git a/assets/作物/冬虫夏草/0.webp.import b/assets/作物/冬虫夏草/0.webp.import index af2fc45..29e81d8 100644 --- a/assets/作物/冬虫夏草/0.webp.import +++ b/assets/作物/冬虫夏草/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://pj3tv3cc2mlg" +uid="uid://dr3cu2f7agkgk" path="res://.godot/imported/0.webp-8e6372f99a77669bfdae2b147d801863.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-8e6372f99a77669bfdae2b147d801863.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/冬虫夏草/1.webp b/assets/作物/冬虫夏草/1.webp index 4807e7e..7474950 100644 Binary files a/assets/作物/冬虫夏草/1.webp and b/assets/作物/冬虫夏草/1.webp differ diff --git a/assets/作物/冬虫夏草/1.webp.import b/assets/作物/冬虫夏草/1.webp.import index ddeca6c..32392b9 100644 --- a/assets/作物/冬虫夏草/1.webp.import +++ b/assets/作物/冬虫夏草/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cvai23ne4ale2" +uid="uid://2tms3lcydcf7" path="res://.godot/imported/1.webp-1c762135840fee82b6f1524cf7b93c28.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-1c762135840fee82b6f1524cf7b93c28.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/冬虫夏草/2.webp b/assets/作物/冬虫夏草/2.webp index 7223f59..aa64eed 100644 Binary files a/assets/作物/冬虫夏草/2.webp and b/assets/作物/冬虫夏草/2.webp differ diff --git a/assets/作物/冬虫夏草/2.webp.import b/assets/作物/冬虫夏草/2.webp.import index 7b22014..e35af9e 100644 --- a/assets/作物/冬虫夏草/2.webp.import +++ b/assets/作物/冬虫夏草/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://8w2qoa8bt2cg" +uid="uid://dcn3nga3a3n6a" path="res://.godot/imported/2.webp-62669dec635d4d6139cbede94abc0c42.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-62669dec635d4d6139cbede94abc0c42.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/冬虫夏草/3.webp b/assets/作物/冬虫夏草/3.webp index c4afe4e..4019ac7 100644 Binary files a/assets/作物/冬虫夏草/3.webp and b/assets/作物/冬虫夏草/3.webp differ diff --git a/assets/作物/冬虫夏草/3.webp.import b/assets/作物/冬虫夏草/3.webp.import index 14eb737..bfd8f8d 100644 --- a/assets/作物/冬虫夏草/3.webp.import +++ b/assets/作物/冬虫夏草/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cwmf68nddnxty" +uid="uid://b22gpywqaykkq" path="res://.godot/imported/3.webp-ff0e46a5058a853b92c7d843b7523733.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-ff0e46a5058a853b92c7d843b7523733.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/冬虫夏草/4.webp b/assets/作物/冬虫夏草/4.webp deleted file mode 100644 index 5f1b5e7..0000000 Binary files a/assets/作物/冬虫夏草/4.webp and /dev/null differ diff --git a/assets/作物/冬虫夏草/成熟.webp b/assets/作物/冬虫夏草/成熟.webp index 5f1b5e7..4019ac7 100644 Binary files a/assets/作物/冬虫夏草/成熟.webp and b/assets/作物/冬虫夏草/成熟.webp differ diff --git a/assets/作物/冬虫夏草/成熟.webp.import b/assets/作物/冬虫夏草/成熟.webp.import index af8355c..23956ff 100644 --- a/assets/作物/冬虫夏草/成熟.webp.import +++ b/assets/作物/冬虫夏草/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://pep35cbpo2ln" +uid="uid://c15kv0b3e4wlr" path="res://.godot/imported/成熟.webp-5d9ed55294fc7780a9ccd1061a8db9e8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-5d9ed55294fc7780a9ccd1061a8db9e8. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/凤凰木/0.webp b/assets/作物/凤凰木/0.webp index b57539f..651af55 100644 Binary files a/assets/作物/凤凰木/0.webp and b/assets/作物/凤凰木/0.webp differ diff --git a/assets/作物/凤凰木/0.webp.import b/assets/作物/凤凰木/0.webp.import index d82f3d8..e769233 100644 --- a/assets/作物/凤凰木/0.webp.import +++ b/assets/作物/凤凰木/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cj46vssd21mc7" +uid="uid://b3yb6xi5dif75" path="res://.godot/imported/0.webp-47e115ab20922ebd97f4e5e7e5ca9983.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-47e115ab20922ebd97f4e5e7e5ca9983.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/凤凰木/1.webp b/assets/作物/凤凰木/1.webp index 51c1fd8..42141eb 100644 Binary files a/assets/作物/凤凰木/1.webp and b/assets/作物/凤凰木/1.webp differ diff --git a/assets/作物/凤凰木/1.webp.import b/assets/作物/凤凰木/1.webp.import index d497c7a..b8bbfd7 100644 --- a/assets/作物/凤凰木/1.webp.import +++ b/assets/作物/凤凰木/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dn6ta7j43luw2" +uid="uid://b7ko81p17vwd5" path="res://.godot/imported/1.webp-70a0c6dc2f51cf788ff580d54c9c392f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-70a0c6dc2f51cf788ff580d54c9c392f.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/凤凰木/成熟.webp b/assets/作物/凤凰木/成熟.webp index 912e123..862f85e 100644 Binary files a/assets/作物/凤凰木/成熟.webp and b/assets/作物/凤凰木/成熟.webp differ diff --git a/assets/作物/凤凰木/成熟.webp.import b/assets/作物/凤凰木/成熟.webp.import index 0b93dca..088f00a 100644 --- a/assets/作物/凤凰木/成熟.webp.import +++ b/assets/作物/凤凰木/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://6amw1gdbfn5o" +uid="uid://csqdk08d8e0vj" path="res://.godot/imported/成熟.webp-704239800c91eeb80ba72e09c3239472.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-704239800c91eeb80ba72e09c3239472. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/凤凰木/收获物.webp b/assets/作物/凤凰木/收获物.webp index a6e3de1..652428c 100644 Binary files a/assets/作物/凤凰木/收获物.webp and b/assets/作物/凤凰木/收获物.webp differ diff --git a/assets/作物/凤凰木/收获物.webp.import b/assets/作物/凤凰木/收获物.webp.import index 606a58f..2fa2d1e 100644 --- a/assets/作物/凤凰木/收获物.webp.import +++ b/assets/作物/凤凰木/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dee7f12h1hw2y" +uid="uid://bm182ocdn004x" path="res://.godot/imported/收获物.webp-e2fb798df4b68e31b5b9d36d256e4537.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-e2fb798df4b68e31b5b9d36d256e45 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/南瓜/0.webp b/assets/作物/南瓜/0.webp index adf9806..e5764ea 100644 Binary files a/assets/作物/南瓜/0.webp and b/assets/作物/南瓜/0.webp differ diff --git a/assets/作物/南瓜/0.webp.import b/assets/作物/南瓜/0.webp.import index 0d4ffb2..e6aa932 100644 --- a/assets/作物/南瓜/0.webp.import +++ b/assets/作物/南瓜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cda0yv72tjvv0" +uid="uid://bhynib53o87sv" path="res://.godot/imported/0.webp-d98890577b76bfa710d6a00e6916c0c7.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-d98890577b76bfa710d6a00e6916c0c7.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/南瓜/1.webp b/assets/作物/南瓜/1.webp index 4d164a0..a8bdab2 100644 Binary files a/assets/作物/南瓜/1.webp and b/assets/作物/南瓜/1.webp differ diff --git a/assets/作物/南瓜/1.webp.import b/assets/作物/南瓜/1.webp.import index 3324822..8ba9f9a 100644 --- a/assets/作物/南瓜/1.webp.import +++ b/assets/作物/南瓜/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dvfhamkdqwok7" +uid="uid://c42jmucs5udii" path="res://.godot/imported/1.webp-113308ca15b586eaeb0bbd809b6997c6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-113308ca15b586eaeb0bbd809b6997c6.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/南瓜/2.webp b/assets/作物/南瓜/2.webp index 104b5fd..7af93e8 100644 Binary files a/assets/作物/南瓜/2.webp and b/assets/作物/南瓜/2.webp differ diff --git a/assets/作物/南瓜/2.webp.import b/assets/作物/南瓜/2.webp.import index 20ae414..443478b 100644 --- a/assets/作物/南瓜/2.webp.import +++ b/assets/作物/南瓜/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b12ny7my36aiw" +uid="uid://dcmcy8sk6qeuj" path="res://.godot/imported/2.webp-c7dbb06c083db947520775472c40c124.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-c7dbb06c083db947520775472c40c124.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/南瓜/3.webp b/assets/作物/南瓜/3.webp index 3b62f5a..9926f08 100644 Binary files a/assets/作物/南瓜/3.webp and b/assets/作物/南瓜/3.webp differ diff --git a/assets/作物/南瓜/3.webp.import b/assets/作物/南瓜/3.webp.import index d5cee49..bfe0b72 100644 --- a/assets/作物/南瓜/3.webp.import +++ b/assets/作物/南瓜/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cuj5k8xwr8wg8" +uid="uid://b7qab01msl5l4" path="res://.godot/imported/3.webp-7bbb31894686faa8c9080a58b509200d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-7bbb31894686faa8c9080a58b509200d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/南瓜/4.webp b/assets/作物/南瓜/4.webp index 91b0035..1a84131 100644 Binary files a/assets/作物/南瓜/4.webp and b/assets/作物/南瓜/4.webp differ diff --git a/assets/作物/南瓜/4.webp.import b/assets/作物/南瓜/4.webp.import index f4ce265..74bbef0 100644 --- a/assets/作物/南瓜/4.webp.import +++ b/assets/作物/南瓜/4.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bgq22s3jbjuyp" +uid="uid://4jv3tgrxvhh4" path="res://.godot/imported/4.webp-2ff3e9a99295417c9228dd9680a1f6b7.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/4.webp-2ff3e9a99295417c9228dd9680a1f6b7.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/南瓜/5.webp b/assets/作物/南瓜/5.webp index 5c45a7c..89be333 100644 Binary files a/assets/作物/南瓜/5.webp and b/assets/作物/南瓜/5.webp differ diff --git a/assets/背景图片/背景20.webp.import b/assets/作物/南瓜/5.webp.import similarity index 66% rename from assets/背景图片/背景20.webp.import rename to assets/作物/南瓜/5.webp.import index 395df0a..aa4cefc 100644 --- a/assets/背景图片/背景20.webp.import +++ b/assets/作物/南瓜/5.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://kap41s5ns4sd" -path="res://.godot/imported/背景20.webp-08c8f849130e163e6c43861f2719029b.ctex" +uid="uid://mtmunwgy1x3g" +path="res://.godot/imported/5.webp-b4669136c90d86b318eeccdf517d92ac.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/背景图片/背景20.webp" -dest_files=["res://.godot/imported/背景20.webp-08c8f849130e163e6c43861f2719029b.ctex"] +source_file="res://assets/作物/南瓜/5.webp" +dest_files=["res://.godot/imported/5.webp-b4669136c90d86b318eeccdf517d92ac.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/南瓜/6.webp b/assets/作物/南瓜/6.webp index 50bb2ab..36035d2 100644 Binary files a/assets/作物/南瓜/6.webp and b/assets/作物/南瓜/6.webp differ diff --git a/assets/背景图片/背景11.webp.import b/assets/作物/南瓜/6.webp.import similarity index 66% rename from assets/背景图片/背景11.webp.import rename to assets/作物/南瓜/6.webp.import index 2fbe963..551df19 100644 --- a/assets/背景图片/背景11.webp.import +++ b/assets/作物/南瓜/6.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://yameqxwyplpg" -path="res://.godot/imported/背景11.webp-4c3419fae7c92f5051093e5f51d04f1e.ctex" +uid="uid://cbx5mogywxydc" +path="res://.godot/imported/6.webp-db79a4103f8dfe951cb77115f40d4993.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/背景图片/背景11.webp" -dest_files=["res://.godot/imported/背景11.webp-4c3419fae7c92f5051093e5f51d04f1e.ctex"] +source_file="res://assets/作物/南瓜/6.webp" +dest_files=["res://.godot/imported/6.webp-db79a4103f8dfe951cb77115f40d4993.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/南瓜/成熟.webp b/assets/作物/南瓜/成熟.webp index 50bb2ab..36035d2 100644 Binary files a/assets/作物/南瓜/成熟.webp and b/assets/作物/南瓜/成熟.webp differ diff --git a/assets/作物/南瓜/成熟.webp.import b/assets/作物/南瓜/成熟.webp.import index d5db358..46f28e8 100644 --- a/assets/作物/南瓜/成熟.webp.import +++ b/assets/作物/南瓜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://qctp46fg84pn" +uid="uid://b5fs5dojufrbf" path="res://.godot/imported/成熟.webp-80dd126437727579d2acaf9b13ad6530.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-80dd126437727579d2acaf9b13ad6530. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/南瓜/收获物.webp b/assets/作物/南瓜/收获物.webp index 1333c45..57c6e7c 100644 Binary files a/assets/作物/南瓜/收获物.webp and b/assets/作物/南瓜/收获物.webp differ diff --git a/assets/作物/南瓜/收获物.webp.import b/assets/作物/南瓜/收获物.webp.import index c33b8d0..98c5b65 100644 --- a/assets/作物/南瓜/收获物.webp.import +++ b/assets/作物/南瓜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c64al2w8qob3e" +uid="uid://b1twayp2n2tgw" path="res://.godot/imported/收获物.webp-760c7f62b2ac9aa0c8fa8513815e1afb.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-760c7f62b2ac9aa0c8fa8513815e1a [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/可可豆/0.webp b/assets/作物/可可豆/0.webp index c54f595..d9a86bb 100644 Binary files a/assets/作物/可可豆/0.webp and b/assets/作物/可可豆/0.webp differ diff --git a/assets/作物/可可豆/0.webp.import b/assets/作物/可可豆/0.webp.import index 973f31d..61d0666 100644 --- a/assets/作物/可可豆/0.webp.import +++ b/assets/作物/可可豆/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cq5sp4mhfgran" +uid="uid://m0k2go1722l3" path="res://.godot/imported/0.webp-821822db21f66aa9245299fab7cf906e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-821822db21f66aa9245299fab7cf906e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/可可豆/成熟.webp b/assets/作物/可可豆/成熟.webp index 7407011..9ca1a6d 100644 Binary files a/assets/作物/可可豆/成熟.webp and b/assets/作物/可可豆/成熟.webp differ diff --git a/assets/作物/可可豆/成熟.webp.import b/assets/作物/可可豆/成熟.webp.import index 8c1d8d9..cf70759 100644 --- a/assets/作物/可可豆/成熟.webp.import +++ b/assets/作物/可可豆/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bandxaiut18do" +uid="uid://b3fxhb7r78x2u" path="res://.godot/imported/成熟.webp-dad83f16e98754910ae39f797f4bc104.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-dad83f16e98754910ae39f797f4bc104. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/可可豆/收获物.webp b/assets/作物/可可豆/收获物.webp index 7b52cea..18e2134 100644 Binary files a/assets/作物/可可豆/收获物.webp and b/assets/作物/可可豆/收获物.webp differ diff --git a/assets/作物/可可豆/收获物.webp.import b/assets/作物/可可豆/收获物.webp.import index 84d835f..91f794a 100644 --- a/assets/作物/可可豆/收获物.webp.import +++ b/assets/作物/可可豆/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bopkaofm75ixu" +uid="uid://n281yd80r2l2" path="res://.godot/imported/收获物.webp-1abafc803996a04adbbd19db5cfa824b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-1abafc803996a04adbbd19db5cfa82 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/向日葵/0.webp b/assets/作物/向日葵/0.webp index ae62212..e9691f7 100644 Binary files a/assets/作物/向日葵/0.webp and b/assets/作物/向日葵/0.webp differ diff --git a/assets/作物/向日葵/0.webp.import b/assets/作物/向日葵/0.webp.import index 26dd7af..dd27dc4 100644 --- a/assets/作物/向日葵/0.webp.import +++ b/assets/作物/向日葵/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://buexi5vwacjau" +uid="uid://0fikmagdh5t0" path="res://.godot/imported/0.webp-e38fa2090339e41d8e2bc2f4382d5f43.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-e38fa2090339e41d8e2bc2f4382d5f43.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/向日葵/1.webp b/assets/作物/向日葵/1.webp index 1398510..39594ab 100644 Binary files a/assets/作物/向日葵/1.webp and b/assets/作物/向日葵/1.webp differ diff --git a/assets/作物/向日葵/1.webp.import b/assets/作物/向日葵/1.webp.import index a21110e..742ebc8 100644 --- a/assets/作物/向日葵/1.webp.import +++ b/assets/作物/向日葵/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bnpp8bfkxwae1" +uid="uid://cgvoioriuf7y0" path="res://.godot/imported/1.webp-39c5186218d6a70b3b214094d5602b76.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-39c5186218d6a70b3b214094d5602b76.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/向日葵/2.webp b/assets/作物/向日葵/2.webp index abf29a5..2c58450 100644 Binary files a/assets/作物/向日葵/2.webp and b/assets/作物/向日葵/2.webp differ diff --git a/assets/作物/向日葵/2.webp.import b/assets/作物/向日葵/2.webp.import index dacba74..1d6bfa6 100644 --- a/assets/作物/向日葵/2.webp.import +++ b/assets/作物/向日葵/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://db4acrecie1gi" +uid="uid://wqfspwqqpcwa" path="res://.godot/imported/2.webp-a4ac518035e8dc36ed57f415183fccf4.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-a4ac518035e8dc36ed57f415183fccf4.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/向日葵/3.webp b/assets/作物/向日葵/3.webp index 17563ee..4fd268c 100644 Binary files a/assets/作物/向日葵/3.webp and b/assets/作物/向日葵/3.webp differ diff --git a/assets/背景图片/背景21.webp.import b/assets/作物/向日葵/3.webp.import similarity index 66% rename from assets/背景图片/背景21.webp.import rename to assets/作物/向日葵/3.webp.import index d0503a7..41584d2 100644 --- a/assets/背景图片/背景21.webp.import +++ b/assets/作物/向日葵/3.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ygf8gpcc1fi1" -path="res://.godot/imported/背景21.webp-d3f09b5338c637ee813232dc04de0ced.ctex" +uid="uid://dgx5k5d626t0m" +path="res://.godot/imported/3.webp-6ae7e142e5a055810c45f1f78d5eae37.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/背景图片/背景21.webp" -dest_files=["res://.godot/imported/背景21.webp-d3f09b5338c637ee813232dc04de0ced.ctex"] +source_file="res://assets/作物/向日葵/3.webp" +dest_files=["res://.godot/imported/3.webp-6ae7e142e5a055810c45f1f78d5eae37.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/向日葵/4.webp b/assets/作物/向日葵/4.webp index daec958..ad0af59 100644 Binary files a/assets/作物/向日葵/4.webp and b/assets/作物/向日葵/4.webp differ diff --git a/assets/作物/向日葵/4.webp.import b/assets/作物/向日葵/4.webp.import new file mode 100644 index 0000000..6f48c96 --- /dev/null +++ b/assets/作物/向日葵/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwxs07er03ctf" +path="res://.godot/imported/4.webp-1a8ffb7b54f4d9ba58b74c9ee0de9653.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/向日葵/4.webp" +dest_files=["res://.godot/imported/4.webp-1a8ffb7b54f4d9ba58b74c9ee0de9653.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/向日葵/5.webp b/assets/作物/向日葵/5.webp index abf29a5..2c58450 100644 Binary files a/assets/作物/向日葵/5.webp and b/assets/作物/向日葵/5.webp differ diff --git a/assets/作物/向日葵/5.webp.import b/assets/作物/向日葵/5.webp.import new file mode 100644 index 0000000..11b5f2f --- /dev/null +++ b/assets/作物/向日葵/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxhe4pl7e2h4r" +path="res://.godot/imported/5.webp-629d3e808c68cd90f65c3666c8f1655c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/向日葵/5.webp" +dest_files=["res://.godot/imported/5.webp-629d3e808c68cd90f65c3666c8f1655c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/向日葵/6.webp b/assets/作物/向日葵/6.webp index 4ceefab..d8be2e5 100644 Binary files a/assets/作物/向日葵/6.webp and b/assets/作物/向日葵/6.webp differ diff --git a/assets/作物/向日葵/6.webp.import b/assets/作物/向日葵/6.webp.import new file mode 100644 index 0000000..ad177e4 --- /dev/null +++ b/assets/作物/向日葵/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cje7iwg3yy5k4" +path="res://.godot/imported/6.webp-ebd14968a65dd4e65469cac7fe6b6fcd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/向日葵/6.webp" +dest_files=["res://.godot/imported/6.webp-ebd14968a65dd4e65469cac7fe6b6fcd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/向日葵/成熟.webp b/assets/作物/向日葵/成熟.webp index 4ceefab..d8be2e5 100644 Binary files a/assets/作物/向日葵/成熟.webp and b/assets/作物/向日葵/成熟.webp differ diff --git a/assets/作物/向日葵/成熟.webp.import b/assets/作物/向日葵/成熟.webp.import index 32892e8..4699b97 100644 --- a/assets/作物/向日葵/成熟.webp.import +++ b/assets/作物/向日葵/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ba4657sg362wu" +uid="uid://bdfdrwhxp4ylw" path="res://.godot/imported/成熟.webp-d4b1f446d73b20501f7f77a5c4d5375e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-d4b1f446d73b20501f7f77a5c4d5375e. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/向日葵/收获物.webp b/assets/作物/向日葵/收获物.webp index 9b21f0d..44c2f7e 100644 Binary files a/assets/作物/向日葵/收获物.webp and b/assets/作物/向日葵/收获物.webp differ diff --git a/assets/作物/向日葵/收获物.webp.import b/assets/作物/向日葵/收获物.webp.import index f897172..5e8802c 100644 --- a/assets/作物/向日葵/收获物.webp.import +++ b/assets/作物/向日葵/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://citw56cysvdq2" +uid="uid://dcue156ace85q" path="res://.godot/imported/收获物.webp-8cfd537f5f7c79fc414a45032a819160.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-8cfd537f5f7c79fc414a45032a8191 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/咖啡豆/0.webp b/assets/作物/咖啡豆/0.webp index cde5031..8416cb8 100644 Binary files a/assets/作物/咖啡豆/0.webp and b/assets/作物/咖啡豆/0.webp differ diff --git a/assets/作物/咖啡豆/0.webp.import b/assets/作物/咖啡豆/0.webp.import index cdbb397..9426346 100644 --- a/assets/作物/咖啡豆/0.webp.import +++ b/assets/作物/咖啡豆/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dqqskov8ldme2" +uid="uid://bvcmrkatbo0f1" path="res://.godot/imported/0.webp-6d779ef7b648b1e546e4ba9e87048adb.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-6d779ef7b648b1e546e4ba9e87048adb.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/咖啡豆/1750005805792.webp b/assets/作物/咖啡豆/1750005805792.webp index f72200e..3d0fbad 100644 Binary files a/assets/作物/咖啡豆/1750005805792.webp and b/assets/作物/咖啡豆/1750005805792.webp differ diff --git a/assets/作物/咖啡豆/1750005805792.webp.import b/assets/作物/咖啡豆/1750005805792.webp.import index 77fa4b5..ae9dc53 100644 --- a/assets/作物/咖啡豆/1750005805792.webp.import +++ b/assets/作物/咖啡豆/1750005805792.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://s3umptyhkirx" +uid="uid://cbqxg446cqgh4" path="res://.godot/imported/1750005805792.webp-0fbddd6ffbcf5dbd0a339c41005bb0a8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750005805792.webp-0fbddd6ffbcf5dbd0a339c4100 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/咖啡豆/成熟.webp b/assets/作物/咖啡豆/成熟.webp index cde5031..8416cb8 100644 Binary files a/assets/作物/咖啡豆/成熟.webp and b/assets/作物/咖啡豆/成熟.webp differ diff --git a/assets/作物/咖啡豆/成熟.webp.import b/assets/作物/咖啡豆/成熟.webp.import index 9f24108..7acf596 100644 --- a/assets/作物/咖啡豆/成熟.webp.import +++ b/assets/作物/咖啡豆/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ek7v7b0c5pbh" +uid="uid://dgvk6h1pabnqa" path="res://.godot/imported/成熟.webp-0c20db991bcb8be24c9e185760a3880d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-0c20db991bcb8be24c9e185760a3880d. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/咖啡豆/收获物.webp b/assets/作物/咖啡豆/收获物.webp index a98d938..dd19ac7 100644 Binary files a/assets/作物/咖啡豆/收获物.webp and b/assets/作物/咖啡豆/收获物.webp differ diff --git a/assets/作物/咖啡豆/收获物.webp.import b/assets/作物/咖啡豆/收获物.webp.import index 6b1ca8a..70390ec 100644 --- a/assets/作物/咖啡豆/收获物.webp.import +++ b/assets/作物/咖啡豆/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bvju4h4kjojkf" +uid="uid://lfw4goh8fsuq" path="res://.godot/imported/收获物.webp-1846986b6230d04c92965c0dc6c8ec90.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-1846986b6230d04c92965c0dc6c8ec [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/哈密瓜/0.webp b/assets/作物/哈密瓜/0.webp index 1251624..801d1fe 100644 Binary files a/assets/作物/哈密瓜/0.webp and b/assets/作物/哈密瓜/0.webp differ diff --git a/assets/作物/哈密瓜/0.webp.import b/assets/作物/哈密瓜/0.webp.import index 983ed75..c8dfb87 100644 --- a/assets/作物/哈密瓜/0.webp.import +++ b/assets/作物/哈密瓜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://kyd3p1ot5bg5" +uid="uid://bilp5c3p4muup" path="res://.godot/imported/0.webp-44b93bb80f1aa61722d002b9c7673b92.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-44b93bb80f1aa61722d002b9c7673b92.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/哈密瓜/1.webp b/assets/作物/哈密瓜/1.webp index e3ecdd7..efe6327 100644 Binary files a/assets/作物/哈密瓜/1.webp and b/assets/作物/哈密瓜/1.webp differ diff --git a/assets/作物/哈密瓜/1.webp.import b/assets/作物/哈密瓜/1.webp.import index 5f774ef..b51eca1 100644 --- a/assets/作物/哈密瓜/1.webp.import +++ b/assets/作物/哈密瓜/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cesyv1rxe4eid" +uid="uid://b7rryqoraiind" path="res://.godot/imported/1.webp-1f85d6df04e3014f721dc62f7c60a301.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-1f85d6df04e3014f721dc62f7c60a301.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/哈密瓜/2.webp b/assets/作物/哈密瓜/2.webp index aa84c26..04f4a8c 100644 Binary files a/assets/作物/哈密瓜/2.webp and b/assets/作物/哈密瓜/2.webp differ diff --git a/assets/作物/哈密瓜/2.webp.import b/assets/作物/哈密瓜/2.webp.import index c8a7033..7ff0566 100644 --- a/assets/作物/哈密瓜/2.webp.import +++ b/assets/作物/哈密瓜/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bmsb1ovv1yxsd" +uid="uid://by01gwdqm2b25" path="res://.godot/imported/2.webp-241c30c524225cf14a34f44113ad84e5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-241c30c524225cf14a34f44113ad84e5.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/哈密瓜/3.webp b/assets/作物/哈密瓜/3.webp index aa84c26..04f4a8c 100644 Binary files a/assets/作物/哈密瓜/3.webp and b/assets/作物/哈密瓜/3.webp differ diff --git a/assets/作物/哈密瓜/3.webp.import b/assets/作物/哈密瓜/3.webp.import new file mode 100644 index 0000000..e0fac46 --- /dev/null +++ b/assets/作物/哈密瓜/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bu008ovnojylo" +path="res://.godot/imported/3.webp-ab74e732f37e98b4b6c6a539f37d5938.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/哈密瓜/3.webp" +dest_files=["res://.godot/imported/3.webp-ab74e732f37e98b4b6c6a539f37d5938.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/哈密瓜/4.webp b/assets/作物/哈密瓜/4.webp index a414781..a02a666 100644 Binary files a/assets/作物/哈密瓜/4.webp and b/assets/作物/哈密瓜/4.webp differ diff --git a/assets/作物/哈密瓜/4.webp.import b/assets/作物/哈密瓜/4.webp.import new file mode 100644 index 0000000..b2a2d08 --- /dev/null +++ b/assets/作物/哈密瓜/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dt4i02lidlyai" +path="res://.godot/imported/4.webp-be45b479791d0d9741a717db8ae610a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/哈密瓜/4.webp" +dest_files=["res://.godot/imported/4.webp-be45b479791d0d9741a717db8ae610a5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/哈密瓜/成熟.webp b/assets/作物/哈密瓜/成熟.webp index a414781..a02a666 100644 Binary files a/assets/作物/哈密瓜/成熟.webp and b/assets/作物/哈密瓜/成熟.webp differ diff --git a/assets/作物/哈密瓜/成熟.webp.import b/assets/作物/哈密瓜/成熟.webp.import index 908a8b0..e5ca4b4 100644 --- a/assets/作物/哈密瓜/成熟.webp.import +++ b/assets/作物/哈密瓜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ciihm31bswfh4" +uid="uid://cun1nmw26wx2u" path="res://.godot/imported/成熟.webp-c95fcc34af7dbd435772d6ceb97dea27.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-c95fcc34af7dbd435772d6ceb97dea27. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/哈密瓜/收获物.webp b/assets/作物/哈密瓜/收获物.webp index 6bd6bc4..89f0320 100644 Binary files a/assets/作物/哈密瓜/收获物.webp and b/assets/作物/哈密瓜/收获物.webp differ diff --git a/assets/作物/哈密瓜/收获物.webp.import b/assets/作物/哈密瓜/收获物.webp.import index 13a3c5d..5b6d406 100644 --- a/assets/作物/哈密瓜/收获物.webp.import +++ b/assets/作物/哈密瓜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c1u0535c7w3jh" +uid="uid://weyd8kluga0g" path="res://.godot/imported/收获物.webp-fdd55074641d43e62ba6a38133edf730.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-fdd55074641d43e62ba6a38133edf7 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/土豆/0.webp b/assets/作物/土豆/0.webp index acc0fe1..b5a63c4 100644 Binary files a/assets/作物/土豆/0.webp and b/assets/作物/土豆/0.webp differ diff --git a/assets/作物/土豆/0.webp.import b/assets/作物/土豆/0.webp.import index 436ff60..f6b7b16 100644 --- a/assets/作物/土豆/0.webp.import +++ b/assets/作物/土豆/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bc3r2j6k4o6vs" +uid="uid://cfbyrlvyw7mbm" path="res://.godot/imported/0.webp-7c561674e7465fe1b7ab139e2d86374d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-7c561674e7465fe1b7ab139e2d86374d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/土豆/1.webp b/assets/作物/土豆/1.webp index 618cca8..f086a1b 100644 Binary files a/assets/作物/土豆/1.webp and b/assets/作物/土豆/1.webp differ diff --git a/assets/作物/土豆/1.webp.import b/assets/作物/土豆/1.webp.import index 45fc7e6..5e6a091 100644 --- a/assets/作物/土豆/1.webp.import +++ b/assets/作物/土豆/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cacjbgt1kxikt" +uid="uid://bkn5q3cyenc0q" path="res://.godot/imported/1.webp-f108974cb62a8d6c198d2e6263bb15ff.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-f108974cb62a8d6c198d2e6263bb15ff.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/土豆/2.webp b/assets/作物/土豆/2.webp index b09076f..d10ab03 100644 Binary files a/assets/作物/土豆/2.webp and b/assets/作物/土豆/2.webp differ diff --git a/assets/作物/土豆/2.webp.import b/assets/作物/土豆/2.webp.import index 4f93b66..a6e1671 100644 --- a/assets/作物/土豆/2.webp.import +++ b/assets/作物/土豆/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cn1i07yhcsvst" +uid="uid://cc8nngcxoegi5" path="res://.godot/imported/2.webp-b2dbe3a142652718e988b49bbb0c0744.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-b2dbe3a142652718e988b49bbb0c0744.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/土豆/3.webp b/assets/作物/土豆/3.webp index 33d9517..7af2655 100644 Binary files a/assets/作物/土豆/3.webp and b/assets/作物/土豆/3.webp differ diff --git a/assets/作物/土豆/3.webp.import b/assets/作物/土豆/3.webp.import new file mode 100644 index 0000000..94c610c --- /dev/null +++ b/assets/作物/土豆/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dig8kyw0tib3" +path="res://.godot/imported/3.webp-6de1b21ec58d062462418ce57bdd5c72.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/土豆/3.webp" +dest_files=["res://.godot/imported/3.webp-6de1b21ec58d062462418ce57bdd5c72.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/土豆/4.webp b/assets/作物/土豆/4.webp index 7dd153e..21f14b3 100644 Binary files a/assets/作物/土豆/4.webp and b/assets/作物/土豆/4.webp differ diff --git a/assets/作物/土豆/4.webp.import b/assets/作物/土豆/4.webp.import new file mode 100644 index 0000000..9fe9e8e --- /dev/null +++ b/assets/作物/土豆/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dggi6qs6gb12o" +path="res://.godot/imported/4.webp-66834ef9070628091dbf121b28727f7e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/土豆/4.webp" +dest_files=["res://.godot/imported/4.webp-66834ef9070628091dbf121b28727f7e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/土豆/成熟.webp b/assets/作物/土豆/成熟.webp index 33d9517..7af2655 100644 Binary files a/assets/作物/土豆/成熟.webp and b/assets/作物/土豆/成熟.webp differ diff --git a/assets/作物/土豆/成熟.webp.import b/assets/作物/土豆/成熟.webp.import index 03f9318..022cc4d 100644 --- a/assets/作物/土豆/成熟.webp.import +++ b/assets/作物/土豆/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://but2sac7ib1e8" +uid="uid://c45q0ki1cbyd6" path="res://.godot/imported/成熟.webp-04f5ad36f7593742d6264077c5aacfca.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-04f5ad36f7593742d6264077c5aacfca. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/土豆/收获物.webp b/assets/作物/土豆/收获物.webp index 29f2ba0..656097c 100644 Binary files a/assets/作物/土豆/收获物.webp and b/assets/作物/土豆/收获物.webp differ diff --git a/assets/作物/土豆/收获物.webp.import b/assets/作物/土豆/收获物.webp.import index d4f4a6d..a89746b 100644 --- a/assets/作物/土豆/收获物.webp.import +++ b/assets/作物/土豆/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://nl40o5us8eni" +uid="uid://8iddqlwaerp6" path="res://.godot/imported/收获物.webp-abc502854f35441eac80f7bd75678904.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-abc502854f35441eac80f7bd756789 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大白菜/0.webp b/assets/作物/大白菜/0.webp index ca45f11..c643e81 100644 Binary files a/assets/作物/大白菜/0.webp and b/assets/作物/大白菜/0.webp differ diff --git a/assets/作物/大白菜/0.webp.import b/assets/作物/大白菜/0.webp.import index d59d89b..794937e 100644 --- a/assets/作物/大白菜/0.webp.import +++ b/assets/作物/大白菜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bk2lmfjphjtyh" +uid="uid://cla1xws7k5qbo" path="res://.godot/imported/0.webp-95fd204d42c46a44e3c4313652f5ffce.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-95fd204d42c46a44e3c4313652f5ffce.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大白菜/1.webp b/assets/作物/大白菜/1.webp index 19ab9d3..ce877a7 100644 Binary files a/assets/作物/大白菜/1.webp and b/assets/作物/大白菜/1.webp differ diff --git a/assets/作物/大白菜/1.webp.import b/assets/作物/大白菜/1.webp.import index 39314fb..0245509 100644 --- a/assets/作物/大白菜/1.webp.import +++ b/assets/作物/大白菜/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://brjbg8ag2jf3o" +uid="uid://cjep55ut8nu6n" path="res://.godot/imported/1.webp-8e159514a2d5265435603e4f8abadb12.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-8e159514a2d5265435603e4f8abadb12.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大白菜/1750050864343.webp b/assets/作物/大白菜/1750050864343.webp index 8b8d459..ae7bee4 100644 Binary files a/assets/作物/大白菜/1750050864343.webp and b/assets/作物/大白菜/1750050864343.webp differ diff --git a/assets/作物/大白菜/1750050864343.webp.import b/assets/作物/大白菜/1750050864343.webp.import index 4475b19..0f15d13 100644 --- a/assets/作物/大白菜/1750050864343.webp.import +++ b/assets/作物/大白菜/1750050864343.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cwty2j3qgfowb" +uid="uid://cdiejckm0f4ys" path="res://.godot/imported/1750050864343.webp-ac1da7418f30a5ffa29164ea2171da4e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750050864343.webp-ac1da7418f30a5ffa29164ea21 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大白菜/2.webp b/assets/作物/大白菜/2.webp index fa9ede5..90ea3a1 100644 Binary files a/assets/作物/大白菜/2.webp and b/assets/作物/大白菜/2.webp differ diff --git a/assets/作物/大白菜/2.webp.import b/assets/作物/大白菜/2.webp.import new file mode 100644 index 0000000..0ba573b --- /dev/null +++ b/assets/作物/大白菜/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgdshxgx8b4wj" +path="res://.godot/imported/2.webp-bdd6486dc35f8c758136190cc6fa9895.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/大白菜/2.webp" +dest_files=["res://.godot/imported/2.webp-bdd6486dc35f8c758136190cc6fa9895.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/大白菜/3.webp b/assets/作物/大白菜/3.webp index 19ab9d3..ce877a7 100644 Binary files a/assets/作物/大白菜/3.webp and b/assets/作物/大白菜/3.webp differ diff --git a/assets/作物/大白菜/3.webp.import b/assets/作物/大白菜/3.webp.import new file mode 100644 index 0000000..17ac604 --- /dev/null +++ b/assets/作物/大白菜/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://byfj5siyg0ssq" +path="res://.godot/imported/3.webp-0341056b78c9663bbec47bd90ab15925.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/大白菜/3.webp" +dest_files=["res://.godot/imported/3.webp-0341056b78c9663bbec47bd90ab15925.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/大白菜/4.webp b/assets/作物/大白菜/4.webp index a2bca0e..4f316b4 100644 Binary files a/assets/作物/大白菜/4.webp and b/assets/作物/大白菜/4.webp differ diff --git a/assets/作物/大白菜/4.webp.import b/assets/作物/大白菜/4.webp.import new file mode 100644 index 0000000..d854843 --- /dev/null +++ b/assets/作物/大白菜/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://crivb703m02k3" +path="res://.godot/imported/4.webp-db34186522e3a517d2a663996ed54306.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/大白菜/4.webp" +dest_files=["res://.godot/imported/4.webp-db34186522e3a517d2a663996ed54306.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/大白菜/5.webp b/assets/作物/大白菜/5.webp index 8a3f34b..eaf55b0 100644 Binary files a/assets/作物/大白菜/5.webp and b/assets/作物/大白菜/5.webp differ diff --git a/assets/作物/百合花/1750049775912.webp.import b/assets/作物/大白菜/5.webp.import similarity index 72% rename from assets/作物/百合花/1750049775912.webp.import rename to assets/作物/大白菜/5.webp.import index e6bb786..529cef2 100644 --- a/assets/作物/百合花/1750049775912.webp.import +++ b/assets/作物/大白菜/5.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b1dvnux7ms02b" -path="res://.godot/imported/1750049775912.webp-e82dab32238cadf58117cab6b07322f6.ctex" +uid="uid://dftmxuhrl4jqa" +path="res://.godot/imported/5.webp-e042176eac807c5018b0bb45c0903934.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/作物/百合花/1750049775912.webp" -dest_files=["res://.godot/imported/1750049775912.webp-e82dab32238cadf58117cab6b07322f6.ctex"] +source_file="res://assets/作物/大白菜/5.webp" +dest_files=["res://.godot/imported/5.webp-e042176eac807c5018b0bb45c0903934.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大白菜/成熟.webp b/assets/作物/大白菜/成熟.webp index 8a3f34b..eaf55b0 100644 Binary files a/assets/作物/大白菜/成熟.webp and b/assets/作物/大白菜/成熟.webp differ diff --git a/assets/作物/大白菜/成熟.webp.import b/assets/作物/大白菜/成熟.webp.import index b56ad52..7dd14f7 100644 --- a/assets/作物/大白菜/成熟.webp.import +++ b/assets/作物/大白菜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cuvuepumw7lii" +uid="uid://dwcte25rv3ahj" path="res://.godot/imported/成熟.webp-42078b8aae8fa96f1e93a0b3e8da7df3.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-42078b8aae8fa96f1e93a0b3e8da7df3. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大白菜/收获物.webp b/assets/作物/大白菜/收获物.webp index be95506..ffcc1df 100644 Binary files a/assets/作物/大白菜/收获物.webp and b/assets/作物/大白菜/收获物.webp differ diff --git a/assets/作物/大白菜/收获物.webp.import b/assets/作物/大白菜/收获物.webp.import index 9f414bf..fd22003 100644 --- a/assets/作物/大白菜/收获物.webp.import +++ b/assets/作物/大白菜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://df1ds3tx0m0bv" +uid="uid://uqu12i7lb6j" path="res://.godot/imported/收获物.webp-56c315f71b209c18cc5ddb8d85017075.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-56c315f71b209c18cc5ddb8d850170 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大蒜/0.webp b/assets/作物/大蒜/0.webp index 041af1d..b02e84e 100644 Binary files a/assets/作物/大蒜/0.webp and b/assets/作物/大蒜/0.webp differ diff --git a/assets/作物/大蒜/0.webp.import b/assets/作物/大蒜/0.webp.import index d2fea5c..6376a0b 100644 --- a/assets/作物/大蒜/0.webp.import +++ b/assets/作物/大蒜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://chynyasge8grq" +uid="uid://8ncjpot0587o" path="res://.godot/imported/0.webp-667c2ea589e0f98450ef6af17a7a5f5b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-667c2ea589e0f98450ef6af17a7a5f5b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大蒜/成熟.webp b/assets/作物/大蒜/成熟.webp index dcb028f..3dfb03f 100644 Binary files a/assets/作物/大蒜/成熟.webp and b/assets/作物/大蒜/成熟.webp differ diff --git a/assets/作物/大蒜/成熟.webp.import b/assets/作物/大蒜/成熟.webp.import index 2542175..4932cba 100644 --- a/assets/作物/大蒜/成熟.webp.import +++ b/assets/作物/大蒜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://doenu6e7j7aju" +uid="uid://dfumn8aoa4ab1" path="res://.godot/imported/成熟.webp-2f446eb21f1d03acc83ecc3ebfa285b5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-2f446eb21f1d03acc83ecc3ebfa285b5. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大蒜/收获物.webp b/assets/作物/大蒜/收获物.webp index e2d4766..f319699 100644 Binary files a/assets/作物/大蒜/收获物.webp and b/assets/作物/大蒜/收获物.webp differ diff --git a/assets/作物/大蒜/收获物.webp.import b/assets/作物/大蒜/收获物.webp.import index 88e462c..399b813 100644 --- a/assets/作物/大蒜/收获物.webp.import +++ b/assets/作物/大蒜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cxe1awtkp0ht7" +uid="uid://cjrn1m811n6ny" path="res://.godot/imported/收获物.webp-bce0014dcd1bc09ca05bb8894f727e05.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-bce0014dcd1bc09ca05bb8894f727e [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大豆/0.webp b/assets/作物/大豆/0.webp index 03243c7..78c88b8 100644 Binary files a/assets/作物/大豆/0.webp and b/assets/作物/大豆/0.webp differ diff --git a/assets/作物/大豆/0.webp.import b/assets/作物/大豆/0.webp.import index b56417f..19fa73d 100644 --- a/assets/作物/大豆/0.webp.import +++ b/assets/作物/大豆/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://uj7k2n7n6vr3" +uid="uid://d0j0eifp0iemu" path="res://.godot/imported/0.webp-d2cef997bf4d87930aa951d63b7c2706.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-d2cef997bf4d87930aa951d63b7c2706.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大豆/1.webp b/assets/作物/大豆/1.webp index 38a0a9a..2f11bea 100644 Binary files a/assets/作物/大豆/1.webp and b/assets/作物/大豆/1.webp differ diff --git a/assets/作物/大豆/1.webp.import b/assets/作物/大豆/1.webp.import index ac951fd..c732a71 100644 --- a/assets/作物/大豆/1.webp.import +++ b/assets/作物/大豆/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://2mjg7nfh8dsy" +uid="uid://cofjstbs0r8h0" path="res://.godot/imported/1.webp-902de037c7b6f80519e6d76f562055ed.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-902de037c7b6f80519e6d76f562055ed.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大豆/2.webp b/assets/作物/大豆/2.webp index 38a0a9a..2f11bea 100644 Binary files a/assets/作物/大豆/2.webp and b/assets/作物/大豆/2.webp differ diff --git a/assets/作物/大豆/2.webp.import b/assets/作物/大豆/2.webp.import new file mode 100644 index 0000000..acad4c4 --- /dev/null +++ b/assets/作物/大豆/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0ti1lqtbress" +path="res://.godot/imported/2.webp-019081ecbc5fe5a76dd6093516a568f2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/大豆/2.webp" +dest_files=["res://.godot/imported/2.webp-019081ecbc5fe5a76dd6093516a568f2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/大豆/3.webp b/assets/作物/大豆/3.webp index 1cdb0f7..ab1a969 100644 Binary files a/assets/作物/大豆/3.webp and b/assets/作物/大豆/3.webp differ diff --git a/assets/作物/大豆/3.webp.import b/assets/作物/大豆/3.webp.import new file mode 100644 index 0000000..0a23f99 --- /dev/null +++ b/assets/作物/大豆/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ch1bp1pvqwhve" +path="res://.godot/imported/3.webp-d38bb4c3eded2baf6b8623e8f44fac26.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/大豆/3.webp" +dest_files=["res://.godot/imported/3.webp-d38bb4c3eded2baf6b8623e8f44fac26.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/大豆/4.webp b/assets/作物/大豆/4.webp index 18f0f1d..7abb203 100644 Binary files a/assets/作物/大豆/4.webp and b/assets/作物/大豆/4.webp differ diff --git a/assets/作物/大豆/4.webp.import b/assets/作物/大豆/4.webp.import new file mode 100644 index 0000000..046a892 --- /dev/null +++ b/assets/作物/大豆/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lw4nejejuy3e" +path="res://.godot/imported/4.webp-f8473501df123badf6e050c3755091b6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/大豆/4.webp" +dest_files=["res://.godot/imported/4.webp-f8473501df123badf6e050c3755091b6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/大豆/成熟.webp b/assets/作物/大豆/成熟.webp index 18f0f1d..7abb203 100644 Binary files a/assets/作物/大豆/成熟.webp and b/assets/作物/大豆/成熟.webp differ diff --git a/assets/作物/大豆/成熟.webp.import b/assets/作物/大豆/成熟.webp.import index 85b6368..a24f3af 100644 --- a/assets/作物/大豆/成熟.webp.import +++ b/assets/作物/大豆/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://21df1mguvrpd" +uid="uid://dhoeob6o8ub54" path="res://.godot/imported/成熟.webp-ea051ce1ea151b39cf80b541e4a5df77.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-ea051ce1ea151b39cf80b541e4a5df77. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/大豆/收获物.webp b/assets/作物/大豆/收获物.webp index 455322e..03c971f 100644 Binary files a/assets/作物/大豆/收获物.webp and b/assets/作物/大豆/收获物.webp differ diff --git a/assets/作物/大豆/收获物.webp.import b/assets/作物/大豆/收获物.webp.import index 5e63da0..93157d8 100644 --- a/assets/作物/大豆/收获物.webp.import +++ b/assets/作物/大豆/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cas423gh315f6" +uid="uid://bh0r20iihcmgx" path="res://.godot/imported/收获物.webp-910e3f288716e2d0559e97c7f6eda87f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-910e3f288716e2d0559e97c7f6eda8 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/富贵竹/0.webp b/assets/作物/富贵竹/0.webp index 09bef0b..ec9eb36 100644 Binary files a/assets/作物/富贵竹/0.webp and b/assets/作物/富贵竹/0.webp differ diff --git a/assets/作物/富贵竹/0.webp.import b/assets/作物/富贵竹/0.webp.import index 65f0d2a..3a1e996 100644 --- a/assets/作物/富贵竹/0.webp.import +++ b/assets/作物/富贵竹/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cuyfl3se8ooaq" +uid="uid://clfqb3o1k4rby" path="res://.godot/imported/0.webp-a726644bf3d2533e1a0c1dab78519549.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-a726644bf3d2533e1a0c1dab78519549.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/富贵竹/1.webp b/assets/作物/富贵竹/1.webp index b2fd09b..cf58755 100644 Binary files a/assets/作物/富贵竹/1.webp and b/assets/作物/富贵竹/1.webp differ diff --git a/assets/作物/富贵竹/1.webp.import b/assets/作物/富贵竹/1.webp.import index 13b5829..3dd87cf 100644 --- a/assets/作物/富贵竹/1.webp.import +++ b/assets/作物/富贵竹/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://tjygvuu5ulbs" +uid="uid://bd3omqp1ps1hw" path="res://.godot/imported/1.webp-e919d49ea2e08a7abff7233ed4b5039a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-e919d49ea2e08a7abff7233ed4b5039a.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/富贵竹/2.webp b/assets/作物/富贵竹/2.webp index 47308a6..7cc7478 100644 Binary files a/assets/作物/富贵竹/2.webp and b/assets/作物/富贵竹/2.webp differ diff --git a/assets/作物/富贵竹/2.webp.import b/assets/作物/富贵竹/2.webp.import new file mode 100644 index 0000000..b46c59e --- /dev/null +++ b/assets/作物/富贵竹/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjhlba65jqss4" +path="res://.godot/imported/2.webp-638bab14e5309cf618b4ad0d9893879c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/富贵竹/2.webp" +dest_files=["res://.godot/imported/2.webp-638bab14e5309cf618b4ad0d9893879c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/富贵竹/3.webp b/assets/作物/富贵竹/3.webp index 2675a7f..dc45191 100644 Binary files a/assets/作物/富贵竹/3.webp and b/assets/作物/富贵竹/3.webp differ diff --git a/assets/作物/富贵竹/3.webp.import b/assets/作物/富贵竹/3.webp.import new file mode 100644 index 0000000..dd452b9 --- /dev/null +++ b/assets/作物/富贵竹/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://up47651sou01" +path="res://.godot/imported/3.webp-de01368555191f7242fd23b203028fee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/富贵竹/3.webp" +dest_files=["res://.godot/imported/3.webp-de01368555191f7242fd23b203028fee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/富贵竹/4.webp b/assets/作物/富贵竹/4.webp index b2fd09b..cf58755 100644 Binary files a/assets/作物/富贵竹/4.webp and b/assets/作物/富贵竹/4.webp differ diff --git a/assets/作物/富贵竹/4.webp.import b/assets/作物/富贵竹/4.webp.import new file mode 100644 index 0000000..5641a69 --- /dev/null +++ b/assets/作物/富贵竹/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5x2uq2r3yjms" +path="res://.godot/imported/4.webp-a994d4186fbe14bbc687bc4c999666ae.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/富贵竹/4.webp" +dest_files=["res://.godot/imported/4.webp-a994d4186fbe14bbc687bc4c999666ae.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/富贵竹/5.webp b/assets/作物/富贵竹/5.webp index a70a669..a82a195 100644 Binary files a/assets/作物/富贵竹/5.webp and b/assets/作物/富贵竹/5.webp differ diff --git a/assets/作物/富贵竹/5.webp.import b/assets/作物/富贵竹/5.webp.import new file mode 100644 index 0000000..a075803 --- /dev/null +++ b/assets/作物/富贵竹/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmdt730huwogx" +path="res://.godot/imported/5.webp-ec75c8005471a8e9f4bd4c618813b007.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/富贵竹/5.webp" +dest_files=["res://.godot/imported/5.webp-ec75c8005471a8e9f4bd4c618813b007.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/富贵竹/成熟.webp b/assets/作物/富贵竹/成熟.webp index a70a669..a82a195 100644 Binary files a/assets/作物/富贵竹/成熟.webp and b/assets/作物/富贵竹/成熟.webp differ diff --git a/assets/作物/富贵竹/成熟.webp.import b/assets/作物/富贵竹/成熟.webp.import index 661c085..e3eb26b 100644 --- a/assets/作物/富贵竹/成熟.webp.import +++ b/assets/作物/富贵竹/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://fyn27purtib4" +uid="uid://dqsjiftopqemi" path="res://.godot/imported/成熟.webp-50c06acb6b9e4335c344c3321fda6c5d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-50c06acb6b9e4335c344c3321fda6c5d. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/富贵竹/收获物.webp b/assets/作物/富贵竹/收获物.webp index 0d1c17e..b1bfa62 100644 Binary files a/assets/作物/富贵竹/收获物.webp and b/assets/作物/富贵竹/收获物.webp differ diff --git a/assets/作物/富贵竹/收获物.webp.import b/assets/作物/富贵竹/收获物.webp.import index d980665..d46d4b1 100644 --- a/assets/作物/富贵竹/收获物.webp.import +++ b/assets/作物/富贵竹/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bej21lk1sp78l" +uid="uid://s8pu4guho2b5" path="res://.godot/imported/收获物.webp-c5c64661272ea5dc2c5854f082f75971.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-c5c64661272ea5dc2c5854f082f759 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/小麦/0.webp b/assets/作物/小麦/0.webp index 99dc1b8..d2593de 100644 Binary files a/assets/作物/小麦/0.webp and b/assets/作物/小麦/0.webp differ diff --git a/assets/作物/小麦/0.webp.import b/assets/作物/小麦/0.webp.import index c111878..78c69e8 100644 --- a/assets/作物/小麦/0.webp.import +++ b/assets/作物/小麦/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bgelr6ccbt6j4" +uid="uid://cw10nck7cykat" path="res://.godot/imported/0.webp-01976b7393f4108b4278b5fddaf5c9f1.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-01976b7393f4108b4278b5fddaf5c9f1.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/小麦/1.webp b/assets/作物/小麦/1.webp index 9f61f0f..082b5ae 100644 Binary files a/assets/作物/小麦/1.webp and b/assets/作物/小麦/1.webp differ diff --git a/assets/作物/小麦/1.webp.import b/assets/作物/小麦/1.webp.import index 529e592..e26064b 100644 --- a/assets/作物/小麦/1.webp.import +++ b/assets/作物/小麦/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://vtexwnsmf0oi" +uid="uid://lu6s5qts4hnv" path="res://.godot/imported/1.webp-aecdb4ce7bebcc6234fa8729e020c125.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-aecdb4ce7bebcc6234fa8729e020c125.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/小麦/1750003605876.webp b/assets/作物/小麦/1750003605876.webp index 608783f..2e4bb92 100644 Binary files a/assets/作物/小麦/1750003605876.webp and b/assets/作物/小麦/1750003605876.webp differ diff --git a/assets/作物/小麦/1750003605876.webp.import b/assets/作物/小麦/1750003605876.webp.import index 2518344..6ef5d33 100644 --- a/assets/作物/小麦/1750003605876.webp.import +++ b/assets/作物/小麦/1750003605876.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://hbpd3hpfdpgf" +uid="uid://clwxxbayjet1h" path="res://.godot/imported/1750003605876.webp-0f0377d90260327e2169b52f723f20e8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750003605876.webp-0f0377d90260327e2169b52f72 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/小麦/2.webp b/assets/作物/小麦/2.webp index 3ba2c46..f7ed33a 100644 Binary files a/assets/作物/小麦/2.webp and b/assets/作物/小麦/2.webp differ diff --git a/assets/作物/小麦/2.webp.import b/assets/作物/小麦/2.webp.import index 496621c..ade178e 100644 --- a/assets/作物/小麦/2.webp.import +++ b/assets/作物/小麦/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cps503tcg7h1g" +uid="uid://80wh72ot2nxh" path="res://.godot/imported/2.webp-944f6e4f9f746fb1e8751aa4709965cf.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-944f6e4f9f746fb1e8751aa4709965cf.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/小麦/3.webp b/assets/作物/小麦/3.webp index 99dc1b8..d2593de 100644 Binary files a/assets/作物/小麦/3.webp and b/assets/作物/小麦/3.webp differ diff --git a/assets/作物/小麦/3.webp.import b/assets/作物/小麦/3.webp.import new file mode 100644 index 0000000..cc49ff9 --- /dev/null +++ b/assets/作物/小麦/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0ed8kn3vmvt8" +path="res://.godot/imported/3.webp-7e4221a32293a0408028a0997ea8eb66.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/小麦/3.webp" +dest_files=["res://.godot/imported/3.webp-7e4221a32293a0408028a0997ea8eb66.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/小麦/4.webp b/assets/作物/小麦/4.webp index 3ba2c46..f7ed33a 100644 Binary files a/assets/作物/小麦/4.webp and b/assets/作物/小麦/4.webp differ diff --git a/assets/作物/小麦/4.webp.import b/assets/作物/小麦/4.webp.import new file mode 100644 index 0000000..c2d72dd --- /dev/null +++ b/assets/作物/小麦/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://doqkqexho8u2" +path="res://.godot/imported/4.webp-cbfa23fb7bc46659a1357c8af735ef07.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/小麦/4.webp" +dest_files=["res://.godot/imported/4.webp-cbfa23fb7bc46659a1357c8af735ef07.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/小麦/5.webp b/assets/作物/小麦/5.webp index 1024f3e..0c06af9 100644 Binary files a/assets/作物/小麦/5.webp and b/assets/作物/小麦/5.webp differ diff --git a/assets/作物/小麦/5.webp.import b/assets/作物/小麦/5.webp.import new file mode 100644 index 0000000..9957ac3 --- /dev/null +++ b/assets/作物/小麦/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://855x4xx33fhs" +path="res://.godot/imported/5.webp-1bf25fcce803b7fb0138d2176e6f96f2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/小麦/5.webp" +dest_files=["res://.godot/imported/5.webp-1bf25fcce803b7fb0138d2176e6f96f2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/小麦/6.webp b/assets/作物/小麦/6.webp index c30f7d9..4f7c29e 100644 Binary files a/assets/作物/小麦/6.webp and b/assets/作物/小麦/6.webp differ diff --git a/assets/作物/小麦/6.webp.import b/assets/作物/小麦/6.webp.import new file mode 100644 index 0000000..c325aea --- /dev/null +++ b/assets/作物/小麦/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4cbuoe4jv4qf" +path="res://.godot/imported/6.webp-50d626dd861fc6bdfc265406354eda03.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/小麦/6.webp" +dest_files=["res://.godot/imported/6.webp-50d626dd861fc6bdfc265406354eda03.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/小麦/7.webp b/assets/作物/小麦/7.webp index 5a108d1..bdf8c08 100644 Binary files a/assets/作物/小麦/7.webp and b/assets/作物/小麦/7.webp differ diff --git a/assets/作物/小麦/7.webp.import b/assets/作物/小麦/7.webp.import new file mode 100644 index 0000000..e82941d --- /dev/null +++ b/assets/作物/小麦/7.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://y1fjfttfq6v8" +path="res://.godot/imported/7.webp-6cacc92009a9d8b7eb929763cd502fee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/小麦/7.webp" +dest_files=["res://.godot/imported/7.webp-6cacc92009a9d8b7eb929763cd502fee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/小麦/8.webp b/assets/作物/小麦/8.webp index b99a4a5..e08270b 100644 Binary files a/assets/作物/小麦/8.webp and b/assets/作物/小麦/8.webp differ diff --git a/assets/作物/小麦/8.webp.import b/assets/作物/小麦/8.webp.import new file mode 100644 index 0000000..a70309e --- /dev/null +++ b/assets/作物/小麦/8.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnlcx3cl6fug0" +path="res://.godot/imported/8.webp-a281b1b8074c888afecafcce5a3fec86.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/小麦/8.webp" +dest_files=["res://.godot/imported/8.webp-a281b1b8074c888afecafcce5a3fec86.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/小麦/成熟.webp b/assets/作物/小麦/成熟.webp index b99a4a5..e08270b 100644 Binary files a/assets/作物/小麦/成熟.webp and b/assets/作物/小麦/成熟.webp differ diff --git a/assets/作物/小麦/成熟.webp.import b/assets/作物/小麦/成熟.webp.import index 7403d61..5c1cd3c 100644 --- a/assets/作物/小麦/成熟.webp.import +++ b/assets/作物/小麦/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d2p5dg5wkoi7a" +uid="uid://ccox50am021v8" path="res://.godot/imported/成熟.webp-870b665c96876c854b26d3d57458eb26.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-870b665c96876c854b26d3d57458eb26. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/小麦/收获物.webp b/assets/作物/小麦/收获物.webp index 1a9330d..7fe8fd5 100644 Binary files a/assets/作物/小麦/收获物.webp and b/assets/作物/小麦/收获物.webp differ diff --git a/assets/作物/小麦/收获物.webp.import b/assets/作物/小麦/收获物.webp.import index f47bbda..cd9095b 100644 --- a/assets/作物/小麦/收获物.webp.import +++ b/assets/作物/小麦/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dbjlj1ody3kf0" +uid="uid://b0412ct2xu2xy" path="res://.godot/imported/收获物.webp-8bbb4c8347e09da3595ecd84c0f10098.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-8bbb4c8347e09da3595ecd84c0f100 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/山楂/0.webp b/assets/作物/山楂/0.webp index d9f1e8e..978e59b 100644 Binary files a/assets/作物/山楂/0.webp and b/assets/作物/山楂/0.webp differ diff --git a/assets/作物/山楂/0.webp.import b/assets/作物/山楂/0.webp.import index 357c02f..207976f 100644 --- a/assets/作物/山楂/0.webp.import +++ b/assets/作物/山楂/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bssucauvjrktr" +uid="uid://qgt86c1p2dn2" path="res://.godot/imported/0.webp-9ef5f54aba5e5ec96a14a0d1b8959df9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-9ef5f54aba5e5ec96a14a0d1b8959df9.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/山楂/1.webp b/assets/作物/山楂/1.webp index e5223b1..63ea6c0 100644 Binary files a/assets/作物/山楂/1.webp and b/assets/作物/山楂/1.webp differ diff --git a/assets/作物/山楂/1.webp.import b/assets/作物/山楂/1.webp.import index 55b833a..ba05878 100644 --- a/assets/作物/山楂/1.webp.import +++ b/assets/作物/山楂/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b252vfko720np" +uid="uid://q57gcpfh2oi3" path="res://.godot/imported/1.webp-eba8966203fa8cf5920fba4d9b55297e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-eba8966203fa8cf5920fba4d9b55297e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/山楂/成熟.webp b/assets/作物/山楂/成熟.webp index c815bb1..8fac399 100644 Binary files a/assets/作物/山楂/成熟.webp and b/assets/作物/山楂/成熟.webp differ diff --git a/assets/作物/山楂/成熟.webp.import b/assets/作物/山楂/成熟.webp.import index adc2e83..81cede4 100644 --- a/assets/作物/山楂/成熟.webp.import +++ b/assets/作物/山楂/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bo2autlfr1e7x" +uid="uid://br86j0bjq3aeg" path="res://.godot/imported/成熟.webp-27fe422cdf47094b5fcbdb9ab03f5193.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-27fe422cdf47094b5fcbdb9ab03f5193. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/山楂/收获物.webp b/assets/作物/山楂/收获物.webp index dab0743..c467e25 100644 Binary files a/assets/作物/山楂/收获物.webp and b/assets/作物/山楂/收获物.webp differ diff --git a/assets/作物/山楂/收获物.webp.import b/assets/作物/山楂/收获物.webp.import index 509edaa..bc2a830 100644 --- a/assets/作物/山楂/收获物.webp.import +++ b/assets/作物/山楂/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://3it6niv74m7c" +uid="uid://ikt6ge6qaqn6" path="res://.godot/imported/收获物.webp-72b51e5f772d35f32139c456531888c7.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-72b51e5f772d35f32139c456531888 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/山葵/0.webp b/assets/作物/山葵/0.webp index f168b10..af26d88 100644 Binary files a/assets/作物/山葵/0.webp and b/assets/作物/山葵/0.webp differ diff --git a/assets/作物/山葵/0.webp.import b/assets/作物/山葵/0.webp.import index 7536349..e01db01 100644 --- a/assets/作物/山葵/0.webp.import +++ b/assets/作物/山葵/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://rct4rjtodrp8" +uid="uid://bjbiclo34w4o3" path="res://.godot/imported/0.webp-5095949f85b9761fa79d4662591ee8de.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-5095949f85b9761fa79d4662591ee8de.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/山葵/1.webp b/assets/作物/山葵/1.webp index 8b7631b..7059ce3 100644 Binary files a/assets/作物/山葵/1.webp and b/assets/作物/山葵/1.webp differ diff --git a/assets/作物/山葵/1.webp.import b/assets/作物/山葵/1.webp.import index beca64a..b832203 100644 --- a/assets/作物/山葵/1.webp.import +++ b/assets/作物/山葵/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://fkkupwumgkcw" +uid="uid://bjfchr3l1u8s4" path="res://.godot/imported/1.webp-23308b73f9bc075e7369d063d94aaaa0.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-23308b73f9bc075e7369d063d94aaaa0.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/山葵/2.webp b/assets/作物/山葵/2.webp index a35da75..9aa18b2 100644 Binary files a/assets/作物/山葵/2.webp and b/assets/作物/山葵/2.webp differ diff --git a/assets/作物/山葵/2.webp.import b/assets/作物/山葵/2.webp.import index 477f44b..08f9668 100644 --- a/assets/作物/山葵/2.webp.import +++ b/assets/作物/山葵/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b3owvplbeixld" +uid="uid://j0gv5s7glfh6" path="res://.godot/imported/2.webp-6131342f071ac1243132a2b1781db3f0.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-6131342f071ac1243132a2b1781db3f0.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/山葵/3.webp b/assets/作物/山葵/3.webp index d52acd6..2343a6d 100644 Binary files a/assets/作物/山葵/3.webp and b/assets/作物/山葵/3.webp differ diff --git a/assets/作物/山葵/3.webp.import b/assets/作物/山葵/3.webp.import new file mode 100644 index 0000000..8210442 --- /dev/null +++ b/assets/作物/山葵/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cioff7umwtsdy" +path="res://.godot/imported/3.webp-5827e6459158aea5d392e91bf2e51362.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/山葵/3.webp" +dest_files=["res://.godot/imported/3.webp-5827e6459158aea5d392e91bf2e51362.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/山葵/4.webp b/assets/作物/山葵/4.webp index 5f43412..adcee9e 100644 Binary files a/assets/作物/山葵/4.webp and b/assets/作物/山葵/4.webp differ diff --git a/assets/作物/山葵/4.webp.import b/assets/作物/山葵/4.webp.import new file mode 100644 index 0000000..46a3f2e --- /dev/null +++ b/assets/作物/山葵/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8kxwyfdffuot" +path="res://.godot/imported/4.webp-cffbbb0deaedc3938521c47419f0921f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/山葵/4.webp" +dest_files=["res://.godot/imported/4.webp-cffbbb0deaedc3938521c47419f0921f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/山葵/成熟.webp b/assets/作物/山葵/成熟.webp index d52acd6..2343a6d 100644 Binary files a/assets/作物/山葵/成熟.webp and b/assets/作物/山葵/成熟.webp differ diff --git a/assets/作物/山葵/成熟.webp.import b/assets/作物/山葵/成熟.webp.import index 62420f6..1dff3bb 100644 --- a/assets/作物/山葵/成熟.webp.import +++ b/assets/作物/山葵/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://qnqbk5b25d1h" +uid="uid://brfke5cvv22w6" path="res://.godot/imported/成熟.webp-b26d87f0f7a6133026204738014ba8b1.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-b26d87f0f7a6133026204738014ba8b1. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/山葵/收获物.webp b/assets/作物/山葵/收获物.webp index 1eb538d..782ade5 100644 Binary files a/assets/作物/山葵/收获物.webp and b/assets/作物/山葵/收获物.webp differ diff --git a/assets/作物/山葵/收获物.webp.import b/assets/作物/山葵/收获物.webp.import index 3f643e6..665bb35 100644 --- a/assets/作物/山葵/收获物.webp.import +++ b/assets/作物/山葵/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cla47x3syqk15" +uid="uid://doprpwnuu1jt3" path="res://.godot/imported/收获物.webp-fe4b4d85426ae07947ee7f03298f90f1.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-fe4b4d85426ae07947ee7f03298f90 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运花/0.webp b/assets/作物/幸运花/0.webp index 056c9c7..eae06d4 100644 Binary files a/assets/作物/幸运花/0.webp and b/assets/作物/幸运花/0.webp differ diff --git a/assets/作物/幸运花/0.webp.import b/assets/作物/幸运花/0.webp.import index b48d9e2..81c422b 100644 --- a/assets/作物/幸运花/0.webp.import +++ b/assets/作物/幸运花/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bnj120dgxnwuj" +uid="uid://1nn87nt7rgl2" path="res://.godot/imported/0.webp-32ba8e3cbbf96b988e75c5661f58292f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-32ba8e3cbbf96b988e75c5661f58292f.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运花/1.webp b/assets/作物/幸运花/1.webp index 271733b..114ac2b 100644 Binary files a/assets/作物/幸运花/1.webp and b/assets/作物/幸运花/1.webp differ diff --git a/assets/作物/幸运花/1.webp.import b/assets/作物/幸运花/1.webp.import index 94e118b..fb7d160 100644 --- a/assets/作物/幸运花/1.webp.import +++ b/assets/作物/幸运花/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dxkfpmw6bxsjs" +uid="uid://b28aoc223n3xb" path="res://.godot/imported/1.webp-124a6589aa718299f93b83271b5dc458.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-124a6589aa718299f93b83271b5dc458.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运花/1750005489475.webp b/assets/作物/幸运花/1750005489475.webp index 97ae2ab..589439c 100644 Binary files a/assets/作物/幸运花/1750005489475.webp and b/assets/作物/幸运花/1750005489475.webp differ diff --git a/assets/作物/幸运花/1750005489475.webp.import b/assets/作物/幸运花/1750005489475.webp.import index 71240f8..4a609b6 100644 --- a/assets/作物/幸运花/1750005489475.webp.import +++ b/assets/作物/幸运花/1750005489475.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://qtekwburbu7y" +uid="uid://bsfjjpfc8pxek" path="res://.godot/imported/1750005489475.webp-00d2e041bdeb636cb7bdf1fd546974a7.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750005489475.webp-00d2e041bdeb636cb7bdf1fd54 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运花/1750005490896.webp b/assets/作物/幸运花/1750005490896.webp index bb23f7c..9cfa20f 100644 Binary files a/assets/作物/幸运花/1750005490896.webp and b/assets/作物/幸运花/1750005490896.webp differ diff --git a/assets/作物/幸运花/1750005490896.webp.import b/assets/作物/幸运花/1750005490896.webp.import index 365baa4..f212c69 100644 --- a/assets/作物/幸运花/1750005490896.webp.import +++ b/assets/作物/幸运花/1750005490896.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://meqb468k6xbg" +uid="uid://cvy6cyrmpl7fq" path="res://.godot/imported/1750005490896.webp-deb71ee468b167c7081c545a38b3935d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750005490896.webp-deb71ee468b167c7081c545a38 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运花/2.webp b/assets/作物/幸运花/2.webp index fd58edf..8ad4efa 100644 Binary files a/assets/作物/幸运花/2.webp and b/assets/作物/幸运花/2.webp differ diff --git a/assets/作物/幸运花/2.webp.import b/assets/作物/幸运花/2.webp.import index e85d38a..0c49f86 100644 --- a/assets/作物/幸运花/2.webp.import +++ b/assets/作物/幸运花/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://1s3rfq1tmliw" +uid="uid://cofdef8n54qtd" path="res://.godot/imported/2.webp-1724b2953eba7cf2a6e73a90710f103a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-1724b2953eba7cf2a6e73a90710f103a.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运花/成熟.webp b/assets/作物/幸运花/成熟.webp index 935ee8c..d8c9540 100644 Binary files a/assets/作物/幸运花/成熟.webp and b/assets/作物/幸运花/成熟.webp differ diff --git a/assets/作物/幸运花/成熟.webp.import b/assets/作物/幸运花/成熟.webp.import index d39aea0..9502e37 100644 --- a/assets/作物/幸运花/成熟.webp.import +++ b/assets/作物/幸运花/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b53a8j6u0p2mp" +uid="uid://jcep2g3v52ko" path="res://.godot/imported/成熟.webp-2a3c2d454b606b14bbe607d67ef6f981.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-2a3c2d454b606b14bbe607d67ef6f981. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运花/收获物.webp b/assets/作物/幸运花/收获物.webp index 05bce4f..1ed93b8 100644 Binary files a/assets/作物/幸运花/收获物.webp and b/assets/作物/幸运花/收获物.webp differ diff --git a/assets/作物/幸运花/收获物.webp.import b/assets/作物/幸运花/收获物.webp.import index 0e06fd6..93cf9ea 100644 --- a/assets/作物/幸运花/收获物.webp.import +++ b/assets/作物/幸运花/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bth4yixpwpf8f" +uid="uid://fuhu84mw40yl" path="res://.godot/imported/收获物.webp-e824706c96273c7a9ad349dc44cd34e9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-e824706c96273c7a9ad349dc44cd34 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运草/0.webp b/assets/作物/幸运草/0.webp index 45eb991..96da818 100644 Binary files a/assets/作物/幸运草/0.webp and b/assets/作物/幸运草/0.webp differ diff --git a/assets/作物/幸运草/0.webp.import b/assets/作物/幸运草/0.webp.import index 3f69d5b..ddfc3a6 100644 --- a/assets/作物/幸运草/0.webp.import +++ b/assets/作物/幸运草/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://nch4jnl6uru5" +uid="uid://ctsriattx0fbs" path="res://.godot/imported/0.webp-9a854b52d758d8efc831a9b8ecc2748d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-9a854b52d758d8efc831a9b8ecc2748d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运草/1.webp b/assets/作物/幸运草/1.webp index 0e092ef..df1604a 100644 Binary files a/assets/作物/幸运草/1.webp and b/assets/作物/幸运草/1.webp differ diff --git a/assets/作物/幸运草/1.webp.import b/assets/作物/幸运草/1.webp.import index a7650d6..74da3cc 100644 --- a/assets/作物/幸运草/1.webp.import +++ b/assets/作物/幸运草/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dkqnxl762kro1" +uid="uid://bp4jx1ks8utky" path="res://.godot/imported/1.webp-3800ff20ef5a451d887aa3c1f0cd945b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-3800ff20ef5a451d887aa3c1f0cd945b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运草/1750005459768.webp b/assets/作物/幸运草/1750005459768.webp index f845b84..722eab3 100644 Binary files a/assets/作物/幸运草/1750005459768.webp and b/assets/作物/幸运草/1750005459768.webp differ diff --git a/assets/作物/幸运草/1750005459768.webp.import b/assets/作物/幸运草/1750005459768.webp.import index 76c8b72..0488648 100644 --- a/assets/作物/幸运草/1750005459768.webp.import +++ b/assets/作物/幸运草/1750005459768.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://crinkuhe4pniq" +uid="uid://87fp8dr6xmrw" path="res://.godot/imported/1750005459768.webp-7323f27a2480f01720ea573a80ca06fe.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750005459768.webp-7323f27a2480f01720ea573a80 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运草/2.webp b/assets/作物/幸运草/2.webp index a9dec5f..8fd1343 100644 Binary files a/assets/作物/幸运草/2.webp and b/assets/作物/幸运草/2.webp differ diff --git a/assets/作物/幸运草/2.webp.import b/assets/作物/幸运草/2.webp.import index 8c9a62b..c6d96e1 100644 --- a/assets/作物/幸运草/2.webp.import +++ b/assets/作物/幸运草/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d47fc2p7wfqf" +uid="uid://c2v6qcwayecl7" path="res://.godot/imported/2.webp-993c27458c797aceb035f48addfabb3a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-993c27458c797aceb035f48addfabb3a.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运草/成熟.webp b/assets/作物/幸运草/成熟.webp index 8f6e7c5..22e55dc 100644 Binary files a/assets/作物/幸运草/成熟.webp and b/assets/作物/幸运草/成熟.webp differ diff --git a/assets/作物/幸运草/成熟.webp.import b/assets/作物/幸运草/成熟.webp.import index af4473c..ec758ba 100644 --- a/assets/作物/幸运草/成熟.webp.import +++ b/assets/作物/幸运草/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cv6a666etjy74" +uid="uid://b7kf0ffr0ehlu" path="res://.godot/imported/成熟.webp-fddfb49e7e60369d7dc4767cd5a0d284.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-fddfb49e7e60369d7dc4767cd5a0d284. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/幸运草/收获物.webp b/assets/作物/幸运草/收获物.webp index 30c7ab8..cebaae6 100644 Binary files a/assets/作物/幸运草/收获物.webp and b/assets/作物/幸运草/收获物.webp differ diff --git a/assets/作物/幸运草/收获物.webp.import b/assets/作物/幸运草/收获物.webp.import index 1ce2838..9a98dcb 100644 --- a/assets/作物/幸运草/收获物.webp.import +++ b/assets/作物/幸运草/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cdaequ3geqp7i" +uid="uid://tk12gcff5dw6" path="res://.godot/imported/收获物.webp-6d6a4269b340b5f7b84f97c5db73be58.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-6d6a4269b340b5f7b84f97c5db73be [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/康乃馨/0.webp b/assets/作物/康乃馨/0.webp index 5911206..05e8a62 100644 Binary files a/assets/作物/康乃馨/0.webp and b/assets/作物/康乃馨/0.webp differ diff --git a/assets/作物/康乃馨/0.webp.import b/assets/作物/康乃馨/0.webp.import index 6298173..4946595 100644 --- a/assets/作物/康乃馨/0.webp.import +++ b/assets/作物/康乃馨/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://duvjh3pyy563r" +uid="uid://cdm8af3qxmvyc" path="res://.godot/imported/0.webp-0dcefca5e8cb212b0edd07e190d9f42c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-0dcefca5e8cb212b0edd07e190d9f42c.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/康乃馨/1.webp b/assets/作物/康乃馨/1.webp index 11b7746..b21e310 100644 Binary files a/assets/作物/康乃馨/1.webp and b/assets/作物/康乃馨/1.webp differ diff --git a/assets/作物/康乃馨/1.webp.import b/assets/作物/康乃馨/1.webp.import index dbd41fb..afefeaf 100644 --- a/assets/作物/康乃馨/1.webp.import +++ b/assets/作物/康乃馨/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://djyle3128sens" +uid="uid://cnhxwjcr2m1nl" path="res://.godot/imported/1.webp-be07198dc831af4082185ad9355a9724.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-be07198dc831af4082185ad9355a9724.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/康乃馨/1750049844733.webp b/assets/作物/康乃馨/1750049844733.webp index 6924b47..31a3d9e 100644 Binary files a/assets/作物/康乃馨/1750049844733.webp and b/assets/作物/康乃馨/1750049844733.webp differ diff --git a/assets/作物/康乃馨/1750049844733.webp.import b/assets/作物/康乃馨/1750049844733.webp.import index 4b75567..e647180 100644 --- a/assets/作物/康乃馨/1750049844733.webp.import +++ b/assets/作物/康乃馨/1750049844733.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://djoaojav2pd0" +uid="uid://dum6st1ahjkfp" path="res://.godot/imported/1750049844733.webp-2105343ec6352d43a6d86245693420c6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750049844733.webp-2105343ec6352d43a6d8624569 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/康乃馨/2.webp b/assets/作物/康乃馨/2.webp index 48a4534..8d9a17c 100644 Binary files a/assets/作物/康乃馨/2.webp and b/assets/作物/康乃馨/2.webp differ diff --git a/assets/作物/康乃馨/2.webp.import b/assets/作物/康乃馨/2.webp.import index d7e1f8b..88a4719 100644 --- a/assets/作物/康乃馨/2.webp.import +++ b/assets/作物/康乃馨/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://o4tf2vsbajyc" +uid="uid://ij1pdkjeu8a3" path="res://.godot/imported/2.webp-2e5b03c6392f4ab3a1ed8f78c18bdc20.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-2e5b03c6392f4ab3a1ed8f78c18bdc20.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/康乃馨/3.webp b/assets/作物/康乃馨/3.webp index 21ee1a3..a2a6823 100644 Binary files a/assets/作物/康乃馨/3.webp and b/assets/作物/康乃馨/3.webp differ diff --git a/assets/作物/康乃馨/3.webp.import b/assets/作物/康乃馨/3.webp.import index 6aad71b..cc645b8 100644 --- a/assets/作物/康乃馨/3.webp.import +++ b/assets/作物/康乃馨/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://rv4c33ekcy07" +uid="uid://csf11igudv5bn" path="res://.godot/imported/3.webp-c28c891b89617b5fd53ade19b7e37f4c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-c28c891b89617b5fd53ade19b7e37f4c.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/康乃馨/成熟.webp b/assets/作物/康乃馨/成熟.webp index 21ee1a3..a2a6823 100644 Binary files a/assets/作物/康乃馨/成熟.webp and b/assets/作物/康乃馨/成熟.webp differ diff --git a/assets/作物/康乃馨/成熟.webp.import b/assets/作物/康乃馨/成熟.webp.import index 8eb5fad..900ae67 100644 --- a/assets/作物/康乃馨/成熟.webp.import +++ b/assets/作物/康乃馨/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cl8irth31hkh0" +uid="uid://en8aburobjxy" path="res://.godot/imported/成熟.webp-deed9a1ae7b86403775795670a552b5d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-deed9a1ae7b86403775795670a552b5d. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/康乃馨/收获物.webp b/assets/作物/康乃馨/收获物.webp index 64b3cd5..1ed225a 100644 Binary files a/assets/作物/康乃馨/收获物.webp and b/assets/作物/康乃馨/收获物.webp differ diff --git a/assets/作物/康乃馨/收获物.webp.import b/assets/作物/康乃馨/收获物.webp.import index bca8243..5df5765 100644 --- a/assets/作物/康乃馨/收获物.webp.import +++ b/assets/作物/康乃馨/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cfr5sc2fq30iq" +uid="uid://7tj50k800nde" path="res://.godot/imported/收获物.webp-a3075daedf23505ce9c53fd93791d3ce.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-a3075daedf23505ce9c53fd93791d3 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/摇钱树/0.webp b/assets/作物/摇钱树/0.webp index 221a465..fbb0034 100644 Binary files a/assets/作物/摇钱树/0.webp and b/assets/作物/摇钱树/0.webp differ diff --git a/assets/作物/摇钱树/0.webp.import b/assets/作物/摇钱树/0.webp.import index 86ac8fe..23d52d2 100644 --- a/assets/作物/摇钱树/0.webp.import +++ b/assets/作物/摇钱树/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bx1bslv1dmo6h" +uid="uid://05kntwqxflx7" path="res://.godot/imported/0.webp-b91d280651136fd5f255dac87d5e309e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-b91d280651136fd5f255dac87d5e309e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/摇钱树/1.webp b/assets/作物/摇钱树/1.webp index c1daa8d..19d2952 100644 Binary files a/assets/作物/摇钱树/1.webp and b/assets/作物/摇钱树/1.webp differ diff --git a/assets/作物/摇钱树/1.webp.import b/assets/作物/摇钱树/1.webp.import index 4298a31..eaa0d2a 100644 --- a/assets/作物/摇钱树/1.webp.import +++ b/assets/作物/摇钱树/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b028c31dq1hsj" +uid="uid://dlu4vexq17asb" path="res://.godot/imported/1.webp-db2f4aba6f4f61ef42a825a786838de9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-db2f4aba6f4f61ef42a825a786838de9.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/摇钱树/2.webp b/assets/作物/摇钱树/2.webp index d04898d..4ecdcb6 100644 Binary files a/assets/作物/摇钱树/2.webp and b/assets/作物/摇钱树/2.webp differ diff --git a/assets/作物/摇钱树/2.webp.import b/assets/作物/摇钱树/2.webp.import index b22d3ea..00f1623 100644 --- a/assets/作物/摇钱树/2.webp.import +++ b/assets/作物/摇钱树/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cu5nxdc7c5re2" +uid="uid://dukkqxa7hv65w" path="res://.godot/imported/2.webp-1dfe33d0a7ac97921bb14420b15492de.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-1dfe33d0a7ac97921bb14420b15492de.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/摇钱树/成熟.webp b/assets/作物/摇钱树/成熟.webp index 9e0d0f8..630147c 100644 Binary files a/assets/作物/摇钱树/成熟.webp and b/assets/作物/摇钱树/成熟.webp differ diff --git a/assets/作物/摇钱树/成熟.webp.import b/assets/作物/摇钱树/成熟.webp.import index e643e60..134abc8 100644 --- a/assets/作物/摇钱树/成熟.webp.import +++ b/assets/作物/摇钱树/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c3vg53soh2vsf" +uid="uid://cgtx1lbxr16wb" path="res://.godot/imported/成熟.webp-317b0ac3b89998d3893b8f1bc2fc2f22.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-317b0ac3b89998d3893b8f1bc2fc2f22. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/摇钱树/收获物.webp b/assets/作物/摇钱树/收获物.webp index 710f8c3..4509680 100644 Binary files a/assets/作物/摇钱树/收获物.webp and b/assets/作物/摇钱树/收获物.webp differ diff --git a/assets/作物/摇钱树/收获物.webp.import b/assets/作物/摇钱树/收获物.webp.import index 522a5c8..d139a1f 100644 --- a/assets/作物/摇钱树/收获物.webp.import +++ b/assets/作物/摇钱树/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dgy08xmxhqb2s" +uid="uid://d4hm1esx7sf1s" path="res://.godot/imported/收获物.webp-54bf1cbe9a2c55b3306abdb00993d71f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-54bf1cbe9a2c55b3306abdb00993d7 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/星芒草/0.webp b/assets/作物/星芒草/0.webp index 575fe2b..5687110 100644 Binary files a/assets/作物/星芒草/0.webp and b/assets/作物/星芒草/0.webp differ diff --git a/assets/作物/星芒草/0.webp.import b/assets/作物/星芒草/0.webp.import index 2991f95..8e0c7ad 100644 --- a/assets/作物/星芒草/0.webp.import +++ b/assets/作物/星芒草/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dweo8v6cnx2qy" +uid="uid://d01g308gjn7u5" path="res://.godot/imported/0.webp-dc14adbdd9cd7135bc2234591039c4d6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-dc14adbdd9cd7135bc2234591039c4d6.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/星芒草/成熟.webp b/assets/作物/星芒草/成熟.webp index d96b9a8..62b2af1 100644 Binary files a/assets/作物/星芒草/成熟.webp and b/assets/作物/星芒草/成熟.webp differ diff --git a/assets/作物/星芒草/成熟.webp.import b/assets/作物/星芒草/成熟.webp.import index 80e5e0e..49a134d 100644 --- a/assets/作物/星芒草/成熟.webp.import +++ b/assets/作物/星芒草/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://vo2y0ec727b" +uid="uid://ko4id266f50m" path="res://.godot/imported/成熟.webp-01eb164be1dfd5f01a8a1a17e229e68a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-01eb164be1dfd5f01a8a1a17e229e68a. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/月光草/0.webp b/assets/作物/月光草/0.webp index adcd08f..a40a1b3 100644 Binary files a/assets/作物/月光草/0.webp and b/assets/作物/月光草/0.webp differ diff --git a/assets/作物/月光草/0.webp.import b/assets/作物/月光草/0.webp.import index 1f9dc18..2453d24 100644 --- a/assets/作物/月光草/0.webp.import +++ b/assets/作物/月光草/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dr3s13hya6bfe" +uid="uid://d08hxa0ym42qe" path="res://.godot/imported/0.webp-e711a766ce835c4b088263e550163ae1.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-e711a766ce835c4b088263e550163ae1.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/月光草/1.webp b/assets/作物/月光草/1.webp index 856d3bf..b46f633 100644 Binary files a/assets/作物/月光草/1.webp and b/assets/作物/月光草/1.webp differ diff --git a/assets/作物/月光草/1.webp.import b/assets/作物/月光草/1.webp.import index 49482b6..d221223 100644 --- a/assets/作物/月光草/1.webp.import +++ b/assets/作物/月光草/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c127o6wx0vipt" +uid="uid://c2j17ac071xvg" path="res://.godot/imported/1.webp-b88c0f1f74a4dd7361e4e36124bf5c63.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-b88c0f1f74a4dd7361e4e36124bf5c63.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/月光草/成熟.webp b/assets/作物/月光草/成熟.webp index 68a5b09..f0b8979 100644 Binary files a/assets/作物/月光草/成熟.webp and b/assets/作物/月光草/成熟.webp differ diff --git a/assets/作物/月光草/成熟.webp.import b/assets/作物/月光草/成熟.webp.import index cc8ff63..0bb3f8a 100644 --- a/assets/作物/月光草/成熟.webp.import +++ b/assets/作物/月光草/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ina63kjtboai" +uid="uid://be0dv1gy4h4i7" path="res://.godot/imported/成熟.webp-3dc1ef1881010be2236a0f4cdf3f8287.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-3dc1ef1881010be2236a0f4cdf3f8287. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/月光草/收获物.webp b/assets/作物/月光草/收获物.webp index b257e8a..303351d 100644 Binary files a/assets/作物/月光草/收获物.webp and b/assets/作物/月光草/收获物.webp differ diff --git a/assets/作物/月光草/收获物.webp.import b/assets/作物/月光草/收获物.webp.import index 69f6b76..4996538 100644 --- a/assets/作物/月光草/收获物.webp.import +++ b/assets/作物/月光草/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ciu7yhhvqyjxt" +uid="uid://jw7nyyubufps" path="res://.godot/imported/收获物.webp-f206bb2544e56a972a63de3bfd1fcf12.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-f206bb2544e56a972a63de3bfd1fcf [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂交树1/0.webp b/assets/作物/杂交树1/0.webp index 8603145..5ad0035 100644 Binary files a/assets/作物/杂交树1/0.webp and b/assets/作物/杂交树1/0.webp differ diff --git a/assets/作物/杂交树1/0.webp.import b/assets/作物/杂交树1/0.webp.import index e3b4d02..c3f8ffc 100644 --- a/assets/作物/杂交树1/0.webp.import +++ b/assets/作物/杂交树1/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c602bkh2h3x1g" +uid="uid://b7q7ihh7yxlv3" path="res://.godot/imported/0.webp-e15825b68a498274a6eb4abfb3dbb9c8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-e15825b68a498274a6eb4abfb3dbb9c8.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂交树1/1.webp b/assets/作物/杂交树1/1.webp index e9ee6ba..dfb464e 100644 Binary files a/assets/作物/杂交树1/1.webp and b/assets/作物/杂交树1/1.webp differ diff --git a/assets/作物/杂交树1/1.webp.import b/assets/作物/杂交树1/1.webp.import index 1c11eef..5e0baaf 100644 --- a/assets/作物/杂交树1/1.webp.import +++ b/assets/作物/杂交树1/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bjcfpbt5bsoqe" +uid="uid://b1o3qe7hj5c3j" path="res://.godot/imported/1.webp-974c8fea63184162d964d03c91ae9421.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-974c8fea63184162d964d03c91ae9421.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂交树1/2.webp b/assets/作物/杂交树1/2.webp index 7b3bfdb..644402a 100644 Binary files a/assets/作物/杂交树1/2.webp and b/assets/作物/杂交树1/2.webp differ diff --git a/assets/作物/杂交树1/2.webp.import b/assets/作物/杂交树1/2.webp.import index 82b0ab4..696592e 100644 --- a/assets/作物/杂交树1/2.webp.import +++ b/assets/作物/杂交树1/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dq4uvuixjw1lx" +uid="uid://hrnw3mwtn2di" path="res://.godot/imported/2.webp-81f19eefc31014bba152f0e1565a4b0e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-81f19eefc31014bba152f0e1565a4b0e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂交树1/3.webp b/assets/作物/杂交树1/3.webp index 7b3bfdb..644402a 100644 Binary files a/assets/作物/杂交树1/3.webp and b/assets/作物/杂交树1/3.webp differ diff --git a/assets/作物/杂交树1/3.webp.import b/assets/作物/杂交树1/3.webp.import new file mode 100644 index 0000000..a24c1b6 --- /dev/null +++ b/assets/作物/杂交树1/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://md502bllc282" +path="res://.godot/imported/3.webp-6e12fd0b6a76f990798826c057dfe540.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/杂交树1/3.webp" +dest_files=["res://.godot/imported/3.webp-6e12fd0b6a76f990798826c057dfe540.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/杂交树1/4.webp b/assets/作物/杂交树1/4.webp index bab3ec3..aff32cb 100644 Binary files a/assets/作物/杂交树1/4.webp and b/assets/作物/杂交树1/4.webp differ diff --git a/assets/作物/杂交树1/4.webp.import b/assets/作物/杂交树1/4.webp.import new file mode 100644 index 0000000..519db4b --- /dev/null +++ b/assets/作物/杂交树1/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dj7rsy7e6t5tj" +path="res://.godot/imported/4.webp-e21c56e3d1b3aeabbd88a92eeea7400c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/杂交树1/4.webp" +dest_files=["res://.godot/imported/4.webp-e21c56e3d1b3aeabbd88a92eeea7400c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/杂交树1/成熟.webp b/assets/作物/杂交树1/成熟.webp index bab3ec3..aff32cb 100644 Binary files a/assets/作物/杂交树1/成熟.webp and b/assets/作物/杂交树1/成熟.webp differ diff --git a/assets/作物/杂交树1/成熟.webp.import b/assets/作物/杂交树1/成熟.webp.import index 238741f..fb7a866 100644 --- a/assets/作物/杂交树1/成熟.webp.import +++ b/assets/作物/杂交树1/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://clgednmy5yrs7" +uid="uid://dnqdnl6e7pxb6" path="res://.godot/imported/成熟.webp-8d945c67123f0d2b691168b7dd457414.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-8d945c67123f0d2b691168b7dd457414. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂交树2/0.webp b/assets/作物/杂交树2/0.webp index 2575caf..43b227e 100644 Binary files a/assets/作物/杂交树2/0.webp and b/assets/作物/杂交树2/0.webp differ diff --git a/assets/作物/杂交树2/0.webp.import b/assets/作物/杂交树2/0.webp.import index 72d7bf9..4f17228 100644 --- a/assets/作物/杂交树2/0.webp.import +++ b/assets/作物/杂交树2/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dpu28pre7eklu" +uid="uid://diwxssyvbu3t3" path="res://.godot/imported/0.webp-ffeffa33d8cd754f4f84b0ce7f530ae4.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-ffeffa33d8cd754f4f84b0ce7f530ae4.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂交树2/1.webp b/assets/作物/杂交树2/1.webp index 9af2fee..1bc2f96 100644 Binary files a/assets/作物/杂交树2/1.webp and b/assets/作物/杂交树2/1.webp differ diff --git a/assets/作物/杂交树2/1.webp.import b/assets/作物/杂交树2/1.webp.import index 3d6ea31..3a12572 100644 --- a/assets/作物/杂交树2/1.webp.import +++ b/assets/作物/杂交树2/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://p77ktpbl3i64" +uid="uid://bmg10yy6ysn2w" path="res://.godot/imported/1.webp-6fa286b5dfc88dedbeb4025f64505f7c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-6fa286b5dfc88dedbeb4025f64505f7c.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂交树2/2.webp b/assets/作物/杂交树2/2.webp index 7d48a37..d388d4a 100644 Binary files a/assets/作物/杂交树2/2.webp and b/assets/作物/杂交树2/2.webp differ diff --git a/assets/作物/杂交树2/2.webp.import b/assets/作物/杂交树2/2.webp.import index 8d303c9..e14f78d 100644 --- a/assets/作物/杂交树2/2.webp.import +++ b/assets/作物/杂交树2/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cnbqnclg4dxcc" +uid="uid://cdmkhiattiqcs" path="res://.godot/imported/2.webp-3517c9248a86d2227e92dc056df13816.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-3517c9248a86d2227e92dc056df13816.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂交树2/3.webp b/assets/作物/杂交树2/3.webp index 7d48a37..d388d4a 100644 Binary files a/assets/作物/杂交树2/3.webp and b/assets/作物/杂交树2/3.webp differ diff --git a/assets/作物/杂交树2/3.webp.import b/assets/作物/杂交树2/3.webp.import new file mode 100644 index 0000000..093236c --- /dev/null +++ b/assets/作物/杂交树2/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwv8q2m21c54k" +path="res://.godot/imported/3.webp-39f891da79a5093ca018d77eaf452725.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/杂交树2/3.webp" +dest_files=["res://.godot/imported/3.webp-39f891da79a5093ca018d77eaf452725.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/杂交树2/4.webp b/assets/作物/杂交树2/4.webp index 8a419be..76f8dcc 100644 Binary files a/assets/作物/杂交树2/4.webp and b/assets/作物/杂交树2/4.webp differ diff --git a/assets/作物/杂交树2/4.webp.import b/assets/作物/杂交树2/4.webp.import new file mode 100644 index 0000000..ffe087e --- /dev/null +++ b/assets/作物/杂交树2/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://g1hbfv4gxq3" +path="res://.godot/imported/4.webp-9f248f046f527869c5d5536e4a4f7ae2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/杂交树2/4.webp" +dest_files=["res://.godot/imported/4.webp-9f248f046f527869c5d5536e4a4f7ae2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/杂交树2/成熟.webp b/assets/作物/杂交树2/成熟.webp index 8a419be..76f8dcc 100644 Binary files a/assets/作物/杂交树2/成熟.webp and b/assets/作物/杂交树2/成熟.webp differ diff --git a/assets/作物/杂交树2/成熟.webp.import b/assets/作物/杂交树2/成熟.webp.import index 52e557e..faf6088 100644 --- a/assets/作物/杂交树2/成熟.webp.import +++ b/assets/作物/杂交树2/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cn4jb6b2kn6rc" +uid="uid://0f108x4ul3r8" path="res://.godot/imported/成熟.webp-2918402781a4f09d37f5052bbcfad098.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-2918402781a4f09d37f5052bbcfad098. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂草1/0.webp b/assets/作物/杂草1/0.webp index ce3887a..7a34667 100644 Binary files a/assets/作物/杂草1/0.webp and b/assets/作物/杂草1/0.webp differ diff --git a/assets/作物/杂草1/0.webp.import b/assets/作物/杂草1/0.webp.import index 74acf6b..ee63210 100644 --- a/assets/作物/杂草1/0.webp.import +++ b/assets/作物/杂草1/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d4gtwsglyt2ge" +uid="uid://4qk64toybyi0" path="res://.godot/imported/0.webp-4ec57e0e4e102c2ba9d1ba4cccb9a4ec.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-4ec57e0e4e102c2ba9d1ba4cccb9a4ec.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂草1/成熟.webp b/assets/作物/杂草1/成熟.webp index ce3887a..7a34667 100644 Binary files a/assets/作物/杂草1/成熟.webp and b/assets/作物/杂草1/成熟.webp differ diff --git a/assets/作物/杂草1/成熟.webp.import b/assets/作物/杂草1/成熟.webp.import index 1b3d2cd..b152fa6 100644 --- a/assets/作物/杂草1/成熟.webp.import +++ b/assets/作物/杂草1/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dytcjf0fafd6j" +uid="uid://cuaokn8e8xl3s" path="res://.godot/imported/成熟.webp-454a90590be396048120c4007ecb7874.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-454a90590be396048120c4007ecb7874. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂草2/0.webp b/assets/作物/杂草2/0.webp index 29d61ec..3f0ddb3 100644 Binary files a/assets/作物/杂草2/0.webp and b/assets/作物/杂草2/0.webp differ diff --git a/assets/作物/杂草2/0.webp.import b/assets/作物/杂草2/0.webp.import index b6940cb..b015ee4 100644 --- a/assets/作物/杂草2/0.webp.import +++ b/assets/作物/杂草2/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c3buyavqt86hv" +uid="uid://nnb27xsahxn" path="res://.godot/imported/0.webp-6f712d78cb4dddd3783a3c6b2f6f844c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-6f712d78cb4dddd3783a3c6b2f6f844c.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杂草2/成熟.webp b/assets/作物/杂草2/成熟.webp index 29d61ec..3f0ddb3 100644 Binary files a/assets/作物/杂草2/成熟.webp and b/assets/作物/杂草2/成熟.webp differ diff --git a/assets/作物/杂草2/成熟.webp.import b/assets/作物/杂草2/成熟.webp.import index 58308ad..d22aaad 100644 --- a/assets/作物/杂草2/成熟.webp.import +++ b/assets/作物/杂草2/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bci2k31jsoiyb" +uid="uid://dw6eljua6jncr" path="res://.godot/imported/成熟.webp-c290fd6c02d79fa3ab40276329a8c476.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-c290fd6c02d79fa3ab40276329a8c476. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杨桃/0.webp b/assets/作物/杨桃/0.webp index 734e57f..9373969 100644 Binary files a/assets/作物/杨桃/0.webp and b/assets/作物/杨桃/0.webp differ diff --git a/assets/作物/杨桃/0.webp.import b/assets/作物/杨桃/0.webp.import index 93fac45..4dbf21a 100644 --- a/assets/作物/杨桃/0.webp.import +++ b/assets/作物/杨桃/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ba6h1kfjerfew" +uid="uid://bdkjikx4kvqj3" path="res://.godot/imported/0.webp-d81abe90c10e79b8f100ee3517f4ab19.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-d81abe90c10e79b8f100ee3517f4ab19.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杨桃/1.webp b/assets/作物/杨桃/1.webp index ea4f0b8..e0a5e44 100644 Binary files a/assets/作物/杨桃/1.webp and b/assets/作物/杨桃/1.webp differ diff --git a/assets/作物/杨桃/1.webp.import b/assets/作物/杨桃/1.webp.import index 9f00a0f..23a6c7e 100644 --- a/assets/作物/杨桃/1.webp.import +++ b/assets/作物/杨桃/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cieokjucaeoly" +uid="uid://bwpwvas5vbcoy" path="res://.godot/imported/1.webp-d5d7bd69d85ab5e8f853e94286f5440f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-d5d7bd69d85ab5e8f853e94286f5440f.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杨桃/2.webp b/assets/作物/杨桃/2.webp index cabf61e..73ecf60 100644 Binary files a/assets/作物/杨桃/2.webp and b/assets/作物/杨桃/2.webp differ diff --git a/assets/作物/杨桃/2.webp.import b/assets/作物/杨桃/2.webp.import index 5f9b14e..5c32547 100644 --- a/assets/作物/杨桃/2.webp.import +++ b/assets/作物/杨桃/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://6cxri43d7pdt" +uid="uid://w5l7xmqw5cev" path="res://.godot/imported/2.webp-35b21c048c7a3d46011c31bdddebbc38.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-35b21c048c7a3d46011c31bdddebbc38.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杨桃/成熟.webp b/assets/作物/杨桃/成熟.webp index a57c166..93646cb 100644 Binary files a/assets/作物/杨桃/成熟.webp and b/assets/作物/杨桃/成熟.webp differ diff --git a/assets/作物/杨桃/成熟.webp.import b/assets/作物/杨桃/成熟.webp.import index 2e24acc..e26abc2 100644 --- a/assets/作物/杨桃/成熟.webp.import +++ b/assets/作物/杨桃/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://hqv8j2l6ivk5" +uid="uid://cqn5mhsoc36as" path="res://.godot/imported/成熟.webp-67f06cd4436bc5e52edb9e492bd06064.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-67f06cd4436bc5e52edb9e492bd06064. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/杨桃/收获物.webp b/assets/作物/杨桃/收获物.webp index 0d7a4c9..aef74cc 100644 Binary files a/assets/作物/杨桃/收获物.webp and b/assets/作物/杨桃/收获物.webp differ diff --git a/assets/作物/杨桃/收获物.webp.import b/assets/作物/杨桃/收获物.webp.import index e72f8a7..62dfdc5 100644 --- a/assets/作物/杨桃/收获物.webp.import +++ b/assets/作物/杨桃/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cc4mftapysqdh" +uid="uid://juafpp58sw6e" path="res://.godot/imported/收获物.webp-257fd2c9e0b6fe5e87fb8180ec47bbf1.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-257fd2c9e0b6fe5e87fb8180ec47bb [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/松露/0.webp b/assets/作物/松露/0.webp index 599e48e..37674dc 100644 Binary files a/assets/作物/松露/0.webp and b/assets/作物/松露/0.webp differ diff --git a/assets/作物/松露/0.webp.import b/assets/作物/松露/0.webp.import index 7fd9e5d..a20f4e9 100644 --- a/assets/作物/松露/0.webp.import +++ b/assets/作物/松露/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d32gu4siid8hf" +uid="uid://dxpkgxtml6wci" path="res://.godot/imported/0.webp-1360dffb714c29c1b2a8f0f919f55973.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-1360dffb714c29c1b2a8f0f919f55973.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/松露/1.webp b/assets/作物/松露/1.webp index 992bf81..fc1e911 100644 Binary files a/assets/作物/松露/1.webp and b/assets/作物/松露/1.webp differ diff --git a/assets/作物/松露/1.webp.import b/assets/作物/松露/1.webp.import index ca0d675..487a80f 100644 --- a/assets/作物/松露/1.webp.import +++ b/assets/作物/松露/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://din8p5wgqv4yd" +uid="uid://4vn8keme7ryn" path="res://.godot/imported/1.webp-70f705f9b2f22a8d108efb117d32a027.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-70f705f9b2f22a8d108efb117d32a027.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/松露/2.webp b/assets/作物/松露/2.webp index ed4e513..da8746d 100644 Binary files a/assets/作物/松露/2.webp and b/assets/作物/松露/2.webp differ diff --git a/assets/作物/松露/2.webp.import b/assets/作物/松露/2.webp.import index df9e0dd..e261b5c 100644 --- a/assets/作物/松露/2.webp.import +++ b/assets/作物/松露/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://mj5r1fd8gtfk" +uid="uid://dsq0yum5lljoh" path="res://.godot/imported/2.webp-2f9dc0f9185201a3bfeb916148599662.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-2f9dc0f9185201a3bfeb916148599662.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/松露/3.webp b/assets/作物/松露/3.webp index c8268ee..cc79499 100644 Binary files a/assets/作物/松露/3.webp and b/assets/作物/松露/3.webp differ diff --git a/assets/作物/松露/3.webp.import b/assets/作物/松露/3.webp.import new file mode 100644 index 0000000..001eb72 --- /dev/null +++ b/assets/作物/松露/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbisvvu7lts1r" +path="res://.godot/imported/3.webp-d66b5fbe8d54d2229b70bc6ee5bef338.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/松露/3.webp" +dest_files=["res://.godot/imported/3.webp-d66b5fbe8d54d2229b70bc6ee5bef338.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/松露/成熟.webp b/assets/作物/松露/成熟.webp index c8268ee..cc79499 100644 Binary files a/assets/作物/松露/成熟.webp and b/assets/作物/松露/成熟.webp differ diff --git a/assets/作物/松露/成熟.webp.import b/assets/作物/松露/成熟.webp.import index eb45ee2..7ddd92c 100644 --- a/assets/作物/松露/成熟.webp.import +++ b/assets/作物/松露/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bex3a1263s6de" +uid="uid://bin1y4e27v4m7" path="res://.godot/imported/成熟.webp-c1c290a3dfee79f10e89a80dafacd49e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-c1c290a3dfee79f10e89a80dafacd49e. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/松露/收获物.webp b/assets/作物/松露/收获物.webp index d92b175..8a10881 100644 Binary files a/assets/作物/松露/收获物.webp and b/assets/作物/松露/收获物.webp differ diff --git a/assets/作物/松露/收获物.webp.import b/assets/作物/松露/收获物.webp.import index 9ab8b80..0d309ef 100644 --- a/assets/作物/松露/收获物.webp.import +++ b/assets/作物/松露/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bkjiug6e6q4dv" +uid="uid://352h6nnve7od" path="res://.godot/imported/收获物.webp-9ac94b178fc8cc3de20c6365a985cace.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-9ac94b178fc8cc3de20c6365a985ca [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/枇杷/0.webp b/assets/作物/枇杷/0.webp index 50a6194..ba13bcb 100644 Binary files a/assets/作物/枇杷/0.webp and b/assets/作物/枇杷/0.webp differ diff --git a/assets/作物/枇杷/0.webp.import b/assets/作物/枇杷/0.webp.import index 06a6e6e..ac61384 100644 --- a/assets/作物/枇杷/0.webp.import +++ b/assets/作物/枇杷/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cnn5tfm3uxkwb" +uid="uid://bfbt1k03sa54i" path="res://.godot/imported/0.webp-7b54b272bb11636cd811338f911e71f4.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-7b54b272bb11636cd811338f911e71f4.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/枇杷/1.webp b/assets/作物/枇杷/1.webp index 19f1e4a..85340d8 100644 Binary files a/assets/作物/枇杷/1.webp and b/assets/作物/枇杷/1.webp differ diff --git a/assets/作物/枇杷/1.webp.import b/assets/作物/枇杷/1.webp.import index 163c0b8..c496aef 100644 --- a/assets/作物/枇杷/1.webp.import +++ b/assets/作物/枇杷/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c4knp1iiriftv" +uid="uid://bm1n0n5ugeiy" path="res://.godot/imported/1.webp-03fba7d136e2ace834d7e5153270bf86.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-03fba7d136e2ace834d7e5153270bf86.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/枇杷/2.webp b/assets/作物/枇杷/2.webp index 54d7f92..301b4d8 100644 Binary files a/assets/作物/枇杷/2.webp and b/assets/作物/枇杷/2.webp differ diff --git a/assets/作物/枇杷/2.webp.import b/assets/作物/枇杷/2.webp.import index 47e0b13..941f96b 100644 --- a/assets/作物/枇杷/2.webp.import +++ b/assets/作物/枇杷/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dk6g88irmp2i1" +uid="uid://cj1n6r2f200hr" path="res://.godot/imported/2.webp-8a8c4488e27172ac6c2ada47e2b395ef.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-8a8c4488e27172ac6c2ada47e2b395ef.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/枇杷/成熟.webp b/assets/作物/枇杷/成熟.webp index d691ea0..3af7564 100644 Binary files a/assets/作物/枇杷/成熟.webp and b/assets/作物/枇杷/成熟.webp differ diff --git a/assets/作物/枇杷/成熟.webp.import b/assets/作物/枇杷/成熟.webp.import index a82fba3..35c287f 100644 --- a/assets/作物/枇杷/成熟.webp.import +++ b/assets/作物/枇杷/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://h8lfle2ftota" +uid="uid://damv6jfoxa24r" path="res://.godot/imported/成熟.webp-4373d6a119fcc8dff8537919f22366de.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-4373d6a119fcc8dff8537919f22366de. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/枇杷/收获物.webp b/assets/作物/枇杷/收获物.webp index 7f6da61..f77ed57 100644 Binary files a/assets/作物/枇杷/收获物.webp and b/assets/作物/枇杷/收获物.webp differ diff --git a/assets/作物/枇杷/收获物.webp.import b/assets/作物/枇杷/收获物.webp.import index 601f184..fd2c8d4 100644 --- a/assets/作物/枇杷/收获物.webp.import +++ b/assets/作物/枇杷/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cqn1hsobwhcfc" +uid="uid://mn80twoio78o" path="res://.godot/imported/收获物.webp-34d9ff239e31f724fef1bc0bb1a82e4a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-34d9ff239e31f724fef1bc0bb1a82e [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/柠檬/0.webp b/assets/作物/柠檬/0.webp index f0019d2..a9fb6d2 100644 Binary files a/assets/作物/柠檬/0.webp and b/assets/作物/柠檬/0.webp differ diff --git a/assets/作物/柠檬/0.webp.import b/assets/作物/柠檬/0.webp.import index 94961c8..189196c 100644 --- a/assets/作物/柠檬/0.webp.import +++ b/assets/作物/柠檬/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bqj48q3bx0xh4" +uid="uid://cdgsx8xxvtf1s" path="res://.godot/imported/0.webp-c1b646292ad71c841f7ee854fa39ae1b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-c1b646292ad71c841f7ee854fa39ae1b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/柠檬/1.webp b/assets/作物/柠檬/1.webp index 52a1ff0..2efc2ae 100644 Binary files a/assets/作物/柠檬/1.webp and b/assets/作物/柠檬/1.webp differ diff --git a/assets/作物/柠檬/1.webp.import b/assets/作物/柠檬/1.webp.import index 376efbd..cc6fc23 100644 --- a/assets/作物/柠檬/1.webp.import +++ b/assets/作物/柠檬/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dwtuyla02wjsc" +uid="uid://bk0rspt3ob5vn" path="res://.godot/imported/1.webp-00d5beb8e9f7b2dab90c1bd008f8f88e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-00d5beb8e9f7b2dab90c1bd008f8f88e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/柠檬/成熟.webp b/assets/作物/柠檬/成熟.webp index 8c290cc..fa322d4 100644 Binary files a/assets/作物/柠檬/成熟.webp and b/assets/作物/柠檬/成熟.webp differ diff --git a/assets/作物/柠檬/成熟.webp.import b/assets/作物/柠檬/成熟.webp.import index 17d0f1d..ff2bf8c 100644 --- a/assets/作物/柠檬/成熟.webp.import +++ b/assets/作物/柠檬/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cgw4yrrdd0j08" +uid="uid://fr1w627p4f3s" path="res://.godot/imported/成熟.webp-b4266fce35d84d57c27cde4b4991928a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-b4266fce35d84d57c27cde4b4991928a. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/柠檬/收获物.webp b/assets/作物/柠檬/收获物.webp index 7cbc29e..e70cbd5 100644 Binary files a/assets/作物/柠檬/收获物.webp and b/assets/作物/柠檬/收获物.webp differ diff --git a/assets/作物/柠檬/收获物.webp.import b/assets/作物/柠檬/收获物.webp.import index 9f1eab4..f8b15e5 100644 --- a/assets/作物/柠檬/收获物.webp.import +++ b/assets/作物/柠檬/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dcrbw6xd4kcf" +uid="uid://c8oj65jue151w" path="res://.godot/imported/收获物.webp-2efd168d69e22e9557be444206270bf5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-2efd168d69e22e9557be444206270b [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/柿子/0.webp b/assets/作物/柿子/0.webp index 759354e..db017c2 100644 Binary files a/assets/作物/柿子/0.webp and b/assets/作物/柿子/0.webp differ diff --git a/assets/作物/柿子/0.webp.import b/assets/作物/柿子/0.webp.import index f2cc9af..8920304 100644 --- a/assets/作物/柿子/0.webp.import +++ b/assets/作物/柿子/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d2bxp805g16y4" +uid="uid://bxkktoevnpodo" path="res://.godot/imported/0.webp-8a0a70c0f1e1e5c162114c81c4cf46c2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-8a0a70c0f1e1e5c162114c81c4cf46c2.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/柿子/1.webp b/assets/作物/柿子/1.webp index 76aeb46..5050394 100644 Binary files a/assets/作物/柿子/1.webp and b/assets/作物/柿子/1.webp differ diff --git a/assets/作物/柿子/1.webp.import b/assets/作物/柿子/1.webp.import index b4f6fcf..4a8ba71 100644 --- a/assets/作物/柿子/1.webp.import +++ b/assets/作物/柿子/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c30xq6u32aob3" +uid="uid://dndex6ghx7x6v" path="res://.godot/imported/1.webp-05d5501e5cdc299a0f487da9a2e3aaa4.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-05d5501e5cdc299a0f487da9a2e3aaa4.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/柿子/1750004710072.webp b/assets/作物/柿子/1750004710072.webp index cd5430e..80a3534 100644 Binary files a/assets/作物/柿子/1750004710072.webp and b/assets/作物/柿子/1750004710072.webp differ diff --git a/assets/作物/柿子/1750004710072.webp.import b/assets/作物/柿子/1750004710072.webp.import index 5a62c2c..3ac3a88 100644 --- a/assets/作物/柿子/1750004710072.webp.import +++ b/assets/作物/柿子/1750004710072.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b21w6gp85xy8h" +uid="uid://cms1jpi18sk1v" path="res://.godot/imported/1750004710072.webp-c213b6dc1cf1b0c1cf3cd84881c6d978.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750004710072.webp-c213b6dc1cf1b0c1cf3cd84881 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/柿子/2.webp b/assets/作物/柿子/2.webp index 66b4ff1..758d826 100644 Binary files a/assets/作物/柿子/2.webp and b/assets/作物/柿子/2.webp differ diff --git a/assets/作物/柿子/2.webp.import b/assets/作物/柿子/2.webp.import new file mode 100644 index 0000000..a32eef0 --- /dev/null +++ b/assets/作物/柿子/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://16ll8vundb81" +path="res://.godot/imported/2.webp-0f5dc698ab9819679d1c40f1b56d94b1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/柿子/2.webp" +dest_files=["res://.godot/imported/2.webp-0f5dc698ab9819679d1c40f1b56d94b1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/柿子/3.webp b/assets/作物/柿子/3.webp index ab9f0bd..fe94129 100644 Binary files a/assets/作物/柿子/3.webp and b/assets/作物/柿子/3.webp differ diff --git a/assets/作物/柿子/3.webp.import b/assets/作物/柿子/3.webp.import new file mode 100644 index 0000000..850ad58 --- /dev/null +++ b/assets/作物/柿子/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bi6gmw3l6xrrn" +path="res://.godot/imported/3.webp-5001b32d66db4aa5495792e5bbc439a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/柿子/3.webp" +dest_files=["res://.godot/imported/3.webp-5001b32d66db4aa5495792e5bbc439a5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/柿子/4.webp b/assets/作物/柿子/4.webp index 2e0f6d6..18532a5 100644 Binary files a/assets/作物/柿子/4.webp and b/assets/作物/柿子/4.webp differ diff --git a/assets/作物/柿子/4.webp.import b/assets/作物/柿子/4.webp.import new file mode 100644 index 0000000..50a000a --- /dev/null +++ b/assets/作物/柿子/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cii1ehl2vb3es" +path="res://.godot/imported/4.webp-9b8d3aafe1633ddf9a9d6468860e8240.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/柿子/4.webp" +dest_files=["res://.godot/imported/4.webp-9b8d3aafe1633ddf9a9d6468860e8240.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/柿子/5.webp b/assets/作物/柿子/5.webp index 76aeb46..5050394 100644 Binary files a/assets/作物/柿子/5.webp and b/assets/作物/柿子/5.webp differ diff --git a/assets/作物/柿子/5.webp.import b/assets/作物/柿子/5.webp.import new file mode 100644 index 0000000..736c1c2 --- /dev/null +++ b/assets/作物/柿子/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://duc0vyxv5gg51" +path="res://.godot/imported/5.webp-23dee867a458d1cd7e7d986128fa2cac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/柿子/5.webp" +dest_files=["res://.godot/imported/5.webp-23dee867a458d1cd7e7d986128fa2cac.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/柿子/6.webp b/assets/作物/柿子/6.webp index d9730e9..11a18cd 100644 Binary files a/assets/作物/柿子/6.webp and b/assets/作物/柿子/6.webp differ diff --git a/assets/作物/柿子/6.webp.import b/assets/作物/柿子/6.webp.import new file mode 100644 index 0000000..e4f8dfd --- /dev/null +++ b/assets/作物/柿子/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1fuy7bnoq6cp" +path="res://.godot/imported/6.webp-d73498533c1b2692abb4005ce30509c0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/柿子/6.webp" +dest_files=["res://.godot/imported/6.webp-d73498533c1b2692abb4005ce30509c0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/柿子/7.webp b/assets/作物/柿子/7.webp index b0fedd5..67a9717 100644 Binary files a/assets/作物/柿子/7.webp and b/assets/作物/柿子/7.webp differ diff --git a/assets/作物/柿子/7.webp.import b/assets/作物/柿子/7.webp.import new file mode 100644 index 0000000..ca715c1 --- /dev/null +++ b/assets/作物/柿子/7.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0etv3bkorkjn" +path="res://.godot/imported/7.webp-bd6e803da6bca34d42bc7b47343e0657.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/柿子/7.webp" +dest_files=["res://.godot/imported/7.webp-bd6e803da6bca34d42bc7b47343e0657.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/柿子/8.webp b/assets/作物/柿子/8.webp index d333fae..fdcfc98 100644 Binary files a/assets/作物/柿子/8.webp and b/assets/作物/柿子/8.webp differ diff --git a/assets/作物/柿子/8.webp.import b/assets/作物/柿子/8.webp.import new file mode 100644 index 0000000..1b5fd1b --- /dev/null +++ b/assets/作物/柿子/8.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwgidav7dmwfh" +path="res://.godot/imported/8.webp-1be6e6b9b7b6db9ebebeaabde0b57073.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/柿子/8.webp" +dest_files=["res://.godot/imported/8.webp-1be6e6b9b7b6db9ebebeaabde0b57073.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/柿子/成熟.webp b/assets/作物/柿子/成熟.webp index d333fae..fdcfc98 100644 Binary files a/assets/作物/柿子/成熟.webp and b/assets/作物/柿子/成熟.webp differ diff --git a/assets/作物/柿子/成熟.webp.import b/assets/作物/柿子/成熟.webp.import index b8bcd5f..0bca4e1 100644 --- a/assets/作物/柿子/成熟.webp.import +++ b/assets/作物/柿子/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cgprqj4lw7r2w" +uid="uid://013k648t3mrj" path="res://.godot/imported/成熟.webp-d1812130a0f5c27d8860c0dc7f3d773b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-d1812130a0f5c27d8860c0dc7f3d773b. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/柿子/收获物.webp b/assets/作物/柿子/收获物.webp index 85d99b5..f6bd02c 100644 Binary files a/assets/作物/柿子/收获物.webp and b/assets/作物/柿子/收获物.webp differ diff --git a/assets/作物/柿子/收获物.webp.import b/assets/作物/柿子/收获物.webp.import index 61b589a..c86380f 100644 --- a/assets/作物/柿子/收获物.webp.import +++ b/assets/作物/柿子/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b4qrdcksubavy" +uid="uid://c81dl2vkxvi5u" path="res://.godot/imported/收获物.webp-28ee868cbead655946a2018e4f6bae07.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-28ee868cbead655946a2018e4f6bae [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/栀子花/0.webp b/assets/作物/栀子花/0.webp index 6cca61a..dd75180 100644 Binary files a/assets/作物/栀子花/0.webp and b/assets/作物/栀子花/0.webp differ diff --git a/assets/作物/栀子花/0.webp.import b/assets/作物/栀子花/0.webp.import index f21fc0a..16eb6a7 100644 --- a/assets/作物/栀子花/0.webp.import +++ b/assets/作物/栀子花/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bq4s5brdkxyw1" +uid="uid://d3i5818qnp284" path="res://.godot/imported/0.webp-99541cf8688ff87e9eed7b3a6cf7f425.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-99541cf8688ff87e9eed7b3a6cf7f425.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/栀子花/1.webp b/assets/作物/栀子花/1.webp index 72a619e..6303f0a 100644 Binary files a/assets/作物/栀子花/1.webp and b/assets/作物/栀子花/1.webp differ diff --git a/assets/作物/栀子花/1.webp.import b/assets/作物/栀子花/1.webp.import index ca3526b..08bd0cc 100644 --- a/assets/作物/栀子花/1.webp.import +++ b/assets/作物/栀子花/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://pypcccskpi7e" +uid="uid://bri7pc5rfss7x" path="res://.godot/imported/1.webp-56c14ea8fa9706943a1773dd577d58a6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-56c14ea8fa9706943a1773dd577d58a6.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/栀子花/1750004909635.webp b/assets/作物/栀子花/1750004909635.webp index 5540665..da66233 100644 Binary files a/assets/作物/栀子花/1750004909635.webp and b/assets/作物/栀子花/1750004909635.webp differ diff --git a/assets/作物/栀子花/1750004909635.webp.import b/assets/作物/栀子花/1750004909635.webp.import index cd20c6b..c01c306 100644 --- a/assets/作物/栀子花/1750004909635.webp.import +++ b/assets/作物/栀子花/1750004909635.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c7you8yws1ie8" +uid="uid://bbt0xipu12dmg" path="res://.godot/imported/1750004909635.webp-231412e9e58e46beb159e729d8b24ed6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750004909635.webp-231412e9e58e46beb159e729d8 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/栀子花/2.webp b/assets/作物/栀子花/2.webp index 4788447..2dcabef 100644 Binary files a/assets/作物/栀子花/2.webp and b/assets/作物/栀子花/2.webp differ diff --git a/assets/作物/栀子花/2.webp.import b/assets/作物/栀子花/2.webp.import index 50d1f05..37daed6 100644 --- a/assets/作物/栀子花/2.webp.import +++ b/assets/作物/栀子花/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bfktr7jqg6bec" +uid="uid://bjn5b3egmiwju" path="res://.godot/imported/2.webp-aa004172cf913d3d1c89fe4994899c05.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-aa004172cf913d3d1c89fe4994899c05.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/栀子花/3.webp b/assets/作物/栀子花/3.webp index 7fd97b7..5f06aa4 100644 Binary files a/assets/作物/栀子花/3.webp and b/assets/作物/栀子花/3.webp differ diff --git a/assets/作物/栀子花/3.webp.import b/assets/作物/栀子花/3.webp.import new file mode 100644 index 0000000..29da0a5 --- /dev/null +++ b/assets/作物/栀子花/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://beukpiwnxviiu" +path="res://.godot/imported/3.webp-434679d47b634d31e543164667121b26.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/栀子花/3.webp" +dest_files=["res://.godot/imported/3.webp-434679d47b634d31e543164667121b26.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/栀子花/成熟.webp b/assets/作物/栀子花/成熟.webp index 7fd97b7..5f06aa4 100644 Binary files a/assets/作物/栀子花/成熟.webp and b/assets/作物/栀子花/成熟.webp differ diff --git a/assets/作物/栀子花/成熟.webp.import b/assets/作物/栀子花/成熟.webp.import index 27f0258..114b762 100644 --- a/assets/作物/栀子花/成熟.webp.import +++ b/assets/作物/栀子花/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dbn8tvae88cwe" +uid="uid://b1cl7l163dhdg" path="res://.godot/imported/成熟.webp-39bc6a5bf2a2da5826b597cc1014aaab.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-39bc6a5bf2a2da5826b597cc1014aaab. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/栀子花/收获物.webp b/assets/作物/栀子花/收获物.webp index cda3df7..fc06a41 100644 Binary files a/assets/作物/栀子花/收获物.webp and b/assets/作物/栀子花/收获物.webp differ diff --git a/assets/作物/栀子花/收获物.webp.import b/assets/作物/栀子花/收获物.webp.import index 43d4585..a96fd9d 100644 --- a/assets/作物/栀子花/收获物.webp.import +++ b/assets/作物/栀子花/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://o16sdirkog2m" +uid="uid://cwyciiwoxsfe6" path="res://.godot/imported/收获物.webp-e3f0e569dbee953351da3d66d1699909.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-e3f0e569dbee953351da3d66d16999 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/树莓/0.webp b/assets/作物/树莓/0.webp index c1799e1..bb9ad9b 100644 Binary files a/assets/作物/树莓/0.webp and b/assets/作物/树莓/0.webp differ diff --git a/assets/作物/树莓/0.webp.import b/assets/作物/树莓/0.webp.import index b839058..4195d3b 100644 --- a/assets/作物/树莓/0.webp.import +++ b/assets/作物/树莓/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cvspiscawp266" +uid="uid://dww2aog6mxema" path="res://.godot/imported/0.webp-9a9a2b4e8bde6d75390c069094649183.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-9a9a2b4e8bde6d75390c069094649183.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/树莓/1.webp b/assets/作物/树莓/1.webp index b08935b..f70dba5 100644 Binary files a/assets/作物/树莓/1.webp and b/assets/作物/树莓/1.webp differ diff --git a/assets/作物/树莓/1.webp.import b/assets/作物/树莓/1.webp.import index 0d1ceec..414b63b 100644 --- a/assets/作物/树莓/1.webp.import +++ b/assets/作物/树莓/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cnpgm1arps7fs" +uid="uid://byj3omsiijh5l" path="res://.godot/imported/1.webp-9eb0772d0fc5fe811a15b97d827091dd.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-9eb0772d0fc5fe811a15b97d827091dd.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/树莓/2.webp b/assets/作物/树莓/2.webp index 14b93bb..5988a96 100644 Binary files a/assets/作物/树莓/2.webp and b/assets/作物/树莓/2.webp differ diff --git a/assets/作物/树莓/2.webp.import b/assets/作物/树莓/2.webp.import index d89bff6..5be60af 100644 --- a/assets/作物/树莓/2.webp.import +++ b/assets/作物/树莓/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bkvarwbs7nwcw" +uid="uid://drvpv3bbkghds" path="res://.godot/imported/2.webp-59fa83f60faaff025f6a025c78e7a3d5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-59fa83f60faaff025f6a025c78e7a3d5.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/树莓/3.webp b/assets/作物/树莓/3.webp index d748f71..580a8b3 100644 Binary files a/assets/作物/树莓/3.webp and b/assets/作物/树莓/3.webp differ diff --git a/assets/作物/树莓/3.webp.import b/assets/作物/树莓/3.webp.import index d739f21..01a931e 100644 --- a/assets/作物/树莓/3.webp.import +++ b/assets/作物/树莓/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://8bwfg38agx4b" +uid="uid://djkliskjfxnco" path="res://.godot/imported/3.webp-b256f828e598d0ca771574b1c55d662d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-b256f828e598d0ca771574b1c55d662d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/树莓/4.webp b/assets/作物/树莓/4.webp index 6aeea74..da8dc56 100644 Binary files a/assets/作物/树莓/4.webp and b/assets/作物/树莓/4.webp differ diff --git a/assets/作物/树莓/4.webp.import b/assets/作物/树莓/4.webp.import new file mode 100644 index 0000000..df94fd3 --- /dev/null +++ b/assets/作物/树莓/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1ms3uajlkwp0" +path="res://.godot/imported/4.webp-a355b7cb42b7d3a9330090a143f23205.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/树莓/4.webp" +dest_files=["res://.godot/imported/4.webp-a355b7cb42b7d3a9330090a143f23205.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/树莓/5.webp b/assets/作物/树莓/5.webp index d748f71..580a8b3 100644 Binary files a/assets/作物/树莓/5.webp and b/assets/作物/树莓/5.webp differ diff --git a/assets/作物/树莓/5.webp.import b/assets/作物/树莓/5.webp.import new file mode 100644 index 0000000..af0e2be --- /dev/null +++ b/assets/作物/树莓/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bogv4qbriub3r" +path="res://.godot/imported/5.webp-65a8a313c9aa3fcfcb925a19ccfe100b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/树莓/5.webp" +dest_files=["res://.godot/imported/5.webp-65a8a313c9aa3fcfcb925a19ccfe100b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/树莓/6.webp b/assets/作物/树莓/6.webp index 7430939..d9660e3 100644 Binary files a/assets/作物/树莓/6.webp and b/assets/作物/树莓/6.webp differ diff --git a/assets/作物/树莓/6.webp.import b/assets/作物/树莓/6.webp.import new file mode 100644 index 0000000..658e85b --- /dev/null +++ b/assets/作物/树莓/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://evdiudlf0u6y" +path="res://.godot/imported/6.webp-df6486e1434c588021fa52f0706c2664.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/树莓/6.webp" +dest_files=["res://.godot/imported/6.webp-df6486e1434c588021fa52f0706c2664.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/树莓/成熟.webp b/assets/作物/树莓/成熟.webp index 7430939..d9660e3 100644 Binary files a/assets/作物/树莓/成熟.webp and b/assets/作物/树莓/成熟.webp differ diff --git a/assets/作物/树莓/成熟.webp.import b/assets/作物/树莓/成熟.webp.import index 47b4c70..3e13337 100644 --- a/assets/作物/树莓/成熟.webp.import +++ b/assets/作物/树莓/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d0hrhd76ynkt3" +uid="uid://ckxrjeo374ly" path="res://.godot/imported/成熟.webp-0d5ecc04a26b78c67ce355fa2a0b6a87.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-0d5ecc04a26b78c67ce355fa2a0b6a87. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/树莓/收获物.webp b/assets/作物/树莓/收获物.webp index 397b05e..2175ec5 100644 Binary files a/assets/作物/树莓/收获物.webp and b/assets/作物/树莓/收获物.webp differ diff --git a/assets/作物/树莓/收获物.webp.import b/assets/作物/树莓/收获物.webp.import index 3b774e8..5239f3d 100644 --- a/assets/作物/树莓/收获物.webp.import +++ b/assets/作物/树莓/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cdek703rcje" +uid="uid://d1nsxnpa7cl0i" path="res://.godot/imported/收获物.webp-e269f46e777f7b47c3aad5adfef6d96a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-e269f46e777f7b47c3aad5adfef6d9 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/桃子/0.webp b/assets/作物/桃子/0.webp index 220f1f5..52a3039 100644 Binary files a/assets/作物/桃子/0.webp and b/assets/作物/桃子/0.webp differ diff --git a/assets/作物/桃子/0.webp.import b/assets/作物/桃子/0.webp.import index f688537..d6fb27c 100644 --- a/assets/作物/桃子/0.webp.import +++ b/assets/作物/桃子/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://baq6o5qd7ul2q" +uid="uid://c5j53f8awofoa" path="res://.godot/imported/0.webp-bb81276e238024b61da70598d95824e6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-bb81276e238024b61da70598d95824e6.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/桃子/1.webp b/assets/作物/桃子/1.webp index 68ffb34..5d3ebfe 100644 Binary files a/assets/作物/桃子/1.webp and b/assets/作物/桃子/1.webp differ diff --git a/assets/作物/桃子/1.webp.import b/assets/作物/桃子/1.webp.import index b560d70..9468261 100644 --- a/assets/作物/桃子/1.webp.import +++ b/assets/作物/桃子/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://q4cxp00f51tg" +uid="uid://ckbofxp40yhdv" path="res://.godot/imported/1.webp-cc4ecc14ad485c7412fa6851f9132552.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-cc4ecc14ad485c7412fa6851f9132552.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/桃子/2.webp b/assets/作物/桃子/2.webp index d101682..5a2bf8f 100644 Binary files a/assets/作物/桃子/2.webp and b/assets/作物/桃子/2.webp differ diff --git a/assets/作物/桃子/2.webp.import b/assets/作物/桃子/2.webp.import index 1d2c867..fadfb41 100644 --- a/assets/作物/桃子/2.webp.import +++ b/assets/作物/桃子/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://p0rcyexpxwn8" +uid="uid://cu4wchhcnmu26" path="res://.godot/imported/2.webp-3110b7812d8dee2a309f5845e41cffda.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-3110b7812d8dee2a309f5845e41cffda.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/桃子/3.webp b/assets/作物/桃子/3.webp index cc1a25e..d0e0c4b 100644 Binary files a/assets/作物/桃子/3.webp and b/assets/作物/桃子/3.webp differ diff --git a/assets/作物/桃子/3.webp.import b/assets/作物/桃子/3.webp.import index 1759490..50f85a3 100644 --- a/assets/作物/桃子/3.webp.import +++ b/assets/作物/桃子/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://s8ytmiyai0gx" +uid="uid://n2tj48sn4fwq" path="res://.godot/imported/3.webp-21945bf1cd7e881b4be1aac707ebcace.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-21945bf1cd7e881b4be1aac707ebcace.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/桃子/成熟.webp b/assets/作物/桃子/成熟.webp index a7dbc43..98fb9e6 100644 Binary files a/assets/作物/桃子/成熟.webp and b/assets/作物/桃子/成熟.webp differ diff --git a/assets/作物/桃子/成熟.webp.import b/assets/作物/桃子/成熟.webp.import index 996cb6a..aec56a3 100644 --- a/assets/作物/桃子/成熟.webp.import +++ b/assets/作物/桃子/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b8gt1lutfswf" +uid="uid://d0jyonltphlw2" path="res://.godot/imported/成熟.webp-4bd0cd504c853f5fe59a2c218de92b76.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-4bd0cd504c853f5fe59a2c218de92b76. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/桃子/收获物.webp b/assets/作物/桃子/收获物.webp index d894dc1..de527ab 100644 Binary files a/assets/作物/桃子/收获物.webp and b/assets/作物/桃子/收获物.webp differ diff --git a/assets/作物/桃子/收获物.webp.import b/assets/作物/桃子/收获物.webp.import index 0690229..d6b1a28 100644 --- a/assets/作物/桃子/收获物.webp.import +++ b/assets/作物/桃子/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://navo2kkhgu2f" +uid="uid://3xmm6kdpm1gs" path="res://.godot/imported/收获物.webp-fde755b9000a64e3df83ebf53bb0f8cb.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-fde755b9000a64e3df83ebf53bb0f8 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/梨子/0.webp b/assets/作物/梨子/0.webp index da97fea..157aeed 100644 Binary files a/assets/作物/梨子/0.webp and b/assets/作物/梨子/0.webp differ diff --git a/assets/作物/梨子/0.webp.import b/assets/作物/梨子/0.webp.import index 0df5c08..08212e8 100644 --- a/assets/作物/梨子/0.webp.import +++ b/assets/作物/梨子/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ku8fyp4q4rbh" +uid="uid://dp00h4dvvcfgl" path="res://.godot/imported/0.webp-ccb8aae9251bd6e96e14632254fff961.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-ccb8aae9251bd6e96e14632254fff961.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/梨子/1.webp b/assets/作物/梨子/1.webp index 3bca9ad..583a1ce 100644 Binary files a/assets/作物/梨子/1.webp and b/assets/作物/梨子/1.webp differ diff --git a/assets/作物/梨子/1.webp.import b/assets/作物/梨子/1.webp.import index 1af1bce..e3f1327 100644 --- a/assets/作物/梨子/1.webp.import +++ b/assets/作物/梨子/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cmguf3dkj432d" +uid="uid://8h0p64x18kcd" path="res://.godot/imported/1.webp-b3972b134ec7b22a6ffc32c88c330135.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-b3972b134ec7b22a6ffc32c88c330135.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/梨子/2.webp b/assets/作物/梨子/2.webp index 3fd6fde..a0785f9 100644 Binary files a/assets/作物/梨子/2.webp and b/assets/作物/梨子/2.webp differ diff --git a/assets/作物/梨子/2.webp.import b/assets/作物/梨子/2.webp.import index ccbc8b5..971f227 100644 --- a/assets/作物/梨子/2.webp.import +++ b/assets/作物/梨子/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bqodufljni6nq" +uid="uid://bcqknuunjprv3" path="res://.godot/imported/2.webp-a6710926780f989857c427ac26d89520.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-a6710926780f989857c427ac26d89520.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/梨子/成熟.webp b/assets/作物/梨子/成熟.webp index f371418..df0c58b 100644 Binary files a/assets/作物/梨子/成熟.webp and b/assets/作物/梨子/成熟.webp differ diff --git a/assets/作物/梨子/成熟.webp.import b/assets/作物/梨子/成熟.webp.import index 7c87b9a..c3d82ad 100644 --- a/assets/作物/梨子/成熟.webp.import +++ b/assets/作物/梨子/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://orovode2aaw" +uid="uid://5x2psyvvakxg" path="res://.godot/imported/成熟.webp-1a083dbc9f37bb0b9aa3aeba77a15532.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-1a083dbc9f37bb0b9aa3aeba77a15532. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/梨子/收获物.webp b/assets/作物/梨子/收获物.webp index 2f856d0..95270e3 100644 Binary files a/assets/作物/梨子/收获物.webp and b/assets/作物/梨子/收获物.webp differ diff --git a/assets/作物/梨子/收获物.webp.import b/assets/作物/梨子/收获物.webp.import index 700048c..81bb191 100644 --- a/assets/作物/梨子/收获物.webp.import +++ b/assets/作物/梨子/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://jme00htn37vk" +uid="uid://dcym3c1k3r1" path="res://.godot/imported/收获物.webp-1d7858e4a2e0d48ba8d3e12e308e8653.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-1d7858e4a2e0d48ba8d3e12e308e86 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/椰子/0.webp b/assets/作物/椰子/0.webp index 2f8d71f..673c21b 100644 Binary files a/assets/作物/椰子/0.webp and b/assets/作物/椰子/0.webp differ diff --git a/assets/作物/椰子/0.webp.import b/assets/作物/椰子/0.webp.import index 777bd05..02ebcfc 100644 --- a/assets/作物/椰子/0.webp.import +++ b/assets/作物/椰子/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://csaof2bqpvdks" +uid="uid://bcsj0ta5imury" path="res://.godot/imported/0.webp-0de958632f8d972b2737ad5cb29afe88.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-0de958632f8d972b2737ad5cb29afe88.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/椰子/1.webp b/assets/作物/椰子/1.webp index 02caa6e..72d053d 100644 Binary files a/assets/作物/椰子/1.webp and b/assets/作物/椰子/1.webp differ diff --git a/assets/作物/椰子/1.webp.import b/assets/作物/椰子/1.webp.import index 82747aa..dd8ce19 100644 --- a/assets/作物/椰子/1.webp.import +++ b/assets/作物/椰子/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://7djbjmj3ry4y" +uid="uid://dud4luykylkym" path="res://.godot/imported/1.webp-0a6191774f180dff3c671bbc0b7b6b7d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-0a6191774f180dff3c671bbc0b7b6b7d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/椰子/2.webp b/assets/作物/椰子/2.webp index 915a667..05ae0d8 100644 Binary files a/assets/作物/椰子/2.webp and b/assets/作物/椰子/2.webp differ diff --git a/assets/作物/椰子/2.webp.import b/assets/作物/椰子/2.webp.import index 1d63bda..5a5cce3 100644 --- a/assets/作物/椰子/2.webp.import +++ b/assets/作物/椰子/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bkhm7c6nqgurr" +uid="uid://brl3q6f15hd7b" path="res://.godot/imported/2.webp-0225bbb739e6a9c2c69fa66053dafe52.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-0225bbb739e6a9c2c69fa66053dafe52.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/椰子/awa.webp b/assets/作物/椰子/awa.webp index ab85e54..477620e 100644 Binary files a/assets/作物/椰子/awa.webp and b/assets/作物/椰子/awa.webp differ diff --git a/assets/作物/椰子/awa.webp.import b/assets/作物/椰子/awa.webp.import index 084920f..8b08955 100644 --- a/assets/作物/椰子/awa.webp.import +++ b/assets/作物/椰子/awa.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://der37xqefjb5p" +uid="uid://vcim3xypxvor" path="res://.godot/imported/awa.webp-baf091d20cbc4b6dbf21a7610bb1c3c3.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/awa.webp-baf091d20cbc4b6dbf21a7610bb1c3c3.cte [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/椰子/成熟.webp b/assets/作物/椰子/成熟.webp index 342fb77..8967a2e 100644 Binary files a/assets/作物/椰子/成熟.webp and b/assets/作物/椰子/成熟.webp differ diff --git a/assets/作物/椰子/成熟.webp.import b/assets/作物/椰子/成熟.webp.import index 0bd8c58..bd8dc03 100644 --- a/assets/作物/椰子/成熟.webp.import +++ b/assets/作物/椰子/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dug1coeus45b2" +uid="uid://dfbpfamn1ncp4" path="res://.godot/imported/成熟.webp-3f4d8ab327f76f6538de3f439367218a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-3f4d8ab327f76f6538de3f439367218a. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/椰子/收获物.webp b/assets/作物/椰子/收获物.webp index e4d333c..0b51dde 100644 Binary files a/assets/作物/椰子/收获物.webp and b/assets/作物/椰子/收获物.webp differ diff --git a/assets/作物/椰子/收获物.webp.import b/assets/作物/椰子/收获物.webp.import index 9c9dedf..31590c4 100644 --- a/assets/作物/椰子/收获物.webp.import +++ b/assets/作物/椰子/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bahby6xyb3en" +uid="uid://cqw1oi7ri0qwa" path="res://.godot/imported/收获物.webp-c37a06bc8b0ffdfecda2be5284dc0fdb.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-c37a06bc8b0ffdfecda2be5284dc0f [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子/0.webp b/assets/作物/橘子/0.webp index cb2800f..b01ebd6 100644 Binary files a/assets/作物/橘子/0.webp and b/assets/作物/橘子/0.webp differ diff --git a/assets/作物/橘子/0.webp.import b/assets/作物/橘子/0.webp.import index f34f46b..75a6fdd 100644 --- a/assets/作物/橘子/0.webp.import +++ b/assets/作物/橘子/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://by3c8ge2x0t6n" +uid="uid://dabi1xhgeak6n" path="res://.godot/imported/0.webp-4602f72df58dc6779e2fde2619c9c56c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-4602f72df58dc6779e2fde2619c9c56c.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子/1.webp b/assets/作物/橘子/1.webp index 674cfb0..51e6016 100644 Binary files a/assets/作物/橘子/1.webp and b/assets/作物/橘子/1.webp differ diff --git a/assets/作物/橘子/1.webp.import b/assets/作物/橘子/1.webp.import index cc1ad7f..c847dd1 100644 --- a/assets/作物/橘子/1.webp.import +++ b/assets/作物/橘子/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://blup84i21a33g" +uid="uid://cgjg5n5bn07j2" path="res://.godot/imported/1.webp-87913d16c0d30d55d7d9388468f58c1e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-87913d16c0d30d55d7d9388468f58c1e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子/1750050535127.webp b/assets/作物/橘子/1750050535127.webp index cc3fedb..db72c55 100644 Binary files a/assets/作物/橘子/1750050535127.webp and b/assets/作物/橘子/1750050535127.webp differ diff --git a/assets/作物/橘子/1750050535127.webp.import b/assets/作物/橘子/1750050535127.webp.import index 96732cf..9f36a62 100644 --- a/assets/作物/橘子/1750050535127.webp.import +++ b/assets/作物/橘子/1750050535127.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dc6an0hnovb07" +uid="uid://yf3x0sb207rx" path="res://.godot/imported/1750050535127.webp-096643e1292801d2eb6ceda523086c77.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750050535127.webp-096643e1292801d2eb6ceda523 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子/2.webp b/assets/作物/橘子/2.webp index 23d2821..439a6fe 100644 Binary files a/assets/作物/橘子/2.webp and b/assets/作物/橘子/2.webp differ diff --git a/assets/作物/橘子/2.webp.import b/assets/作物/橘子/2.webp.import index 05c1744..eee2a07 100644 --- a/assets/作物/橘子/2.webp.import +++ b/assets/作物/橘子/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dsoayoul3ktkj" +uid="uid://dp0fa70d7mwoc" path="res://.godot/imported/2.webp-ffc11a7f5ab69480866edec3a0a79f77.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-ffc11a7f5ab69480866edec3a0a79f77.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子/3.webp b/assets/作物/橘子/3.webp index 2ad0b57..d194898 100644 Binary files a/assets/作物/橘子/3.webp and b/assets/作物/橘子/3.webp differ diff --git a/assets/作物/橘子/3.webp.import b/assets/作物/橘子/3.webp.import index f688517..d7b9524 100644 --- a/assets/作物/橘子/3.webp.import +++ b/assets/作物/橘子/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://vbojrqjpj4xg" +uid="uid://5tkuryw0nj8a" path="res://.godot/imported/3.webp-e912eb2f6fda1be3264eee4d1dbed81b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-e912eb2f6fda1be3264eee4d1dbed81b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子/4.webp b/assets/作物/橘子/4.webp index 7365a57..7a70055 100644 Binary files a/assets/作物/橘子/4.webp and b/assets/作物/橘子/4.webp differ diff --git a/assets/作物/橘子/4.webp.import b/assets/作物/橘子/4.webp.import index 4eb7327..6d397d7 100644 --- a/assets/作物/橘子/4.webp.import +++ b/assets/作物/橘子/4.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dekcrdykbb00g" +uid="uid://da3u5so0web3t" path="res://.godot/imported/4.webp-76062ea2620026cabd0e650151dba0b0.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/4.webp-76062ea2620026cabd0e650151dba0b0.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子/5.webp b/assets/作物/橘子/5.webp index de1ae0a..c9bbfa6 100644 Binary files a/assets/作物/橘子/5.webp and b/assets/作物/橘子/5.webp differ diff --git a/assets/作物/橘子/5.webp.import b/assets/作物/橘子/5.webp.import index f8d1476..0293510 100644 --- a/assets/作物/橘子/5.webp.import +++ b/assets/作物/橘子/5.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c44p7rk2n8gnh" +uid="uid://ckm6vk2ibdhhf" path="res://.godot/imported/5.webp-8481bdd17a58a1d3b48ace33b0abcdef.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/5.webp-8481bdd17a58a1d3b48ace33b0abcdef.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子/成熟.webp b/assets/作物/橘子/成熟.webp index de1ae0a..c9bbfa6 100644 Binary files a/assets/作物/橘子/成熟.webp and b/assets/作物/橘子/成熟.webp differ diff --git a/assets/作物/橘子/成熟.webp.import b/assets/作物/橘子/成熟.webp.import index 017484d..0943829 100644 --- a/assets/作物/橘子/成熟.webp.import +++ b/assets/作物/橘子/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cg6eqscier73i" +uid="uid://3hx7y3qeot5d" path="res://.godot/imported/成熟.webp-abbe481ca93282f3ded695abb951674c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-abbe481ca93282f3ded695abb951674c. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子/收获物.webp b/assets/作物/橘子/收获物.webp index 86044c5..8f2847d 100644 Binary files a/assets/作物/橘子/收获物.webp and b/assets/作物/橘子/收获物.webp differ diff --git a/assets/作物/橘子/收获物.webp.import b/assets/作物/橘子/收获物.webp.import index 3b06d5f..1c089fa 100644 --- a/assets/作物/橘子/收获物.webp.import +++ b/assets/作物/橘子/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bjjbbi4xv8ci8" +uid="uid://yg1lxescl2bu" path="res://.godot/imported/收获物.webp-6111157524434336f69bb1de5fed45f8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-6111157524434336f69bb1de5fed45 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/橘子树/0.webp b/assets/作物/橘子树/0.webp index cb2800f..b01ebd6 100644 Binary files a/assets/作物/橘子树/0.webp and b/assets/作物/橘子树/0.webp differ diff --git a/assets/作物/橘子树/0.webp.import b/assets/作物/橘子树/0.webp.import new file mode 100644 index 0000000..ebf074c --- /dev/null +++ b/assets/作物/橘子树/0.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bblpd8bbkqkym" +path="res://.godot/imported/0.webp-b9bfbce65f136cc499d0860db95a4979.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/橘子树/0.webp" +dest_files=["res://.godot/imported/0.webp-b9bfbce65f136cc499d0860db95a4979.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/橘子树/1.webp b/assets/作物/橘子树/1.webp index 674cfb0..51e6016 100644 Binary files a/assets/作物/橘子树/1.webp and b/assets/作物/橘子树/1.webp differ diff --git a/assets/作物/橘子树/1.webp.import b/assets/作物/橘子树/1.webp.import new file mode 100644 index 0000000..a242b5d --- /dev/null +++ b/assets/作物/橘子树/1.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://brm68uidisq5o" +path="res://.godot/imported/1.webp-6c6418e85d1ce330d43dce4aaa6b4785.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/橘子树/1.webp" +dest_files=["res://.godot/imported/1.webp-6c6418e85d1ce330d43dce4aaa6b4785.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/橘子树/2.webp b/assets/作物/橘子树/2.webp index 23d2821..439a6fe 100644 Binary files a/assets/作物/橘子树/2.webp and b/assets/作物/橘子树/2.webp differ diff --git a/assets/作物/橘子树/2.webp.import b/assets/作物/橘子树/2.webp.import new file mode 100644 index 0000000..fd457e8 --- /dev/null +++ b/assets/作物/橘子树/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1cvuycwjcu13" +path="res://.godot/imported/2.webp-f527c3ab16e4a110115721e958a83774.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/橘子树/2.webp" +dest_files=["res://.godot/imported/2.webp-f527c3ab16e4a110115721e958a83774.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/橘子树/3.webp b/assets/作物/橘子树/3.webp index 2ad0b57..d194898 100644 Binary files a/assets/作物/橘子树/3.webp and b/assets/作物/橘子树/3.webp differ diff --git a/assets/作物/橘子树/3.webp.import b/assets/作物/橘子树/3.webp.import new file mode 100644 index 0000000..9074717 --- /dev/null +++ b/assets/作物/橘子树/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqbd0y4k4mawt" +path="res://.godot/imported/3.webp-a2a83cfb3a6c746070df8d110f914992.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/橘子树/3.webp" +dest_files=["res://.godot/imported/3.webp-a2a83cfb3a6c746070df8d110f914992.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/橘子树/4.webp b/assets/作物/橘子树/4.webp index 7365a57..7a70055 100644 Binary files a/assets/作物/橘子树/4.webp and b/assets/作物/橘子树/4.webp differ diff --git a/assets/作物/橘子树/4.webp.import b/assets/作物/橘子树/4.webp.import new file mode 100644 index 0000000..82e6265 --- /dev/null +++ b/assets/作物/橘子树/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://df5n5hmptoru0" +path="res://.godot/imported/4.webp-4ce50b560c2bfaad2554843508134374.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/橘子树/4.webp" +dest_files=["res://.godot/imported/4.webp-4ce50b560c2bfaad2554843508134374.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/橘子树/5.webp b/assets/作物/橘子树/5.webp index de1ae0a..c9bbfa6 100644 Binary files a/assets/作物/橘子树/5.webp and b/assets/作物/橘子树/5.webp differ diff --git a/assets/作物/橘子树/5.webp.import b/assets/作物/橘子树/5.webp.import new file mode 100644 index 0000000..1356f1b --- /dev/null +++ b/assets/作物/橘子树/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdtdemklk1051" +path="res://.godot/imported/5.webp-f78a6b63660ed8f3d185f6aeba02ac57.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/橘子树/5.webp" +dest_files=["res://.godot/imported/5.webp-f78a6b63660ed8f3d185f6aeba02ac57.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/橘子树/6.webp b/assets/作物/橘子树/6.webp index de1ae0a..c9bbfa6 100644 Binary files a/assets/作物/橘子树/6.webp and b/assets/作物/橘子树/6.webp differ diff --git a/assets/作物/橘子树/6.webp.import b/assets/作物/橘子树/6.webp.import new file mode 100644 index 0000000..14b8db2 --- /dev/null +++ b/assets/作物/橘子树/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dese6wd86t4vx" +path="res://.godot/imported/6.webp-a23c87b3b2c184d6a71650cb9d4140c5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/橘子树/6.webp" +dest_files=["res://.godot/imported/6.webp-a23c87b3b2c184d6a71650cb9d4140c5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/洋葱/0.webp b/assets/作物/洋葱/0.webp index affcc90..4497972 100644 Binary files a/assets/作物/洋葱/0.webp and b/assets/作物/洋葱/0.webp differ diff --git a/assets/作物/洋葱/0.webp.import b/assets/作物/洋葱/0.webp.import index fcee6c0..8747960 100644 --- a/assets/作物/洋葱/0.webp.import +++ b/assets/作物/洋葱/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://db6syq7m4irra" +uid="uid://t0eqvvkrivk2" path="res://.godot/imported/0.webp-2b5af44ddaca9e824745606f267f979d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-2b5af44ddaca9e824745606f267f979d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/洋葱/1.webp b/assets/作物/洋葱/1.webp index bca3346..f5a11f4 100644 Binary files a/assets/作物/洋葱/1.webp and b/assets/作物/洋葱/1.webp differ diff --git a/assets/作物/洋葱/1.webp.import b/assets/作物/洋葱/1.webp.import index 7cc4779..219118e 100644 --- a/assets/作物/洋葱/1.webp.import +++ b/assets/作物/洋葱/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dp0tvchm16mx5" +uid="uid://36hq3ncwro5t" path="res://.godot/imported/1.webp-bc0d9a7fe46b2ec927f76756715338da.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-bc0d9a7fe46b2ec927f76756715338da.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/洋葱/2.webp b/assets/作物/洋葱/2.webp index 6803baf..e74d881 100644 Binary files a/assets/作物/洋葱/2.webp and b/assets/作物/洋葱/2.webp differ diff --git a/assets/作物/洋葱/2.webp.import b/assets/作物/洋葱/2.webp.import index 1c306ad..850d30f 100644 --- a/assets/作物/洋葱/2.webp.import +++ b/assets/作物/洋葱/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://elmjqxrawsho" +uid="uid://bjn31tbhube6s" path="res://.godot/imported/2.webp-93546c741a09d825147af979aedcf613.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-93546c741a09d825147af979aedcf613.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/洋葱/3.webp b/assets/作物/洋葱/3.webp index c4e4126..ba2fc16 100644 Binary files a/assets/作物/洋葱/3.webp and b/assets/作物/洋葱/3.webp differ diff --git a/assets/作物/洋葱/3.webp.import b/assets/作物/洋葱/3.webp.import index 09b74a3..79df442 100644 --- a/assets/作物/洋葱/3.webp.import +++ b/assets/作物/洋葱/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d03npvwa8bhdj" +uid="uid://cwt7nxw7jgsl5" path="res://.godot/imported/3.webp-0e3ee3bb25d4d8fbec1cb7ea7ee36230.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-0e3ee3bb25d4d8fbec1cb7ea7ee36230.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/洋葱/4.webp b/assets/作物/洋葱/4.webp index 43b4611..5a8691e 100644 Binary files a/assets/作物/洋葱/4.webp and b/assets/作物/洋葱/4.webp differ diff --git a/assets/作物/洋葱/4.webp.import b/assets/作物/洋葱/4.webp.import new file mode 100644 index 0000000..31d12ad --- /dev/null +++ b/assets/作物/洋葱/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bufchr731gt21" +path="res://.godot/imported/4.webp-1ebec3b17edea57a95aa84ad704f146f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/洋葱/4.webp" +dest_files=["res://.godot/imported/4.webp-1ebec3b17edea57a95aa84ad704f146f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/洋葱/成熟.webp b/assets/作物/洋葱/成熟.webp index 43b4611..5a8691e 100644 Binary files a/assets/作物/洋葱/成熟.webp and b/assets/作物/洋葱/成熟.webp differ diff --git a/assets/作物/洋葱/成熟.webp.import b/assets/作物/洋葱/成熟.webp.import index 26390c8..8768f44 100644 --- a/assets/作物/洋葱/成熟.webp.import +++ b/assets/作物/洋葱/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b4i7unltnhgd7" +uid="uid://cjx5rnvf4jv55" path="res://.godot/imported/成熟.webp-0d78aa94de8ee9c0e326312a8581712e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-0d78aa94de8ee9c0e326312a8581712e. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/洋葱/收获物.webp b/assets/作物/洋葱/收获物.webp index 312fec0..27590cf 100644 Binary files a/assets/作物/洋葱/收获物.webp and b/assets/作物/洋葱/收获物.webp differ diff --git a/assets/作物/洋葱/收获物.webp.import b/assets/作物/洋葱/收获物.webp.import index 661ed77..d2f38f3 100644 --- a/assets/作物/洋葱/收获物.webp.import +++ b/assets/作物/洋葱/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dr635jdpro70k" +uid="uid://c8dowwol1o3lh" path="res://.godot/imported/收获物.webp-d69a05746a86491ee44f5ff5b9dcdcba.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-d69a05746a86491ee44f5ff5b9dcdc [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/牵牛花/0.webp b/assets/作物/牵牛花/0.webp index c8b084a..5e4d51a 100644 Binary files a/assets/作物/牵牛花/0.webp and b/assets/作物/牵牛花/0.webp differ diff --git a/assets/作物/牵牛花/0.webp.import b/assets/作物/牵牛花/0.webp.import index 1766c69..d4bd3ee 100644 --- a/assets/作物/牵牛花/0.webp.import +++ b/assets/作物/牵牛花/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dcr5t4htwei6b" +uid="uid://df718757pukoa" path="res://.godot/imported/0.webp-e4897e418051d2866186b1a21ea09757.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-e4897e418051d2866186b1a21ea09757.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/牵牛花/1.webp b/assets/作物/牵牛花/1.webp index 9bbbe3d..b024abe 100644 Binary files a/assets/作物/牵牛花/1.webp and b/assets/作物/牵牛花/1.webp differ diff --git a/assets/作物/牵牛花/1.webp.import b/assets/作物/牵牛花/1.webp.import index bfa2a8d..a4c6b90 100644 --- a/assets/作物/牵牛花/1.webp.import +++ b/assets/作物/牵牛花/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c1qcg5w88r06y" +uid="uid://jxynbu5j2861" path="res://.godot/imported/1.webp-3d8fbeef22eb0d2d3a9274e935a2208e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-3d8fbeef22eb0d2d3a9274e935a2208e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/牵牛花/1750004251410.webp b/assets/作物/牵牛花/1750004251410.webp index 305c7cc..1060d40 100644 Binary files a/assets/作物/牵牛花/1750004251410.webp and b/assets/作物/牵牛花/1750004251410.webp differ diff --git a/assets/作物/牵牛花/1750004251410.webp.import b/assets/作物/牵牛花/1750004251410.webp.import index e423816..d1a02d9 100644 --- a/assets/作物/牵牛花/1750004251410.webp.import +++ b/assets/作物/牵牛花/1750004251410.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dp32p7kb580go" +uid="uid://b4t5b2vywud3t" path="res://.godot/imported/1750004251410.webp-3f450bc318c05413918f2dd03b6bb342.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750004251410.webp-3f450bc318c05413918f2dd03b [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/牵牛花/2.webp b/assets/作物/牵牛花/2.webp index 0466b29..30becdc 100644 Binary files a/assets/作物/牵牛花/2.webp and b/assets/作物/牵牛花/2.webp differ diff --git a/assets/作物/牵牛花/2.webp.import b/assets/作物/牵牛花/2.webp.import index dde2704..520a566 100644 --- a/assets/作物/牵牛花/2.webp.import +++ b/assets/作物/牵牛花/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://fnmnxqqb7pk2" +uid="uid://pyrtfy7ns2cb" path="res://.godot/imported/2.webp-f9119b60d2ba5c4f4ef0583c525df44b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-f9119b60d2ba5c4f4ef0583c525df44b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/牵牛花/成熟.webp b/assets/作物/牵牛花/成熟.webp index 81fd060..76d7192 100644 Binary files a/assets/作物/牵牛花/成熟.webp and b/assets/作物/牵牛花/成熟.webp differ diff --git a/assets/作物/牵牛花/成熟.webp.import b/assets/作物/牵牛花/成熟.webp.import index 699758e..d6997c2 100644 --- a/assets/作物/牵牛花/成熟.webp.import +++ b/assets/作物/牵牛花/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cenklmes868ik" +uid="uid://c3eu155ykmxcb" path="res://.godot/imported/成熟.webp-31a61c5e8f557487b7aa9c63bfde5983.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-31a61c5e8f557487b7aa9c63bfde5983. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/牵牛花/收获物.webp b/assets/作物/牵牛花/收获物.webp index 2d59974..ab2905a 100644 Binary files a/assets/作物/牵牛花/收获物.webp and b/assets/作物/牵牛花/收获物.webp differ diff --git a/assets/作物/牵牛花/收获物.webp.import b/assets/作物/牵牛花/收获物.webp.import index 3d300c7..83aa267 100644 --- a/assets/作物/牵牛花/收获物.webp.import +++ b/assets/作物/牵牛花/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bpphpx1t5mkdr" +uid="uid://beqb4606so7xe" path="res://.godot/imported/收获物.webp-9d3d13d582718c1838f9bf6c8f8873cd.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-9d3d13d582718c1838f9bf6c8f8873 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/玉米/0.webp b/assets/作物/玉米/0.webp index acc0fe1..b5a63c4 100644 Binary files a/assets/作物/玉米/0.webp and b/assets/作物/玉米/0.webp differ diff --git a/assets/作物/玉米/0.webp.import b/assets/作物/玉米/0.webp.import index c6e28ee..324bb84 100644 --- a/assets/作物/玉米/0.webp.import +++ b/assets/作物/玉米/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c3cxh54wsgnm6" +uid="uid://b81pmq8wl4wv" path="res://.godot/imported/0.webp-4558d84b3b6f770f4edba4abbe03ff14.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-4558d84b3b6f770f4edba4abbe03ff14.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/玉米/1.webp b/assets/作物/玉米/1.webp index 6498cb3..97c63c9 100644 Binary files a/assets/作物/玉米/1.webp and b/assets/作物/玉米/1.webp differ diff --git a/assets/作物/玉米/1.webp.import b/assets/作物/玉米/1.webp.import new file mode 100644 index 0000000..72c0dd8 --- /dev/null +++ b/assets/作物/玉米/1.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b6o2gj41o1dtd" +path="res://.godot/imported/1.webp-c4651cb35f221c08e549d761842aff99.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/玉米/1.webp" +dest_files=["res://.godot/imported/1.webp-c4651cb35f221c08e549d761842aff99.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/玉米/成熟.webp b/assets/作物/玉米/成熟.webp index 6498cb3..97c63c9 100644 Binary files a/assets/作物/玉米/成熟.webp and b/assets/作物/玉米/成熟.webp differ diff --git a/assets/作物/玉米/成熟.webp.import b/assets/作物/玉米/成熟.webp.import index 13ea429..0ad45ac 100644 --- a/assets/作物/玉米/成熟.webp.import +++ b/assets/作物/玉米/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dfhmqvd25lcc0" +uid="uid://b5yhliy5fg11s" path="res://.godot/imported/成熟.webp-d7bfc53cc49880f3bdef0e17f8338492.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-d7bfc53cc49880f3bdef0e17f8338492. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/玉米/收获物.webp b/assets/作物/玉米/收获物.webp index f08714d..2345b05 100644 Binary files a/assets/作物/玉米/收获物.webp and b/assets/作物/玉米/收获物.webp differ diff --git a/assets/作物/玉米/收获物.webp.import b/assets/作物/玉米/收获物.webp.import index 2c1d4ae..b41075e 100644 --- a/assets/作物/玉米/收获物.webp.import +++ b/assets/作物/玉米/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://i1coaewv3fif" +uid="uid://bgpkw6pvws5yi" path="res://.godot/imported/收获物.webp-b0b85d49c3873fcd42d2926b5703e042.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-b0b85d49c3873fcd42d2926b5703e0 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/玫瑰花/0.webp b/assets/作物/玫瑰花/0.webp index a3d77fe..9bae61d 100644 Binary files a/assets/作物/玫瑰花/0.webp and b/assets/作物/玫瑰花/0.webp differ diff --git a/assets/作物/玫瑰花/0.webp.import b/assets/作物/玫瑰花/0.webp.import index 456505c..29b5fc3 100644 --- a/assets/作物/玫瑰花/0.webp.import +++ b/assets/作物/玫瑰花/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://findkgt8fg36" +uid="uid://bssagi21fj688" path="res://.godot/imported/0.webp-9146328db4bf2abfc01b5903d40f309d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-9146328db4bf2abfc01b5903d40f309d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/玫瑰花/1.webp b/assets/作物/玫瑰花/1.webp index a8602f8..cdc9bf1 100644 Binary files a/assets/作物/玫瑰花/1.webp and b/assets/作物/玫瑰花/1.webp differ diff --git a/assets/作物/玫瑰花/1.webp.import b/assets/作物/玫瑰花/1.webp.import index 81d47b9..2efeb71 100644 --- a/assets/作物/玫瑰花/1.webp.import +++ b/assets/作物/玫瑰花/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dbnyopcdn2j2t" +uid="uid://cqyxhervymogg" path="res://.godot/imported/1.webp-e4bfbbb43ac4a6ee9a723049edbb6964.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-e4bfbbb43ac4a6ee9a723049edbb6964.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/玫瑰花/2.webp b/assets/作物/玫瑰花/2.webp index d284cc1..d8af601 100644 Binary files a/assets/作物/玫瑰花/2.webp and b/assets/作物/玫瑰花/2.webp differ diff --git a/assets/作物/玫瑰花/2.webp.import b/assets/作物/玫瑰花/2.webp.import index 16a31ad..0a334eb 100644 --- a/assets/作物/玫瑰花/2.webp.import +++ b/assets/作物/玫瑰花/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cpgtst6dacqha" +uid="uid://csx02mqqs01tq" path="res://.godot/imported/2.webp-78bcd3da9887ba59db8481f36d881190.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-78bcd3da9887ba59db8481f36d881190.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/玫瑰花/3.webp b/assets/作物/玫瑰花/3.webp index a5353bf..cb4449b 100644 Binary files a/assets/作物/玫瑰花/3.webp and b/assets/作物/玫瑰花/3.webp differ diff --git a/assets/作物/玫瑰花/3.webp.import b/assets/作物/玫瑰花/3.webp.import new file mode 100644 index 0000000..a89a3fb --- /dev/null +++ b/assets/作物/玫瑰花/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6hwgx83882n8" +path="res://.godot/imported/3.webp-16f33975c9b7166627166ac431498dc8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/玫瑰花/3.webp" +dest_files=["res://.godot/imported/3.webp-16f33975c9b7166627166ac431498dc8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/玫瑰花/4.webp b/assets/作物/玫瑰花/4.webp index ae9578a..2d8da73 100644 Binary files a/assets/作物/玫瑰花/4.webp and b/assets/作物/玫瑰花/4.webp differ diff --git a/assets/作物/玫瑰花/4.webp.import b/assets/作物/玫瑰花/4.webp.import new file mode 100644 index 0000000..59048ef --- /dev/null +++ b/assets/作物/玫瑰花/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rs8p4wx4mu7u" +path="res://.godot/imported/4.webp-a23cdd98f2ca911c1f61bd42827cf9a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/玫瑰花/4.webp" +dest_files=["res://.godot/imported/4.webp-a23cdd98f2ca911c1f61bd42827cf9a3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/玫瑰花/成熟.webp b/assets/作物/玫瑰花/成熟.webp index ae9578a..2d8da73 100644 Binary files a/assets/作物/玫瑰花/成熟.webp and b/assets/作物/玫瑰花/成熟.webp differ diff --git a/assets/作物/玫瑰花/成熟.webp.import b/assets/作物/玫瑰花/成熟.webp.import index 3ac71eb..0402ffd 100644 --- a/assets/作物/玫瑰花/成熟.webp.import +++ b/assets/作物/玫瑰花/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dyywu0nr1jwoi" +uid="uid://ciedqmf86a4y0" path="res://.godot/imported/成熟.webp-a51f43e2109d09258a2e41552926ccc3.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-a51f43e2109d09258a2e41552926ccc3. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/玫瑰花/收获物.webp b/assets/作物/玫瑰花/收获物.webp index 8b018fa..3f1f6fa 100644 Binary files a/assets/作物/玫瑰花/收获物.webp and b/assets/作物/玫瑰花/收获物.webp differ diff --git a/assets/作物/玫瑰花/收获物.webp.import b/assets/作物/玫瑰花/收获物.webp.import index 2f61401..519318d 100644 --- a/assets/作物/玫瑰花/收获物.webp.import +++ b/assets/作物/玫瑰花/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bmq2tilcws4dy" +uid="uid://laqicia7i3n" path="res://.godot/imported/收获物.webp-32f2572f859f73c89c3d8ae90044d6bd.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-32f2572f859f73c89c3d8ae90044d6 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甘蔗/0.webp b/assets/作物/甘蔗/0.webp index ebb4fd6..08e1bc7 100644 Binary files a/assets/作物/甘蔗/0.webp and b/assets/作物/甘蔗/0.webp differ diff --git a/assets/作物/甘蔗/0.webp.import b/assets/作物/甘蔗/0.webp.import index 91c9c6b..5cb8d80 100644 --- a/assets/作物/甘蔗/0.webp.import +++ b/assets/作物/甘蔗/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bqv7tgjy0pt3v" +uid="uid://cjniijuu6htu4" path="res://.godot/imported/0.webp-bb090f9706c09c5217ad8c639d77c0ca.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-bb090f9706c09c5217ad8c639d77c0ca.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甘蔗/1.webp b/assets/作物/甘蔗/1.webp index 3480d71..17698aa 100644 Binary files a/assets/作物/甘蔗/1.webp and b/assets/作物/甘蔗/1.webp differ diff --git a/assets/作物/甘蔗/1.webp.import b/assets/作物/甘蔗/1.webp.import index 7a5abe1..eba0e9e 100644 --- a/assets/作物/甘蔗/1.webp.import +++ b/assets/作物/甘蔗/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://vgtoy52pfism" +uid="uid://c3ogw1ubkowsb" path="res://.godot/imported/1.webp-937ee2d9ca0f3be7b150008a270b7730.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-937ee2d9ca0f3be7b150008a270b7730.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甘蔗/2.webp b/assets/作物/甘蔗/2.webp index 5318a96..204a8ac 100644 Binary files a/assets/作物/甘蔗/2.webp and b/assets/作物/甘蔗/2.webp differ diff --git a/assets/作物/甘蔗/2.webp.import b/assets/作物/甘蔗/2.webp.import index e99293b..3d02c45 100644 --- a/assets/作物/甘蔗/2.webp.import +++ b/assets/作物/甘蔗/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bn28uqfjpa7a7" +uid="uid://bdrquvurek8c0" path="res://.godot/imported/2.webp-d6456156f7fcb74c8912978411c49cfd.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-d6456156f7fcb74c8912978411c49cfd.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甘蔗/3.webp b/assets/作物/甘蔗/3.webp index ad8b5c8..b32a43e 100644 Binary files a/assets/作物/甘蔗/3.webp and b/assets/作物/甘蔗/3.webp differ diff --git a/assets/作物/甘蔗/3.webp.import b/assets/作物/甘蔗/3.webp.import index 3b48d85..058c3b6 100644 --- a/assets/作物/甘蔗/3.webp.import +++ b/assets/作物/甘蔗/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ceq3x6xr6qf6e" +uid="uid://cpyn6wchhdno2" path="res://.godot/imported/3.webp-9e551ead97eec2220c7168814a734c3b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-9e551ead97eec2220c7168814a734c3b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甘蔗/4.webp b/assets/作物/甘蔗/4.webp index 3ae74c5..b6cdb38 100644 Binary files a/assets/作物/甘蔗/4.webp and b/assets/作物/甘蔗/4.webp differ diff --git a/assets/作物/甘蔗/4.webp.import b/assets/作物/甘蔗/4.webp.import index 6361a00..104ffce 100644 --- a/assets/作物/甘蔗/4.webp.import +++ b/assets/作物/甘蔗/4.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://rhtkgoxfv3p8" +uid="uid://tjjekpaqvc7t" path="res://.godot/imported/4.webp-589128e0792fe0c9413a2a6ca2eb6708.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/4.webp-589128e0792fe0c9413a2a6ca2eb6708.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甘蔗/5.webp b/assets/作物/甘蔗/5.webp index 726ee1a..a4eda96 100644 Binary files a/assets/作物/甘蔗/5.webp and b/assets/作物/甘蔗/5.webp differ diff --git a/assets/作物/甘蔗/5.webp.import b/assets/作物/甘蔗/5.webp.import new file mode 100644 index 0000000..59f25a7 --- /dev/null +++ b/assets/作物/甘蔗/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://druygtniy0juv" +path="res://.godot/imported/5.webp-b537d57eeffe1c8d5b496f46196b7fb1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/甘蔗/5.webp" +dest_files=["res://.godot/imported/5.webp-b537d57eeffe1c8d5b496f46196b7fb1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/甘蔗/6.webp b/assets/作物/甘蔗/6.webp index 3ae74c5..b6cdb38 100644 Binary files a/assets/作物/甘蔗/6.webp and b/assets/作物/甘蔗/6.webp differ diff --git a/assets/作物/甘蔗/6.webp.import b/assets/作物/甘蔗/6.webp.import new file mode 100644 index 0000000..9a60c83 --- /dev/null +++ b/assets/作物/甘蔗/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxb81yo30q1fr" +path="res://.godot/imported/6.webp-1ca249b06f0a51e0ed99c7b06d7654ba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/甘蔗/6.webp" +dest_files=["res://.godot/imported/6.webp-1ca249b06f0a51e0ed99c7b06d7654ba.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/甘蔗/7.webp b/assets/作物/甘蔗/7.webp index d5fde5d..d1350e6 100644 Binary files a/assets/作物/甘蔗/7.webp and b/assets/作物/甘蔗/7.webp differ diff --git a/assets/作物/甘蔗/7.webp.import b/assets/作物/甘蔗/7.webp.import new file mode 100644 index 0000000..d174b0d --- /dev/null +++ b/assets/作物/甘蔗/7.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qiap8ggkcxmx" +path="res://.godot/imported/7.webp-ce597a768f9292e5b7f197c47154b2ad.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/甘蔗/7.webp" +dest_files=["res://.godot/imported/7.webp-ce597a768f9292e5b7f197c47154b2ad.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/甘蔗/成熟.webp b/assets/作物/甘蔗/成熟.webp index d5fde5d..d1350e6 100644 Binary files a/assets/作物/甘蔗/成熟.webp and b/assets/作物/甘蔗/成熟.webp differ diff --git a/assets/作物/甘蔗/成熟.webp.import b/assets/作物/甘蔗/成熟.webp.import index ff44342..5f141eb 100644 --- a/assets/作物/甘蔗/成熟.webp.import +++ b/assets/作物/甘蔗/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cdnwvyk82il0l" +uid="uid://581qaxobkr16" path="res://.godot/imported/成熟.webp-b1893247f209421ff1f247d81ba33930.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-b1893247f209421ff1f247d81ba33930. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甜菜/0.webp b/assets/作物/甜菜/0.webp index 3006a73..57102e9 100644 Binary files a/assets/作物/甜菜/0.webp and b/assets/作物/甜菜/0.webp differ diff --git a/assets/作物/甜菜/0.webp.import b/assets/作物/甜菜/0.webp.import index d21e7e0..2606fab 100644 --- a/assets/作物/甜菜/0.webp.import +++ b/assets/作物/甜菜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bk5jg67jhp3t2" +uid="uid://dkpradh7637kd" path="res://.godot/imported/0.webp-4e7e7dd28be200e40598e67b7b235d5b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-4e7e7dd28be200e40598e67b7b235d5b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甜菜/1.webp b/assets/作物/甜菜/1.webp index 2065230..2ccd879 100644 Binary files a/assets/作物/甜菜/1.webp and b/assets/作物/甜菜/1.webp differ diff --git a/assets/作物/甜菜/1.webp.import b/assets/作物/甜菜/1.webp.import index 1539c3e..6f4ae3f 100644 --- a/assets/作物/甜菜/1.webp.import +++ b/assets/作物/甜菜/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c24w6im8ckrlj" +uid="uid://ckniet41elcr1" path="res://.godot/imported/1.webp-ade6ebf19a17cf591b70b0b613cf702d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-ade6ebf19a17cf591b70b0b613cf702d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甜菜/2.webp b/assets/作物/甜菜/2.webp index 0629d5f..a2704bb 100644 Binary files a/assets/作物/甜菜/2.webp and b/assets/作物/甜菜/2.webp differ diff --git a/assets/作物/甜菜/2.webp.import b/assets/作物/甜菜/2.webp.import new file mode 100644 index 0000000..d1ea3c2 --- /dev/null +++ b/assets/作物/甜菜/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3v07a1ibussr" +path="res://.godot/imported/2.webp-47f0e3cf995a81ead6345044868ceeff.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/甜菜/2.webp" +dest_files=["res://.godot/imported/2.webp-47f0e3cf995a81ead6345044868ceeff.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/甜菜/3.webp b/assets/作物/甜菜/3.webp index 29e1611..499d9c2 100644 Binary files a/assets/作物/甜菜/3.webp and b/assets/作物/甜菜/3.webp differ diff --git a/assets/作物/甜菜/3.webp.import b/assets/作物/甜菜/3.webp.import new file mode 100644 index 0000000..c8f856f --- /dev/null +++ b/assets/作物/甜菜/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7kv12kogkv45" +path="res://.godot/imported/3.webp-6f601e76e77216561bd877cfe3757056.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/甜菜/3.webp" +dest_files=["res://.godot/imported/3.webp-6f601e76e77216561bd877cfe3757056.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/甜菜/4.webp b/assets/作物/甜菜/4.webp index 0603f45..ff94c3b 100644 Binary files a/assets/作物/甜菜/4.webp and b/assets/作物/甜菜/4.webp differ diff --git a/assets/作物/甜菜/4.webp.import b/assets/作物/甜菜/4.webp.import new file mode 100644 index 0000000..e3cf273 --- /dev/null +++ b/assets/作物/甜菜/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://q03mm2lly00t" +path="res://.godot/imported/4.webp-9fd02aca898545b156ceddd6e7a5e62c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/甜菜/4.webp" +dest_files=["res://.godot/imported/4.webp-9fd02aca898545b156ceddd6e7a5e62c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/甜菜/成熟.webp b/assets/作物/甜菜/成熟.webp index 0629d5f..a2704bb 100644 Binary files a/assets/作物/甜菜/成熟.webp and b/assets/作物/甜菜/成熟.webp differ diff --git a/assets/作物/甜菜/成熟.webp.import b/assets/作物/甜菜/成熟.webp.import index d66166c..f0682b1 100644 --- a/assets/作物/甜菜/成熟.webp.import +++ b/assets/作物/甜菜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://yrlx7xt3j0sj" +uid="uid://bgi1al4cd8ytr" path="res://.godot/imported/成熟.webp-76e06ae608df0bfac1fe414394a873ee.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-76e06ae608df0bfac1fe414394a873ee. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/甜菜/收获物.webp b/assets/作物/甜菜/收获物.webp index 05921fd..a975594 100644 Binary files a/assets/作物/甜菜/收获物.webp and b/assets/作物/甜菜/收获物.webp differ diff --git a/assets/作物/甜菜/收获物.webp.import b/assets/作物/甜菜/收获物.webp.import index 5017694..938e2c7 100644 --- a/assets/作物/甜菜/收获物.webp.import +++ b/assets/作物/甜菜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c6kl0lh8vuceo" +uid="uid://trjhanbk7u00" path="res://.godot/imported/收获物.webp-fe52475879731a1b9e9089c1dfc20f15.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-fe52475879731a1b9e9089c1dfc20f [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/生菜/0.webp b/assets/作物/生菜/0.webp index d8b6d1b..2f4b011 100644 Binary files a/assets/作物/生菜/0.webp and b/assets/作物/生菜/0.webp differ diff --git a/assets/作物/生菜/0.webp.import b/assets/作物/生菜/0.webp.import index 1301be1..6e17ac6 100644 --- a/assets/作物/生菜/0.webp.import +++ b/assets/作物/生菜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dxkd11qmikegi" +uid="uid://1af2m5lfl8hl" path="res://.godot/imported/0.webp-b5c18e1edb786aec8b8d2b96ced600e9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-b5c18e1edb786aec8b8d2b96ced600e9.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/生菜/成熟.webp b/assets/作物/生菜/成熟.webp index bb82779..8c0506f 100644 Binary files a/assets/作物/生菜/成熟.webp and b/assets/作物/生菜/成熟.webp differ diff --git a/assets/作物/生菜/成熟.webp.import b/assets/作物/生菜/成熟.webp.import index 87c64b4..95441d2 100644 --- a/assets/作物/生菜/成熟.webp.import +++ b/assets/作物/生菜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://be623pv00qm33" +uid="uid://bx27k7c157tjh" path="res://.godot/imported/成熟.webp-9c9826c22a68a0b2c4b5106dbc47cde2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-9c9826c22a68a0b2c4b5106dbc47cde2. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/生菜/收获物.webp b/assets/作物/生菜/收获物.webp index 1951b21..a6a2af6 100644 Binary files a/assets/作物/生菜/收获物.webp and b/assets/作物/生菜/收获物.webp differ diff --git a/assets/作物/生菜/收获物.webp.import b/assets/作物/生菜/收获物.webp.import index 65fad93..11763ad 100644 --- a/assets/作物/生菜/收获物.webp.import +++ b/assets/作物/生菜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c7wyd475ktf0i" +uid="uid://b56f4hq81onow" path="res://.godot/imported/收获物.webp-3463d042ce74c9dc4100ab1eaa7c0a1d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-3463d042ce74c9dc4100ab1eaa7c0a [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/番茄/0.webp b/assets/作物/番茄/0.webp index 7cdd97b..29e0a15 100644 Binary files a/assets/作物/番茄/0.webp and b/assets/作物/番茄/0.webp differ diff --git a/assets/作物/番茄/0.webp.import b/assets/作物/番茄/0.webp.import index 96d82d3..93515fb 100644 --- a/assets/作物/番茄/0.webp.import +++ b/assets/作物/番茄/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dyf334xni707" +uid="uid://d2vs1ncypmsmm" path="res://.godot/imported/0.webp-6b1176da7e94e966fccbc4975abf5d94.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-6b1176da7e94e966fccbc4975abf5d94.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/番茄/1.webp b/assets/作物/番茄/1.webp index a7df930..e9e83a0 100644 Binary files a/assets/作物/番茄/1.webp and b/assets/作物/番茄/1.webp differ diff --git a/assets/作物/番茄/1.webp.import b/assets/作物/番茄/1.webp.import index c2b0bbd..4210b49 100644 --- a/assets/作物/番茄/1.webp.import +++ b/assets/作物/番茄/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cpetg6cih0lau" +uid="uid://b1kfkrrx657iv" path="res://.godot/imported/1.webp-86a07d9c089645b3f9764f6fe6443d52.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-86a07d9c089645b3f9764f6fe6443d52.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/番茄/20250525114400.webp b/assets/作物/番茄/20250525114400.webp index ab96ab1..8d63b9a 100644 Binary files a/assets/作物/番茄/20250525114400.webp and b/assets/作物/番茄/20250525114400.webp differ diff --git a/assets/作物/番茄/20250525114400.webp.import b/assets/作物/番茄/20250525114400.webp.import new file mode 100644 index 0000000..74a2ba7 --- /dev/null +++ b/assets/作物/番茄/20250525114400.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cikwudy4nw52x" +path="res://.godot/imported/20250525114400.webp-c1d80cfd6e31cafd38019eca7e41cbd4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/番茄/20250525114400.webp" +dest_files=["res://.godot/imported/20250525114400.webp-c1d80cfd6e31cafd38019eca7e41cbd4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/番茄/20250525114414.webp b/assets/作物/番茄/20250525114414.webp index e5493a9..03466c3 100644 Binary files a/assets/作物/番茄/20250525114414.webp and b/assets/作物/番茄/20250525114414.webp differ diff --git a/assets/背景图片/背景15.webp.import b/assets/作物/番茄/20250525114414.webp.import similarity index 67% rename from assets/背景图片/背景15.webp.import rename to assets/作物/番茄/20250525114414.webp.import index 20a56f6..982cf0d 100644 --- a/assets/背景图片/背景15.webp.import +++ b/assets/作物/番茄/20250525114414.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dv0nv1vr4dib4" -path="res://.godot/imported/背景15.webp-b59f14a0c49cc9c072816712e3220efe.ctex" +uid="uid://bnj77su4q81ox" +path="res://.godot/imported/20250525114414.webp-c82e150bc02c09eb2502b2a5bc5fbfc7.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/背景图片/背景15.webp" -dest_files=["res://.godot/imported/背景15.webp-b59f14a0c49cc9c072816712e3220efe.ctex"] +source_file="res://assets/作物/番茄/20250525114414.webp" +dest_files=["res://.godot/imported/20250525114414.webp-c82e150bc02c09eb2502b2a5bc5fbfc7.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/番茄/20250525114429.webp b/assets/作物/番茄/20250525114429.webp index 7cdd97b..29e0a15 100644 Binary files a/assets/作物/番茄/20250525114429.webp and b/assets/作物/番茄/20250525114429.webp differ diff --git a/assets/作物/番茄/20250525114429.webp.import b/assets/作物/番茄/20250525114429.webp.import new file mode 100644 index 0000000..e1af38b --- /dev/null +++ b/assets/作物/番茄/20250525114429.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dih7repnw3qmo" +path="res://.godot/imported/20250525114429.webp-795270f9893cffa8d972252a227b9989.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/番茄/20250525114429.webp" +dest_files=["res://.godot/imported/20250525114429.webp-795270f9893cffa8d972252a227b9989.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/番茄/20250525114503.webp b/assets/作物/番茄/20250525114503.webp index 2f1f6bb..3f8f864 100644 Binary files a/assets/作物/番茄/20250525114503.webp and b/assets/作物/番茄/20250525114503.webp differ diff --git a/assets/作物/番茄/20250525114503.webp.import b/assets/作物/番茄/20250525114503.webp.import new file mode 100644 index 0000000..0563415 --- /dev/null +++ b/assets/作物/番茄/20250525114503.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwu062w3441yg" +path="res://.godot/imported/20250525114503.webp-51193e5c5f28356be7c9762205da294d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/番茄/20250525114503.webp" +dest_files=["res://.godot/imported/20250525114503.webp-51193e5c5f28356be7c9762205da294d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/番茄/20250525114524.webp b/assets/作物/番茄/20250525114524.webp index c46665f..47898fe 100644 Binary files a/assets/作物/番茄/20250525114524.webp and b/assets/作物/番茄/20250525114524.webp differ diff --git a/assets/作物/百合花/1750049771834.webp.import b/assets/作物/番茄/20250525114524.webp.import similarity index 64% rename from assets/作物/百合花/1750049771834.webp.import rename to assets/作物/番茄/20250525114524.webp.import index 1cff2d2..6baf82c 100644 --- a/assets/作物/百合花/1750049771834.webp.import +++ b/assets/作物/番茄/20250525114524.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://53785tfeyi77" -path="res://.godot/imported/1750049771834.webp-cb837959f7a5e09e5944ec436f218afa.ctex" +uid="uid://nwood07ffwaj" +path="res://.godot/imported/20250525114524.webp-e10539f2708be005afc39d7eeaf9939b.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/作物/百合花/1750049771834.webp" -dest_files=["res://.godot/imported/1750049771834.webp-cb837959f7a5e09e5944ec436f218afa.ctex"] +source_file="res://assets/作物/番茄/20250525114524.webp" +dest_files=["res://.godot/imported/20250525114524.webp-e10539f2708be005afc39d7eeaf9939b.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/番茄/20250525114542.webp b/assets/作物/番茄/20250525114542.webp index a7df930..e9e83a0 100644 Binary files a/assets/作物/番茄/20250525114542.webp and b/assets/作物/番茄/20250525114542.webp differ diff --git a/assets/土地面板图标/升级图标.webp.import b/assets/作物/番茄/20250525114542.webp.import similarity index 64% rename from assets/土地面板图标/升级图标.webp.import rename to assets/作物/番茄/20250525114542.webp.import index e64ce78..c212b08 100644 --- a/assets/土地面板图标/升级图标.webp.import +++ b/assets/作物/番茄/20250525114542.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bswq0nhkxup54" -path="res://.godot/imported/升级图标.webp-a668bcf77619d4c4d3256838639c9d92.ctex" +uid="uid://dw3reka7w168" +path="res://.godot/imported/20250525114542.webp-11493e28126b94c4ca01f0c1d0f62c02.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/土地面板图标/升级图标.webp" -dest_files=["res://.godot/imported/升级图标.webp-a668bcf77619d4c4d3256838639c9d92.ctex"] +source_file="res://assets/作物/番茄/20250525114542.webp" +dest_files=["res://.godot/imported/20250525114542.webp-11493e28126b94c4ca01f0c1d0f62c02.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/番茄/成熟.webp b/assets/作物/番茄/成熟.webp index e5493a9..03466c3 100644 Binary files a/assets/作物/番茄/成熟.webp and b/assets/作物/番茄/成熟.webp differ diff --git a/assets/作物/番茄/成熟.webp.import b/assets/作物/番茄/成熟.webp.import index c8a8d3e..68b48a3 100644 --- a/assets/作物/番茄/成熟.webp.import +++ b/assets/作物/番茄/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cea5eikll54bm" +uid="uid://bw5d6fujomnet" path="res://.godot/imported/成熟.webp-ea7abc19b7275bd3070f8aa1297f9a19.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-ea7abc19b7275bd3070f8aa1297f9a19. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/番茄/收获物.webp b/assets/作物/番茄/收获物.webp index a984ff9..98fc432 100644 Binary files a/assets/作物/番茄/收获物.webp and b/assets/作物/番茄/收获物.webp differ diff --git a/assets/作物/番茄/收获物.webp.import b/assets/作物/番茄/收获物.webp.import index b76c59e..5c5d3d6 100644 --- a/assets/作物/番茄/收获物.webp.import +++ b/assets/作物/番茄/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ic2puj0angyb" +uid="uid://dgqw6keojea2f" path="res://.godot/imported/收获物.webp-d3d9ff8f4a58f41c19fa3f2be39ba995.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-d3d9ff8f4a58f41c19fa3f2be39ba9 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/百合花/0.webp b/assets/作物/百合花/0.webp index ea4cb8a..a235f27 100644 Binary files a/assets/作物/百合花/0.webp and b/assets/作物/百合花/0.webp differ diff --git a/assets/作物/百合花/0.webp.import b/assets/作物/百合花/0.webp.import index b7fa61f..8edffc1 100644 --- a/assets/作物/百合花/0.webp.import +++ b/assets/作物/百合花/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c412dn7xijvl4" +uid="uid://2b82ms22nuka" path="res://.godot/imported/0.webp-b3100f18503e3f5b15b591223facbeed.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-b3100f18503e3f5b15b591223facbeed.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/百合花/1.webp b/assets/作物/百合花/1.webp index e802b37..2af5f57 100644 Binary files a/assets/作物/百合花/1.webp and b/assets/作物/百合花/1.webp differ diff --git a/assets/作物/百合花/1.webp.import b/assets/作物/百合花/1.webp.import index 7330450..529cdc7 100644 --- a/assets/作物/百合花/1.webp.import +++ b/assets/作物/百合花/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://7m2g0d7a27p1" +uid="uid://cyhwwr2mcw35y" path="res://.godot/imported/1.webp-19713b3dc7b634a11b1cce07937b316a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-19713b3dc7b634a11b1cce07937b316a.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/百合花/1750049771834.webp b/assets/作物/百合花/1750049771834.webp deleted file mode 100644 index ccba27b..0000000 Binary files a/assets/作物/百合花/1750049771834.webp and /dev/null differ diff --git a/assets/作物/百合花/1750049775912.webp b/assets/作物/百合花/1750049775912.webp deleted file mode 100644 index d046fcf..0000000 Binary files a/assets/作物/百合花/1750049775912.webp and /dev/null differ diff --git a/assets/作物/百合花/3.webp b/assets/作物/百合花/3.webp index 11db4d4..8eb45d5 100644 Binary files a/assets/作物/百合花/3.webp and b/assets/作物/百合花/3.webp differ diff --git a/assets/作物/百合花/3.webp.import b/assets/作物/百合花/3.webp.import index 154c1fe..b0d0344 100644 --- a/assets/作物/百合花/3.webp.import +++ b/assets/作物/百合花/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ckitx32mw121u" +uid="uid://dgp37y7dee0rt" path="res://.godot/imported/3.webp-24898650b774df62dca6c0c28e4b7f74.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-24898650b774df62dca6c0c28e4b7f74.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/百合花/成熟.webp b/assets/作物/百合花/成熟.webp index 418cf14..a7c156b 100644 Binary files a/assets/作物/百合花/成熟.webp and b/assets/作物/百合花/成熟.webp differ diff --git a/assets/作物/百合花/成熟.webp.import b/assets/作物/百合花/成熟.webp.import index 5e2c4bb..82bbedc 100644 --- a/assets/作物/百合花/成熟.webp.import +++ b/assets/作物/百合花/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://chuwwatayftjy" +uid="uid://dln36rxr7cdxv" path="res://.godot/imported/成熟.webp-5cd7fab8115a418f67771035e1127474.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-5cd7fab8115a418f67771035e1127474. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/百合花/收获物.webp b/assets/作物/百合花/收获物.webp index 08e9cd2..42ccb60 100644 Binary files a/assets/作物/百合花/收获物.webp and b/assets/作物/百合花/收获物.webp differ diff --git a/assets/作物/百合花/收获物.webp.import b/assets/作物/百合花/收获物.webp.import index 51b8301..31f82a3 100644 --- a/assets/作物/百合花/收获物.webp.import +++ b/assets/作物/百合花/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cd6dphoxackan" +uid="uid://cl3mpl3feeye3" path="res://.godot/imported/收获物.webp-81c14485274a89b8a6becd6fbc028988.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-81c14485274a89b8a6becd6fbc0289 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/石榴/0.webp b/assets/作物/石榴/0.webp index 4aefbeb..708637b 100644 Binary files a/assets/作物/石榴/0.webp and b/assets/作物/石榴/0.webp differ diff --git a/assets/作物/石榴/0.webp.import b/assets/作物/石榴/0.webp.import index 7cb5bb5..f7086fd 100644 --- a/assets/作物/石榴/0.webp.import +++ b/assets/作物/石榴/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bjofuqt16qmme" +uid="uid://b6pvu4e4bmll2" path="res://.godot/imported/0.webp-341d33470a40d95d3149d54f2b6ff9a4.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-341d33470a40d95d3149d54f2b6ff9a4.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/石榴/成熟.webp b/assets/作物/石榴/成熟.webp index 8e1d7ab..6751ba0 100644 Binary files a/assets/作物/石榴/成熟.webp and b/assets/作物/石榴/成熟.webp differ diff --git a/assets/作物/石榴/成熟.webp.import b/assets/作物/石榴/成熟.webp.import index f9b88e0..61c9fed 100644 --- a/assets/作物/石榴/成熟.webp.import +++ b/assets/作物/石榴/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c62j6b5ieimjd" +uid="uid://cw6lsfq1dcio5" path="res://.godot/imported/成熟.webp-0c11d94ede22e223fa82d230223f558b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-0c11d94ede22e223fa82d230223f558b. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/石榴/收获物.webp b/assets/作物/石榴/收获物.webp index cbf76dc..6790e4c 100644 Binary files a/assets/作物/石榴/收获物.webp and b/assets/作物/石榴/收获物.webp differ diff --git a/assets/作物/石榴/收获物.webp.import b/assets/作物/石榴/收获物.webp.import index 4a89e6f..06abf9d 100644 --- a/assets/作物/石榴/收获物.webp.import +++ b/assets/作物/石榴/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bcnf8hb352o8j" +uid="uid://cpyntdiad0x8t" path="res://.godot/imported/收获物.webp-d4ed5af31733db0e6c30102836b986a5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-d4ed5af31733db0e6c30102836b986 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/稻谷/0.webp b/assets/作物/稻谷/0.webp index a4925dc..c0c00b5 100644 Binary files a/assets/作物/稻谷/0.webp and b/assets/作物/稻谷/0.webp differ diff --git a/assets/作物/稻谷/0.webp.import b/assets/作物/稻谷/0.webp.import index b9af065..7a11d8c 100644 --- a/assets/作物/稻谷/0.webp.import +++ b/assets/作物/稻谷/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dw3i7fr0vvx6r" +uid="uid://cps47acvl8naq" path="res://.godot/imported/0.webp-d76fb0c9f24bd7929793b8e40b8d0d9f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-d76fb0c9f24bd7929793b8e40b8d0d9f.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/稻谷/1.webp b/assets/作物/稻谷/1.webp index 997e8ec..f5f785b 100644 Binary files a/assets/作物/稻谷/1.webp and b/assets/作物/稻谷/1.webp differ diff --git a/assets/作物/稻谷/1.webp.import b/assets/作物/稻谷/1.webp.import index 6c40ae8..93607df 100644 --- a/assets/作物/稻谷/1.webp.import +++ b/assets/作物/稻谷/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://be6qv33wrr6np" +uid="uid://cixpikw62fcno" path="res://.godot/imported/1.webp-2e24e8c5192cfe4c944d3fc61317cbe6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-2e24e8c5192cfe4c944d3fc61317cbe6.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/稻谷/2.webp b/assets/作物/稻谷/2.webp index 449e774..45f639d 100644 Binary files a/assets/作物/稻谷/2.webp and b/assets/作物/稻谷/2.webp differ diff --git a/assets/作物/稻谷/2.webp.import b/assets/作物/稻谷/2.webp.import index a31c82e..c7d257a 100644 --- a/assets/作物/稻谷/2.webp.import +++ b/assets/作物/稻谷/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bu8l0kdw7s1td" +uid="uid://bsd8uooxagp4k" path="res://.godot/imported/2.webp-8f99bba8674366bac9cfdc7f456b93f1.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-8f99bba8674366bac9cfdc7f456b93f1.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/稻谷/3.webp b/assets/作物/稻谷/3.webp index 997e8ec..f5f785b 100644 Binary files a/assets/作物/稻谷/3.webp and b/assets/作物/稻谷/3.webp differ diff --git a/assets/作物/稻谷/3.webp.import b/assets/作物/稻谷/3.webp.import new file mode 100644 index 0000000..fffc84c --- /dev/null +++ b/assets/作物/稻谷/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bydbmvqp3f8xp" +path="res://.godot/imported/3.webp-dc29cdc38e11a8322b71d501c81b8d15.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/稻谷/3.webp" +dest_files=["res://.godot/imported/3.webp-dc29cdc38e11a8322b71d501c81b8d15.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/稻谷/4.webp b/assets/作物/稻谷/4.webp index 33d2384..d86dd84 100644 Binary files a/assets/作物/稻谷/4.webp and b/assets/作物/稻谷/4.webp differ diff --git a/assets/作物/稻谷/4.webp.import b/assets/作物/稻谷/4.webp.import new file mode 100644 index 0000000..b3e7041 --- /dev/null +++ b/assets/作物/稻谷/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djp54jmgkqa3o" +path="res://.godot/imported/4.webp-e7069f7292461017df0e6c181ef5bfa5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/稻谷/4.webp" +dest_files=["res://.godot/imported/4.webp-e7069f7292461017df0e6c181ef5bfa5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/稻谷/5.webp b/assets/作物/稻谷/5.webp index 449e774..45f639d 100644 Binary files a/assets/作物/稻谷/5.webp and b/assets/作物/稻谷/5.webp differ diff --git a/assets/作物/稻谷/5.webp.import b/assets/作物/稻谷/5.webp.import new file mode 100644 index 0000000..8b45209 --- /dev/null +++ b/assets/作物/稻谷/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6st850dc8e6l" +path="res://.godot/imported/5.webp-7dbd1db5e8162d367e115607074bf00d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/稻谷/5.webp" +dest_files=["res://.godot/imported/5.webp-7dbd1db5e8162d367e115607074bf00d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/稻谷/6.webp b/assets/作物/稻谷/6.webp index 818830b..6ebd155 100644 Binary files a/assets/作物/稻谷/6.webp and b/assets/作物/稻谷/6.webp differ diff --git a/assets/作物/稻谷/6.webp.import b/assets/作物/稻谷/6.webp.import new file mode 100644 index 0000000..3778cde --- /dev/null +++ b/assets/作物/稻谷/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4fvvofpcsrcf" +path="res://.godot/imported/6.webp-df8f7a18e22683d6ba00c563d9c570e2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/稻谷/6.webp" +dest_files=["res://.godot/imported/6.webp-df8f7a18e22683d6ba00c563d9c570e2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/稻谷/7.webp b/assets/作物/稻谷/7.webp index 8725b88..f1e03ac 100644 Binary files a/assets/作物/稻谷/7.webp and b/assets/作物/稻谷/7.webp differ diff --git a/assets/作物/稻谷/7.webp.import b/assets/作物/稻谷/7.webp.import new file mode 100644 index 0000000..2ecbe41 --- /dev/null +++ b/assets/作物/稻谷/7.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://kpnk70u7so1u" +path="res://.godot/imported/7.webp-4f156245169320e8ff408f0a8a235d7e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/稻谷/7.webp" +dest_files=["res://.godot/imported/7.webp-4f156245169320e8ff408f0a8a235d7e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/稻谷/8.webp b/assets/作物/稻谷/8.webp index d2be892..782ad5c 100644 Binary files a/assets/作物/稻谷/8.webp and b/assets/作物/稻谷/8.webp differ diff --git a/assets/作物/稻谷/8.webp.import b/assets/作物/稻谷/8.webp.import new file mode 100644 index 0000000..6b3c8a6 --- /dev/null +++ b/assets/作物/稻谷/8.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ca16737mn6iqv" +path="res://.godot/imported/8.webp-c02554d6ac84de582bbbcec066643495.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/稻谷/8.webp" +dest_files=["res://.godot/imported/8.webp-c02554d6ac84de582bbbcec066643495.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/稻谷/9.webp b/assets/作物/稻谷/9.webp index bad39fa..4187679 100644 Binary files a/assets/作物/稻谷/9.webp and b/assets/作物/稻谷/9.webp differ diff --git a/assets/作物/稻谷/9.webp.import b/assets/作物/稻谷/9.webp.import new file mode 100644 index 0000000..066e0ba --- /dev/null +++ b/assets/作物/稻谷/9.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://58hkocipvxb4" +path="res://.godot/imported/9.webp-dd1579162c06fe866d781e5adfe74b1c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/稻谷/9.webp" +dest_files=["res://.godot/imported/9.webp-dd1579162c06fe866d781e5adfe74b1c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/稻谷/成熟.webp b/assets/作物/稻谷/成熟.webp index d2be892..782ad5c 100644 Binary files a/assets/作物/稻谷/成熟.webp and b/assets/作物/稻谷/成熟.webp differ diff --git a/assets/作物/稻谷/成熟.webp.import b/assets/作物/稻谷/成熟.webp.import index 6bc7084..206b0fa 100644 --- a/assets/作物/稻谷/成熟.webp.import +++ b/assets/作物/稻谷/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ceg23k8qbisc8" +uid="uid://q6fjtbo5kemy" path="res://.godot/imported/成熟.webp-6edcb0276297d77560c1bebee9062e4c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-6edcb0276297d77560c1bebee9062e4c. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/稻谷/收获物.webp b/assets/作物/稻谷/收获物.webp index 9feadad..b7b1f06 100644 Binary files a/assets/作物/稻谷/收获物.webp and b/assets/作物/稻谷/收获物.webp differ diff --git a/assets/作物/稻谷/收获物.webp.import b/assets/作物/稻谷/收获物.webp.import index d39862b..4f365b5 100644 --- a/assets/作物/稻谷/收获物.webp.import +++ b/assets/作物/稻谷/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dgmt773qry36h" +uid="uid://bqac8m4j2hav7" path="res://.godot/imported/收获物.webp-c3bdb8d21a9bfd1d3be88588f3b8c2d9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-c3bdb8d21a9bfd1d3be88588f3b8c2 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/糖果树/0.webp b/assets/作物/糖果树/0.webp index 1974259..a10e416 100644 Binary files a/assets/作物/糖果树/0.webp and b/assets/作物/糖果树/0.webp differ diff --git a/assets/作物/糖果树/0.webp.import b/assets/作物/糖果树/0.webp.import index 65ca3c6..dfa2412 100644 --- a/assets/作物/糖果树/0.webp.import +++ b/assets/作物/糖果树/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dnj00km32v4my" +uid="uid://cobpcmdyehogs" path="res://.godot/imported/0.webp-ade8ba0955a7452163dbfb0ab8d4e7b9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-ade8ba0955a7452163dbfb0ab8d4e7b9.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/糖果树/1.webp b/assets/作物/糖果树/1.webp index a9938fd..26145cd 100644 Binary files a/assets/作物/糖果树/1.webp and b/assets/作物/糖果树/1.webp differ diff --git a/assets/作物/糖果树/1.webp.import b/assets/作物/糖果树/1.webp.import index 4ed2649..a71567d 100644 --- a/assets/作物/糖果树/1.webp.import +++ b/assets/作物/糖果树/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://3e6ejew7aybu" +uid="uid://owe0e0ucermo" path="res://.godot/imported/1.webp-3f47b43e31104bd1240d2457650aa5f8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-3f47b43e31104bd1240d2457650aa5f8.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/糖果树/成熟.webp b/assets/作物/糖果树/成熟.webp index a2dfd75..57317dc 100644 Binary files a/assets/作物/糖果树/成熟.webp and b/assets/作物/糖果树/成熟.webp differ diff --git a/assets/作物/糖果树/成熟.webp.import b/assets/作物/糖果树/成熟.webp.import index 6e1b647..b0947b7 100644 --- a/assets/作物/糖果树/成熟.webp.import +++ b/assets/作物/糖果树/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cpfq115u2nkjt" +uid="uid://jc61veqapku" path="res://.godot/imported/成熟.webp-939d3957e05cb029b7050f233a4af43b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-939d3957e05cb029b7050f233a4af43b. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/糖果树/收获物.webp b/assets/作物/糖果树/收获物.webp index dc402fb..faf9f10 100644 Binary files a/assets/作物/糖果树/收获物.webp and b/assets/作物/糖果树/收获物.webp differ diff --git a/assets/作物/糖果树/收获物.webp.import b/assets/作物/糖果树/收获物.webp.import index a31a04c..2109b14 100644 --- a/assets/作物/糖果树/收获物.webp.import +++ b/assets/作物/糖果树/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://boyvuhjwgs5ix" +uid="uid://do8vo6tu73iug" path="res://.godot/imported/收获物.webp-01d49092e78586d8ee56c5262fb36bb5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-01d49092e78586d8ee56c5262fb36b [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/胡萝卜/0.webp b/assets/作物/胡萝卜/0.webp index acc0fe1..b5a63c4 100644 Binary files a/assets/作物/胡萝卜/0.webp and b/assets/作物/胡萝卜/0.webp differ diff --git a/assets/作物/胡萝卜/0.webp.import b/assets/作物/胡萝卜/0.webp.import index 6442fbc..a38488f 100644 --- a/assets/作物/胡萝卜/0.webp.import +++ b/assets/作物/胡萝卜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://taqb4oft0s45" +uid="uid://cvlsojul2y1fs" path="res://.godot/imported/0.webp-e778c66fc0978d298fa0becc7b2e0045.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-e778c66fc0978d298fa0becc7b2e0045.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/胡萝卜/1.webp b/assets/作物/胡萝卜/1.webp index 25fd885..08d2cc9 100644 Binary files a/assets/作物/胡萝卜/1.webp and b/assets/作物/胡萝卜/1.webp differ diff --git a/assets/作物/胡萝卜/1.webp.import b/assets/作物/胡萝卜/1.webp.import index 70686fd..b26e90c 100644 --- a/assets/作物/胡萝卜/1.webp.import +++ b/assets/作物/胡萝卜/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b0065eolpj1i6" +uid="uid://jll1phm78hh5" path="res://.godot/imported/1.webp-53d6ab309a544f03ad8ed1bbc7ded587.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-53d6ab309a544f03ad8ed1bbc7ded587.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/胡萝卜/2.webp b/assets/作物/胡萝卜/2.webp index cb1fbd1..0d9a0f3 100644 Binary files a/assets/作物/胡萝卜/2.webp and b/assets/作物/胡萝卜/2.webp differ diff --git a/assets/作物/胡萝卜/2.webp.import b/assets/作物/胡萝卜/2.webp.import new file mode 100644 index 0000000..c830a4f --- /dev/null +++ b/assets/作物/胡萝卜/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2dt8k7hh3n8f" +path="res://.godot/imported/2.webp-fd2bbbf366d60b4a8560c364403ca79c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/胡萝卜/2.webp" +dest_files=["res://.godot/imported/2.webp-fd2bbbf366d60b4a8560c364403ca79c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/胡萝卜/3.webp b/assets/作物/胡萝卜/3.webp index 127dc26..090ca87 100644 Binary files a/assets/作物/胡萝卜/3.webp and b/assets/作物/胡萝卜/3.webp differ diff --git a/assets/作物/胡萝卜/3.webp.import b/assets/作物/胡萝卜/3.webp.import new file mode 100644 index 0000000..889ed40 --- /dev/null +++ b/assets/作物/胡萝卜/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwoxdaiq0kf2w" +path="res://.godot/imported/3.webp-909c0eb87cf1ff4f8adcb10bcf2742db.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/胡萝卜/3.webp" +dest_files=["res://.godot/imported/3.webp-909c0eb87cf1ff4f8adcb10bcf2742db.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/胡萝卜/4.webp b/assets/作物/胡萝卜/4.webp index e6173f9..a092a46 100644 Binary files a/assets/作物/胡萝卜/4.webp and b/assets/作物/胡萝卜/4.webp differ diff --git a/assets/作物/胡萝卜/4.webp.import b/assets/作物/胡萝卜/4.webp.import new file mode 100644 index 0000000..f2d193c --- /dev/null +++ b/assets/作物/胡萝卜/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dn87a81ejoxjj" +path="res://.godot/imported/4.webp-ed7b215f16ce43e97ac517b3b75b02c0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/胡萝卜/4.webp" +dest_files=["res://.godot/imported/4.webp-ed7b215f16ce43e97ac517b3b75b02c0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/胡萝卜/成熟.webp b/assets/作物/胡萝卜/成熟.webp index 127dc26..090ca87 100644 Binary files a/assets/作物/胡萝卜/成熟.webp and b/assets/作物/胡萝卜/成熟.webp differ diff --git a/assets/作物/胡萝卜/成熟.webp.import b/assets/作物/胡萝卜/成熟.webp.import index 43c62c9..9501b45 100644 --- a/assets/作物/胡萝卜/成熟.webp.import +++ b/assets/作物/胡萝卜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://driafccs0niv6" +uid="uid://c21u727pfthvc" path="res://.godot/imported/成熟.webp-c4608f82e95cc809f4f91ba689de6d1d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-c4608f82e95cc809f4f91ba689de6d1d. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/胡萝卜/收获物.webp b/assets/作物/胡萝卜/收获物.webp index 90a06c5..4bcb2c3 100644 Binary files a/assets/作物/胡萝卜/收获物.webp and b/assets/作物/胡萝卜/收获物.webp differ diff --git a/assets/作物/胡萝卜/收获物.webp.import b/assets/作物/胡萝卜/收获物.webp.import index c57a51f..472182a 100644 --- a/assets/作物/胡萝卜/收获物.webp.import +++ b/assets/作物/胡萝卜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bjd0gnw6v1f1q" +uid="uid://b1gqx6mkps1o5" path="res://.godot/imported/收获物.webp-f893f830806c01f43ad56aaebb3df50c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-f893f830806c01f43ad56aaebb3df5 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芒果/0.webp b/assets/作物/芒果/0.webp index 6e75ecc..5bb9f15 100644 Binary files a/assets/作物/芒果/0.webp and b/assets/作物/芒果/0.webp differ diff --git a/assets/作物/芒果/0.webp.import b/assets/作物/芒果/0.webp.import index d50baa3..3380375 100644 --- a/assets/作物/芒果/0.webp.import +++ b/assets/作物/芒果/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d38hqnyy07dby" +uid="uid://ceumi2uv8brmx" path="res://.godot/imported/0.webp-bdeae062a4585f0a2f1263bd1617a2de.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-bdeae062a4585f0a2f1263bd1617a2de.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芒果/1.webp b/assets/作物/芒果/1.webp index 3718d63..230fdaa 100644 Binary files a/assets/作物/芒果/1.webp and b/assets/作物/芒果/1.webp differ diff --git a/assets/作物/芒果/1.webp.import b/assets/作物/芒果/1.webp.import index a4c652e..1b0e63e 100644 --- a/assets/作物/芒果/1.webp.import +++ b/assets/作物/芒果/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ca4kbccd7buwl" +uid="uid://drxdctwqrh8j8" path="res://.godot/imported/1.webp-184a4b55ce69e3403349093d62bc6954.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-184a4b55ce69e3403349093d62bc6954.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芒果/2.webp b/assets/作物/芒果/2.webp index 3d78a5b..a4fa0ed 100644 Binary files a/assets/作物/芒果/2.webp and b/assets/作物/芒果/2.webp differ diff --git a/assets/作物/芒果/2.webp.import b/assets/作物/芒果/2.webp.import index 085e97a..ca8905a 100644 --- a/assets/作物/芒果/2.webp.import +++ b/assets/作物/芒果/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c7jh7ltbwid15" +uid="uid://b0fxuaa61ghhm" path="res://.godot/imported/2.webp-5e054fcaefac103af9e2976b4c5b6cca.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-5e054fcaefac103af9e2976b4c5b6cca.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芒果/成熟.webp b/assets/作物/芒果/成熟.webp index 8cda6ae..53cf8ee 100644 Binary files a/assets/作物/芒果/成熟.webp and b/assets/作物/芒果/成熟.webp differ diff --git a/assets/作物/芒果/成熟.webp.import b/assets/作物/芒果/成熟.webp.import index ecf9c71..e154420 100644 --- a/assets/作物/芒果/成熟.webp.import +++ b/assets/作物/芒果/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://3wljjvceuwrv" +uid="uid://dtl6byamyq6gb" path="res://.godot/imported/成熟.webp-b22b55fa326fbfe18bbfbe6dbf7888c2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-b22b55fa326fbfe18bbfbe6dbf7888c2. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芒果/收获物.webp b/assets/作物/芒果/收获物.webp index e966b4e..8826731 100644 Binary files a/assets/作物/芒果/收获物.webp and b/assets/作物/芒果/收获物.webp differ diff --git a/assets/作物/芒果/收获物.webp.import b/assets/作物/芒果/收获物.webp.import index 8d076d4..59673c8 100644 --- a/assets/作物/芒果/收获物.webp.import +++ b/assets/作物/芒果/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://tbvtnaneqm8y" +uid="uid://j4p0nvehjy5e" path="res://.godot/imported/收获物.webp-28658a5b2582a7db2955d027c8228caf.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-28658a5b2582a7db2955d027c8228c [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦笋/0.webp b/assets/作物/芦笋/0.webp index 52e18f1..b101d86 100644 Binary files a/assets/作物/芦笋/0.webp and b/assets/作物/芦笋/0.webp differ diff --git a/assets/作物/芦笋/0.webp.import b/assets/作物/芦笋/0.webp.import index d48950a..ec72aed 100644 --- a/assets/作物/芦笋/0.webp.import +++ b/assets/作物/芦笋/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dnouysh0qo04i" +uid="uid://deyg3ntv15y4h" path="res://.godot/imported/0.webp-19c8c0c1226647b661390ca74a4e306b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-19c8c0c1226647b661390ca74a4e306b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦笋/1.webp b/assets/作物/芦笋/1.webp index d979c72..5a7bd5d 100644 Binary files a/assets/作物/芦笋/1.webp and b/assets/作物/芦笋/1.webp differ diff --git a/assets/作物/芦笋/1.webp.import b/assets/作物/芦笋/1.webp.import index 3c58fd1..fc4bc30 100644 --- a/assets/作物/芦笋/1.webp.import +++ b/assets/作物/芦笋/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://eim1liyvuo3p" +uid="uid://do7a0qhi2ybjh" path="res://.godot/imported/1.webp-cd20c14c441396e722757d2ff8b71e08.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-cd20c14c441396e722757d2ff8b71e08.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦笋/2.webp b/assets/作物/芦笋/2.webp index 18627af..851362e 100644 Binary files a/assets/作物/芦笋/2.webp and b/assets/作物/芦笋/2.webp differ diff --git a/assets/作物/芦笋/2.webp.import b/assets/作物/芦笋/2.webp.import index 5fde448..13e220c 100644 --- a/assets/作物/芦笋/2.webp.import +++ b/assets/作物/芦笋/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ds6u0f3gcbyve" +uid="uid://doyn3kewlbw1v" path="res://.godot/imported/2.webp-53b8684bd57b194403c6adf0e4bf6846.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-53b8684bd57b194403c6adf0e4bf6846.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦笋/3.webp b/assets/作物/芦笋/3.webp index 1892201..19087e8 100644 Binary files a/assets/作物/芦笋/3.webp and b/assets/作物/芦笋/3.webp differ diff --git a/assets/作物/芦笋/3.webp.import b/assets/作物/芦笋/3.webp.import new file mode 100644 index 0000000..9b46a09 --- /dev/null +++ b/assets/作物/芦笋/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d03v4fjntkae3" +path="res://.godot/imported/3.webp-5535516be5f1ab858e6d8c8cb186a14f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/芦笋/3.webp" +dest_files=["res://.godot/imported/3.webp-5535516be5f1ab858e6d8c8cb186a14f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/芦笋/4.webp b/assets/作物/芦笋/4.webp index 4e07fb5..e8c9588 100644 Binary files a/assets/作物/芦笋/4.webp and b/assets/作物/芦笋/4.webp differ diff --git a/assets/作物/芦笋/4.webp.import b/assets/作物/芦笋/4.webp.import new file mode 100644 index 0000000..586e9a4 --- /dev/null +++ b/assets/作物/芦笋/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dbc83n22cp16n" +path="res://.godot/imported/4.webp-6b9ff29f936e2eaf11be27276ca21e19.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/芦笋/4.webp" +dest_files=["res://.godot/imported/4.webp-6b9ff29f936e2eaf11be27276ca21e19.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/芦笋/成熟.webp b/assets/作物/芦笋/成熟.webp index 1892201..19087e8 100644 Binary files a/assets/作物/芦笋/成熟.webp and b/assets/作物/芦笋/成熟.webp differ diff --git a/assets/作物/芦笋/成熟.webp.import b/assets/作物/芦笋/成熟.webp.import index 3d3ce22..d9d5e9d 100644 --- a/assets/作物/芦笋/成熟.webp.import +++ b/assets/作物/芦笋/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cv6h3t4gy40d5" +uid="uid://bsrrq8e8ktwn4" path="res://.godot/imported/成熟.webp-bd5ab276ffc3e19c40a6f4024b28d34d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-bd5ab276ffc3e19c40a6f4024b28d34d. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦笋/收获物.webp b/assets/作物/芦笋/收获物.webp index 026eb14..001fcbe 100644 Binary files a/assets/作物/芦笋/收获物.webp and b/assets/作物/芦笋/收获物.webp differ diff --git a/assets/作物/芦笋/收获物.webp.import b/assets/作物/芦笋/收获物.webp.import index 1690373..0c0a0cf 100644 --- a/assets/作物/芦笋/收获物.webp.import +++ b/assets/作物/芦笋/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d3vvtsk20m8ur" +uid="uid://sjoplwp0o42o" path="res://.godot/imported/收获物.webp-2841f5a4a7ba55dae28e3ce3176d3e61.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-2841f5a4a7ba55dae28e3ce3176d3e [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦荟/0.webp b/assets/作物/芦荟/0.webp index 9af5acb..c853ea5 100644 Binary files a/assets/作物/芦荟/0.webp and b/assets/作物/芦荟/0.webp differ diff --git a/assets/作物/芦荟/0.webp.import b/assets/作物/芦荟/0.webp.import index 2a1f070..bb6853f 100644 --- a/assets/作物/芦荟/0.webp.import +++ b/assets/作物/芦荟/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cdkdwjggvmid0" +uid="uid://bywfyc6f1wgvm" path="res://.godot/imported/0.webp-7e5448d1c3e769e3091f7109b26652b5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-7e5448d1c3e769e3091f7109b26652b5.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦荟/1.webp b/assets/作物/芦荟/1.webp index b21f691..c8f6514 100644 Binary files a/assets/作物/芦荟/1.webp and b/assets/作物/芦荟/1.webp differ diff --git a/assets/作物/芦荟/1.webp.import b/assets/作物/芦荟/1.webp.import index 2c6f79d..4722542 100644 --- a/assets/作物/芦荟/1.webp.import +++ b/assets/作物/芦荟/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b61btv1k3d3io" +uid="uid://1vil1nd4gfyp" path="res://.godot/imported/1.webp-6c09f3faa19eb9537990f1acfcadbf0f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-6c09f3faa19eb9537990f1acfcadbf0f.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦荟/1750050335091.webp b/assets/作物/芦荟/1750050335091.webp index e63c5cc..ac65dc4 100644 Binary files a/assets/作物/芦荟/1750050335091.webp and b/assets/作物/芦荟/1750050335091.webp differ diff --git a/assets/作物/芦荟/1750050335091.webp.import b/assets/作物/芦荟/1750050335091.webp.import index a13e65a..f714991 100644 --- a/assets/作物/芦荟/1750050335091.webp.import +++ b/assets/作物/芦荟/1750050335091.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cegtruhkcp7u" +uid="uid://bl3rsxwhtactg" path="res://.godot/imported/1750050335091.webp-a4fc7d9bac9633bf84be9fc8ed3b6515.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750050335091.webp-a4fc7d9bac9633bf84be9fc8ed [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦荟/2.webp b/assets/作物/芦荟/2.webp index 10b63ab..8f4e142 100644 Binary files a/assets/作物/芦荟/2.webp and b/assets/作物/芦荟/2.webp differ diff --git a/assets/作物/芦荟/2.webp.import b/assets/作物/芦荟/2.webp.import index 1699ced..1f498a8 100644 --- a/assets/作物/芦荟/2.webp.import +++ b/assets/作物/芦荟/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://t2sorw3i0ajv" +uid="uid://cefdk43p2jfos" path="res://.godot/imported/2.webp-d94a5b437c7c14e81d131c132c8fcb59.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-d94a5b437c7c14e81d131c132c8fcb59.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦荟/3.webp b/assets/作物/芦荟/3.webp index a8e7938..df62a28 100644 Binary files a/assets/作物/芦荟/3.webp and b/assets/作物/芦荟/3.webp differ diff --git a/assets/作物/芦荟/3.webp.import b/assets/作物/芦荟/3.webp.import index ee5d082..86aff7f 100644 --- a/assets/作物/芦荟/3.webp.import +++ b/assets/作物/芦荟/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bvh43e2td8dcf" +uid="uid://ch2kms0aguo41" path="res://.godot/imported/3.webp-3a04265cf4c8bdb0173e3cd97aadf17e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-3a04265cf4c8bdb0173e3cd97aadf17e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦荟/4.webp b/assets/作物/芦荟/4.webp index 49dfadc..faf9cee 100644 Binary files a/assets/作物/芦荟/4.webp and b/assets/作物/芦荟/4.webp differ diff --git a/assets/作物/芦荟/4.webp.import b/assets/作物/芦荟/4.webp.import new file mode 100644 index 0000000..c603782 --- /dev/null +++ b/assets/作物/芦荟/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bk8xg8d0mmfjb" +path="res://.godot/imported/4.webp-58abb1b92f4f535af8d73980b27d88ac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/芦荟/4.webp" +dest_files=["res://.godot/imported/4.webp-58abb1b92f4f535af8d73980b27d88ac.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/芦荟/5.webp b/assets/作物/芦荟/5.webp index d000796..7c3f604 100644 Binary files a/assets/作物/芦荟/5.webp and b/assets/作物/芦荟/5.webp differ diff --git a/assets/作物/芦荟/5.webp.import b/assets/作物/芦荟/5.webp.import new file mode 100644 index 0000000..0d47eab --- /dev/null +++ b/assets/作物/芦荟/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6ajenogrjdsr" +path="res://.godot/imported/5.webp-31d219d197ec0dfbb7f7cb436012ca41.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/芦荟/5.webp" +dest_files=["res://.godot/imported/5.webp-31d219d197ec0dfbb7f7cb436012ca41.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/芦荟/6.webp b/assets/作物/芦荟/6.webp index a8e7938..df62a28 100644 Binary files a/assets/作物/芦荟/6.webp and b/assets/作物/芦荟/6.webp differ diff --git a/assets/作物/芦荟/6.webp.import b/assets/作物/芦荟/6.webp.import new file mode 100644 index 0000000..b06c598 --- /dev/null +++ b/assets/作物/芦荟/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbtixpeaoinw0" +path="res://.godot/imported/6.webp-e7a87001f3ebff2dc81af4ae85d2ea62.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/芦荟/6.webp" +dest_files=["res://.godot/imported/6.webp-e7a87001f3ebff2dc81af4ae85d2ea62.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/芦荟/7.webp b/assets/作物/芦荟/7.webp index 630497e..1288d88 100644 Binary files a/assets/作物/芦荟/7.webp and b/assets/作物/芦荟/7.webp differ diff --git a/assets/作物/芦荟/7.webp.import b/assets/作物/芦荟/7.webp.import new file mode 100644 index 0000000..2ada193 --- /dev/null +++ b/assets/作物/芦荟/7.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bu4jl8jqttaqi" +path="res://.godot/imported/7.webp-0e0e62b91f3efa908da963c963d93984.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/芦荟/7.webp" +dest_files=["res://.godot/imported/7.webp-0e0e62b91f3efa908da963c963d93984.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/芦荟/成熟.webp b/assets/作物/芦荟/成熟.webp index 630497e..1288d88 100644 Binary files a/assets/作物/芦荟/成熟.webp and b/assets/作物/芦荟/成熟.webp differ diff --git a/assets/作物/芦荟/成熟.webp.import b/assets/作物/芦荟/成熟.webp.import index e4e973d..6be6221 100644 --- a/assets/作物/芦荟/成熟.webp.import +++ b/assets/作物/芦荟/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dv8qgw56ht8vw" +uid="uid://bkkm8n5yc3u8j" path="res://.godot/imported/成熟.webp-85886a6e46ee05c1de6d6787d30df5f5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-85886a6e46ee05c1de6d6787d30df5f5. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/芦荟/收获物.webp b/assets/作物/芦荟/收获物.webp index 8dfbf44..615e8ae 100644 Binary files a/assets/作物/芦荟/收获物.webp and b/assets/作物/芦荟/收获物.webp differ diff --git a/assets/作物/芦荟/收获物.webp.import b/assets/作物/芦荟/收获物.webp.import index 8eb3caa..9e75351 100644 --- a/assets/作物/芦荟/收获物.webp.import +++ b/assets/作物/芦荟/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bfj6wglyqfric" +uid="uid://c78d3dj8rsn50" path="res://.godot/imported/收获物.webp-8726f531ad107a9b5a8509accf8e4c9c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-8726f531ad107a9b5a8509accf8e4c [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/花椰菜/0.webp b/assets/作物/花椰菜/0.webp index 2992f6c..70afe28 100644 Binary files a/assets/作物/花椰菜/0.webp and b/assets/作物/花椰菜/0.webp differ diff --git a/assets/作物/花椰菜/0.webp.import b/assets/作物/花椰菜/0.webp.import index 6672e3a..c48ddd0 100644 --- a/assets/作物/花椰菜/0.webp.import +++ b/assets/作物/花椰菜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dtpsieqkqfioh" +uid="uid://d1goyp4x7atf1" path="res://.godot/imported/0.webp-bace96f1ce9c5bce5fca380d8b6b218f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-bace96f1ce9c5bce5fca380d8b6b218f.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/花椰菜/1.webp b/assets/作物/花椰菜/1.webp index 32a1fe7..1d2f19c 100644 Binary files a/assets/作物/花椰菜/1.webp and b/assets/作物/花椰菜/1.webp differ diff --git a/assets/作物/花椰菜/1.webp.import b/assets/作物/花椰菜/1.webp.import index e3b84b2..b4ae6fb 100644 --- a/assets/作物/花椰菜/1.webp.import +++ b/assets/作物/花椰菜/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b40qiia7ca7tb" +uid="uid://bmod3strcrtql" path="res://.godot/imported/1.webp-7ede0e5c229923250bd2a78b5b7b73d1.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-7ede0e5c229923250bd2a78b5b7b73d1.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/花椰菜/1750004675872.webp b/assets/作物/花椰菜/1750004675872.webp index d97f5c8..855942a 100644 Binary files a/assets/作物/花椰菜/1750004675872.webp and b/assets/作物/花椰菜/1750004675872.webp differ diff --git a/assets/作物/花椰菜/1750004675872.webp.import b/assets/作物/花椰菜/1750004675872.webp.import index b4139e3..f3c7b39 100644 --- a/assets/作物/花椰菜/1750004675872.webp.import +++ b/assets/作物/花椰菜/1750004675872.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c48nnk0mn7p0x" +uid="uid://e6mj7m21pduv" path="res://.godot/imported/1750004675872.webp-e70c6e27bf296e7cdf4a4161a0b2d877.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750004675872.webp-e70c6e27bf296e7cdf4a4161a0 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/花椰菜/2.webp b/assets/作物/花椰菜/2.webp index d9946fd..62a2680 100644 Binary files a/assets/作物/花椰菜/2.webp and b/assets/作物/花椰菜/2.webp differ diff --git a/assets/作物/花椰菜/2.webp.import b/assets/作物/花椰菜/2.webp.import index 5f018e6..80275ff 100644 --- a/assets/作物/花椰菜/2.webp.import +++ b/assets/作物/花椰菜/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://blt8htis8hxfg" +uid="uid://dfb3ilpep0mjl" path="res://.godot/imported/2.webp-19aa766c1bd2806c0483d39111510c98.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-19aa766c1bd2806c0483d39111510c98.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/花椰菜/3.webp b/assets/作物/花椰菜/3.webp index d9946fd..62a2680 100644 Binary files a/assets/作物/花椰菜/3.webp and b/assets/作物/花椰菜/3.webp differ diff --git a/assets/作物/花椰菜/3.webp.import b/assets/作物/花椰菜/3.webp.import new file mode 100644 index 0000000..e4f4dc0 --- /dev/null +++ b/assets/作物/花椰菜/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddrpujpe7j0wa" +path="res://.godot/imported/3.webp-3b1b9581a03995efe308a8647f040ac2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/花椰菜/3.webp" +dest_files=["res://.godot/imported/3.webp-3b1b9581a03995efe308a8647f040ac2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/花椰菜/4.webp b/assets/作物/花椰菜/4.webp index 3ba5fbb..8f565a4 100644 Binary files a/assets/作物/花椰菜/4.webp and b/assets/作物/花椰菜/4.webp differ diff --git a/assets/作物/花椰菜/4.webp.import b/assets/作物/花椰菜/4.webp.import new file mode 100644 index 0000000..1c17c08 --- /dev/null +++ b/assets/作物/花椰菜/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://l5l18q1qfhxp" +path="res://.godot/imported/4.webp-dd859b1bda6f4bb085b4aceb4b8d1ba1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/花椰菜/4.webp" +dest_files=["res://.godot/imported/4.webp-dd859b1bda6f4bb085b4aceb4b8d1ba1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/花椰菜/5.webp b/assets/作物/花椰菜/5.webp index 0b5a40d..0a94a1f 100644 Binary files a/assets/作物/花椰菜/5.webp and b/assets/作物/花椰菜/5.webp differ diff --git a/assets/作物/花椰菜/5.webp.import b/assets/作物/花椰菜/5.webp.import new file mode 100644 index 0000000..ae86279 --- /dev/null +++ b/assets/作物/花椰菜/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c77cwidr7cwcu" +path="res://.godot/imported/5.webp-de79cee12c580aba1f5bb1449c0f2e6e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/花椰菜/5.webp" +dest_files=["res://.godot/imported/5.webp-de79cee12c580aba1f5bb1449c0f2e6e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/花椰菜/6.webp b/assets/作物/花椰菜/6.webp index 2080a45..9875373 100644 Binary files a/assets/作物/花椰菜/6.webp and b/assets/作物/花椰菜/6.webp differ diff --git a/assets/作物/花椰菜/6.webp.import b/assets/作物/花椰菜/6.webp.import new file mode 100644 index 0000000..88f5c7c --- /dev/null +++ b/assets/作物/花椰菜/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cms1hc7mo5qx4" +path="res://.godot/imported/6.webp-a71bc4ba870ac5237a41606cf1d6c73d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/花椰菜/6.webp" +dest_files=["res://.godot/imported/6.webp-a71bc4ba870ac5237a41606cf1d6c73d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/花椰菜/成熟.webp b/assets/作物/花椰菜/成熟.webp index 0b5a40d..0a94a1f 100644 Binary files a/assets/作物/花椰菜/成熟.webp and b/assets/作物/花椰菜/成熟.webp differ diff --git a/assets/作物/花椰菜/成熟.webp.import b/assets/作物/花椰菜/成熟.webp.import index f22e936..88a7f8a 100644 --- a/assets/作物/花椰菜/成熟.webp.import +++ b/assets/作物/花椰菜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bbejmv0pg7idv" +uid="uid://d3h85dalejisg" path="res://.godot/imported/成熟.webp-545cb41e76099876a0b238dacf2dceff.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-545cb41e76099876a0b238dacf2dceff. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/花椰菜/收获物.webp b/assets/作物/花椰菜/收获物.webp index c949403..d7718a6 100644 Binary files a/assets/作物/花椰菜/收获物.webp and b/assets/作物/花椰菜/收获物.webp differ diff --git a/assets/作物/花椰菜/收获物.webp.import b/assets/作物/花椰菜/收获物.webp.import index c6a8741..373bcea 100644 --- a/assets/作物/花椰菜/收获物.webp.import +++ b/assets/作物/花椰菜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dwnbybaeepsnp" +uid="uid://djsc68x7sqe1o" path="res://.godot/imported/收获物.webp-4262ac29eb424341e8d07ddab4b33471.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-4262ac29eb424341e8d07ddab4b334 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/苹果/0.webp b/assets/作物/苹果/0.webp index 0d23702..9716e75 100644 Binary files a/assets/作物/苹果/0.webp and b/assets/作物/苹果/0.webp differ diff --git a/assets/作物/苹果/0.webp.import b/assets/作物/苹果/0.webp.import index 15ea267..30a1c52 100644 --- a/assets/作物/苹果/0.webp.import +++ b/assets/作物/苹果/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dea8ooi1as5ck" +uid="uid://1b4c4le55ytn" path="res://.godot/imported/0.webp-705d0839222f56dc87ea4df84b957d0f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-705d0839222f56dc87ea4df84b957d0f.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/苹果/1.webp b/assets/作物/苹果/1.webp index 0b45e01..5009ee4 100644 Binary files a/assets/作物/苹果/1.webp and b/assets/作物/苹果/1.webp differ diff --git a/assets/作物/苹果/1.webp.import b/assets/作物/苹果/1.webp.import index 8cd4cb2..13fe52e 100644 --- a/assets/作物/苹果/1.webp.import +++ b/assets/作物/苹果/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://y87ssb3y807c" +uid="uid://dlxqodib7674y" path="res://.godot/imported/1.webp-9ccb64090158d3909bd1c15f5e21d912.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-9ccb64090158d3909bd1c15f5e21d912.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/苹果/1750050494569.webp b/assets/作物/苹果/1750050494569.webp index 7d85e87..06aa0c1 100644 Binary files a/assets/作物/苹果/1750050494569.webp and b/assets/作物/苹果/1750050494569.webp differ diff --git a/assets/作物/苹果/1750050494569.webp.import b/assets/作物/苹果/1750050494569.webp.import index b7e8019..cb2b297 100644 --- a/assets/作物/苹果/1750050494569.webp.import +++ b/assets/作物/苹果/1750050494569.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dbemtj3cmlapr" +uid="uid://btm2c5ixiil17" path="res://.godot/imported/1750050494569.webp-641149f9303701ad3f026b004dd086a9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750050494569.webp-641149f9303701ad3f026b004d [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/苹果/2.webp b/assets/作物/苹果/2.webp index 47130a6..80e713e 100644 Binary files a/assets/作物/苹果/2.webp and b/assets/作物/苹果/2.webp differ diff --git a/assets/作物/苹果/2.webp.import b/assets/作物/苹果/2.webp.import index e30c267..ccc33ca 100644 --- a/assets/作物/苹果/2.webp.import +++ b/assets/作物/苹果/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ltehnepmw4bg" +uid="uid://bss6hije1ikw7" path="res://.godot/imported/2.webp-602d6cdfcd48be44813e31cca5680e10.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-602d6cdfcd48be44813e31cca5680e10.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/苹果/成熟.webp b/assets/作物/苹果/成熟.webp index 0041bf6..eaec655 100644 Binary files a/assets/作物/苹果/成熟.webp and b/assets/作物/苹果/成熟.webp differ diff --git a/assets/作物/苹果/成熟.webp.import b/assets/作物/苹果/成熟.webp.import index fe9461d..651430d 100644 --- a/assets/作物/苹果/成熟.webp.import +++ b/assets/作物/苹果/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://4bua25lngvgb" +uid="uid://c6pyhtk5f5oka" path="res://.godot/imported/成熟.webp-24456495d76e70d8ea61dc621801bd4f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-24456495d76e70d8ea61dc621801bd4f. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/苹果/收获物.webp b/assets/作物/苹果/收获物.webp index 84fc0ea..09e1a86 100644 Binary files a/assets/作物/苹果/收获物.webp and b/assets/作物/苹果/收获物.webp differ diff --git a/assets/作物/苹果/收获物.webp.import b/assets/作物/苹果/收获物.webp.import index e96d0d2..de60138 100644 --- a/assets/作物/苹果/收获物.webp.import +++ b/assets/作物/苹果/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cstjadgs2m4vh" +uid="uid://dvywx3dx5ti6h" path="res://.godot/imported/收获物.webp-41a75e1a20ab47db1fc18887771b8fe8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-41a75e1a20ab47db1fc18887771b8f [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/苹果树/0.webp b/assets/作物/苹果树/0.webp index 0d23702..9716e75 100644 Binary files a/assets/作物/苹果树/0.webp and b/assets/作物/苹果树/0.webp differ diff --git a/assets/作物/苹果树/0.webp.import b/assets/作物/苹果树/0.webp.import new file mode 100644 index 0000000..69fc69e --- /dev/null +++ b/assets/作物/苹果树/0.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dxibnjef4g8o8" +path="res://.godot/imported/0.webp-493ddc385a11b1fcf9139abfe274ee45.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/苹果树/0.webp" +dest_files=["res://.godot/imported/0.webp-493ddc385a11b1fcf9139abfe274ee45.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/苹果树/1.webp b/assets/作物/苹果树/1.webp index 9dede6f..43aad18 100644 Binary files a/assets/作物/苹果树/1.webp and b/assets/作物/苹果树/1.webp differ diff --git a/assets/作物/苹果树/1.webp.import b/assets/作物/苹果树/1.webp.import new file mode 100644 index 0000000..aced48e --- /dev/null +++ b/assets/作物/苹果树/1.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dcskfxwrlphde" +path="res://.godot/imported/1.webp-9c36a92c907e4e5cb6995e39477ba1bd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/苹果树/1.webp" +dest_files=["res://.godot/imported/1.webp-9c36a92c907e4e5cb6995e39477ba1bd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/苹果树/2.webp b/assets/作物/苹果树/2.webp index 6dcc5b4..1cdfcc0 100644 Binary files a/assets/作物/苹果树/2.webp and b/assets/作物/苹果树/2.webp differ diff --git a/assets/作物/苹果树/2.webp.import b/assets/作物/苹果树/2.webp.import new file mode 100644 index 0000000..f80c6bb --- /dev/null +++ b/assets/作物/苹果树/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dympfsyxl7eof" +path="res://.godot/imported/2.webp-5a5cff5bf9aac90c3817a09cd76ee9e7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/苹果树/2.webp" +dest_files=["res://.godot/imported/2.webp-5a5cff5bf9aac90c3817a09cd76ee9e7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/苹果树/3.webp b/assets/作物/苹果树/3.webp index 0b45e01..5009ee4 100644 Binary files a/assets/作物/苹果树/3.webp and b/assets/作物/苹果树/3.webp differ diff --git a/assets/作物/苹果树/3.webp.import b/assets/作物/苹果树/3.webp.import new file mode 100644 index 0000000..84a94c7 --- /dev/null +++ b/assets/作物/苹果树/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://becpecpu1r42q" +path="res://.godot/imported/3.webp-42b755013645ded8676724362e1628b3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/苹果树/3.webp" +dest_files=["res://.godot/imported/3.webp-42b755013645ded8676724362e1628b3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/苹果树/4.webp b/assets/作物/苹果树/4.webp index 7fefe93..e27eec6 100644 Binary files a/assets/作物/苹果树/4.webp and b/assets/作物/苹果树/4.webp differ diff --git a/assets/作物/苹果树/4.webp.import b/assets/作物/苹果树/4.webp.import new file mode 100644 index 0000000..410eb65 --- /dev/null +++ b/assets/作物/苹果树/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bb7nxlwj5ys7f" +path="res://.godot/imported/4.webp-93c2706567c7737a4ef61bf0460b2cbf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/苹果树/4.webp" +dest_files=["res://.godot/imported/4.webp-93c2706567c7737a4ef61bf0460b2cbf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/苹果树/5.webp b/assets/作物/苹果树/5.webp index 47130a6..80e713e 100644 Binary files a/assets/作物/苹果树/5.webp and b/assets/作物/苹果树/5.webp differ diff --git a/assets/作物/苹果树/5.webp.import b/assets/作物/苹果树/5.webp.import new file mode 100644 index 0000000..2857939 --- /dev/null +++ b/assets/作物/苹果树/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bavupeouirldi" +path="res://.godot/imported/5.webp-16b6708d8fe2e86e36cfb73a1baa2155.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/苹果树/5.webp" +dest_files=["res://.godot/imported/5.webp-16b6708d8fe2e86e36cfb73a1baa2155.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/苹果树/6.webp b/assets/作物/苹果树/6.webp index 0d2d5f4..9dc9883 100644 Binary files a/assets/作物/苹果树/6.webp and b/assets/作物/苹果树/6.webp differ diff --git a/assets/作物/苹果树/6.webp.import b/assets/作物/苹果树/6.webp.import new file mode 100644 index 0000000..2b0843c --- /dev/null +++ b/assets/作物/苹果树/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0dvjybju2ty5" +path="res://.godot/imported/6.webp-d2ea6c792bb64bd0ac893a1a7490b51f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/苹果树/6.webp" +dest_files=["res://.godot/imported/6.webp-d2ea6c792bb64bd0ac893a1a7490b51f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/苹果树/7.webp b/assets/作物/苹果树/7.webp index 0041bf6..eaec655 100644 Binary files a/assets/作物/苹果树/7.webp and b/assets/作物/苹果树/7.webp differ diff --git a/assets/作物/苹果树/7.webp.import b/assets/作物/苹果树/7.webp.import new file mode 100644 index 0000000..2d1db0e --- /dev/null +++ b/assets/作物/苹果树/7.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qn7dwmggrqp8" +path="res://.godot/imported/7.webp-26014582b8c3a3faf39d89f965b62da9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/苹果树/7.webp" +dest_files=["res://.godot/imported/7.webp-26014582b8c3a3faf39d89f965b62da9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/茄子/0.webp b/assets/作物/茄子/0.webp index f73ca04..3e7c796 100644 Binary files a/assets/作物/茄子/0.webp and b/assets/作物/茄子/0.webp differ diff --git a/assets/作物/茄子/0.webp.import b/assets/作物/茄子/0.webp.import index a56e99e..fe61d31 100644 --- a/assets/作物/茄子/0.webp.import +++ b/assets/作物/茄子/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b2relmokao4gn" +uid="uid://riibqie0gcv7" path="res://.godot/imported/0.webp-36d34750f4bd00e7c1eb666e96647ee9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-36d34750f4bd00e7c1eb666e96647ee9.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/茄子/1.webp b/assets/作物/茄子/1.webp index f4dc053..1a72b69 100644 Binary files a/assets/作物/茄子/1.webp and b/assets/作物/茄子/1.webp differ diff --git a/assets/作物/茄子/1.webp.import b/assets/作物/茄子/1.webp.import index e1091a8..e21d50b 100644 --- a/assets/作物/茄子/1.webp.import +++ b/assets/作物/茄子/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dmh7i7q40yokn" +uid="uid://6vtufbtaqktx" path="res://.godot/imported/1.webp-ce34854663611340cf0edc545aa47206.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-ce34854663611340cf0edc545aa47206.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/茄子/2.webp b/assets/作物/茄子/2.webp index 13ca0d3..049a1dd 100644 Binary files a/assets/作物/茄子/2.webp and b/assets/作物/茄子/2.webp differ diff --git a/assets/作物/茄子/2.webp.import b/assets/作物/茄子/2.webp.import index a24be74..5734dfc 100644 --- a/assets/作物/茄子/2.webp.import +++ b/assets/作物/茄子/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bymqt66jq44ek" +uid="uid://dnmgt0lar0dxi" path="res://.godot/imported/2.webp-db36e15a75cfaced06e0c257580cd9f6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-db36e15a75cfaced06e0c257580cd9f6.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/茄子/3.webp b/assets/作物/茄子/3.webp index 8443e44..47444ab 100644 Binary files a/assets/作物/茄子/3.webp and b/assets/作物/茄子/3.webp differ diff --git a/assets/作物/茄子/3.webp.import b/assets/作物/茄子/3.webp.import new file mode 100644 index 0000000..afec9b7 --- /dev/null +++ b/assets/作物/茄子/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c22lhdxfqj3ls" +path="res://.godot/imported/3.webp-ed1f9a968b654616ff5596dc92c9473f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/茄子/3.webp" +dest_files=["res://.godot/imported/3.webp-ed1f9a968b654616ff5596dc92c9473f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/茄子/4.webp b/assets/作物/茄子/4.webp index 235555d..201016e 100644 Binary files a/assets/作物/茄子/4.webp and b/assets/作物/茄子/4.webp differ diff --git a/assets/作物/茄子/4.webp.import b/assets/作物/茄子/4.webp.import new file mode 100644 index 0000000..7de9f14 --- /dev/null +++ b/assets/作物/茄子/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnb0afavrjkbx" +path="res://.godot/imported/4.webp-09e380791e9c9ce6f1a8aefbef1f05a1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/茄子/4.webp" +dest_files=["res://.godot/imported/4.webp-09e380791e9c9ce6f1a8aefbef1f05a1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/茄子/成熟.webp b/assets/作物/茄子/成熟.webp index 235555d..201016e 100644 Binary files a/assets/作物/茄子/成熟.webp and b/assets/作物/茄子/成熟.webp differ diff --git a/assets/作物/茄子/成熟.webp.import b/assets/作物/茄子/成熟.webp.import index 8cd6c60..df48e49 100644 --- a/assets/作物/茄子/成熟.webp.import +++ b/assets/作物/茄子/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ds3mw2sar6rg" +uid="uid://bkl5sxe2m45me" path="res://.godot/imported/成熟.webp-99b0d2f02d68cd656f209d4d520aea24.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-99b0d2f02d68cd656f209d4d520aea24. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/茄子/收获物.webp b/assets/作物/茄子/收获物.webp index b6f3ba6..f06c71d 100644 Binary files a/assets/作物/茄子/收获物.webp and b/assets/作物/茄子/收获物.webp differ diff --git a/assets/作物/茄子/收获物.webp.import b/assets/作物/茄子/收获物.webp.import index e0b5b15..e7c0ad0 100644 --- a/assets/作物/茄子/收获物.webp.import +++ b/assets/作物/茄子/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cirvoh0q2nbu4" +uid="uid://cbse5jh7lmjqj" path="res://.godot/imported/收获物.webp-66e9e0cd9a165dc3904f7d1567d59151.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-66e9e0cd9a165dc3904f7d1567d591 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/草莓/0.webp b/assets/作物/草莓/0.webp index 8ea0a9a..0053bc4 100644 Binary files a/assets/作物/草莓/0.webp and b/assets/作物/草莓/0.webp differ diff --git a/assets/作物/草莓/0.webp.import b/assets/作物/草莓/0.webp.import index 8da830e..8962bc9 100644 --- a/assets/作物/草莓/0.webp.import +++ b/assets/作物/草莓/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dj6wx3hn723ea" +uid="uid://dhddub50brm2n" path="res://.godot/imported/0.webp-2ab061363d6616d0c555b531c06426bf.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-2ab061363d6616d0c555b531c06426bf.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/草莓/1.webp b/assets/作物/草莓/1.webp index aa3e7ac..36a7468 100644 Binary files a/assets/作物/草莓/1.webp and b/assets/作物/草莓/1.webp differ diff --git a/assets/作物/草莓/1.webp.import b/assets/作物/草莓/1.webp.import index 2b623cb..2a9bc9b 100644 --- a/assets/作物/草莓/1.webp.import +++ b/assets/作物/草莓/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://blkk6dkvj7te1" +uid="uid://xivo7axp0u4j" path="res://.godot/imported/1.webp-3841782e0390c135f87798553adbf2a7.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-3841782e0390c135f87798553adbf2a7.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/草莓/2.webp b/assets/作物/草莓/2.webp index e1036fc..2a4c8fe 100644 Binary files a/assets/作物/草莓/2.webp and b/assets/作物/草莓/2.webp differ diff --git a/assets/作物/草莓/2.webp.import b/assets/作物/草莓/2.webp.import index 1678f75..588e79d 100644 --- a/assets/作物/草莓/2.webp.import +++ b/assets/作物/草莓/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c3tvtfs8cfeg" +uid="uid://co1flrakowf4b" path="res://.godot/imported/2.webp-edeff81cf968d57361c5d65d8d2dfef7.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-edeff81cf968d57361c5d65d8d2dfef7.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/草莓/3.webp b/assets/作物/草莓/3.webp index 12c5c9f..cb7f766 100644 Binary files a/assets/作物/草莓/3.webp and b/assets/作物/草莓/3.webp differ diff --git a/assets/作物/草莓/3.webp.import b/assets/作物/草莓/3.webp.import new file mode 100644 index 0000000..2e924bc --- /dev/null +++ b/assets/作物/草莓/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b32v22ntib2v6" +path="res://.godot/imported/3.webp-bba16fa078a4b2316adfa04654d5da6a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/草莓/3.webp" +dest_files=["res://.godot/imported/3.webp-bba16fa078a4b2316adfa04654d5da6a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/草莓/成熟.webp b/assets/作物/草莓/成熟.webp index 12c5c9f..cb7f766 100644 Binary files a/assets/作物/草莓/成熟.webp and b/assets/作物/草莓/成熟.webp differ diff --git a/assets/作物/草莓/成熟.webp.import b/assets/作物/草莓/成熟.webp.import index 493dbfc..7da695e 100644 --- a/assets/作物/草莓/成熟.webp.import +++ b/assets/作物/草莓/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dggnbps356561" +uid="uid://h7put8id28e4" path="res://.godot/imported/成熟.webp-a1fa3e0bd7e747b90e1d64cd3aae8a74.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-a1fa3e0bd7e747b90e1d64cd3aae8a74. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/草莓/收获物.webp b/assets/作物/草莓/收获物.webp index cef5531..5c72d0e 100644 Binary files a/assets/作物/草莓/收获物.webp and b/assets/作物/草莓/收获物.webp differ diff --git a/assets/作物/草莓/收获物.webp.import b/assets/作物/草莓/收获物.webp.import index 4e5cd7d..85e9aae 100644 --- a/assets/作物/草莓/收获物.webp.import +++ b/assets/作物/草莓/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bybid0nspx6dg" +uid="uid://d1wqnmv0sjgxv" path="res://.godot/imported/收获物.webp-2b0d5677085dcc9d7249f9524bd2dc9a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-2b0d5677085dcc9d7249f9524bd2dc [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/荔枝/0.webp b/assets/作物/荔枝/0.webp index 2a91097..346bcdb 100644 Binary files a/assets/作物/荔枝/0.webp and b/assets/作物/荔枝/0.webp differ diff --git a/assets/作物/荔枝/0.webp.import b/assets/作物/荔枝/0.webp.import index 4e43766..b99fc46 100644 --- a/assets/作物/荔枝/0.webp.import +++ b/assets/作物/荔枝/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dma1wlef2013r" +uid="uid://ddav1bhwn6ak" path="res://.godot/imported/0.webp-770fb6b369f54aa81b53d11cab998f4d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-770fb6b369f54aa81b53d11cab998f4d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/荔枝/1.webp b/assets/作物/荔枝/1.webp index 9ce9f19..5b6261c 100644 Binary files a/assets/作物/荔枝/1.webp and b/assets/作物/荔枝/1.webp differ diff --git a/assets/作物/荔枝/1.webp.import b/assets/作物/荔枝/1.webp.import index 536d206..a483d2a 100644 --- a/assets/作物/荔枝/1.webp.import +++ b/assets/作物/荔枝/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://nped2w3ftax7" +uid="uid://dn6r67qt7uh60" path="res://.godot/imported/1.webp-7c2f85d246b6375d34c7aaa8efb5e282.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-7c2f85d246b6375d34c7aaa8efb5e282.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/荔枝/2.webp b/assets/作物/荔枝/2.webp index db010ea..3e89fb8 100644 Binary files a/assets/作物/荔枝/2.webp and b/assets/作物/荔枝/2.webp differ diff --git a/assets/作物/荔枝/2.webp.import b/assets/作物/荔枝/2.webp.import index 196491a..8f56384 100644 --- a/assets/作物/荔枝/2.webp.import +++ b/assets/作物/荔枝/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b3gvq8uwhcoqn" +uid="uid://bfdf5ahhtoptw" path="res://.godot/imported/2.webp-b49b7261b4da765f0342d7c46df33b1b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-b49b7261b4da765f0342d7c46df33b1b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/荔枝/成熟.webp b/assets/作物/荔枝/成熟.webp index d8bda8f..b633362 100644 Binary files a/assets/作物/荔枝/成熟.webp and b/assets/作物/荔枝/成熟.webp differ diff --git a/assets/作物/荔枝/成熟.webp.import b/assets/作物/荔枝/成熟.webp.import index 872c1c7..1989411 100644 --- a/assets/作物/荔枝/成熟.webp.import +++ b/assets/作物/荔枝/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://52hymsrygc85" +uid="uid://c7qraqbi388c3" path="res://.godot/imported/成熟.webp-c8db769eb816f5406c525ab38d2cbc8b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-c8db769eb816f5406c525ab38d2cbc8b. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/荔枝/收获物.webp b/assets/作物/荔枝/收获物.webp index f9d6eb7..7fba180 100644 Binary files a/assets/作物/荔枝/收获物.webp and b/assets/作物/荔枝/收获物.webp differ diff --git a/assets/作物/荔枝/收获物.webp.import b/assets/作物/荔枝/收获物.webp.import index 27d7eda..f384cc5 100644 --- a/assets/作物/荔枝/收获物.webp.import +++ b/assets/作物/荔枝/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bdl58gg13q8mn" +uid="uid://cqysjrbeipy5y" path="res://.godot/imported/收获物.webp-ac36a27fa2a6d48275cef7847832e137.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-ac36a27fa2a6d48275cef7847832e1 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菊花/0.webp b/assets/作物/菊花/0.webp index bc816f7..4d1e4bf 100644 Binary files a/assets/作物/菊花/0.webp and b/assets/作物/菊花/0.webp differ diff --git a/assets/作物/菊花/0.webp.import b/assets/作物/菊花/0.webp.import index 6e4ff79..c9e3c77 100644 --- a/assets/作物/菊花/0.webp.import +++ b/assets/作物/菊花/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cjj1gryqflt1t" +uid="uid://bjxsiwpl5t2eg" path="res://.godot/imported/0.webp-9d9949bb6a1386fbed7e4c51c136688c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-9d9949bb6a1386fbed7e4c51c136688c.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菊花/1.webp b/assets/作物/菊花/1.webp index 91a6da6..7547165 100644 Binary files a/assets/作物/菊花/1.webp and b/assets/作物/菊花/1.webp differ diff --git a/assets/作物/菊花/1.webp.import b/assets/作物/菊花/1.webp.import index 6f2573e..a255ace 100644 --- a/assets/作物/菊花/1.webp.import +++ b/assets/作物/菊花/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bxjhwb7f28frn" +uid="uid://oue5ayj4diaa" path="res://.godot/imported/1.webp-311d17dc428367d12e5e639e54b56fa8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-311d17dc428367d12e5e639e54b56fa8.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菊花/2.webp b/assets/作物/菊花/2.webp index 0ae8d5a..b8e7f90 100644 Binary files a/assets/作物/菊花/2.webp and b/assets/作物/菊花/2.webp differ diff --git a/assets/作物/菊花/2.webp.import b/assets/作物/菊花/2.webp.import index ad04953..026a26b 100644 --- a/assets/作物/菊花/2.webp.import +++ b/assets/作物/菊花/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://boxnriycoc8b0" +uid="uid://cwbxf0mi6pvyj" path="res://.godot/imported/2.webp-0660b3ea02238e200a721f00ca5f8f45.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-0660b3ea02238e200a721f00ca5f8f45.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菊花/3.webp b/assets/作物/菊花/3.webp index ca2545d..438f3b0 100644 Binary files a/assets/作物/菊花/3.webp and b/assets/作物/菊花/3.webp differ diff --git a/assets/作物/菊花/3.webp.import b/assets/作物/菊花/3.webp.import index 291cfce..0517577 100644 --- a/assets/作物/菊花/3.webp.import +++ b/assets/作物/菊花/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bjiqvauycunm1" +uid="uid://dorwn6lhmw2fc" path="res://.godot/imported/3.webp-97a151b252f82cf3a8891484324554ce.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-97a151b252f82cf3a8891484324554ce.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菊花/4.webp b/assets/作物/菊花/4.webp index d1b6161..f85df40 100644 Binary files a/assets/作物/菊花/4.webp and b/assets/作物/菊花/4.webp differ diff --git a/assets/作物/菊花/4.webp.import b/assets/作物/菊花/4.webp.import new file mode 100644 index 0000000..bf2a664 --- /dev/null +++ b/assets/作物/菊花/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://beoqw6tflgeb5" +path="res://.godot/imported/4.webp-51cf7b17d467e4f2dafb8ace11629a7a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/菊花/4.webp" +dest_files=["res://.godot/imported/4.webp-51cf7b17d467e4f2dafb8ace11629a7a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/菊花/成熟.webp b/assets/作物/菊花/成熟.webp index d1b6161..f85df40 100644 Binary files a/assets/作物/菊花/成熟.webp and b/assets/作物/菊花/成熟.webp differ diff --git a/assets/作物/菊花/成熟.webp.import b/assets/作物/菊花/成熟.webp.import index 740504c..99de21e 100644 --- a/assets/作物/菊花/成熟.webp.import +++ b/assets/作物/菊花/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b4yvrbxj3upwu" +uid="uid://b7b2ncldj1m60" path="res://.godot/imported/成熟.webp-e1b94c4a5f439ebea85a414249d70fa2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-e1b94c4a5f439ebea85a414249d70fa2. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菠萝/0.webp b/assets/作物/菠萝/0.webp index f31524b..f16556c 100644 Binary files a/assets/作物/菠萝/0.webp and b/assets/作物/菠萝/0.webp differ diff --git a/assets/作物/菠萝/0.webp.import b/assets/作物/菠萝/0.webp.import index 414ed96..0f9408b 100644 --- a/assets/作物/菠萝/0.webp.import +++ b/assets/作物/菠萝/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dxqmqjlvywmyg" +uid="uid://c31i5wejd21ed" path="res://.godot/imported/0.webp-c840204e008d018d3954d9555c60757e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-c840204e008d018d3954d9555c60757e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菠萝/1.webp b/assets/作物/菠萝/1.webp index d0bcce7..d2268d7 100644 Binary files a/assets/作物/菠萝/1.webp and b/assets/作物/菠萝/1.webp differ diff --git a/assets/作物/菠萝/1.webp.import b/assets/作物/菠萝/1.webp.import index 04a4eb1..40f8c64 100644 --- a/assets/作物/菠萝/1.webp.import +++ b/assets/作物/菠萝/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bec6d0r6ado03" +uid="uid://bee83ollxxijg" path="res://.godot/imported/1.webp-fc30a5c90656d31f264e297cbe8f6bb3.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-fc30a5c90656d31f264e297cbe8f6bb3.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菠萝/2.webp b/assets/作物/菠萝/2.webp index 8e895f6..8f9383c 100644 Binary files a/assets/作物/菠萝/2.webp and b/assets/作物/菠萝/2.webp differ diff --git a/assets/作物/菠萝/2.webp.import b/assets/作物/菠萝/2.webp.import index 7974f43..70bbf17 100644 --- a/assets/作物/菠萝/2.webp.import +++ b/assets/作物/菠萝/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cebdhsb2t5wn8" +uid="uid://bi4wphcudjqfw" path="res://.godot/imported/2.webp-5f261c884935746ca210270a4f317508.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-5f261c884935746ca210270a4f317508.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菠萝/3.webp b/assets/作物/菠萝/3.webp index 2c1dc6e..930072f 100644 Binary files a/assets/作物/菠萝/3.webp and b/assets/作物/菠萝/3.webp differ diff --git a/assets/作物/菠萝/3.webp.import b/assets/作物/菠萝/3.webp.import new file mode 100644 index 0000000..06b21ef --- /dev/null +++ b/assets/作物/菠萝/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://msmnn8gcmj5c" +path="res://.godot/imported/3.webp-bded88c18d8d80ea6d03623080ca4769.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/菠萝/3.webp" +dest_files=["res://.godot/imported/3.webp-bded88c18d8d80ea6d03623080ca4769.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/菠萝/4.webp b/assets/作物/菠萝/4.webp index e75c2fa..7d0fa77 100644 Binary files a/assets/作物/菠萝/4.webp and b/assets/作物/菠萝/4.webp differ diff --git a/assets/作物/菠萝/4.webp.import b/assets/作物/菠萝/4.webp.import new file mode 100644 index 0000000..7daa89f --- /dev/null +++ b/assets/作物/菠萝/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bg7knx85v20ph" +path="res://.godot/imported/4.webp-c48a0af68f1f74ea2d0111bcff3f7d76.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/菠萝/4.webp" +dest_files=["res://.godot/imported/4.webp-c48a0af68f1f74ea2d0111bcff3f7d76.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/菠萝/成熟.webp b/assets/作物/菠萝/成熟.webp index e75c2fa..7d0fa77 100644 Binary files a/assets/作物/菠萝/成熟.webp and b/assets/作物/菠萝/成熟.webp differ diff --git a/assets/作物/菠萝/成熟.webp.import b/assets/作物/菠萝/成熟.webp.import index f0351ac..17df33f 100644 --- a/assets/作物/菠萝/成熟.webp.import +++ b/assets/作物/菠萝/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bsd7bberyri87" +uid="uid://dt62bvpnstirt" path="res://.godot/imported/成熟.webp-57a9abd3fb40af0439f6e7cd481919ca.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-57a9abd3fb40af0439f6e7cd481919ca. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/菠萝/收获物.webp b/assets/作物/菠萝/收获物.webp index 1721ef6..20b088e 100644 Binary files a/assets/作物/菠萝/收获物.webp and b/assets/作物/菠萝/收获物.webp differ diff --git a/assets/作物/菠萝/收获物.webp.import b/assets/作物/菠萝/收获物.webp.import index 2a5e23a..14902ab 100644 --- a/assets/作物/菠萝/收获物.webp.import +++ b/assets/作物/菠萝/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cm7d5rwoewjrf" +uid="uid://yjy3dav7r3cv" path="res://.godot/imported/收获物.webp-873f650c89d3aadacd989e6d568391cb.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-873f650c89d3aadacd989e6d568391 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葡萄/0.webp b/assets/作物/葡萄/0.webp index be7f7c2..cea0269 100644 Binary files a/assets/作物/葡萄/0.webp and b/assets/作物/葡萄/0.webp differ diff --git a/assets/作物/葡萄/0.webp.import b/assets/作物/葡萄/0.webp.import index 9a85d55..e9f140c 100644 --- a/assets/作物/葡萄/0.webp.import +++ b/assets/作物/葡萄/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c5j2063er1fbb" +uid="uid://crh42a7ie6qst" path="res://.godot/imported/0.webp-3c9bc5458ac4d1d20150adeef631f948.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-3c9bc5458ac4d1d20150adeef631f948.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葡萄/1.webp b/assets/作物/葡萄/1.webp index e9eed2d..a60b4d4 100644 Binary files a/assets/作物/葡萄/1.webp and b/assets/作物/葡萄/1.webp differ diff --git a/assets/作物/葡萄/1.webp.import b/assets/作物/葡萄/1.webp.import index 9c7af15..ddac2f2 100644 --- a/assets/作物/葡萄/1.webp.import +++ b/assets/作物/葡萄/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://donutph7otau0" +uid="uid://yru18uo3b82c" path="res://.godot/imported/1.webp-410948cfea3c9bbb1955b2c355f49775.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-410948cfea3c9bbb1955b2c355f49775.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葡萄/2.webp b/assets/作物/葡萄/2.webp index 7d618fc..13ee3aa 100644 Binary files a/assets/作物/葡萄/2.webp and b/assets/作物/葡萄/2.webp differ diff --git a/assets/作物/葡萄/2.webp.import b/assets/作物/葡萄/2.webp.import index 16c12b2..1cc6099 100644 --- a/assets/作物/葡萄/2.webp.import +++ b/assets/作物/葡萄/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bwicdoljgj62x" +uid="uid://xtgeg2bjmoxj" path="res://.godot/imported/2.webp-1222362b594d2572386b39af49332040.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-1222362b594d2572386b39af49332040.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葡萄/3.webp b/assets/作物/葡萄/3.webp index 532fa48..d305157 100644 Binary files a/assets/作物/葡萄/3.webp and b/assets/作物/葡萄/3.webp differ diff --git a/assets/作物/葡萄/3.webp.import b/assets/作物/葡萄/3.webp.import index 4e022cb..0eece32 100644 --- a/assets/作物/葡萄/3.webp.import +++ b/assets/作物/葡萄/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://66mxqo1fblq7" +uid="uid://d2x8k72wpxe56" path="res://.godot/imported/3.webp-ed6144ae010f6fe0cda41a3ef2908e68.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-ed6144ae010f6fe0cda41a3ef2908e68.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葡萄/4.webp b/assets/作物/葡萄/4.webp index 45f7c16..5d12404 100644 Binary files a/assets/作物/葡萄/4.webp and b/assets/作物/葡萄/4.webp differ diff --git a/assets/作物/葡萄/4.webp.import b/assets/作物/葡萄/4.webp.import index 79ef0a6..b854972 100644 --- a/assets/作物/葡萄/4.webp.import +++ b/assets/作物/葡萄/4.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://qdi8o0e2ea0q" +uid="uid://dna50jkb3orrn" path="res://.godot/imported/4.webp-9e93d493b62513b4d4ec39cfbd403c42.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/4.webp-9e93d493b62513b4d4ec39cfbd403c42.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葡萄/5.webp b/assets/作物/葡萄/5.webp index d20369b..a352af7 100644 Binary files a/assets/作物/葡萄/5.webp and b/assets/作物/葡萄/5.webp differ diff --git a/assets/作物/葡萄/5.webp.import b/assets/作物/葡萄/5.webp.import new file mode 100644 index 0000000..a95fc19 --- /dev/null +++ b/assets/作物/葡萄/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvpx5u7f5gs1r" +path="res://.godot/imported/5.webp-7f3896b6796f88c8dde7e35ad02505c2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/葡萄/5.webp" +dest_files=["res://.godot/imported/5.webp-7f3896b6796f88c8dde7e35ad02505c2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/葡萄/成熟.webp b/assets/作物/葡萄/成熟.webp index d20369b..a352af7 100644 Binary files a/assets/作物/葡萄/成熟.webp and b/assets/作物/葡萄/成熟.webp differ diff --git a/assets/作物/葡萄/成熟.webp.import b/assets/作物/葡萄/成熟.webp.import index c1ff57e..e9bcc49 100644 --- a/assets/作物/葡萄/成熟.webp.import +++ b/assets/作物/葡萄/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://sp2kntpkq5rp" +uid="uid://cp2017p82x61v" path="res://.godot/imported/成熟.webp-c774df9f6934339efee397dc1caf6f98.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-c774df9f6934339efee397dc1caf6f98. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葡萄/收获物.webp b/assets/作物/葡萄/收获物.webp index 69a1bb2..00980a7 100644 Binary files a/assets/作物/葡萄/收获物.webp and b/assets/作物/葡萄/收获物.webp differ diff --git a/assets/作物/葡萄/收获物.webp.import b/assets/作物/葡萄/收获物.webp.import index bb3cf60..9272bab 100644 --- a/assets/作物/葡萄/收获物.webp.import +++ b/assets/作物/葡萄/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bjdysmiirpegr" +uid="uid://dkasesdvn8nwx" path="res://.godot/imported/收获物.webp-8bada96b659a3aeaf29b5bf3c5fae270.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-8bada96b659a3aeaf29b5bf3c5fae2 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葫芦/0.webp b/assets/作物/葫芦/0.webp index 132db61..d2c36a9 100644 Binary files a/assets/作物/葫芦/0.webp and b/assets/作物/葫芦/0.webp differ diff --git a/assets/作物/葫芦/0.webp.import b/assets/作物/葫芦/0.webp.import index 9629cc7..4961611 100644 --- a/assets/作物/葫芦/0.webp.import +++ b/assets/作物/葫芦/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ytcxefskv8a7" +uid="uid://ba7tebt4bds0h" path="res://.godot/imported/0.webp-3cde573a16bf0bea7109d657e0254dfc.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-3cde573a16bf0bea7109d657e0254dfc.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葫芦/1.webp b/assets/作物/葫芦/1.webp index 0888b01..5b7d971 100644 Binary files a/assets/作物/葫芦/1.webp and b/assets/作物/葫芦/1.webp differ diff --git a/assets/作物/葫芦/1.webp.import b/assets/作物/葫芦/1.webp.import index 4704248..759d71d 100644 --- a/assets/作物/葫芦/1.webp.import +++ b/assets/作物/葫芦/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bq6nratogyibo" +uid="uid://cpjwwi01pq44l" path="res://.godot/imported/1.webp-b0ca89ce5b2c2ab32d525acaaf2e4c58.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-b0ca89ce5b2c2ab32d525acaaf2e4c58.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葫芦/成熟.webp b/assets/作物/葫芦/成熟.webp index 4fb66df..5da379b 100644 Binary files a/assets/作物/葫芦/成熟.webp and b/assets/作物/葫芦/成熟.webp differ diff --git a/assets/作物/葫芦/成熟.webp.import b/assets/作物/葫芦/成熟.webp.import index 3ad871f..71f1c86 100644 --- a/assets/作物/葫芦/成熟.webp.import +++ b/assets/作物/葫芦/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dyrcmyqgtu6e2" +uid="uid://llrcnna6esav" path="res://.godot/imported/成熟.webp-77431286f535b35107aa25e66d3ec8d9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-77431286f535b35107aa25e66d3ec8d9. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/葫芦/收获物.webp b/assets/作物/葫芦/收获物.webp index 91056c7..91c4776 100644 Binary files a/assets/作物/葫芦/收获物.webp and b/assets/作物/葫芦/收获物.webp differ diff --git a/assets/作物/葫芦/收获物.webp.import b/assets/作物/葫芦/收获物.webp.import index 22d7ff0..7dc1394 100644 --- a/assets/作物/葫芦/收获物.webp.import +++ b/assets/作物/葫芦/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b0sy3kyjxybsy" +uid="uid://clp5aqnflynf0" path="res://.godot/imported/收获物.webp-52b69427c09dc9f1cc4189ff5640645f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-52b69427c09dc9f1cc4189ff564064 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蓝莓/0.webp b/assets/作物/蓝莓/0.webp index 7288b3f..af0a058 100644 Binary files a/assets/作物/蓝莓/0.webp and b/assets/作物/蓝莓/0.webp differ diff --git a/assets/作物/蓝莓/0.webp.import b/assets/作物/蓝莓/0.webp.import index c1d94c3..0dd23bf 100644 --- a/assets/作物/蓝莓/0.webp.import +++ b/assets/作物/蓝莓/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://4vbeal5jbahh" +uid="uid://dr727s3x874a" path="res://.godot/imported/0.webp-6ab7697ce999322ab1f8c0d17a59198d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-6ab7697ce999322ab1f8c0d17a59198d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蓝莓/1.webp b/assets/作物/蓝莓/1.webp index a91a2b0..e864134 100644 Binary files a/assets/作物/蓝莓/1.webp and b/assets/作物/蓝莓/1.webp differ diff --git a/assets/作物/蓝莓/1.webp.import b/assets/作物/蓝莓/1.webp.import index 41a8ee6..b39fd7f 100644 --- a/assets/作物/蓝莓/1.webp.import +++ b/assets/作物/蓝莓/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://datuj5nfcu2hu" +uid="uid://bsuwbvg16x5ry" path="res://.godot/imported/1.webp-86db52bb86484b3a2384a48a3f5bebb6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-86db52bb86484b3a2384a48a3f5bebb6.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蓝莓/2.webp b/assets/作物/蓝莓/2.webp index f08fbbf..5bae51d 100644 Binary files a/assets/作物/蓝莓/2.webp and b/assets/作物/蓝莓/2.webp differ diff --git a/assets/作物/蓝莓/2.webp.import b/assets/作物/蓝莓/2.webp.import index 8519417..061845f 100644 --- a/assets/作物/蓝莓/2.webp.import +++ b/assets/作物/蓝莓/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bgo21735u4nth" +uid="uid://dxau0p72n80ev" path="res://.godot/imported/2.webp-20e6ef4c29159dcc89bf05a46e169c43.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-20e6ef4c29159dcc89bf05a46e169c43.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蓝莓/3.webp b/assets/作物/蓝莓/3.webp index 37fbb57..3a0e33d 100644 Binary files a/assets/作物/蓝莓/3.webp and b/assets/作物/蓝莓/3.webp differ diff --git a/assets/作物/蓝莓/3.webp.import b/assets/作物/蓝莓/3.webp.import index 0caad2d..386c41b 100644 --- a/assets/作物/蓝莓/3.webp.import +++ b/assets/作物/蓝莓/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cwrn27u53n7n5" +uid="uid://bbsl67v7cbtkg" path="res://.godot/imported/3.webp-f4e371c63d187da595a4f246ed31f926.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-f4e371c63d187da595a4f246ed31f926.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蓝莓/4.webp b/assets/作物/蓝莓/4.webp index b5024b6..23e0301 100644 Binary files a/assets/作物/蓝莓/4.webp and b/assets/作物/蓝莓/4.webp differ diff --git a/assets/作物/蓝莓/4.webp.import b/assets/作物/蓝莓/4.webp.import new file mode 100644 index 0000000..e15dfd8 --- /dev/null +++ b/assets/作物/蓝莓/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b46lpjckkds4p" +path="res://.godot/imported/4.webp-b07500837bd0342e70bd9470044e222c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/蓝莓/4.webp" +dest_files=["res://.godot/imported/4.webp-b07500837bd0342e70bd9470044e222c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/蓝莓/5.webp b/assets/作物/蓝莓/5.webp index 89d93f9..686b713 100644 Binary files a/assets/作物/蓝莓/5.webp and b/assets/作物/蓝莓/5.webp differ diff --git a/assets/作物/蓝莓/5.webp.import b/assets/作物/蓝莓/5.webp.import new file mode 100644 index 0000000..e1f4e68 --- /dev/null +++ b/assets/作物/蓝莓/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dagwxk6hic0k" +path="res://.godot/imported/5.webp-217f02ac2baa5aca0d8dd534c072acd5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/蓝莓/5.webp" +dest_files=["res://.godot/imported/5.webp-217f02ac2baa5aca0d8dd534c072acd5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/蓝莓/成熟.webp b/assets/作物/蓝莓/成熟.webp index b5024b6..23e0301 100644 Binary files a/assets/作物/蓝莓/成熟.webp and b/assets/作物/蓝莓/成熟.webp differ diff --git a/assets/作物/蓝莓/成熟.webp.import b/assets/作物/蓝莓/成熟.webp.import index 39f3cf7..058810f 100644 --- a/assets/作物/蓝莓/成熟.webp.import +++ b/assets/作物/蓝莓/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dq0anyfceqotd" +uid="uid://c1tiii7doce37" path="res://.godot/imported/成熟.webp-62b6c62f5e297489d1925b192a2b4408.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-62b6c62f5e297489d1925b192a2b4408. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蓝莓/收获物.webp b/assets/作物/蓝莓/收获物.webp index 29e159a..38b4e1b 100644 Binary files a/assets/作物/蓝莓/收获物.webp and b/assets/作物/蓝莓/收获物.webp differ diff --git a/assets/作物/蓝莓/收获物.webp.import b/assets/作物/蓝莓/收获物.webp.import index 30c3712..b1542e3 100644 --- a/assets/作物/蓝莓/收获物.webp.import +++ b/assets/作物/蓝莓/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c7niy4k2judsf" +uid="uid://cmwii23kcg5jx" path="res://.godot/imported/收获物.webp-9e9acd43bfc39f2e17959b0bf72265b2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-9e9acd43bfc39f2e17959b0bf72265 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蕨菜/0.webp b/assets/作物/蕨菜/0.webp index fe1cd04..e046d23 100644 Binary files a/assets/作物/蕨菜/0.webp and b/assets/作物/蕨菜/0.webp differ diff --git a/assets/作物/蕨菜/0.webp.import b/assets/作物/蕨菜/0.webp.import index 222981f..76c2a20 100644 --- a/assets/作物/蕨菜/0.webp.import +++ b/assets/作物/蕨菜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cm5kxxlw0v5xj" +uid="uid://dqdsd3525vkt3" path="res://.godot/imported/0.webp-4f606d99cec42a68e5a7d760eecfb51c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-4f606d99cec42a68e5a7d760eecfb51c.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蕨菜/1.webp b/assets/作物/蕨菜/1.webp index 87ae745..69897a4 100644 Binary files a/assets/作物/蕨菜/1.webp and b/assets/作物/蕨菜/1.webp differ diff --git a/assets/作物/蕨菜/1.webp.import b/assets/作物/蕨菜/1.webp.import index 11d0573..6beafa8 100644 --- a/assets/作物/蕨菜/1.webp.import +++ b/assets/作物/蕨菜/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dxk3gvj0noyi6" +uid="uid://dlcbwgoxkifd4" path="res://.godot/imported/1.webp-396e258bcb8ce62798e63718e7c2b85b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-396e258bcb8ce62798e63718e7c2b85b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蕨菜/2.webp b/assets/作物/蕨菜/2.webp index fee7a3b..36684b1 100644 Binary files a/assets/作物/蕨菜/2.webp and b/assets/作物/蕨菜/2.webp differ diff --git a/assets/作物/蕨菜/2.webp.import b/assets/作物/蕨菜/2.webp.import index 48c9d43..6c340d4 100644 --- a/assets/作物/蕨菜/2.webp.import +++ b/assets/作物/蕨菜/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cat2xh54d638t" +uid="uid://brp6wg65buwcx" path="res://.godot/imported/2.webp-faca4bb9b9a81828f3324b15522b1f78.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-faca4bb9b9a81828f3324b15522b1f78.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蕨菜/3.webp b/assets/作物/蕨菜/3.webp index 7455be1..1535d5b 100644 Binary files a/assets/作物/蕨菜/3.webp and b/assets/作物/蕨菜/3.webp differ diff --git a/assets/作物/蕨菜/3.webp.import b/assets/作物/蕨菜/3.webp.import index 3eb4cad..759b07e 100644 --- a/assets/作物/蕨菜/3.webp.import +++ b/assets/作物/蕨菜/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://pyj0olxh6fsj" +uid="uid://16fk2fn6m0kq" path="res://.godot/imported/3.webp-9c5b49c5921861c3e404042fa7fb04b0.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-9c5b49c5921861c3e404042fa7fb04b0.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蕨菜/4.webp b/assets/作物/蕨菜/4.webp index fee7a3b..36684b1 100644 Binary files a/assets/作物/蕨菜/4.webp and b/assets/作物/蕨菜/4.webp differ diff --git a/assets/作物/蕨菜/4.webp.import b/assets/作物/蕨菜/4.webp.import new file mode 100644 index 0000000..0bb8828 --- /dev/null +++ b/assets/作物/蕨菜/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjx4exfpgpwrw" +path="res://.godot/imported/4.webp-750badd0db5d0ab30188aa64f5a55661.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/蕨菜/4.webp" +dest_files=["res://.godot/imported/4.webp-750badd0db5d0ab30188aa64f5a55661.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/蕨菜/5.webp b/assets/作物/蕨菜/5.webp index 7455be1..1535d5b 100644 Binary files a/assets/作物/蕨菜/5.webp and b/assets/作物/蕨菜/5.webp differ diff --git a/assets/作物/蕨菜/5.webp.import b/assets/作物/蕨菜/5.webp.import new file mode 100644 index 0000000..bab8f76 --- /dev/null +++ b/assets/作物/蕨菜/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://630ryqoevfjg" +path="res://.godot/imported/5.webp-0579b3f542ec40d38115b97c252f1a4c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/蕨菜/5.webp" +dest_files=["res://.godot/imported/5.webp-0579b3f542ec40d38115b97c252f1a4c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/蕨菜/6.webp b/assets/作物/蕨菜/6.webp index 8b9f2f7..b9b3fc5 100644 Binary files a/assets/作物/蕨菜/6.webp and b/assets/作物/蕨菜/6.webp differ diff --git a/assets/作物/蕨菜/6.webp.import b/assets/作物/蕨菜/6.webp.import new file mode 100644 index 0000000..8757e31 --- /dev/null +++ b/assets/作物/蕨菜/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cc7bvkx4k3rdh" +path="res://.godot/imported/6.webp-2ba4f654f54c60fd807ce0c7ea8e0ad7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/蕨菜/6.webp" +dest_files=["res://.godot/imported/6.webp-2ba4f654f54c60fd807ce0c7ea8e0ad7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/蕨菜/7.webp b/assets/作物/蕨菜/7.webp index c83cfa2..49dd053 100644 Binary files a/assets/作物/蕨菜/7.webp and b/assets/作物/蕨菜/7.webp differ diff --git a/assets/作物/蕨菜/7.webp.import b/assets/作物/蕨菜/7.webp.import new file mode 100644 index 0000000..a941256 --- /dev/null +++ b/assets/作物/蕨菜/7.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://nu4il2msj1ma" +path="res://.godot/imported/7.webp-92e1b3af24850162525fc31ce491d4da.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/蕨菜/7.webp" +dest_files=["res://.godot/imported/7.webp-92e1b3af24850162525fc31ce491d4da.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/蕨菜/成熟.webp b/assets/作物/蕨菜/成熟.webp index 8b9f2f7..b9b3fc5 100644 Binary files a/assets/作物/蕨菜/成熟.webp and b/assets/作物/蕨菜/成熟.webp differ diff --git a/assets/作物/蕨菜/成熟.webp.import b/assets/作物/蕨菜/成熟.webp.import index 05acb08..3911e0e 100644 --- a/assets/作物/蕨菜/成熟.webp.import +++ b/assets/作物/蕨菜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dgqf6hnwtbv5p" +uid="uid://dy8tno2eckyid" path="res://.godot/imported/成熟.webp-7e1a73c4092744c33ad10905a9c7b2b5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-7e1a73c4092744c33ad10905a9c7b2b5. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/蕨菜/收获物.webp b/assets/作物/蕨菜/收获物.webp index eb586ee..f2baac1 100644 Binary files a/assets/作物/蕨菜/收获物.webp and b/assets/作物/蕨菜/收获物.webp differ diff --git a/assets/作物/蕨菜/收获物.webp.import b/assets/作物/蕨菜/收获物.webp.import index 4513ee5..a96e523 100644 --- a/assets/作物/蕨菜/收获物.webp.import +++ b/assets/作物/蕨菜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://be02m3e5vgsr" +uid="uid://3jbhoptymshc" path="res://.godot/imported/收获物.webp-86b8eb1992aef221a3732939efb4aa98.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-86b8eb1992aef221a3732939efb4aa [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/藏红花/0.webp b/assets/作物/藏红花/0.webp index 2ceba51..c346d95 100644 Binary files a/assets/作物/藏红花/0.webp and b/assets/作物/藏红花/0.webp differ diff --git a/assets/作物/藏红花/0.webp.import b/assets/作物/藏红花/0.webp.import index 6f18bac..ef0312e 100644 --- a/assets/作物/藏红花/0.webp.import +++ b/assets/作物/藏红花/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d28hutbdwtx6v" +uid="uid://cmytlcrmqsklj" path="res://.godot/imported/0.webp-290812172f0e7d4ec555e1942dc8b271.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-290812172f0e7d4ec555e1942dc8b271.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/藏红花/1750049578133.webp b/assets/作物/藏红花/1750049578133.webp index 771d2cb..a06a1fd 100644 Binary files a/assets/作物/藏红花/1750049578133.webp and b/assets/作物/藏红花/1750049578133.webp differ diff --git a/assets/作物/藏红花/1750049578133.webp.import b/assets/作物/藏红花/1750049578133.webp.import index 068a29f..5aa4385 100644 --- a/assets/作物/藏红花/1750049578133.webp.import +++ b/assets/作物/藏红花/1750049578133.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://v6rlqxcpory" +uid="uid://k2l5mob1aw7" path="res://.godot/imported/1750049578133.webp-23f4b9b90577ca12afecaba5c0eade1e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750049578133.webp-23f4b9b90577ca12afecaba5c0 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/藏红花/成熟.webp b/assets/作物/藏红花/成熟.webp index 846dd3e..736a800 100644 Binary files a/assets/作物/藏红花/成熟.webp and b/assets/作物/藏红花/成熟.webp differ diff --git a/assets/作物/藏红花/成熟.webp.import b/assets/作物/藏红花/成熟.webp.import index de41e2b..b6d969f 100644 --- a/assets/作物/藏红花/成熟.webp.import +++ b/assets/作物/藏红花/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cipadjmlds5i7" +uid="uid://kogaavvcxl3w" path="res://.godot/imported/成熟.webp-d70cdf151d86d7cf01038e88e74d98b2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-d70cdf151d86d7cf01038e88e74d98b2. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/藏红花/收获物.webp b/assets/作物/藏红花/收获物.webp index bac9a0c..a3346b7 100644 Binary files a/assets/作物/藏红花/收获物.webp and b/assets/作物/藏红花/收获物.webp differ diff --git a/assets/作物/藏红花/收获物.webp.import b/assets/作物/藏红花/收获物.webp.import index 6d13625..e5e005c 100644 --- a/assets/作物/藏红花/收获物.webp.import +++ b/assets/作物/藏红花/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dmdiv2t5v8wlw" +uid="uid://b5lf5hqqw1xi0" path="res://.godot/imported/收获物.webp-cae209a93ed17140f7d8960a9dd401b7.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-cae209a93ed17140f7d8960a9dd401 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/藏羚羊草/0.webp b/assets/作物/藏羚羊草/0.webp index 1f50da9..6d4bf03 100644 Binary files a/assets/作物/藏羚羊草/0.webp and b/assets/作物/藏羚羊草/0.webp differ diff --git a/assets/作物/藏羚羊草/0.webp.import b/assets/作物/藏羚羊草/0.webp.import index ad9ea0f..20639d5 100644 --- a/assets/作物/藏羚羊草/0.webp.import +++ b/assets/作物/藏羚羊草/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://8poukeb3nwvk" +uid="uid://d3awckbckaxk" path="res://.godot/imported/0.webp-a0e4963bed6a18c904ac17a6620df9e9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-a0e4963bed6a18c904ac17a6620df9e9.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/藏羚羊草/成熟.webp b/assets/作物/藏羚羊草/成熟.webp index 673f3d8..310e75d 100644 Binary files a/assets/作物/藏羚羊草/成熟.webp and b/assets/作物/藏羚羊草/成熟.webp differ diff --git a/assets/作物/藏羚羊草/成熟.webp.import b/assets/作物/藏羚羊草/成熟.webp.import index 36bf1dd..5d173be 100644 --- a/assets/作物/藏羚羊草/成熟.webp.import +++ b/assets/作物/藏羚羊草/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://iide3w3yj0x0" +uid="uid://cah3fr6ne1nep" path="res://.godot/imported/成熟.webp-9c3621b35f23eea3ce309f3cac028a4e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-9c3621b35f23eea3ce309f3cac028a4e. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/藏羚羊草/收获物.webp b/assets/作物/藏羚羊草/收获物.webp index 7cad161..3c8ffad 100644 Binary files a/assets/作物/藏羚羊草/收获物.webp and b/assets/作物/藏羚羊草/收获物.webp differ diff --git a/assets/作物/藏羚羊草/收获物.webp.import b/assets/作物/藏羚羊草/收获物.webp.import index 6f2c39b..3de747a 100644 --- a/assets/作物/藏羚羊草/收获物.webp.import +++ b/assets/作物/藏羚羊草/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://h8njh0gy4f36" +uid="uid://fc4eff46qbgi" path="res://.godot/imported/收获物.webp-7a37577638bd60fec539d06ff5f990af.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-7a37577638bd60fec539d06ff5f990 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/西瓜/0.webp b/assets/作物/西瓜/0.webp index 0a91110..84d2e32 100644 Binary files a/assets/作物/西瓜/0.webp and b/assets/作物/西瓜/0.webp differ diff --git a/assets/作物/西瓜/0.webp.import b/assets/作物/西瓜/0.webp.import index 5322185..98d2abb 100644 --- a/assets/作物/西瓜/0.webp.import +++ b/assets/作物/西瓜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://s6svrmxvtgib" +uid="uid://cqdo1lfmsrnpc" path="res://.godot/imported/0.webp-bff9fa6d46f9a13fb83160cc8f1d336f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-bff9fa6d46f9a13fb83160cc8f1d336f.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/西瓜/1.webp b/assets/作物/西瓜/1.webp index e2f38a3..c40e2b0 100644 Binary files a/assets/作物/西瓜/1.webp and b/assets/作物/西瓜/1.webp differ diff --git a/assets/作物/西瓜/1.webp.import b/assets/作物/西瓜/1.webp.import index 8dcfaf8..ce82870 100644 --- a/assets/作物/西瓜/1.webp.import +++ b/assets/作物/西瓜/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://djbq5kyngcfar" +uid="uid://c36gwum7dagr6" path="res://.godot/imported/1.webp-98d0df050ac30abe9c9e8746d5ff33a9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-98d0df050ac30abe9c9e8746d5ff33a9.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/西瓜/2.webp b/assets/作物/西瓜/2.webp index cad75af..2dc6e7f 100644 Binary files a/assets/作物/西瓜/2.webp and b/assets/作物/西瓜/2.webp differ diff --git a/assets/作物/西瓜/2.webp.import b/assets/作物/西瓜/2.webp.import index ed88e88..ff46268 100644 --- a/assets/作物/西瓜/2.webp.import +++ b/assets/作物/西瓜/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cqu0gitvockaw" +uid="uid://gj6f6y0iulvr" path="res://.godot/imported/2.webp-7031d08f5d91a018cdbbd35445ad80d4.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-7031d08f5d91a018cdbbd35445ad80d4.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/西瓜/3.webp b/assets/作物/西瓜/3.webp index d9b0acf..0f40047 100644 Binary files a/assets/作物/西瓜/3.webp and b/assets/作物/西瓜/3.webp differ diff --git a/assets/作物/西瓜/3.webp.import b/assets/作物/西瓜/3.webp.import index 9551319..ce2694f 100644 --- a/assets/作物/西瓜/3.webp.import +++ b/assets/作物/西瓜/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cn5xr6s2tar4l" +uid="uid://b6hehjf74rlxn" path="res://.godot/imported/3.webp-b4eb24719e162ffac02b9e777d005b30.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-b4eb24719e162ffac02b9e777d005b30.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/西瓜/4.webp b/assets/作物/西瓜/4.webp index 3edc1ac..f0841da 100644 Binary files a/assets/作物/西瓜/4.webp and b/assets/作物/西瓜/4.webp differ diff --git a/assets/作物/西瓜/4.webp.import b/assets/作物/西瓜/4.webp.import new file mode 100644 index 0000000..b7bc6c0 --- /dev/null +++ b/assets/作物/西瓜/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4o1lunjwp6sm" +path="res://.godot/imported/4.webp-3c07c268c4b883582c12998fc686795d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/西瓜/4.webp" +dest_files=["res://.godot/imported/4.webp-3c07c268c4b883582c12998fc686795d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/西瓜/5.webp b/assets/作物/西瓜/5.webp index d9b0acf..0f40047 100644 Binary files a/assets/作物/西瓜/5.webp and b/assets/作物/西瓜/5.webp differ diff --git a/assets/作物/西瓜/5.webp.import b/assets/作物/西瓜/5.webp.import new file mode 100644 index 0000000..2181313 --- /dev/null +++ b/assets/作物/西瓜/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cuoxtmgeyhiks" +path="res://.godot/imported/5.webp-9a82c1cc39172e4934c5ed3166edf31b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/西瓜/5.webp" +dest_files=["res://.godot/imported/5.webp-9a82c1cc39172e4934c5ed3166edf31b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/西瓜/6.webp b/assets/作物/西瓜/6.webp index 47c22b6..cf4dba3 100644 Binary files a/assets/作物/西瓜/6.webp and b/assets/作物/西瓜/6.webp differ diff --git a/assets/作物/西瓜/6.webp.import b/assets/作物/西瓜/6.webp.import new file mode 100644 index 0000000..9eae97e --- /dev/null +++ b/assets/作物/西瓜/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cw0m7nuskx8sl" +path="res://.godot/imported/6.webp-92dd7f3dbb7e733ded2ea771c0a6d3bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/西瓜/6.webp" +dest_files=["res://.godot/imported/6.webp-92dd7f3dbb7e733ded2ea771c0a6d3bc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/西瓜/成熟.webp b/assets/作物/西瓜/成熟.webp index 47c22b6..cf4dba3 100644 Binary files a/assets/作物/西瓜/成熟.webp and b/assets/作物/西瓜/成熟.webp differ diff --git a/assets/作物/西瓜/成熟.webp.import b/assets/作物/西瓜/成熟.webp.import index 93263ee..4856418 100644 --- a/assets/作物/西瓜/成熟.webp.import +++ b/assets/作物/西瓜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c0sh7g32l48fg" +uid="uid://wlfcmkd7qmx4" path="res://.godot/imported/成熟.webp-0c6ddbac91be36190c0addcc9d3505c6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-0c6ddbac91be36190c0addcc9d3505c6. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/西瓜/收获物.webp b/assets/作物/西瓜/收获物.webp index 8046ea2..e0a048d 100644 Binary files a/assets/作物/西瓜/收获物.webp and b/assets/作物/西瓜/收获物.webp differ diff --git a/assets/作物/西瓜/收获物.webp.import b/assets/作物/西瓜/收获物.webp.import index 27f4747..e7cab55 100644 --- a/assets/作物/西瓜/收获物.webp.import +++ b/assets/作物/西瓜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://5sbwv30qwsms" +uid="uid://baeklhpowkf0a" path="res://.godot/imported/收获物.webp-d46ddd47eed64b4b33df2946e49f17eb.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-d46ddd47eed64b4b33df2946e49f17 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/豌豆/0.webp b/assets/作物/豌豆/0.webp index be9f4af..a7d2cb4 100644 Binary files a/assets/作物/豌豆/0.webp and b/assets/作物/豌豆/0.webp differ diff --git a/assets/作物/豌豆/0.webp.import b/assets/作物/豌豆/0.webp.import index 2d8b250..7df9fcf 100644 --- a/assets/作物/豌豆/0.webp.import +++ b/assets/作物/豌豆/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://br4wibhkr1ygk" +uid="uid://h5kxhi5udkyt" path="res://.godot/imported/0.webp-d97af923ba518c626db0d948a95551e5.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-d97af923ba518c626db0d948a95551e5.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/豌豆/1.webp b/assets/作物/豌豆/1.webp index 9d5a1d1..9593cdd 100644 Binary files a/assets/作物/豌豆/1.webp and b/assets/作物/豌豆/1.webp differ diff --git a/assets/作物/豌豆/1.webp.import b/assets/作物/豌豆/1.webp.import index dae9709..296ba65 100644 --- a/assets/作物/豌豆/1.webp.import +++ b/assets/作物/豌豆/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c0dl87v36jfqx" +uid="uid://bikg1rp1be8cq" path="res://.godot/imported/1.webp-37cf91566b65b06fff08b3584d593329.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-37cf91566b65b06fff08b3584d593329.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/豌豆/1750050678452.webp b/assets/作物/豌豆/1750050678452.webp index 23cd24b..f360e9b 100644 Binary files a/assets/作物/豌豆/1750050678452.webp and b/assets/作物/豌豆/1750050678452.webp differ diff --git a/assets/作物/豌豆/1750050678452.webp.import b/assets/作物/豌豆/1750050678452.webp.import index 33719b1..9958d17 100644 --- a/assets/作物/豌豆/1750050678452.webp.import +++ b/assets/作物/豌豆/1750050678452.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cpm81uai150wp" +uid="uid://bgjaxlkxmo5ip" path="res://.godot/imported/1750050678452.webp-4ab24f4ce0098a1668f8979d72e482c2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750050678452.webp-4ab24f4ce0098a1668f8979d72 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/豌豆/2.webp b/assets/作物/豌豆/2.webp index 63d6618..854a94d 100644 Binary files a/assets/作物/豌豆/2.webp and b/assets/作物/豌豆/2.webp differ diff --git a/assets/作物/豌豆/2.webp.import b/assets/作物/豌豆/2.webp.import index d540546..22e08d1 100644 --- a/assets/作物/豌豆/2.webp.import +++ b/assets/作物/豌豆/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ys68heiby4wb" +uid="uid://cvy8bpfdbupua" path="res://.godot/imported/2.webp-a7d990f2ba2a85322c96c776efa939db.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-a7d990f2ba2a85322c96c776efa939db.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/豌豆/3.webp b/assets/作物/豌豆/3.webp index 3c6cf97..df4e642 100644 Binary files a/assets/作物/豌豆/3.webp and b/assets/作物/豌豆/3.webp differ diff --git a/assets/作物/豌豆/3.webp.import b/assets/作物/豌豆/3.webp.import index 5b3677f..16bb21b 100644 --- a/assets/作物/豌豆/3.webp.import +++ b/assets/作物/豌豆/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://djfoyftrvrgei" +uid="uid://bphy3opxipy2f" path="res://.godot/imported/3.webp-0202e02201cbbc0c2a9c9c04e71d639e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-0202e02201cbbc0c2a9c9c04e71d639e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/豌豆/4.webp b/assets/作物/豌豆/4.webp index 6c3c658..5087119 100644 Binary files a/assets/作物/豌豆/4.webp and b/assets/作物/豌豆/4.webp differ diff --git a/assets/作物/豌豆/4.webp.import b/assets/作物/豌豆/4.webp.import new file mode 100644 index 0000000..bfbf680 --- /dev/null +++ b/assets/作物/豌豆/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://k7835mx3y8eu" +path="res://.godot/imported/4.webp-038ebcd5cf3494d3f4d79c67de602419.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/豌豆/4.webp" +dest_files=["res://.godot/imported/4.webp-038ebcd5cf3494d3f4d79c67de602419.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/豌豆/成熟.webp b/assets/作物/豌豆/成熟.webp index 6c3c658..5087119 100644 Binary files a/assets/作物/豌豆/成熟.webp and b/assets/作物/豌豆/成熟.webp differ diff --git a/assets/作物/豌豆/成熟.webp.import b/assets/作物/豌豆/成熟.webp.import index 30b8d7e..300bc17 100644 --- a/assets/作物/豌豆/成熟.webp.import +++ b/assets/作物/豌豆/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b3k14ayir1kar" +uid="uid://blceid4mldbi" path="res://.godot/imported/成熟.webp-5cd64de202453643cf26b763ff6537de.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-5cd64de202453643cf26b763ff6537de. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/豌豆/收获物.webp b/assets/作物/豌豆/收获物.webp index c335008..545dc5b 100644 Binary files a/assets/作物/豌豆/收获物.webp and b/assets/作物/豌豆/收获物.webp differ diff --git a/assets/作物/豌豆/收获物.webp.import b/assets/作物/豌豆/收获物.webp.import index 55b59b6..0eb5ee4 100644 --- a/assets/作物/豌豆/收获物.webp.import +++ b/assets/作物/豌豆/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dkrs3dieah6li" +uid="uid://bm32av0kceifc" path="res://.godot/imported/收获物.webp-3033edc95387436ffd65fdcfb858fa37.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-3033edc95387436ffd65fdcfb858fa [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/辣椒/0.webp b/assets/作物/辣椒/0.webp index fab6ff8..76228bc 100644 Binary files a/assets/作物/辣椒/0.webp and b/assets/作物/辣椒/0.webp differ diff --git a/assets/作物/辣椒/0.webp.import b/assets/作物/辣椒/0.webp.import index 434ea1d..7efc6e6 100644 --- a/assets/作物/辣椒/0.webp.import +++ b/assets/作物/辣椒/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cb5wabhpibj21" +uid="uid://c27jxruc4j714" path="res://.godot/imported/0.webp-cdde946a87de815fd2fb81ab0bc58084.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-cdde946a87de815fd2fb81ab0bc58084.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/辣椒/1.webp b/assets/作物/辣椒/1.webp index 057b012..1bf56e2 100644 Binary files a/assets/作物/辣椒/1.webp and b/assets/作物/辣椒/1.webp differ diff --git a/assets/作物/辣椒/1.webp.import b/assets/作物/辣椒/1.webp.import index bb933bc..d3a7b50 100644 --- a/assets/作物/辣椒/1.webp.import +++ b/assets/作物/辣椒/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dgimc1glr3oa4" +uid="uid://b7qyhbrr6axr1" path="res://.godot/imported/1.webp-b9f36eef7356d58b59879abe678f482a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-b9f36eef7356d58b59879abe678f482a.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/辣椒/2.webp b/assets/作物/辣椒/2.webp index 89eb258..9d02a6f 100644 Binary files a/assets/作物/辣椒/2.webp and b/assets/作物/辣椒/2.webp differ diff --git a/assets/作物/辣椒/2.webp.import b/assets/作物/辣椒/2.webp.import index 647b200..cf3ba11 100644 --- a/assets/作物/辣椒/2.webp.import +++ b/assets/作物/辣椒/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dd8yc8tklh2lp" +uid="uid://g71ngmag4yu3" path="res://.godot/imported/2.webp-9499d58b4196aaca28f6aaf3b4a18238.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-9499d58b4196aaca28f6aaf3b4a18238.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/辣椒/3.webp b/assets/作物/辣椒/3.webp index 1cbf807..3b074c2 100644 Binary files a/assets/作物/辣椒/3.webp and b/assets/作物/辣椒/3.webp differ diff --git a/assets/作物/辣椒/3.webp.import b/assets/作物/辣椒/3.webp.import index 9e04b55..86d788d 100644 --- a/assets/作物/辣椒/3.webp.import +++ b/assets/作物/辣椒/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dn0e7mr0pq27n" +uid="uid://1ejulncy71wm" path="res://.godot/imported/3.webp-47eb94a8cdb640770ddc9e0017b4057b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-47eb94a8cdb640770ddc9e0017b4057b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/辣椒/4.webp b/assets/作物/辣椒/4.webp index 1cbf807..3b074c2 100644 Binary files a/assets/作物/辣椒/4.webp and b/assets/作物/辣椒/4.webp differ diff --git a/assets/作物/辣椒/4.webp.import b/assets/作物/辣椒/4.webp.import new file mode 100644 index 0000000..dd75ad9 --- /dev/null +++ b/assets/作物/辣椒/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b6l1f5vsr3n61" +path="res://.godot/imported/4.webp-308361389949e930dc3c6c1f19433ab9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/辣椒/4.webp" +dest_files=["res://.godot/imported/4.webp-308361389949e930dc3c6c1f19433ab9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/辣椒/5.webp b/assets/作物/辣椒/5.webp index 57ea0e1..c2dbaf5 100644 Binary files a/assets/作物/辣椒/5.webp and b/assets/作物/辣椒/5.webp differ diff --git a/assets/作物/辣椒/5.webp.import b/assets/作物/辣椒/5.webp.import new file mode 100644 index 0000000..d23e2eb --- /dev/null +++ b/assets/作物/辣椒/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvqkw1yk60xri" +path="res://.godot/imported/5.webp-84cbf0f5c1b1b6367f1e2b610da79331.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/辣椒/5.webp" +dest_files=["res://.godot/imported/5.webp-84cbf0f5c1b1b6367f1e2b610da79331.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/辣椒/6.webp b/assets/作物/辣椒/6.webp index 8d3c341..493d014 100644 Binary files a/assets/作物/辣椒/6.webp and b/assets/作物/辣椒/6.webp differ diff --git a/assets/作物/辣椒/6.webp.import b/assets/作物/辣椒/6.webp.import new file mode 100644 index 0000000..2514249 --- /dev/null +++ b/assets/作物/辣椒/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2wfrdu13cf25" +path="res://.godot/imported/6.webp-e9ded2e471219559bd858d0270acd330.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/辣椒/6.webp" +dest_files=["res://.godot/imported/6.webp-e9ded2e471219559bd858d0270acd330.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/辣椒/成熟.webp b/assets/作物/辣椒/成熟.webp index 8d3c341..493d014 100644 Binary files a/assets/作物/辣椒/成熟.webp and b/assets/作物/辣椒/成熟.webp differ diff --git a/assets/作物/辣椒/成熟.webp.import b/assets/作物/辣椒/成熟.webp.import index 8e6b1b6..e2eadbe 100644 --- a/assets/作物/辣椒/成熟.webp.import +++ b/assets/作物/辣椒/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dpe7mn03q850w" +uid="uid://d3yf1guv38cq6" path="res://.godot/imported/成熟.webp-0b7fe7e2c8f8f9a0c4e82a442f54c162.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-0b7fe7e2c8f8f9a0c4e82a442f54c162. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/迷迭香/0.webp b/assets/作物/迷迭香/0.webp index ab8e01a..01244ec 100644 Binary files a/assets/作物/迷迭香/0.webp and b/assets/作物/迷迭香/0.webp differ diff --git a/assets/作物/迷迭香/0.webp.import b/assets/作物/迷迭香/0.webp.import index e508895..2560f99 100644 --- a/assets/作物/迷迭香/0.webp.import +++ b/assets/作物/迷迭香/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://kexu5x30kquu" +uid="uid://ds1f566ivmw5" path="res://.godot/imported/0.webp-34dd1f9ed497fa55ae64cfb1e28ba481.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-34dd1f9ed497fa55ae64cfb1e28ba481.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/迷迭香/成熟.webp b/assets/作物/迷迭香/成熟.webp index 3c8b4a4..7ab5ccb 100644 Binary files a/assets/作物/迷迭香/成熟.webp and b/assets/作物/迷迭香/成熟.webp differ diff --git a/assets/作物/迷迭香/成熟.webp.import b/assets/作物/迷迭香/成熟.webp.import index 0f9b5bf..f39b2d5 100644 --- a/assets/作物/迷迭香/成熟.webp.import +++ b/assets/作物/迷迭香/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c3pnxr5fshwv1" +uid="uid://dh1fxkft83qrk" path="res://.godot/imported/成熟.webp-564abc382153fb1f76a2f557a9403063.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-564abc382153fb1f76a2f557a9403063. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/迷迭香/收获物.webp b/assets/作物/迷迭香/收获物.webp index b563845..ad1303a 100644 Binary files a/assets/作物/迷迭香/收获物.webp and b/assets/作物/迷迭香/收获物.webp differ diff --git a/assets/作物/迷迭香/收获物.webp.import b/assets/作物/迷迭香/收获物.webp.import index ddd6720..d14f6ae 100644 --- a/assets/作物/迷迭香/收获物.webp.import +++ b/assets/作物/迷迭香/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bs48a5074gush" +uid="uid://cm1frqrb0pha3" path="res://.godot/imported/收获物.webp-d2aec544e56cf3ed9d5e450612f3e454.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-d2aec544e56cf3ed9d5e450612f3e4 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/郁金香/0.webp b/assets/作物/郁金香/0.webp index 0912e79..e6fbcdd 100644 Binary files a/assets/作物/郁金香/0.webp and b/assets/作物/郁金香/0.webp differ diff --git a/assets/作物/郁金香/0.webp.import b/assets/作物/郁金香/0.webp.import index b063095..84f298a 100644 --- a/assets/作物/郁金香/0.webp.import +++ b/assets/作物/郁金香/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b2soq7pxuv46t" +uid="uid://nfknvl6mo3ss" path="res://.godot/imported/0.webp-bf34bac11a02821661281cf42dfa9220.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-bf34bac11a02821661281cf42dfa9220.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/郁金香/1.webp b/assets/作物/郁金香/1.webp index edc3d2e..8b3fc7a 100644 Binary files a/assets/作物/郁金香/1.webp and b/assets/作物/郁金香/1.webp differ diff --git a/assets/作物/郁金香/1.webp.import b/assets/作物/郁金香/1.webp.import index 617a008..b23bddf 100644 --- a/assets/作物/郁金香/1.webp.import +++ b/assets/作物/郁金香/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dw5rptsckwdef" +uid="uid://b6jcy2ptll34j" path="res://.godot/imported/1.webp-4ca893f839e036ce11591e8e64f567a7.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-4ca893f839e036ce11591e8e64f567a7.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/郁金香/2.webp b/assets/作物/郁金香/2.webp index 6bec074..89e0c28 100644 Binary files a/assets/作物/郁金香/2.webp and b/assets/作物/郁金香/2.webp differ diff --git a/assets/作物/郁金香/2.webp.import b/assets/作物/郁金香/2.webp.import index ee3d07f..e8114d7 100644 --- a/assets/作物/郁金香/2.webp.import +++ b/assets/作物/郁金香/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://m2xqwb1nds8" +uid="uid://cr8xgegb45uqj" path="res://.godot/imported/2.webp-0238b2b1f32f91172095d281a7e6f211.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-0238b2b1f32f91172095d281a7e6f211.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/郁金香/成熟.webp b/assets/作物/郁金香/成熟.webp index 9625b0c..fdccb37 100644 Binary files a/assets/作物/郁金香/成熟.webp and b/assets/作物/郁金香/成熟.webp differ diff --git a/assets/作物/郁金香/成熟.webp.import b/assets/作物/郁金香/成熟.webp.import index 918cb9b..2227ac8 100644 --- a/assets/作物/郁金香/成熟.webp.import +++ b/assets/作物/郁金香/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dy1aakc765ypp" +uid="uid://d0youifphf1oa" path="res://.godot/imported/成熟.webp-b92c4ee0d7a892c8bfcc72b361d3a9b1.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-b92c4ee0d7a892c8bfcc72b361d3a9b1. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/郁金香/收获物.webp b/assets/作物/郁金香/收获物.webp index 4b05e3b..70d6ad1 100644 Binary files a/assets/作物/郁金香/收获物.webp and b/assets/作物/郁金香/收获物.webp differ diff --git a/assets/作物/郁金香/收获物.webp.import b/assets/作物/郁金香/收获物.webp.import index 2edec92..be7d94c 100644 --- a/assets/作物/郁金香/收获物.webp.import +++ b/assets/作物/郁金香/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://lhc4ri0y0adm" +uid="uid://by5ibjpo8ooyi" path="res://.godot/imported/收获物.webp-24669d29e12968bdc1ba158d6626f896.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-24669d29e12968bdc1ba158d6626f8 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/野草1/0.webp b/assets/作物/野草1/0.webp index 11bfdce..c309793 100644 Binary files a/assets/作物/野草1/0.webp and b/assets/作物/野草1/0.webp differ diff --git a/assets/作物/野草1/0.webp.import b/assets/作物/野草1/0.webp.import index 12a13f7..3a3fcfe 100644 --- a/assets/作物/野草1/0.webp.import +++ b/assets/作物/野草1/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://umqoakibicy3" +uid="uid://b28h3y7s3y6ku" path="res://.godot/imported/0.webp-22c272854d6c67420163f47fad039793.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-22c272854d6c67420163f47fad039793.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/野草1/成熟.webp b/assets/作物/野草1/成熟.webp index 11bfdce..c309793 100644 Binary files a/assets/作物/野草1/成熟.webp and b/assets/作物/野草1/成熟.webp differ diff --git a/assets/作物/野草1/成熟.webp.import b/assets/作物/野草1/成熟.webp.import index a5f18ba..2b480b4 100644 --- a/assets/作物/野草1/成熟.webp.import +++ b/assets/作物/野草1/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://hxx8p7bnpc4c" +uid="uid://b4no1vemp6pem" path="res://.godot/imported/成熟.webp-2f981607e8e2abcba333b1d220b71de2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-2f981607e8e2abcba333b1d220b71de2. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/野草2/0.webp b/assets/作物/野草2/0.webp index de642dd..331b992 100644 Binary files a/assets/作物/野草2/0.webp and b/assets/作物/野草2/0.webp differ diff --git a/assets/作物/野草2/0.webp.import b/assets/作物/野草2/0.webp.import index ce1544d..1dfe0d2 100644 --- a/assets/作物/野草2/0.webp.import +++ b/assets/作物/野草2/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cw567k5n2wpvb" +uid="uid://dmbmj1t67sltr" path="res://.godot/imported/0.webp-ea1b3feda932d4edefd298fd98132085.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-ea1b3feda932d4edefd298fd98132085.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/野草2/成熟.webp b/assets/作物/野草2/成熟.webp index de642dd..331b992 100644 Binary files a/assets/作物/野草2/成熟.webp and b/assets/作物/野草2/成熟.webp differ diff --git a/assets/作物/野草2/成熟.webp.import b/assets/作物/野草2/成熟.webp.import index a7d11cd..bc4f5f2 100644 --- a/assets/作物/野草2/成熟.webp.import +++ b/assets/作物/野草2/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://brd2g8iwgi7xy" +uid="uid://dnnp6xqifrx0x" path="res://.godot/imported/成熟.webp-a31dd2b44eaf9ed0c4664624c7b3f138.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-a31dd2b44eaf9ed0c4664624c7b3f138. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/金橘/0.webp b/assets/作物/金橘/0.webp index f88e85d..e343239 100644 Binary files a/assets/作物/金橘/0.webp and b/assets/作物/金橘/0.webp differ diff --git a/assets/作物/金橘/0.webp.import b/assets/作物/金橘/0.webp.import index cd6e4ad..fe57f08 100644 --- a/assets/作物/金橘/0.webp.import +++ b/assets/作物/金橘/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b5y843jrxuy5g" +uid="uid://c0b8b68wn3bje" path="res://.godot/imported/0.webp-4fba096597bccb63294374982e34fdba.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-4fba096597bccb63294374982e34fdba.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/金橘/1.webp b/assets/作物/金橘/1.webp index 54f4222..0a6620b 100644 Binary files a/assets/作物/金橘/1.webp and b/assets/作物/金橘/1.webp differ diff --git a/assets/作物/金橘/1.webp.import b/assets/作物/金橘/1.webp.import index d66e86d..abfe2fc 100644 --- a/assets/作物/金橘/1.webp.import +++ b/assets/作物/金橘/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bjl6q61o7yrb3" +uid="uid://detyea0pcm88o" path="res://.godot/imported/1.webp-77717525600de5be53d1a2237a00310d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-77717525600de5be53d1a2237a00310d.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/金橘/2.webp b/assets/作物/金橘/2.webp index 7117bdc..3737d6d 100644 Binary files a/assets/作物/金橘/2.webp and b/assets/作物/金橘/2.webp differ diff --git a/assets/作物/金橘/2.webp.import b/assets/作物/金橘/2.webp.import index 1f0c400..968f900 100644 --- a/assets/作物/金橘/2.webp.import +++ b/assets/作物/金橘/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ocdwf8gp134b" +uid="uid://c7e68cixf28e7" path="res://.godot/imported/2.webp-4b31387816aa95bf278bc2aa4a9f50b8.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-4b31387816aa95bf278bc2aa4a9f50b8.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/金橘/3.webp b/assets/作物/金橘/3.webp index 808ad35..8607b80 100644 Binary files a/assets/作物/金橘/3.webp and b/assets/作物/金橘/3.webp differ diff --git a/assets/作物/金橘/3.webp.import b/assets/作物/金橘/3.webp.import index a97452a..4a50949 100644 --- a/assets/作物/金橘/3.webp.import +++ b/assets/作物/金橘/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dcnid02pfg2rw" +uid="uid://bbnuh0pm8cs0f" path="res://.godot/imported/3.webp-4f4b7d01c9a99e68ffacd33dc805ac7f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-4f4b7d01c9a99e68ffacd33dc805ac7f.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/金橘/4.webp b/assets/作物/金橘/4.webp index b3c7cdc..b5855aa 100644 Binary files a/assets/作物/金橘/4.webp and b/assets/作物/金橘/4.webp differ diff --git a/assets/作物/金橘/4.webp.import b/assets/作物/金橘/4.webp.import index 8325978..13e31ac 100644 --- a/assets/作物/金橘/4.webp.import +++ b/assets/作物/金橘/4.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dxocxakgxsr4k" +uid="uid://rwdlxu3cv2md" path="res://.godot/imported/4.webp-3358193d602eee14eddfddcab78a6276.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/4.webp-3358193d602eee14eddfddcab78a6276.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/金橘/5.webp b/assets/作物/金橘/5.webp index 0eda12a..53873bb 100644 Binary files a/assets/作物/金橘/5.webp and b/assets/作物/金橘/5.webp differ diff --git a/assets/作物/金橘/5.webp.import b/assets/作物/金橘/5.webp.import new file mode 100644 index 0000000..1d7bf18 --- /dev/null +++ b/assets/作物/金橘/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ci03p37xsf24f" +path="res://.godot/imported/5.webp-b5567b6cc67020e019311526ae7903db.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/金橘/5.webp" +dest_files=["res://.godot/imported/5.webp-b5567b6cc67020e019311526ae7903db.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/金橘/6.webp b/assets/作物/金橘/6.webp index 55aefa9..5a00d1a 100644 Binary files a/assets/作物/金橘/6.webp and b/assets/作物/金橘/6.webp differ diff --git a/assets/作物/金橘/6.webp.import b/assets/作物/金橘/6.webp.import new file mode 100644 index 0000000..f16d6af --- /dev/null +++ b/assets/作物/金橘/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bl22ultwqa4ml" +path="res://.godot/imported/6.webp-9dc72bdd2d2f64fc61f5a3da9d13ab4b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/金橘/6.webp" +dest_files=["res://.godot/imported/6.webp-9dc72bdd2d2f64fc61f5a3da9d13ab4b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/金橘/7.webp b/assets/作物/金橘/7.webp index 30eaadc..5192bfc 100644 Binary files a/assets/作物/金橘/7.webp and b/assets/作物/金橘/7.webp differ diff --git a/assets/作物/金橘/7.webp.import b/assets/作物/金橘/7.webp.import new file mode 100644 index 0000000..2f5a98a --- /dev/null +++ b/assets/作物/金橘/7.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://duucuy6gjmssa" +path="res://.godot/imported/7.webp-3900f41e031bf53a02285d5fa1d5e3a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/金橘/7.webp" +dest_files=["res://.godot/imported/7.webp-3900f41e031bf53a02285d5fa1d5e3a5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/金橘/成熟.webp b/assets/作物/金橘/成熟.webp index 55aefa9..5a00d1a 100644 Binary files a/assets/作物/金橘/成熟.webp and b/assets/作物/金橘/成熟.webp differ diff --git a/assets/作物/金橘/成熟.webp.import b/assets/作物/金橘/成熟.webp.import index 4dae3e0..3a184cf 100644 --- a/assets/作物/金橘/成熟.webp.import +++ b/assets/作物/金橘/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dfdx6s2q25wva" +uid="uid://ktyewqi24a1t" path="res://.godot/imported/成熟.webp-e3c283fa137bc07cacbddf96dd20cf92.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-e3c283fa137bc07cacbddf96dd20cf92. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/金橘/收获物.webp b/assets/作物/金橘/收获物.webp index cea3225..7b4f608 100644 Binary files a/assets/作物/金橘/收获物.webp and b/assets/作物/金橘/收获物.webp differ diff --git a/assets/作物/金橘/收获物.webp.import b/assets/作物/金橘/收获物.webp.import index d472271..a59f6dc 100644 --- a/assets/作物/金橘/收获物.webp.import +++ b/assets/作物/金橘/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://607uj8hsiicg" +uid="uid://dbx2auyebi1xc" path="res://.godot/imported/收获物.webp-d9a0f2ceb4c923af27c244387826c7a4.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-d9a0f2ceb4c923af27c244387826c7 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/面包树/0.webp b/assets/作物/面包树/0.webp index c07d7e0..7874acc 100644 Binary files a/assets/作物/面包树/0.webp and b/assets/作物/面包树/0.webp differ diff --git a/assets/作物/面包树/0.webp.import b/assets/作物/面包树/0.webp.import index 618c464..04f8c53 100644 --- a/assets/作物/面包树/0.webp.import +++ b/assets/作物/面包树/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://epxdsofbaea5" +uid="uid://ds6ew1q1cyvoe" path="res://.godot/imported/0.webp-0028f2b251da37c92e19b793a2484504.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-0028f2b251da37c92e19b793a2484504.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/面包树/1.webp b/assets/作物/面包树/1.webp index e204ec3..b932750 100644 Binary files a/assets/作物/面包树/1.webp and b/assets/作物/面包树/1.webp differ diff --git a/assets/作物/面包树/1.webp.import b/assets/作物/面包树/1.webp.import index f2fb881..8b2e759 100644 --- a/assets/作物/面包树/1.webp.import +++ b/assets/作物/面包树/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dlafxr2bfdi4m" +uid="uid://nqum8v0nbh21" path="res://.godot/imported/1.webp-e717a8981e862bbea967fbb16f5bb9dd.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-e717a8981e862bbea967fbb16f5bb9dd.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/面包树/2.webp b/assets/作物/面包树/2.webp index 6803053..9f3a791 100644 Binary files a/assets/作物/面包树/2.webp and b/assets/作物/面包树/2.webp differ diff --git a/assets/作物/面包树/2.webp.import b/assets/作物/面包树/2.webp.import index 75a075e..79acccc 100644 --- a/assets/作物/面包树/2.webp.import +++ b/assets/作物/面包树/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ch4g6tqiw2k5y" +uid="uid://cobk4oo0b5lf6" path="res://.godot/imported/2.webp-a58b3c890aa5282170eba8fa37594700.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-a58b3c890aa5282170eba8fa37594700.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/面包树/成熟.webp b/assets/作物/面包树/成熟.webp index e8b4bcc..1f59bd5 100644 Binary files a/assets/作物/面包树/成熟.webp and b/assets/作物/面包树/成熟.webp differ diff --git a/assets/作物/面包树/成熟.webp.import b/assets/作物/面包树/成熟.webp.import index d5ecdc0..8f4d850 100644 --- a/assets/作物/面包树/成熟.webp.import +++ b/assets/作物/面包树/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ce3rcwl7vitjf" +uid="uid://cy2d83dpcycvp" path="res://.godot/imported/成熟.webp-bdd5e46e00121f0304c4d1e3610fb163.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-bdd5e46e00121f0304c4d1e3610fb163. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/面包树/收获物.webp b/assets/作物/面包树/收获物.webp index b70c48d..f5552c6 100644 Binary files a/assets/作物/面包树/收获物.webp and b/assets/作物/面包树/收获物.webp differ diff --git a/assets/作物/面包树/收获物.webp.import b/assets/作物/面包树/收获物.webp.import index 5c75a5c..6da046c 100644 --- a/assets/作物/面包树/收获物.webp.import +++ b/assets/作物/面包树/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://26nsnoyp553" +uid="uid://c4y7ktlik5p26" path="res://.godot/imported/收获物.webp-9a2031f3e27f03049a0d5d963cdec35e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-9a2031f3e27f03049a0d5d963cdec3 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香草/0.webp b/assets/作物/香草/0.webp index 249483f..1141509 100644 Binary files a/assets/作物/香草/0.webp and b/assets/作物/香草/0.webp differ diff --git a/assets/作物/香草/0.webp.import b/assets/作物/香草/0.webp.import index db7c78e..806e904 100644 --- a/assets/作物/香草/0.webp.import +++ b/assets/作物/香草/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bacwb84hg1vc1" +uid="uid://di27lhl6l4425" path="res://.godot/imported/0.webp-a2c2065cbbf4055759fddaf59fee8e80.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-a2c2065cbbf4055759fddaf59fee8e80.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香草/1.webp b/assets/作物/香草/1.webp index 357bb04..24082ca 100644 Binary files a/assets/作物/香草/1.webp and b/assets/作物/香草/1.webp differ diff --git a/assets/作物/香草/1.webp.import b/assets/作物/香草/1.webp.import index b228065..80fb631 100644 --- a/assets/作物/香草/1.webp.import +++ b/assets/作物/香草/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://br17m2glicuk2" +uid="uid://pbem8pa1mbnw" path="res://.godot/imported/1.webp-ba0df3c4e6892988e3335d48781be5a9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-ba0df3c4e6892988e3335d48781be5a9.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香草/2.webp b/assets/作物/香草/2.webp index 98bbd2e..390b766 100644 Binary files a/assets/作物/香草/2.webp and b/assets/作物/香草/2.webp differ diff --git a/assets/作物/香草/2.webp.import b/assets/作物/香草/2.webp.import index 340dc6e..6102fda 100644 --- a/assets/作物/香草/2.webp.import +++ b/assets/作物/香草/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cr1bkps21rhpf" +uid="uid://cf7fuhgmiobqv" path="res://.godot/imported/2.webp-08dd39e889e74eabfa717eb3bbb4c65b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-08dd39e889e74eabfa717eb3bbb4c65b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香草/3.webp b/assets/作物/香草/3.webp index 7cd688b..e9f0bf1 100644 Binary files a/assets/作物/香草/3.webp and b/assets/作物/香草/3.webp differ diff --git a/assets/作物/人参/1.webp.import b/assets/作物/香草/3.webp.import similarity index 68% rename from assets/作物/人参/1.webp.import rename to assets/作物/香草/3.webp.import index e3ac18d..50199a3 100644 --- a/assets/作物/人参/1.webp.import +++ b/assets/作物/香草/3.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bpybayv2tun01" -path="res://.godot/imported/1.webp-2e06968df5ac60cc2e9cb266075518b2.ctex" +uid="uid://dmwb8e4le6tuc" +path="res://.godot/imported/3.webp-24d81d50884db2269c73f2be17aee271.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/作物/人参/1.webp" -dest_files=["res://.godot/imported/1.webp-2e06968df5ac60cc2e9cb266075518b2.ctex"] +source_file="res://assets/作物/香草/3.webp" +dest_files=["res://.godot/imported/3.webp-24d81d50884db2269c73f2be17aee271.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香草/成熟.webp b/assets/作物/香草/成熟.webp index 7cd688b..e9f0bf1 100644 Binary files a/assets/作物/香草/成熟.webp and b/assets/作物/香草/成熟.webp differ diff --git a/assets/作物/香草/成熟.webp.import b/assets/作物/香草/成熟.webp.import index 98a7f73..fd88c19 100644 --- a/assets/作物/香草/成熟.webp.import +++ b/assets/作物/香草/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b11oc45dtyie1" +uid="uid://daij8kubdenkt" path="res://.godot/imported/成熟.webp-329686c50bd052759ebf61297b0d1777.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-329686c50bd052759ebf61297b0d1777. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香蕉/0.webp b/assets/作物/香蕉/0.webp index 5fd5304..b324265 100644 Binary files a/assets/作物/香蕉/0.webp and b/assets/作物/香蕉/0.webp differ diff --git a/assets/作物/香蕉/0.webp.import b/assets/作物/香蕉/0.webp.import index 63b5afb..05c757b 100644 --- a/assets/作物/香蕉/0.webp.import +++ b/assets/作物/香蕉/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dybnap1unbyco" +uid="uid://behtrk2nt0inc" path="res://.godot/imported/0.webp-a26b7db511da0be1b5851627826b19ea.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-a26b7db511da0be1b5851627826b19ea.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香蕉/1.webp b/assets/作物/香蕉/1.webp index fcda389..39610f6 100644 Binary files a/assets/作物/香蕉/1.webp and b/assets/作物/香蕉/1.webp differ diff --git a/assets/作物/香蕉/1.webp.import b/assets/作物/香蕉/1.webp.import index 747dd4d..d31e60e 100644 --- a/assets/作物/香蕉/1.webp.import +++ b/assets/作物/香蕉/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://r1hwr7mp6kop" +uid="uid://cmyb8algge87q" path="res://.godot/imported/1.webp-2d1172d84969108807260f177be70770.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-2d1172d84969108807260f177be70770.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香蕉/2.webp b/assets/作物/香蕉/2.webp index 870fa95..0fdec89 100644 Binary files a/assets/作物/香蕉/2.webp and b/assets/作物/香蕉/2.webp differ diff --git a/assets/作物/香蕉/2.webp.import b/assets/作物/香蕉/2.webp.import index ed99725..67e2846 100644 --- a/assets/作物/香蕉/2.webp.import +++ b/assets/作物/香蕉/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://brjayf2aobhdf" +uid="uid://byxuw67kxdc21" path="res://.godot/imported/2.webp-09890272cda4c2a6241bf6895fcfbaee.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-09890272cda4c2a6241bf6895fcfbaee.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香蕉/成熟.webp b/assets/作物/香蕉/成熟.webp index 25b07fe..f913947 100644 Binary files a/assets/作物/香蕉/成熟.webp and b/assets/作物/香蕉/成熟.webp differ diff --git a/assets/作物/香蕉/成熟.webp.import b/assets/作物/香蕉/成熟.webp.import index 8c43082..3716943 100644 --- a/assets/作物/香蕉/成熟.webp.import +++ b/assets/作物/香蕉/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bvjwf557g2gtv" +uid="uid://dkhk0qg0x1221" path="res://.godot/imported/成熟.webp-c8bf40bf7eb9b7678da05c0f1d1ab395.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-c8bf40bf7eb9b7678da05c0f1d1ab395. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香蕉/收获物.webp b/assets/作物/香蕉/收获物.webp index 4bc9534..50f2dd9 100644 Binary files a/assets/作物/香蕉/收获物.webp and b/assets/作物/香蕉/收获物.webp differ diff --git a/assets/作物/香蕉/收获物.webp.import b/assets/作物/香蕉/收获物.webp.import index 40f4118..6b39544 100644 --- a/assets/作物/香蕉/收获物.webp.import +++ b/assets/作物/香蕉/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://djxygce20j4gt" +uid="uid://cwws0xta5atio" path="res://.godot/imported/收获物.webp-4607e379f81ca205beb7aa8f9b932eae.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-4607e379f81ca205beb7aa8f9b932e [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香蕉树/0.webp b/assets/作物/香蕉树/0.webp index 5fd5304..b324265 100644 Binary files a/assets/作物/香蕉树/0.webp and b/assets/作物/香蕉树/0.webp differ diff --git a/assets/作物/香蕉树/0.webp.import b/assets/作物/香蕉树/0.webp.import new file mode 100644 index 0000000..a6ae51c --- /dev/null +++ b/assets/作物/香蕉树/0.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvdxkhkmovkac" +path="res://.godot/imported/0.webp-e311ebe12792919cdb5fa89ad0af74ac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/香蕉树/0.webp" +dest_files=["res://.godot/imported/0.webp-e311ebe12792919cdb5fa89ad0af74ac.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/香蕉树/1.webp b/assets/作物/香蕉树/1.webp index 5fd5304..b324265 100644 Binary files a/assets/作物/香蕉树/1.webp and b/assets/作物/香蕉树/1.webp differ diff --git a/assets/土地面板图标/收获图标.webp.import b/assets/作物/香蕉树/1.webp.import similarity index 66% rename from assets/土地面板图标/收获图标.webp.import rename to assets/作物/香蕉树/1.webp.import index e2452d7..39ff502 100644 --- a/assets/土地面板图标/收获图标.webp.import +++ b/assets/作物/香蕉树/1.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b3hjwkw68lgif" -path="res://.godot/imported/收获图标.webp-aa6e4a3241b52001dd2d1ecdc6844c64.ctex" +uid="uid://bu22mi1shme6f" +path="res://.godot/imported/1.webp-dec4ebaa1531f18bc91cafc8daa57586.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/土地面板图标/收获图标.webp" -dest_files=["res://.godot/imported/收获图标.webp-aa6e4a3241b52001dd2d1ecdc6844c64.ctex"] +source_file="res://assets/作物/香蕉树/1.webp" +dest_files=["res://.godot/imported/1.webp-dec4ebaa1531f18bc91cafc8daa57586.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/香蕉树/2.webp b/assets/作物/香蕉树/2.webp index fcda389..39610f6 100644 Binary files a/assets/作物/香蕉树/2.webp and b/assets/作物/香蕉树/2.webp differ diff --git a/assets/作物/香蕉树/2.webp.import b/assets/作物/香蕉树/2.webp.import new file mode 100644 index 0000000..284b199 --- /dev/null +++ b/assets/作物/香蕉树/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dxmqwu8o4d8fa" +path="res://.godot/imported/2.webp-4da654ed75da013dcc0636a7d76234b7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/香蕉树/2.webp" +dest_files=["res://.godot/imported/2.webp-4da654ed75da013dcc0636a7d76234b7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/香蕉树/3.webp b/assets/作物/香蕉树/3.webp index d7ef188..7c0a661 100644 Binary files a/assets/作物/香蕉树/3.webp and b/assets/作物/香蕉树/3.webp differ diff --git a/assets/作物/香蕉树/3.webp.import b/assets/作物/香蕉树/3.webp.import new file mode 100644 index 0000000..8fa183a --- /dev/null +++ b/assets/作物/香蕉树/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d8pahkqugd47" +path="res://.godot/imported/3.webp-50512b1c7d10d14651d9c354c1eed07d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/香蕉树/3.webp" +dest_files=["res://.godot/imported/3.webp-50512b1c7d10d14651d9c354c1eed07d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/香蕉树/4.webp b/assets/作物/香蕉树/4.webp index 870fa95..0fdec89 100644 Binary files a/assets/作物/香蕉树/4.webp and b/assets/作物/香蕉树/4.webp differ diff --git a/assets/作物/香蕉树/4.webp.import b/assets/作物/香蕉树/4.webp.import new file mode 100644 index 0000000..81c7202 --- /dev/null +++ b/assets/作物/香蕉树/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfiiaehutjlqn" +path="res://.godot/imported/4.webp-4ce4666e340811a278fc2825797977a9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/香蕉树/4.webp" +dest_files=["res://.godot/imported/4.webp-4ce4666e340811a278fc2825797977a9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/香蕉树/5.webp b/assets/作物/香蕉树/5.webp index 25b07fe..f913947 100644 Binary files a/assets/作物/香蕉树/5.webp and b/assets/作物/香蕉树/5.webp differ diff --git a/assets/作物/香蕉树/5.webp.import b/assets/作物/香蕉树/5.webp.import new file mode 100644 index 0000000..43b2830 --- /dev/null +++ b/assets/作物/香蕉树/5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dawvireewbraq" +path="res://.godot/imported/5.webp-e3582ee43ae19b921e9b454fc3026e19.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/香蕉树/5.webp" +dest_files=["res://.godot/imported/5.webp-e3582ee43ae19b921e9b454fc3026e19.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/香蕉树/6.webp b/assets/作物/香蕉树/6.webp index f0635df..019565f 100644 Binary files a/assets/作物/香蕉树/6.webp and b/assets/作物/香蕉树/6.webp differ diff --git a/assets/作物/香蕉树/6.webp.import b/assets/作物/香蕉树/6.webp.import new file mode 100644 index 0000000..20f688e --- /dev/null +++ b/assets/作物/香蕉树/6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ba71uiww6qhkq" +path="res://.godot/imported/6.webp-463428ec526184b99d642a90cfc849a0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/香蕉树/6.webp" +dest_files=["res://.godot/imported/6.webp-463428ec526184b99d642a90cfc849a0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/鱼腥草/0.webp b/assets/作物/鱼腥草/0.webp index 9509079..72a072a 100644 Binary files a/assets/作物/鱼腥草/0.webp and b/assets/作物/鱼腥草/0.webp differ diff --git a/assets/作物/鱼腥草/0.webp.import b/assets/作物/鱼腥草/0.webp.import index d3fcec7..968e189 100644 --- a/assets/作物/鱼腥草/0.webp.import +++ b/assets/作物/鱼腥草/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b14yd7n3hft76" +uid="uid://cb0k1d8wwxd3t" path="res://.godot/imported/0.webp-2fd4acfdb672a2c67b294532d00c0200.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-2fd4acfdb672a2c67b294532d00c0200.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/鱼腥草/1.webp b/assets/作物/鱼腥草/1.webp index b0a66f9..d331062 100644 Binary files a/assets/作物/鱼腥草/1.webp and b/assets/作物/鱼腥草/1.webp differ diff --git a/assets/作物/鱼腥草/1.webp.import b/assets/作物/鱼腥草/1.webp.import index 6210115..be153e1 100644 --- a/assets/作物/鱼腥草/1.webp.import +++ b/assets/作物/鱼腥草/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://6rnv1le04tge" +uid="uid://b2av6o3m4xo2x" path="res://.godot/imported/1.webp-c5699df20a306833a050b0d79c162427.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-c5699df20a306833a050b0d79c162427.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/鱼腥草/2.webp b/assets/作物/鱼腥草/2.webp index 568abae..da22ce0 100644 Binary files a/assets/作物/鱼腥草/2.webp and b/assets/作物/鱼腥草/2.webp differ diff --git a/assets/作物/鱼腥草/2.webp.import b/assets/作物/鱼腥草/2.webp.import index 08b30fd..3819bfc 100644 --- a/assets/作物/鱼腥草/2.webp.import +++ b/assets/作物/鱼腥草/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://vtu3ccb6mgch" +uid="uid://bdkmrwrtmkb2f" path="res://.godot/imported/2.webp-b75eb760b8a82bd7b94a4da851fb4c12.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-b75eb760b8a82bd7b94a4da851fb4c12.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/鱼腥草/3.webp b/assets/作物/鱼腥草/3.webp index 15f8d9c..901ccc5 100644 Binary files a/assets/作物/鱼腥草/3.webp and b/assets/作物/鱼腥草/3.webp differ diff --git a/assets/作物/鱼腥草/3.webp.import b/assets/作物/鱼腥草/3.webp.import new file mode 100644 index 0000000..c579aab --- /dev/null +++ b/assets/作物/鱼腥草/3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5gpjc5f8uxuw" +path="res://.godot/imported/3.webp-de2a8ffbaef733b3814b4130a8fd9910.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/鱼腥草/3.webp" +dest_files=["res://.godot/imported/3.webp-de2a8ffbaef733b3814b4130a8fd9910.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/鱼腥草/4.webp b/assets/作物/鱼腥草/4.webp index 4aff255..4913099 100644 Binary files a/assets/作物/鱼腥草/4.webp and b/assets/作物/鱼腥草/4.webp differ diff --git a/assets/作物/鱼腥草/4.webp.import b/assets/作物/鱼腥草/4.webp.import new file mode 100644 index 0000000..4b2a158 --- /dev/null +++ b/assets/作物/鱼腥草/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpp5lr7mwqawu" +path="res://.godot/imported/4.webp-90d375000376438f11f975e1c3e10243.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/鱼腥草/4.webp" +dest_files=["res://.godot/imported/4.webp-90d375000376438f11f975e1c3e10243.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/鱼腥草/成熟.webp b/assets/作物/鱼腥草/成熟.webp index 4aff255..4913099 100644 Binary files a/assets/作物/鱼腥草/成熟.webp and b/assets/作物/鱼腥草/成熟.webp differ diff --git a/assets/作物/鱼腥草/成熟.webp.import b/assets/作物/鱼腥草/成熟.webp.import index 722b078..996081c 100644 --- a/assets/作物/鱼腥草/成熟.webp.import +++ b/assets/作物/鱼腥草/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d6su6yov1s8b" +uid="uid://cpi2h8a34qntm" path="res://.godot/imported/成熟.webp-45659893db964702ef7b1b33d8edf43f.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-45659893db964702ef7b1b33d8edf43f. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/鱼腥草/收获物.webp b/assets/作物/鱼腥草/收获物.webp index 8e7f5be..007e136 100644 Binary files a/assets/作物/鱼腥草/收获物.webp and b/assets/作物/鱼腥草/收获物.webp differ diff --git a/assets/作物/鱼腥草/收获物.webp.import b/assets/作物/鱼腥草/收获物.webp.import index 7b89f62..90a671d 100644 --- a/assets/作物/鱼腥草/收获物.webp.import +++ b/assets/作物/鱼腥草/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://77cdla6dxlf" +uid="uid://p0e2nrt7dfih" path="res://.godot/imported/收获物.webp-507d97abe408a08761fcee609c594372.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-507d97abe408a08761fcee609c5943 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/黄瓜/0.webp b/assets/作物/黄瓜/0.webp index 8f1ffb8..9bd431b 100644 Binary files a/assets/作物/黄瓜/0.webp and b/assets/作物/黄瓜/0.webp differ diff --git a/assets/作物/黄瓜/0.webp.import b/assets/作物/黄瓜/0.webp.import index 7a2bc3a..16d7195 100644 --- a/assets/作物/黄瓜/0.webp.import +++ b/assets/作物/黄瓜/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bi0rvj488ms4u" +uid="uid://g1rnkv23k4nu" path="res://.godot/imported/0.webp-0ebe39e8fbdd1b174c23938419dbb842.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-0ebe39e8fbdd1b174c23938419dbb842.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/黄瓜/1.webp b/assets/作物/黄瓜/1.webp index 7ecfb3a..e3c6f18 100644 Binary files a/assets/作物/黄瓜/1.webp and b/assets/作物/黄瓜/1.webp differ diff --git a/assets/作物/黄瓜/1.webp.import b/assets/作物/黄瓜/1.webp.import index c3d5a4a..5ec399f 100644 --- a/assets/作物/黄瓜/1.webp.import +++ b/assets/作物/黄瓜/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b1qi0iyq3tl0h" +uid="uid://c7wnmsbtgou5k" path="res://.godot/imported/1.webp-63fe7b61f360d3b765638f35d79b854e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-63fe7b61f360d3b765638f35d79b854e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/黄瓜/2.webp b/assets/作物/黄瓜/2.webp index 0868493..2cba269 100644 Binary files a/assets/作物/黄瓜/2.webp and b/assets/作物/黄瓜/2.webp differ diff --git a/assets/作物/黄瓜/2.webp.import b/assets/作物/黄瓜/2.webp.import new file mode 100644 index 0000000..ca5a7a6 --- /dev/null +++ b/assets/作物/黄瓜/2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dg5sfcu2h1fl8" +path="res://.godot/imported/2.webp-88319e6b8f6a83b7fe88b2b4c28e2f6a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/黄瓜/2.webp" +dest_files=["res://.godot/imported/2.webp-88319e6b8f6a83b7fe88b2b4c28e2f6a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/黄瓜/成熟.webp b/assets/作物/黄瓜/成熟.webp index 0868493..2cba269 100644 Binary files a/assets/作物/黄瓜/成熟.webp and b/assets/作物/黄瓜/成熟.webp differ diff --git a/assets/作物/黄瓜/成熟.webp.import b/assets/作物/黄瓜/成熟.webp.import index 4161988..211514d 100644 --- a/assets/作物/黄瓜/成熟.webp.import +++ b/assets/作物/黄瓜/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c2t10cit1pwbp" +uid="uid://bkgjukmbwdxlg" path="res://.godot/imported/成熟.webp-902a43874b1117c6c508c1318ddf6fc0.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-902a43874b1117c6c508c1318ddf6fc0. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/黄瓜/收获物.webp b/assets/作物/黄瓜/收获物.webp index 670a836..7f4ca74 100644 Binary files a/assets/作物/黄瓜/收获物.webp and b/assets/作物/黄瓜/收获物.webp differ diff --git a/assets/作物/黄瓜/收获物.webp.import b/assets/作物/黄瓜/收获物.webp.import index ddc3456..1aa66b6 100644 --- a/assets/作物/黄瓜/收获物.webp.import +++ b/assets/作物/黄瓜/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dxjiq14jlcswn" +uid="uid://4tt8po0ssx55" path="res://.godot/imported/收获物.webp-317c880a96c5c1d3f7220fdb6e06e697.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-317c880a96c5c1d3f7220fdb6e06e6 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/默认/0.webp b/assets/作物/默认/0.webp index 13c7ea6..4303642 100644 Binary files a/assets/作物/默认/0.webp and b/assets/作物/默认/0.webp differ diff --git a/assets/作物/默认/0.webp.import b/assets/作物/默认/0.webp.import index bd3eefc..b704b7a 100644 --- a/assets/作物/默认/0.webp.import +++ b/assets/作物/默认/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://wa7652nprfrn" +uid="uid://c3tt3bbpblriv" path="res://.godot/imported/0.webp-81042deccc217662b6bde3499fcaa45b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-81042deccc217662b6bde3499fcaa45b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/默认/成熟.webp b/assets/作物/默认/成熟.webp index 13c7ea6..4303642 100644 Binary files a/assets/作物/默认/成熟.webp and b/assets/作物/默认/成熟.webp differ diff --git a/assets/作物/默认/成熟.webp.import b/assets/作物/默认/成熟.webp.import index 201451d..4b8b6f7 100644 --- a/assets/作物/默认/成熟.webp.import +++ b/assets/作物/默认/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dxn5y22x4jjfc" +uid="uid://bspaljht0fsqt" path="res://.godot/imported/成熟.webp-8e1b0929e967be8399c6d766d2f80a96.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-8e1b0929e967be8399c6d766d2f80a96. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/默认/收获物.webp b/assets/作物/默认/收获物.webp index 1a9330d..7fe8fd5 100644 Binary files a/assets/作物/默认/收获物.webp and b/assets/作物/默认/收获物.webp differ diff --git a/assets/作物/默认/收获物.webp.import b/assets/作物/默认/收获物.webp.import index 2457d66..7be23b1 100644 --- a/assets/作物/默认/收获物.webp.import +++ b/assets/作物/默认/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://evsfadodln0d" +uid="uid://b73dmo5cuuirm" path="res://.godot/imported/收获物.webp-e9cdfca4c09c0d9bbe5cf6d2ed7d610b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-e9cdfca4c09c0d9bbe5cf6d2ed7d61 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/龙果/0.webp b/assets/作物/龙果/0.webp index 43e5aa8..c9e3715 100644 Binary files a/assets/作物/龙果/0.webp and b/assets/作物/龙果/0.webp differ diff --git a/assets/作物/龙果/0.webp.import b/assets/作物/龙果/0.webp.import index d5ae6fc..2d1c47e 100644 --- a/assets/作物/龙果/0.webp.import +++ b/assets/作物/龙果/0.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://guomvqnwo431" +uid="uid://d08x1hr6nqhdr" path="res://.godot/imported/0.webp-abe5a1431a6366008fdf5287dfdb477e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/0.webp-abe5a1431a6366008fdf5287dfdb477e.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/龙果/1.webp b/assets/作物/龙果/1.webp index 7e0fde8..566994c 100644 Binary files a/assets/作物/龙果/1.webp and b/assets/作物/龙果/1.webp differ diff --git a/assets/作物/龙果/1.webp.import b/assets/作物/龙果/1.webp.import index f4cb879..d741228 100644 --- a/assets/作物/龙果/1.webp.import +++ b/assets/作物/龙果/1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://2xubwdtjfb4t" +uid="uid://6vw0pv6gjkmb" path="res://.godot/imported/1.webp-8fb0c6b4a129133d1ee73c033d91eb9b.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1.webp-8fb0c6b4a129133d1ee73c033d91eb9b.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/龙果/1750050751553.webp b/assets/作物/龙果/1750050751553.webp index c5114a4..de88578 100644 Binary files a/assets/作物/龙果/1750050751553.webp and b/assets/作物/龙果/1750050751553.webp differ diff --git a/assets/作物/龙果/1750050751553.webp.import b/assets/作物/龙果/1750050751553.webp.import index a0d9e53..be0d0ff 100644 --- a/assets/作物/龙果/1750050751553.webp.import +++ b/assets/作物/龙果/1750050751553.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bimgik5lmflxn" +uid="uid://dp5js1q5hf1sr" path="res://.godot/imported/1750050751553.webp-984df86d52a2bcb2aae87c6972c25713.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/1750050751553.webp-984df86d52a2bcb2aae87c6972 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/龙果/2.webp b/assets/作物/龙果/2.webp index d7f32fa..4ff95c8 100644 Binary files a/assets/作物/龙果/2.webp and b/assets/作物/龙果/2.webp differ diff --git a/assets/作物/龙果/2.webp.import b/assets/作物/龙果/2.webp.import index f337c9c..edb4c4f 100644 --- a/assets/作物/龙果/2.webp.import +++ b/assets/作物/龙果/2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bd2g1vr3k73y0" +uid="uid://bqehpa7orvvy0" path="res://.godot/imported/2.webp-b5e15d99621fc06f6189df048a82bcbf.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/2.webp-b5e15d99621fc06f6189df048a82bcbf.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/龙果/3.webp b/assets/作物/龙果/3.webp index dd4e457..573e76d 100644 Binary files a/assets/作物/龙果/3.webp and b/assets/作物/龙果/3.webp differ diff --git a/assets/作物/龙果/3.webp.import b/assets/作物/龙果/3.webp.import index 1bb04b5..737859d 100644 --- a/assets/作物/龙果/3.webp.import +++ b/assets/作物/龙果/3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://xvhtmftmngfj" +uid="uid://biy2jnjkry3lo" path="res://.godot/imported/3.webp-a600e9cf00817a380233c71c85349700.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/3.webp-a600e9cf00817a380233c71c85349700.ctex" [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/龙果/4.webp b/assets/作物/龙果/4.webp index 6562d0a..e6faefc 100644 Binary files a/assets/作物/龙果/4.webp and b/assets/作物/龙果/4.webp differ diff --git a/assets/作物/龙果/4.webp.import b/assets/作物/龙果/4.webp.import new file mode 100644 index 0000000..39d5e66 --- /dev/null +++ b/assets/作物/龙果/4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bajyfp1h2g7o0" +path="res://.godot/imported/4.webp-f086aa2ab4e315a59e94b33f4ac89c50.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/作物/龙果/4.webp" +dest_files=["res://.godot/imported/4.webp-f086aa2ab4e315a59e94b33f4ac89c50.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/作物/龙果/成熟.webp b/assets/作物/龙果/成熟.webp index 6562d0a..e6faefc 100644 Binary files a/assets/作物/龙果/成熟.webp and b/assets/作物/龙果/成熟.webp differ diff --git a/assets/作物/龙果/成熟.webp.import b/assets/作物/龙果/成熟.webp.import index 90f3e6d..1175330 100644 --- a/assets/作物/龙果/成熟.webp.import +++ b/assets/作物/龙果/成熟.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b8oc7bjhgvnk3" +uid="uid://c8fgtq17xhjwo" path="res://.godot/imported/成熟.webp-cfb1082a13de1f84f911562103603428.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/成熟.webp-cfb1082a13de1f84f911562103603428. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/作物/龙果/收获物.webp b/assets/作物/龙果/收获物.webp index 769d08e..f4f9059 100644 Binary files a/assets/作物/龙果/收获物.webp and b/assets/作物/龙果/收获物.webp differ diff --git a/assets/作物/龙果/收获物.webp.import b/assets/作物/龙果/收获物.webp.import index 8e97ecf..4d1870d 100644 --- a/assets/作物/龙果/收获物.webp.import +++ b/assets/作物/龙果/收获物.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dly55ejnqb3v0" +uid="uid://dok1hwn4wu0j7" path="res://.godot/imported/收获物.webp-ca77f8ebf5c1a156f100603ce74b3421.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/收获物.webp-ca77f8ebf5c1a156f100603ce74b34 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/土地面板图标/升级图标.png b/assets/土地面板图标/升级图标.png deleted file mode 100644 index 7f84de0..0000000 Binary files a/assets/土地面板图标/升级图标.png and /dev/null differ diff --git a/assets/土地面板图标/升级图标.png.import b/assets/土地面板图标/升级图标.png.import deleted file mode 100644 index ccd9199..0000000 --- a/assets/土地面板图标/升级图标.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bfmtpu7tuebek" -path="res://.godot/imported/升级图标.png-09804f76a09fd879787ff0d2a7ebf8e3.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/升级图标.png" -dest_files=["res://.godot/imported/升级图标.png-09804f76a09fd879787ff0d2a7ebf8e3.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/升级图标.webp b/assets/土地面板图标/升级图标.webp deleted file mode 100644 index 98f50a7..0000000 Binary files a/assets/土地面板图标/升级图标.webp and /dev/null differ diff --git a/assets/土地面板图标/升级图标2.png b/assets/土地面板图标/升级图标2.png deleted file mode 100644 index 620479a..0000000 Binary files a/assets/土地面板图标/升级图标2.png and /dev/null differ diff --git a/assets/土地面板图标/升级图标2.png.import b/assets/土地面板图标/升级图标2.png.import deleted file mode 100644 index 8911683..0000000 --- a/assets/土地面板图标/升级图标2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dg4o3wv1j0fx" -path="res://.godot/imported/升级图标2.png-9007c17d764381d63fd05659967ac473.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/升级图标2.png" -dest_files=["res://.godot/imported/升级图标2.png-9007c17d764381d63fd05659967ac473.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/升级图标2.webp b/assets/土地面板图标/升级图标2.webp deleted file mode 100644 index 9a47085..0000000 Binary files a/assets/土地面板图标/升级图标2.webp and /dev/null differ diff --git a/assets/土地面板图标/升级图标2.webp.import b/assets/土地面板图标/升级图标2.webp.import deleted file mode 100644 index 7e32975..0000000 --- a/assets/土地面板图标/升级图标2.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bj8lfoiwcsdat" -path="res://.godot/imported/升级图标2.webp-c084ff9747e4b6cac2da2b634f9bea39.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/升级图标2.webp" -dest_files=["res://.godot/imported/升级图标2.webp-c084ff9747e4b6cac2da2b634f9bea39.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/开垦图标2.png b/assets/土地面板图标/开垦图标2.png deleted file mode 100644 index 57c129d..0000000 Binary files a/assets/土地面板图标/开垦图标2.png and /dev/null differ diff --git a/assets/土地面板图标/开垦图标2.png.import b/assets/土地面板图标/开垦图标2.png.import deleted file mode 100644 index 074c19a..0000000 --- a/assets/土地面板图标/开垦图标2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c7rr7sf8tjicy" -path="res://.godot/imported/开垦图标2.png-306d3abcbf82c110bc80c70b832ddba5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/开垦图标2.png" -dest_files=["res://.godot/imported/开垦图标2.png-306d3abcbf82c110bc80c70b832ddba5.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/开垦图标2.webp b/assets/土地面板图标/开垦图标2.webp deleted file mode 100644 index 50a0080..0000000 Binary files a/assets/土地面板图标/开垦图标2.webp and /dev/null differ diff --git a/assets/土地面板图标/开垦图标2.webp.import b/assets/土地面板图标/开垦图标2.webp.import deleted file mode 100644 index 8a5a1ea..0000000 --- a/assets/土地面板图标/开垦图标2.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://xjnhvbvi4sdc" -path="res://.godot/imported/开垦图标2.webp-4e5f550c3449b8fb245c4305b2fc93c5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/开垦图标2.webp" -dest_files=["res://.godot/imported/开垦图标2.webp-4e5f550c3449b8fb245c4305b2fc93c5.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/开垦图标4.png b/assets/土地面板图标/开垦图标4.png deleted file mode 100644 index 102b5cf..0000000 Binary files a/assets/土地面板图标/开垦图标4.png and /dev/null differ diff --git a/assets/土地面板图标/开垦图标4.png.import b/assets/土地面板图标/开垦图标4.png.import deleted file mode 100644 index df1159d..0000000 --- a/assets/土地面板图标/开垦图标4.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dpcxeffaqb7ui" -path="res://.godot/imported/开垦图标4.png-d6daf6f4e62a04f8a231a66299799a59.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/开垦图标4.png" -dest_files=["res://.godot/imported/开垦图标4.png-d6daf6f4e62a04f8a231a66299799a59.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/开垦图标4.webp b/assets/土地面板图标/开垦图标4.webp deleted file mode 100644 index b7182e2..0000000 Binary files a/assets/土地面板图标/开垦图标4.webp and /dev/null differ diff --git a/assets/土地面板图标/开垦图标4.webp.import b/assets/土地面板图标/开垦图标4.webp.import deleted file mode 100644 index 83c8ed3..0000000 --- a/assets/土地面板图标/开垦图标4.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bcd7ykcakjvxw" -path="res://.godot/imported/开垦图标4.webp-a8add27a7d6872490032cb6af4b77d6f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/开垦图标4.webp" -dest_files=["res://.godot/imported/开垦图标4.webp-a8add27a7d6872490032cb6af4b77d6f.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/收获图标.png b/assets/土地面板图标/收获图标.png deleted file mode 100644 index 415d02b..0000000 Binary files a/assets/土地面板图标/收获图标.png and /dev/null differ diff --git a/assets/土地面板图标/收获图标.png.import b/assets/土地面板图标/收获图标.png.import deleted file mode 100644 index 497baaf..0000000 --- a/assets/土地面板图标/收获图标.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://0jialtvjk576" -path="res://.godot/imported/收获图标.png-f425579b05e07542842685c0b57118a8.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/收获图标.png" -dest_files=["res://.godot/imported/收获图标.png-f425579b05e07542842685c0b57118a8.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/收获图标.webp b/assets/土地面板图标/收获图标.webp deleted file mode 100644 index 241cf9c..0000000 Binary files a/assets/土地面板图标/收获图标.webp and /dev/null differ diff --git a/assets/土地面板图标/收获图标2.png b/assets/土地面板图标/收获图标2.png deleted file mode 100644 index 94d1adb..0000000 Binary files a/assets/土地面板图标/收获图标2.png and /dev/null differ diff --git a/assets/土地面板图标/收获图标2.png.import b/assets/土地面板图标/收获图标2.png.import deleted file mode 100644 index 2c3faf7..0000000 --- a/assets/土地面板图标/收获图标2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dqwfcpv8orlm7" -path="res://.godot/imported/收获图标2.png-330fca10757310442df4fc35836e4ebc.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/收获图标2.png" -dest_files=["res://.godot/imported/收获图标2.png-330fca10757310442df4fc35836e4ebc.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/收获图标2.webp b/assets/土地面板图标/收获图标2.webp deleted file mode 100644 index e6a6867..0000000 Binary files a/assets/土地面板图标/收获图标2.webp and /dev/null differ diff --git a/assets/土地面板图标/收获图标2.webp.import b/assets/土地面板图标/收获图标2.webp.import deleted file mode 100644 index 126107f..0000000 --- a/assets/土地面板图标/收获图标2.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dbjjf50ysykqu" -path="res://.godot/imported/收获图标2.webp-cef460c7b3f7a0f1abeaae673fd85f7b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/收获图标2.webp" -dest_files=["res://.godot/imported/收获图标2.webp-cef460c7b3f7a0f1abeaae673fd85f7b.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/施肥图标.png b/assets/土地面板图标/施肥图标.png deleted file mode 100644 index f9a4262..0000000 Binary files a/assets/土地面板图标/施肥图标.png and /dev/null differ diff --git a/assets/土地面板图标/施肥图标.png.import b/assets/土地面板图标/施肥图标.png.import deleted file mode 100644 index aa26c75..0000000 --- a/assets/土地面板图标/施肥图标.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://2ul8g4qf1lif" -path="res://.godot/imported/施肥图标.png-ca897e14766acb4bca05a56a0651bfb4.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/施肥图标.png" -dest_files=["res://.godot/imported/施肥图标.png-ca897e14766acb4bca05a56a0651bfb4.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/施肥图标.webp b/assets/土地面板图标/施肥图标.webp deleted file mode 100644 index 8cd5cb9..0000000 Binary files a/assets/土地面板图标/施肥图标.webp and /dev/null differ diff --git a/assets/土地面板图标/施肥图标.webp.import b/assets/土地面板图标/施肥图标.webp.import deleted file mode 100644 index edd1400..0000000 --- a/assets/土地面板图标/施肥图标.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://gc7gmjwyrxje" -path="res://.godot/imported/施肥图标.webp-94c1da12f6a63d9a176e91dbee0bff94.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/施肥图标.webp" -dest_files=["res://.godot/imported/施肥图标.webp-94c1da12f6a63d9a176e91dbee0bff94.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/浇水图标.png b/assets/土地面板图标/浇水图标.png deleted file mode 100644 index 22b022b..0000000 Binary files a/assets/土地面板图标/浇水图标.png and /dev/null differ diff --git a/assets/土地面板图标/浇水图标.png.import b/assets/土地面板图标/浇水图标.png.import deleted file mode 100644 index 2e4a059..0000000 --- a/assets/土地面板图标/浇水图标.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://813kjpdpfu0k" -path="res://.godot/imported/浇水图标.png-7fe267d629fa4042c6fef9e39c221937.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/浇水图标.png" -dest_files=["res://.godot/imported/浇水图标.png-7fe267d629fa4042c6fef9e39c221937.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/浇水图标.webp b/assets/土地面板图标/浇水图标.webp deleted file mode 100644 index 06eef4b..0000000 Binary files a/assets/土地面板图标/浇水图标.webp and /dev/null differ diff --git a/assets/土地面板图标/浇水图标.webp.import b/assets/土地面板图标/浇水图标.webp.import deleted file mode 100644 index 81d36f0..0000000 --- a/assets/土地面板图标/浇水图标.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://d2qpqpylm5p7b" -path="res://.godot/imported/浇水图标.webp-9de0a5057430ae87e13134d10b09e9c1.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/浇水图标.webp" -dest_files=["res://.godot/imported/浇水图标.webp-9de0a5057430ae87e13134d10b09e9c1.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/浇水图标2.png b/assets/土地面板图标/浇水图标2.png deleted file mode 100644 index 49adf2b..0000000 Binary files a/assets/土地面板图标/浇水图标2.png and /dev/null differ diff --git a/assets/土地面板图标/浇水图标2.png.import b/assets/土地面板图标/浇水图标2.png.import deleted file mode 100644 index c05aa0a..0000000 --- a/assets/土地面板图标/浇水图标2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dko11co73pph" -path="res://.godot/imported/浇水图标2.png-b95fc858726c9a7203cc06d065868952.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/浇水图标2.png" -dest_files=["res://.godot/imported/浇水图标2.png-b95fc858726c9a7203cc06d065868952.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/浇水图标2.webp b/assets/土地面板图标/浇水图标2.webp deleted file mode 100644 index bf92ff1..0000000 Binary files a/assets/土地面板图标/浇水图标2.webp and /dev/null differ diff --git a/assets/土地面板图标/浇水图标2.webp.import b/assets/土地面板图标/浇水图标2.webp.import deleted file mode 100644 index 21a5b0e..0000000 --- a/assets/土地面板图标/浇水图标2.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bv5r7px2pukqf" -path="res://.godot/imported/浇水图标2.webp-ceb387cd454775dc32166c24d81b4a89.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/浇水图标2.webp" -dest_files=["res://.godot/imported/浇水图标2.webp-ceb387cd454775dc32166c24d81b4a89.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/浇水图标3.png b/assets/土地面板图标/浇水图标3.png deleted file mode 100644 index 64768c7..0000000 Binary files a/assets/土地面板图标/浇水图标3.png and /dev/null differ diff --git a/assets/土地面板图标/浇水图标3.png.import b/assets/土地面板图标/浇水图标3.png.import deleted file mode 100644 index be38224..0000000 --- a/assets/土地面板图标/浇水图标3.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://ba8ptjai2x5h7" -path="res://.godot/imported/浇水图标3.png-eaa7176d88aa704deab725dd3252b9bf.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/浇水图标3.png" -dest_files=["res://.godot/imported/浇水图标3.png-eaa7176d88aa704deab725dd3252b9bf.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/浇水图标3.webp b/assets/土地面板图标/浇水图标3.webp deleted file mode 100644 index 5b7cfd1..0000000 Binary files a/assets/土地面板图标/浇水图标3.webp and /dev/null differ diff --git a/assets/土地面板图标/浇水图标3.webp.import b/assets/土地面板图标/浇水图标3.webp.import deleted file mode 100644 index e015829..0000000 --- a/assets/土地面板图标/浇水图标3.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://ckejm7kw2g8g5" -path="res://.godot/imported/浇水图标3.webp-3146bee18c989389a4bab93ad0ce1708.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/浇水图标3.webp" -dest_files=["res://.godot/imported/浇水图标3.webp-3146bee18c989389a4bab93ad0ce1708.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/种植图标.png b/assets/土地面板图标/种植图标.png deleted file mode 100644 index 81aabf5..0000000 Binary files a/assets/土地面板图标/种植图标.png and /dev/null differ diff --git a/assets/土地面板图标/种植图标.png.import b/assets/土地面板图标/种植图标.png.import deleted file mode 100644 index 0c79587..0000000 --- a/assets/土地面板图标/种植图标.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dr5gdk5ol2wbs" -path="res://.godot/imported/种植图标.png-e9f5dcb4e59a58d9f5cc079479a211a6.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/种植图标.png" -dest_files=["res://.godot/imported/种植图标.png-e9f5dcb4e59a58d9f5cc079479a211a6.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/种植图标.webp b/assets/土地面板图标/种植图标.webp deleted file mode 100644 index 631913f..0000000 Binary files a/assets/土地面板图标/种植图标.webp and /dev/null differ diff --git a/assets/土地面板图标/种植图标.webp.import b/assets/土地面板图标/种植图标.webp.import deleted file mode 100644 index 94126ac..0000000 --- a/assets/土地面板图标/种植图标.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bci0vnm62xqao" -path="res://.godot/imported/种植图标.webp-abcbacbf6bb00b33350ca5dc6131aaa2.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/种植图标.webp" -dest_files=["res://.godot/imported/种植图标.webp-abcbacbf6bb00b33350ca5dc6131aaa2.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/铲除图标.png b/assets/土地面板图标/铲除图标.png deleted file mode 100644 index a1eb461..0000000 Binary files a/assets/土地面板图标/铲除图标.png and /dev/null differ diff --git a/assets/土地面板图标/铲除图标.png.import b/assets/土地面板图标/铲除图标.png.import deleted file mode 100644 index 1eda6d3..0000000 --- a/assets/土地面板图标/铲除图标.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://gev5f3kf8qrq" -path="res://.godot/imported/铲除图标.png-19995168de33842fa5b48059e3f138d6.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/铲除图标.png" -dest_files=["res://.godot/imported/铲除图标.png-19995168de33842fa5b48059e3f138d6.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/铲除图标.webp b/assets/土地面板图标/铲除图标.webp deleted file mode 100644 index 3194644..0000000 Binary files a/assets/土地面板图标/铲除图标.webp and /dev/null differ diff --git a/assets/土地面板图标/铲除图标.webp.import b/assets/土地面板图标/铲除图标.webp.import deleted file mode 100644 index 4eebf75..0000000 --- a/assets/土地面板图标/铲除图标.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b676274xt0fcd" -path="res://.godot/imported/铲除图标.webp-5a4fa73e0d8e9d7f82e500b0395724d0.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/铲除图标.webp" -dest_files=["res://.godot/imported/铲除图标.webp-5a4fa73e0d8e9d7f82e500b0395724d0.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/铲除图标2.png b/assets/土地面板图标/铲除图标2.png deleted file mode 100644 index 18a076f..0000000 Binary files a/assets/土地面板图标/铲除图标2.png and /dev/null differ diff --git a/assets/土地面板图标/铲除图标2.png.import b/assets/土地面板图标/铲除图标2.png.import deleted file mode 100644 index 17a0145..0000000 --- a/assets/土地面板图标/铲除图标2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://8cglsm7u27wg" -path="res://.godot/imported/铲除图标2.png-7a0efb17cfb630c52c6c2270496a22f1.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/铲除图标2.png" -dest_files=["res://.godot/imported/铲除图标2.png-7a0efb17cfb630c52c6c2270496a22f1.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/铲除图标2.webp b/assets/土地面板图标/铲除图标2.webp deleted file mode 100644 index 53608a0..0000000 Binary files a/assets/土地面板图标/铲除图标2.webp and /dev/null differ diff --git a/assets/土地面板图标/铲除图标2.webp.import b/assets/土地面板图标/铲除图标2.webp.import deleted file mode 100644 index 10c706c..0000000 --- a/assets/土地面板图标/铲除图标2.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://d1k4vyx7tc3h8" -path="res://.godot/imported/铲除图标2.webp-7a98d5ad7c8743c7b4b69c35dc10904d.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/铲除图标2.webp" -dest_files=["res://.godot/imported/铲除图标2.webp-7a98d5ad7c8743c7b4b69c35dc10904d.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/土地面板图标/铲除图标3.png b/assets/土地面板图标/铲除图标3.png deleted file mode 100644 index 463b5a9..0000000 Binary files a/assets/土地面板图标/铲除图标3.png and /dev/null differ diff --git a/assets/土地面板图标/铲除图标3.png.import b/assets/土地面板图标/铲除图标3.png.import deleted file mode 100644 index 39ea764..0000000 --- a/assets/土地面板图标/铲除图标3.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://d2gty44ikvair" -path="res://.godot/imported/铲除图标3.png-c2db85196626ccc799287fa7634fcdaf.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/铲除图标3.png" -dest_files=["res://.godot/imported/铲除图标3.png-c2db85196626ccc799287fa7634fcdaf.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/土地面板图标/铲除图标3.webp b/assets/土地面板图标/铲除图标3.webp deleted file mode 100644 index 9750631..0000000 Binary files a/assets/土地面板图标/铲除图标3.webp and /dev/null differ diff --git a/assets/土地面板图标/铲除图标3.webp.import b/assets/土地面板图标/铲除图标3.webp.import deleted file mode 100644 index 7fb280d..0000000 --- a/assets/土地面板图标/铲除图标3.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b0aqgqt1bgb10" -path="res://.godot/imported/铲除图标3.webp-0ac052b22314b3764e5707b3e4239e67.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/土地面板图标/铲除图标3.webp" -dest_files=["res://.godot/imported/铲除图标3.webp-0ac052b22314b3764e5707b3e4239e67.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/地块/tu1.jpg b/assets/地块/tu1.jpg deleted file mode 100644 index 8813093..0000000 Binary files a/assets/地块/tu1.jpg and /dev/null differ diff --git a/assets/地块/tu1.jpg.import b/assets/地块/tu1.jpg.import deleted file mode 100644 index cb1e2c7..0000000 --- a/assets/地块/tu1.jpg.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://duoqp854aoeeg" -path="res://.godot/imported/tu1.jpg-31ea02a072ac9dc67b4f904ec7259377.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/地块/tu1.jpg" -dest_files=["res://.godot/imported/tu1.jpg-31ea02a072ac9dc67b4f904ec7259377.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/地块/tu2.png b/assets/地块/tu2.png deleted file mode 100644 index 840b780..0000000 Binary files a/assets/地块/tu2.png and /dev/null differ diff --git a/assets/地块/tu2.png.import b/assets/地块/tu2.png.import deleted file mode 100644 index c72bb0d..0000000 --- a/assets/地块/tu2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://d046caoogul6g" -path="res://.godot/imported/tu2.png-6b66540f5ad38c86f040fd2bd0c59a46.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/地块/tu2.png" -dest_files=["res://.godot/imported/tu2.png-6b66540f5ad38c86f040fd2bd0c59a46.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/地块/土块1.png b/assets/地块/土块1.png deleted file mode 100644 index c9f9156..0000000 Binary files a/assets/地块/土块1.png and /dev/null differ diff --git a/assets/地块/土块1.png.import b/assets/地块/土块1.png.import deleted file mode 100644 index 539932a..0000000 --- a/assets/地块/土块1.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://fibjlynv0vi2" -path="res://.godot/imported/土块1.png-e9a87165b679a4d98f953515a149d752.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/地块/土块1.png" -dest_files=["res://.godot/imported/土块1.png-e9a87165b679a4d98f953515a149d752.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/地块/土块1.webp.import b/assets/地块/土块1.webp.import index 324219d..9957764 100644 --- a/assets/地块/土块1.webp.import +++ b/assets/地块/土块1.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/土块1.webp-2ff726760c177c95d146d4b5d0939be4 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/地块/土块2.webp b/assets/地块/土块2.webp new file mode 100644 index 0000000..c53977e Binary files /dev/null and b/assets/地块/土块2.webp differ diff --git a/assets/地块/土块2.webp.import b/assets/地块/土块2.webp.import new file mode 100644 index 0000000..87a4d0e --- /dev/null +++ b/assets/地块/土块2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dngsy6bltp54r" +path="res://.godot/imported/土块2.webp-9d1595f5279dcc45692772a33925b729.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/地块/土块2.webp" +dest_files=["res://.godot/imported/土块2.webp-9d1595f5279dcc45692772a33925b729.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/宠物图片/一堆小怪.png.import b/assets/宠物图片/一堆小怪.png.import index 6785a7d..27ea882 100644 --- a/assets/宠物图片/一堆小怪.png.import +++ b/assets/宠物图片/一堆小怪.png.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/一堆小怪.png-6e2ed0fca24303f4bd3194c81049 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/宠物图片/护卫.png b/assets/宠物图片/护卫.png index 5b0eb4f..1463052 100644 Binary files a/assets/宠物图片/护卫.png and b/assets/宠物图片/护卫.png differ diff --git a/assets/宠物图片/护卫.png.import b/assets/宠物图片/护卫.png.import index 08bb4a4..b006566 100644 --- a/assets/宠物图片/护卫.png.import +++ b/assets/宠物图片/护卫.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://m7k2b38lko7v" +uid="uid://bal78ts2eq4yu" path="res://.godot/imported/护卫.png-918f7cdad8aabb7935089021336b3932.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/护卫.png-918f7cdad8aabb7935089021336b3932.c [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/宠物图片/红色史莱姆.png b/assets/宠物图片/红色史莱姆.png index 76f564e..947515e 100644 Binary files a/assets/宠物图片/红色史莱姆.png and b/assets/宠物图片/红色史莱姆.png differ diff --git a/assets/宠物图片/红色史莱姆.png.import b/assets/宠物图片/红色史莱姆.png.import index 91c01a3..49f437b 100644 --- a/assets/宠物图片/红色史莱姆.png.import +++ b/assets/宠物图片/红色史莱姆.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://d0qenkwarx1xo" +uid="uid://cvpsjlje7q3to" path="res://.godot/imported/红色史莱姆.png-42e5949aae78c3d54ae37f67a42a2d34.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/红色史莱姆.png-42e5949aae78c3d54ae37f67a [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/宠物图片/绿色史莱姆.png b/assets/宠物图片/绿色史莱姆.png index a21cb6f..5b08a56 100644 Binary files a/assets/宠物图片/绿色史莱姆.png and b/assets/宠物图片/绿色史莱姆.png differ diff --git a/assets/宠物图片/绿色史莱姆.png.import b/assets/宠物图片/绿色史莱姆.png.import index b6626a9..ac62e25 100644 --- a/assets/宠物图片/绿色史莱姆.png.import +++ b/assets/宠物图片/绿色史莱姆.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dtie1g1164c1y" +uid="uid://b75oytao5cgjo" path="res://.godot/imported/绿色史莱姆.png-8a4333d90da1b17b9e8829f66fbd46ad.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/绿色史莱姆.png-8a4333d90da1b17b9e8829f66 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/宠物对战背景图片/背景1.webp b/assets/宠物对战背景图片/背景1.webp new file mode 100644 index 0000000..a11fecb Binary files /dev/null and b/assets/宠物对战背景图片/背景1.webp differ diff --git a/assets/宠物对战背景图片/背景1.webp.import b/assets/宠物对战背景图片/背景1.webp.import new file mode 100644 index 0000000..8cf64c6 --- /dev/null +++ b/assets/宠物对战背景图片/背景1.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqplx42472cvs" +path="res://.godot/imported/背景1.webp-50bdc536c6be7cea515872be4a38461a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/宠物对战背景图片/背景1.webp" +dest_files=["res://.godot/imported/背景1.webp-50bdc536c6be7cea515872be4a38461a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/宠物对战背景图片/背景2.webp b/assets/宠物对战背景图片/背景2.webp new file mode 100644 index 0000000..b4b6777 Binary files /dev/null and b/assets/宠物对战背景图片/背景2.webp differ diff --git a/assets/宠物对战背景图片/背景2.webp.import b/assets/宠物对战背景图片/背景2.webp.import new file mode 100644 index 0000000..b5eba2b --- /dev/null +++ b/assets/宠物对战背景图片/背景2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dh0dsw3jr0gra" +path="res://.godot/imported/背景2.webp-2a6d9102a27d488a3be179cebbdbe054.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/宠物对战背景图片/背景2.webp" +dest_files=["res://.godot/imported/背景2.webp-2a6d9102a27d488a3be179cebbdbe054.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/木剑.png b/assets/我的世界图片/武器工具/木剑.png new file mode 100644 index 0000000..7e81eb7 Binary files /dev/null and b/assets/我的世界图片/武器工具/木剑.png differ diff --git a/assets/我的世界图片/武器工具/木剑.png.import b/assets/我的世界图片/武器工具/木剑.png.import new file mode 100644 index 0000000..c993b5e --- /dev/null +++ b/assets/我的世界图片/武器工具/木剑.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dciakkwnchcga" +path="res://.godot/imported/木剑.png-7e7dc79e3915006e67e5053fb49b1e94.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/木剑.png" +dest_files=["res://.godot/imported/木剑.png-7e7dc79e3915006e67e5053fb49b1e94.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/木斧.png b/assets/我的世界图片/武器工具/木斧.png new file mode 100644 index 0000000..ffec730 Binary files /dev/null and b/assets/我的世界图片/武器工具/木斧.png differ diff --git a/assets/我的世界图片/武器工具/木斧.png.import b/assets/我的世界图片/武器工具/木斧.png.import new file mode 100644 index 0000000..715a116 --- /dev/null +++ b/assets/我的世界图片/武器工具/木斧.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjpyofqxxee4n" +path="res://.godot/imported/木斧.png-7fe6c1320c131daced60aab1d59f5cf3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/木斧.png" +dest_files=["res://.godot/imported/木斧.png-7fe6c1320c131daced60aab1d59f5cf3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/木铲.png b/assets/我的世界图片/武器工具/木铲.png new file mode 100644 index 0000000..3c9a372 Binary files /dev/null and b/assets/我的世界图片/武器工具/木铲.png differ diff --git a/assets/我的世界图片/武器工具/木铲.png.import b/assets/我的世界图片/武器工具/木铲.png.import new file mode 100644 index 0000000..9c6ee6a --- /dev/null +++ b/assets/我的世界图片/武器工具/木铲.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dywtu1vdkwpy6" +path="res://.godot/imported/木铲.png-c2bb47add8a0a56681b68afd316ffb64.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/木铲.png" +dest_files=["res://.godot/imported/木铲.png-c2bb47add8a0a56681b68afd316ffb64.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/木锄.png b/assets/我的世界图片/武器工具/木锄.png new file mode 100644 index 0000000..531a238 Binary files /dev/null and b/assets/我的世界图片/武器工具/木锄.png differ diff --git a/assets/我的世界图片/武器工具/木锄.png.import b/assets/我的世界图片/武器工具/木锄.png.import new file mode 100644 index 0000000..8b3c7b8 --- /dev/null +++ b/assets/我的世界图片/武器工具/木锄.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bef8nlutttfky" +path="res://.godot/imported/木锄.png-4bc433282de45a415f0913ff60fae19d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/木锄.png" +dest_files=["res://.godot/imported/木锄.png-4bc433282de45a415f0913ff60fae19d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/木镐.png b/assets/我的世界图片/武器工具/木镐.png new file mode 100644 index 0000000..c74c0f5 Binary files /dev/null and b/assets/我的世界图片/武器工具/木镐.png differ diff --git a/assets/我的世界图片/武器工具/木镐.png.import b/assets/我的世界图片/武器工具/木镐.png.import new file mode 100644 index 0000000..9c67f02 --- /dev/null +++ b/assets/我的世界图片/武器工具/木镐.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2i3c88cxh4s7" +path="res://.godot/imported/木镐.png-d109792e7023ec2a1f36c9d5186fe43f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/木镐.png" +dest_files=["res://.godot/imported/木镐.png-d109792e7023ec2a1f36c9d5186fe43f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/石剑.png b/assets/我的世界图片/武器工具/石剑.png new file mode 100644 index 0000000..9df59a8 Binary files /dev/null and b/assets/我的世界图片/武器工具/石剑.png differ diff --git a/assets/我的世界图片/武器工具/石剑.png.import b/assets/我的世界图片/武器工具/石剑.png.import new file mode 100644 index 0000000..5153e4d --- /dev/null +++ b/assets/我的世界图片/武器工具/石剑.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfe0p6ond3fhr" +path="res://.godot/imported/石剑.png-873d3526b0d958dfe459c3926d0e3797.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/石剑.png" +dest_files=["res://.godot/imported/石剑.png-873d3526b0d958dfe459c3926d0e3797.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/石斧.png b/assets/我的世界图片/武器工具/石斧.png new file mode 100644 index 0000000..d5af6bb Binary files /dev/null and b/assets/我的世界图片/武器工具/石斧.png differ diff --git a/assets/我的世界图片/武器工具/石斧.png.import b/assets/我的世界图片/武器工具/石斧.png.import new file mode 100644 index 0000000..24b8f92 --- /dev/null +++ b/assets/我的世界图片/武器工具/石斧.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8wmyv4be5fou" +path="res://.godot/imported/石斧.png-c3ba8701bc15b28047f331ce68a1c639.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/石斧.png" +dest_files=["res://.godot/imported/石斧.png-c3ba8701bc15b28047f331ce68a1c639.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/石铲.png b/assets/我的世界图片/武器工具/石铲.png new file mode 100644 index 0000000..a53ac77 Binary files /dev/null and b/assets/我的世界图片/武器工具/石铲.png differ diff --git a/assets/我的世界图片/武器工具/石铲.png.import b/assets/我的世界图片/武器工具/石铲.png.import new file mode 100644 index 0000000..3be6cbd --- /dev/null +++ b/assets/我的世界图片/武器工具/石铲.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdgd8p7y1ip2r" +path="res://.godot/imported/石铲.png-d995dbf5609062907279437f37655af8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/石铲.png" +dest_files=["res://.godot/imported/石铲.png-d995dbf5609062907279437f37655af8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/石锄.png b/assets/我的世界图片/武器工具/石锄.png new file mode 100644 index 0000000..b1c01fd Binary files /dev/null and b/assets/我的世界图片/武器工具/石锄.png differ diff --git a/assets/我的世界图片/武器工具/石锄.png.import b/assets/我的世界图片/武器工具/石锄.png.import new file mode 100644 index 0000000..d9e3c8d --- /dev/null +++ b/assets/我的世界图片/武器工具/石锄.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqehvhk8xaati" +path="res://.godot/imported/石锄.png-a71ce0b5b87c9ef8e99285eef1884720.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/石锄.png" +dest_files=["res://.godot/imported/石锄.png-a71ce0b5b87c9ef8e99285eef1884720.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/石镐.png b/assets/我的世界图片/武器工具/石镐.png new file mode 100644 index 0000000..69cbd19 Binary files /dev/null and b/assets/我的世界图片/武器工具/石镐.png differ diff --git a/assets/我的世界图片/武器工具/石镐.png.import b/assets/我的世界图片/武器工具/石镐.png.import new file mode 100644 index 0000000..efe073c --- /dev/null +++ b/assets/我的世界图片/武器工具/石镐.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5buo41j0pdnt" +path="res://.godot/imported/石镐.png-f58966fe92fe0783fd69ca17798aa9d7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/石镐.png" +dest_files=["res://.godot/imported/石镐.png-f58966fe92fe0783fd69ca17798aa9d7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/钻石剑.png b/assets/我的世界图片/武器工具/钻石剑.png new file mode 100644 index 0000000..947dead Binary files /dev/null and b/assets/我的世界图片/武器工具/钻石剑.png differ diff --git a/assets/我的世界图片/武器工具/钻石剑.png.import b/assets/我的世界图片/武器工具/钻石剑.png.import new file mode 100644 index 0000000..b7559a3 --- /dev/null +++ b/assets/我的世界图片/武器工具/钻石剑.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdhf25ktn3jp3" +path="res://.godot/imported/钻石剑.png-3470ad1d6c9e1550b4bbac7300d7de06.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/钻石剑.png" +dest_files=["res://.godot/imported/钻石剑.png-3470ad1d6c9e1550b4bbac7300d7de06.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/钻石斧.png b/assets/我的世界图片/武器工具/钻石斧.png new file mode 100644 index 0000000..508c041 Binary files /dev/null and b/assets/我的世界图片/武器工具/钻石斧.png differ diff --git a/assets/我的世界图片/武器工具/钻石斧.png.import b/assets/我的世界图片/武器工具/钻石斧.png.import new file mode 100644 index 0000000..8d5f720 --- /dev/null +++ b/assets/我的世界图片/武器工具/钻石斧.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dl0xo2jhwx5xv" +path="res://.godot/imported/钻石斧.png-4bd0df3ca7ba8218de38e6a5efaefa77.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/钻石斧.png" +dest_files=["res://.godot/imported/钻石斧.png-4bd0df3ca7ba8218de38e6a5efaefa77.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/钻石铲.png b/assets/我的世界图片/武器工具/钻石铲.png new file mode 100644 index 0000000..22c348c Binary files /dev/null and b/assets/我的世界图片/武器工具/钻石铲.png differ diff --git a/assets/我的世界图片/武器工具/钻石铲.png.import b/assets/我的世界图片/武器工具/钻石铲.png.import new file mode 100644 index 0000000..ec9160e --- /dev/null +++ b/assets/我的世界图片/武器工具/钻石铲.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dx7d7huv7qdgk" +path="res://.godot/imported/钻石铲.png-275ccd32f72ca3026815002b5ad50411.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/钻石铲.png" +dest_files=["res://.godot/imported/钻石铲.png-275ccd32f72ca3026815002b5ad50411.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/钻石镐.png b/assets/我的世界图片/武器工具/钻石镐.png new file mode 100644 index 0000000..9e8df9e Binary files /dev/null and b/assets/我的世界图片/武器工具/钻石镐.png differ diff --git a/assets/我的世界图片/武器工具/钻石镐.png.import b/assets/我的世界图片/武器工具/钻石镐.png.import new file mode 100644 index 0000000..9257a96 --- /dev/null +++ b/assets/我的世界图片/武器工具/钻石镐.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbuocr5wqd503" +path="res://.godot/imported/钻石镐.png-205ac53913ca56a3070b6f6ace1a4cca.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/钻石镐.png" +dest_files=["res://.godot/imported/钻石镐.png-205ac53913ca56a3070b6f6ace1a4cca.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/铁剑.png b/assets/我的世界图片/武器工具/铁剑.png new file mode 100644 index 0000000..3034ac5 Binary files /dev/null and b/assets/我的世界图片/武器工具/铁剑.png differ diff --git a/assets/背景图片/背景12.webp.import b/assets/我的世界图片/武器工具/铁剑.png.import similarity index 65% rename from assets/背景图片/背景12.webp.import rename to assets/我的世界图片/武器工具/铁剑.png.import index e99f056..4900b30 100644 --- a/assets/背景图片/背景12.webp.import +++ b/assets/我的世界图片/武器工具/铁剑.png.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c4l3ia6035tyi" -path="res://.godot/imported/背景12.webp-fd5b1a36e7747c4b5840379396f7bf8c.ctex" +uid="uid://yfoyre8v8ys" +path="res://.godot/imported/铁剑.png-a495fb44ce134d50190c5d351f4a8428.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/背景图片/背景12.webp" -dest_files=["res://.godot/imported/背景12.webp-fd5b1a36e7747c4b5840379396f7bf8c.ctex"] +source_file="res://assets/我的世界图片/武器工具/铁剑.png" +dest_files=["res://.godot/imported/铁剑.png-a495fb44ce134d50190c5d351f4a8428.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/我的世界图片/武器工具/铁铲.png b/assets/我的世界图片/武器工具/铁铲.png new file mode 100644 index 0000000..90dd494 Binary files /dev/null and b/assets/我的世界图片/武器工具/铁铲.png differ diff --git a/assets/我的世界图片/武器工具/铁铲.png.import b/assets/我的世界图片/武器工具/铁铲.png.import new file mode 100644 index 0000000..390b8e7 --- /dev/null +++ b/assets/我的世界图片/武器工具/铁铲.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2ml0tttwywqw" +path="res://.godot/imported/铁铲.png-ba49b7b0362780c4f0494101a75642c7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/铁铲.png" +dest_files=["res://.godot/imported/铁铲.png-ba49b7b0362780c4f0494101a75642c7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/铁镐.png b/assets/我的世界图片/武器工具/铁镐.png new file mode 100644 index 0000000..8236980 Binary files /dev/null and b/assets/我的世界图片/武器工具/铁镐.png differ diff --git a/assets/我的世界图片/武器工具/铁镐.png.import b/assets/我的世界图片/武器工具/铁镐.png.import new file mode 100644 index 0000000..cef0103 --- /dev/null +++ b/assets/我的世界图片/武器工具/铁镐.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xg028ixxpa2i" +path="res://.godot/imported/铁镐.png-9c9f6bf0053d8ba64f973703284e195c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/铁镐.png" +dest_files=["res://.godot/imported/铁镐.png-9c9f6bf0053d8ba64f973703284e195c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/黄金铲.png b/assets/我的世界图片/武器工具/黄金铲.png new file mode 100644 index 0000000..17e319e Binary files /dev/null and b/assets/我的世界图片/武器工具/黄金铲.png differ diff --git a/assets/我的世界图片/武器工具/黄金铲.png.import b/assets/我的世界图片/武器工具/黄金铲.png.import new file mode 100644 index 0000000..4491a62 --- /dev/null +++ b/assets/我的世界图片/武器工具/黄金铲.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdm35ghc34vvo" +path="res://.godot/imported/黄金铲.png-593c16a8bab61a12902a5327dd05885f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/黄金铲.png" +dest_files=["res://.godot/imported/黄金铲.png-593c16a8bab61a12902a5327dd05885f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/我的世界图片/武器工具/黄金锄.png b/assets/我的世界图片/武器工具/黄金锄.png new file mode 100644 index 0000000..01aaf5d Binary files /dev/null and b/assets/我的世界图片/武器工具/黄金锄.png differ diff --git a/assets/我的世界图片/武器工具/黄金锄.png.import b/assets/我的世界图片/武器工具/黄金锄.png.import new file mode 100644 index 0000000..361e564 --- /dev/null +++ b/assets/我的世界图片/武器工具/黄金锄.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bssm1tlicqfx5" +path="res://.godot/imported/黄金锄.png-308e427e142d46b17c54155a46ee0779.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/我的世界图片/武器工具/黄金锄.png" +dest_files=["res://.godot/imported/黄金锄.png-308e427e142d46b17c54155a46ee0779.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/智慧树图片/智慧树1.webp b/assets/智慧树图片/智慧树1.webp new file mode 100644 index 0000000..5041c69 Binary files /dev/null and b/assets/智慧树图片/智慧树1.webp differ diff --git a/assets/智慧树图片/智慧树1.webp.import b/assets/智慧树图片/智慧树1.webp.import new file mode 100644 index 0000000..2a98c83 --- /dev/null +++ b/assets/智慧树图片/智慧树1.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnivcwheser1a" +path="res://.godot/imported/智慧树1.webp-374aed701ce9a1ccea7d3d8edfc360ee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/智慧树图片/智慧树1.webp" +dest_files=["res://.godot/imported/智慧树1.webp-374aed701ce9a1ccea7d3d8edfc360ee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/智慧树图片/智慧树2.webp b/assets/智慧树图片/智慧树2.webp new file mode 100644 index 0000000..7192db3 Binary files /dev/null and b/assets/智慧树图片/智慧树2.webp differ diff --git a/assets/智慧树图片/智慧树2.webp.import b/assets/智慧树图片/智慧树2.webp.import new file mode 100644 index 0000000..84339f9 --- /dev/null +++ b/assets/智慧树图片/智慧树2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh5ivqoyocuot" +path="res://.godot/imported/智慧树2.webp-13e05afcc64bec6d7f6beb726cba75c5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/智慧树图片/智慧树2.webp" +dest_files=["res://.godot/imported/智慧树2.webp-13e05afcc64bec6d7f6beb726cba75c5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/智慧树图片/智慧树3.webp b/assets/智慧树图片/智慧树3.webp new file mode 100644 index 0000000..595e914 Binary files /dev/null and b/assets/智慧树图片/智慧树3.webp differ diff --git a/assets/智慧树图片/智慧树3.webp.import b/assets/智慧树图片/智慧树3.webp.import new file mode 100644 index 0000000..8030889 --- /dev/null +++ b/assets/智慧树图片/智慧树3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://byji7bx61ck2k" +path="res://.godot/imported/智慧树3.webp-5134342ea06662bfab4dc6340929591e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/智慧树图片/智慧树3.webp" +dest_files=["res://.godot/imported/智慧树3.webp-5134342ea06662bfab4dc6340929591e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/智慧树图片/智慧树4.webp b/assets/智慧树图片/智慧树4.webp new file mode 100644 index 0000000..927d5dd Binary files /dev/null and b/assets/智慧树图片/智慧树4.webp differ diff --git a/assets/智慧树图片/智慧树4.webp.import b/assets/智慧树图片/智慧树4.webp.import new file mode 100644 index 0000000..7c6dffc --- /dev/null +++ b/assets/智慧树图片/智慧树4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbdm5e6s8bf6l" +path="res://.godot/imported/智慧树4.webp-f7fd7b65de3229a02de30430dcff2b7f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/智慧树图片/智慧树4.webp" +dest_files=["res://.godot/imported/智慧树4.webp-f7fd7b65de3229a02de30430dcff2b7f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/稻草人图片/稻草人1.webp b/assets/稻草人图片/稻草人1.webp new file mode 100644 index 0000000..3b74313 Binary files /dev/null and b/assets/稻草人图片/稻草人1.webp differ diff --git a/assets/稻草人图片/稻草人1.webp.import b/assets/稻草人图片/稻草人1.webp.import new file mode 100644 index 0000000..4cb0896 --- /dev/null +++ b/assets/稻草人图片/稻草人1.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3ff2lnbc0op7" +path="res://.godot/imported/稻草人1.webp-eadebccb442b6cf843e1f36195530fe5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/稻草人图片/稻草人1.webp" +dest_files=["res://.godot/imported/稻草人1.webp-eadebccb442b6cf843e1f36195530fe5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/稻草人图片/稻草人2.webp b/assets/稻草人图片/稻草人2.webp new file mode 100644 index 0000000..2f016ba Binary files /dev/null and b/assets/稻草人图片/稻草人2.webp differ diff --git a/assets/稻草人图片/稻草人2.webp.import b/assets/稻草人图片/稻草人2.webp.import new file mode 100644 index 0000000..3964e39 --- /dev/null +++ b/assets/稻草人图片/稻草人2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d06uaoowmcvxj" +path="res://.godot/imported/稻草人2.webp-e0672f6e92042a86a949c2ce99a8bff2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/稻草人图片/稻草人2.webp" +dest_files=["res://.godot/imported/稻草人2.webp-e0672f6e92042a86a949c2ce99a8bff2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/稻草人图片/稻草人3.webp b/assets/稻草人图片/稻草人3.webp new file mode 100644 index 0000000..e39735c Binary files /dev/null and b/assets/稻草人图片/稻草人3.webp differ diff --git a/assets/稻草人图片/稻草人3.webp.import b/assets/稻草人图片/稻草人3.webp.import new file mode 100644 index 0000000..447389b --- /dev/null +++ b/assets/稻草人图片/稻草人3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbe0f8ex17csy" +path="res://.godot/imported/稻草人3.webp-d0e38fd81cfc9e548650ad9b527a94f5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/稻草人图片/稻草人3.webp" +dest_files=["res://.godot/imported/稻草人3.webp-d0e38fd81cfc9e548650ad9b527a94f5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/背景图片/背景1.png b/assets/背景图片/背景1.png deleted file mode 100644 index 27b1dfc..0000000 Binary files a/assets/背景图片/背景1.png and /dev/null differ diff --git a/assets/背景图片/背景1.png.import b/assets/背景图片/背景1.png.import deleted file mode 100644 index 9e31dda..0000000 --- a/assets/背景图片/背景1.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://2h57eo1x7nib" -path="res://.godot/imported/背景1.png-e2c456604753856fa4ed06167eee46a7.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景1.png" -dest_files=["res://.godot/imported/背景1.png-e2c456604753856fa4ed06167eee46a7.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景1.webp.import b/assets/背景图片/背景1.webp.import index 998639c..7eb4271 100644 --- a/assets/背景图片/背景1.webp.import +++ b/assets/背景图片/背景1.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景1.webp-573d72da85ef6f0db95bf2d3e56eb2aa [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/背景10.png b/assets/背景图片/背景10.png deleted file mode 100644 index 7ac72aa..0000000 Binary files a/assets/背景图片/背景10.png and /dev/null differ diff --git a/assets/背景图片/背景10.png.import b/assets/背景图片/背景10.png.import deleted file mode 100644 index 8812391..0000000 --- a/assets/背景图片/背景10.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bm23ujbm4auk2" -path="res://.godot/imported/背景10.png-04e962b5d5f3c159a2fa9d481c4f4b42.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景10.png" -dest_files=["res://.godot/imported/背景10.png-04e962b5d5f3c159a2fa9d481c4f4b42.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景10.webp.import b/assets/背景图片/背景10.webp.import index bc4cd6e..9b46422 100644 --- a/assets/背景图片/背景10.webp.import +++ b/assets/背景图片/背景10.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景10.webp-588e57b75153f3da9e9c0d410c29d81 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/背景11.png b/assets/背景图片/背景11.png deleted file mode 100644 index c708391..0000000 Binary files a/assets/背景图片/背景11.png and /dev/null differ diff --git a/assets/背景图片/背景11.png.import b/assets/背景图片/背景11.png.import deleted file mode 100644 index 588f1d7..0000000 --- a/assets/背景图片/背景11.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dnlxmdnsy8gc5" -path="res://.godot/imported/背景11.png-b7e47d1bd3f11f9f56fbe8d47ac9350b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景11.png" -dest_files=["res://.godot/imported/背景11.png-b7e47d1bd3f11f9f56fbe8d47ac9350b.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景11.webp b/assets/背景图片/背景11.webp deleted file mode 100644 index a68e846..0000000 Binary files a/assets/背景图片/背景11.webp and /dev/null differ diff --git a/assets/背景图片/背景12.png b/assets/背景图片/背景12.png deleted file mode 100644 index f098c70..0000000 Binary files a/assets/背景图片/背景12.png and /dev/null differ diff --git a/assets/背景图片/背景12.png.import b/assets/背景图片/背景12.png.import deleted file mode 100644 index 31fea97..0000000 --- a/assets/背景图片/背景12.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c0sjlrwva4fbf" -path="res://.godot/imported/背景12.png-f1241e413d8bfd0a1045d6d0be4d5c3e.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景12.png" -dest_files=["res://.godot/imported/背景12.png-f1241e413d8bfd0a1045d6d0be4d5c3e.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景12.webp b/assets/背景图片/背景12.webp deleted file mode 100644 index e546b92..0000000 Binary files a/assets/背景图片/背景12.webp and /dev/null differ diff --git a/assets/背景图片/背景13.png b/assets/背景图片/背景13.png deleted file mode 100644 index 101e2de..0000000 Binary files a/assets/背景图片/背景13.png and /dev/null differ diff --git a/assets/背景图片/背景13.png.import b/assets/背景图片/背景13.png.import deleted file mode 100644 index a3606ed..0000000 --- a/assets/背景图片/背景13.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bnsqojon6wg67" -path="res://.godot/imported/背景13.png-30d008bfa938f3eef0e818d1f2a8549f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景13.png" -dest_files=["res://.godot/imported/背景13.png-30d008bfa938f3eef0e818d1f2a8549f.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景13.webp b/assets/背景图片/背景13.webp deleted file mode 100644 index f28801b..0000000 Binary files a/assets/背景图片/背景13.webp and /dev/null differ diff --git a/assets/背景图片/背景14.png b/assets/背景图片/背景14.png deleted file mode 100644 index 7bf0431..0000000 Binary files a/assets/背景图片/背景14.png and /dev/null differ diff --git a/assets/背景图片/背景14.png.import b/assets/背景图片/背景14.png.import deleted file mode 100644 index 8a23fb3..0000000 --- a/assets/背景图片/背景14.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://xc0qhcttq10l" -path="res://.godot/imported/背景14.png-f5cfdf2e0ce8274d011c641294c07b14.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景14.png" -dest_files=["res://.godot/imported/背景14.png-f5cfdf2e0ce8274d011c641294c07b14.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景14.webp b/assets/背景图片/背景14.webp deleted file mode 100644 index 29890b9..0000000 Binary files a/assets/背景图片/背景14.webp and /dev/null differ diff --git a/assets/背景图片/背景14.webp.import b/assets/背景图片/背景14.webp.import deleted file mode 100644 index d117f74..0000000 --- a/assets/背景图片/背景14.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c0oxbqu7pp0cg" -path="res://.godot/imported/背景14.webp-97d3184ebd841f974e1affa1f6adb271.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景14.webp" -dest_files=["res://.godot/imported/背景14.webp-97d3184ebd841f974e1affa1f6adb271.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/背景图片/背景15.png b/assets/背景图片/背景15.png deleted file mode 100644 index febcd63..0000000 Binary files a/assets/背景图片/背景15.png and /dev/null differ diff --git a/assets/背景图片/背景15.png.import b/assets/背景图片/背景15.png.import deleted file mode 100644 index 9cbbe4d..0000000 --- a/assets/背景图片/背景15.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bcyk5ukw8vnei" -path="res://.godot/imported/背景15.png-7849a28c7748d08e677426c682afd141.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景15.png" -dest_files=["res://.godot/imported/背景15.png-7849a28c7748d08e677426c682afd141.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景15.webp b/assets/背景图片/背景15.webp deleted file mode 100644 index a934d5f..0000000 Binary files a/assets/背景图片/背景15.webp and /dev/null differ diff --git a/assets/背景图片/背景16.png b/assets/背景图片/背景16.png deleted file mode 100644 index 6fce6f5..0000000 Binary files a/assets/背景图片/背景16.png and /dev/null differ diff --git a/assets/背景图片/背景16.png.import b/assets/背景图片/背景16.png.import deleted file mode 100644 index 41c5f6a..0000000 --- a/assets/背景图片/背景16.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://kldj8jow827u" -path="res://.godot/imported/背景16.png-a87bae4aff1c6fb63779f2976b049fdd.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景16.png" -dest_files=["res://.godot/imported/背景16.png-a87bae4aff1c6fb63779f2976b049fdd.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景16.webp b/assets/背景图片/背景16.webp deleted file mode 100644 index bf86fc8..0000000 Binary files a/assets/背景图片/背景16.webp and /dev/null differ diff --git a/assets/背景图片/背景16.webp.import b/assets/背景图片/背景16.webp.import deleted file mode 100644 index 87adfd2..0000000 --- a/assets/背景图片/背景16.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cdpqi0hjorogj" -path="res://.godot/imported/背景16.webp-31d753741382f6c2b4f67c2a3c003644.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景16.webp" -dest_files=["res://.godot/imported/背景16.webp-31d753741382f6c2b4f67c2a3c003644.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/背景图片/背景17.png b/assets/背景图片/背景17.png deleted file mode 100644 index 0698898..0000000 Binary files a/assets/背景图片/背景17.png and /dev/null differ diff --git a/assets/背景图片/背景17.png.import b/assets/背景图片/背景17.png.import deleted file mode 100644 index 65eea1a..0000000 --- a/assets/背景图片/背景17.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cpwogwofy2own" -path="res://.godot/imported/背景17.png-1e4396501c91605727fd130fd94935b7.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景17.png" -dest_files=["res://.godot/imported/背景17.png-1e4396501c91605727fd130fd94935b7.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景17.webp b/assets/背景图片/背景17.webp deleted file mode 100644 index 01e645b..0000000 Binary files a/assets/背景图片/背景17.webp and /dev/null differ diff --git a/assets/背景图片/背景17.webp.import b/assets/背景图片/背景17.webp.import deleted file mode 100644 index 0d4745b..0000000 --- a/assets/背景图片/背景17.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dqj1rudx556cf" -path="res://.godot/imported/背景17.webp-c3e4b768879c4a6ded9c9db205f6fbfc.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景17.webp" -dest_files=["res://.godot/imported/背景17.webp-c3e4b768879c4a6ded9c9db205f6fbfc.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/背景图片/背景18.png b/assets/背景图片/背景18.png deleted file mode 100644 index ef3dffa..0000000 Binary files a/assets/背景图片/背景18.png and /dev/null differ diff --git a/assets/背景图片/背景18.png.import b/assets/背景图片/背景18.png.import deleted file mode 100644 index 13c3227..0000000 --- a/assets/背景图片/背景18.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://8i4l82s8pcis" -path="res://.godot/imported/背景18.png-0cf236506bc103af5f654c31fb68b91b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景18.png" -dest_files=["res://.godot/imported/背景18.png-0cf236506bc103af5f654c31fb68b91b.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景18.webp b/assets/背景图片/背景18.webp deleted file mode 100644 index 7e3510c..0000000 Binary files a/assets/背景图片/背景18.webp and /dev/null differ diff --git a/assets/背景图片/背景18.webp.import b/assets/背景图片/背景18.webp.import deleted file mode 100644 index 71a3377..0000000 --- a/assets/背景图片/背景18.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c8pb54onbuhwm" -path="res://.godot/imported/背景18.webp-581f1afafa4e9188560126eeb6d5705f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景18.webp" -dest_files=["res://.godot/imported/背景18.webp-581f1afafa4e9188560126eeb6d5705f.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/背景图片/背景19.png b/assets/背景图片/背景19.png deleted file mode 100644 index b4de5cc..0000000 Binary files a/assets/背景图片/背景19.png and /dev/null differ diff --git a/assets/背景图片/背景19.png.import b/assets/背景图片/背景19.png.import deleted file mode 100644 index b2a349f..0000000 --- a/assets/背景图片/背景19.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://ccrsewfd3f2t4" -path="res://.godot/imported/背景19.png-6ba662313911133e3e07dffaa0725527.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景19.png" -dest_files=["res://.godot/imported/背景19.png-6ba662313911133e3e07dffaa0725527.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景19.webp b/assets/背景图片/背景19.webp deleted file mode 100644 index ac153bb..0000000 Binary files a/assets/背景图片/背景19.webp and /dev/null differ diff --git a/assets/背景图片/背景19.webp.import b/assets/背景图片/背景19.webp.import deleted file mode 100644 index cfc06b3..0000000 --- a/assets/背景图片/背景19.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://def612bag1jij" -path="res://.godot/imported/背景19.webp-e2c3f1f2b235b84d12e6812eabca2810.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景19.webp" -dest_files=["res://.godot/imported/背景19.webp-e2c3f1f2b235b84d12e6812eabca2810.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/背景图片/背景2.png b/assets/背景图片/背景2.png deleted file mode 100644 index 1153515..0000000 Binary files a/assets/背景图片/背景2.png and /dev/null differ diff --git a/assets/背景图片/背景2.png.import b/assets/背景图片/背景2.png.import deleted file mode 100644 index faba3e3..0000000 --- a/assets/背景图片/背景2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bywcwehal3of7" -path="res://.godot/imported/背景2.png-fab19a8c3ea8f151f7c8d9251cbc49df.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景2.png" -dest_files=["res://.godot/imported/背景2.png-fab19a8c3ea8f151f7c8d9251cbc49df.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景2.webp.import b/assets/背景图片/背景2.webp.import index 7076f82..48f5ac4 100644 --- a/assets/背景图片/背景2.webp.import +++ b/assets/背景图片/背景2.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景2.webp-a74936a618c6646cb3346c280a8e967e [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/背景20.png b/assets/背景图片/背景20.png deleted file mode 100644 index cd2b259..0000000 Binary files a/assets/背景图片/背景20.png and /dev/null differ diff --git a/assets/背景图片/背景20.png.import b/assets/背景图片/背景20.png.import deleted file mode 100644 index 367cf68..0000000 --- a/assets/背景图片/背景20.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c6sampxio2abf" -path="res://.godot/imported/背景20.png-458daf7cb7157f293b9dddfc3f27bce6.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景20.png" -dest_files=["res://.godot/imported/背景20.png-458daf7cb7157f293b9dddfc3f27bce6.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景20.webp b/assets/背景图片/背景20.webp deleted file mode 100644 index 751e321..0000000 Binary files a/assets/背景图片/背景20.webp and /dev/null differ diff --git a/assets/背景图片/背景21.png b/assets/背景图片/背景21.png deleted file mode 100644 index b48bdea..0000000 Binary files a/assets/背景图片/背景21.png and /dev/null differ diff --git a/assets/背景图片/背景21.png.import b/assets/背景图片/背景21.png.import deleted file mode 100644 index 9bb33f9..0000000 --- a/assets/背景图片/背景21.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://ygcdrm8np7a6" -path="res://.godot/imported/背景21.png-42d58559cd15efac4b1e9f6306a14d2a.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景21.png" -dest_files=["res://.godot/imported/背景21.png-42d58559cd15efac4b1e9f6306a14d2a.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景21.webp b/assets/背景图片/背景21.webp deleted file mode 100644 index 3f078da..0000000 Binary files a/assets/背景图片/背景21.webp and /dev/null differ diff --git a/assets/背景图片/背景22.png b/assets/背景图片/背景22.png deleted file mode 100644 index 9a148bd..0000000 Binary files a/assets/背景图片/背景22.png and /dev/null differ diff --git a/assets/背景图片/背景22.png.import b/assets/背景图片/背景22.png.import deleted file mode 100644 index 5b6caf5..0000000 --- a/assets/背景图片/背景22.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cgratto8ix24l" -path="res://.godot/imported/背景22.png-98645e48aed85b00ae2976a7b3a877d7.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景22.png" -dest_files=["res://.godot/imported/背景22.png-98645e48aed85b00ae2976a7b3a877d7.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景22.webp b/assets/背景图片/背景22.webp deleted file mode 100644 index 4b8f4d9..0000000 Binary files a/assets/背景图片/背景22.webp and /dev/null differ diff --git a/assets/背景图片/背景22.webp.import b/assets/背景图片/背景22.webp.import deleted file mode 100644 index cb2336f..0000000 --- a/assets/背景图片/背景22.webp.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://daguf715o03ga" -path="res://.godot/imported/背景22.webp-688fdf6afbbef72f13be29731e78709d.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景22.webp" -dest_files=["res://.godot/imported/背景22.webp-688fdf6afbbef72f13be29731e78709d.ctex"] - -[params] - -compress/mode=1 -compress/high_quality=false -compress/lossy_quality=0.01 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/背景图片/背景3.png b/assets/背景图片/背景3.png deleted file mode 100644 index 88ac756..0000000 Binary files a/assets/背景图片/背景3.png and /dev/null differ diff --git a/assets/背景图片/背景3.png.import b/assets/背景图片/背景3.png.import deleted file mode 100644 index 3f87a2e..0000000 --- a/assets/背景图片/背景3.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://crv0glrtn3xh" -path="res://.godot/imported/背景3.png-e633150041372efea4017e4b4b981bfb.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景3.png" -dest_files=["res://.godot/imported/背景3.png-e633150041372efea4017e4b4b981bfb.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景3.webp.import b/assets/背景图片/背景3.webp.import index a619fee..3310ec3 100644 --- a/assets/背景图片/背景3.webp.import +++ b/assets/背景图片/背景3.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景3.webp-f9ad91103d8320a18b48616face5aa08 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/背景4.png b/assets/背景图片/背景4.png deleted file mode 100644 index 730620b..0000000 Binary files a/assets/背景图片/背景4.png and /dev/null differ diff --git a/assets/背景图片/背景4.png.import b/assets/背景图片/背景4.png.import deleted file mode 100644 index 480dace..0000000 --- a/assets/背景图片/背景4.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://d03xwdx8el0cm" -path="res://.godot/imported/背景4.png-b4786361237b604ec9ad1d3c78945aa4.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景4.png" -dest_files=["res://.godot/imported/背景4.png-b4786361237b604ec9ad1d3c78945aa4.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景4.webp.import b/assets/背景图片/背景4.webp.import index 74c0011..13ec0f3 100644 --- a/assets/背景图片/背景4.webp.import +++ b/assets/背景图片/背景4.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景4.webp-deaf45bb183a7136bb209cee53f305d6 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/背景5.png b/assets/背景图片/背景5.png deleted file mode 100644 index 4a3ad08..0000000 Binary files a/assets/背景图片/背景5.png and /dev/null differ diff --git a/assets/背景图片/背景5.png.import b/assets/背景图片/背景5.png.import deleted file mode 100644 index e7a6ccb..0000000 --- a/assets/背景图片/背景5.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://btljv1hugt8v2" -path="res://.godot/imported/背景5.png-c6ce6c759e4e0c4221fc6e0ca74c1532.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景5.png" -dest_files=["res://.godot/imported/背景5.png-c6ce6c759e4e0c4221fc6e0ca74c1532.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景5.webp.import b/assets/背景图片/背景5.webp.import index 21ecfab..9df8a7d 100644 --- a/assets/背景图片/背景5.webp.import +++ b/assets/背景图片/背景5.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景5.webp-b564b0a38bf49f04e394e833eb539617 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/背景6.png b/assets/背景图片/背景6.png deleted file mode 100644 index 417282e..0000000 Binary files a/assets/背景图片/背景6.png and /dev/null differ diff --git a/assets/背景图片/背景6.png.import b/assets/背景图片/背景6.png.import deleted file mode 100644 index 4ecf462..0000000 --- a/assets/背景图片/背景6.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://o6mc4svkip0y" -path="res://.godot/imported/背景6.png-d2e69e5daf35165f19072cb4b5d634d9.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景6.png" -dest_files=["res://.godot/imported/背景6.png-d2e69e5daf35165f19072cb4b5d634d9.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景6.webp.import b/assets/背景图片/背景6.webp.import index 4de97df..de483aa 100644 --- a/assets/背景图片/背景6.webp.import +++ b/assets/背景图片/背景6.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景6.webp-3a8b1e6a897499332022b17fd2188b6e [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/背景7.png b/assets/背景图片/背景7.png deleted file mode 100644 index 66370de..0000000 Binary files a/assets/背景图片/背景7.png and /dev/null differ diff --git a/assets/背景图片/背景7.png.import b/assets/背景图片/背景7.png.import deleted file mode 100644 index 91ae812..0000000 --- a/assets/背景图片/背景7.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c6h7k2xcmnfqs" -path="res://.godot/imported/背景7.png-7486e74174f40de9404d8e31846f28c2.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景7.png" -dest_files=["res://.godot/imported/背景7.png-7486e74174f40de9404d8e31846f28c2.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景7.webp.import b/assets/背景图片/背景7.webp.import index b77e395..eab53e5 100644 --- a/assets/背景图片/背景7.webp.import +++ b/assets/背景图片/背景7.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景7.webp-c35f1479535c222cf80a0738ead8b8c9 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/背景8.png b/assets/背景图片/背景8.png deleted file mode 100644 index b062cd9..0000000 Binary files a/assets/背景图片/背景8.png and /dev/null differ diff --git a/assets/背景图片/背景8.png.import b/assets/背景图片/背景8.png.import deleted file mode 100644 index ce664cb..0000000 --- a/assets/背景图片/背景8.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c778b4iik7gq5" -path="res://.godot/imported/背景8.png-70e387bb9a4178b2f731e279063d0fd5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景8.png" -dest_files=["res://.godot/imported/背景8.png-70e387bb9a4178b2f731e279063d0fd5.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景8.webp.import b/assets/背景图片/背景8.webp.import index 5fda2c6..a1bb039 100644 --- a/assets/背景图片/背景8.webp.import +++ b/assets/背景图片/背景8.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景8.webp-b80d453cd4fcca74037ef89f45d91b4b [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/背景9.png b/assets/背景图片/背景9.png deleted file mode 100644 index f777a90..0000000 Binary files a/assets/背景图片/背景9.png and /dev/null differ diff --git a/assets/背景图片/背景9.png.import b/assets/背景图片/背景9.png.import deleted file mode 100644 index b459c89..0000000 --- a/assets/背景图片/背景9.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dk781f80sd2d2" -path="res://.godot/imported/背景9.png-9e1487186f5736772f1946dea0c171b1.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/背景图片/背景9.png" -dest_files=["res://.godot/imported/背景9.png-9e1487186f5736772f1946dea0c171b1.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/背景图片/背景9.webp.import b/assets/背景图片/背景9.webp.import index d0d15f6..74ec5d4 100644 --- a/assets/背景图片/背景9.webp.import +++ b/assets/背景图片/背景9.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/背景9.webp-ec7c743b6f92adf27bc6f3138f73c084 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/菜单背景1.webp.import b/assets/背景图片/菜单背景1.webp.import index 1702690..d6a81af 100644 --- a/assets/背景图片/菜单背景1.webp.import +++ b/assets/背景图片/菜单背景1.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/菜单背景1.webp-fe64c5ba339ab2d0cad0edb6f1 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/背景图片/菜单背景2.webp.import b/assets/背景图片/菜单背景2.webp.import index 01f6385..18d7fbf 100644 --- a/assets/背景图片/菜单背景2.webp.import +++ b/assets/背景图片/菜单背景2.webp.import @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/菜单背景2.webp-f04af3de4293b3f0816237b511 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/草地图片/草地1.webp b/assets/草地图片/草地1.webp new file mode 100644 index 0000000..fb5c1b3 Binary files /dev/null and b/assets/草地图片/草地1.webp differ diff --git a/assets/草地图片/草地1.webp.import b/assets/草地图片/草地1.webp.import new file mode 100644 index 0000000..397689b --- /dev/null +++ b/assets/草地图片/草地1.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://nci8k65dcm6b" +path="res://.godot/imported/草地1.webp-56747fe239ee0585a4bddbed4472e2a7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/草地图片/草地1.webp" +dest_files=["res://.godot/imported/草地1.webp-56747fe239ee0585a4bddbed4472e2a7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/草地图片/草地10.webp b/assets/草地图片/草地10.webp new file mode 100644 index 0000000..3d9c973 Binary files /dev/null and b/assets/草地图片/草地10.webp differ diff --git a/assets/背景图片/背景13.webp.import b/assets/草地图片/草地10.webp.import similarity index 65% rename from assets/背景图片/背景13.webp.import rename to assets/草地图片/草地10.webp.import index 713e02b..45df9a3 100644 --- a/assets/背景图片/背景13.webp.import +++ b/assets/草地图片/草地10.webp.import @@ -2,20 +2,20 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dhyfcsqj6ur15" -path="res://.godot/imported/背景13.webp-cccee27a9a2a8a01b3fb2267fd29d12f.ctex" +uid="uid://dilipbs0lncpd" +path="res://.godot/imported/草地10.webp-7d82dab56aa6ca1a80168e2c1953183f.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/背景图片/背景13.webp" -dest_files=["res://.godot/imported/背景13.webp-cccee27a9a2a8a01b3fb2267fd29d12f.ctex"] +source_file="res://assets/草地图片/草地10.webp" +dest_files=["res://.godot/imported/草地10.webp-7d82dab56aa6ca1a80168e2c1953183f.ctex"] [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/草地图片/草地2.webp b/assets/草地图片/草地2.webp new file mode 100644 index 0000000..e8d6f3e Binary files /dev/null and b/assets/草地图片/草地2.webp differ diff --git a/assets/草地图片/草地2.webp.import b/assets/草地图片/草地2.webp.import new file mode 100644 index 0000000..49edc3d --- /dev/null +++ b/assets/草地图片/草地2.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bexajtik0y0o7" +path="res://.godot/imported/草地2.webp-16f6558d2a07ede370140ec93abf3c12.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/草地图片/草地2.webp" +dest_files=["res://.godot/imported/草地2.webp-16f6558d2a07ede370140ec93abf3c12.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/草地图片/草地3.webp b/assets/草地图片/草地3.webp new file mode 100644 index 0000000..a1969c8 Binary files /dev/null and b/assets/草地图片/草地3.webp differ diff --git a/assets/草地图片/草地3.webp.import b/assets/草地图片/草地3.webp.import new file mode 100644 index 0000000..e4bd990 --- /dev/null +++ b/assets/草地图片/草地3.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://t2fm4o5a5m87" +path="res://.godot/imported/草地3.webp-1e626885cd31747f78aad7e37797adf6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/草地图片/草地3.webp" +dest_files=["res://.godot/imported/草地3.webp-1e626885cd31747f78aad7e37797adf6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/草地图片/草地4.webp b/assets/草地图片/草地4.webp new file mode 100644 index 0000000..3430ed5 Binary files /dev/null and b/assets/草地图片/草地4.webp differ diff --git a/assets/草地图片/草地4.webp.import b/assets/草地图片/草地4.webp.import new file mode 100644 index 0000000..7821df5 --- /dev/null +++ b/assets/草地图片/草地4.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ix00wnoineqi" +path="res://.godot/imported/草地4.webp-04eb467ee26b2d8d999b2961ddb33a42.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/草地图片/草地4.webp" +dest_files=["res://.godot/imported/草地4.webp-04eb467ee26b2d8d999b2961ddb33a42.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/草地图片/草地5.webp b/assets/草地图片/草地5.webp new file mode 100644 index 0000000..e150ecd Binary files /dev/null and b/assets/草地图片/草地5.webp differ diff --git a/assets/草地图片/草地5.webp.import b/assets/草地图片/草地5.webp.import new file mode 100644 index 0000000..d1e5197 --- /dev/null +++ b/assets/草地图片/草地5.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://v01qpasa4j82" +path="res://.godot/imported/草地5.webp-05b90b473ddee12f5aa147d31c2ea4c2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/草地图片/草地5.webp" +dest_files=["res://.godot/imported/草地5.webp-05b90b473ddee12f5aa147d31c2ea4c2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/草地图片/草地6.webp b/assets/草地图片/草地6.webp new file mode 100644 index 0000000..673078c Binary files /dev/null and b/assets/草地图片/草地6.webp differ diff --git a/assets/草地图片/草地6.webp.import b/assets/草地图片/草地6.webp.import new file mode 100644 index 0000000..1c1e2b1 --- /dev/null +++ b/assets/草地图片/草地6.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1d8dgmjf7ydd" +path="res://.godot/imported/草地6.webp-1d36ad5a9ea376a20948058d3899028f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/草地图片/草地6.webp" +dest_files=["res://.godot/imported/草地6.webp-1d36ad5a9ea376a20948058d3899028f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/草地图片/草地7.webp b/assets/草地图片/草地7.webp new file mode 100644 index 0000000..2888a04 Binary files /dev/null and b/assets/草地图片/草地7.webp differ diff --git a/assets/草地图片/草地7.webp.import b/assets/草地图片/草地7.webp.import new file mode 100644 index 0000000..55a1edb --- /dev/null +++ b/assets/草地图片/草地7.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnc1160m62xmr" +path="res://.godot/imported/草地7.webp-cb3883526968768e59e7c7fb7b1c3c41.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/草地图片/草地7.webp" +dest_files=["res://.godot/imported/草地7.webp-cb3883526968768e59e7c7fb7b1c3c41.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/草地图片/草地8.webp b/assets/草地图片/草地8.webp new file mode 100644 index 0000000..ff76418 Binary files /dev/null and b/assets/草地图片/草地8.webp differ diff --git a/assets/草地图片/草地8.webp.import b/assets/草地图片/草地8.webp.import new file mode 100644 index 0000000..fc932e5 --- /dev/null +++ b/assets/草地图片/草地8.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c03qrxoykv12q" +path="res://.godot/imported/草地8.webp-96775d92b44054b63a17286976c221b8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/草地图片/草地8.webp" +dest_files=["res://.godot/imported/草地8.webp-96775d92b44054b63a17286976c221b8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/草地图片/草地9.webp b/assets/草地图片/草地9.webp new file mode 100644 index 0000000..0d9a07c Binary files /dev/null and b/assets/草地图片/草地9.webp differ diff --git a/assets/草地图片/草地9.webp.import b/assets/草地图片/草地9.webp.import new file mode 100644 index 0000000..05aa47d --- /dev/null +++ b/assets/草地图片/草地9.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bi7bky7hg6gw7" +path="res://.godot/imported/草地9.webp-58d29d08858849e1181d535496c8e831.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/草地图片/草地9.webp" +dest_files=["res://.godot/imported/草地9.webp-58d29d08858849e1181d535496c8e831.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/不死图腾.webp b/assets/道具图片/不死图腾.webp new file mode 100644 index 0000000..5a1a0d6 Binary files /dev/null and b/assets/道具图片/不死图腾.webp differ diff --git a/assets/道具图片/不死图腾.webp.import b/assets/道具图片/不死图腾.webp.import new file mode 100644 index 0000000..0d7cabd --- /dev/null +++ b/assets/道具图片/不死图腾.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8ilksghk6jbo" +path="res://.godot/imported/不死图腾.webp-068f67425b687348f9da7708b49bbf0f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/不死图腾.webp" +dest_files=["res://.godot/imported/不死图腾.webp-068f67425b687348f9da7708b49bbf0f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/全服大喇叭图标.webp b/assets/道具图片/全服大喇叭图标.webp new file mode 100644 index 0000000..accadd1 Binary files /dev/null and b/assets/道具图片/全服大喇叭图标.webp differ diff --git a/assets/道具图片/全服大喇叭图标.webp.import b/assets/道具图片/全服大喇叭图标.webp.import new file mode 100644 index 0000000..16c0cae --- /dev/null +++ b/assets/道具图片/全服大喇叭图标.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddxaxqkovhhfy" +path="res://.godot/imported/全服大喇叭图标.webp-5d57418c507b72f62a45d33f52e9d70c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/全服大喇叭图标.webp" +dest_files=["res://.godot/imported/全服大喇叭图标.webp-5d57418c507b72f62a45d33f52e9d70c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/农家肥.webp b/assets/道具图片/农家肥.webp index 44bdcbb..cc68b5c 100644 Binary files a/assets/道具图片/农家肥.webp and b/assets/道具图片/农家肥.webp differ diff --git a/assets/道具图片/农家肥.webp.import b/assets/道具图片/农家肥.webp.import index 51de333..4e29811 100644 --- a/assets/道具图片/农家肥.webp.import +++ b/assets/道具图片/农家肥.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cwpann1yplfd2" +uid="uid://ddkf5ede6wxjv" path="res://.godot/imported/农家肥.webp-939f989fe9e4e0fad62631afdc2e0f03.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/农家肥.webp-939f989fe9e4e0fad62631afdc2e0f [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/农家肥2.webp b/assets/道具图片/农家肥2.webp index 4dd2c9c..96fe20c 100644 Binary files a/assets/道具图片/农家肥2.webp and b/assets/道具图片/农家肥2.webp differ diff --git a/assets/道具图片/农家肥2.webp.import b/assets/道具图片/农家肥2.webp.import index 77d9497..7570d66 100644 --- a/assets/道具图片/农家肥2.webp.import +++ b/assets/道具图片/农家肥2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dyqwegt2c2i01" +uid="uid://6wvl0utelpk1" path="res://.godot/imported/农家肥2.webp-f90fb90481ae5dd5e74c8bc39c4c5424.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/农家肥2.webp-f90fb90481ae5dd5e74c8bc39c4c5 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/土元素图腾.webp b/assets/道具图片/土元素图腾.webp new file mode 100644 index 0000000..67314ba Binary files /dev/null and b/assets/道具图片/土元素图腾.webp differ diff --git a/assets/道具图片/土元素图腾.webp.import b/assets/道具图片/土元素图腾.webp.import new file mode 100644 index 0000000..0c93829 --- /dev/null +++ b/assets/道具图片/土元素图腾.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmkv3oxar2yuo" +path="res://.godot/imported/土元素图腾.webp-e6dd9cc917bda4c596f8cca2498a3885.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/土元素图腾.webp" +dest_files=["res://.godot/imported/土元素图腾.webp-e6dd9cc917bda4c596f8cca2498a3885.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/大盘鸡肉.webp b/assets/道具图片/大盘鸡肉.webp new file mode 100644 index 0000000..098d84f Binary files /dev/null and b/assets/道具图片/大盘鸡肉.webp differ diff --git a/assets/道具图片/大盘鸡肉.webp.import b/assets/道具图片/大盘鸡肉.webp.import new file mode 100644 index 0000000..281e1eb --- /dev/null +++ b/assets/道具图片/大盘鸡肉.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1mb10dmvgdtd" +path="res://.godot/imported/大盘鸡肉.webp-e40d4ee5e64ecef4a5159dbc31b1746e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/大盘鸡肉.webp" +dest_files=["res://.godot/imported/大盘鸡肉.webp-e40d4ee5e64ecef4a5159dbc31b1746e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/小额经验卡.webp b/assets/道具图片/小额经验卡.webp new file mode 100644 index 0000000..3d6172a Binary files /dev/null and b/assets/道具图片/小额经验卡.webp differ diff --git a/assets/道具图片/小额经验卡.webp.import b/assets/道具图片/小额经验卡.webp.import new file mode 100644 index 0000000..d5aaea1 --- /dev/null +++ b/assets/道具图片/小额经验卡.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1kxn1c2ldhw2" +path="res://.godot/imported/小额经验卡.webp-80a647a86fc26136a0854a0b031c08b2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/小额经验卡.webp" +dest_files=["res://.godot/imported/小额经验卡.webp-80a647a86fc26136a0854a0b031c08b2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/小额金币卡.webp b/assets/道具图片/小额金币卡.webp new file mode 100644 index 0000000..9cba476 Binary files /dev/null and b/assets/道具图片/小额金币卡.webp differ diff --git a/assets/道具图片/小额金币卡.webp.import b/assets/道具图片/小额金币卡.webp.import new file mode 100644 index 0000000..a13849b --- /dev/null +++ b/assets/道具图片/小额金币卡.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqtv5tbn2bqjk" +path="res://.godot/imported/小额金币卡.webp-6cc97e6f55b93c4bc26e5d2608368e87.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/小额金币卡.webp" +dest_files=["res://.godot/imported/小额金币卡.webp-6cc97e6f55b93c4bc26e5d2608368e87.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/援军令牌.webp b/assets/道具图片/援军令牌.webp new file mode 100644 index 0000000..d00e2f7 Binary files /dev/null and b/assets/道具图片/援军令牌.webp differ diff --git a/assets/道具图片/援军令牌.webp.import b/assets/道具图片/援军令牌.webp.import new file mode 100644 index 0000000..340c576 --- /dev/null +++ b/assets/道具图片/援军令牌.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fkvy72ersg44" +path="res://.godot/imported/援军令牌.webp-87c0922e77161d4d3109b58d748a30f7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/援军令牌.webp" +dest_files=["res://.godot/imported/援军令牌.webp-87c0922e77161d4d3109b58d748a30f7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/木元素图腾.webp b/assets/道具图片/木元素图腾.webp new file mode 100644 index 0000000..c5288f6 Binary files /dev/null and b/assets/道具图片/木元素图腾.webp differ diff --git a/assets/道具图片/木元素图腾.webp.import b/assets/道具图片/木元素图腾.webp.import new file mode 100644 index 0000000..5316699 --- /dev/null +++ b/assets/道具图片/木元素图腾.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bk1g1qcixg027" +path="res://.godot/imported/木元素图腾.webp-24b7bb238662ea7a8d23e7c9cdaf2a35.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/木元素图腾.webp" +dest_files=["res://.godot/imported/木元素图腾.webp-24b7bb238662ea7a8d23e7c9cdaf2a35.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/木质水桶.webp b/assets/道具图片/木质水桶.webp index 0c465ad..6a054ef 100644 Binary files a/assets/道具图片/木质水桶.webp and b/assets/道具图片/木质水桶.webp differ diff --git a/assets/道具图片/木质水桶.webp.import b/assets/道具图片/木质水桶.webp.import index b434ab3..e2c65e6 100644 --- a/assets/道具图片/木质水桶.webp.import +++ b/assets/道具图片/木质水桶.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://u0wm8568685f" +uid="uid://ofgrpn3pp3ej" path="res://.godot/imported/木质水桶.webp-37467837294a6a7efb55fc7e7a51bfc2.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/木质水桶.webp-37467837294a6a7efb55fc7e7a5 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/木质水桶2.webp b/assets/道具图片/木质水桶2.webp index 2c0626d..32779e1 100644 Binary files a/assets/道具图片/木质水桶2.webp and b/assets/道具图片/木质水桶2.webp differ diff --git a/assets/道具图片/木质水桶2.webp.import b/assets/道具图片/木质水桶2.webp.import index d115587..e39c955 100644 --- a/assets/道具图片/木质水桶2.webp.import +++ b/assets/道具图片/木质水桶2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://n14lj3io7aa8" +uid="uid://blx2nushhypko" path="res://.godot/imported/木质水桶2.webp-a2f9258dedacd6eec1a129fbbf086c46.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/木质水桶2.webp-a2f9258dedacd6eec1a129fbbf [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/杀虫剂.webp b/assets/道具图片/杀虫剂.webp index 5baf893..6c91e63 100644 Binary files a/assets/道具图片/杀虫剂.webp and b/assets/道具图片/杀虫剂.webp differ diff --git a/assets/道具图片/杀虫剂.webp.import b/assets/道具图片/杀虫剂.webp.import index 654e21e..bd62a68 100644 --- a/assets/道具图片/杀虫剂.webp.import +++ b/assets/道具图片/杀虫剂.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bx6oj6dfapq20" +uid="uid://fx3yvtqkf78g" path="res://.godot/imported/杀虫剂.webp-c3de642ace13071303366e684084fa07.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/杀虫剂.webp-c3de642ace13071303366e684084fa [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/水元素图腾.webp b/assets/道具图片/水元素图腾.webp new file mode 100644 index 0000000..90bdc6d Binary files /dev/null and b/assets/道具图片/水元素图腾.webp differ diff --git a/assets/道具图片/水元素图腾.webp.import b/assets/道具图片/水元素图腾.webp.import new file mode 100644 index 0000000..d04ab5e --- /dev/null +++ b/assets/道具图片/水元素图腾.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://db47n70itynks" +path="res://.godot/imported/水元素图腾.webp-91bdaa7117be4284b3fe526cf1b78f1f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/水元素图腾.webp" +dest_files=["res://.godot/imported/水元素图腾.webp-91bdaa7117be4284b3fe526cf1b78f1f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/火元素图腾.webp b/assets/道具图片/火元素图腾.webp new file mode 100644 index 0000000..0d79c76 Binary files /dev/null and b/assets/道具图片/火元素图腾.webp differ diff --git a/assets/道具图片/火元素图腾.webp.import b/assets/道具图片/火元素图腾.webp.import new file mode 100644 index 0000000..493946c --- /dev/null +++ b/assets/道具图片/火元素图腾.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhyo0oja8ji40" +path="res://.godot/imported/火元素图腾.webp-3f0441334aaed95bc8244c529dcfccb0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/火元素图腾.webp" +dest_files=["res://.godot/imported/火元素图腾.webp-3f0441334aaed95bc8244c529dcfccb0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/狂暴药水.webp b/assets/道具图片/狂暴药水.webp new file mode 100644 index 0000000..731b647 Binary files /dev/null and b/assets/道具图片/狂暴药水.webp differ diff --git a/assets/道具图片/狂暴药水.webp.import b/assets/道具图片/狂暴药水.webp.import new file mode 100644 index 0000000..d7ec6e1 --- /dev/null +++ b/assets/道具图片/狂暴药水.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsmvpujujtdka" +path="res://.godot/imported/狂暴药水.webp-8c98bddc33994a211eaa5856760646f0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/狂暴药水.webp" +dest_files=["res://.godot/imported/狂暴药水.webp-8c98bddc33994a211eaa5856760646f0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/生长素.webp b/assets/道具图片/生长素.webp index e64ecc3..208060c 100644 Binary files a/assets/道具图片/生长素.webp and b/assets/道具图片/生长素.webp differ diff --git a/assets/道具图片/生长素.webp.import b/assets/道具图片/生长素.webp.import index cb2ca28..0714638 100644 --- a/assets/道具图片/生长素.webp.import +++ b/assets/道具图片/生长素.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://0alwi1tfavcu" +uid="uid://corgp6qwot02g" path="res://.godot/imported/生长素.webp-e00959ebe73e73e70d5adc13cba2aa45.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/生长素.webp-e00959ebe73e73e70d5adc13cba2aa [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/紫水晶镰刀.webp b/assets/道具图片/紫水晶镰刀.webp index afea765..1e89911 100644 Binary files a/assets/道具图片/紫水晶镰刀.webp and b/assets/道具图片/紫水晶镰刀.webp differ diff --git a/assets/道具图片/紫水晶镰刀.webp.import b/assets/道具图片/紫水晶镰刀.webp.import index 3f8f370..4a609f3 100644 --- a/assets/道具图片/紫水晶镰刀.webp.import +++ b/assets/道具图片/紫水晶镰刀.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bad7n5hci8jqo" +uid="uid://b1qtbic3vp8a1" path="res://.godot/imported/紫水晶镰刀.webp-22e26778c3aff4cb838439b7b16b3cb6.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/紫水晶镰刀.webp-22e26778c3aff4cb838439b7 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/红宝石镰刀.webp b/assets/道具图片/红宝石镰刀.webp index 81d9e51..7fd67d8 100644 Binary files a/assets/道具图片/红宝石镰刀.webp and b/assets/道具图片/红宝石镰刀.webp differ diff --git a/assets/道具图片/红宝石镰刀.webp.import b/assets/道具图片/红宝石镰刀.webp.import index 3029dfa..ad0f604 100644 --- a/assets/道具图片/红宝石镰刀.webp.import +++ b/assets/道具图片/红宝石镰刀.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cfjp42k4iv006" +uid="uid://c0s3v0opke0as" path="res://.godot/imported/红宝石镰刀.webp-dd5dd53017cec46004b27eb970ed7011.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/红宝石镰刀.webp-dd5dd53017cec46004b27eb9 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/绿宝石铲.webp b/assets/道具图片/绿宝石铲.webp index 4405bc8..ffcc553 100644 Binary files a/assets/道具图片/绿宝石铲.webp and b/assets/道具图片/绿宝石铲.webp differ diff --git a/assets/道具图片/绿宝石铲.webp.import b/assets/道具图片/绿宝石铲.webp.import index 12e2178..3de4f8c 100644 --- a/assets/道具图片/绿宝石铲.webp.import +++ b/assets/道具图片/绿宝石铲.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://ckvcv5diuds8a" +uid="uid://c6m52m4vcflx0" path="res://.godot/imported/绿宝石铲.webp-0b7cce6da40942cfa25f17cf8e92f26a.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/绿宝石铲.webp-0b7cce6da40942cfa25f17cf8e9 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/绿宝石铲2.webp b/assets/道具图片/绿宝石铲2.webp index 551f36c..7640369 100644 Binary files a/assets/道具图片/绿宝石铲2.webp and b/assets/道具图片/绿宝石铲2.webp differ diff --git a/assets/道具图片/绿宝石铲2.webp.import b/assets/道具图片/绿宝石铲2.webp.import index 1d5eaac..dfcf4bf 100644 --- a/assets/道具图片/绿宝石铲2.webp.import +++ b/assets/道具图片/绿宝石铲2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://druswgsd768hj" +uid="uid://3po1mihuhr54" path="res://.godot/imported/绿宝石铲2.webp-1b53955cdefeb33f5dbf0a116077a148.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/绿宝石铲2.webp-1b53955cdefeb33f5dbf0a1160 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/绿宝石镐.webp b/assets/道具图片/绿宝石镐.webp index c6626f2..27d0001 100644 Binary files a/assets/道具图片/绿宝石镐.webp and b/assets/道具图片/绿宝石镐.webp differ diff --git a/assets/道具图片/绿宝石镐.webp.import b/assets/道具图片/绿宝石镐.webp.import index 69f3424..3269255 100644 --- a/assets/道具图片/绿宝石镐.webp.import +++ b/assets/道具图片/绿宝石镐.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cogahaa3sa51y" +uid="uid://b5qf1ucrqil1v" path="res://.godot/imported/绿宝石镐.webp-39bc6e2bc3f19924b445fdd322e9718d.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/绿宝石镐.webp-39bc6e2bc3f19924b445fdd322e [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/荆棘护甲.webp b/assets/道具图片/荆棘护甲.webp new file mode 100644 index 0000000..ebb41dc Binary files /dev/null and b/assets/道具图片/荆棘护甲.webp differ diff --git a/assets/道具图片/荆棘护甲.webp.import b/assets/道具图片/荆棘护甲.webp.import new file mode 100644 index 0000000..d2417e0 --- /dev/null +++ b/assets/道具图片/荆棘护甲.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://f2jmrrl1xict" +path="res://.godot/imported/荆棘护甲.webp-45d98af9be540c88de21fe0278bc05bc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/荆棘护甲.webp" +dest_files=["res://.godot/imported/荆棘护甲.webp-45d98af9be540c88de21fe0278bc05bc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/金元素图腾.webp b/assets/道具图片/金元素图腾.webp new file mode 100644 index 0000000..ad4b249 Binary files /dev/null and b/assets/道具图片/金元素图腾.webp differ diff --git a/assets/道具图片/金元素图腾.webp.import b/assets/道具图片/金元素图腾.webp.import new file mode 100644 index 0000000..73b5176 --- /dev/null +++ b/assets/道具图片/金元素图腾.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpquc41mtm7uy" +path="res://.godot/imported/金元素图腾.webp-4268b759502ed39a780e8f2cec42771b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/道具图片/金元素图腾.webp" +dest_files=["res://.godot/imported/金元素图腾.webp-4268b759502ed39a780e8f2cec42771b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.01 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/assets/道具图片/金坷垃1.webp b/assets/道具图片/金坷垃1.webp index b68f8f7..29d79d1 100644 Binary files a/assets/道具图片/金坷垃1.webp and b/assets/道具图片/金坷垃1.webp differ diff --git a/assets/道具图片/金坷垃1.webp.import b/assets/道具图片/金坷垃1.webp.import index f66aa95..9d877c0 100644 --- a/assets/道具图片/金坷垃1.webp.import +++ b/assets/道具图片/金坷垃1.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bllbaf12tocy7" +uid="uid://yubyo1k5t1gg" path="res://.godot/imported/金坷垃1.webp-93ec88923255160926341466e7d5cace.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/金坷垃1.webp-93ec88923255160926341466e7d5c [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/金坷垃2.webp b/assets/道具图片/金坷垃2.webp index c330b78..97726ca 100644 Binary files a/assets/道具图片/金坷垃2.webp and b/assets/道具图片/金坷垃2.webp differ diff --git a/assets/道具图片/金坷垃2.webp.import b/assets/道具图片/金坷垃2.webp.import index 0d71df2..fcb7af7 100644 --- a/assets/道具图片/金坷垃2.webp.import +++ b/assets/道具图片/金坷垃2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://blkh1gpdi7j6n" +uid="uid://daxqc5wu2weo8" path="res://.godot/imported/金坷垃2.webp-8238e0170dae3b98c75448cb45013d98.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/金坷垃2.webp-8238e0170dae3b98c75448cb45013 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/金坷垃3.webp b/assets/道具图片/金坷垃3.webp index e6f95f5..6590407 100644 Binary files a/assets/道具图片/金坷垃3.webp and b/assets/道具图片/金坷垃3.webp differ diff --git a/assets/道具图片/金坷垃3.webp.import b/assets/道具图片/金坷垃3.webp.import index 5bcd8f1..8ef27ac 100644 --- a/assets/道具图片/金坷垃3.webp.import +++ b/assets/道具图片/金坷垃3.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bhgjlqicdmgy8" +uid="uid://dl1hjhmntjrao" path="res://.godot/imported/金坷垃3.webp-3f190e35ad56f2796a1312b3d27fad6c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/金坷垃3.webp-3f190e35ad56f2796a1312b3d27fa [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/金水壶.webp b/assets/道具图片/金水壶.webp index a037015..3e1d32c 100644 Binary files a/assets/道具图片/金水壶.webp and b/assets/道具图片/金水壶.webp differ diff --git a/assets/道具图片/金水壶.webp.import b/assets/道具图片/金水壶.webp.import index bf81542..ca6f3ce 100644 --- a/assets/道具图片/金水壶.webp.import +++ b/assets/道具图片/金水壶.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c4qrvpfmjk8j2" +uid="uid://dglwq4q7s8xk6" path="res://.godot/imported/金水壶.webp-6ee8fa9d74ca6fde3b3650131c82b956.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/金水壶.webp-6ee8fa9d74ca6fde3b3650131c82b9 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/金洒水壶2.webp b/assets/道具图片/金洒水壶2.webp index ec9a35e..f5be4ac 100644 Binary files a/assets/道具图片/金洒水壶2.webp and b/assets/道具图片/金洒水壶2.webp differ diff --git a/assets/道具图片/金洒水壶2.webp.import b/assets/道具图片/金洒水壶2.webp.import index a74ed86..3483ca0 100644 --- a/assets/道具图片/金洒水壶2.webp.import +++ b/assets/道具图片/金洒水壶2.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dr5i77vn3f606" +uid="uid://xbmtgvub686t" path="res://.godot/imported/金洒水壶2.webp-03c26daad6d6173737353a5f7038144c.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/金洒水壶2.webp-03c26daad6d6173737353a5f70 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/金镐.webp b/assets/道具图片/金镐.webp index 3edf0f1..fad11bb 100644 Binary files a/assets/道具图片/金镐.webp and b/assets/道具图片/金镐.webp differ diff --git a/assets/道具图片/金镐.webp.import b/assets/道具图片/金镐.webp.import index 4fe1f37..0b1653a 100644 --- a/assets/道具图片/金镐.webp.import +++ b/assets/道具图片/金镐.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://b6m7gnttb5lrm" +uid="uid://cvfvkw2xtx53s" path="res://.godot/imported/金镐.webp-1f7a25440ab4192d1d412cc12d077be9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/金镐.webp-1f7a25440ab4192d1d412cc12d077be9. [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/铁质洒水壶.webp b/assets/道具图片/铁质洒水壶.webp index f13d6ad..18e652d 100644 Binary files a/assets/道具图片/铁质洒水壶.webp and b/assets/道具图片/铁质洒水壶.webp differ diff --git a/assets/道具图片/铁质洒水壶.webp.import b/assets/道具图片/铁质洒水壶.webp.import index 239ff33..f9af3d1 100644 --- a/assets/道具图片/铁质洒水壶.webp.import +++ b/assets/道具图片/铁质洒水壶.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cjt0hhngk0gpr" +uid="uid://cb0q1k8fn3w2f" path="res://.godot/imported/铁质洒水壶.webp-767add1eca876153bdcfdcd8f48189c4.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/铁质洒水壶.webp-767add1eca876153bdcfdcd8 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/铁质镰刀.webp b/assets/道具图片/铁质镰刀.webp index 78203d7..3fe36c5 100644 Binary files a/assets/道具图片/铁质镰刀.webp and b/assets/道具图片/铁质镰刀.webp differ diff --git a/assets/道具图片/铁质镰刀.webp.import b/assets/道具图片/铁质镰刀.webp.import index 53158ba..e78fc9e 100644 --- a/assets/道具图片/铁质镰刀.webp.import +++ b/assets/道具图片/铁质镰刀.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cspnvet4pf6ws" +uid="uid://coi1rd38icoq2" path="res://.godot/imported/铁质镰刀.webp-f2529479b44deb93cbc76d545c0b27aa.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/铁质镰刀.webp-f2529479b44deb93cbc76d545c0 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/附魔手套.webp b/assets/道具图片/附魔手套.webp index 5fe265a..201963c 100644 Binary files a/assets/道具图片/附魔手套.webp and b/assets/道具图片/附魔手套.webp differ diff --git a/assets/道具图片/附魔手套.webp.import b/assets/道具图片/附魔手套.webp.import index 95cacc7..934a33b 100644 --- a/assets/道具图片/附魔手套.webp.import +++ b/assets/道具图片/附魔手套.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://chk0gemc64nv3" +uid="uid://b2ru62b46olyn" path="res://.godot/imported/附魔手套.webp-7e6ca21d1f96ee55393cc658d6066824.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/附魔手套.webp-7e6ca21d1f96ee55393cc658d60 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/附魔铁铲.webp b/assets/道具图片/附魔铁铲.webp index 0d7014f..09a63cb 100644 Binary files a/assets/道具图片/附魔铁铲.webp and b/assets/道具图片/附魔铁铲.webp differ diff --git a/assets/道具图片/附魔铁铲.webp.import b/assets/道具图片/附魔铁铲.webp.import index 3153e04..aa4ac8c 100644 --- a/assets/道具图片/附魔铁铲.webp.import +++ b/assets/道具图片/附魔铁铲.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bbomu2xef7c67" +uid="uid://djefd5ncuefs5" path="res://.godot/imported/附魔铁铲.webp-c2325cdca0fd200f8c0e96ae2a45d3b9.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/附魔铁铲.webp-c2325cdca0fd200f8c0e96ae2a4 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/除草剂.webp b/assets/道具图片/除草剂.webp index 63dc3f7..27aac96 100644 Binary files a/assets/道具图片/除草剂.webp and b/assets/道具图片/除草剂.webp differ diff --git a/assets/道具图片/除草剂.webp.import b/assets/道具图片/除草剂.webp.import index 1650809..ea407c8 100644 --- a/assets/道具图片/除草剂.webp.import +++ b/assets/道具图片/除草剂.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bevf66utdh4o4" +uid="uid://bug10nvj5d7kg" path="res://.godot/imported/除草剂.webp-e2f0bcdf8540efec681997414f3f2cdc.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/除草剂.webp-e2f0bcdf8540efec681997414f3f2c [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/assets/道具图片/默认道具.webp b/assets/道具图片/默认道具.webp index b4a8eb6..d444b46 100644 Binary files a/assets/道具图片/默认道具.webp and b/assets/道具图片/默认道具.webp differ diff --git a/assets/道具图片/默认道具.webp.import b/assets/道具图片/默认道具.webp.import index 18e7b8b..ea05126 100644 --- a/assets/道具图片/默认道具.webp.import +++ b/assets/道具图片/默认道具.webp.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c6pc8lw5c2x33" +uid="uid://dtmq75p6h2o0e" path="res://.godot/imported/默认道具.webp-a94ffde892492016add64c47d408bd3e.ctex" metadata={ "vram_texture": false @@ -15,7 +15,7 @@ dest_files=["res://.godot/imported/默认道具.webp-a94ffde892492016add64c47d40 [params] -compress/mode=1 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.01 compress/hdr_compression=1 diff --git a/background.gd b/background.gd index 6077ec3..8942825 100644 --- a/background.gd +++ b/background.gd @@ -11,19 +11,7 @@ var backgrounds :Array = [ "res://assets/背景图片/背景7.webp", "res://assets/背景图片/背景8.webp", "res://assets/背景图片/背景9.webp", - "res://assets/背景图片/背景10.webp", - "res://assets/背景图片/背景11.webp", - "res://assets/背景图片/背景12.webp", - "res://assets/背景图片/背景13.webp", - "res://assets/背景图片/背景14.webp", - "res://assets/背景图片/背景15.webp", - "res://assets/背景图片/背景16.webp", - "res://assets/背景图片/背景17.webp", - "res://assets/背景图片/背景18.webp", - "res://assets/背景图片/背景19.webp", - "res://assets/背景图片/背景20.webp", - "res://assets/背景图片/背景21.webp", - "res://assets/背景图片/背景22.webp" + "res://assets/背景图片/背景10.webp" ] # 当前显示的背景索引 diff --git a/game_camera.gd b/game_camera.gd index 43d490c..bbfca6a 100644 --- a/game_camera.gd +++ b/game_camera.gd @@ -15,7 +15,7 @@ extends Camera2D @export var bounds_min: Vector2 = Vector2(-1000, -1000) @export var bounds_max: Vector2 = Vector2(1000, 1000) -var current_zoom_level: float = 1.0 +var current_zoom_level: float = 2 # 触摸相关变量 var is_dragging: bool = false @@ -30,6 +30,9 @@ func _ready(): func _process(delta): + if GlobalVariables.isZoomDisabled == true: + return + # 处理相机移动 var input_dir = Vector2.ZERO @@ -63,6 +66,10 @@ func _process(delta): # 处理输入事件(包括触摸和鼠标) func _input(event): + if GlobalVariables.isZoomDisabled == true: + return + pass + # 鼠标滚轮缩放 if event is InputEventMouseButton: if event.button_index == MOUSE_BUTTON_WHEEL_DOWN: diff --git a/project.godot b/project.godot index b63fd0e..ccfc166 100644 --- a/project.godot +++ b/project.godot @@ -55,7 +55,6 @@ folder_colors={ texture={ &"compress/lossy_quality": 0.01, -&"compress/mode": 1, &"detect_3d/compress_to": 0, &"mipmaps/generate": true } @@ -75,6 +74,7 @@ ui_load={ [rendering] +textures/canvas_textures/default_texture_filter=0 renderer/rendering_method="mobile" textures/vram_compression/import_etc2_astc=true textures/webp_compression/compression_method=3 diff --git a/server/game_saves/3205788256.json b/server/game_saves/3205788256.json index 8bc0d3c..5ae883e 100644 --- a/server/game_saves/3205788256.json +++ b/server/game_saves/3205788256.json @@ -1,20 +1,8 @@ { "farm_lots": [ { - "crop_type": "辣椒", - "grow_time": 660, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1750941703.97167 - }, - { - "crop_type": "辣椒", - "grow_time": 740, + "crop_type": "生菜", + "grow_time": 650, "is_dead": false, "is_diged": true, "is_planted": true, @@ -24,23 +12,8 @@ "土地等级": 4 }, { - "crop_type": "辣椒", - "grow_time": 690, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1750941712.5249715, - "施肥类型": "生长素", - "施肥倍数": 3.0, - "施肥持续时间": 600 - }, - { - "crop_type": "辣椒", - "grow_time": 660, + "crop_type": "生菜", + "grow_time": 650, "is_dead": false, "is_diged": true, "is_planted": true, @@ -50,30 +23,8 @@ "土地等级": 4 }, { - "crop_type": "野草1", - "grow_time": 10, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "野草1", - "grow_time": 10, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "辣椒", - "grow_time": 660, + "crop_type": "生菜", + "grow_time": 650, "is_dead": false, "is_diged": true, "is_planted": true, @@ -83,8 +34,8 @@ "土地等级": 4 }, { - "crop_type": "辣椒", - "grow_time": 660, + "crop_type": "生菜", + "grow_time": 650, "is_dead": false, "is_diged": true, "is_planted": true, @@ -94,853 +45,176 @@ "土地等级": 4 }, { - "crop_type": "", - "grow_time": 0, + "crop_type": "山楂", + "grow_time": 1085, "is_dead": false, "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749282770.1309266 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749282775.8268695, - "施肥类型": "生长素", - "施肥倍数": 3.0, - "施肥持续时间": 600 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 720, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "施肥类型": "金坷垃", - "施肥倍数": 5.0, - "施肥持续时间": 300 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "施肥类型": "农家肥", - "施肥倍数": 2.0, - "施肥持续时间": 1800 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1751003939.982712 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 9600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, + "is_planted": true, "max_grow_time": 1080, "已浇水": false, "已施肥": false, - "土地等级": 4, - "浇水时间": 1749981581.0701528 + "土地等级": 0 }, { - "crop_type": "", - "grow_time": 0, + "crop_type": "山楂", + "grow_time": 1085, "is_dead": false, "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749981579.340645 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 720, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749981577.9899538 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 720, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749981575.3987803 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749981582.565002 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 240, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749981583.5566695 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749993714.7086222 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 720, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749981585.0290024 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 720, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749981586.284726 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, + "is_planted": true, "max_grow_time": 1080, "已浇水": false, "已施肥": false, - "土地等级": 4 + "土地等级": 0 }, { - "crop_type": "", - "grow_time": 0, + "crop_type": "山楂", + "grow_time": 1084, "is_dead": false, "is_diged": true, - "is_planted": false, + "is_planted": true, "max_grow_time": 1080, "已浇水": false, "已施肥": false, - "土地等级": 4 + "土地等级": 0 }, { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4, - "浇水时间": 1749383079.5425293 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "杂草2", - "grow_time": 10, + "crop_type": "山楂", + "grow_time": 1084, "is_dead": false, "is_diged": true, "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "杂草1", - "grow_time": 8, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "野草2", - "grow_time": 8, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "杂草2", - "grow_time": 8, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "杂草1", - "grow_time": 8, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "野草2", - "grow_time": 8, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "杂草1", - "grow_time": 8, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "杂草2", - "grow_time": 8, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "野草2", - "grow_time": 8, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "野草2", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "野草1", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "杂草2", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "野草1", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "野草2", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "野草2", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "野草2", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "杂草1", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "野草1", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "野草1", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "杂草1", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "杂草1", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "野草1", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "野草2", - "grow_time": 6, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 14400, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 8400, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 10800, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 18000, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 240, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 240, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 1320, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, "max_grow_time": 1080, "已浇水": false, "已施肥": false, - "土地等级": 0, - "施肥类型": "金坷垃", - "施肥倍数": 5.0, - "施肥持续时间": 300 + "土地等级": 0 }, { - "crop_type": "", - "grow_time": 0, + "crop_type": "山楂", + "grow_time": 1084, "is_dead": false, "is_diged": true, - "is_planted": false, + "is_planted": true, "max_grow_time": 1080, "已浇水": false, "已施肥": false, - "土地等级": 0, - "施肥类型": "生长素", - "施肥倍数": 3.0, - "施肥持续时间": 600 + "土地等级": 0 }, { - "crop_type": "", - "grow_time": 0, + "crop_type": "山楂", + "grow_time": 1084, "is_dead": false, "is_diged": true, - "is_planted": false, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1083, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1083, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1083, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1083, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1082, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1082, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1082, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1082, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1081, + "is_dead": false, + "is_diged": true, + "is_planted": true, + "max_grow_time": 1080, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "山楂", + "grow_time": 1081, + "is_dead": false, + "is_diged": true, + "is_planted": true, "max_grow_time": 1080, "已浇水": false, "已施肥": false, @@ -950,20 +224,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 1080, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 1080, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -972,9 +235,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 1080, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -983,9 +246,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 1080, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -994,9 +257,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 1080, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1005,9 +268,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 600, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1016,9 +279,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 240, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1027,9 +290,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 720, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1038,9 +301,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 240, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1049,9 +312,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 18000, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1060,9 +323,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 300, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1071,9 +334,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 600, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1082,9 +345,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 12000, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1093,9 +356,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 600, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1104,9 +367,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 900, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1115,9 +378,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 2520, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1126,9 +389,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 300, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1137,9 +400,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 900, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1148,9 +411,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 240, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1159,9 +422,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 300, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1170,9 +433,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 300, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1181,9 +444,9 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 600, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 @@ -1192,22 +455,98 @@ "crop_type": "", "grow_time": 0, "is_dead": false, - "is_diged": true, + "is_diged": false, "is_planted": false, - "max_grow_time": 240, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, + "已浇水": false, + "已施肥": false, + "土地等级": 0 + }, + { + "crop_type": "", + "grow_time": 0, + "is_dead": false, + "is_diged": false, + "is_planted": false, + "max_grow_time": 5, "已浇水": false, "已施肥": false, "土地等级": 0 } ], - "player_bag": [], - "experience": 1597, + "player_bag": [ + { + "name": "山楂", + "quality": "优良", + "count": 977 + }, + { + "name": "生菜", + "quality": "普通", + "count": 6 + }, + { + "name": "桃子", + "quality": "优良", + "count": 6 + }, + { + "name": "杂交树2", + "quality": "传奇", + "count": 2 + } + ], + "experience": 4763, "farm_name": "树萌芽の狗窝", "player_name": "树萌芽", "level": 61, - "money": 615398172872, - "last_login_time": "2025年06月27日14时40分33秒", - "total_login_time": "144时10分23秒", + "money": 615397779752, + "last_login_time": "2025年07月09日17时14分04秒", + "total_login_time": "160时30分33秒", "user_name": "3205788256", "user_password": "tyh@19900420", "last_water_reset_date": "2025-06-06", @@ -1226,7 +565,8 @@ }, "seeds": { "芦笋": 2, - "测试作物": 8 + "测试作物": 8, + "龙果": 9999 }, "last_check_in_date": "2025-06-01", "check_in_count": 1, @@ -1736,8 +1076,8 @@ ], "total_likes": 1, "体力值": 20, - "体力上次刷新时间": "2025-06-27", - "体力上次恢复时间": 1750993973.8191202, + "体力上次刷新时间": "2025-07-09", + "体力上次恢复时间": 1752051316.4890897, "new_player_gift_claimed": true, "new_player_gift_time": "2025-06-08 19:22:41", "session_start_time": 1749878790.288913, @@ -1801,6 +1141,68 @@ "start_time": 1750993973.8192315, "claimed_gifts": {}, "total_online_time": 7170.0 + }, + "2025-06-28": { + "start_time": 1751093256.0338128, + "claimed_gifts": {}, + "total_online_time": 2847.0 + }, + "2025-06-29": { + "start_time": 1751193607.6517036, + "claimed_gifts": {}, + "total_online_time": 467.0, + "last_login_time": 1751207557.543835 + }, + "2025-06-30": { + "start_time": 1751213643.126199, + "claimed_gifts": {}, + "total_online_time": 3939.0, + "last_login_time": 1751260873.454821 + }, + "2025-07-01": { + "start_time": 1751357093.0563874, + "claimed_gifts": {}, + "total_online_time": 2665.0 + }, + "2025-07-02": { + "start_time": 1751386053.3238037, + "claimed_gifts": {}, + "total_online_time": 2410.0 + }, + "2025-07-03": { + "start_time": 1751525631.9076009, + "claimed_gifts": {}, + "total_online_time": 195.0 + }, + "2025-07-04": { + "start_time": 1751633335.1202183, + "claimed_gifts": {}, + "total_online_time": 18.0 + }, + "2025-07-05": { + "start_time": 1751678133.0375116, + "claimed_gifts": {}, + "total_online_time": 4309.0 + }, + "2025-07-06": { + "start_time": 1751765706.2394679, + "claimed_gifts": {}, + "total_online_time": 3933.0 + }, + "2025-07-07": { + "start_time": 1751817898.7042572, + "claimed_gifts": {}, + "total_online_time": 37229.0 + }, + "2025-07-08": { + "start_time": 1751938901.7367072, + "claimed_gifts": {}, + "total_online_time": 673.0 + }, + "2025-07-09": { + "start_time": 1752051316.4895062, + "claimed_gifts": {}, + "total_online_time": 125.0 } }, "个人简介": "人生啊,就这样吧", @@ -1839,7 +1241,7 @@ { "name": "杂交树1", "quality": "传奇", - "count": 44 + "count": 47 }, { "name": "藏红花", @@ -1879,7 +1281,7 @@ { "name": "胡萝卜", "quality": "普通", - "count": 79 + "count": 163 }, { "name": "土豆", @@ -1949,7 +1351,7 @@ { "name": "杂交树2", "quality": "传奇", - "count": 33 + "count": 34 }, { "name": "苹果", @@ -1959,13 +1361,442 @@ { "name": "辣椒", "quality": "普通", - "count": 49 + "count": 67 + }, + { + "name": "大蒜", + "quality": "普通", + "count": 15 + }, + { + "name": "生菜", + "quality": "普通", + "count": 8 + }, + { + "name": "富贵竹", + "quality": "传奇", + "count": 4 + }, + { + "name": "栀子花", + "quality": "稀有", + "count": 22 + }, + { + "name": "凤凰木", + "quality": "传奇", + "count": 5 + }, + { + "name": "桃子", + "quality": "优良", + "count": 17 } ], "道具背包": [ { "name": "水桶", "count": 1 + }, + { + "name": "生长素", + "count": 1002 + }, + { + "name": "铲子", + "count": 2 + }, + { + "name": "时运-镰刀", + "count": 1000 + }, + { + "name": "荆棘护甲", + "count": 1 + }, + { + "name": "狂暴药水", + "count": 1 + }, + { + "name": "援军令牌", + "count": 1 + }, + { + "name": "金刚图腾", + "count": 1 + }, + { + "name": "灵木图腾", + "count": 1 + }, + { + "name": "敦岩图腾", + "count": 1 } - ] + ], + "宠物背包": [ + { + "场景路径": "res://Scene/Pet/SmallGreen.tscn", + "基本信息": { + "宠物主人": "3205788256", + "宠物名称": "萌芽小绿", + "队伍标识": "team1", + "宠物ID": "1751682842035", + "宠物类型": "小绿", + "生日": "2025年7月5日10时34分2秒", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + "等级经验": { + "宠物等级": 4, + "当前经验": 26.0, + "最大经验": 172.8, + "亲密度": 204.0, + "最大亲密度": 1000.0 + }, + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + "生命与防御": { + "最大生命值": 331.0, + "当前生命值": 331.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 133.10000000000005, + "当前护甲值": 133.10000000000005 + }, + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 399.30000000000007, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + "穿透属性": { + "穿透数量": 3 + }, + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + "元素属性": { + "元素类型": "FIRE", + "元素克制额外伤害": 100.0 + }, + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": true, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": true, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + "品质系统": { + "宠物品质": "COMMON" + } + }, + { + "场景路径": "res://Scene/Pet/BigBeetle.tscn", + "基本信息": { + "宠物主人": "3205788256", + "宠物名称": "树萌芽の大甲虫", + "队伍标识": "team1", + "宠物ID": "1751695044465", + "宠物类型": "大甲虫", + "生日": "2025年7月5日13时57分24秒", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + "等级经验": { + "宠物等级": 2, + "当前经验": 30.0, + "最大经验": 120.0, + "亲密度": 68.0, + "最大亲密度": 1000.0 + }, + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + "生命与防御": { + "最大生命值": 220.00000000000003, + "当前生命值": 220.00000000000003, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 110.00000000000001, + "当前护甲值": 110.00000000000001 + }, + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 27.500000000000004, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + "穿透属性": { + "穿透数量": 3 + }, + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + "元素属性": { + "元素类型": "WATER", + "元素克制额外伤害": 100.0 + }, + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + "品质系统": { + "宠物品质": "COMMON" + } + }, + { + "场景路径": "res://Scene/Pet/SmallBeetle.tscn", + "基本信息": { + "宠物主人": "3205788256", + "宠物名称": "3205788256的小甲虫", + "队伍标识": "team1", + "宠物ID": "1751765851860", + "宠物类型": "小甲虫", + "生日": "2025年7月6日9时37分31秒", + "年龄": 0, + "性格": "活泼", + "简介": "", + "爱好": "" + }, + "等级经验": { + "宠物等级": 1, + "当前经验": 0.0, + "最大经验": 100.0, + "亲密度": 0.0, + "最大亲密度": 1000.0 + }, + "购买信息": { + "能否购买": true, + "购买价格": 1000, + "出售价格": 500 + }, + "生命与防御": { + "最大生命值": 200.0, + "当前生命值": 200.0, + "生命恢复速度": 1.0, + "最大护盾值": 0.0, + "当前护盾值": 0.0, + "护盾恢复速度": 0.0, + "最大护甲值": 100.0, + "当前护甲值": 100.0 + }, + "基础攻击属性": { + "攻击类型": "MELEE", + "基础攻击伤害": 25.0, + "攻击距离": 100.0, + "暴击率": 0.1, + "暴击伤害倍数": 1.5, + "生命汲取": 0.1, + "护甲穿透": 0.0 + }, + "近战攻击": { + "近战额外伤害": 0.0, + "近战攻击速度": 1.0 + }, + "远程攻击": { + "远程额外伤害": 0.0, + "远程攻击速度": 1.0, + "远程攻击模式": "SINGLE", + "子弹速度": 300.0 + }, + "散弹攻击": { + "散弹数量": 5, + "散弹扩散角度": 45.0 + }, + "多发射击": { + "多发射击行数": 2, + "多发射击列数": 3, + "多发射击间距": 30.0 + }, + "加特林属性": { + "加特林子弹数量": 8, + "加特林射击间隔": 0.1, + "加特林冷却时间": 2.0 + }, + "穿透属性": { + "穿透数量": 3 + }, + "移动与闪避": { + "移动速度": 100.0, + "闪避率": 0.05, + "击退力度": 300.0, + "击退抗性": 0.0 + }, + "元素属性": { + "元素类型": "NONE", + "元素克制额外伤害": 50.0 + }, + "特殊属性": { + "控制抗性": 0.0, + "伤害反弹": 0.0, + "死亡免疫": false, + "狂暴阈值": 0.3, + "狂暴状态伤害倍数": 1.5 + }, + "特殊机制开关": { + "启用伤害反弹机制": false, + "启用狂暴模式机制": false, + "启用死亡免疫机制": false, + "启用援助召唤机制": false, + "启用死亡重生机制": false + }, + "援助系统": { + "援助触发阈值": 0.2, + "援助召唤数量": 2, + "援助召唤间隔": 5.0 + }, + "品质系统": { + "宠物品质": "COMMON" + } + } + ], + "巡逻宠物": [ + "1751765851860" + ], + "出战宠物": [ + "1751695044465" + ], + "稻草人配置": { + "已拥有稻草人类型": [ + "稻草人1", + "稻草人2", + "稻草人3" + ], + "稻草人展示类型": "稻草人1", + "稻草人昵称": "树萌芽の稻草人", + "稻草人昵称颜色": "1dbc39ff", + "稻草人说的话": { + "第一句话": { + "内容": "我爱你", + "颜色": "1dbc39ff" + }, + "第三句话": { + "内容": "为什么呢", + "颜色": "2625c8ff" + }, + "第二句话": { + "内容": "但你不爱我", + "颜色": "1ffffaff" + }, + "第四句话": { + "内容": "唉", + "颜色": "2145b2ff" + } + } + }, + "智慧树配置": { + "距离上一次杀虫时间": 1752051316, + "距离上一次除草时间": 1752051316, + "智慧树显示的话": "你好", + "等级": 6, + "当前经验值": 204, + "最大经验值": 881, + "最大生命值": 110, + "当前生命值": 110, + "高度": 53, + "上次护理时间": 1752051799 + } } \ No newline at end of file