From 048600e95db5ebf38f8eb825998c047755e9c5f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A0=91=E8=90=8C=E8=8A=BD?= <3205788256@qq.com> Date: Sat, 26 Jul 2025 22:41:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=AE=A0=E7=89=A9=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CopyItems/crop_item.tscn | 2 +- Data/pet_data.json | 1551 +---------------- GUI/MainMenuPanel.tscn | 46 +- MainGame.gd | 718 +++++--- MainGame.tscn | 178 +- Network/TCPNetworkManager.gd | 44 +- Scene/BigPanel/PlayerRankingPanel.tscn | 2 +- Scene/NewPet/BulletBase.gd | 368 ++++ Scene/NewPet/BulletBase.gd.uid | 1 + Scene/NewPet/BulletBase.tscn | 29 + Scene/NewPet/NewPetBase.gd | 1198 +++++++++++++ Scene/NewPet/NewPetBase.gd.uid | 1 + Scene/NewPet/NewPetBase.tscn | 146 ++ Scene/NewPet/PetBattlePanel.gd | 1225 +++++++++++++ Scene/NewPet/PetBattlePanel.gd.uid | 1 + Scene/NewPet/PetBattlePanel.tscn | 318 ++++ Scene/NewPet/PetConfig.gd | 396 +++++ Scene/NewPet/PetConfig.gd.uid | 1 + Scene/NewPet/PetType/big_beetle.tscn | 68 + Scene/NewPet/PetType/flying_bird.tscn | 64 + Scene/NewPet/PetType/green_slime.tscn | 103 ++ Scene/NewPet/PetType/little_knight.tscn | 176 ++ Scene/NewPet/PetType/red_slime.tscn | 104 ++ Scene/NewPet/PetType/small_beetle.tscn | 64 + Scene/NewPet/PetType/small_blue.tscn | 52 + Scene/NewPet/PetType/small_drill_bit.tscn | 64 + Scene/NewPet/PetType/small_green.tscn | 56 + Scene/NewPet/PetType/small_orange.tscn | 52 + Scene/NewPet/PetType/small_pink.tscn | 56 + Scene/NewPet/PetType/small_yellow.tscn | 52 + Scene/NewPet/Pet_bag.json | 81 + Scene/NewPet/Pet_data.json | 165 ++ Scene/NewPet/WeaponBase.gd | 128 ++ Scene/NewPet/WeaponBase.gd.uid | 1 + Script/BigPanel/ItemBagPanel.gd | 10 +- Script/BigPanel/LoginPanel.gd | 1 + Script/BigPanel/PetBagPanel.gd | 38 +- Script/BigPanel/PetStorePanel.gd | 117 +- Script/Pet/PetBase.gd | 479 ++++- Script/Pet/PetFightPanel.gd | 101 +- Script/Pet/PetFightPanel_BattleRoyale.gd.uid | 1 - .../SmallPanel/GlobalServerBroadcastPanel.gd | 5 +- Script/SmallPanel/LandPanel.gd | 4 +- Script/SmallPanel/PetInformPanel.gd | 271 ++- Script/SmallPanel/WisdomTreePanel.gd | 17 +- Server/ConsoleCommandsAPI.py | 90 +- Server/QQEmailSendAPI.py | 32 +- Server/SMYMongoDBAPI.py | 1044 ++++++++--- Server/TCPGameServer.py | 1062 ++++++----- .../ConsoleCommandsAPI.cpython-313.pyc | Bin 44295 -> 43957 bytes .../QQEmailSendAPI.cpython-313.pyc | Bin 22799 -> 23933 bytes .../__pycache__/SMYMongoDBAPI.cpython-313.pyc | Bin 41064 -> 53845 bytes .../__pycache__/TCPGameServer.cpython-313.pyc | Bin 357906 -> 334093 bytes Server/__pycache__/TCPServer.cpython-313.pyc | Bin 16324 -> 16324 bytes Server/deploy.sh | 23 - Server/docker-compose.yml | 3 +- Server/game_saves/2143323382.json | 1099 ------------ Server/game_saves/2804775686.json | 577 ------ Server/requirements.txt | 3 +- Server/test_pet_data_migration.py | 341 ++++ Server/test_player_data_mongodb_migration.py | 219 +++ Server/test_server_pet_functions.py | 401 +++++ __pycache__/SMYMongoDBAPI.cpython-313.pyc | Bin 14409 -> 0 bytes assets/子弹图片/01.png | Bin 0 -> 8809 bytes assets/子弹图片/01.png.import | 34 + assets/子弹图片/02.png | Bin 0 -> 8780 bytes assets/子弹图片/02.png.import | 34 + assets/子弹图片/03.png | Bin 0 -> 8378 bytes assets/子弹图片/03.png.import | 34 + assets/子弹图片/04.png | Bin 0 -> 9216 bytes assets/子弹图片/04.png.import | 34 + assets/子弹图片/05.png | Bin 0 -> 9719 bytes assets/子弹图片/05.png.import | 34 + assets/子弹图片/06.png | Bin 0 -> 9095 bytes assets/子弹图片/06.png.import | 34 + assets/子弹图片/07.png | Bin 0 -> 7628 bytes assets/子弹图片/07.png.import | 34 + assets/子弹图片/08.png | Bin 0 -> 7286 bytes assets/子弹图片/08.png.import | 34 + assets/子弹图片/09.png | Bin 0 -> 6470 bytes assets/子弹图片/09.png.import | 34 + assets/子弹图片/21.png | Bin 0 -> 13364 bytes assets/子弹图片/21.png.import | 34 + assets/子弹图片/22.png | Bin 0 -> 12781 bytes assets/子弹图片/22.png.import | 34 + assets/子弹图片/23.png | Bin 0 -> 14550 bytes assets/子弹图片/23.png.import | 34 + assets/子弹图片/24.png | Bin 0 -> 12939 bytes assets/子弹图片/24.png.import | 34 + assets/子弹图片/25.png | Bin 0 -> 12584 bytes assets/子弹图片/25.png.import | 34 + assets/子弹图片/26.png | Bin 0 -> 10287 bytes assets/子弹图片/26.png.import | 34 + assets/子弹图片/30.png | Bin 0 -> 50630 bytes assets/子弹图片/30.png.import | 34 + assets/子弹图片/31.png | Bin 0 -> 52470 bytes assets/子弹图片/31.png.import | 34 + assets/子弹图片/32.png | Bin 0 -> 53187 bytes assets/子弹图片/32.png.import | 34 + assets/子弹图片/33.png | Bin 0 -> 41704 bytes assets/子弹图片/33.png.import | 34 + assets/子弹图片/34.png | Bin 0 -> 34970 bytes assets/子弹图片/34.png.import | 34 + assets/子弹图片/35.png | Bin 0 -> 33834 bytes assets/子弹图片/35.png.import | 34 + assets/子弹图片/36.png | Bin 0 -> 33560 bytes assets/子弹图片/36.png.import | 34 + assets/武器图片/Wands-x2.png | Bin 0 -> 8695 bytes assets/武器图片/Wands-x2.png.import | 34 + assets/武器图片/bronze outline x2.png | Bin 0 -> 9259 bytes assets/武器图片/bronze outline x2.png.import | 34 + assets/灵创新媒.png | Bin 0 -> 141306 bytes assets/灵创新媒.png.import | 34 + assets/菜单UI/灵创招新群.png | Bin 0 -> 432067 bytes assets/菜单UI/灵创招新群.png.import | 34 + assets/装饰物图片/作物仓库.webp | Bin 0 -> 14392 bytes assets/装饰物图片/作物仓库.webp.import | 34 + assets/装饰物图片/在线时长礼包.webp | Bin 0 -> 16448 bytes assets/装饰物图片/在线时长礼包.webp.import | 34 + assets/装饰物图片/宠物背包.webp | Bin 0 -> 10012 bytes assets/装饰物图片/宠物背包.webp.import | 34 + assets/装饰物图片/每日签到礼包.webp | Bin 0 -> 15732 bytes assets/装饰物图片/每日签到礼包.webp.import | 34 + assets/装饰物图片/玩家排行榜.webp | Bin 0 -> 8864 bytes assets/装饰物图片/玩家排行榜.webp.import | 34 + assets/装饰物图片/种子仓库.webp | Bin 0 -> 15204 bytes assets/装饰物图片/种子仓库.webp.import | 34 + assets/装饰物图片/道具背包.webp | Bin 0 -> 8488 bytes assets/装饰物图片/道具背包.webp.import | 34 + project.godot | 16 +- server/game_saves/3205788256.json | 1349 -------------- test_bullet_system.gd | 76 + test_bullet_system.gd.uid | 1 + test_weapon_system.gd | 49 + test_weapon_system.gd.uid | 1 + 135 files changed, 10204 insertions(+), 5859 deletions(-) create mode 100644 Scene/NewPet/BulletBase.gd create mode 100644 Scene/NewPet/BulletBase.gd.uid create mode 100644 Scene/NewPet/BulletBase.tscn create mode 100644 Scene/NewPet/NewPetBase.gd create mode 100644 Scene/NewPet/NewPetBase.gd.uid create mode 100644 Scene/NewPet/NewPetBase.tscn create mode 100644 Scene/NewPet/PetBattlePanel.gd create mode 100644 Scene/NewPet/PetBattlePanel.gd.uid create mode 100644 Scene/NewPet/PetBattlePanel.tscn create mode 100644 Scene/NewPet/PetConfig.gd create mode 100644 Scene/NewPet/PetConfig.gd.uid create mode 100644 Scene/NewPet/PetType/big_beetle.tscn create mode 100644 Scene/NewPet/PetType/flying_bird.tscn create mode 100644 Scene/NewPet/PetType/green_slime.tscn create mode 100644 Scene/NewPet/PetType/little_knight.tscn create mode 100644 Scene/NewPet/PetType/red_slime.tscn create mode 100644 Scene/NewPet/PetType/small_beetle.tscn create mode 100644 Scene/NewPet/PetType/small_blue.tscn create mode 100644 Scene/NewPet/PetType/small_drill_bit.tscn create mode 100644 Scene/NewPet/PetType/small_green.tscn create mode 100644 Scene/NewPet/PetType/small_orange.tscn create mode 100644 Scene/NewPet/PetType/small_pink.tscn create mode 100644 Scene/NewPet/PetType/small_yellow.tscn create mode 100644 Scene/NewPet/Pet_bag.json create mode 100644 Scene/NewPet/Pet_data.json create mode 100644 Scene/NewPet/WeaponBase.gd create mode 100644 Scene/NewPet/WeaponBase.gd.uid delete mode 100644 Script/Pet/PetFightPanel_BattleRoyale.gd.uid delete mode 100644 Server/game_saves/2143323382.json delete mode 100644 Server/game_saves/2804775686.json create mode 100644 Server/test_pet_data_migration.py create mode 100644 Server/test_player_data_mongodb_migration.py create mode 100644 Server/test_server_pet_functions.py delete mode 100644 __pycache__/SMYMongoDBAPI.cpython-313.pyc create mode 100644 assets/子弹图片/01.png create mode 100644 assets/子弹图片/01.png.import create mode 100644 assets/子弹图片/02.png create mode 100644 assets/子弹图片/02.png.import create mode 100644 assets/子弹图片/03.png create mode 100644 assets/子弹图片/03.png.import create mode 100644 assets/子弹图片/04.png create mode 100644 assets/子弹图片/04.png.import create mode 100644 assets/子弹图片/05.png create mode 100644 assets/子弹图片/05.png.import create mode 100644 assets/子弹图片/06.png create mode 100644 assets/子弹图片/06.png.import create mode 100644 assets/子弹图片/07.png create mode 100644 assets/子弹图片/07.png.import create mode 100644 assets/子弹图片/08.png create mode 100644 assets/子弹图片/08.png.import create mode 100644 assets/子弹图片/09.png create mode 100644 assets/子弹图片/09.png.import create mode 100644 assets/子弹图片/21.png create mode 100644 assets/子弹图片/21.png.import create mode 100644 assets/子弹图片/22.png create mode 100644 assets/子弹图片/22.png.import create mode 100644 assets/子弹图片/23.png create mode 100644 assets/子弹图片/23.png.import create mode 100644 assets/子弹图片/24.png create mode 100644 assets/子弹图片/24.png.import create mode 100644 assets/子弹图片/25.png create mode 100644 assets/子弹图片/25.png.import create mode 100644 assets/子弹图片/26.png create mode 100644 assets/子弹图片/26.png.import create mode 100644 assets/子弹图片/30.png create mode 100644 assets/子弹图片/30.png.import create mode 100644 assets/子弹图片/31.png create mode 100644 assets/子弹图片/31.png.import create mode 100644 assets/子弹图片/32.png create mode 100644 assets/子弹图片/32.png.import create mode 100644 assets/子弹图片/33.png create mode 100644 assets/子弹图片/33.png.import create mode 100644 assets/子弹图片/34.png create mode 100644 assets/子弹图片/34.png.import create mode 100644 assets/子弹图片/35.png create mode 100644 assets/子弹图片/35.png.import create mode 100644 assets/子弹图片/36.png create mode 100644 assets/子弹图片/36.png.import create mode 100644 assets/武器图片/Wands-x2.png create mode 100644 assets/武器图片/Wands-x2.png.import create mode 100644 assets/武器图片/bronze outline x2.png create mode 100644 assets/武器图片/bronze outline x2.png.import create mode 100644 assets/灵创新媒.png create mode 100644 assets/灵创新媒.png.import create mode 100644 assets/菜单UI/灵创招新群.png create mode 100644 assets/菜单UI/灵创招新群.png.import create mode 100644 assets/装饰物图片/作物仓库.webp create mode 100644 assets/装饰物图片/作物仓库.webp.import create mode 100644 assets/装饰物图片/在线时长礼包.webp create mode 100644 assets/装饰物图片/在线时长礼包.webp.import create mode 100644 assets/装饰物图片/宠物背包.webp create mode 100644 assets/装饰物图片/宠物背包.webp.import create mode 100644 assets/装饰物图片/每日签到礼包.webp create mode 100644 assets/装饰物图片/每日签到礼包.webp.import create mode 100644 assets/装饰物图片/玩家排行榜.webp create mode 100644 assets/装饰物图片/玩家排行榜.webp.import create mode 100644 assets/装饰物图片/种子仓库.webp create mode 100644 assets/装饰物图片/种子仓库.webp.import create mode 100644 assets/装饰物图片/道具背包.webp create mode 100644 assets/装饰物图片/道具背包.webp.import delete mode 100644 server/game_saves/3205788256.json create mode 100644 test_bullet_system.gd create mode 100644 test_bullet_system.gd.uid create mode 100644 test_weapon_system.gd create mode 100644 test_weapon_system.gd.uid diff --git a/CopyItems/crop_item.tscn b/CopyItems/crop_item.tscn index dcab7c4..6d086c1 100644 --- a/CopyItems/crop_item.tscn +++ b/CopyItems/crop_item.tscn @@ -46,7 +46,7 @@ texture = ExtResource("1_bns1c") [node name="crop_sprite" type="Sprite2D" parent="."] material = SubResource("ShaderMaterial_s5pb0") -position = Vector2(51, 45) +position = Vector2(51, 40) scale = Vector2(0.339844, 0.363281) [node name="ProgressBar" type="ProgressBar" parent="."] diff --git a/Data/pet_data.json b/Data/pet_data.json index f541c13..0b45615 100644 --- a/Data/pet_data.json +++ b/Data/pet_data.json @@ -1,1466 +1,87 @@ { - "小绿": { - "场景路径": "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 + "_id": { + "$oid": "687cf59b8e77ba00a7414bab" + }, + "updated_at": { + "$date": "2025-07-20T22:13:38.521Z" + }, + "烈焰鸟": { + "pet_name": "烈焰鸟", + "can_purchase":true, + "cost":1000, + "pet_image": "res://Scene/NewPet/PetType/flying_bird.tscn", + "pet_id": "0001", + "pet_type": "飞鸟", + "pet_level": 1, + "pet_experience": 500, + "pet_temperament": "勇猛", + "pet_birthday": "2023-03-15", + "pet_hobby": "喜欢战斗和烈火", + "pet_introduction": "我爱吃虫子", + "max_health": 300, + "enable_health_regen": true, + "health_regen": 2, + "enable_shield_regen": true, + "max_shield": 150, + "shield_regen": 1.5, + "max_armor": 120, + "base_attack_damage": 40, + "crit_rate": 0.15, + "crit_damage": 2, + "armor_penetration": 10, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 2, + "enable_berserker_skill": true, + "berserker_bonus": 1.8, + "berserker_duration": 6, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": false, + "enable_death_respawn_skill": true, + "respawn_health_percentage": 0.4, + "move_speed": 180, + "dodge_rate": 0.08, + "element_type": "FIRE", + "element_damage_bonus": 75, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + }, + "大蓝虫": { + "pet_name": "大蓝虫", + "can_purchase":true, + "cost":1000, + "pet_image": "res://Scene/NewPet/PetType/big_beetle.tscn", + "pet_id": "0002", + "pet_type": "大甲壳虫", + "pet_level": 8, + "pet_experience": 320, + "pet_temperament": "冷静", + "pet_birthday": "2023-06-20", + "pet_hobby": "喜欢和小甲壳虫玩", + "pet_introduction": "我是大蓝虫,不是大懒虫!", + "max_health": 180, + "enable_health_regen": true, + "health_regen": 1.2, + "enable_shield_regen": true, + "max_shield": 200, + "shield_regen": 2.5, + "max_armor": 80, + "base_attack_damage": 35, + "crit_rate": 0.12, + "crit_damage": 1.8, + "armor_penetration": 15, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 1.5, + "enable_berserker_skill": false, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": true, + "summon_count": 2, + "summon_scale": 0.15, + "enable_death_respawn_skill": false, + "move_speed": 120, + "dodge_rate": 0.12, + "element_type": "WATER", + "element_damage_bonus": 100, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + } +} \ No newline at end of file diff --git a/GUI/MainMenuPanel.tscn b/GUI/MainMenuPanel.tscn index 27afb16..a56bc9c 100644 --- a/GUI/MainMenuPanel.tscn +++ b/GUI/MainMenuPanel.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 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"] @@ -7,6 +7,7 @@ [ext_resource type="Texture2D" uid="uid://dgdootc5bny5q" path="res://assets/菜单UI/QQ群.webp" id="4_eghpk"] [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="Texture2D" uid="uid://be4fa6qo525y1" path="res://assets/菜单UI/灵创招新群.png" id="5_m77al"] [ext_resource type="Script" uid="uid://ciwjx67wjubdy" path="res://GUI/CheckUpdatePanel.gd" id="9_6jmhb"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_eghpk"] @@ -86,6 +87,18 @@ offset_bottom = 718.0 theme_override_font_sizes/font_size = 30 text = "版本号:v1.0.1" +[node name="Developer" type="RichTextLabel" parent="GUI"] +layout_mode = 0 +offset_left = 1194.0 +offset_top = 676.0 +offset_right = 1398.0 +offset_bottom = 718.0 +theme_override_font_sizes/normal_font_size = 30 +bbcode_enabled = true +text = "[rainbow freq=1 sat=2 val=100]By-树萌芽[/rainbow]" +horizontal_alignment = 1 +vertical_alignment = 1 + [node name="AddGroupLabel" type="Label" parent="GUI"] self_modulate = Color(1, 1, 0, 1) layout_mode = 0 @@ -105,6 +118,14 @@ offset_bottom = 1229.0 scale = Vector2(0.3, 0.3) texture = ExtResource("4_eghpk") +[node name="QQGroupImage2" type="TextureRect" parent="GUI/AddGroupLabel"] +layout_mode = 0 +offset_left = -832.0 +offset_right = 103.0 +offset_bottom = 1186.0 +scale = Vector2(0.3, 0.3) +texture = ExtResource("5_m77al") + [node name="YouXiaoQing" type="TextureRect" parent="GUI/AddGroupLabel"] layout_mode = 0 offset_left = 298.0 @@ -114,6 +135,19 @@ offset_bottom = 1268.0 scale = Vector2(0.14, 0.14) texture = ExtResource("5_6jmhb") +[node name="RichTextLabel" type="RichTextLabel" parent="GUI/AddGroupLabel"] +self_modulate = Color(0.580392, 1, 0, 1) +layout_mode = 0 +offset_left = -896.0 +offset_top = -47.0 +offset_right = -420.0 +offset_bottom = -7.0 +theme_override_font_sizes/normal_font_size = 30 +bbcode_enabled = true +text = "欢迎了解灵创新媒实验室" +horizontal_alignment = 1 +vertical_alignment = 1 + [node name="VBox" type="VBoxContainer" parent="."] layout_mode = 0 offset_top = 248.0 @@ -217,11 +251,17 @@ text = "玩法介绍: 3.电脑Windows平台按住wsad或者方向键可以移动视角,鼠标滚轮可以缩放视角;安卓则为拖动和双指缩放 3.注册账号一定一定要用QQ号,目前游戏的所有登录服务都是围绕着腾讯QQ来验证,注册时会向您输入的QQ号对应的QQ邮箱发送一封注册邮件。 4.不要一上来就把钱用完了(比如某某人一上来就十连抽),可以去偷别人的菜 +5.玩家排行榜有一些特殊农场,可以直接搜索访问: 杂交农场(666) 花卉农场(520) 稻香(111) 小麦谷(222) 访问有惊喜 +6.全服大喇叭也有一些小彩蛋 +7.记得在小卖部向其他玩家出售你不需要的东西 +8.玩家太多无法找到你的好友的农场?试试直接搜索QQ号 +9.如果有条件尽量还是玩电脑版吧,毕竟电脑版优化是最好的,手机版或多或少有些问题( 致谢名单: 程序牛马:(作物处理+抠图) -虚空领主:(抠图) -豆包:(万能的美术)" +虚空领主:(美术+抠图) +豆包:(万能的美术) +ChatGPT:(超级美术)" [node name="GameUpdatePanel" type="Panel" parent="."] visible = false diff --git a/MainGame.gd b/MainGame.gd index 8af966e..225a081 100644 --- a/MainGame.gd +++ b/MainGame.gd @@ -3,7 +3,7 @@ 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 # 显示当前剩余的钱 @@ -26,6 +26,7 @@ extends Node #访问模式按钮 @onready var return_my_farm_button: Button = $UI/GUI/VisitVBox/ReturnMyFarmButton #返回我的农场 @onready var like_button: Button = $UI/GUI/VisitVBox/LikeButton #给别人点赞 +@onready var battle_button: Button = $UI/GUI/VisitVBox/BattleButton #发起对战 #和农场操作相关的按钮 @onready var one_click_harvestbutton: Button = $UI/GUI/FarmVBox/OneClickHarvestButton #一键收获 @@ -58,7 +59,7 @@ extends Node @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 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 #玩家排行榜面板 @@ -71,6 +72,7 @@ extends Node @onready var game_setting_panel: Panel = $UI/BigPanel/GameSettingPanel #游戏设置面板 + #小面板 @onready var land_panel: Panel = $UI/SmallPanel/LandPanel #地块面板 @onready var load_progress_panel: Panel = $UI/SmallPanel/LoadProgressPanel #加载进度面板 @@ -113,6 +115,16 @@ extends Node @onready var visit_v_box: VBoxContainer = $UI/GUI/VisitVBox @onready var other_v_box: VBoxContainer = $UI/GUI/OtherVBox +@onready var pet_battle_panel: PetBattlePanel = $UI/BigPanel/PetBattlePanel #新的宠物对战场景 + + +@onready var pet_patrol_points: Node = $PetPatrolPoints +@onready var pos_1: Marker2D = $PetPatrolPoints/Pos1 #生成点1 +@onready var pos_2: Marker2D = $PetPatrolPoints/Pos2#生成点2 +@onready var pos_3: Marker2D = $PetPatrolPoints/Pos3#生成点3 +@onready var pos_4: Marker2D = $PetPatrolPoints/Pos4#生成点4 + + #玩家基本信息 var money: int = 500 # 默认每个人初始为100元 @@ -147,6 +159,8 @@ var battle_pets : Array = [] var can_planted_crop : Dictionary = {} #道具配置数据 var item_config_data : Dictionary = {} +# 宠物配置数据 +var pet_config : Dictionary = {} # 新手大礼包领取状态 var new_player_gift_claimed : bool = false @@ -199,6 +213,11 @@ var climate_death_timer : int = 0 #=======================脚本基础方法======================= func _ready(): + DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) + Engine.max_fps = 0 # 0 表示解锁 + print("V-Sync disabled,max_fps =", Engine.max_fps) + + # 显示加载进度面板,隐藏其他所有UI load_progress_panel.show() load_progress_bar.value = 0 @@ -253,6 +272,9 @@ func _ready(): # 连接AcceptDialog的确认信号 accept_dialog.confirmed.connect(_on_accept_dialog_confirmed) + # 连接宠物对战面板的battle_ended信号 + pet_battle_panel.battle_ended.connect(_on_pet_battle_ended) + # 启动在线人数更新定时器 _start_online_players_timer() @@ -263,6 +285,9 @@ func _ready(): # 启动后稍等片刻尝试从服务器获取最新数据 await get_tree().create_timer(0.5).timeout _try_load_from_server() + + # 初始化对战按钮显示状态 + _update_battle_button_visibility() func _process(delta: float) -> void: @@ -402,6 +427,9 @@ func _handle_visit_player_response(data): is_visiting_mode = true visited_player_data = target_player_data + # 控制对战按钮显示 + _update_battle_button_visibility() + # 更新显示数据 money = target_player_data.get("钱币", 0) experience = target_player_data.get("经验值", 0) @@ -442,6 +470,10 @@ func _handle_visit_player_response(data): pet_bag_panel.update_pet_bag_ui() # 初始化巡逻宠物(访问模式) + print("[访问模式] 准备初始化巡逻宠物,数据量: ", patrol_pets.size()) + for i in range(patrol_pets.size()): + var pet_data = patrol_pets[i] + print("[访问模式] 巡逻宠物", i, ": ", pet_data.get("pet_name", "未知"), " ID:", pet_data.get("pet_id", "无ID")) if has_method("init_patrol_pets"): init_patrol_pets() @@ -479,6 +511,9 @@ func _handle_return_my_farm_response(data): if success: var player_data = data.get("player_data", {}) + # 隐藏对战按钮(返回自己农场时) + battle_button.hide() + # 恢复玩家数据 money = player_data.get("钱币", 500) experience = player_data.get("经验值", 0) @@ -490,6 +525,7 @@ func _handle_return_my_farm_response(data): item_bag = player_data.get("道具背包", []) pet_bag = player_data.get("宠物背包", []) patrol_pets = player_data.get("巡逻宠物", []) + battle_pets = player_data.get("出战宠物", []) # 恢复UI显示 show_player_name.text = "玩家昵称:" + player_data.get("玩家昵称", "未知") @@ -525,6 +561,10 @@ func _handle_return_my_farm_response(data): pet_bag_panel.update_pet_bag_ui() # 初始化巡逻宠物(返回自己农场) + print("[返回农场] 准备初始化巡逻宠物,数据量: ", patrol_pets.size()) + for i in range(patrol_pets.size()): + var pet_data = patrol_pets[i] + print("[返回农场] 巡逻宠物", i, ": ", pet_data.get("pet_name", "未知"), " ID:", pet_data.get("pet_id", "无ID")) if has_method("init_patrol_pets"): init_patrol_pets() @@ -546,7 +586,6 @@ func _handle_return_my_farm_response(data): Toast.show("返回农场失败:" + message, Color.RED) print("返回农场失败:", message) - #访客模式下返回我的农场 func _on_return_my_farm_button_pressed() -> void: # 如果当前处于访问模式,返回自己的农场 @@ -643,13 +682,9 @@ func _handle_crop_update(update_data): # 更新UI显示 _update_farm_lots_state() -# 原来的修复背包数据函数已移除,因为不再需要quality字段 - # 处理登录成功 func handle_login_success(player_data: Dictionary): - # 背包数据兼容性处理已移除,品质信息直接从crop_data获取 - # 更新新手大礼包状态 new_player_gift_claimed = player_data.get("new_player_gift_claimed", false) @@ -666,6 +701,13 @@ func handle_login_success(player_data: Dictionary): tcp_network_manager_panel.sendGetOnlinePlayers() print("登录成功后请求在线人数更新") + # 登录成功后请求宠物配置数据 + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendGetPetConfig"): + if tcp_network_manager_panel.sendGetPetConfig(): + print("登录成功后请求宠物配置数据") + else: + print("登录成功后请求宠物配置数据失败") + # 其他登录成功后的初始化逻辑可以在这里添加 start_game = true @@ -678,11 +720,12 @@ func handle_login_success(player_data: Dictionary): # 初始化智慧树显示 update_wisdom_tree_display() + # 初始化对战按钮显示状态 + _update_battle_button_visibility() + # 立即请求服务器历史消息以刷新显示 call_deferred("_request_server_history_for_refresh") - - #创建作物按钮 func _create_crop_button(crop_name: String, crop_quality: String) -> Button: # 根据品质选择相应的进度条 @@ -730,7 +773,6 @@ func _create_farm_buttons(): grid_container.add_child(button) - # 更新农场地块状态 func _update_farm_lots_state(): var digged_count = 0 @@ -840,13 +882,11 @@ func _update_farm_lots_state(): dig_money = digged_count * 1000 - # 仅在加载游戏或特定情况下完全刷新地块 - 用于与服务器同步时 func _refresh_farm_lots(): _create_farm_buttons() _update_farm_lots_state() - # 更新玩家信息显示 func _update_ui(): show_money.text = "钱币数:" + str(money) + " 元" @@ -857,8 +897,6 @@ func _update_ui(): var my_likes = login_data.get("点赞数", 0) show_like.text = "点赞数:" + str(int(my_likes)) - - #打开玩家排行榜面板 func _on_player_ranking_button_pressed() -> void: @@ -866,7 +904,6 @@ func _on_player_ranking_button_pressed() -> void: player_ranking_panel.request_player_rankings() pass - #打开设置面板 func _on_setting_button_pressed() -> void: game_setting_panel.show() @@ -878,8 +915,6 @@ func _on_watch_broadcast_button_pressed() -> void: 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", "") @@ -897,7 +932,6 @@ func _on_accept_dialog_confirmed() -> void: # 处理其他类型的确认逻辑 pass - #打开一键种植面板 func _on_one_click_plant_button_pressed() -> void: # 如果处于访问模式,不允许操作 @@ -994,10 +1028,9 @@ func _on_pet_store_button_pressed() -> void: #===============================================初始化数据处理=============================================== # 从服务器获取作物数据 func _load_crop_data(): - var network_manager = get_node("/root/main/UI/TCPNerworkManager") - if network_manager and network_manager.is_connected_to_server(): + if tcp_network_manager_panel and tcp_network_manager_panel.is_connected_to_server(): # 从服务器请求作物数据 - network_manager.sendGetCropData() + tcp_network_manager_panel.sendGetCropData() else: # 如果无法连接服务器,尝试加载本地数据 print("无法连接服务器,尝试加载本地作物数据...") @@ -1155,6 +1188,24 @@ func _handle_item_config_response(response_data): print("从服务器获取道具配置数据失败:", message) _load_local_item_config() +# 处理服务器宠物配置响应 +func _handle_pet_config_response(response_data): + var success = response_data.get("success", false) + + if success: + var config_data = response_data.get("pet_config", {}) + if config_data: + # 设置全局变量 + pet_config = config_data + print("宠物配置数据已从服务器更新,宠物种类:", pet_config.size()) + else: + print("服务器返回的宠物配置数据为空") + pet_config = {} + else: + var message = response_data.get("message", "未知错误") + print("从服务器获取宠物配置数据失败:", message) + pet_config = {} + #===============================================初始化数据处理=============================================== @@ -2182,6 +2233,8 @@ func _handle_new_player_gift_response(data): # 更新宠物背包UI if updated_data.has("宠物背包"): pet_bag_panel.update_pet_bag_ui() + # 更新对战按钮显示 + _update_battle_button_visibility() # 显示成功消息 Toast.show(message, Color.GOLD, 3.0, 1.0) @@ -2221,7 +2274,7 @@ func _handle_global_broadcast_response(data: Dictionary): # 处理全服大喇叭历史消息响应 func _handle_broadcast_history_response(data: Dictionary): - print("收到历史消息响应: ", data.get("messages", []).size(), " 条消息") + #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) @@ -2239,7 +2292,7 @@ func update_broadcast_display_from_message(data: Dictionary): # 优先显示玩家昵称 var display_name = player_name if player_name != "" else username global_server_broadcast.text = display_name + ": " + content - print("主界面大喇叭已更新为: ", global_server_broadcast.text) + #print("主界面大喇叭已更新为: ", global_server_broadcast.text) # 从面板获取最新消息更新大喇叭显示 func update_broadcast_display_from_panel(): @@ -2247,7 +2300,7 @@ func update_broadcast_display_from_panel(): var latest_message = global_server_broadcast_panel.get_latest_message() if latest_message != "暂无消息" and latest_message != "全服大喇叭": global_server_broadcast.text = latest_message - print("主界面大喇叭已更新为: ", latest_message) + #print("主界面大喇叭已更新为: ", latest_message) else: global_server_broadcast.text = "全服大喇叭" @@ -2278,8 +2331,17 @@ func _load_broadcast_from_local(): 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)) + # 按时间戳排序,确保类型一致 + data.sort_custom(func(a, b): + var timestamp_a = a.get("timestamp", 0) + var timestamp_b = b.get("timestamp", 0) + # 确保都是数字类型 + if timestamp_a is String: + timestamp_a = float(timestamp_a) + if timestamp_b is String: + timestamp_b = float(timestamp_b) + return timestamp_a < timestamp_b + ) # 获取最新消息 var latest = data[-1] var display_name = latest.get("display_name", "匿名") @@ -2327,11 +2389,19 @@ func _on_one_click_screen_shot_pressed() -> void: # 保存当前UI状态 var ui_state = _save_ui_visibility_state() + # 临时禁用UI自动显示逻辑 + var original_start_game = start_game + start_game = false + # 隐藏所有UI _hide_all_ui_for_screenshot() - - await get_tree().create_timer(10.0).timeout + # 等待5秒 + await get_tree().create_timer(5.0).timeout + + # 恢复游戏状态 + start_game = original_start_game + # 恢复UI显示 _restore_ui_visibility_state(ui_state) @@ -2505,6 +2575,8 @@ func _handle_use_pet_item_response(data: Dictionary): # 更新宠物背包UI if pet_bag_panel and pet_bag_panel.has_method("update_pet_bag_ui"): pet_bag_panel.update_pet_bag_ui() + # 更新对战按钮显示 + _update_battle_button_visibility() # 安全更新道具背包数据 if updated_data.has("道具背包"): @@ -2915,181 +2987,176 @@ func _clear_item_selection(): + #===============================================巡逻宠物管理=============================================== -var current_patrol_pet: CharacterBody2D = null +# 简单的巡逻宠物管理 +var patrol_pet_instances: Array[Area2D] = [] -# 初始化巡逻宠物(登录时调用) -func init_patrol_pets(): - if patrol_pets == null: - patrol_pets = [] - - if pet_patrol_path_line: - print("巡逻线节点找到,路径点数: " + str(pet_patrol_path_line.points.size())) - else: - print("错误:找不到巡逻线节点 PetPatrolPathLine") +func _create_single_patrol_pet(pet_data: Dictionary, position_index: int): + # 检查巡逻点节点 + if not pet_patrol_points: + print("错误:找不到巡逻点节点") return - update_patrol_pets() + # 获取四个巡逻点 + var patrol_positions = [] + if pos_1: patrol_positions.append(pos_1.global_position) + if pos_2: patrol_positions.append(pos_2.global_position) + if pos_3: patrol_positions.append(pos_3.global_position) + if pos_4: patrol_positions.append(pos_4.global_position) + -# 更新巡逻宠物显示 -func update_patrol_pets(): - clear_patrol_pets() - if patrol_pets == null or patrol_pets.size() == 0: + if patrol_positions.size() == 0: + print("错误:没有找到有效的巡逻点") return - # 目前只支持一个巡逻宠物 - var first_patrol_pet = patrol_pets[0] - var pet_id = first_patrol_pet.get("基本信息", {}).get("宠物ID", "") + # 确保位置索引有效 + if position_index >= patrol_positions.size(): + position_index = position_index % patrol_positions.size() - if pet_id != "": - _create_patrol_pet_instance(first_patrol_pet) - -# 清除巡逻宠物实例 -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() - -# 根据宠物ID设置巡逻宠物 -func set_patrol_pet_by_id(pet_id: String): - if pet_id == "": - print("警告:宠物ID为空") + # 实例化NewPetBase场景 + var newpet_scene_path = "res://Scene/NewPet/NewPetBase.tscn" + if not ResourceLoader.exists(newpet_scene_path): + print("错误:找不到NewPetBase场景") return - var pet_data = _find_pet_by_id(pet_id) - if pet_data.is_empty(): - print("错误:找不到宠物ID: " + pet_id) - return + var pet_scene = load(newpet_scene_path) + var pet_instance = pet_scene.instantiate() - clear_patrol_pets() + # 设置基本属性 + var pet_name = pet_data.get("pet_name", pet_data.get("pet_type", "巡逻宠物")) + pet_instance.pet_name = pet_name + pet_instance.pet_id = pet_data.get("pet_id", "") + pet_instance.pet_type = pet_data.get("pet_type", "") + pet_instance.pet_level = pet_data.get("pet_level", 1) + + # 设置为巡逻状态 + pet_instance.is_patrolling = true + + # 添加到场景 + pet_patrol_points.add_child(pet_instance) + patrol_pet_instances.append(pet_instance) + + # 在添加到场景后设置位置(避免坐标系转换问题) + pet_instance.global_position = patrol_positions[position_index] + + # 设置巡逻中心点 + pet_instance.set_patrol_center(patrol_positions[position_index]) + + # 应用宠物图片 + var pet_type = pet_data.get("pet_type", "") + var image_scene_path = _get_pet_image_path(pet_type) + print("应用宠物图片: " + pet_type + " -> " + image_scene_path) + + # 等待一帧确保节点完全添加到场景树 await get_tree().process_frame - _create_patrol_pet_instance(pet_data) + if pet_instance.has_method("apply_pet_image") and image_scene_path != "": + pet_instance.apply_pet_image(pet_instance, image_scene_path) + print("宠物图片应用完成") + else: + print("无法应用宠物图片: " + str(pet_instance.has_method("apply_pet_image")) + ", " + image_scene_path) + + print("创建巡逻宠物成功: " + pet_instance.pet_name + " 在位置" + str(position_index + 1)) -# 查找宠物数据 -func _find_pet_by_id(pet_id: String) -> Dictionary: +# 获取宠物图片路径 +func _get_pet_image_path(pet_type: String) -> String: + print("[调试] 获取宠物图片路径,宠物类型: " + pet_type) + print("[调试] 服务器pet_config大小: " + str(pet_config.size())) + + # 类型映射表 + var type_mapping = { + "小绿": "大蓝虫", "小蓝": "大蓝虫", "小红": "烈焰鸟", "小黄": "烈焰鸟", + "小紫": "大蓝虫", "小橙": "烈焰鸟", "小粉": "大蓝虫", "小黑": "大蓝虫", + "小白": "大蓝虫", "小灰": "大蓝虫", "大甲壳虫": "大蓝虫", "小甲壳虫": "大蓝虫", + "飞鸟": "烈焰鸟", "小骑士": "大蓝虫", "绿史莱姆": "大蓝虫", "小钻头": "大蓝虫" + } + + # 优先使用本地PetConfig配置(更可靠) + var local_pet_config = PetConfig.new() + + # 首先尝试直接匹配宠物类型 + var config_data = local_pet_config.get_pet_config(pet_type) + if config_data.has("pet_image") and config_data["pet_image"] != "": + print("[调试] 从本地配置直接获取图片路径: " + pet_type + " -> " + config_data["pet_image"]) + return config_data["pet_image"] + + # 如果直接匹配失败,使用类型映射 + var mapped_type = type_mapping.get(pet_type, "大蓝虫") + #print("[调试] 使用类型映射: " + pet_type + " -> " + mapped_type) + + config_data = local_pet_config.get_pet_config(mapped_type) + if config_data.has("pet_image") and config_data["pet_image"] != "": + #print("[调试] 从本地配置获取映射图片路径: " + mapped_type + " -> " + config_data["pet_image"]) + return config_data["pet_image"] + + # 检查服务器配置(作为备选) + if pet_config.has(pet_type): + var server_config_data = pet_config[pet_type] + if server_config_data.has("pet_image") and server_config_data["pet_image"] != "": + #print("[调试] 从服务器配置获取图片路径: " + pet_type + " -> " + server_config_data["pet_image"]) + return server_config_data["pet_image"] + + if pet_config.has(mapped_type): + var server_config_data = pet_config[mapped_type] + if server_config_data.has("pet_image") and server_config_data["pet_image"] != "": + #print("[调试] 从服务器配置获取映射图片路径: " + mapped_type + " -> " + server_config_data["pet_image"]) + return server_config_data["pet_image"] + + # 默认返回大蓝虫场景 + print("[调试] 使用默认图片路径: big_beetle.tscn") + return "res://Scene/NewPet/PetType/big_beetle.tscn" + +# 更新巡逻宠物(从服务器数据) +func update_patrol_pets(patrol_pets_data: Array): + # 清除现有巡逻宠物 + clear_patrol_pets() + + print("[update_patrol_pets] 开始更新巡逻宠物,输入数据量: ", patrol_pets_data.size()) + print("[update_patrol_pets] 当前访问模式: ", is_visiting_mode) + + # 限制最多4个巡逻宠物 + var max_pets = min(patrol_pets_data.size(), 4) + + # 为每个巡逻宠物创建实例 + for i in range(max_pets): + var pet_data = patrol_pets_data[i] + print("[update_patrol_pets] 处理宠物", i, ": ", pet_data.get("pet_name", "未知") if pet_data else "空数据") + if pet_data and pet_data.has("pet_id"): + _create_single_patrol_pet(pet_data, i) + else: + print("[update_patrol_pets] 跳过无效宠物数据") + + print("更新巡逻宠物完成,共创建 " + str(max_pets) + " 个巡逻宠物") + +# 清除所有巡逻宠物 +func clear_patrol_pets(): + for pet_instance in patrol_pet_instances: + if pet_instance and is_instance_valid(pet_instance): + pet_instance.queue_free() + patrol_pet_instances.clear() + +# 根据宠物ID查找宠物数据 +func get_pet_data_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", "") + var current_id = pet_data.get("pet_id", "") if current_id == pet_id: return pet_data - return {} -# 创建巡逻宠物实例(统一的创建逻辑) -func _create_patrol_pet_instance(pet_data: Dictionary): - if not _validate_patrol_prerequisites(): - return - - var scene_path = pet_data.get("场景路径", "") - if scene_path == "" or 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 - - _setup_patrol_pet(pet_instance, pet_data) - - 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) - -# 验证巡逻前提条件 -func _validate_patrol_prerequisites() -> bool: - if not pet_patrol_path_line: - print("错误:找不到巡逻线节点") - return false - - if pet_patrol_path_line.points.size() < 2: - print("警告:巡逻路径点数少于2个") - return false - - return true - -# 设置巡逻宠物属性 -func _setup_patrol_pet(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) - - # 巡逻设置 - 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 - - # 禁用战斗行为 - 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 - - 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 init_patrol_pets(): + # 使用新的更新函数来初始化巡逻宠物 + update_patrol_pets(patrol_pets) # 检查出战宠物和巡逻宠物是否冲突 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 {} - #===============================================巡逻宠物管理=============================================== @@ -3138,22 +3205,30 @@ func _show_steal_caught_dialog(message: String, patrol_pet_data: Dictionary, bat 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" + var defender_pets = visited_player_data.get("巡逻宠物", [patrol_pet_data]) + for i in range(min(4, defender_pets.size())): + var pet = defender_pets[i] + var pet_name = pet.get("pet_name", "未知宠物") + var pet_level = pet.get("pet_level", 1) + var pet_type = pet.get("pet_type", "未知类型") + dialog_content += " %d. %s (类型:%s, 等级:%d)\n" % [i+1, pet_name, pet_type, pet_level] + + dialog_content += "\n⚔️ 你的出战宠物:\n" + # 显示自己的出战宠物(所有) + var attacker_pets = battle_pets if battle_pets.size() > 0 else [battle_pet_data] + for i in range(min(4, attacker_pets.size())): + var pet = attacker_pets[i] + var pet_name = pet.get("pet_name", "未知宠物") + var pet_level = pet.get("pet_level", 1) + var pet_type = pet.get("pet_type", "未知类型") + dialog_content += " %d. %s (类型:%s, 等级:%d)\n" % [i+1, pet_name, pet_type, pet_level] + + dialog_content += "\n请选择你的行动:\n" dialog_content += "💰 逃跑:支付 " + str(escape_cost) + " 金币\n" dialog_content += "⚔️ 对战:如果失败支付 " + str(battle_cost) + " 金币" @@ -3189,9 +3264,9 @@ func _show_steal_caught_dialog(message: String, patrol_pet_data: Dictionary, bat 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", "") + # 验证宠物数据完整性(新格式) + var battle_pet_id = battle_pet_data.get("pet_id", "") + var patrol_pet_id = patrol_pet_data.get("pet_id", "") if battle_pet_id == "" or patrol_pet_id == "": Toast.show("宠物数据不完整,无法开始对战", Color.RED, 3.0) @@ -3203,15 +3278,18 @@ func _on_steal_battle_confirmed(patrol_pet_data: Dictionary, battle_pet_data: Di return # 停止宠物对战面板的自动对战逻辑 - if pet_fight_panel and pet_fight_panel.has_method("stop_auto_battle"): - pet_fight_panel.stop_auto_battle() + if pet_battle_panel and pet_battle_panel.has_method("stop_auto_battle"): + pet_battle_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) + if pet_battle_panel and pet_battle_panel.has_method("setup_steal_battle"): + # 传递完整的出战宠物数组和巡逻宠物数组 + var attacker_pets = battle_pets if battle_pets.size() > 0 else [battle_pet_data] + var defender_pets = visited_player_data.get("巡逻宠物", [patrol_pet_data]) + pet_battle_panel.setup_steal_battle(attacker_pets, defender_pets, user_name, target_username) # 显示宠物对战面板 - pet_fight_panel.show() + pet_battle_panel.show() GlobalVariables.isZoomDisabled = true Toast.show("准备进入宠物对战!", Color.YELLOW, 2.0) @@ -3229,6 +3307,142 @@ func _on_steal_escape_confirmed(escape_cost: int): #====================================偷菜被发现-宠物对战处理========================================= +#========================访问模式直接向巡逻宠物发起战斗======================== +func _on_battle_button_pressed() -> void: + # 检查是否为访问模式 + if not is_visiting_mode: + Toast.show("只有在访问模式下才能向巡逻宠物发起对战", Color.ORANGE, 3.0) + return + + # 检查对方是否有巡逻宠物 + if not visited_player_data.has("巡逻宠物") or visited_player_data["巡逻宠物"].size() == 0: + Toast.show("对方没有巡逻宠物,无法发起对战", Color.RED, 3.0) + return + + # 检查自己是否有出战宠物 + if not battle_pets or battle_pets.size() == 0: + Toast.show("你没有出战宠物,无法发起对战", Color.RED, 3.0) + return + + # 获取对方的巡逻宠物数据(取第一个)- 新格式 + var target_patrol_pet = visited_player_data["巡逻宠物"][0] + var target_patrol_pet_name = target_patrol_pet.get("pet_name", "未知宠物") + var target_patrol_pet_level = target_patrol_pet.get("pet_level", 1) + var target_patrol_pet_type = target_patrol_pet.get("pet_type", "未知类型") + + # 获取自己的出战宠物数据(取第一个)- 新格式 + var my_battle_pet = battle_pets[0] + var my_battle_pet_name = my_battle_pet.get("pet_name", "未知宠物") + var my_battle_pet_level = my_battle_pet.get("pet_level", 1) + var my_battle_pet_type = my_battle_pet.get("pet_type", "未知类型") + + # 检查是否为同一个宠物(防止冲突)- 新格式 + var my_battle_pet_id = my_battle_pet.get("pet_id", "") + var target_patrol_pet_id = target_patrol_pet.get("pet_id", "") + if check_battle_patrol_conflict(my_battle_pet_id, target_patrol_pet_id): + Toast.show("出战宠物和巡逻宠物不能为同一个!", Color.RED, 3.0) + return + + # 显示对战确认弹窗 + _show_battle_confirmation_dialog( + target_patrol_pet, + my_battle_pet, + visited_player_data.get("玩家昵称", "未知玩家") + ) + +# 显示对战确认弹窗 +func _show_battle_confirmation_dialog(target_patrol_pet: Dictionary, my_battle_pet: Dictionary, target_player_name: String) -> void: + # 构建对话框内容 + var dialog_content = "确定要向 %s 的巡逻宠物发起对战吗?\n\n" % target_player_name + + # 显示对方的巡逻宠物(所有) + dialog_content += "🛡️ 对方巡逻宠物:\n" + var defender_pets = visited_player_data.get("巡逻宠物", [target_patrol_pet]) + for i in range(min(4, defender_pets.size())): + var pet = defender_pets[i] + var pet_name = pet.get("pet_name", "未知宠物") + var pet_level = pet.get("pet_level", 1) + var pet_type = pet.get("pet_type", "未知类型") + dialog_content += " %d. %s (类型:%s, 等级:%d)\n" % [i+1, pet_name, pet_type, pet_level] + + dialog_content += "\n⚔️ 你的出战宠物:\n" + # 显示自己的出战宠物(所有) + var attacker_pets = battle_pets if battle_pets.size() > 0 else [my_battle_pet] + for i in range(min(4, attacker_pets.size())): + var pet = attacker_pets[i] + var pet_name = pet.get("pet_name", "未知宠物") + var pet_level = pet.get("pet_level", 1) + var pet_type = pet.get("pet_type", "未知类型") + dialog_content += " %d. %s (类型:%s, 等级:%d)\n" % [i+1, pet_name, pet_type, pet_level] + + dialog_content += "\n⚠️ 注意:对战失败可能会有惩罚!" + + # 使用现有的accept_dialog + if not accept_dialog: + Toast.show("对话框不可用", Color.RED, 2.0) + return + + # 清除之前的信号连接 + if accept_dialog.confirmed.is_connected(_on_direct_battle_confirmed): + accept_dialog.confirmed.disconnect(_on_direct_battle_confirmed) + if accept_dialog.canceled.is_connected(_on_direct_battle_canceled): + accept_dialog.canceled.disconnect(_on_direct_battle_canceled) + + # 设置对话框内容 + accept_dialog.set_dialog_title("宠物对战确认") + accept_dialog.set_dialog_content(dialog_content) + accept_dialog.set_ok_text("发起对战") + accept_dialog.set_cancel_text("取消") + + # 连接信号 + accept_dialog.confirmed.connect(_on_direct_battle_confirmed.bind(target_patrol_pet, my_battle_pet)) + accept_dialog.canceled.connect(_on_direct_battle_canceled) + + # 显示对话框 + accept_dialog.popup_centered() + +# 确认发起对战 +func _on_direct_battle_confirmed(target_patrol_pet: Dictionary, my_battle_pet: Dictionary) -> void: + # 获取玩家名称 + var my_name = show_player_name.text.replace("玩家昵称:", "") + var target_name = visited_player_data.get("玩家昵称", "对方") + + # 设置对战面板数据 + pet_battle_panel.setup_steal_battle( + battle_pets, # 传递完整的出战宠物数组 + visited_player_data.get("巡逻宠物", [target_patrol_pet]), # 传递完整的巡逻宠物数组 + my_name, + target_name + ) + + # 显示对战面板 + pet_battle_panel.show() + GlobalVariables.isZoomDisabled = true + + Toast.show("对战开始!", Color.GREEN, 2.0) + +# 取消发起对战 +func _on_direct_battle_canceled() -> void: + Toast.show("已取消对战", Color.GRAY, 2.0) + +# 更新对战按钮显示状态 +func _update_battle_button_visibility() -> void: + + # 检查对方是否有巡逻宠物 + var has_patrol_pets = visited_player_data.has("巡逻宠物") and visited_player_data["巡逻宠物"].size() > 0 + + # 检查自己是否有出战宠物 + var has_battle_pets = battle_pets and battle_pets.size() > 0 + + # 只有当对方有巡逻宠物且自己有出战宠物时才显示对战按钮 + if has_patrol_pets and has_battle_pets: + battle_button.show() + else: + battle_button.hide() +#========================访问模式直接向巡逻宠物发起战斗======================== + + + #=======================================智慧树系统========================================= #智慧树按钮点击 @@ -3238,7 +3452,6 @@ func _on_wisdom_tree_pressed() -> void: return wisdom_tree_panel.show() - # 更新智慧树显示 func update_wisdom_tree_display(): var config = login_data.get("智慧树配置", {}) @@ -3258,8 +3471,6 @@ func _update_wisdom_tree_display(config: Dictionary): tree_status.text = "等级lv:" + str(level) + " 高度:" + str(height) + "cm" if wisdom_tree_image: - var scale_factor = 0.5 + min((height - 20.0) / 80.0, 1.1) - 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) @@ -3299,8 +3510,6 @@ func handle_wisdom_tree_response(data: Dictionary): # 确保智慧树配置格式正确 func _ensure_wisdom_tree_config_format(config: Dictionary) -> Dictionary: var new_config = config.duplicate() - - # 确保必需字段 for key in ["当前生命值", "最大生命值", "当前经验值"]: if not new_config.has(key): @@ -3361,22 +3570,129 @@ func _handle_save_game_settings_response(data): #打开小卖部面板 func _on_my_store_button_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人小卖部",Color.RED) + return player_store_panel.show() pass #打开小卖部面板 func _on_player_store_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人小卖部",Color.RED) + return player_store_panel.show() pass +#打开种子商店 func _on_seed_store_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人种子商店",Color.RED) + return crop_store_panel.show() pass +#打开道具商店 func _on_item_store_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人道具商店",Color.RED) + return item_store_panel.show() pass +#打开宠物商店 func _on_pet_store_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人宠物商店",Color.RED) + return pet_store_panel.show() pass + +#打开作物仓库 +func _on_crop_warehouse_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人作物仓库",Color.RED) + return + crop_warehouse_panel.show() + pass + +#打开种子仓库 +func _on_seed_warehouse_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人种子仓库",Color.RED) + return + crop_store_panel.show() + pass + +#打开玩家排行榜 +func _on_player_rank_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人玩家排行榜",Color.RED) + return + player_ranking_panel.show() + pass + +#打开每日签到 +func _on_daily_checkin_gift_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人每日签到礼包",Color.RED) + return + daily_check_in_panel.show() + pass + +#打开在线礼包 +func _on_online_time_gift_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人在线时长礼包",Color.RED) + return + online_gift_panel.show() + pass + +#打开宠物背包 +func _on_pet_bag_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人宠物背包",Color.RED) + return + pet_bag_panel.show() + pass + +#打开道具背包 +func _on_item_bag_pressed() -> void: + if is_visiting_mode: + Toast.show("您不能访问他人道具背包",Color.RED) + return + item_bag_panel.show() + pass + +# ======================================= 宠物对战系统 ========================================= +# 处理宠物对战结束 +func _on_pet_battle_ended(winner_team: String, battle_data: Dictionary): + """处理宠物对战结束后的逻辑""" + print("[宠物对战] 对战结束,获胜方: ", winner_team) + print("[宠物对战] 对战数据: ", battle_data) + + # 准备发送到服务器的对战结果数据 + var battle_result = { + "winner_team": winner_team, + "attacker_name": user_name, # 攻击方(玩家自己) + "defender_name": visited_player_data.get("玩家昵称", "未知玩家"), # 防守方(被访问玩家) + "battle_type": "steal_battle", # 对战类型:偷菜对战 + "attacker_pets": battle_data.get("attacker_pets", []), # 攻击方宠物数据 + "defender_pets": battle_data.get("defender_pets", []), # 防守方宠物数据 + "battle_duration": battle_data.get("battle_duration", 0), # 对战持续时间 + "timestamp": Time.get_unix_time_from_system() # 对战时间戳 + } + + # 发送对战结果到服务器 + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("send_pet_battle_result"): + tcp_network_manager_panel.send_pet_battle_result(battle_result) + print("[宠物对战] 对战结果已发送到服务器") + else: + print("[宠物对战] 无法发送对战结果到服务器") + + # 显示对战结果提示 + if winner_team == "attacker": + Toast.show("恭喜!您在偷菜对战中获胜!", Color.GREEN) + else: + Toast.show("很遗憾,您在偷菜对战中失败了。", Color.RED) +# ======================================= 宠物对战系统 ========================================= diff --git a/MainGame.tscn b/MainGame.tscn index b8fb95d..f267d49 100644 --- a/MainGame.tscn +++ b/MainGame.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=97 format=3 uid="uid://dgh61dttaas5a"] +[gd_scene load_steps=105 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"] @@ -39,6 +39,7 @@ [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="PackedScene" uid="uid://diwbnwhnq026" path="res://Scene/NewPet/PetBattlePanel.tscn" id="29_mw3xw"] [ext_resource type="PackedScene" uid="uid://dos15dmc1b6bt" path="res://GUI/GameSettingPanel.tscn" id="30_game_setting"] [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"] @@ -70,7 +71,14 @@ [ext_resource type="Texture2D" uid="uid://cqqyc3ddwtvpn" path="res://assets/天气系统图片/栀子花3.webp" id="55_iluto"] [ext_resource type="Texture2D" uid="uid://d4e54gh5iccul" path="res://assets/装饰物图片/道具商店.webp" id="56_rlmnt"] [ext_resource type="Texture2D" uid="uid://deow5dqdm412v" path="res://assets/装饰物图片/宠物商店.webp" id="57_rlmnt"] +[ext_resource type="Texture2D" uid="uid://dfeqilibb6ecs" path="res://assets/装饰物图片/作物仓库.webp" id="58_mjfri"] +[ext_resource type="Texture2D" uid="uid://b738esrtjlho7" path="res://assets/装饰物图片/种子仓库.webp" id="59_612dn"] +[ext_resource type="Texture2D" uid="uid://cbj1s6ctp0utb" path="res://assets/装饰物图片/玩家排行榜.webp" id="60_2fqxv"] [ext_resource type="Script" uid="uid://o4mcuqoivqri" path="res://GameManager/WeatherSystem.gd" id="62_uyv6e"] +[ext_resource type="Texture2D" uid="uid://deh0dnprkw155" path="res://assets/装饰物图片/每日签到礼包.webp" id="63_ekowe"] +[ext_resource type="Texture2D" uid="uid://ic2nvi3xlwl4" path="res://assets/装饰物图片/在线时长礼包.webp" id="64_crc4a"] +[ext_resource type="Texture2D" uid="uid://1xgmal8sw6il" path="res://assets/装饰物图片/宠物背包.webp" id="67_onvxb"] +[ext_resource type="Texture2D" uid="uid://ywdg7xgq7hm8" path="res://assets/装饰物图片/道具背包.webp" id="68_bpbm8"] [ext_resource type="Texture2D" uid="uid://bnv6wb0k443fv" path="res://assets/天气系统图片/柳叶2.webp" id="69_uyv6e"] [ext_resource type="Script" uid="uid://di8wjflimodb0" path="res://GameManager/DayNightSystem.gd" id="73_6fhdl"] @@ -277,6 +285,20 @@ fog_density = 1.0 [node name="main" type="Node"] script = ExtResource("1_v3yaj") +[node name="PetPatrolPoints" type="Node" parent="."] + +[node name="Pos1" type="Marker2D" parent="PetPatrolPoints"] +position = Vector2(-276, -151) + +[node name="Pos2" type="Marker2D" parent="PetPatrolPoints"] +position = Vector2(-276, 1052) + +[node name="Pos3" type="Marker2D" parent="PetPatrolPoints"] +position = Vector2(1391, 1052) + +[node name="Pos4" type="Marker2D" parent="PetPatrolPoints"] +position = Vector2(1391, -184) + [node name="UI" type="CanvasLayer" parent="."] [node name="GUI" type="Control" parent="UI"] @@ -602,6 +624,18 @@ layout_mode = 2 theme_override_font_sizes/font_size = 40 text = "点赞" +[node name="BattleButton" type="Button" parent="UI/GUI/VisitVBox"] +modulate = Color(0, 0.784782, 0.487639, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 40 +text = "发起对战" + +[node name="UseItemButton" type="Button" parent="UI/GUI/VisitVBox"] +modulate = Color(0.37232, 0.679193, 1, 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 @@ -916,6 +950,9 @@ visible = false [node name="GameSettingPanel" parent="UI/BigPanel" instance=ExtResource("30_game_setting")] visible = false +[node name="PetBattlePanel" parent="UI/BigPanel" instance=ExtResource("29_mw3xw")] +visible = false + [node name="SmallPanel" type="CanvasLayer" parent="UI"] [node name="LoadProgressPanel" parent="UI/SmallPanel" instance=ExtResource("27_vygm6")] @@ -1427,7 +1464,9 @@ 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 = "只需花费一点点钱币,就可以匿名发送一句话,由于智慧树强大的链接性,其他玩家在浇水施肥时就有概率收到这句话。向他人发送一句祝福吧(,,・ω・,,) ,只要你不断的给智慧树浇水施肥,它就会长得越来越高" +text = "只需花费一点点钱币,就可以匿名发送一句话,由于智慧树强大的链接性, +其他玩家在浇水施肥时就有概率收到这句话。向他人发送一句祝福吧(,,・ω・,,) , +只要你不断的给智慧树浇水施肥,它就会长得越来越高" horizontal_alignment = 1 vertical_alignment = 1 autowrap_mode = 2 @@ -1881,14 +1920,6 @@ script = ExtResource("17_0igvr") [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(-200, -100, -200, 1500, 1500, 1500, 1500, -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) @@ -2056,6 +2087,7 @@ layout_mode = 0 offset_left = 13.0 offset_right = 390.0 offset_bottom = 113.0 +theme_override_constants/outline_size = 20 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 @@ -2207,7 +2239,7 @@ text = "宠物商店" horizontal_alignment = 1 vertical_alignment = 1 -[node name="Decoration5" type="Button" parent="Decoration"] +[node name="CropWarehouse" type="Button" parent="Decoration"] self_modulate = Color(1, 1, 1, 0) custom_minimum_size = Vector2(100, 100) offset_left = 610.0 @@ -2216,18 +2248,17 @@ offset_right = 874.0 offset_bottom = 156.0 scale = Vector2(0.4, 0.4) -[node name="GrassGroundImage" type="Sprite2D" parent="Decoration/Decoration5"] +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration/CropWarehouse"] position = Vector2(132, 134) scale = Vector2(1.4, 1.4) texture = ExtResource("48_2i8fe") -[node name="Image" type="Sprite2D" parent="Decoration/Decoration5"] +[node name="Image" type="Sprite2D" parent="Decoration/CropWarehouse"] position = Vector2(132, 48) scale = Vector2(1.2, 1.2) -texture = ExtResource("49_xjiif") +texture = ExtResource("58_mjfri") -[node name="Name" type="RichTextLabel" parent="Decoration/Decoration5"] -visible = false +[node name="Name" type="RichTextLabel" parent="Decoration/CropWarehouse"] layout_mode = 0 offset_left = -65.0 offset_top = -145.0 @@ -2239,11 +2270,11 @@ 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 = "稻草人" +text = "作物仓库" horizontal_alignment = 1 vertical_alignment = 1 -[node name="Decoration6" type="Button" parent="Decoration"] +[node name="SeedWarehouse" type="Button" parent="Decoration"] self_modulate = Color(1, 1, 1, 0) custom_minimum_size = Vector2(100, 100) offset_left = 732.0 @@ -2252,18 +2283,17 @@ offset_right = 996.0 offset_bottom = 156.0 scale = Vector2(0.4, 0.4) -[node name="GrassGroundImage" type="Sprite2D" parent="Decoration/Decoration6"] +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration/SeedWarehouse"] position = Vector2(132, 134) scale = Vector2(1.4, 1.4) texture = ExtResource("48_2i8fe") -[node name="Image" type="Sprite2D" parent="Decoration/Decoration6"] +[node name="Image" type="Sprite2D" parent="Decoration/SeedWarehouse"] position = Vector2(132, 48) scale = Vector2(1.2, 1.2) -texture = ExtResource("49_xjiif") +texture = ExtResource("59_612dn") -[node name="Name" type="RichTextLabel" parent="Decoration/Decoration6"] -visible = false +[node name="Name" type="RichTextLabel" parent="Decoration/SeedWarehouse"] layout_mode = 0 offset_left = -65.0 offset_top = -145.0 @@ -2275,11 +2305,11 @@ 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 = "稻草人" +text = "种子仓库" horizontal_alignment = 1 vertical_alignment = 1 -[node name="Decoration7" type="Button" parent="Decoration"] +[node name="PlayerRank" type="Button" parent="Decoration"] self_modulate = Color(1, 1, 1, 0) custom_minimum_size = Vector2(100, 100) offset_left = 854.0 @@ -2288,18 +2318,17 @@ offset_right = 1118.0 offset_bottom = 156.0 scale = Vector2(0.4, 0.4) -[node name="GrassGroundImage" type="Sprite2D" parent="Decoration/Decoration7"] +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration/PlayerRank"] position = Vector2(132, 134) scale = Vector2(1.4, 1.4) texture = ExtResource("48_2i8fe") -[node name="Image" type="Sprite2D" parent="Decoration/Decoration7"] +[node name="Image" type="Sprite2D" parent="Decoration/PlayerRank"] position = Vector2(132, 48) scale = Vector2(1.2, 1.2) -texture = ExtResource("50_sqnmr") +texture = ExtResource("60_2fqxv") -[node name="Name" type="RichTextLabel" parent="Decoration/Decoration7"] -visible = false +[node name="Name" type="RichTextLabel" parent="Decoration/PlayerRank"] layout_mode = 0 offset_left = -65.0 offset_top = -145.0 @@ -2311,7 +2340,7 @@ 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 = "稻草人" +text = "[rainbow]玩家排行榜[/rainbow]" horizontal_alignment = 1 vertical_alignment = 1 @@ -2330,16 +2359,17 @@ scale = Vector2(1.4, 1.4) texture = ExtResource("48_2i8fe") [node name="WisdomTreeImage" type="Sprite2D" parent="Decoration/WisdomTree"] -position = Vector2(126, 82) -scale = Vector2(0.5, 0.5) +position = Vector2(135, -107.5) +scale = Vector2(2.5, 2.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 +offset_left = 37.0 +offset_top = -450.0 +offset_right = 302.0 +offset_bottom = -401.0 theme_override_font_sizes/font_size = 35 text = "智慧树" horizontal_alignment = 1 @@ -2348,10 +2378,10 @@ 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 +offset_left = -85.0 +offset_top = -495.0 +offset_right = 407.0 +offset_bottom = -446.0 theme_override_font_sizes/font_size = 35 text = "等级lv:99 高度:99m" horizontal_alignment = 1 @@ -2359,10 +2389,10 @@ 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 +offset_left = -175.0 +offset_top = -655.0 +offset_right = 528.0 +offset_bottom = -500.0 theme_override_styles/panel = SubResource("StyleBoxFlat_6ylhg") [node name="AnonymousTalk" type="RichTextLabel" parent="Decoration/WisdomTree/BackgroundPanel"] @@ -2370,6 +2400,8 @@ layout_mode = 0 offset_left = 13.0 offset_right = 695.0 offset_bottom = 155.0 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 15 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 @@ -3107,7 +3139,7 @@ vertical_alignment = 1 [node name="Decoration4" type="Node2D" parent="."] position = Vector2(0, 976) -[node name="ScareCrow" type="Button" parent="Decoration4"] +[node name="DailyCheckinGift" type="Button" parent="Decoration4"] self_modulate = Color(1, 1, 1, 0) custom_minimum_size = Vector2(100, 100) offset_top = -108.0 @@ -3115,16 +3147,17 @@ offset_right = 264.0 offset_bottom = 156.0 scale = Vector2(0.4, 0.4) -[node name="GrassGroundImage" type="Sprite2D" parent="Decoration4/ScareCrow"] +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration4/DailyCheckinGift"] position = Vector2(132, 134) scale = Vector2(1.4, 1.4) texture = ExtResource("48_2i8fe") -[node name="Image" type="Sprite2D" parent="Decoration4/ScareCrow"] +[node name="Image" type="Sprite2D" parent="Decoration4/DailyCheckinGift"] position = Vector2(132, 48) scale = Vector2(1.2, 1.2) +texture = ExtResource("63_ekowe") -[node name="Name" type="RichTextLabel" parent="Decoration4/ScareCrow"] +[node name="Name" type="RichTextLabel" parent="Decoration4/DailyCheckinGift"] layout_mode = 0 offset_left = -65.0 offset_top = -145.0 @@ -3136,10 +3169,11 @@ 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="Decoration1" type="Button" parent="Decoration4"] +[node name="OnlineTimeGift" type="Button" parent="Decoration4"] self_modulate = Color(1, 1, 1, 0) custom_minimum_size = Vector2(100, 100) offset_left = 122.0 @@ -3148,18 +3182,17 @@ offset_right = 386.0 offset_bottom = 156.0 scale = Vector2(0.4, 0.4) -[node name="GrassGroundImage" type="Sprite2D" parent="Decoration4/Decoration1"] +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration4/OnlineTimeGift"] position = Vector2(132, 134) scale = Vector2(1.4, 1.4) texture = ExtResource("48_2i8fe") -[node name="Image" type="Sprite2D" parent="Decoration4/Decoration1"] +[node name="Image" type="Sprite2D" parent="Decoration4/OnlineTimeGift"] position = Vector2(132, 48) scale = Vector2(1.2, 1.2) -texture = ExtResource("49_xjiif") +texture = ExtResource("64_crc4a") -[node name="Name" type="RichTextLabel" parent="Decoration4/Decoration1"] -visible = false +[node name="Name" type="RichTextLabel" parent="Decoration4/OnlineTimeGift"] layout_mode = 0 offset_left = -65.0 offset_top = -145.0 @@ -3171,7 +3204,7 @@ 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 = "稻草人" +text = "在线时长礼包" horizontal_alignment = 1 vertical_alignment = 1 @@ -3355,7 +3388,7 @@ text = "稻草人" horizontal_alignment = 1 vertical_alignment = 1 -[node name="Decoration7" type="Button" parent="Decoration4"] +[node name="PetBag" type="Button" parent="Decoration4"] self_modulate = Color(1, 1, 1, 0) custom_minimum_size = Vector2(100, 100) offset_left = 854.0 @@ -3364,18 +3397,17 @@ offset_right = 1118.0 offset_bottom = 156.0 scale = Vector2(0.4, 0.4) -[node name="GrassGroundImage" type="Sprite2D" parent="Decoration4/Decoration7"] +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration4/PetBag"] position = Vector2(132, 134) scale = Vector2(1.4, 1.4) texture = ExtResource("48_2i8fe") -[node name="Image" type="Sprite2D" parent="Decoration4/Decoration7"] +[node name="Image" type="Sprite2D" parent="Decoration4/PetBag"] position = Vector2(132, 48) scale = Vector2(1.2, 1.2) -texture = ExtResource("50_sqnmr") +texture = ExtResource("67_onvxb") -[node name="Name" type="RichTextLabel" parent="Decoration4/Decoration7"] -visible = false +[node name="Name" type="RichTextLabel" parent="Decoration4/PetBag"] layout_mode = 0 offset_left = -65.0 offset_top = -145.0 @@ -3387,11 +3419,11 @@ 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 = "稻草人" +text = "宠物背包" horizontal_alignment = 1 vertical_alignment = 1 -[node name="WisdomTree" type="Button" parent="Decoration4"] +[node name="ItemBag" type="Button" parent="Decoration4"] self_modulate = Color(1, 1, 1, 0) custom_minimum_size = Vector2(100, 100) offset_left = 976.0 @@ -3400,18 +3432,24 @@ offset_right = 1240.0 offset_bottom = 156.0 scale = Vector2(0.4, 0.4) -[node name="Image" type="Sprite2D" parent="Decoration4/WisdomTree"] +[node name="GrassGroundImage" type="Sprite2D" parent="Decoration4/ItemBag"] position = Vector2(132, 134) scale = Vector2(1.4, 1.4) texture = ExtResource("48_2i8fe") -[node name="Name" type="Label" parent="Decoration4/WisdomTree"] +[node name="Image" type="Sprite2D" parent="Decoration4/ItemBag"] +position = Vector2(132, 48) +scale = Vector2(1.2, 1.2) +texture = ExtResource("68_bpbm8") + +[node name="Name" type="Label" parent="Decoration4/ItemBag"] 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 @@ -3568,6 +3606,7 @@ environment = SubResource("Environment_uyv6e") [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/BattleButton" to="." method="_on_battle_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/MyStoreButton" to="." method="_on_my_store_button_pressed"] [connection signal="pressed" from="UI/GUI/OtherVBox/AccountSettingButton" to="." method="_on_account_setting_button_pressed"] @@ -3590,6 +3629,11 @@ environment = SubResource("Environment_uyv6e") [connection signal="pressed" from="Decoration/SeedStore" to="." method="_on_seed_store_pressed"] [connection signal="pressed" from="Decoration/ItemStore" to="." method="_on_item_store_pressed"] [connection signal="pressed" from="Decoration/PetStore" to="." method="_on_pet_store_pressed"] +[connection signal="pressed" from="Decoration/CropWarehouse" to="." method="_on_crop_warehouse_pressed"] +[connection signal="pressed" from="Decoration/SeedWarehouse" to="." method="_on_seed_warehouse_pressed"] +[connection signal="pressed" from="Decoration/PlayerRank" to="." method="_on_player_rank_pressed"] [connection signal="pressed" from="Decoration/WisdomTree" to="." method="_on_wisdom_tree_pressed"] -[connection signal="pressed" from="Decoration4/ScareCrow" to="." method="_on_scare_crow_pressed"] -[connection signal="pressed" from="Decoration4/WisdomTree" to="." method="_on_wisdom_tree_pressed"] +[connection signal="pressed" from="Decoration4/DailyCheckinGift" to="." method="_on_daily_checkin_gift_pressed"] +[connection signal="pressed" from="Decoration4/OnlineTimeGift" to="." method="_on_online_time_gift_pressed"] +[connection signal="pressed" from="Decoration4/PetBag" to="." method="_on_pet_bag_pressed"] +[connection signal="pressed" from="Decoration4/ItemBag" to="." method="_on_item_bag_pressed"] diff --git a/Network/TCPNetworkManager.gd b/Network/TCPNetworkManager.gd index e9ce6fe..e532e70 100644 --- a/Network/TCPNetworkManager.gd +++ b/Network/TCPNetworkManager.gd @@ -64,6 +64,9 @@ func _ready(): # 创建TCP客户端实例 self.add_child(client) + # 禁用自动重连,避免频繁的本地连接 + client.auto_reconnect = false + # 连接信号 client.connected_to_server.connect(_on_connected) client.connection_failed.connect(_on_connection_failed) @@ -345,12 +348,24 @@ func _on_data_received(data): elif action_type == "set_patrol_pet": if success: main_game.patrol_pets = updated_data["巡逻宠物"] - main_game.update_patrol_pets() + main_game.update_patrol_pets(updated_data["巡逻宠物"]) pet_inform_panel._refresh_patrol_button() Toast.show(message, Color.GREEN) else: Toast.show(message, Color.RED) + # 设置出战宠物响应 + elif action_type == "set_battle_pet": + if success: + main_game.battle_pets = updated_data["出战宠物"] + pet_inform_panel._refresh_battle_button() + # 更新对战按钮显示状态 + if main_game.has_method("_update_battle_button_visibility"): + main_game._update_battle_button_visibility() + Toast.show(message, Color.GREEN) + else: + Toast.show(message, Color.RED) + # 使用道具响应 elif action_type == "use_item": if success: @@ -533,6 +548,11 @@ func _on_data_received(data): main_game._handle_crop_data_response(data) elif message_type == "item_config_response": main_game._handle_item_config_response(data) + elif message_type == "pet_config_response": + # 保存宠物配置到MainGame + main_game._handle_pet_config_response(data) + # 同时传递给宠物商店面板 + pet_store_panel._on_pet_config_received(data) elif message_type == "visit_player_response": main_game._handle_visit_player_response(data) elif message_type == "return_my_farm_response": @@ -934,6 +954,16 @@ func sendGetItemConfig(): }) return true +#发送获取宠物配置数据请求 +func sendGetPetConfig(): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "request_pet_config" + }) + return true + #发送访问玩家请求 func sendVisitPlayer(target_username): if not client.is_client_connected(): @@ -1169,6 +1199,18 @@ func send_get_wisdom_tree_config(): }) return true +#发送宠物对战结果 +func send_pet_battle_result(battle_result: Dictionary): + if not client.is_client_connected(): + return false + + client.send_data({ + "type": "pet_battle_result", + "battle_result": battle_result, + "timestamp": Time.get_unix_time_from_system() + }) + return true + #检查是否连接到服务器 func is_connected_to_server(): return client.is_client_connected() diff --git a/Scene/BigPanel/PlayerRankingPanel.tscn b/Scene/BigPanel/PlayerRankingPanel.tscn index 7fda763..cdd9f89 100644 --- a/Scene/BigPanel/PlayerRankingPanel.tscn +++ b/Scene/BigPanel/PlayerRankingPanel.tscn @@ -69,7 +69,7 @@ offset_top = 21.25 offset_right = 378.0 offset_bottom = 78.25 theme_override_font_sizes/font_size = 35 -text = "输入要搜索的人" +placeholder_text = "输入要搜索的人" [node name="RefreshButton" type="Button" parent="."] custom_minimum_size = Vector2(55, 55) diff --git a/Scene/NewPet/BulletBase.gd b/Scene/NewPet/BulletBase.gd new file mode 100644 index 0000000..47be326 --- /dev/null +++ b/Scene/NewPet/BulletBase.gd @@ -0,0 +1,368 @@ +extends Area2D +class_name BulletBase + +# 简化子弹系统 - 辅助攻击用 +# 基础功能:移动、碰撞检测、伤害 + +signal bullet_hit(bullet: BulletBase, target: NewPetBase) + +@onready var sprite: Sprite2D = $Sprite +@onready var collision_shape: CollisionShape2D = $CollisionShape2D + +const bullet = { + "小蓝弹":{ + "图片":"res://assets/子弹图片/01.png", + "函数":"create_blue_bullet" + }, + "小红弹":{ + "图片":"res://assets/子弹图片/02.png", + "函数":"create_red_bullet" + }, + "小粉弹":{ + "图片":"res://assets/子弹图片/03.png", + "函数":"create_pink_bullet" + }, + "小紫弹":{ + "图片":"res://assets/子弹图片/04.png", + "函数":"create_purple_bullet" + }, + "长橙弹":{ + "图片":"res://assets/子弹图片/21.png", + "函数":"create_long_orange_bullet" + }, + "长紫弹":{ + "图片":"res://assets/子弹图片/22.png", + "函数":"create_long_purple_bullet" + }, + "长绿弹":{ + "图片":"res://assets/子弹图片/25.png", + "函数":"create_long_green_bullet" + }, + "黄色闪电":{ + "图片":"res://assets/子弹图片/36.png", + "函数":"create_yellow_lightning_bullet" + }, + "绿色闪电":{ + "图片":"res://assets/子弹图片/35.png", + "函数":"create_green_lightning_bullet" + }, + "红色闪电":{ + "图片":"res://assets/子弹图片/33.png", + "函数":"create_red_lightning_bullet" + }, + "紫色闪电":{ + "图片":"res://assets/子弹图片/32.png", + "函数":"create_purple_lightning_bullet" + }, +} + + +# 基础子弹属性 +var direction: Vector2 = Vector2.RIGHT +var speed: float = 300.0 +var damage: float = 25.0 +var owner_pet: NewPetBase = null +var max_distance: float = 800.0 +var traveled_distance: float = 0.0 +var is_active: bool = true + +# 生存时间 +var lifetime: float = 3.0 +var current_lifetime: float = 0.0 + + +#==================基础函数========================= +func _ready(): + # 连接碰撞信号 + area_entered.connect(_on_area_entered) + + # 设置碰撞层 + collision_layer = 4 # 子弹层 + collision_mask = 1 # 只检测宠物层 + + # 添加到子弹组 + add_to_group("bullets") + +func _physics_process(delta): + if not is_active: + return + + # 更新生存时间 + current_lifetime += delta + if current_lifetime >= lifetime: + call_deferred("destroy_bullet") + return + + # 检查长紫弹分裂计时 + if has_meta("bullet_type") and get_meta("bullet_type") == "长紫弹": + var current_split_time = get_meta("current_split_time", 0.0) + var split_timer = get_meta("split_timer", 2.0) + current_split_time += delta + set_meta("current_split_time", current_split_time) + + if current_split_time >= split_timer: + # 时间到了,分裂并销毁 + call_deferred("create_split_bullets", global_position) + call_deferred("destroy_bullet") + return + + # 移动子弹 + var movement = direction * speed * delta + position += movement + traveled_distance += movement.length() + + # 检查最大距离 + if traveled_distance >= max_distance: + call_deferred("destroy_bullet") + return + + # 检查是否超出屏幕边界 + var viewport_rect = get_viewport().get_visible_rect() + if not viewport_rect.has_point(global_position): + call_deferred("destroy_bullet") +#==================基础函数========================= + + +#=============================每个子弹单独效果============================ +# 小蓝弹 +func create_blue_bullet(): + sprite.texture = load(bullet["小蓝弹"]["图片"]) + speed = 250.0 + damage = 20.0 + lifetime = 2.5 + sprite.modulate = Color(0.5, 0.8, 1.0, 1.0) # 蓝色调 + +# 小红弹 +func create_red_bullet(): + sprite.texture = load(bullet["小红弹"]["图片"]) + speed = 300.0 + damage = 25.0 + lifetime = 3.0 + sprite.modulate = Color(1.0, 0.5, 0.5, 1.0) # 红色调 + +# 小粉弹 +func create_pink_bullet(): + sprite.texture = load(bullet["小粉弹"]["图片"]) + speed = 280.0 + damage = 22.0 + lifetime = 2.8 + sprite.modulate = Color(1.0, 0.7, 0.9, 1.0) # 粉色调 + +# 小紫弹 +func create_purple_bullet(): + sprite.texture = load(bullet["小紫弹"]["图片"]) + speed = 320.0 + damage = 28.0 + lifetime = 3.2 + sprite.modulate = Color(0.8, 0.5, 1.0, 1.0) # 紫色调 + +# 长橙弹 +func create_long_orange_bullet(): + sprite.texture = load(bullet["长橙弹"]["图片"]) + speed = 350.0 + damage = 35.0 + lifetime = 4.0 + max_distance = 1000.0 + sprite.modulate = Color(1.0, 0.7, 0.3, 1.0) # 橙色调 + +# 长紫弹 +func create_long_purple_bullet(): + sprite.texture = load(bullet["长紫弹"]["图片"]) + speed = 330.0 + damage = 32.0 + lifetime = 3.8 + max_distance = 950.0 + sprite.modulate = Color(0.9, 0.4, 1.0, 1.0) # 深紫色调 + # 标记为长紫弹,2秒后自动分裂 + set_meta("bullet_type", "长紫弹") + set_meta("split_timer", 2.0) # 2秒后分裂 + set_meta("current_split_time", 0.0) # 当前计时 + +# 创建分裂子弹(长紫弹2秒后的效果) +func create_split_bullets(hit_position: Vector2): + """在指定位置生成4个小弹向四周发射""" + var bullet_types = ["小蓝弹", "小红弹", "小粉弹", "小紫弹"] + var bullet_scene = preload("res://Scene/NewPet/BulletBase.tscn") + + # 生成4个方向的子弹 + for i in range(4): + # 计算方向角度(每90度一个方向) + var angle = i * PI / 2.0 + var direction_vector = Vector2(cos(angle), sin(angle)) + + # 选择子弹类型(每种类型1个) + var bullet_type = bullet_types[i] + + # 创建子弹实例 + var new_bullet = bullet_scene.instantiate() + get_parent().add_child(new_bullet) + + # 设置子弹位置 + new_bullet.global_position = hit_position + + # 设置子弹属性(5个参数:方向、速度、伤害、所有者、子弹类型) + new_bullet.setup(direction_vector, 200.0, 15.0, owner_pet, bullet_type) + + # 分裂子弹生成完成 + +# 长绿弹 +func create_long_green_bullet(): + sprite.texture = load(bullet["长绿弹"]["图片"]) + speed = 310.0 + damage = 30.0 + lifetime = 3.5 + max_distance = 900.0 + sprite.modulate = Color(0.4, 1.0, 0.5, 1.0) # 绿色调 + +# 黄色闪电 +func create_yellow_lightning_bullet(): + sprite.texture = load(bullet["黄色闪电"]["图片"]) + speed = 400.0 + damage = 40.0 + lifetime = 2.0 + max_distance = 600.0 + sprite.modulate = Color(1.0, 1.0, 0.3, 1.0) # 黄色闪电 + +# 绿色闪电 +func create_green_lightning_bullet(): + sprite.texture = load(bullet["绿色闪电"]["图片"]) + speed = 380.0 + damage = 38.0 + lifetime = 2.2 + max_distance = 650.0 + sprite.modulate = Color(0.3, 1.0, 0.3, 1.0) # 绿色闪电 + +# 红色闪电 +func create_red_lightning_bullet(): + sprite.texture = load(bullet["红色闪电"]["图片"]) + speed = 420.0 + damage = 45.0 + lifetime = 1.8 + max_distance = 550.0 + sprite.modulate = Color(1.0, 0.3, 0.3, 1.0) # 红色闪电 + +# 紫色闪电 +func create_purple_lightning_bullet(): + sprite.texture = load(bullet["紫色闪电"]["图片"]) + speed = 450.0 + damage = 50.0 + lifetime = 1.5 + max_distance = 500.0 + sprite.modulate = Color(0.8, 0.3, 1.0, 1.0) # 紫色闪电 +#=============================每个子弹单独效果============================ + + + +#=========================通用子弹函数============================== +# 通用子弹创建函数 +func create_bullet_by_name(bullet_name: String): + """根据子弹名称创建对应类型的子弹""" + if not bullet.has(bullet_name): + return + + var bullet_data = bullet[bullet_name] + var function_name = bullet_data.get("函数", "") + + if function_name != "": + call(function_name) + + +# 获取子弹图标 +func get_bullet_icon(bullet_name: String) -> Texture2D: + if bullet.has(bullet_name) and bullet[bullet_name].has("图片"): + return load(bullet[bullet_name]["图片"]) + else: + return null + +# 获取所有子弹名称列表 +func get_all_bullet_names() -> Array: + return bullet.keys() + +# 创建击中特效 +func create_hit_effect(pos: Vector2): + pass + +#销毁子弹 +func destroy_bullet(): + """销毁子弹""" + is_active = false + remove_from_group("bullets") + queue_free() + +#初始化子弹 +func setup(dir: Vector2, spd: float, dmg: float, owner: NewPetBase, bullet_type: String = ""): + """初始化子弹""" + direction = dir.normalized() + owner_pet = owner + + # 如果指定了子弹类型,使用对应的创建函数 + if bullet_type != "" and bullet.has(bullet_type): + create_bullet_by_name(bullet_type) + else: + # 使用传入的参数作为默认值 + speed = spd + damage = dmg + # 简单的视觉效果 + sprite.modulate = Color.YELLOW + + # 设置子弹旋转 + rotation = direction.angle() + +#碰撞检测 +func _on_area_entered(area: Area2D): + """碰撞检测""" + if not is_active: + return + + # 检查是否是宠物 + if not area is NewPetBase: + return + + var pet_target = area as NewPetBase + + # 检查是否是有效目标 + if not is_valid_target(pet_target): + return + + # 造成伤害并延迟销毁子弹(避免在物理查询期间修改状态) + hit_target(pet_target) + call_deferred("destroy_bullet") + +#检查是否是有效攻击目标 +func is_valid_target(target: NewPetBase) -> bool: + """检查是否是有效攻击目标""" + # 检查owner_pet是否有效 + if not is_instance_valid(owner_pet): + owner_pet = null + + # 不能攻击自己的主人 + if target == owner_pet: + return false + + # 不能攻击同队伍 + if owner_pet != null and target.pet_team == owner_pet.pet_team: + return false + + # 不能攻击已死亡的宠物 + if not target.is_alive: + return false + + return true + +#击中目标 +func hit_target(target: NewPetBase): + """击中目标""" + # 检查owner_pet是否有效(防止已释放对象错误) + if not is_instance_valid(owner_pet): + owner_pet = null + + # 造成伤害 + target.take_damage(damage, owner_pet) + + # 发射信号 + bullet_hit.emit(self, target) + + # 创建击中特效 + create_hit_effect(target.global_position) + +#=========================通用子弹函数============================== diff --git a/Scene/NewPet/BulletBase.gd.uid b/Scene/NewPet/BulletBase.gd.uid new file mode 100644 index 0000000..aaac367 --- /dev/null +++ b/Scene/NewPet/BulletBase.gd.uid @@ -0,0 +1 @@ +uid://bt57qac8hmg1u diff --git a/Scene/NewPet/BulletBase.tscn b/Scene/NewPet/BulletBase.tscn new file mode 100644 index 0000000..fc4bc22 --- /dev/null +++ b/Scene/NewPet/BulletBase.tscn @@ -0,0 +1,29 @@ +[gd_scene load_steps=4 format=3 uid="uid://cqtv1dob3dm8b"] + +[ext_resource type="Script" uid="uid://bt57qac8hmg1u" path="res://Scene/NewPet/BulletBase.gd" id="1_guena"] +[ext_resource type="Texture2D" uid="uid://by01joyt7e4qh" path="res://assets/子弹图片/01.png" id="2_2q4gn"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_1"] +radius = 8.0 + +[node name="BulletBase" type="Area2D"] +script = ExtResource("1_guena") + +[node name="Sprite" type="Sprite2D" parent="."] +modulate = Color(1, 1, 0, 0.8) +scale = Vector2(0.5, 0.5) +texture = ExtResource("2_2q4gn") + +[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) + +[node name="HitEffect" type="Node2D" parent="."] + +[node name="LifeTimer" type="Timer" parent="."] +wait_time = 5.0 +one_shot = true +autostart = true diff --git a/Scene/NewPet/NewPetBase.gd b/Scene/NewPet/NewPetBase.gd new file mode 100644 index 0000000..00daf40 --- /dev/null +++ b/Scene/NewPet/NewPetBase.gd @@ -0,0 +1,1198 @@ +extends Area2D +class_name NewPetBase + +#============================信号管理============================== +signal pet_died(pet: NewPetBase) +signal pet_attacked(attacker: NewPetBase, target: NewPetBase, damage: float) +signal pet_skill_used(pet: NewPetBase, skill_name: String) +#============================信号管理============================== + + +#============================节点引用=============================== +# 节点引用 +@onready var pet_image: AnimatedSprite2D = $PetImage +@onready var left_tool_image: Sprite2D = $PetImage/LeftToolImage +@onready var right_tool_image: Sprite2D = $PetImage/RightToolImage +@onready var volume_collision: CollisionShape2D = $VolumeCollision + +# UI节点引用 +@onready var pet_inform_vbox: VBoxContainer = $PetInformVBox +@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 +#============================节点引用=============================== + + +#============================枚举=============================== +# 攻击类型枚举 +enum AttackType { + MELEE # 近战攻击 +} + +enum ElementType { + NONE, METAL, WOOD, WATER, FIRE, EARTH, THUNDER +} + +enum PetState { + IDLE, # 待机 + MOVING, # 移动 + ATTACKING, # 攻击中 + SKILL_CASTING, # 释放技能 + PATROLLING, # 巡逻 + DEAD # 死亡 +} +#============================枚举=============================== + + +#============================宠物所有属性=============================== +# 基本属性 +var pet_name: String = "萌芽小绿" # 宠物名称 +var pet_team: String = "attacker" # 所属队伍(attacker进攻方 或 defender防守方) +var pet_id: String = "0001" # 宠物唯一编号 +var pet_type: String = "小绿" # 宠物种类 +var pet_level: int = 50 # 宠物等级 +var pet_image_path: String = "" # 宠物图片路径 + +# 生命与防御 +var max_health: float = 200.0 # 最大生命值 +var current_health: float = 200.0 # 当前生命值 +var enable_health_regen: bool = true # 是否开启生命恢复 +var health_regen: float = 1.0 # 每秒生命恢复大小 +var enable_shield_regen: bool = true # 是否开启护盾恢复 +var max_shield: float = 100.0 # 最大护盾值 +var current_shield: float = 100.0 # 当前护盾值 +var shield_regen: float = 1.0 # 每秒护盾恢复大小 +var max_armor: float = 100.0 # 最大护甲值 +var current_armor: float = 100.0 # 当前护甲值 + +# 攻击属性 +var attack_type: AttackType = AttackType.MELEE # 攻击类型(仅近战) +var base_attack_damage: float = 25.0 # 基础攻击力 +var attack_range: float = 100.0 # 攻击范围(近战或远程都适用) +var attack_speed: float = 1.0 # 每秒攻击次数(攻速) +var crit_rate: float = 0.1 # 暴击几率(0~1) +var crit_damage: float = 1.5 # 暴击伤害倍率(1.5 = 150%伤害) +var armor_penetration: float = 0.0 # 护甲穿透值(无视对方部分护甲) + +# 技能-多发射击 +var enable_multi_projectile_skill: bool = false +var projectile_speed: float = 300.0 # 投射物飞行速度 +var multi_projectile_count: int = 0 # 多发射击触发标记(0=未触发,1=已触发) +var multi_projectile_delay: float = 2 # 多发射击延迟时间(秒) +var multi_projectile_spread: float = 10.0 # 多发射击角度范围(度) +var spawn_time: float = 0.0 # 宠物生成时间 + +# 技能-狂暴模式 +var enable_berserker_skill: bool = false +var berserker_threshold: float = 0.3 # 狂暴触发阈值(生命值百分比) +var berserker_bonus: float = 1.5 # 狂暴伤害加成 +var berserker_duration: float = 5.0 # 狂暴持续时间(秒) +var berserker_triggered: bool = false # 是否已触发过狂暴(防止重复触发) +var is_berserker: bool = false # 是否处于狂暴状态 +var berserker_end_time: float = 0.0 # 狂暴结束时间 + +#技能-自爆 +var enable_self_destruct_skill: bool = false +var self_destruct_damage: float = 50.0 # 自爆伤害值 + +#技能-召唤小弟 +var enable_summon_pet_skill: bool = false +var summon_health_threshold: float = 0.5 # 召唤触发阈值(生命值百分比) +var summon_count: int = 1 # 召唤小弟数量 +var summon_triggered: bool = false # 是否已触发过召唤(防止重复触发) +var summon_scale: float = 0.1 # 召唤小弟属性缩放比例(10%) + +#技能-死亡重生 +var enable_death_respawn_skill: bool = false +var respawn_health_percentage: float = 0.3 # 重生时恢复的血量百分比(30%) +var max_respawn_count: int = 1 # 最大重生次数 +var current_respawn_count: int = 0 # 当前已重生次数 + +#击退效果 +var enable_knockback: bool = true # 是否启用击退效果 +var knockback_force: float = 300.0 # 击退力度(像素/秒) +var knockback_duration: float = 0.8 # 击退持续时间(秒) +var knockback_velocity: Vector2 = Vector2.ZERO # 当前击退速度 +var knockback_end_time: float = 0.0 # 击退结束时间 +var is_being_knocked_back: bool = false # 是否正在被击退 + +# 边界限制 +var boundary_min: Vector2 = Vector2(0, 0) # 边界最小坐标 +var boundary_max: Vector2 = Vector2(1400, 720) # 边界最大坐标 +var boundary_damage: float = 10.0 # 碰撞边界时受到的伤害 +var boundary_bounce_force: float = 200.0 # 边界反弹力度 + + +# 移动属性 +var move_speed: float = 150.0 # 移动速度(像素/秒) +var dodge_rate: float = 0.05 # 闪避概率(0~1) + +# 元素属性 +var element_type: ElementType = ElementType.NONE # 元素类型(例如火、水、雷等) +var element_damage_bonus: float = 50.0 # 元素伤害加成(额外元素伤害) + + +# 武器系统 +var left_weapon: String = "" # 左手武器名称 +var right_weapon: String = "" # 右手武器名称 +var weapon_system: WeaponBase # 武器系统引用 + +# 巡逻状态 +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 patrol_center_position: Vector2 = Vector2.ZERO # 巡逻中心点位置 +var patrol_radius: float = 150.0 # 巡逻半径 +var patrol_target_position: Vector2 = Vector2.ZERO # 当前巡逻目标位置 +var patrol_move_timer: float = 0.0 # 巡逻移动计时器 +var patrol_move_interval: float = 2.0 # 巡逻移动间隔(秒) + +# 战斗控制 +var combat_enabled: bool = true # 是否启用战斗行为 + +#============================宠物所有属性=============================== + + + +#============================杂项未处理=============================== +# 状态变量 +var current_state: PetState = PetState.IDLE # 当前状态(待机、移动、攻击等) +var current_target: NewPetBase = null # 当前目标(敌方宠物对象) +var last_attack_time: float = 0.0 # 上次攻击时间(用于计算攻速冷却) +var velocity: Vector2 = Vector2.ZERO # 当前移动速度(方向与速度) +var is_alive: bool = true # 是否存活 + +# 子弹场景 +var bullet_scene: PackedScene = preload("res://Scene/NewPet/BulletBase.tscn") + +# 性能优化变量 +var update_ui_timer: float = 0.0 +var ui_update_interval: float = 0.2 # UI更新间隔,减少频繁更新 +var ai_update_timer: float = 0.0 +var ai_update_interval: float = 0.05 # AI更新间隔,平衡性能和反应速度 +#============================杂项未处理=============================== + + +#====================基础方法========================= +func _ready(): + # 记录生成时间 + spawn_time = Time.get_ticks_msec() / 1000.0 + #默认佩戴武器测试武器系统 + equip_weapon("钻石剑", "left") + equip_weapon("铁镐", "right") + + # 初始化武器系统 + init_weapon_system() + + # 初始化UI + update_ui() + # 设置碰撞层和掩码 + setup_collision_layers() + # 延迟一帧后开始AI,确保所有宠物都已生成 + await get_tree().process_frame + _start_ai() + +func _physics_process(delta): + if not is_alive: + return + + # 更新计时器 + update_ui_timer += delta + ai_update_timer += delta + + # 生命恢复 + if enable_health_regen and current_health < max_health: + current_health = min(max_health, current_health + health_regen * delta) + + # 护盾恢复 + if enable_shield_regen and max_shield > 0 and current_shield < max_shield: + current_shield = min(max_shield, current_shield + shield_regen * delta) + + # 巡逻逻辑已简化为静态生成,无需移动处理 + + # AI更新 + if ai_update_timer >= ai_update_interval: + update_ai() + ai_update_timer = 0.0 + + # 检查技能-多发射击触发 + if enable_multi_projectile_skill: + check_multi_projectile_skill() + + # 检查技能-狂暴模式触发 + if enable_berserker_skill: + check_berserker_skill() + + # 检查技能-召唤小弟触发 + if enable_summon_pet_skill: + check_summon_pet_skill() + + # 击退效果处理 + if is_being_knocked_back: + var current_time = Time.get_ticks_msec() / 1000.0 + if current_time >= knockback_end_time: + # 击退结束 + is_being_knocked_back = false + knockback_velocity = Vector2.ZERO + else: + # 应用击退速度,逐渐衰减 + var remaining_time = knockback_end_time - current_time + var decay_factor = remaining_time / knockback_duration + position += knockback_velocity * decay_factor * delta + + # 移动处理(击退时不应用普通移动) + if not is_being_knocked_back and velocity.length() > 0: + position += velocity * delta + velocity = velocity.move_toward(Vector2.ZERO, 500 * delta) # 摩擦力 + + # 边界检测和反弹处理 + check_boundary_collision() + + # UI更新 + if update_ui_timer >= ui_update_interval: + update_ui() + update_ui_timer = 0.0 +#====================基础方法========================= + + + +#=========================宠物系统通用函数================================== +#设置碰撞体积(对远程攻击还是有用的) +func setup_collision_layers(): + collision_layer = 1 + collision_mask = 1 + +#开启宠物ai系统 +func _start_ai(): + """启动AI,立即寻找目标""" + if not is_alive: + return + + # 立即寻找最近的敌人 + current_target = find_nearest_enemy() + + # 如果找到目标,开始移动或攻击 + if current_target != null: + current_state = PetState.MOVING + # 找到攻击目标 + +#AI逻辑更新 +func update_ai(): + """AI逻辑更新""" + if current_state == PetState.DEAD or is_being_knocked_back: + return + + # 如果正在巡逻,执行巡逻AI逻辑 + if is_patrolling: + update_patrol_ai() + return + + # 如果启用了战斗且不在巡逻状态,执行战斗AI + if combat_enabled and not is_patrolling: + # 寻找目标(即使在攻击状态也要检查目标有效性) + if current_target == null or not current_target.is_alive: + current_target = find_nearest_enemy() + + if current_target == null: + # 没有目标时,继续搜索而不是待机 + current_state = PetState.MOVING + pet_image.animation = "walk" + # 随机移动寻找敌人 + var random_direction = Vector2(randf_range(-1, 1), randf_range(-1, 1)).normalized() + velocity = random_direction * move_speed * 0.5 + return + + # 如果正在攻击,等待攻击完成 + if current_state == PetState.ATTACKING: + return + + var distance_to_target = global_position.distance_to(current_target.global_position) + + # 优先近战攻击(包含武器攻击范围加成) + var total_attack_range = attack_range + if distance_to_target <= total_attack_range: + if can_attack(): + perform_melee_attack() + else: + current_state = PetState.IDLE + pet_image.animation = "idle" + else: + # 移动到目标 + move_towards_target() + +#寻找最近的敌人 +func find_nearest_enemy() -> NewPetBase: + """寻找最近的敌人""" + var enemies = get_tree().get_nodes_in_group("pets") + var nearest_enemy: NewPetBase = null + var min_distance = INF + + for enemy in enemies: + if enemy == self or not enemy.is_alive or enemy.pet_team == pet_team: + continue + + var distance = global_position.distance_to(enemy.global_position) + if distance < min_distance: + min_distance = distance + nearest_enemy = enemy + + return nearest_enemy + +#移动到目标 +func move_towards_target(): + """移动到目标""" + if current_target == null: + return + + current_state = PetState.MOVING + pet_image.animation = "walk" + + var direction = (current_target.global_position - global_position).normalized() + velocity = direction * move_speed + + # 翻转精灵 + if direction.x < 0: + pet_image.flip_h = false + left_tool_image.flip_h = true + right_tool_image.flip_h = true + left_tool_image.position = Vector2(-12.5,3.5) + right_tool_image.position = Vector2(-7.5,-6.25) + #left_tool_image.rotation = 21.8 + #right_tool_image.rotation = -14.5 + + + else: + pet_image.flip_h = true + left_tool_image.flip_h = false + right_tool_image.flip_h = false + left_tool_image.position = Vector2(12.5,3.5) + right_tool_image.position = Vector2(7.5,-6.25) + #left_tool_image.rotation = -21.8 + #right_tool_image.rotation = 14.5 + +#检查边界碰撞并处理反弹和伤害 +func check_boundary_collision(): + """检查边界碰撞并处理反弹和伤害""" + if not is_alive: + return + + # 巡逻宠物不受边界限制 + if is_patrolling: + return + + var collision_occurred = false + var bounce_direction = Vector2.ZERO + + # 检查X轴边界 + if position.x < boundary_min.x: + position.x = boundary_min.x + bounce_direction.x = 1.0 # 向右反弹 + collision_occurred = true + elif position.x > boundary_max.x: + position.x = boundary_max.x + bounce_direction.x = -1.0 # 向左反弹 + collision_occurred = true + + # 检查Y轴边界 + if position.y < boundary_min.y: + position.y = boundary_min.y + bounce_direction.y = 1.0 # 向下反弹 + collision_occurred = true + elif position.y > boundary_max.y: + position.y = boundary_max.y + bounce_direction.y = -1.0 # 向上反弹 + collision_occurred = true + + # 如果发生碰撞,应用反弹和伤害 + if collision_occurred: + # 应用反弹效果 + if bounce_direction.length() > 0: + bounce_direction = bounce_direction.normalized() + velocity = bounce_direction * boundary_bounce_force + # 如果正在被击退,也要修改击退方向 + if is_being_knocked_back: + knockback_velocity = bounce_direction * knockback_force + + # 造成边界伤害 + take_damage(boundary_damage, null) + # 边界碰撞处理 + +#检查是否可以攻击 +func can_attack() -> bool: + """检查是否可以攻击""" + var current_time = Time.get_ticks_msec() / 1000.0 + var time_since_last_attack = current_time - last_attack_time + # 计算总攻击速度(包含武器加成) + var total_attack_speed = attack_speed + var attack_cooldown = 1.0 / max(0.1, total_attack_speed) # 防止除零错误 + return time_since_last_attack >= attack_cooldown + +#执行近战攻击 +func perform_melee_attack(): + """执行近战攻击""" + current_state = PetState.ATTACKING + pet_image.animation = "idle" # 可以添加攻击动画 + last_attack_time = Time.get_ticks_msec() / 1000.0 + + # 显示武器 + left_tool_image.visible = true + right_tool_image.visible = true + + # 直接攻击当前目标(如果在攻击范围内) + if current_target != null and current_target.is_alive: + var distance_to_target = global_position.distance_to(current_target.global_position) + var total_attack_range = attack_range + if distance_to_target <= total_attack_range and current_target.pet_team != pet_team: + deal_damage_to(current_target) + # 执行近战攻击 + + # 隐藏武器并重置状态(延迟) + get_tree().create_timer(0.2).timeout.connect(func(): + #left_tool_image.visible = false + #right_tool_image.visible = false + current_state = PetState.IDLE + ) + + +#应用宠物外观图片 +func apply_pet_image(pet: NewPetBase, image_path: String): + """应用宠物外观图片""" + if image_path == "" or not ResourceLoader.exists(image_path): + return + + # 加载新的宠物场景 + var new_pet_scene = load(image_path) + if not new_pet_scene: + return + + # 实例化新场景以获取图片组件 + var temp_instance = new_pet_scene.instantiate() + # 根节点本身就是PetImage + var new_pet_image = temp_instance + var new_left_tool = temp_instance.get_node_or_null("LeftToolImage") + var new_right_tool = temp_instance.get_node_or_null("RightToolImage") + + if new_pet_image and new_pet_image is AnimatedSprite2D: + # 复制动画帧到现有宠物 + if new_pet_image.sprite_frames: + pet.pet_image.sprite_frames = new_pet_image.sprite_frames + #pet.pet_image.animation = new_pet_image.animation + pet.pet_image.scale = new_pet_image.scale + # 确保动画播放 + pet.pet_image.play() + + # 复制工具图片 + if new_left_tool and pet.left_tool_image: + pet.left_tool_image.texture = new_left_tool.texture + pet.left_tool_image.position = new_left_tool.position + pet.left_tool_image.flip_h = new_left_tool.flip_h + pet.left_tool_image.z_index = new_left_tool.z_index + pet.left_tool_image.visible = true + + if new_right_tool and pet.right_tool_image: + pet.right_tool_image.texture = new_right_tool.texture + pet.right_tool_image.position = new_right_tool.position + pet.right_tool_image.flip_h = new_right_tool.flip_h + pet.right_tool_image.show_behind_parent = new_right_tool.show_behind_parent + pet.right_tool_image.visible = true + + # 外观应用成功 + else: + pass # 静默处理错误 + + # 清理临时实例 + temp_instance.queue_free() + + # 重新更新武器图标(因为外观应用可能覆盖了武器图标) + if pet.weapon_system != null: + pet.update_weapon_icons() + +#对目标造成伤害 +func deal_damage_to(target: NewPetBase): + """对目标造成伤害""" + var damage = calculate_damage(target) + target.take_damage(damage, self) + + # 应用击退效果 + if enable_knockback and target.enable_knockback and target.is_alive: + apply_knockback_to(target) + + # 发射信号 + pet_attacked.emit(self, target, damage) + +#对目标应用击退效果 +func apply_knockback_to(target: NewPetBase): + """对目标应用击退效果""" + if not target.is_alive or target.is_being_knocked_back: + return + + # 计算击退方向(从攻击者指向目标) + var knockback_direction = (target.global_position - global_position).normalized() + + # 如果距离太近,使用随机方向避免除零错误 + if knockback_direction.length() < 0.1: + knockback_direction = Vector2(randf_range(-1, 1), randf_range(-1, 1)).normalized() + + # 设置击退参数(包含武器击退力加成) + var total_knockback_force = target.knockback_force + target.knockback_velocity = knockback_direction * total_knockback_force + target.is_being_knocked_back = true + var current_time = Time.get_ticks_msec() / 1000.0 + target.knockback_end_time = current_time + target.knockback_duration + + # 击退时暂停AI行为 + if target.current_state != PetState.DEAD: + target.current_state = PetState.IDLE + + # 击退效果生效 + +#计算伤害 +func calculate_damage(target: NewPetBase) -> float: + """计算伤害""" + var damage = base_attack_damage + + # 添加元素伤害加成(固定额外伤害) + damage += element_damage_bonus + + # 狂暴模式伤害加成 + if is_berserker: + damage *= berserker_bonus + + # 暴击计算(包含武器暴击率加成) + var total_crit_rate = crit_rate + if randf() < total_crit_rate: + damage *= crit_damage + + # 元素克制倍数(相克关系的倍数加成) + var element_multiplier = get_element_multiplier(element_type, target.element_type) + damage *= element_multiplier + + # 护甲减伤计算(新系统:护甲值直接减免伤害,但最少保留1点伤害) + # 包含武器护甲穿透加成 + var total_armor_penetration = armor_penetration + var effective_armor = max(0, target.current_armor - total_armor_penetration) + # 护甲值直接减免伤害 + damage = max(1.0, damage - effective_armor) # 最少保留1点伤害 + + return damage + +#获取元素克制倍数 +func get_element_multiplier(attacker_element: ElementType, defender_element: ElementType) -> float: + """获取元素克制倍数""" + # 简化的元素克制系统 + if attacker_element == ElementType.FIRE and defender_element == ElementType.WOOD: + return 1.5 + elif attacker_element == ElementType.WATER and defender_element == ElementType.FIRE: + return 1.5 + elif attacker_element == ElementType.WOOD and defender_element == ElementType.EARTH: + return 1.5 + else: + return 1.0 + +#受到伤害 +func take_damage(damage: float, attacker: NewPetBase): + """受到伤害""" + if not is_alive: + return + + # 检查攻击者是否有效(防止已释放对象错误) + var attacker_name = "未知攻击者" + if attacker != null and is_instance_valid(attacker): + attacker_name = attacker.pet_name + + # 闪避检查 + if randf() < dodge_rate: + # 闪避成功 + return # 闪避成功 + + # 护盾优先吸收伤害 + if current_shield > 0: + var shield_damage = min(current_shield, damage) + current_shield -= shield_damage + damage -= shield_damage + # 护盾吸收伤害 + + # 护盾消耗完后,剩余伤害扣除生命值 + if damage > 0: + current_health -= damage + # 受到伤害 + + # 受伤视觉效果(短暂变红) + if not is_berserker: # 狂暴状态下不覆盖红色效果 + pet_image.modulate = Color(1.3, 0.7, 0.7, 1.0) + get_tree().create_timer(0.15).timeout.connect(func(): + if not is_berserker and is_alive: + pet_image.modulate = Color(1.0, 1.0, 1.0, 1.0) + ) + + # 检查死亡 + if current_health <= 0: + die() + +#治疗 +func heal(amount: float): + """治疗""" + current_health = min(max_health, current_health + amount) + +#死亡处理 +func die(): + """死亡处理""" + # 防止重复死亡处理 + if current_state == PetState.DEAD: + return + + # 检查死亡重生技能 + if enable_death_respawn_skill and current_respawn_count < max_respawn_count: + trigger_death_respawn_skill() + return # 重生成功,不执行死亡逻辑 + + # 确认死亡状态 + is_alive = false + current_state = PetState.DEAD + current_health = 0 # 确保生命值为0 + velocity = Vector2.ZERO # 停止移动 + current_target = null # 清除目标 + + # 死亡视觉效果 + modulate = Color(0.5, 0.5, 0.5, 0.7) # 变灰 + + # 触发自爆技能 + if enable_self_destruct_skill: + trigger_self_destruct_skill() + + # 发射死亡信号 + pet_died.emit(self) + + # 从宠物组中移除 + remove_from_group("pets") + +#更新UI显示 +func update_ui(): + """更新UI显示""" + if pet_name_rich_text: + pet_name_rich_text.text = pet_name + + update_health_bar() + update_shield_bar() + update_armor_bar() + +#更新生命值条 +func update_health_bar(): + """更新生命值条""" + if health_bar and health_label: + health_bar.value = (current_health / max_health) * 100 + health_label.text = "生命值:%d/%d" % [current_health, max_health] + +#更新护盾条 +func update_shield_bar(): + """更新护盾条""" + if shield_bar and shield_label: + if max_shield > 0: + shield_bar.visible = true + shield_label.visible = true + shield_bar.value = (current_shield / max_shield) * 100 + shield_label.text = "护盾值:%d/%d" % [current_shield, max_shield] + else: + shield_bar.visible = false + shield_label.visible = false + +#更新护甲条 +func update_armor_bar(): + """更新护甲条""" + if armor_bar and armor_label: + if max_armor > 0: + armor_bar.visible = true + armor_label.visible = true + armor_bar.value = (current_armor / max_armor) * 100 + armor_label.text = "护甲值:%d/%d" % [current_armor, max_armor] + else: + armor_bar.visible = false + armor_label.visible = false +#=========================宠物系统通用函数================================== + + + + +#=======================宠物技能系统=================================== + + +#==================特殊技能-多发射击===================== +func check_multi_projectile_skill(): + """检查多发射击技能触发条件""" + if multi_projectile_count > 0 or not is_alive: + return + + # 宠物生成后按配置的延迟时间触发多发射击(只触发一次) + var current_time = Time.get_ticks_msec() / 1000.0 + if current_time - spawn_time >= multi_projectile_delay: # 使用配置的延迟时间 + trigger_multi_projectile_skill() + multi_projectile_count = 1 # 标记已触发,防止重复触发 + +func trigger_multi_projectile_skill(): + """触发多发射击技能:发射3枚不同类型的平行子弹""" + # 触发多发射击技能 + + # 获取宠物朝向(基于精灵翻转状态) + var forward_direction = Vector2.RIGHT if pet_image.flip_h else Vector2.LEFT + + # 定义三种不同的子弹类型 + var bullet_types = ["小蓝弹", "小红弹", "长紫弹"] + + # 发射3枚不同类型的平行子弹 + for i in range(3): + var bullet = bullet_scene.instantiate() + self.get_parent().add_child(bullet) + + # 计算子弹位置偏移(平行排列) + var offset_y = (i - 1) * 30 # 上中下三枚子弹,间距30像素 + var bullet_position = global_position + Vector2(0, offset_y) + bullet.global_position = bullet_position + + # 设置子弹属性,使用不同类型的子弹 + bullet.setup(forward_direction, projectile_speed, base_attack_damage * 0.6, self, bullet_types[i]) + + # 稍微延迟发射,创造连发效果 + await get_tree().create_timer(0.05).timeout +#==================特殊技能-多发射击===================== + + +#==================特殊技能-狂暴模式===================== +func check_berserker_skill(): + """检查狂暴技能触发条件""" + if berserker_triggered or not is_alive: + return + + # 检查生命值是否低于阈值 + var health_percentage = current_health / max_health + if health_percentage <= berserker_threshold: + trigger_berserker_skill() + berserker_triggered = true + + # 检查狂暴是否结束 + if is_berserker: + var current_time = Time.get_ticks_msec() / 1000.0 + if current_time >= berserker_end_time: + end_berserker_skill() + +func trigger_berserker_skill(): + """触发狂暴技能:提升攻击力和攻击速度""" + # 触发狂暴技能 + + is_berserker = true + var current_time = Time.get_ticks_msec() / 1000.0 + berserker_end_time = current_time + berserker_duration + + # 视觉效果:宠物变红 + pet_image.modulate = Color(1.5, 0.8, 0.8, 1.0) + + # 提升攻击速度 + attack_speed *= 1.3 + + # 发射技能信号 + pet_skill_used.emit(self, "狂暴模式") + +func end_berserker_skill(): + """结束狂暴技能""" + # 狂暴模式结束 + + is_berserker = false + + # 恢复正常颜色 + pet_image.modulate = Color(1.0, 1.0, 1.0, 1.0) + + # 恢复攻击速度 + attack_speed /= 1.3 +#==================特殊技能-狂暴模式===================== + + +#==================特殊技能-自爆===================== +func trigger_self_destruct_skill(): + """触发自爆技能:死亡时向周围360度发射12枚闪电子弹""" + # 触发自爆技能 + + # 计算12枚子弹的角度间隔(360度 / 12 = 30度) + var bullet_count = 12 + var angle_step = 360.0 / bullet_count + + # 定义四种闪电子弹类型,循环使用 + var lightning_types = ["黄色闪电", "绿色闪电", "红色闪电", "紫色闪电"] + + # 发射12枚闪电子弹 + for i in range(bullet_count): + var bullet = bullet_scene.instantiate() + get_tree().current_scene.add_child(bullet) + + # 计算子弹发射角度(度转弧度) + var angle_degrees = i * angle_step + var angle_radians = deg_to_rad(angle_degrees) + + # 计算子弹发射方向 + var direction = Vector2(cos(angle_radians), sin(angle_radians)) + + # 设置子弹位置(从宠物中心发射) + bullet.global_position = global_position + + # 设置子弹属性(自爆伤害),使用循环的闪电类型 + var bullet_type = lightning_types[i % lightning_types.size()] + bullet.setup(direction, projectile_speed, self_destruct_damage, self, bullet_type) + + # 稍微延迟发射,创造爆炸效果 + await get_tree().create_timer(0.02).timeout + + # 发射技能信号 + pet_skill_used.emit(self, "自爆") +#==================特殊技能-自爆===================== + + +#==================特殊技能-召唤小弟===================== +func check_summon_pet_skill(): + """检查召唤小弟技能触发条件""" + if summon_triggered or not is_alive: + return + + # 检查生命值是否低于阈值 + var health_percentage = current_health / max_health + if health_percentage <= summon_health_threshold: + trigger_summon_pet_skill() + summon_triggered = true + +func trigger_summon_pet_skill(): + """触发召唤小弟技能:召唤迷你版自己""" + # 触发召唤技能 + + # 获取NewPetBase场景 + var pet_scene = preload("res://Scene/NewPet/NewPetBase.tscn") + + # 召唤指定数量的小弟 + for i in range(summon_count): + var minion = pet_scene.instantiate() + self.get_parent().add_child(minion) + + # 设置小弟位置(在召唤者周围随机位置) + var offset_angle = randf() * 2 * PI + var offset_distance = 80 + i * 30 # 避免重叠 + var offset = Vector2(cos(offset_angle), sin(offset_angle)) * offset_distance + minion.global_position = global_position + offset + + # 设置小弟属性(原版的10%) + minion.pet_name = pet_name + "的小弟" + str(i + 1) + minion.pet_team = pet_team # 同队伍 + minion.pet_id = pet_id + "_minion_" + str(i + 1) + minion.pet_type = pet_type + "(迷你)" + minion.pet_level = max(1, int(pet_level * summon_scale)) + + # 复制宠物图片路径 + minion.pet_image_path = pet_image_path + + # 复制武器配置 + if left_weapon != "": + minion.equip_weapon(left_weapon, "left") + if right_weapon != "": + minion.equip_weapon(right_weapon, "right") + + # 生命与防御属性缩放 + minion.max_health = max_health * summon_scale + minion.current_health = minion.max_health + minion.health_regen = health_regen * summon_scale + minion.max_shield = max_shield * summon_scale + minion.current_shield = minion.max_shield + minion.shield_regen = shield_regen * summon_scale + minion.max_armor = max_armor * summon_scale + minion.current_armor = minion.max_armor + + # 攻击属性缩放 + minion.base_attack_damage = base_attack_damage * summon_scale + minion.attack_range = attack_range * summon_scale + minion.attack_speed = attack_speed * summon_scale + minion.crit_rate = crit_rate * summon_scale + minion.crit_damage = crit_damage + minion.armor_penetration = armor_penetration * summon_scale + + # 移动属性缩放 + minion.move_speed = move_speed * summon_scale + minion.dodge_rate = dodge_rate * summon_scale + + # 元素属性缩放 + minion.element_type = element_type + minion.element_damage_bonus = element_damage_bonus * summon_scale + + # 技能属性缩放 + minion.self_destruct_damage = self_destruct_damage * summon_scale + minion.berserker_bonus = berserker_bonus + minion.berserker_duration = berserker_duration * summon_scale + + # 禁用小弟的所有技能 + minion.enable_multi_projectile_skill = false # 禁用多发射击技能 + minion.enable_berserker_skill = false # 禁用狂暴技能 + minion.enable_self_destruct_skill = false # 禁用自爆技能 + minion.enable_summon_pet_skill = false # 禁用召唤技能 + minion.enable_death_respawn_skill = false # 禁用死亡重生技能 + + # 应用宠物图片(如果有的话) + if pet_image_path != "": + apply_pet_image(minion, pet_image_path) + + # 设置小弟的缩放(视觉上更小,原宠物的二分之一) + minion.scale = Vector2(0.5, 0.5) + + # 将小弟加入宠物组 + minion.add_to_group("pets") + + # 小弟召唤成功 + + # 发射技能信号 + pet_skill_used.emit(self, "召唤小弟") +#==================特殊技能-召唤小弟===================== + + +#==================特殊技能-死亡重生===================== +func trigger_death_respawn_skill(): + """触发死亡重生技能:重生并恢复30%血量""" + # 增加重生次数 + current_respawn_count += 1 + + # 恢复生命值到指定百分比 + current_health = max_health * respawn_health_percentage + + # 确保宠物处于存活状态 + is_alive = true + current_state = PetState.IDLE + velocity = Vector2.ZERO # 重置速度 + + # 恢复正常外观 + modulate = Color(1.0, 1.0, 1.0, 1.0) + + # 重生视觉效果:短暂发光 + pet_image.modulate = Color(1.5, 1.5, 1.0, 1.0) # 金色光芒 + get_tree().create_timer(1.0).timeout.connect(func(): + if is_alive and is_instance_valid(self): + pet_image.modulate = Color(1.0, 1.0, 1.0, 1.0) # 恢复正常颜色 + ) + + # 重生时清除所有负面状态 + is_being_knocked_back = false + knockback_velocity = Vector2.ZERO + + # 重新加入宠物组(如果被移除了) + if not is_in_group("pets"): + add_to_group("pets") + + # 更新UI显示 + update_ui() + + # 发射技能信号 + pet_skill_used.emit(self, "死亡重生") +#==================特殊技能-死亡重生===================== + + +#=======================宠物技能系统=================================== + + + + + +#==========================巡逻系统函数================================= +# 巡逻AI逻辑更新 +func update_patrol_ai(): + """巡逻AI逻辑:在巡逻点周围随机走动""" + current_target = null # 清除攻击目标 + + # 如果还没有设置巡逻中心点,使用当前位置作为中心点 + if patrol_center_position == Vector2.ZERO: + patrol_center_position = global_position + patrol_target_position = global_position + + # 更新巡逻移动计时器 + patrol_move_timer += get_physics_process_delta_time() + + # 检查是否到达目标位置或需要更换目标 + var distance_to_target = global_position.distance_to(patrol_target_position) + if distance_to_target < 10.0 or patrol_move_timer >= patrol_move_interval: + # 生成新的随机目标位置(在巡逻半径内) + var random_angle = randf() * 5 * PI + var random_distance = randf() * patrol_radius + patrol_target_position = patrol_center_position + Vector2( + cos(random_angle) * random_distance, + sin(random_angle) * random_distance + ) + patrol_move_timer = 0.0 + + # 移动到目标位置 + var direction = (patrol_target_position - global_position).normalized() + if direction.length() > 0.1: # 避免抖动 + current_state = PetState.MOVING + pet_image.animation = "walk" + velocity = direction * patrol_speed + + # 翻转精灵 + if direction.x < 0: + pet_image.flip_h = false + else: + pet_image.flip_h = true + else: + # 到达目标位置,待机 + current_state = PetState.IDLE + pet_image.animation = "idle" + velocity = Vector2.ZERO + +# 设置巡逻中心点 +func set_patrol_center(center_pos: Vector2): + """设置巡逻中心点位置""" + patrol_center_position = center_pos + patrol_target_position = center_pos + +# 设置战斗启用状态 +func set_combat_enabled(enabled: bool): + combat_enabled = enabled + if not enabled: + # 禁用战斗时,清除当前目标 + current_target = null + current_state = PetState.IDLE +#==========================巡逻系统函数================================= + + + +#==========================武器系统函数================================= + +func init_weapon_system(): + """初始化武器系统""" + weapon_system = WeaponBase.new() + +func equip_weapon(weapon_name: String, slot: String) -> bool: + """装备武器到指定槽位""" + if weapon_system == null: + init_weapon_system() + + # 检查武器是否存在 + if not weapon_system.weapon_data.has(weapon_name): + return false + + # 检查槽位是否有效 + if slot != "left" and slot != "right": + return false + + # 卸下当前武器(如果有) + if slot == "left" and left_weapon != "": + unequip_weapon("left") + elif slot == "right" and right_weapon != "": + unequip_weapon("right") + + # 装备新武器 + if slot == "left": + left_weapon = weapon_name + elif slot == "right": + right_weapon = weapon_name + + # 应用武器效果 + weapon_system.apply_weapon_effect(self, weapon_name) + + # 更新武器图标 + update_weapon_icons() + + # 武器装备完成 + return true + +func unequip_weapon(slot: String) -> bool: + """卸下指定槽位的武器""" + if weapon_system == null: + return false + + var weapon_name = "" + if slot == "left": + weapon_name = left_weapon + left_weapon = "" + elif slot == "right": + weapon_name = right_weapon + right_weapon = "" + else: + return false + + if weapon_name == "": + return false + + # 移除武器效果 + weapon_system.remove_weapon_effect(self, weapon_name) + + # 更新武器图标 + update_weapon_icons() + + # 武器卸载完成 + return true + +func update_weapon_icons(): + """更新武器图标显示""" + if weapon_system == null: + return + + # 更新左手武器图标 + if left_tool_image != null: + if left_weapon != "": + var icon_path = weapon_system.get_weapon_icon(left_weapon) + if icon_path != "": + left_tool_image.texture = load(icon_path) + left_tool_image.visible = true + else: + left_tool_image.visible = false + else: + left_tool_image.visible = false + + # 更新右手武器图标 + if right_tool_image != null: + if right_weapon != "": + var icon_path = weapon_system.get_weapon_icon(right_weapon) + if icon_path != "": + right_tool_image.texture = load(icon_path) + right_tool_image.visible = true + else: + right_tool_image.visible = false + else: + right_tool_image.visible = false + + # 武器图标更新完成 + +func get_equipped_weapons() -> Array: + """获取当前装备的武器列表""" + var weapons = [] + if left_weapon != "": + weapons.append({"slot": "left", "weapon": left_weapon}) + if right_weapon != "": + weapons.append({"slot": "right", "weapon": right_weapon}) + return weapons + +func has_weapon_type(weapon_type: String) -> bool: + """检查是否装备了指定类型的武器""" + if weapon_system == null: + return false + + # 根据武器名称判断类型 + var weapons_to_check = [left_weapon, right_weapon] + for weapon_name in weapons_to_check: + if weapon_name == "": + continue + + # 根据武器名称判断类型 + if weapon_type == "sword" and (weapon_name.contains("剑")): + return true + elif weapon_type == "axe" and (weapon_name.contains("斧")): + return true + elif weapon_type == "pickaxe" and (weapon_name.contains("镐")): + return true + + return false + +func test_weapon_system(): + """测试武器系统功能""" + # 装备武器测试 + equip_weapon("钻石剑", "left") + equip_weapon("铁镐", "right") + +#==========================武器系统函数================================= diff --git a/Scene/NewPet/NewPetBase.gd.uid b/Scene/NewPet/NewPetBase.gd.uid new file mode 100644 index 0000000..fd5bdb6 --- /dev/null +++ b/Scene/NewPet/NewPetBase.gd.uid @@ -0,0 +1 @@ +uid://cn6a0803t1bmu diff --git a/Scene/NewPet/NewPetBase.tscn b/Scene/NewPet/NewPetBase.tscn new file mode 100644 index 0000000..0272779 --- /dev/null +++ b/Scene/NewPet/NewPetBase.tscn @@ -0,0 +1,146 @@ +[gd_scene load_steps=8 format=3 uid="uid://cfwj8rnm2j8s3"] + +[ext_resource type="Script" uid="uid://cn6a0803t1bmu" path="res://Scene/NewPet/NewPetBase.gd" id="1_bfbjx"] +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="2_gnd2w"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="3_bfbjx"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_h4hw6"] +atlas = ExtResource("2_gnd2w") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_51c25"] +atlas = ExtResource("2_gnd2w") +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="Area2D"] +script = ExtResource("1_bfbjx") + +[node name="PetImage" type="AnimatedSprite2D" parent="."] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_wmdx5") +animation = &"walk" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="PetImage"] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("3_bfbjx") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="PetImage"] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("3_bfbjx") +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 + +[node name="StatusEffects" type="HBoxContainer" parent="."] +offset_left = -30.0 +offset_top = -65.0 +offset_right = 30.0 +offset_bottom = -55.0 + +[node name="AttackTimer" type="Timer" parent="."] + +[node name="MoveTimer" type="Timer" parent="."] +wait_time = 0.1 +autostart = true + +[node name="StatusTimer" type="Timer" parent="."] +autostart = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] + +[node name="HitEffect" type="Node2D" parent="."] + +[node name="DeathEffect" type="Node2D" parent="."] diff --git a/Scene/NewPet/PetBattlePanel.gd b/Scene/NewPet/PetBattlePanel.gd new file mode 100644 index 0000000..f974b1b --- /dev/null +++ b/Scene/NewPet/PetBattlePanel.gd @@ -0,0 +1,1225 @@ +extends Panel +class_name PetBattlePanel + +# 宠物对战系统管理器 +# 支持PVP、PVE,最多20个宠物同时对战 +# 高性能设计,适合移动端 + +signal battle_started +signal battle_ended(winner_team: String, battle_data: Dictionary) +signal pet_spawned(pet: NewPetBase) + +# UI节点引用 +@onready var map_background: TextureRect = $MapBackGround +@onready var title_label: Label = $Title +@onready var team_a_node: Node2D = $TeamA +@onready var team_b_node: Node2D = $TeamB +@onready var battle_end_panel: Panel = $BattleEndPanel +@onready var battle_details_panel: Panel = $PetBattleDetailsPanel +@onready var battle_details_text: RichTextLabel = $PetBattleDetailsPanel/BattleDetails +@onready var return_farm_button: Button = $BattleEndPanel/ReturnFarmButton +@onready var time: Label = $Time #剩余对战时间 +@onready var confirm_dialog: ConfirmationDialog = $ConfirmDialog #确认弹窗,每当操作需要确认时出现 + +# 辅助功能按钮引用 +@onready var team_a_heal_button: Button = $PlayerSkillPanel/TeamASkills/TeamAHeal +@onready var team_a_rage_button: Button = $PlayerSkillPanel/TeamASkills/TeamARage +@onready var team_a_shield_button: Button = $PlayerSkillPanel/TeamASkills/TeamAShield + +@onready var tcp_network_manager_panel: Panel = $'../TCPNetworkManagerPanel'#客户端通信函数 + + +# 队伍名称 +var team_a_name: String = "" +var team_b_name: String = "" + +# 战斗状态 +enum BattleState { + PREPARING, # 准备阶段 + BATTLING, # 战斗中 + ENDED # 战斗结束 +} + +var current_battle_state: BattleState = BattleState.PREPARING +var battle_time: float = 0.0 +var max_battle_time: float = 300.0 # 5分钟最大战斗时间 + +# 队伍管理 +var team_a_pets: Array[NewPetBase] = [] +var team_b_pets: Array[NewPetBase] = [] +var all_pets: Array[NewPetBase] = [] + +# 战斗统计 +var battle_log: Array[String] = [] +var damage_dealt: Dictionary = {} # 记录每个宠物造成的伤害 +var damage_taken: Dictionary = {} # 记录每个宠物受到的伤害 +var kills: Dictionary = {} # 记录每个宠物的击杀数 + +# 性能优化 +var update_timer: float = 0.0 +var update_interval: float = 0.2 # 战斗状态更新间隔(降低频率) +var cleanup_timer: float = 0.0 +var cleanup_interval: float = 2.0 # 清理死亡宠物和子弹的间隔(降低频率) + +# 宠物配置系统 +var pet_config: PetConfig + +# 辅助功能冷却系统 +var assist_cooldown_time: float = 5.0 # 冷却时间5秒 +var heal_cooldown_timer: float = 0.0 +var rage_cooldown_timer: float = 0.0 +var shield_cooldown_timer: float = 0.0 +var current_assist_operation: String = "" # 当前待执行的辅助操作 + +#========================基础函数====================== +func _ready(): + # 初始化UI + battle_end_panel.visible = false + return_farm_button.pressed.connect(_on_return_farm_pressed) + # 初始化宠物配置系统 + pet_config = PetConfig.new() + # 等待一帧确保PetConfig的_ready函数执行完毕 + await get_tree().process_frame + # 初始化战斗日志 + battle_details_text.text = "[color=green]战斗准备中...[/color]\n" + + # 连接确认弹窗信号 + confirm_dialog.confirmed.connect(_on_assist_confirmed) + confirm_dialog.canceled.connect(_on_assist_canceled) + + # 美化确认弹窗 + setup_confirm_dialog() + + # 延迟一帧后设置演示数据,确保所有节点都已准备好 + await get_tree().process_frame + #setup_farm_battle() + +func _process(delta): + # 更新时间显示(无论什么状态都显示) + update_time_display() + + # 更新辅助功能冷却计时器 + update_assist_cooldowns(delta) + + if current_battle_state != BattleState.BATTLING: + return + + # 更新战斗时间 + battle_time += delta + + # 检查时间是否到达 + var remaining_time = max_battle_time - battle_time + if remaining_time <= 0: + # 时间到,立即清理所有宠物并结束为平局 + clear_all_pets_immediately() + end_battle("平局") + return + + # 更新计时器 + update_timer += delta + cleanup_timer += delta + + # 定期更新战斗状态 + if update_timer >= update_interval: + update_battle_state() + update_timer = 0.0 + + # 定期清理 + if cleanup_timer >= cleanup_interval: + cleanup_dead_objects() + cleanup_timer = 0.0 +#========================基础函数====================== + + +#=====================UI显示=========================== +#更新时间显示 +func update_time_display(): + """更新时间显示""" + var remaining_time: float + + if current_battle_state == BattleState.BATTLING: + remaining_time = max_battle_time - battle_time + else: + remaining_time = max_battle_time + + # 确保时间不为负数 + remaining_time = max(0, remaining_time) + + # 更新时间显示(格式:分:秒) + var minutes = int(remaining_time) / 60 + var seconds = int(remaining_time) % 60 + time.text = "剩余时间: %02d:%02d" % [minutes, seconds] + + # 根据剩余时间设置颜色 + if current_battle_state == BattleState.BATTLING: + if remaining_time <= 30: + time.modulate = Color.RED + elif remaining_time <= 60: + time.modulate = Color.ORANGE + else: + time.modulate = Color.WHITE + else: + time.modulate = Color.WHITE + +#显示战斗结果 +func show_battle_result(winner: String): + """显示战斗结果""" + battle_end_panel.visible = true + + var title_label = battle_end_panel.get_node("Title") + var contents_label = battle_end_panel.get_node("Contents") + + # 设置标题 + match winner: + "attacker": + title_label.text = "进攻方获胜!" + "defender": + title_label.text = "防守方获胜!" + _: + title_label.text = "平局!" + + # 生成战斗统计 + var stats_text = generate_battle_stats() + contents_label.text = stats_text + +#生成战斗统计信息 +func generate_battle_stats() -> String: + """生成战斗统计信息""" + var stats = "战斗时间: %.1f秒\n\n" % battle_time + + # MVP统计 + var max_damage = 0.0 + var mvp_pet = "" + for pet_id in damage_dealt: + if damage_dealt[pet_id] > max_damage: + max_damage = damage_dealt[pet_id] + mvp_pet = pet_id + + if mvp_pet != "": + stats += "MVP: %s (造成伤害: %.0f)\n" % [mvp_pet, max_damage] + + stats += "\n战斗详情:\n" + for log_entry in battle_log.slice(-10): # 显示最后10条记录 + stats += log_entry + "\n" + + return stats + +#添加战斗日志 +func add_battle_log(message: String): + """添加战斗日志""" + battle_log.append(message) + + # 限制日志数量以优化内存 + if battle_log.size() > 50: + battle_log = battle_log.slice(-30) # 保留最后30条 + + # 减少UI更新频率 + if battle_log.size() % 5 == 0: # 每5条日志更新一次UI + var display_logs = battle_log.slice(-15) # 只显示最后15条 + battle_details_text.text = "\n".join(display_logs) + +#返回农场按钮 +func _on_return_farm_pressed(): + """返回农场按钮""" + # 清理战斗场景 + clear_all_pets() + + # 清理子弹 + var bullets = get_tree().get_nodes_in_group("bullets") + for bullet in bullets: + bullet.queue_free() + + # 隐藏面板 + visible = false + +#获取战斗总结数据 +func get_battle_summary() -> Dictionary: + """获取战斗总结数据""" + return { + "battle_time": battle_time, + "damage_dealt": damage_dealt, + "damage_taken": damage_taken, + "kills": kills, + "battle_log": battle_log + } + +#直接认输逃跑 +func _on_stop_battle_button_pressed() -> void: + # 检查战斗是否已经结束 + if current_battle_state == BattleState.ENDED: + return + + # 添加逃跑日志 + add_battle_log("[color=yellow]玩家选择认输逃跑![/color]") + + # 立即结束战斗,设置防守方获胜(玩家认输) + end_battle("defender") + + # 清理所有宠物的AI状态并移除宠物 + for pet in all_pets: + if is_instance_valid(pet): + pet.current_state = NewPetBase.PetState.DEAD # 设置为死亡状态 + pet.current_target = null # 清除目标 + pet.is_alive = false # 设置为死亡 + pet.queue_free() # 删除宠物 + + # 清理所有召唤的仆从小弟 + clear_all_minions() + + # 清空宠物数组 + team_a_pets.clear() + team_b_pets.clear() + all_pets.clear() + + # 清理子弹 + var bullets = get_tree().get_nodes_in_group("bullets") + for bullet in bullets: + bullet.queue_free() + +#=====================UI显示=========================== + + +#开始战斗 +func start_battle(team_a_data: Array, team_b_data: Array): + """开始战斗""" + current_battle_state = BattleState.PREPARING + battle_time = 0.0 + battle_log.clear() + damage_dealt.clear() + damage_taken.clear() + kills.clear() + + # 清理现有宠物 + clear_all_pets() + # 生成队伍A的宠物(进攻方) + spawn_team(team_a_data, "attacker", team_a_node) + # 生成队伍B的宠物(防守方) + spawn_team(team_b_data, "defender", team_b_node) + + # 开始战斗 + current_battle_state = BattleState.BATTLING + battle_started.emit() + + add_battle_log("[color=yellow]战斗开始![/color]") + +#生成队伍宠物 +func spawn_team(team_data: Array, team_name: String, team_node: Node2D): + """生成队伍宠物""" + var positions = get_team_positions(team_node) + + for i in range(min(team_data.size(), positions.size())): + var pet_info = team_data[i] + var pet = spawn_pet(pet_info, team_name, positions[i]) + if pet: + if team_name == "attacker": + team_a_pets.append(pet) + else: + team_b_pets.append(pet) + all_pets.append(pet) + +#获取队伍位置点 +func get_team_positions(team_node: Node2D) -> Array[Vector2]: + """获取队伍位置点""" + var positions: Array[Vector2] = [] + for child in team_node.get_children(): + if child is Marker2D: + positions.append(team_node.global_position + child.position) + return positions + +#生成单个宠物 +func spawn_pet(pet_info: Dictionary, team: String, pos: Vector2) -> NewPetBase: + """生成单个宠物""" + var pet_scene = preload("res://Scene/NewPet/NewPetBase.tscn") + var pet = pet_scene.instantiate() + + # 添加到场景 + add_child(pet) + pet.global_position = pos + pet.pet_team = team + + # 处理服务器返回的完整宠物数据或配置键值 + var config_key = pet_info.get("config_key", "") + var pet_type = pet_info.get("pet_type", "") + var config_data: Dictionary + + if config_key != "" and pet_config: + # 使用指定的配置键值 + config_data = pet_config.get_pet_config(config_key) + apply_pet_config(pet, config_data) + apply_level_scaling(pet) + elif pet_type != "" and pet_config and pet_config.has_pet_config(pet_type): + # 使用宠物类型作为配置键值 + config_data = pet_config.get_pet_config(pet_type) + apply_pet_config(pet, config_data) + # 覆盖配置中的数据为服务器返回的实际数据 + apply_server_pet_data(pet, pet_info) + apply_level_scaling(pet) + else: + # 直接使用服务器返回的宠物数据 + apply_server_pet_data(pet, pet_info) + apply_level_scaling(pet) + + # 连接信号 + pet.pet_died.connect(_on_pet_died) + pet.pet_attacked.connect(_on_pet_attacked) + pet.pet_skill_used.connect(_on_pet_skill_used) + + # 添加到宠物组 + pet.add_to_group("pets") + + # 初始化统计数据 + damage_dealt[pet.pet_id] = 0.0 + damage_taken[pet.pet_id] = 0.0 + kills[pet.pet_id] = 0 + + pet_spawned.emit(pet) + return pet + +#应用服务器返回的宠物数据 +func apply_server_pet_data(pet: NewPetBase, pet_data: Dictionary): + """应用服务器返回的完整宠物数据""" + if pet_data.is_empty(): + return + + # 基本属性 + if pet_data.has("pet_name"): + pet.pet_name = pet_data["pet_name"] + if pet_data.has("pet_id"): + pet.pet_id = pet_data["pet_id"] + if pet_data.has("pet_type"): + pet.pet_type = pet_data["pet_type"] + if pet_data.has("pet_level"): + pet.pet_level = pet_data["pet_level"] + + # 生命与防御 + if pet_data.has("max_health"): + pet.max_health = pet_data["max_health"] + pet.current_health = pet.max_health + if pet_data.has("enable_health_regen"): + pet.enable_health_regen = pet_data["enable_health_regen"] + if pet_data.has("health_regen"): + pet.health_regen = pet_data["health_regen"] + if pet_data.has("enable_shield_regen"): + pet.enable_shield_regen = pet_data["enable_shield_regen"] + if pet_data.has("max_shield"): + pet.max_shield = pet_data["max_shield"] + pet.current_shield = pet.max_shield + if pet_data.has("shield_regen"): + pet.shield_regen = pet_data["shield_regen"] + if pet_data.has("max_armor"): + pet.max_armor = pet_data["max_armor"] + pet.current_armor = pet.max_armor + + # 攻击属性 + if pet_data.has("base_attack_damage"): + pet.base_attack_damage = pet_data["base_attack_damage"] + if pet_data.has("crit_rate"): + pet.crit_rate = pet_data["crit_rate"] + if pet_data.has("crit_damage"): + pet.crit_damage = pet_data["crit_damage"] + if pet_data.has("armor_penetration"): + pet.armor_penetration = pet_data["armor_penetration"] + + # 技能配置 + if pet_data.has("enable_multi_projectile_skill"): + pet.enable_multi_projectile_skill = pet_data["enable_multi_projectile_skill"] + if pet_data.has("multi_projectile_delay"): + pet.multi_projectile_delay = pet_data["multi_projectile_delay"] + if pet_data.has("enable_berserker_skill"): + pet.enable_berserker_skill = pet_data["enable_berserker_skill"] + if pet_data.has("berserker_bonus"): + pet.berserker_bonus = pet_data["berserker_bonus"] + if pet_data.has("berserker_duration"): + pet.berserker_duration = pet_data["berserker_duration"] + if pet_data.has("enable_self_destruct_skill"): + pet.enable_self_destruct_skill = pet_data["enable_self_destruct_skill"] + if pet_data.has("self_destruct_damage"): + pet.self_destruct_damage = pet_data["self_destruct_damage"] + if pet_data.has("enable_summon_pet_skill"): + pet.enable_summon_pet_skill = pet_data["enable_summon_pet_skill"] + if pet_data.has("summon_count"): + pet.summon_count = pet_data["summon_count"] + if pet_data.has("summon_scale"): + pet.summon_scale = pet_data["summon_scale"] + if pet_data.has("enable_death_respawn_skill"): + pet.enable_death_respawn_skill = pet_data["enable_death_respawn_skill"] + if pet_data.has("respawn_health_percentage"): + pet.respawn_health_percentage = pet_data["respawn_health_percentage"] + + # 移动属性 + if pet_data.has("move_speed"): + pet.move_speed = pet_data["move_speed"] + if pet_data.has("dodge_rate"): + pet.dodge_rate = pet_data["dodge_rate"] + + # 元素属性 + if pet_data.has("element_type"): + if typeof(pet_data["element_type"]) == TYPE_STRING: + pet.element_type = string_to_element_type(pet_data["element_type"]) + else: + pet.element_type = pet_data["element_type"] + if pet_data.has("element_damage_bonus"): + pet.element_damage_bonus = pet_data["element_damage_bonus"] + + # 武器系统 + if pet_data.has("left_weapon") and pet_data["left_weapon"] != "": + pet.equip_weapon(pet_data["left_weapon"], "left") + if pet_data.has("right_weapon") and pet_data["right_weapon"] != "": + pet.equip_weapon(pet_data["right_weapon"], "right") + + # 宠物外观配置 + if pet_data.has("pet_image"): + pet.pet_image_path = pet_data["pet_image"] + apply_pet_image(pet, pet_data["pet_image"]) + + # 打印调试信息 + print("[PetBattlePanel] 应用服务器宠物数据: %s (等级%d)" % [pet.pet_name, pet.pet_level]) + +#字符串转元素类型枚举 +func string_to_element_type(element_string: String) -> NewPetBase.ElementType: + """将字符串转换为元素类型枚举""" + match element_string.to_upper(): + "FIRE": + return NewPetBase.ElementType.FIRE + "WATER": + return NewPetBase.ElementType.WATER + "EARTH": + return NewPetBase.ElementType.EARTH + "METAL": + return NewPetBase.ElementType.METAL + "WOOD": + return NewPetBase.ElementType.WOOD + "THUNDER": + return NewPetBase.ElementType.THUNDER + _: + return NewPetBase.ElementType.NONE + +#将配置应用到宠物上 +func apply_pet_config(pet: NewPetBase, config: Dictionary): + """将配置应用到宠物上""" + if not config.is_empty(): + # 基本属性 + if config.has("pet_name"): + pet.pet_name = config["pet_name"] + if config.has("pet_id"): + pet.pet_id = config["pet_id"] + if config.has("pet_type"): + pet.pet_type = config["pet_type"] + if config.has("pet_level"): + pet.pet_level = config["pet_level"] + + # 生命与防御 + if config.has("max_health"): + pet.max_health = config["max_health"] + pet.current_health = pet.max_health + if config.has("enable_health_regen"): + pet.enable_health_regen = config["enable_health_regen"] + if config.has("health_regen"): + pet.health_regen = config["health_regen"] + if config.has("enable_shield_regen"): + pet.enable_shield_regen = config["enable_shield_regen"] + if config.has("max_shield"): + pet.max_shield = config["max_shield"] + pet.current_shield = pet.max_shield + if config.has("shield_regen"): + pet.shield_regen = config["shield_regen"] + if config.has("max_armor"): + pet.max_armor = config["max_armor"] + pet.current_armor = pet.max_armor + + # 攻击属性 + if config.has("base_attack_damage"): + pet.base_attack_damage = config["base_attack_damage"] + if config.has("crit_rate"): + pet.crit_rate = config["crit_rate"] + if config.has("crit_damage"): + pet.crit_damage = config["crit_damage"] + if config.has("armor_penetration"): + pet.armor_penetration = config["armor_penetration"] + + # 技能配置 + if config.has("enable_multi_projectile_skill"): + pet.enable_multi_projectile_skill = config["enable_multi_projectile_skill"] + if config.has("multi_projectile_delay"): + pet.multi_projectile_delay = config["multi_projectile_delay"] + if config.has("enable_berserker_skill"): + pet.enable_berserker_skill = config["enable_berserker_skill"] + if config.has("berserker_bonus"): + pet.berserker_bonus = config["berserker_bonus"] + if config.has("berserker_duration"): + pet.berserker_duration = config["berserker_duration"] + if config.has("enable_self_destruct_skill"): + pet.enable_self_destruct_skill = config["enable_self_destruct_skill"] + if config.has("self_destruct_damage"): + pet.self_destruct_damage = config["self_destruct_damage"] + if config.has("enable_summon_pet_skill"): + pet.enable_summon_pet_skill = config["enable_summon_pet_skill"] + if config.has("summon_count"): + pet.summon_count = config["summon_count"] + if config.has("summon_scale"): + pet.summon_scale = config["summon_scale"] + if config.has("enable_death_respawn_skill"): + pet.enable_death_respawn_skill = config["enable_death_respawn_skill"] + if config.has("respawn_health_percentage"): + pet.respawn_health_percentage = config["respawn_health_percentage"] + + # 移动属性 + if config.has("move_speed"): + pet.move_speed = config["move_speed"] + if config.has("dodge_rate"): + pet.dodge_rate = config["dodge_rate"] + + # 元素属性 + if config.has("element_type"): + pet.element_type = config["element_type"] + if config.has("element_damage_bonus"): + pet.element_damage_bonus = config["element_damage_bonus"] + + # 武器系统 + if config.has("left_weapon") and config["left_weapon"] != "": + pet.equip_weapon(config["left_weapon"], "left") + if config.has("right_weapon") and config["right_weapon"] != "": + pet.equip_weapon(config["right_weapon"], "right") + + # 宠物外观配置 + if config.has("pet_image"): + pet.pet_image_path = config["pet_image"] # 保存图片路径 + apply_pet_image(pet, config["pet_image"]) + +#应用宠物外观图片 +func apply_pet_image(pet: NewPetBase, image_path: String): + """应用宠物外观图片""" + if image_path == "" or not ResourceLoader.exists(image_path): + return + + # 加载新的宠物场景 + var new_pet_scene = load(image_path) + if not new_pet_scene: + return + + # 实例化新场景以获取图片组件 + var temp_instance = new_pet_scene.instantiate() + # 根节点本身就是PetImage + var new_pet_image = temp_instance + var new_left_tool = temp_instance.get_node_or_null("LeftToolImage") + var new_right_tool = temp_instance.get_node_or_null("RightToolImage") + + if new_pet_image and new_pet_image is AnimatedSprite2D: + # 复制动画帧到现有宠物 + if new_pet_image.sprite_frames: + pet.pet_image.sprite_frames = new_pet_image.sprite_frames + pet.pet_image.animation = new_pet_image.animation + pet.pet_image.scale = new_pet_image.scale + # 确保动画播放 + pet.pet_image.play() + + # 复制工具图片 + if new_left_tool and pet.left_tool_image: + pet.left_tool_image.texture = new_left_tool.texture + pet.left_tool_image.position = new_left_tool.position + pet.left_tool_image.flip_h = new_left_tool.flip_h + pet.left_tool_image.z_index = new_left_tool.z_index + pet.left_tool_image.visible = true + + if new_right_tool and pet.right_tool_image: + pet.right_tool_image.texture = new_right_tool.texture + pet.right_tool_image.position = new_right_tool.position + pet.right_tool_image.flip_h = new_right_tool.flip_h + pet.right_tool_image.show_behind_parent = new_right_tool.show_behind_parent + pet.right_tool_image.visible = true + + # 外观应用成功 + else: + pass # 静默处理错误 + + # 清理临时实例 + temp_instance.queue_free() + + # 重新更新武器图标(因为外观应用可能覆盖了武器图标) + if pet.weapon_system != null: + pet.update_weapon_icons() + +# 每5级特殊效果配置字典 +var level_bonus_config = { + 5: {"crit_rate": 0.05, "armor_penetration": 10.0, "dodge_rate": 0.05}, + 10: {"crit_rate": 0.05, "armor_penetration": 10.0, "dodge_rate": 0.05, "move_speed": 20.0}, + 15: {"crit_rate": 0.05, "armor_penetration": 15.0, "dodge_rate": 0.05, "crit_damage": 0.2}, + 20: {"crit_rate": 0.05, "armor_penetration": 15.0, "dodge_rate": 0.05, "health_regen": 2.0, "shield_regen": 2.0}, + 25: {"crit_rate": 0.05, "armor_penetration": 20.0, "dodge_rate": 0.05, "element_damage_bonus": 30.0}, + 30: {"crit_rate": 0.05, "armor_penetration": 20.0, "dodge_rate": 0.05, "knockback_force": 100.0}, + 35: {"crit_rate": 0.05, "armor_penetration": 25.0, "dodge_rate": 0.05, "attack_range": 20.0}, + 40: {"crit_rate": 0.05, "armor_penetration": 25.0, "dodge_rate": 0.05, "crit_damage": 0.3}, + 45: {"crit_rate": 0.05, "armor_penetration": 30.0, "dodge_rate": 0.05, "move_speed": 30.0}, + 50: {"crit_rate": 0.05, "armor_penetration": 30.0 , "dodge_rate": 0.05, "element_damage_bonus": 50.0, "health_regen": 3.0} +} + +#应用等级缩放 +func apply_level_scaling(pet: NewPetBase): + """应用等级缩放""" + # 每级+2基本属性 + var level_bonus = (pet.pet_level - 1) * 2.0 + + # 基本属性增长 + pet.max_health += level_bonus # 最大生命值 + pet.current_health = pet.max_health + pet.base_attack_damage += level_bonus # 基础攻击伤害 + pet.max_armor += level_bonus # 最大护甲值 + pet.current_armor = pet.max_armor + pet.max_shield += level_bonus # 最大护盾值 + pet.current_shield = pet.max_shield + + # 应用每5级的特殊效果 + for level_threshold in level_bonus_config.keys(): + if pet.pet_level >= level_threshold: + var bonuses = level_bonus_config[level_threshold] + for attribute in bonuses.keys(): + var bonus_value = bonuses[attribute] + match attribute: + "crit_rate": + pet.crit_rate = min(0.8, pet.crit_rate + bonus_value) # 最大80%暴击率 + "armor_penetration": + pet.armor_penetration += bonus_value + "attack_speed": + pet.attack_speed += bonus_value + "dodge_rate": + pet.dodge_rate = min(0.5, pet.dodge_rate + bonus_value) # 最大50%闪避率 + "move_speed": + pet.move_speed += bonus_value + "crit_damage": + pet.crit_damage += bonus_value + "health_regen": + pet.health_regen += bonus_value + "shield_regen": + pet.shield_regen += bonus_value + "element_damage_bonus": + pet.element_damage_bonus += bonus_value + "knockback_force": + pet.knockback_force += bonus_value + "attack_range": + pet.attack_range += bonus_value + +#更新战斗状态 +func update_battle_state(): + """更新战斗状态""" + # 先清理无效的宠物引用 + cleanup_invalid_pet_references() + + # 检查是否有队伍全灭 + var team_a_alive = team_a_pets.filter(func(pet): return is_instance_valid(pet) and pet.is_alive).size() + var team_b_alive = team_b_pets.filter(func(pet): return is_instance_valid(pet) and pet.is_alive).size() + + if team_a_alive == 0 and team_b_alive == 0: + end_battle("平局") + elif team_a_alive == 0: + end_battle("defender") + elif team_b_alive == 0: + end_battle("attacker") + + + +#=================即时清理防止游戏卡死===================== +#清理无效的宠物引用 +func cleanup_invalid_pet_references(): + """清理数组中的无效宠物引用""" + # 清理all_pets数组中的无效引用 + var valid_all_pets: Array[NewPetBase] = [] + for pet in all_pets: + if is_instance_valid(pet): + valid_all_pets.append(pet) + all_pets = valid_all_pets + + # 清理team_a_pets数组中的无效引用 + var valid_team_a_pets: Array[NewPetBase] = [] + for pet in team_a_pets: + if is_instance_valid(pet): + valid_team_a_pets.append(pet) + team_a_pets = valid_team_a_pets + + # 清理team_b_pets数组中的无效引用 + var valid_team_b_pets: Array[NewPetBase] = [] + for pet in team_b_pets: + if is_instance_valid(pet): + valid_team_b_pets.append(pet) + team_b_pets = valid_team_b_pets + +func cleanup_dead_objects(): + """清理死亡对象以优化性能""" + # 更严格的死亡宠物清理逻辑 + var dead_pets = [] + for pet in all_pets: + # 检查宠物是否真正死亡(防止重生技能导致的状态不一致) + if not is_instance_valid(pet): + # 无效的宠物对象,直接标记清理 + dead_pets.append(pet) + elif not pet.is_alive and pet.current_health <= 0: + # 确保宠物真正死亡:生命值为0且is_alive为false + # 额外检查:如果有重生技能但重生次数已用完 + if pet.enable_death_respawn_skill and pet.current_respawn_count < pet.max_respawn_count: + # 还有重生机会,不清理 + continue + else: + # 确认死亡,标记清理 + pet.current_state = NewPetBase.PetState.DEAD + dead_pets.append(pet) + + # 清理确认死亡的宠物 + for pet in dead_pets: + if is_instance_valid(pet): + # 确保从所有数组中移除 + all_pets.erase(pet) + team_a_pets.erase(pet) + team_b_pets.erase(pet) + # 从场景中移除 + if pet.get_parent(): + pet.get_parent().remove_child(pet) + pet.queue_free() + else: + # 无效对象,直接从数组中移除 + all_pets.erase(pet) + team_a_pets.erase(pet) + team_b_pets.erase(pet) + + # 清理无效子弹 + var bullets = get_tree().get_nodes_in_group("bullets") + for bullet in bullets: + if not is_instance_valid(bullet) or (bullet.has_method("is_active") and not bullet.is_active): + bullet.queue_free() + +#结束战斗 +func end_battle(winner: String): + """结束战斗""" + if current_battle_state == BattleState.ENDED: + return + + current_battle_state = BattleState.ENDED + + # 清理所有宠物的AI状态并移除宠物 + for pet in all_pets: + if is_instance_valid(pet): + pet.current_state = NewPetBase.PetState.DEAD # 设置为死亡状态 + pet.current_target = null # 清除目标 + pet.is_alive = false # 设置为死亡 + pet.queue_free() # 删除宠物 + + # 清理所有召唤的仆从小弟 + clear_all_minions() + + # 清空宠物数组 + team_a_pets.clear() + team_b_pets.clear() + all_pets.clear() + + # 清理子弹 + var bullets = get_tree().get_nodes_in_group("bullets") + for bullet in bullets: + bullet.queue_free() + + # 显示战斗结果 + show_battle_result(winner) + + # 生成战斗数据 + var battle_data = { + "attacker_pets": [], + "defender_pets": [], + "battle_duration": battle_time, + "damage_dealt": damage_dealt, + "damage_taken": damage_taken, + "kills": kills, + "battle_log": battle_log + } + + # 发射战斗结束信号 + battle_ended.emit(winner, battle_data) + + add_battle_log("[color=red]战斗结束!获胜方: %s[/color]" % winner) + + for child in get_children(): + if child is Area2D: + remove_child(child) + child.queue_free() + +#清理所有宠物 +func clear_all_pets(): + """清理所有宠物""" + for pet in all_pets: + if is_instance_valid(pet): + pet.queue_free() + + # 清理所有召唤的仆从小弟 + clear_all_minions() + + team_a_pets.clear() + team_b_pets.clear() + all_pets.clear() + +#清理所有召唤的仆从小弟 +func clear_all_minions(): + """清理所有召唤的仆从小弟""" + # 获取所有pets组中的节点 + var all_pets_in_group = get_tree().get_nodes_in_group("pets") + var minions_cleared = 0 + + for pet in all_pets_in_group: + if is_instance_valid(pet) and pet is NewPetBase: + # 立即设置为死亡状态 + pet.is_alive = false + pet.current_state = NewPetBase.PetState.DEAD + pet.current_target = null + # 从场景中移除 + if pet.get_parent(): + pet.get_parent().remove_child(pet) + pet.queue_free() + minions_cleared += 1 + + if minions_cleared > 0: + add_battle_log("[color=purple]清理了 %d 个召唤仆从[/color]" % minions_cleared) + +#立即清理所有宠物 +func clear_all_pets_immediately(): + """立即清理所有宠物(用于时间到时的平局处理)""" + for pet in all_pets: + if is_instance_valid(pet): + # 立即设置为死亡状态 + pet.is_alive = false + pet.current_state = NewPetBase.PetState.DEAD + pet.current_target = null + # 立即从场景中移除 + pet.get_parent().remove_child(pet) + pet.queue_free() + + # 清理所有召唤的仆从小弟 + clear_all_minions() + + # 清理所有子弹 + var bullets = get_tree().get_nodes_in_group("bullets") + for bullet in bullets: + if is_instance_valid(bullet): + bullet.queue_free() + + # 清空宠物数组 + team_a_pets.clear() + team_b_pets.clear() + all_pets.clear() + + add_battle_log("[color=red]时间到!所有宠物已被清理,战斗结束![/color]") +#=================即时清理防止游戏卡死===================== + + +#宠物死亡事件 +func _on_pet_died(pet: NewPetBase): + """宠物死亡事件""" + # 简化死亡处理,减少不必要的计算 + if battle_log.size() < 30: # 限制死亡日志数量 + add_battle_log("[color=red]%s 死亡[/color]" % pet.pet_name) + +#宠物攻击事件 +func _on_pet_attacked(attacker: NewPetBase, target: NewPetBase, damage: float): + """宠物攻击事件""" + # 简化统计更新 + damage_dealt[attacker.pet_id] = damage_dealt.get(attacker.pet_id, 0.0) + damage + damage_taken[target.pet_id] = damage_taken.get(target.pet_id, 0.0) + damage + + # 大幅减少攻击日志,只记录关键事件 + if damage >= 100: # 只记录高伤害攻击 + add_battle_log("[color=orange]%s->%s %.0f[/color]" % [attacker.pet_name, target.pet_name, damage]) + +#宠物技能使用事件 +func _on_pet_skill_used(pet: NewPetBase, skill_name: String): + """宠物技能使用事件""" + # 减少技能日志,只记录重要技能 + if skill_name in ["狂暴模式", "自爆", "召唤小弟", "死亡重生"]: + add_battle_log("[color=cyan]%s:%s[/color]" % [pet.pet_name, skill_name]) + + +#================偷菜对战设置=========================== +# 设置偷菜对战 +func setup_steal_battle(attacker_pets: Array, defender_pets: Array, attacker_name: String, defender_name: String): + """设置偷菜对战""" + print("[PetBattlePanel] 设置偷菜对战: 攻击者=%s, 防守者=%s" % [attacker_name, defender_name]) + print("[PetBattlePanel] 攻击方宠物数量: %d, 防守方宠物数量: %d" % [attacker_pets.size(), defender_pets.size()]) + + # 检查双方是否都有宠物 + if attacker_pets.is_empty() or defender_pets.is_empty(): + print("[PetBattlePanel] 错误: 双方必须至少有一个宠物才能参战") + return false + + # 重置战斗状态和UI + current_battle_state = BattleState.PREPARING + battle_time = 0.0 + battle_log.clear() + damage_dealt.clear() + damage_taken.clear() + kills.clear() + + # 隐藏战斗结束面板,显示战斗细节面板 + battle_end_panel.visible = false + battle_details_panel.visible = true + + # 重置战斗日志显示 + battle_details_text.text = "[color=green]战斗准备中...[/color]\n" + + # 限制出战宠物数量最多4个 + var limited_attacker_pets = attacker_pets.slice(0, min(4, attacker_pets.size())) + var limited_defender_pets = defender_pets.slice(0, min(4, defender_pets.size())) + + print("[PetBattlePanel] 限制后攻击方宠物数量: %d, 防守方宠物数量: %d" % [limited_attacker_pets.size(), limited_defender_pets.size()]) + + # 显示对战面板 + show() + + # 清理现有宠物 + clear_all_pets() + + # 设置队伍信息 + team_a_name = attacker_name + "(攻击方)" + team_b_name = defender_name + "(防守方)" + + # 更新UI显示 + #team_a_label.text = team_a_name + #team_b_label.text = team_b_name + + # 获取队伍位置点 + var team_a_positions = get_team_positions(team_a_node) + var team_b_positions = get_team_positions(team_b_node) + + # 生成攻击方宠物(teamA) + for i in range(limited_attacker_pets.size()): + var pet_data = limited_attacker_pets[i] + var position = team_a_positions[i] if i < team_a_positions.size() else team_a_positions[0] + var pet = spawn_pet(pet_data, "attacker", position) + if pet: + team_a_pets.append(pet) + all_pets.append(pet) + + # 生成防守方宠物(teamB) + for i in range(limited_defender_pets.size()): + var pet_data = limited_defender_pets[i] + var position = team_b_positions[i] if i < team_b_positions.size() else team_b_positions[0] + var pet = spawn_pet(pet_data, "defender", position) + if pet: + team_b_pets.append(pet) + all_pets.append(pet) + + print("[PetBattlePanel] 对战设置完成,攻击方: %d只,防守方: %d只" % [team_a_pets.size(), team_b_pets.size()]) + + # 添加战斗日志 + add_battle_log("[color=yellow]偷菜对战开始![/color]") + add_battle_log("[color=cyan]%s VS %s[/color]" % [team_a_name, team_b_name]) + + # 开始战斗 + start_battle(limited_attacker_pets, limited_defender_pets) + + return true +#================偷菜对战设置=========================== + + +#================场外辅助=========================== + +#美化确认弹窗 +func setup_confirm_dialog(): + """设置和美化确认弹窗""" + confirm_dialog.title = "辅助功能确认" + confirm_dialog.ok_button_text = "确认使用" + confirm_dialog.cancel_button_text = "取消" + confirm_dialog.unresizable = false + confirm_dialog.size = Vector2i(450, 200) + + # 创建并应用主题样式 + var theme = Theme.new() + var style_box = StyleBoxFlat.new() + style_box.bg_color = Color(0.2, 0.3, 0.4, 0.95) + style_box.border_width_left = 3 + style_box.border_width_right = 3 + style_box.border_width_top = 3 + style_box.border_width_bottom = 3 + style_box.border_color = Color(0.4, 0.6, 0.8, 1.0) + style_box.corner_radius_top_left = 10 + style_box.corner_radius_top_right = 10 + style_box.corner_radius_bottom_left = 10 + style_box.corner_radius_bottom_right = 10 + + theme.set_stylebox("panel", "AcceptDialog", style_box) + confirm_dialog.theme = theme + +#更新辅助功能冷却计时器 +func update_assist_cooldowns(delta: float): + """更新辅助功能冷却计时器""" + # 更新冷却计时器 + if heal_cooldown_timer > 0: + heal_cooldown_timer -= delta + if heal_cooldown_timer <= 0: + team_a_heal_button.disabled = false + team_a_heal_button.text = "团队治疗" + else: + team_a_heal_button.text = "治疗冷却 %.1fs" % heal_cooldown_timer + + if rage_cooldown_timer > 0: + rage_cooldown_timer -= delta + if rage_cooldown_timer <= 0: + team_a_rage_button.disabled = false + team_a_rage_button.text = "团队狂暴" + else: + team_a_rage_button.text = "狂暴冷却 %.1fs" % rage_cooldown_timer + + if shield_cooldown_timer > 0: + shield_cooldown_timer -= delta + if shield_cooldown_timer <= 0: + team_a_shield_button.disabled = false + team_a_shield_button.text = "团队护盾" + else: + team_a_shield_button.text = "护盾冷却 %.1fs" % shield_cooldown_timer + +#显示辅助功能确认弹窗 +func show_assist_confirm(operation_type: String, description: String, effect: String): + """显示辅助功能确认弹窗""" + current_assist_operation = operation_type + + # 设置弹窗内容(纯文本格式) + var dialog_text = "%s\n\n" % description + dialog_text += "效果:%s\n\n" % effect + dialog_text += "注意:使用后该技能将进入5秒冷却时间\n\n" + dialog_text += "确定要使用这个辅助功能吗?" + + confirm_dialog.dialog_text = dialog_text + confirm_dialog.popup_centered() + +#确认使用辅助功能 +func _on_assist_confirmed(): + """确认使用辅助功能""" + match current_assist_operation: + "heal": + execute_team_heal() + "rage": + execute_team_rage() + "shield": + execute_team_shield() + + current_assist_operation = "" + +#取消使用辅助功能 +func _on_assist_canceled(): + """取消使用辅助功能""" + current_assist_operation = "" + +#执行团队治疗 +func execute_team_heal(): + """执行团队治疗功能""" + var healed_count = 0 + # 只对teamA(attacker队伍)的宠物生效 + for pet in all_pets: + if pet.is_alive and pet.pet_team == "attacker": + var heal_amount = pet.max_health * 0.3 # 恢复30%最大生命值 + pet.current_health = min(pet.max_health, pet.current_health + heal_amount) + pet.update_health_bar() + healed_count += 1 + + # 添加治疗特效(绿色光芒)- 使用弱引用避免访问已销毁的对象 + if pet.pet_image: + var pet_ref = weakref(pet) + var tween = create_tween() + tween.tween_method(func(color): + var pet_obj = pet_ref.get_ref() + if pet_obj != null and is_instance_valid(pet_obj) and pet_obj.pet_image: + pet_obj.pet_image.modulate = color, + Color.WHITE, Color.GREEN, 0.3) + tween.tween_method(func(color): + var pet_obj = pet_ref.get_ref() + if pet_obj != null and is_instance_valid(pet_obj) and pet_obj.pet_image: + pet_obj.pet_image.modulate = color, + Color.GREEN, Color.WHITE, 0.3) + + # 启动冷却 + heal_cooldown_timer = assist_cooldown_time + team_a_heal_button.disabled = true + + add_battle_log("[color=green]🌿 使用团队治疗!为 %d 只teamA宠物恢复了30%%生命值[/color]" % healed_count) + +#执行团队狂暴 +func execute_team_rage(): + """执行团队狂暴功能""" + var raged_count = 0 + # 只对teamA(attacker队伍)的宠物生效 + for pet in all_pets: + if pet.is_alive and pet.pet_team == "attacker": + # 激活狂暴模式5秒 + pet.is_berserker = true + raged_count += 1 + + # 添加狂暴特效(红色光芒) + if pet.pet_image: + pet.pet_image.modulate = Color.RED + + # 5秒后自动取消狂暴(使用弱引用避免访问已销毁的对象) + var pet_ref = weakref(pet) + get_tree().create_timer(5.0).timeout.connect(func(): + var pet_obj = pet_ref.get_ref() + if pet_obj != null and is_instance_valid(pet_obj) and pet_obj.is_alive: + pet_obj.is_berserker = false + if pet_obj.pet_image: + pet_obj.pet_image.modulate = Color.WHITE + ) + + # 启动冷却 + rage_cooldown_timer = assist_cooldown_time + team_a_rage_button.disabled = true + + add_battle_log("[color=red]🔥 使用团队狂暴!%d 只teamA宠物进入狂暴状态5秒[/color]" % raged_count) + +#执行团队护盾 +func execute_team_shield(): + """执行团队护盾功能""" + var shielded_count = 0 + # 只对teamA(attacker队伍)的宠物生效 + for pet in all_pets: + if pet.is_alive and pet.pet_team == "attacker": + # 增加100点护盾(允许超过最大值) + pet.current_shield += 10000 + # 临时提高最大护盾值以显示正确的进度条 + if pet.current_shield > pet.max_shield: + pet.max_shield = pet.current_shield + pet.update_shield_bar() + shielded_count += 1 + + # 添加护盾特效(蓝色光芒)- 使用弱引用避免访问已销毁的对象 + if pet.pet_image: + var pet_ref = weakref(pet) + var tween = create_tween() + tween.tween_method(func(color): + var pet_obj = pet_ref.get_ref() + if pet_obj != null and is_instance_valid(pet_obj) and pet_obj.pet_image: + pet_obj.pet_image.modulate = color, + Color.WHITE, Color.BLUE, 0.3) + tween.tween_method(func(color): + var pet_obj = pet_ref.get_ref() + if pet_obj != null and is_instance_valid(pet_obj) and pet_obj.pet_image: + pet_obj.pet_image.modulate = color, + Color.BLUE, Color.WHITE, 0.3) + + # 启动冷却 + shield_cooldown_timer = assist_cooldown_time + team_a_shield_button.disabled = true + + add_battle_log("[color=blue]🛡️ 使用团队护盾!为 %d 只teamA宠物增加了100点护甲[/color]" % shielded_count) + +#团队治疗按钮(直接恢复30%血量) +func _on_team_a_heal_pressed() -> void: + if heal_cooldown_timer > 0: + return + + show_assist_confirm("heal", "团队治疗", "为所有存活的己方宠物恢复30%最大生命值") + +#团队狂暴按钮(直接进入五秒狂暴模式,与狂暴技能不冲突) +func _on_team_a_rage_pressed() -> void: + if rage_cooldown_timer > 0: + return + + show_assist_confirm("rage", "团队狂暴", "让所有存活的己方宠物进入狂暴状态5秒,攻击力翻倍") + +#团队护盾按钮(直接加100护盾) +func _on_team_a_shield_pressed() -> void: + if shield_cooldown_timer > 0: + return + + show_assist_confirm("shield", "团队护盾", "为所有存活的己方宠物增加100点护甲值") + +#================场外辅助=========================== diff --git a/Scene/NewPet/PetBattlePanel.gd.uid b/Scene/NewPet/PetBattlePanel.gd.uid new file mode 100644 index 0000000..28a724d --- /dev/null +++ b/Scene/NewPet/PetBattlePanel.gd.uid @@ -0,0 +1 @@ +uid://bt06n5cxip4kr diff --git a/Scene/NewPet/PetBattlePanel.tscn b/Scene/NewPet/PetBattlePanel.tscn new file mode 100644 index 0000000..9af111c --- /dev/null +++ b/Scene/NewPet/PetBattlePanel.tscn @@ -0,0 +1,318 @@ +[gd_scene load_steps=3 format=3 uid="uid://diwbnwhnq026"] + +[ext_resource type="Script" uid="uid://bt06n5cxip4kr" path="res://Scene/NewPet/PetBattlePanel.gd" id="1_0uw4q"] +[ext_resource type="Texture2D" uid="uid://dh0dsw3jr0gra" path="res://assets/宠物对战背景图片/背景2.webp" id="2_c80tv"] + +[node name="PetBattlePanel" type="Panel"] +offset_right = 1400.0 +offset_bottom = 720.0 +script = ExtResource("1_0uw4q") + +[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_c80tv") + +[node name="TeamB" type="Node2D" parent="."] +position = Vector2(1239, 421) + +[node name="Pos1" type="Marker2D" parent="TeamB"] +position = Vector2(17, -166) + +[node name="Pos2" type="Marker2D" parent="TeamB"] +position = Vector2(42, 160) + +[node name="Pos3" type="Marker2D" parent="TeamB"] +position = Vector2(42, -38) + +[node name="Pos4" type="Marker2D" parent="TeamB"] +position = Vector2(21, -315) + +[node name="Pos5" type="Marker2D" parent="TeamB"] +position = Vector2(42, -102) + +[node name="Pos6" type="Marker2D" parent="TeamB"] +position = Vector2(42, 96) + +[node name="Pos7" type="Marker2D" parent="TeamB"] +position = Vector2(42, 32) + +[node name="Pos8" type="Marker2D" parent="TeamB"] +position = Vector2(21, -251) + +[node name="Pos9" type="Marker2D" parent="TeamB"] +position = Vector2(42, -230) + +[node name="Pos10" type="Marker2D" parent="TeamB"] +position = Vector2(42, 224) + +[node name="TeamA" type="Node2D" parent="."] +position = Vector2(138, 134) + +[node name="Pos1" type="Marker2D" parent="TeamA"] +position = Vector2(-37, 408) + +[node name="Pos2" type="Marker2D" parent="TeamA"] +position = Vector2(-41, 93) + +[node name="Pos3" type="Marker2D" parent="TeamA"] +position = Vector2(-38, 313) + +[node name="Pos4" type="Marker2D" parent="TeamA"] +position = Vector2(-38, 223) + +[node name="Pos5" type="Marker2D" parent="TeamA"] +position = Vector2(-38, 133) + +[node name="Pos6" type="Marker2D" parent="TeamA"] +position = Vector2(-38, 43) + +[node name="Pos7" type="Marker2D" parent="TeamA"] +position = Vector2(-38, 358) + +[node name="Pos8" type="Marker2D" parent="TeamA"] +position = Vector2(-38, 268) + +[node name="Pos9" type="Marker2D" parent="TeamA"] +position = Vector2(-38, 178) + +[node name="Pos10" type="Marker2D" parent="TeamA"] +position = Vector2(-38, 453) + +[node name="PlayerSkillPanel" type="Panel" parent="."] +layout_mode = 0 +offset_left = 1143.0 +offset_right = 1400.0 +offset_bottom = 720.0 + +[node name="Title" type="Label" parent="PlayerSkillPanel"] +self_modulate = Color(0, 1, 0, 1) +layout_mode = 0 +offset_right = 257.0 +offset_bottom = 40.0 +theme_override_font_sizes/font_size = 25 +text = "辅助功能" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="TeamASkills" type="VBoxContainer" parent="PlayerSkillPanel"] +layout_mode = 0 +offset_top = 50.0 +offset_right = 257.0 +offset_bottom = 300.0 + +[node name="TeamAHeal" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +text = "团队治疗" + +[node name="TeamARage" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +text = "团队狂暴" + +[node name="TeamAShield" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +text = "团队护盾" + +[node name="test" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test2" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test3" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test4" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test5" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test6" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test7" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test8" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test9" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test10" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="test11" type="Button" parent="PlayerSkillPanel/TeamASkills"] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +disabled = true +text = "测试" + +[node name="BattleControls" type="VBoxContainer" parent="PlayerSkillPanel"] +layout_mode = 0 +offset_top = 580.0 +offset_right = 257.0 +offset_bottom = 720.0 + +[node name="StartBattleButton" type="Button" parent="PlayerSkillPanel/BattleControls"] +visible = false +layout_mode = 2 +theme_override_colors/font_color = Color(0, 1, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "开始战斗" + +[node name="StopBattleButton" type="Button" parent="PlayerSkillPanel/BattleControls"] +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "逃跑" + +[node name="BattleEndPanel" type="Panel" parent="."] +visible = false +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="RichTextLabel" parent="BattleEndPanel"] +layout_mode = 0 +offset_top = 104.0 +offset_right = 777.0 +offset_bottom = 567.0 +theme_override_font_sizes/normal_font_size = 30 +bbcode_enabled = true +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="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="Time" type="Label" parent="."] +layout_mode = 0 +offset_left = 574.0 +offset_top = 60.0 +offset_right = 813.0 +offset_bottom = 129.0 +theme_override_colors/font_color = Color(0.623529, 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 = 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 = 35 +text = "[05:00]" +horizontal_alignment = 1 +vertical_alignment = 1 + +[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 + +[node name="ConfirmDialog" type="ConfirmationDialog" parent="."] +title = "弹窗标题" +initial_position = 1 +size = Vector2i(400, 300) +unresizable = true +ok_button_text = "确认" +dialog_text = "弹窗内容" +dialog_autowrap = true +cancel_button_text = "取消" + +[connection signal="pressed" from="PlayerSkillPanel/TeamASkills/TeamAHeal" to="." method="_on_team_a_heal_pressed"] +[connection signal="pressed" from="PlayerSkillPanel/TeamASkills/TeamARage" to="." method="_on_team_a_rage_pressed"] +[connection signal="pressed" from="PlayerSkillPanel/TeamASkills/TeamAShield" to="." method="_on_team_a_shield_pressed"] +[connection signal="pressed" from="PlayerSkillPanel/BattleControls/StopBattleButton" to="." method="_on_stop_battle_button_pressed"] diff --git a/Scene/NewPet/PetConfig.gd b/Scene/NewPet/PetConfig.gd new file mode 100644 index 0000000..9df6ec2 --- /dev/null +++ b/Scene/NewPet/PetConfig.gd @@ -0,0 +1,396 @@ +extends Node +class_name PetConfig +# 每一种宠物的配置数据 方便导出JSON数据,放到MongoDB数据库上 + + + +# 攻击类型枚举(简化为仅近战) +enum AttackType { + MELEE # 近战攻击 +} + +enum ElementType { + NONE, METAL, WOOD, WATER, FIRE, EARTH, THUNDER +} + +enum PetState { + IDLE, # 待机 + MOVING, # 移动 + ATTACKING, # 攻击中 + SKILL_CASTING, # 释放技能 + DEAD # 死亡 +} + +#==========================以下是导出数据可以被修改的========================================= +# 基本属性 +var pet_name: String = "萌芽小绿" # 宠物名称 +var pet_id: String = "0001" # 宠物唯一编号 +var pet_type: String = "小绿" # 宠物种类 +var pet_level: int = 1 # 宠物等级 +var pet_experience: int = 0 # 宠物经验值 + +#性格 出生日期 爱好 个人介绍 +var pet_temperament: String = "温顺" # 性格 +var pet_birthday: String = "2023-01-01" # 出生日期 +var pet_hobby: String = "喜欢吃pet" # 爱好 +var pet_introduction: String = "我是一个小绿" # 个人介绍 + +# 生命与防御 +var max_health: float = 200.0 # 最大生命值 +var enable_health_regen: bool = true # 是否开启生命恢复 +var health_regen: float = 1.0 # 每秒生命恢复大小 +var enable_shield_regen: bool = true # 是否开启护盾恢复 +var max_shield: float = 100.0 # 最大护盾值 +var shield_regen: float = 1.0 # 每秒护盾恢复大小 +var max_armor: float = 100.0 # 最大护甲值 + +# 攻击属性 +var base_attack_damage: float = 25.0 # 基础攻击力 +var crit_rate: float = 0.1 # 暴击几率(0~1) +var crit_damage: float = 1.5 # 暴击伤害倍率(1.5 = 150%伤害) +var armor_penetration: float = 0.0 # 护甲穿透值(直接减少对方护甲值) + +#======================以后有新技能在这里添加============================== +# 技能-多发射击 +var enable_multi_projectile_skill: bool = false +var multi_projectile_delay: float = 2.0 # 多发射击延迟时间(秒) + +# 技能-狂暴模式 +var enable_berserker_skill: bool = false +var berserker_bonus: float = 1.5 # 狂暴伤害加成 +var berserker_duration: float = 5.0 # 狂暴持续时间(秒) + +#技能-自爆 +var enable_self_destruct_skill: bool = false +var self_destruct_damage: float = 50.0 # 自爆伤害值 + +#技能-召唤小弟 +var enable_summon_pet_skill: bool = false +var summon_count: int = 1 # 召唤小弟数量 +var summon_scale: float = 0.1 # 召唤小弟属性缩放比例(10%) + +#技能-死亡重生 +var enable_death_respawn_skill: bool = false +var respawn_health_percentage: float = 0.3 # 重生时恢复的血量百分比(30%) +#======================以后有新技能在这里添加============================== + +# 移动属性 +var move_speed: float = 150.0 # 移动速度(像素/秒) +var dodge_rate: float = 0.05 # 闪避概率(0~1) + +# 元素属性 +var element_type: ElementType = ElementType.NONE # 元素类型(例如火、水、雷等) +var element_damage_bonus: float = 50.0 # 元素伤害加成(额外元素伤害) + +# 武器系统 +var left_weapon: String = "" # 左手武器名称 +var right_weapon: String = "" # 右手武器名称 + +# 宠物配置字典 - 用于导出到MongoDB数据库 +var pet_configs: Dictionary = { + "烈焰鸟": { + "pet_name": "树萌芽の烈焰鸟", + "can_purchase": true, + "cost": 1000, + "pet_image": "res://Scene/NewPet/PetType/flying_bird.tscn", + "pet_id": "0001", + "pet_type": "烈焰鸟", + "pet_level": 1, + "pet_experience": 500, + "pet_temperament": "勇猛", + "pet_birthday": "2023-03-15", + "pet_hobby": "喜欢战斗和烈火", + "pet_introduction": "我爱吃虫子", + "max_health": 300, + "enable_health_regen": true, + "health_regen": 2, + "enable_shield_regen": true, + "max_shield": 150, + "shield_regen": 1.5, + "max_armor": 120, + "base_attack_damage": 40, + "crit_rate": 0.15, + "crit_damage": 2, + "armor_penetration": 10, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 2, + "enable_berserker_skill": true, + "berserker_bonus": 1.8, + "berserker_duration": 6, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": false, + "enable_death_respawn_skill": true, + "respawn_health_percentage": 0.4, + "move_speed": 180, + "dodge_rate": 0.08, + "element_type": "FIRE", + "element_damage_bonus": 75, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + }, + "大蓝虫": { + "pet_name": "树萌芽の大蓝虫", + "can_purchase": true, + "cost": 1000, + "pet_image": "res://Scene/NewPet/PetType/big_beetle.tscn", + "pet_id": "0002", + "pet_type": "大蓝虫", + "pet_level": 8, + "pet_experience": 320, + "pet_temperament": "冷静", + "pet_birthday": "2023-06-20", + "pet_hobby": "喜欢和小甲壳虫玩", + "pet_introduction": "我是大蓝虫,不是大懒虫!", + "max_health": 180, + "enable_health_regen": true, + "health_regen": 1.2, + "enable_shield_regen": true, + "max_shield": 200, + "shield_regen": 2.5, + "max_armor": 80, + "base_attack_damage": 35, + "crit_rate": 0.12, + "crit_damage": 1.8, + "armor_penetration": 15, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 1.5, + "enable_berserker_skill": false, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": true, + "summon_count": 2, + "summon_scale": 0.15, + "enable_death_respawn_skill": false, + "move_speed": 120, + "dodge_rate": 0.12, + "element_type": "WATER", + "element_damage_bonus": 100, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + }, + "小蓝虫": { + "pet_name": "树萌芽の小蓝虫", + "can_purchase": true, + "cost": 1000, + "pet_image": "res://Scene/NewPet/PetType/small_beetle.tscn", + "pet_id": "0002", + "pet_type": "小蓝虫", + "pet_level": 1, + "pet_experience": 0, + "pet_temperament": "冷静", + "pet_birthday": "2023-06-20", + "pet_hobby": "喜欢和大蓝虫玩", + "pet_introduction": "我是小蓝虫,不是小懒虫!", + "max_health": 90, + "enable_health_regen": true, + "health_regen": 1.2, + "enable_shield_regen": true, + "max_shield": 200, + "shield_regen": 2.5, + "max_armor": 80, + "base_attack_damage": 35, + "crit_rate": 0.12, + "crit_damage": 1.8, + "armor_penetration": 15, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 1.5, + "enable_berserker_skill": false, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": true, + "summon_count": 2, + "summon_scale": 0.15, + "enable_death_respawn_skill": false, + "move_speed": 120, + "dodge_rate": 0.12, + "element_type": "WATER", + "element_damage_bonus": 100, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + }, + "小蓝": { + "pet_name": "树萌芽の小蓝", + "can_purchase": true, + "cost": 1000, + "pet_image": "res://Scene/NewPet/PetType/small_blue.tscn", + "pet_id": "0002", + "pet_type": "小蓝", + "pet_level": 1, + "pet_experience": 0, + "pet_temperament": "冷静", + "pet_birthday": "2023-06-20", + "pet_hobby": "喜欢和小黄一起玩", + "pet_introduction": "我是小黄!", + "max_health": 120, + "enable_health_regen": true, + "health_regen": 1.2, + "enable_shield_regen": true, + "max_shield": 200, + "shield_regen": 2.5, + "max_armor": 80, + "base_attack_damage": 35, + "crit_rate": 0.12, + "crit_damage": 1.8, + "armor_penetration": 15, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 1.5, + "enable_berserker_skill": false, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": true, + "summon_count": 2, + "summon_scale": 0.15, + "enable_death_respawn_skill": false, + "move_speed": 120, + "dodge_rate": 0.12, + "element_type": "WATER", + "element_damage_bonus": 100, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + } +} + +# 初始化函数 +func _ready(): + """节点准备就绪时自动加载JSON配置""" + load_configs_from_json() + +# 手动初始化配置的函数 +func initialize_configs(): + """手动初始化宠物配置,优先从JSON加载""" + if not load_configs_from_json(): + print("JSON加载失败,使用默认配置") + # 如果JSON加载失败,保持使用代码中的默认配置 + + +# 获取宠物配置的函数 +func get_pet_config(pet_key: String) -> Dictionary: + """根据宠物键值获取配置""" + if pet_configs.has(pet_key): + return pet_configs[pet_key] + else: + print("未找到宠物配置: ", pet_key, ",使用默认配置") + return get_default_config() + +# 获取所有宠物配置键值的函数 +func get_all_pet_keys() -> Array: + """获取所有可用的宠物配置键值""" + return pet_configs.keys() + +# 检查宠物配置是否存在的函数 +func has_pet_config(pet_key: String) -> bool: + """检查指定的宠物配置是否存在""" + return pet_configs.has(pet_key) + +# 获取默认配置的函数 +func get_default_config() -> Dictionary: + """获取默认宠物配置""" + return { + "pet_name": pet_name, + "pet_id": pet_id, + "pet_type": pet_type, + "pet_level": pet_level, + "pet_experience": pet_experience, + "pet_temperament": pet_temperament, + "pet_birthday": pet_birthday, + "pet_hobby": pet_hobby, + "pet_introduction": pet_introduction, + "max_health": max_health, + "enable_health_regen": enable_health_regen, + "health_regen": health_regen, + "enable_shield_regen": enable_shield_regen, + "max_shield": max_shield, + "shield_regen": shield_regen, + "max_armor": max_armor, + "base_attack_damage": base_attack_damage, + "crit_rate": crit_rate, + "crit_damage": crit_damage, + "armor_penetration": armor_penetration, + "enable_multi_projectile_skill": enable_multi_projectile_skill, + "multi_projectile_delay": multi_projectile_delay, + "enable_berserker_skill": enable_berserker_skill, + "berserker_bonus": berserker_bonus, + "berserker_duration": berserker_duration, + "enable_self_destruct_skill": enable_self_destruct_skill, + "self_destruct_damage": self_destruct_damage, + "enable_summon_pet_skill": enable_summon_pet_skill, + "summon_count": summon_count, + "summon_scale": summon_scale, + "enable_death_respawn_skill": enable_death_respawn_skill, + "respawn_health_percentage": respawn_health_percentage, + "move_speed": move_speed, + "dodge_rate": dodge_rate, + "element_type": element_type, + "element_damage_bonus": element_damage_bonus, + "left_weapon": left_weapon, + "right_weapon": right_weapon + } + +# 字符串转换为ElementType枚举的函数 +func string_to_element_type(element_str: String) -> ElementType: + """将字符串转换为ElementType枚举""" + match element_str.to_upper(): + "NONE":#没有元素类型 + return ElementType.NONE + "METAL":#金元素 + return ElementType.METAL + "WOOD":#木元素 + return ElementType.WOOD + "WATER":#水元素 + return ElementType.WATER + "FIRE": #火元素 + return ElementType.FIRE + "EARTH":#土元素 + return ElementType.EARTH + "THUNDER":#雷元素 + return ElementType.THUNDER + _: + return ElementType.NONE + +# 从JSON文件加载宠物配置的函数 +func load_configs_from_json(file_path: String = "res://Scene/NewPet/Pet_data.json") -> bool: + """从JSON文件加载宠物配置""" + if not FileAccess.file_exists(file_path): + print("宠物配置文件不存在: ", file_path) + return false + + var file = FileAccess.open(file_path, FileAccess.READ) + if file == null: + print("无法打开宠物配置文件: ", file_path) + return false + + var json_string = file.get_as_text() + file.close() + + var json = JSON.new() + var parse_result = json.parse(json_string) + if parse_result != OK: + print("JSON解析失败: ", json.error_string) + return false + + var loaded_configs = json.data + if typeof(loaded_configs) != TYPE_DICTIONARY: + print("JSON格式错误,期望字典类型") + return false + + # 清空现有配置并加载新配置 + pet_configs.clear() + + # 遍历加载的配置 + for pet_key in loaded_configs.keys(): + var config = loaded_configs[pet_key] + if typeof(config) != TYPE_DICTIONARY: + print("跳过无效的宠物配置: ", pet_key) + continue + + # 处理element_type字符串转换为枚举 + if config.has("element_type") and typeof(config["element_type"]) == TYPE_STRING: + config["element_type"] = string_to_element_type(config["element_type"]) + + # 添加到配置字典 + pet_configs[pet_key] = config + + print("成功从JSON加载了 ", pet_configs.size(), " 个宠物配置") + return true + +# 导出配置到JSON的函数 +func export_configs_to_json() -> String: + """将宠物配置导出为JSON字符串,用于保存到MongoDB""" + return JSON.stringify(pet_configs) diff --git a/Scene/NewPet/PetConfig.gd.uid b/Scene/NewPet/PetConfig.gd.uid new file mode 100644 index 0000000..9d205cf --- /dev/null +++ b/Scene/NewPet/PetConfig.gd.uid @@ -0,0 +1 @@ +uid://l31ap5jcuyfl diff --git a/Scene/NewPet/PetType/big_beetle.tscn b/Scene/NewPet/PetType/big_beetle.tscn new file mode 100644 index 0000000..c9270d9 --- /dev/null +++ b/Scene/NewPet/PetType/big_beetle.tscn @@ -0,0 +1,68 @@ +[gd_scene load_steps=8 format=3 uid="uid://ba85asiwug57i"] + +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="1_4f76q"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_vbyii"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_op7i3"] +atlas = ExtResource("1_4f76q") +region = Rect2(72, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c36rm"] +atlas = ExtResource("1_4f76q") +region = Rect2(120, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mjdfm"] +atlas = ExtResource("1_4f76q") +region = Rect2(72, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_q454c"] +atlas = ExtResource("1_4f76q") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_b73qu") +animation = &"walk" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_vbyii") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_vbyii") +flip_h = true diff --git a/Scene/NewPet/PetType/flying_bird.tscn b/Scene/NewPet/PetType/flying_bird.tscn new file mode 100644 index 0000000..e90fc1b --- /dev/null +++ b/Scene/NewPet/PetType/flying_bird.tscn @@ -0,0 +1,64 @@ +[gd_scene load_steps=8 format=3 uid="uid://bpkq40vvq3cxy"] + +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="1_lxn61"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_wrr70"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_lgi35"] +atlas = ExtResource("1_lxn61") +region = Rect2(192, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wn6km"] +atlas = ExtResource("1_lxn61") +region = Rect2(144, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qmpjj"] +atlas = ExtResource("1_lxn61") +region = Rect2(168, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1mpkc"] +atlas = ExtResource("1_lxn61") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_b73qu") +animation = &"walk" +autoplay = "walk" +frame_progress = 0.111287 + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_wrr70") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_wrr70") +flip_h = true diff --git a/Scene/NewPet/PetType/green_slime.tscn b/Scene/NewPet/PetType/green_slime.tscn new file mode 100644 index 0000000..ea465f5 --- /dev/null +++ b/Scene/NewPet/PetType/green_slime.tscn @@ -0,0 +1,103 @@ +[gd_scene load_steps=13 format=3 uid="uid://dvkix032ikul3"] + +[ext_resource type="Texture2D" uid="uid://b75oytao5cgjo" path="res://assets/宠物图片/绿色史莱姆.png" id="1_m1ura"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_58kah"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_ou315"] +atlas = ExtResource("1_m1ura") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_saxlb"] +atlas = ExtResource("1_m1ura") +region = Rect2(72, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bxslx"] +atlas = ExtResource("1_m1ura") +region = Rect2(48, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dvhl1"] +atlas = ExtResource("1_m1ura") +region = Rect2(24, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0t1ns"] +atlas = ExtResource("1_m1ura") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_sbjn0"] +atlas = ExtResource("1_m1ura") +region = Rect2(72, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qvnbx"] +atlas = ExtResource("1_m1ura") +region = Rect2(48, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n0kjo"] +atlas = ExtResource("1_m1ura") +region = Rect2(24, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_obu0n"] +atlas = ExtResource("1_m1ura") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_yhcbw") +animation = &"idle" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_58kah") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_58kah") +flip_h = true diff --git a/Scene/NewPet/PetType/little_knight.tscn b/Scene/NewPet/PetType/little_knight.tscn new file mode 100644 index 0000000..290628d --- /dev/null +++ b/Scene/NewPet/PetType/little_knight.tscn @@ -0,0 +1,176 @@ +[gd_scene load_steps=24 format=3 uid="uid://dwdoine3llw30"] + +[ext_resource type="Texture2D" uid="uid://bal78ts2eq4yu" path="res://assets/宠物图片/护卫.png" id="1_4imwo"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_ywvjf"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_rjt8u"] +atlas = ExtResource("1_4imwo") +region = Rect2(224, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_81r1q"] +atlas = ExtResource("1_4imwo") +region = Rect2(192, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nliwy"] +atlas = ExtResource("1_4imwo") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kbr5d"] +atlas = ExtResource("1_4imwo") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yhrjc"] +atlas = ExtResource("1_4imwo") +region = Rect2(224, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2dbgw"] +atlas = ExtResource("1_4imwo") +region = Rect2(192, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h0n46"] +atlas = ExtResource("1_4imwo") +region = Rect2(160, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1tk7r"] +atlas = ExtResource("1_4imwo") +region = Rect2(128, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ogy1e"] +atlas = ExtResource("1_4imwo") +region = Rect2(96, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mygjj"] +atlas = ExtResource("1_4imwo") +region = Rect2(64, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rkj0j"] +atlas = ExtResource("1_4imwo") +region = Rect2(32, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j7anc"] +atlas = ExtResource("1_4imwo") +region = Rect2(0, 64, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cxgnv"] +atlas = ExtResource("1_4imwo") +region = Rect2(224, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2itrd"] +atlas = ExtResource("1_4imwo") +region = Rect2(192, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_c7ofb"] +atlas = ExtResource("1_4imwo") +region = Rect2(160, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_aa4e4"] +atlas = ExtResource("1_4imwo") +region = Rect2(128, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jx5oo"] +atlas = ExtResource("1_4imwo") +region = Rect2(96, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_umo24"] +atlas = ExtResource("1_4imwo") +region = Rect2(64, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_853s8"] +atlas = ExtResource("1_4imwo") +region = Rect2(32, 96, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6x5xm"] +atlas = ExtResource("1_4imwo") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_yhcbw") +animation = &"walk" +autoplay = "walk" +frame_progress = 0.272604 + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_ywvjf") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_ywvjf") +flip_h = true diff --git a/Scene/NewPet/PetType/red_slime.tscn b/Scene/NewPet/PetType/red_slime.tscn new file mode 100644 index 0000000..7ecaa4b --- /dev/null +++ b/Scene/NewPet/PetType/red_slime.tscn @@ -0,0 +1,104 @@ +[gd_scene load_steps=13 format=3 uid="uid://c8siga6au2vqh"] + +[ext_resource type="Texture2D" uid="uid://cvpsjlje7q3to" path="res://assets/宠物图片/红色史莱姆.png" id="1_2d2gf"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_ni2i3"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_s7ip1"] +atlas = ExtResource("1_2d2gf") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ff7pm"] +atlas = ExtResource("1_2d2gf") +region = Rect2(72, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_53j2r"] +atlas = ExtResource("1_2d2gf") +region = Rect2(48, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0ij01"] +atlas = ExtResource("1_2d2gf") +region = Rect2(24, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_20513"] +atlas = ExtResource("1_2d2gf") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3f8fr"] +atlas = ExtResource("1_2d2gf") +region = Rect2(72, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kbexh"] +atlas = ExtResource("1_2d2gf") +region = Rect2(48, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_njkpw"] +atlas = ExtResource("1_2d2gf") +region = Rect2(24, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xbspe"] +atlas = ExtResource("1_2d2gf") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_yhcbw") +animation = &"walk" +autoplay = "walk" +frame_progress = 0.528863 + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_ni2i3") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_ni2i3") +flip_h = true diff --git a/Scene/NewPet/PetType/small_beetle.tscn b/Scene/NewPet/PetType/small_beetle.tscn new file mode 100644 index 0000000..486d8ad --- /dev/null +++ b/Scene/NewPet/PetType/small_beetle.tscn @@ -0,0 +1,64 @@ +[gd_scene load_steps=7 format=3 uid="uid://bk5di5uq6bo04"] + +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="1_rph6q"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_bks4n"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_nswws"] +atlas = ExtResource("1_rph6q") +region = Rect2(0, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mjdfm"] +atlas = ExtResource("1_rph6q") +region = Rect2(48, 48, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1eo38"] +atlas = ExtResource("1_rph6q") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_b73qu") +animation = &"walk" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_bks4n") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_bks4n") +flip_h = true diff --git a/Scene/NewPet/PetType/small_blue.tscn b/Scene/NewPet/PetType/small_blue.tscn new file mode 100644 index 0000000..dec62f0 --- /dev/null +++ b/Scene/NewPet/PetType/small_blue.tscn @@ -0,0 +1,52 @@ +[gd_scene load_steps=6 format=3 uid="uid://d1sj6wl3mfpo3"] + +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="1_6fty5"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_4lqxb"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_stamd"] +atlas = ExtResource("1_6fty5") +region = Rect2(48, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v0b4v"] +atlas = ExtResource("1_6fty5") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_b2ss3") +animation = &"walk" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_4lqxb") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_4lqxb") +flip_h = true diff --git a/Scene/NewPet/PetType/small_drill_bit.tscn b/Scene/NewPet/PetType/small_drill_bit.tscn new file mode 100644 index 0000000..a037abc --- /dev/null +++ b/Scene/NewPet/PetType/small_drill_bit.tscn @@ -0,0 +1,64 @@ +[gd_scene load_steps=7 format=3 uid="uid://dkvo63yforem7"] + +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="1_x37sh"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_w6fwq"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_j2fq3"] +atlas = ExtResource("1_x37sh") +region = Rect2(144, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6q1oc"] +atlas = ExtResource("1_x37sh") +region = Rect2(192, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xvdwk"] +atlas = ExtResource("1_x37sh") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_6q1oc") +animation = &"walk" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_w6fwq") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_w6fwq") +flip_h = true diff --git a/Scene/NewPet/PetType/small_green.tscn b/Scene/NewPet/PetType/small_green.tscn new file mode 100644 index 0000000..a9315c3 --- /dev/null +++ b/Scene/NewPet/PetType/small_green.tscn @@ -0,0 +1,56 @@ +[gd_scene load_steps=7 format=3 uid="uid://bpsoc04xlvhqa"] + +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="1_i7yg5"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_wo7be"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_5gxwu"] +atlas = ExtResource("1_i7yg5") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pxsqn"] +atlas = ExtResource("1_i7yg5") +region = Rect2(0, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xxlll"] +atlas = ExtResource("1_i7yg5") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_k25pl") +animation = &"idle" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_wo7be") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_wo7be") +flip_h = true diff --git a/Scene/NewPet/PetType/small_orange.tscn b/Scene/NewPet/PetType/small_orange.tscn new file mode 100644 index 0000000..25e64c9 --- /dev/null +++ b/Scene/NewPet/PetType/small_orange.tscn @@ -0,0 +1,52 @@ +[gd_scene load_steps=6 format=3 uid="uid://bk7wkksxa7150"] + +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="1_4x5tv"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_iom1h"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_tdtxh"] +atlas = ExtResource("1_4x5tv") +region = Rect2(0, 24, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5rxf3"] +atlas = ExtResource("1_4x5tv") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_ujsmd") +animation = &"walk" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_iom1h") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_iom1h") +flip_h = true diff --git a/Scene/NewPet/PetType/small_pink.tscn b/Scene/NewPet/PetType/small_pink.tscn new file mode 100644 index 0000000..f9237c7 --- /dev/null +++ b/Scene/NewPet/PetType/small_pink.tscn @@ -0,0 +1,56 @@ +[gd_scene load_steps=7 format=3 uid="uid://cxj61dijvapdt"] + +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="1_wkxhn"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_xic1v"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_cxnqb"] +atlas = ExtResource("1_wkxhn") +region = Rect2(96, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_auciw"] +atlas = ExtResource("1_wkxhn") +region = Rect2(96, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nrp4g"] +atlas = ExtResource("1_wkxhn") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_b2ss3") +animation = &"idle" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_xic1v") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_xic1v") +flip_h = true diff --git a/Scene/NewPet/PetType/small_yellow.tscn b/Scene/NewPet/PetType/small_yellow.tscn new file mode 100644 index 0000000..02d0c73 --- /dev/null +++ b/Scene/NewPet/PetType/small_yellow.tscn @@ -0,0 +1,52 @@ +[gd_scene load_steps=6 format=3 uid="uid://is5klrhiktg4"] + +[ext_resource type="Texture2D" uid="uid://lx0l12qrituk" path="res://assets/宠物图片/一堆小怪.png" id="1_qrx6w"] +[ext_resource type="Texture2D" uid="uid://dciakkwnchcga" path="res://assets/我的世界图片/武器工具/木剑.png" id="2_dkex0"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_trhvc"] +atlas = ExtResource("1_qrx6w") +region = Rect2(144, 0, 24, 24) + +[sub_resource type="AtlasTexture" id="AtlasTexture_k5jn7"] +atlas = ExtResource("1_qrx6w") +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="PetImage" type="AnimatedSprite2D"] +scale = Vector2(4, 4) +sprite_frames = SubResource("SpriteFrames_yhcbw") +animation = &"walk" +autoplay = "walk" + +[node name="LeftToolImage" type="Sprite2D" parent="."] +z_index = 5 +position = Vector2(-10.5, 3) +texture = ExtResource("2_dkex0") +flip_h = true + +[node name="RightToolImage" type="Sprite2D" parent="."] +show_behind_parent = true +position = Vector2(-7.5, -6.25) +texture = ExtResource("2_dkex0") +flip_h = true diff --git a/Scene/NewPet/Pet_bag.json b/Scene/NewPet/Pet_bag.json new file mode 100644 index 0000000..b6abc43 --- /dev/null +++ b/Scene/NewPet/Pet_bag.json @@ -0,0 +1,81 @@ +{ +"宠物仓库":{ + "烈焰鸟": { + "pet_name": "树萌芽の烈焰鸟", + "pet_image":"res://Scene/NewPet/PetType/flying_bird.tscn", + "pet_id": "wea1212w12", + "pet_type": "烈焰鸟", + "pet_level": 1, + "pet_experience": 500, + "pet_temperament": "勇猛", + "pet_birthday": "2025-07-25", + "pet_hobby": "喜欢战斗和烈火", + "pet_introduction": "我爱吃虫子", + "max_health": 300.0, + "enable_health_regen": true, + "health_regen": 2.0, + "enable_shield_regen": true, + "max_shield": 150.0, + "shield_regen": 1.5, + "max_armor": 120.0, + "base_attack_damage": 40.0, + "crit_rate": 0.15, + "crit_damage": 2.0, + "armor_penetration": 10.0, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 2.0, + "enable_berserker_skill": true, + "berserker_bonus": 1.8, + "berserker_duration": 6.0, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": false, + "enable_death_respawn_skill": true, + "respawn_health_percentage": 0.4, + "move_speed": 180.0, + "dodge_rate": 0.08, + "element_type": "FIRE", + "element_damage_bonus": 75.0, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + }, + "大蓝虫": { + "pet_name": "树萌芽の大蓝虫", + "pet_image":"res://Scene/NewPet/PetType/big_beetle.tscn", + "pet_id": "dlc123123", + "pet_type": "大甲壳虫", + "pet_level": 8, + "pet_experience": 320, + "pet_temperament": "冷静", + "pet_birthday": "2023-06-20", + "pet_hobby": "喜欢和小甲壳虫玩", + "pet_introduction": "我是大蓝虫,不是大懒虫!", + "max_health": 180.0, + "enable_health_regen": true, + "health_regen": 1.2, + "enable_shield_regen": true, + "max_shield": 200.0, + "shield_regen": 2.5, + "max_armor": 80.0, + "base_attack_damage": 35.0, + "crit_rate": 0.12, + "crit_damage": 1.8, + "armor_penetration": 15.0, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 1.5, + "enable_berserker_skill": false, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": true, + "summon_count": 2, + "summon_scale": 0.15, + "enable_death_respawn_skill": false, + "move_speed": 120.0, + "dodge_rate": 0.12, + "element_type": "WATER", + "element_damage_bonus": 100.0, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + } + }, +"巡逻宠物":["wea1212w12"], +"出战宠物":["dlc123123"] +} \ No newline at end of file diff --git a/Scene/NewPet/Pet_data.json b/Scene/NewPet/Pet_data.json new file mode 100644 index 0000000..e9dbd91 --- /dev/null +++ b/Scene/NewPet/Pet_data.json @@ -0,0 +1,165 @@ +{ + "_id": { + "$oid": "687cf59b8e77ba00a7414bab" + }, + "updated_at": { + "$date": "2025-07-20T22:13:38.521Z" + }, + "烈焰鸟": { + "pet_name": "树萌芽の烈焰鸟", + "can_purchase": true, + "cost": 1000, + "pet_image": "res://Scene/NewPet/PetType/flying_bird.tscn", + "pet_id": "0001", + "pet_type": "烈焰鸟", + "pet_level": 1, + "pet_experience": 500, + "pet_temperament": "勇猛", + "pet_birthday": "2023-03-15", + "pet_hobby": "喜欢战斗和烈火", + "pet_introduction": "我爱吃虫子", + "max_health": 300, + "enable_health_regen": true, + "health_regen": 2, + "enable_shield_regen": true, + "max_shield": 150, + "shield_regen": 1.5, + "max_armor": 120, + "base_attack_damage": 40, + "crit_rate": 0.15, + "crit_damage": 2, + "armor_penetration": 10, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 2, + "enable_berserker_skill": true, + "berserker_bonus": 1.8, + "berserker_duration": 6, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": false, + "enable_death_respawn_skill": true, + "respawn_health_percentage": 0.4, + "move_speed": 180, + "dodge_rate": 0.08, + "element_type": "FIRE", + "element_damage_bonus": 75, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + }, + "大蓝虫": { + "pet_name": "树萌芽の大蓝虫", + "can_purchase": true, + "cost": 1000, + "pet_image": "res://Scene/NewPet/PetType/big_beetle.tscn", + "pet_id": "0002", + "pet_type": "大蓝虫", + "pet_level": 8, + "pet_experience": 320, + "pet_temperament": "冷静", + "pet_birthday": "2023-06-20", + "pet_hobby": "喜欢和小甲壳虫玩", + "pet_introduction": "我是大蓝虫,不是大懒虫!", + "max_health": 180, + "enable_health_regen": true, + "health_regen": 1.2, + "enable_shield_regen": true, + "max_shield": 200, + "shield_regen": 2.5, + "max_armor": 80, + "base_attack_damage": 35, + "crit_rate": 0.12, + "crit_damage": 1.8, + "armor_penetration": 15, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 1.5, + "enable_berserker_skill": false, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": true, + "summon_count": 2, + "summon_scale": 0.15, + "enable_death_respawn_skill": false, + "move_speed": 120, + "dodge_rate": 0.12, + "element_type": "WATER", + "element_damage_bonus": 100, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + }, + "小蓝虫": { + "pet_name": "树萌芽の小蓝虫", + "can_purchase": true, + "cost": 1000, + "pet_image": "res://Scene/NewPet/PetType/small_beetle.tscn", + "pet_id": "0002", + "pet_type": "小蓝虫", + "pet_level": 1, + "pet_experience": 0, + "pet_temperament": "冷静", + "pet_birthday": "2023-06-20", + "pet_hobby": "喜欢和大蓝虫玩", + "pet_introduction": "我是小蓝虫,不是小懒虫!", + "max_health": 90, + "enable_health_regen": true, + "health_regen": 1.2, + "enable_shield_regen": true, + "max_shield": 200, + "shield_regen": 2.5, + "max_armor": 80, + "base_attack_damage": 35, + "crit_rate": 0.12, + "crit_damage": 1.8, + "armor_penetration": 15, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 1.5, + "enable_berserker_skill": false, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": true, + "summon_count": 2, + "summon_scale": 0.15, + "enable_death_respawn_skill": false, + "move_speed": 120, + "dodge_rate": 0.12, + "element_type": "WATER", + "element_damage_bonus": 100, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + }, + "小蓝": { + "pet_name": "树萌芽の小蓝", + "can_purchase": true, + "cost": 1000, + "pet_image": "res://Scene/NewPet/PetType/small_blue.tscn", + "pet_id": "0002", + "pet_type": "小蓝", + "pet_level": 1, + "pet_experience": 0, + "pet_temperament": "冷静", + "pet_birthday": "2023-06-20", + "pet_hobby": "喜欢和小黄一起玩", + "pet_introduction": "我是小黄!", + "max_health": 120, + "enable_health_regen": true, + "health_regen": 1.2, + "enable_shield_regen": true, + "max_shield": 200, + "shield_regen": 2.5, + "max_armor": 80, + "base_attack_damage": 35, + "crit_rate": 0.12, + "crit_damage": 1.8, + "armor_penetration": 15, + "enable_multi_projectile_skill": true, + "multi_projectile_delay": 1.5, + "enable_berserker_skill": false, + "enable_self_destruct_skill": false, + "enable_summon_pet_skill": true, + "summon_count": 2, + "summon_scale": 0.15, + "enable_death_respawn_skill": false, + "move_speed": 120, + "dodge_rate": 0.12, + "element_type": "WATER", + "element_damage_bonus": 100, + "left_weapon": "钻石剑", + "right_weapon": "钻石剑" + } +} \ No newline at end of file diff --git a/Scene/NewPet/WeaponBase.gd b/Scene/NewPet/WeaponBase.gd new file mode 100644 index 0000000..f1f5677 --- /dev/null +++ b/Scene/NewPet/WeaponBase.gd @@ -0,0 +1,128 @@ +extends Node +class_name WeaponBase + +#武器系统 +var weapon_data = { + "钻石剑": { + "icon": 'res://assets/我的世界图片/武器工具/钻石剑.png', + "function": "apply_diamond_sword_effect" + }, + "铁剑": { + "icon": 'res://assets/我的世界图片/武器工具/铁剑.png', + "function": "apply_iron_sword_effect" + }, + "钻石斧": { + "icon": 'res://assets/我的世界图片/武器工具/钻石斧.png', + "function": "apply_diamond_axe_effect" + }, + "铁镐": { + "icon": 'res://assets/我的世界图片/武器工具/铁镐.png', + "function": "apply_iron_pickaxe_effect" + } +} + +# 武器效果函数 - 每种武器单独一个函数 + +#================钻石剑效果======================== +# 钻石剑效果 +func apply_diamond_sword_effect(pet): + pet.base_attack_damage += 15.0 + pet.crit_rate += 0.1 + pet.attack_speed += 0.2 + # 钻石剑效果已应用 + +# 移除钻石剑效果 +func remove_diamond_sword_effect(pet): + pet.base_attack_damage -= 15.0 + pet.crit_rate -= 0.1 + pet.attack_speed -= 0.2 + # 钻石剑效果已移除 + +#================钻石剑效果======================== + +#================铁剑效果======================== +# 铁剑效果 +func apply_iron_sword_effect(pet): + pet.base_attack_damage += 10.0 + pet.crit_rate += 0.05 + pet.attack_speed += 0.1 + # 铁剑效果已应用 + +# 移除铁剑效果 +func remove_iron_sword_effect(pet): + pet.base_attack_damage -= 10.0 + pet.crit_rate -= 0.05 + pet.attack_speed -= 0.1 + # 铁剑效果已移除 +#================铁剑效果======================== + + +#================钻石斧效果======================== +# 钻石斧效果 +func apply_diamond_axe_effect(pet): + pet.base_attack_damage += 20.0 + pet.armor_penetration += 0.2 + pet.knockback_force += 100.0 + # 钻石斧效果已应用 + +# 移除钻石斧效果 +func remove_diamond_axe_effect(pet): + pet.base_attack_damage -= 20.0 + pet.armor_penetration -= 0.2 + pet.knockback_force -= 100.0 + # 钻石斧效果已移除 +#================钻石斧效果======================== + + +#================铁镐效果======================== +# 铁镐效果 +func apply_iron_pickaxe_effect(pet): + pet.base_attack_damage += 8.0 + pet.armor_penetration += 0.3 + pet.attack_range += 20.0 + # 铁镐效果已应用 + +# 移除铁镐效果 +func remove_iron_pickaxe_effect(pet): + pet.base_attack_damage -= 8.0 + pet.armor_penetration -= 0.3 + pet.attack_range -= 20.0 + # 铁镐效果已移除 +#================铁镐效果======================== + + +#======================武器系统通用函数========================== +# 应用武器效果的主函数 +func apply_weapon_effect(pet, weapon_name: String): + if not weapon_data.has(weapon_name): + return + + var weapon = weapon_data[weapon_name] + var function_name = weapon.get("function", "") + + if function_name != "": + call(function_name, pet) + +# 移除武器效果的函数 +func remove_weapon_effect(pet, weapon_name: String): + if not weapon_data.has(weapon_name): + return + + var weapon = weapon_data[weapon_name] + var function_name = weapon.get("function", "") + + if function_name != "": + # 将apply替换为remove来调用移除函数 + var remove_function_name = function_name.replace("apply_", "remove_") + call(remove_function_name, pet) + +# 获取武器图标路径 +func get_weapon_icon(weapon_name: String) -> String: + if weapon_data.has(weapon_name): + return weapon_data[weapon_name].get("icon", "") + return "" + +# 获取所有武器名称列表 +func get_all_weapon_names() -> Array: + return weapon_data.keys() +#======================武器系统通用函数========================== diff --git a/Scene/NewPet/WeaponBase.gd.uid b/Scene/NewPet/WeaponBase.gd.uid new file mode 100644 index 0000000..5de56c8 --- /dev/null +++ b/Scene/NewPet/WeaponBase.gd.uid @@ -0,0 +1 @@ +uid://bpa6hp1mm6sj1 diff --git a/Script/BigPanel/ItemBagPanel.gd b/Script/BigPanel/ItemBagPanel.gd index 5a81cb8..aa9f79f 100644 --- a/Script/BigPanel/ItemBagPanel.gd +++ b/Script/BigPanel/ItemBagPanel.gd @@ -293,7 +293,7 @@ func _show_item_info(item_name: String, item_count: int): info_text += "描述: " + description if not _is_item_usable(item_name): - info_text += "\n注意: 此道具功能暂未实现" + pass else: info_text = item_name + " (数量: " + str(item_count) + ")\n描述: 暂无信息" @@ -363,7 +363,7 @@ func _send_farm_item_use_request(item_name: String): # 发送请求 tcp_network_manager_panel.send_message(message) - Toast.show("正在使用道具...", Color.BLUE, 2.0, 1.0) + #Toast.show("正在使用道具...", Color.BLUE, 2.0, 1.0) # 显示宠物使用道具确认对话框 func _show_pet_item_confirmation_dialog(item_name: String, item_count: int): @@ -431,13 +431,12 @@ func _send_pet_item_use_request(item_name: String, pet_id: String): # 退出宠物使用道具模式 _exit_pet_item_mode() - Toast.show("正在使用道具...", Color.BLUE, 2.0, 1.0) + #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() @@ -496,13 +495,12 @@ func _on_quit_button_pressed() -> void: func _on_refresh_button_pressed() -> void: # 刷新道具背包UI update_item_bag_ui() - Toast.show("道具背包已刷新", Color.GREEN, 2.0, 1.0) + #Toast.show("道具背包已刷新", Color.GREEN, 2.0, 1.0) #面板显示与隐藏切换处理 func _on_visibility_changed(): if visible: GlobalVariables.isZoomDisabled = true - # 面板显示时自动刷新数据 update_item_bag_ui() pass else: diff --git a/Script/BigPanel/LoginPanel.gd b/Script/BigPanel/LoginPanel.gd index 492c627..858a5fa 100644 --- a/Script/BigPanel/LoginPanel.gd +++ b/Script/BigPanel/LoginPanel.gd @@ -433,6 +433,7 @@ func _handle_login_success(user_data: Dictionary): main_game.item_bag = user_data.get("道具背包", []) main_game.pet_bag = user_data.get("宠物背包", []) main_game.patrol_pets = user_data.get("巡逻宠物", []) + main_game.battle_pets = user_data.get("出战宠物", []) # 启动游戏并隐藏登录面板 main_game.start_game = true diff --git a/Script/BigPanel/PetBagPanel.gd b/Script/BigPanel/PetBagPanel.gd index e734f1b..1b624af 100644 --- a/Script/BigPanel/PetBagPanel.gd +++ b/Script/BigPanel/PetBagPanel.gd @@ -61,9 +61,9 @@ func update_pet_bag_ui(): # 为背包中的每个宠物创建按钮 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 pet_name = pet_data.get("pet_type", "未知宠物") + var pet_level = pet_data.get("pet_level", 1) + var pet_owner_name = pet_data.get("pet_name", pet_name) # 创建宠物按钮 var button = _create_pet_button(pet_name, pet_level, pet_owner_name) @@ -118,31 +118,45 @@ func _update_button_pet_image(button: Button, pet_name: String): # 检查按钮是否有CropImage节点 var pet_image = button.get_node_or_null("CropImage") if not pet_image: + print("宠物背包按钮没有找到CropImage节点:", button.name) return - # 从宠物配置获取场景路径 + # 从服务器的宠物配置获取场景路径 var texture = null - var pet_config = _load_pet_config() + var pet_config = main_game.pet_config # 使用服务器返回的宠物配置 if pet_config.has(pet_name): var pet_info = pet_config[pet_name] - var scene_path = pet_info.get("场景路径", "") + var scene_path = pet_info.get("pet_image", "") # 使用服务器数据的pet_image字段 + print("宠物背包 ", pet_name, " 的图片路径:", scene_path) if scene_path != "" and ResourceLoader.exists(scene_path): + print("宠物背包开始加载宠物场景:", 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: + # 直接使用实例化的场景根节点,因为根节点就是PetImage + if pet_instance and pet_instance.sprite_frames: # 获取默认动画的第一帧 - var animation_names = pet_image_node.sprite_frames.get_animation_names() + var animation_names = pet_instance.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) + var frame_count = pet_instance.sprite_frames.get_frame_count(default_animation) if frame_count > 0: - texture = pet_image_node.sprite_frames.get_frame_texture(default_animation, 0) + texture = pet_instance.sprite_frames.get_frame_texture(default_animation, 0) + print("宠物背包成功获取宠物纹理:", pet_name) + else: + print("宠物背包场景没有动画:", pet_name) + else: + print("宠物背包场景没有PetImage节点或sprite_frames:", pet_name) pet_instance.queue_free() + else: + print("宠物背包无法加载宠物场景:", scene_path) + else: + print("宠物背包图片路径无效或文件不存在:", scene_path) + else: + print("宠物背包配置中没有找到:", pet_name) # 设置图片 if texture: @@ -151,8 +165,10 @@ func _update_button_pet_image(button: Button, pet_name: String): pet_image.scale = Vector2(10, 10) # 确保图片居中显示 pet_image.centered = true + print("宠物背包成功设置宠物图片:", pet_name) else: pet_image.visible = false + print("宠物背包无法获取宠物图片:", pet_name) # 加载宠物配置数据 func _load_pet_config() -> Dictionary: diff --git a/Script/BigPanel/PetStorePanel.gd b/Script/BigPanel/PetStorePanel.gd index c9b2c58..e4ce44d 100644 --- a/Script/BigPanel/PetStorePanel.gd +++ b/Script/BigPanel/PetStorePanel.gd @@ -24,6 +24,8 @@ extends Panel # 宠物配置数据 var pet_config: Dictionary = {} +# 请求状态标志,防止重复请求 +var is_requesting_config: bool = false # 准备函数 func _ready(): @@ -57,20 +59,23 @@ func update_pet_store_ui(): child.queue_free() print("更新宠物商店UI,宠物种类:", pet_config.size()) + print("宠物配置数据:", pet_config) # 为每个宠物配置创建按钮 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) + print("处理宠物:", pet_name, ",数据:", pet_info) + + # 适配扁平化数据格式 + var can_buy = pet_info.get("can_purchase", false) # 只显示可购买的宠物 if not can_buy: + print("宠物 ", pet_name, " 不可购买,跳过") continue - var pet_cost = purchase_info.get("购买价格", 0) - var basic_info = pet_info.get("基本信息", {}) - var pet_desc = basic_info.get("简介", "可爱的宠物伙伴") + var pet_cost = pet_info.get("cost", 0) + var pet_desc = pet_info.get("description", "可爱的宠物伙伴") # 检查玩家是否已购买该宠物 var is_owned = _check_pet_owned(pet_name) @@ -88,6 +93,7 @@ func update_pet_store_ui(): button.pressed.connect(func(): _on_store_pet_selected(pet_name, pet_cost, pet_desc)) store_grid.add_child(button) + print("已添加宠物按钮:", pet_name) # 检查玩家是否已拥有某种宠物 func _check_pet_owned(pet_name: String) -> bool: @@ -95,8 +101,7 @@ func _check_pet_owned(pet_name: String) -> bool: return false for pet_data in main_game.pet_bag: - var basic_info = pet_data.get("基本信息", {}) - var pet_type = basic_info.get("宠物类型", "") + var pet_type = pet_data.get("pet_type", "") if pet_type == pet_name: return true return false @@ -144,28 +149,44 @@ func _update_button_pet_image(button: Button, pet_name: String): # 检查按钮是否有CropImage节点 var pet_image = button.get_node_or_null("CropImage") if not pet_image: + print("按钮没有CropImage节点,跳过图片设置") return # 从宠物配置获取场景路径 var texture = null if pet_config.has(pet_name): var pet_info = pet_config[pet_name] - var scene_path = pet_info.get("场景路径", "") + var scene_path = pet_info.get("pet_image", "") + print("宠物 ", pet_name, " 的图片路径:", scene_path) if scene_path != "" and ResourceLoader.exists(scene_path): + print("开始加载宠物场景:", 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") + # 场景的根节点就是PetImage,直接使用 + var pet_image_node = pet_instance 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) + 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) + print("成功获取宠物纹理:", pet_name) + else: + print("宠物场景没有动画:", pet_name) + else: + print("宠物场景没有PetImage节点或sprite_frames:", pet_name) pet_instance.queue_free() - + else: + print("无法加载宠物场景:", scene_path) + else: + print("宠物图片路径无效或文件不存在:", scene_path) + else: + print("宠物配置中没有找到:", pet_name) # 设置图片 if texture: @@ -174,31 +195,52 @@ func _update_button_pet_image(button: Button, pet_name: String): pet_image.scale = Vector2(10, 10) # 确保图片居中显示 pet_image.centered = true - + print("成功设置宠物图片:", pet_name) else: + # 如果无法获取图片,隐藏图片节点但保留按钮 pet_image.visible = false + print("无法获取宠物图片,隐藏图片节点:", pet_name) -# 从主游戏脚本获取宠物配置数据 +# 从服务器获取MongoDB中的宠物配置数据 func _load_pet_config_from_main(): - # 从宠物数据文件加载配置 - var file = FileAccess.open("res://Data/pet_data.json", FileAccess.READ) - if file == null: - print("宠物商店:无法打开宠物配置文件") - pet_config = {} + # 如果正在请求中,避免重复发送 + if is_requesting_config: + print("宠物商店:正在请求配置数据中,跳过重复请求") 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("宠物商店:解析宠物配置文件失败") + # 发送请求到服务器获取宠物配置 + if tcp_network_manager_panel and tcp_network_manager_panel.has_method("sendGetPetConfig"): + is_requesting_config = true + if tcp_network_manager_panel.sendGetPetConfig(): + print("宠物商店:已发送获取宠物配置请求") + # 等待服务器响应,配置数据将通过网络回调更新 + else: + print("宠物商店:发送获取宠物配置请求失败") + pet_config = {} + is_requesting_config = false + else: + print("宠物商店:网络管理器不可用,无法获取宠物配置") pet_config = {} - return + is_requesting_config = false + +# 处理服务器返回的宠物配置数据 +func _on_pet_config_received(response_data: Dictionary): + """处理从服务器接收到的宠物配置数据""" + # 重置请求状态 + is_requesting_config = false - pet_config = json.data - print("宠物商店:成功加载宠物配置数据,宠物种类:", pet_config.size()) + var success = response_data.get("success", false) + if success: + pet_config = response_data.get("pet_config", {}) + print("宠物商店:成功接收宠物配置数据,宠物种类:", pet_config.size()) + # 只更新UI,不重新发送请求 + update_pet_store_ui() + else: + var error_message = response_data.get("message", "获取宠物配置失败") + print("宠物商店:获取宠物配置失败:", error_message) + pet_config = {} + # 显示错误提示 + Toast.show(error_message, Color.RED, 3.0, 1.0) # 商店宠物点击处理 - 购买宠物 func _on_store_pet_selected(pet_name: String, pet_cost: int, pet_desc: String): @@ -269,9 +311,12 @@ func _send_buy_pet_request(pet_name: String, pet_cost: int): #=========================面板通用处理========================= # 手动刷新宠物商店面板 func _on_refresh_button_pressed() -> void: + # 清空现有配置和请求状态,强制重新获取 + pet_config = {} + is_requesting_config = false # 重新初始化宠物商店 init_pet_store() - Toast.show("宠物商店已刷新", Color.GREEN, 2.0, 1.0) + #Toast.show("宠物商店已刷新", Color.GREEN, 2.0, 1.0) # 关闭宠物商店面板 func _on_quit_button_pressed() -> void: @@ -283,8 +328,12 @@ func _on_quit_button_pressed() -> void: func _on_visibility_changed(): if visible: GlobalVariables.isZoomDisabled = true - # 面板显示时自动刷新数据 - update_pet_store_ui() + # 面板显示时只在没有配置数据时才请求 + if pet_config.is_empty(): + init_pet_store() + else: + # 如果已有配置数据,直接更新UI + update_pet_store_ui() pass else: GlobalVariables.isZoomDisabled = false diff --git a/Script/Pet/PetBase.gd b/Script/Pet/PetBase.gd index 0ccc703..4a01e69 100644 --- a/Script/Pet/PetBase.gd +++ b/Script/Pet/PetBase.gd @@ -53,15 +53,10 @@ extends CharacterBody2D #- 亲密度(额外加属性) #- 品质(白/绿/蓝/橙/红/紫) -#基本攻击方式: #近战 #近战攻击伤害 #近战攻击速度 -#远程 -#远程攻击伤害 -#远程攻击速度 - #附录 #- 护甲公式示例:实际伤害 = 基础伤害 × (1 - 护甲值/(护甲值 + 100)),搭配"护甲穿透"可直接减少目标护甲值 #- 元素克制:火属性攻击对冰属性敌人造成150%伤害,同时被水属性克制(仅造成80%伤害) @@ -111,7 +106,7 @@ 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 attack_range: float = 400.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) @@ -152,7 +147,7 @@ enum RangedAttackMode { PIERCING # 穿透攻击 } -# 内部状态变量(不需要导出) + var attack_speed: float = 1.0 # 当前攻击速度(根据攻击类型动态设置) var gatling_firing: bool = false # 是否正在加特林射击 var gatling_current_bullet: int = 0 # 当前加特林子弹计数 @@ -219,13 +214,57 @@ 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 hurt_tween: Tween = null # 受伤动画缓动 +var original_modulate: Color = Color.WHITE # 原始颜色 +var last_hurt_time: float = 0.0 # 上次受伤时间(防止受伤动画过于频繁) +var hurt_animation_cooldown: float = 0.3 # 受伤动画冷却时间 + +# 攻击频率控制 +var min_attack_interval: float = 0.5 # 最小攻击间隔(防止攻击过于频繁) + +# 伤害反弹保护 +var damage_reflect_depth: int = 0 # 伤害反弹递归深度 +var max_reflect_depth: int = 3 # 最大反弹深度(防止无限递归) + +# 性能保护 +var performance_mode: bool = false # 性能模式(减少特效和计算) +var frame_skip_counter: int = 0 # 帧跳跃计数器 + +# 升级系统 - 基础属性列表(每次升级随机选择加点) +var base_upgrade_attributes: Array[String] = [ + "max_health", # 最大生命值 + "attack_damage", # 攻击伤害 + "move_speed", # 移动速度 + "max_shield", # 最大护盾值 + "max_armor", # 最大护甲值 + "crit_rate", # 暴击率 + "health_regen", # 生命恢复 + "attack_range" # 攻击距离 +] + +# 每次升级随机选择的属性数量 +var attributes_per_level: int = 3 + +# 每5级额外属性奖励表 +var level_milestone_bonuses: Dictionary = { + 5: {"max_health": 20, "attack_damage": 5, "crit_rate": 0.02}, + 10: {"max_shield": 30, "armor_penetration": 5, "life_steal": 0.05}, + 15: {"max_armor": 25, "knockback_resist": 0.1, "dodge_rate": 0.03}, + 20: {"health_regen": 2, "move_speed": 15, "attack_range": 30}, + 25: {"max_health": 40, "attack_damage": 10, "enable_berserker_mode": true}, + 30: {"max_shield": 50, "shield_regen": 1, "enable_damage_reflect": true}, + 35: {"crit_damage": 0.3, "berserker_bonus": 0.2, "damage_reflect": 0.05}, + 40: {"max_armor": 40, "control_resist": 0.15, "enable_aid_system": true}, + 45: {"projectile_speed": 50, "pierce_count": 1, "enable_death_immunity": true}, + 50: {"max_health": 100, "attack_damage": 25, "enable_resurrection": true} +} # 巡逻状态 var is_patrolling: bool = false # 是否正在巡逻 @@ -642,6 +681,10 @@ func _ready(): # 初始化生日 initialize_birthday() + # 保存原始颜色 + if pet_image: + original_modulate = pet_image.modulate + # 延迟初始化UI显示,确保所有节点都已准备好 call_deferred("update_ui") @@ -702,35 +745,50 @@ func clamp_to_battle_area(): 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 + # 性能保护:每3帧执行一次非关键逻辑 + frame_skip_counter += 1 + var should_skip_frame = performance_mode and (frame_skip_counter % 3 != 0) + + # 检测性能问题(如果帧时间过长,自动启用性能模式) + if delta > 0.025: # 帧时间超过25ms(低于40FPS) + if not performance_mode: + performance_mode = true + print("⚡ " + pet_name + " 启用性能模式(帧时间: " + str("%.3f" % delta) + "s)") + # 巡逻宠物特殊处理 if is_patrolling: handle_patrol(delta) return # 处理生命和护盾恢复 - handle_regeneration(delta) + if not should_skip_frame: + handle_regeneration(delta) - # 更新年龄和亲密度 - update_age_and_intimacy(delta) + # 更新年龄和亲密度(低优先级,可跳帧) + if not should_skip_frame: + update_age_and_intimacy(delta) # 检查狂暴状态 - check_berserker_mode() + if not should_skip_frame: + check_berserker_mode() - # 检查援助系统 - check_aid_system() + # 检查援助系统(低优先级,可跳帧) + if not should_skip_frame: + 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: + var check_interval = 0.5 if not performance_mode else 1.0 + if current_time - last_target_check_time >= check_interval: check_target_validity() last_target_check_time = current_time @@ -791,15 +849,7 @@ func update_ai_state(delta): #宠物移动 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: + if 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() @@ -832,7 +882,7 @@ func handle_movement(delta): 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 # 转换为秒 @@ -841,8 +891,9 @@ func handle_attack(delta): if ranged_mode == RangedAttackMode.GATLING: handle_gatling_attack(current_time, delta) else: - # 普通攻击频率控制 - if current_time - last_attack_time >= 1.0 / attack_speed: + # 普通攻击频率控制(确保最小攻击间隔) + var attack_interval = max(1.0 / attack_speed, min_attack_interval) + if current_time - last_attack_time >= attack_interval: perform_attack(current_target) last_attack_time = current_time @@ -959,9 +1010,9 @@ func perform_melee_attack(target: CharacterBody2D): var heal_amount = damage * life_steal heal(heal_amount) - # 击退效果 - if knockback_force > 0: - apply_knockback_to_target(target) + # 击退效果已禁用 + # if knockback_force > 0: + # apply_knockback_to_target(target) # 根据攻击模式发射子弹 func fire_projectile_by_mode(target: CharacterBody2D): @@ -1090,15 +1141,29 @@ func create_and_fire_projectile(start_pos: Vector2, target_pos: Vector2, damage: 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 + # 防止过于频繁的伤害处理(性能保护) + var current_time = Time.get_ticks_msec() / 1000.0 + if current_time - last_attack_time < 0.05: # 50ms最小伤害间隔 + return + + # 增加伤害反弹递归深度 + damage_reflect_depth += 1 + + # 递归深度保护(防止无限反弹) + if damage_reflect_depth > max_reflect_depth: + damage_reflect_depth = max(0, damage_reflect_depth - 1) + return + # 闪避检测 if randf() < dodge_rate: if attacker and is_instance_valid(attacker): add_battle_detail_to_panel("✨ " + pet_name + " 闪避了 " + attacker.pet_name + " 的攻击!", Color.CYAN) + damage_reflect_depth = max(0, damage_reflect_depth - 1) return var actual_damage = damage @@ -1123,8 +1188,11 @@ func take_damage(damage: float, armor_pen: float = 0.0, attacker_element: Elemen if actual_damage > 0: current_health -= actual_damage - # 添加受伤细节 - if attacker and is_instance_valid(attacker): + # 播放受伤动画(带冷却保护) + play_hurt_animation() + + # 添加受伤细节(性能模式下减少文本输出) + if not performance_mode and 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)) + ")" @@ -1135,15 +1203,19 @@ func take_damage(damage: float, armor_pen: float = 0.0, attacker_element: Elemen 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 not current_target or not is_instance_valid(current_target) or not current_target.is_alive: + 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 enable_damage_reflect and damage_reflect > 0.0 and attacker and is_instance_valid(attacker) and damage_reflect_depth <= max_reflect_depth: + var reflect_damage = damage * damage_reflect * 0.5 # 反弹伤害减半,防止无限递归 + # 延迟反弹,避免同帧内的递归调用 + call_deferred("apply_reflect_damage", attacker, reflect_damage) # 检查死亡 if current_health <= 0: @@ -1159,9 +1231,17 @@ func take_damage(damage: float, armor_pen: float = 0.0, attacker_element: Elemen if not is_dying: # 防止重复调用die() call_deferred("die") + # 减少伤害反弹递归深度 + damage_reflect_depth = max(0, damage_reflect_depth - 1) + # 更新UI call_deferred("update_ui") +# 延迟应用反弹伤害(防止递归调用) +func apply_reflect_damage(target: CharacterBody2D, reflect_damage: float): + if target and is_instance_valid(target) and target.is_alive: + target.take_damage(reflect_damage, 0.0, element_type, self) + #宠物死亡 func die(): if is_dying: # 如果已经在死亡过程中,直接返回 @@ -1416,6 +1496,10 @@ func apply_quality_bonuses(): func get_team() -> String: return pet_team +# 获取攻击类型(调试用) +func get_attack_type() -> AttackType: + return attack_type + # 处理生命和护盾恢复 func handle_regeneration(delta: float): var current_time = Time.get_ticks_msec() / 1000.0 @@ -1516,7 +1600,7 @@ func gain_experience(amount: float): while pet_experience >= max_experience and pet_level < 50: level_up() -# 升级 +# 升级(新的随机属性系统) func level_up(): pet_experience -= max_experience pet_level += 1 @@ -1524,25 +1608,197 @@ func level_up(): # 计算新的升级经验需求(指数增长) max_experience = 100.0 * pow(1.2, pet_level - 1) - # 升级属性加成 - var level_bonus = 1.1 # 每级10%属性加成 + # 随机选择属性进行升级 + var upgraded_attributes = apply_random_attribute_upgrade() - 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 # 升级回满护甲 + # 检查是否有里程碑奖励(每5级) + var milestone_rewards = apply_milestone_bonus() + + # 升级回血和护盾护甲 + current_health = max_health + current_shield = max_shield + current_armor = max_armor # 升级特效 show_level_up_effect() # 添加升级细节 - add_battle_detail_to_panel("🎉 " + pet_name + " 升级到 " + str(pet_level) + " 级!", Color.GOLD) + var upgrade_text = "🎉 " + pet_name + " 升级到 " + str(pet_level) + " 级!" + upgrade_text += "\n📈 随机提升:" + ", ".join(upgraded_attributes) + if milestone_rewards.size() > 0: + upgrade_text += "\n🏆 里程碑奖励:" + ", ".join(milestone_rewards) + + add_battle_detail_to_panel(upgrade_text, Color.GOLD) call_deferred("update_ui") +# 应用随机属性升级 +func apply_random_attribute_upgrade() -> Array[String]: + var upgraded_attributes: Array[String] = [] + var available_attributes = base_upgrade_attributes.duplicate() + + # 随机选择几个属性进行升级 + for i in range(min(attributes_per_level, available_attributes.size())): + var random_index = randi() % available_attributes.size() + var selected_attribute = available_attributes[random_index] + available_attributes.remove_at(random_index) + + # 应用属性升级 + var upgrade_applied = apply_single_attribute_upgrade(selected_attribute) + if upgrade_applied: + upgraded_attributes.append(upgrade_applied) + + return upgraded_attributes + +# 应用单个属性升级 +func apply_single_attribute_upgrade(attribute_name: String) -> String: + match attribute_name: + "max_health": + var bonus = randf_range(8.0, 15.0) # 随机8-15点生命值 + max_health += bonus + return "生命值 +" + str(int(bonus)) + "attack_damage": + var bonus = randf_range(2.0, 5.0) # 随机2-5点攻击力 + attack_damage += bonus + return "攻击力 +" + str(int(bonus)) + "move_speed": + var bonus = randf_range(3.0, 8.0) # 随机3-8点移动速度 + move_speed += bonus + return "移动速度 +" + str(int(bonus)) + "max_shield": + var bonus = randf_range(5.0, 12.0) # 随机5-12点护盾值 + max_shield += bonus + return "护盾值 +" + str(int(bonus)) + "max_armor": + var bonus = randf_range(4.0, 10.0) # 随机4-10点护甲值 + max_armor += bonus + return "护甲值 +" + str(int(bonus)) + "crit_rate": + var bonus = randf_range(0.01, 0.03) # 随机1-3%暴击率 + crit_rate = min(1.0, crit_rate + bonus) # 暴击率上限100% + return "暴击率 +" + str(int(bonus * 100)) + "%" + "health_regen": + var bonus = randf_range(0.3, 0.8) # 随机0.3-0.8点生命恢复 + health_regen += bonus + return "生命恢复 +" + str("%.1f" % bonus) + "attack_range": + var bonus = randf_range(8.0, 20.0) # 随机8-20点攻击距离 + attack_range += bonus + return "攻击距离 +" + str(int(bonus)) + _: + return "" + +# 应用里程碑奖励 +func apply_milestone_bonus() -> Array[String]: + var milestone_rewards: Array[String] = [] + + if not level_milestone_bonuses.has(pet_level): + return milestone_rewards + + var bonuses = level_milestone_bonuses[pet_level] + + for bonus_key in bonuses.keys(): + var bonus_value = bonuses[bonus_key] + var reward_text = apply_milestone_bonus_single(bonus_key, bonus_value) + if reward_text != "": + milestone_rewards.append(reward_text) + + return milestone_rewards + +# 应用单个里程碑奖励 +func apply_milestone_bonus_single(bonus_key: String, bonus_value) -> String: + match bonus_key: + "max_health": + max_health += bonus_value + return "生命值 +" + str(bonus_value) + "attack_damage": + attack_damage += bonus_value + return "攻击力 +" + str(bonus_value) + "max_shield": + max_shield += bonus_value + return "护盾值 +" + str(bonus_value) + "max_armor": + max_armor += bonus_value + return "护甲值 +" + str(bonus_value) + "crit_rate": + crit_rate = min(1.0, crit_rate + bonus_value) + return "暴击率 +" + str(int(bonus_value * 100)) + "%" + "armor_penetration": + armor_penetration += bonus_value + return "护甲穿透 +" + str(bonus_value) + "life_steal": + life_steal = min(1.0, life_steal + bonus_value) + return "生命汲取 +" + str(int(bonus_value * 100)) + "%" + "knockback_resist": + knockback_resist = min(1.0, knockback_resist + bonus_value) + return "击退抗性 +" + str(int(bonus_value * 100)) + "%" + "dodge_rate": + dodge_rate = min(1.0, dodge_rate + bonus_value) + return "闪避率 +" + str(int(bonus_value * 100)) + "%" + "health_regen": + health_regen += bonus_value + return "生命恢复 +" + str(bonus_value) + "move_speed": + move_speed += bonus_value + return "移动速度 +" + str(bonus_value) + "attack_range": + attack_range += bonus_value + return "攻击距离 +" + str(bonus_value) + "shield_regen": + shield_regen += bonus_value + return "护盾恢复 +" + str(bonus_value) + "crit_damage": + crit_damage += bonus_value + return "暴击伤害 +" + str(int(bonus_value * 100)) + "%" + "berserker_bonus": + berserker_bonus += bonus_value + return "狂暴加成 +" + str(int(bonus_value * 100)) + "%" + "damage_reflect": + damage_reflect = min(1.0, damage_reflect + bonus_value) + return "伤害反弹 +" + str(int(bonus_value * 100)) + "%" + "control_resist": + control_resist = min(1.0, control_resist + bonus_value) + return "控制抗性 +" + str(int(bonus_value * 100)) + "%" + "projectile_speed": + projectile_speed += bonus_value + return "子弹速度 +" + str(bonus_value) + "pierce_count": + pierce_count += bonus_value + return "穿透数量 +" + str(bonus_value) + "enable_berserker_mode": + if bonus_value: + enable_berserker_mode = true + return "解锁狂暴模式" + else: + return "" + "enable_damage_reflect": + if bonus_value: + enable_damage_reflect = true + return "解锁伤害反弹" + else: + return "" + "enable_aid_system": + if bonus_value: + enable_aid_system = true + return "解锁援助召唤" + else: + return "" + "enable_death_immunity": + if bonus_value: + enable_death_immunity = true + death_immunity = true + return "解锁死亡免疫" + else: + return "" + "enable_resurrection": + if bonus_value: + enable_resurrection = true + return "解锁死亡重生" + else: + return "" + _: + return "" + # 显示升级特效 func show_level_up_effect(): if not pet_image: @@ -1677,34 +1933,24 @@ func heal(amount: float): 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) + # 击退功能暂时禁用 + pass -# 被击退时调用 +# 击退效果已禁用 func apply_knockback(direction: Vector2, force: float): - if not is_alive: - return + # 击退功能暂时禁用 + pass + +# 将位置限制在战斗区域内 +func clamp_position_to_battle_area(pos: Vector2) -> Vector2: + var battle_area_min = Vector2(50, 50) + var battle_area_max = Vector2(1350, 670) - # 设置击退状态 - is_being_knocked_back = true - knockback_velocity = direction * force - - # 击退时短暂失去目标(可选) - if current_target and randf() < 0.3: # 30%概率失去目标 - current_target = null - current_state = PetState.IDLE + pos.x = clamp(pos.x, battle_area_min.x, battle_area_max.x) + pos.y = clamp(pos.y, battle_area_min.y, battle_area_max.y) + return pos # 元素克制计算 func get_element_multiplier(attacker_element: ElementType, defender_element: ElementType) -> float: @@ -1827,3 +2073,82 @@ func clamp_to_patrol_area(): # 限制位置 position.x = clamp(position.x, min_x, max_x) position.y = clamp(position.y, min_y, max_y) + +# 播放受伤动画(带冷却保护) +func play_hurt_animation(): + if not pet_image: + return + + # 检查受伤动画冷却时间 + var current_time = Time.get_ticks_msec() / 1000.0 + if current_time - last_hurt_time < hurt_animation_cooldown: + return # 冷却中,不播放动画 + + last_hurt_time = current_time + + # 如果已经有受伤动画在播放,停止之前的 + if hurt_tween: + hurt_tween.kill() + hurt_tween = null + + # 性能模式下简化动画 + if performance_mode: + # 简单的颜色变化,无需Tween + pet_image.modulate = Color.RED + # 使用计时器恢复颜色(更轻量) + await get_tree().create_timer(0.1).timeout + if pet_image: # 确保宠物还存在 + pet_image.modulate = original_modulate + return + + # 创建受伤动画(闪红效果) + hurt_tween = create_tween() + + # 立即变红 + pet_image.modulate = Color.RED + + # 0.2秒后恢复原色 + hurt_tween.tween_property(pet_image, "modulate", original_modulate, 0.2) + + # 动画结束后清理 + hurt_tween.tween_callback(func(): + hurt_tween = null + ) + +# 切换性能模式 +func toggle_performance_mode(): + performance_mode = !performance_mode + var mode_text = "性能模式" if performance_mode else "正常模式" + add_battle_detail_to_panel("⚡ " + pet_name + " 切换到 " + mode_text, Color.YELLOW) + print("⚡ " + pet_name + " 切换到 " + mode_text) + +# 输出宠物性能状态 +func debug_performance_status(): + print("=== " + pet_name + " 性能状态调试 ===") + print("性能模式: " + str(performance_mode)) + print("伤害反弹深度: " + str(damage_reflect_depth)) + print("帧跳跃计数: " + str(frame_skip_counter)) + print("上次受伤时间: " + str(last_hurt_time)) + print("上次攻击时间: " + str(last_attack_time)) + print("当前状态: " + str(current_state)) + print("是否存活: " + str(is_alive)) + print("是否正在死亡: " + str(is_dying)) + print("============================") + +# 重置性能状态(紧急恢复) +func reset_performance_state(): + performance_mode = false + damage_reflect_depth = 0 + frame_skip_counter = 0 + + # 清理可能卡住的动画 + if hurt_tween: + hurt_tween.kill() + hurt_tween = null + + # 恢复正常颜色 + if pet_image: + pet_image.modulate = original_modulate + + print("🔄 " + pet_name + " 性能状态已重置") + add_battle_detail_to_panel("🔄 " + pet_name + " 性能状态已重置", Color.GREEN) diff --git a/Script/Pet/PetFightPanel.gd b/Script/Pet/PetFightPanel.gd index f634a96..4cca55e 100644 --- a/Script/Pet/PetFightPanel.gd +++ b/Script/Pet/PetFightPanel.gd @@ -57,7 +57,7 @@ var current_attacker_name: String = "" # 当前进攻者用户名 func _ready(): - # 加载宠物配置 + visibility_changed.connect(_on_visibility_changed) load_pet_configs() # 连接返回农场按钮 @@ -69,7 +69,6 @@ func _ready(): battle_end_panel.visible = false if pet_battle_details_panel: pet_battle_details_panel.visible = false - # 加载宠物配置 func load_pet_configs(): @@ -115,10 +114,17 @@ func clear_battle_details(): if battle_details: battle_details.text = "" +# 战斗结束检查计时器 +var battle_check_timer: float = 0.0 +var battle_check_interval: float = 0.5 # 每0.5秒检查一次,减少性能开销 + func _process(delta): - # 只有启用自动对战时才检查战斗结束 + # 只有启用自动对战时才检查战斗结束,并使用计时器减少检查频率 if auto_battle_enabled and battle_started and not battle_ended: - check_battle_end() + battle_check_timer += delta + if battle_check_timer >= battle_check_interval: + battle_check_timer = 0.0 + check_battle_end() # 获取队伍节点 - 供宠物调用 @@ -224,12 +230,6 @@ func end_battle(winner: String): # 显示战斗结算面板 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") @@ -237,22 +237,6 @@ func show_battle_end_panel(winner: String): 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" @@ -416,39 +400,46 @@ 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") + # 批量处理宠物清理,提高性能 + var nodes_to_clear = [team1_node, team2_node, neutral_node] - # 清理现有宠物 - 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() + for node in nodes_to_clear: + if not is_instance_valid(node): + continue + + # 先移除组标签,再清理节点 + for child in node.get_children(): + if is_instance_valid(child): + # 停止宠物的所有行为,防止在清理过程中继续执行逻辑 + if child.has_method("set_combat_enabled"): + child.set_combat_enabled(false) + + # 移除所有组标签 + child.remove_from_group("pets") + child.remove_from_group("team1") + child.remove_from_group("team2") + child.remove_from_group("neutral") + child.remove_from_group("aid_minions") + + # 立即销毁,避免延迟 + node.remove_child(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() + # 清理所有子弹和援助宠物 + var groups_to_clear = ["projectiles", "aid_minions"] + for group_name in groups_to_clear: + var group_nodes = get_tree().get_nodes_in_group(group_name) + for node in group_nodes: + if is_instance_valid(node): + node.remove_from_group(group_name) + node.queue_free() + + # 等待一帧确保清理完成 + await get_tree().process_frame # 处理偷菜对战结果 func handle_steal_battle_result(winner: String): @@ -556,7 +547,9 @@ func update_battle_pet_data(pet_id: String, attacker_name: String, exp_gained: f "new_max_experience": max_exp, "new_intimacy": current_intimacy, "level_ups": level_ups, - "level_bonus_multiplier": level_bonus_multiplier + "level_bonus_multiplier": level_bonus_multiplier, + "is_steal_battle": is_steal_battle, + "battle_winner": winner_team } # 发送数据到服务器 diff --git a/Script/Pet/PetFightPanel_BattleRoyale.gd.uid b/Script/Pet/PetFightPanel_BattleRoyale.gd.uid deleted file mode 100644 index 08ad1c9..0000000 --- a/Script/Pet/PetFightPanel_BattleRoyale.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://b4p4xk0pdf7yg diff --git a/Script/SmallPanel/GlobalServerBroadcastPanel.gd b/Script/SmallPanel/GlobalServerBroadcastPanel.gd index a7aa1e9..18c445e 100644 --- a/Script/SmallPanel/GlobalServerBroadcastPanel.gd +++ b/Script/SmallPanel/GlobalServerBroadcastPanel.gd @@ -95,8 +95,9 @@ func _add_message_to_history(data: Dictionary): # 如果有玩家昵称,优先显示昵称 var display_name = player_name if player_name != "" else username - # 格式化时间 - var datetime = Time.get_datetime_dict_from_unix_time(timestamp) + # 格式化时间 - 确保timestamp是整数类型 + var timestamp_int = int(timestamp) if typeof(timestamp) == TYPE_STRING else timestamp + var datetime = Time.get_datetime_dict_from_unix_time(timestamp_int) var time_str = "%04d年%02d月%02d日 %02d:%02d:%02d" % [datetime.year, datetime.month, datetime.day, datetime.hour, datetime.minute, datetime.second] # 创建消息记录 diff --git a/Script/SmallPanel/LandPanel.gd b/Script/SmallPanel/LandPanel.gd index 102b860..5b70157 100644 --- a/Script/SmallPanel/LandPanel.gd +++ b/Script/SmallPanel/LandPanel.gd @@ -427,7 +427,7 @@ func _on_harvest_button_pressed(): -#=================面板通用函数========================== +#===================面板通用函数========================== #退出 func _on_quit_button_pressed(): self.hide() @@ -447,7 +447,7 @@ func _on_visibility_changed(): GlobalVariables.isZoomDisabled = false pass -#=================面板通用函数========================== +#===================面板通用函数========================== # 更新面板信息显示 func _update_panel_information(): diff --git a/Script/SmallPanel/PetInformPanel.gd b/Script/SmallPanel/PetInformPanel.gd index e7c8167..baf68fb 100644 --- a/Script/SmallPanel/PetInformPanel.gd +++ b/Script/SmallPanel/PetInformPanel.gd @@ -60,9 +60,8 @@ func show_pet_info(pet_name: String, pet_data: Dictionary): # 设置宠物图片 _set_pet_image(pet_name) - # 设置宠物名称 - var basic_info = pet_data.get("基本信息", {}) - var pet_owner_name = basic_info.get("宠物名称", pet_name) + # 设置宠物名称(新格式:直接从pet_name字段获取) + var pet_owner_name = pet_data.get("pet_name", pet_name) pet_name_edit.text = pet_owner_name # 设置宠物详细信息 @@ -85,26 +84,40 @@ func _set_pet_image(pet_name: String): # 获取宠物纹理 func _get_pet_texture(pet_name: String) -> Texture2D: - var pet_config = _load_pet_config() + # 从服务器的宠物配置获取场景路径 + var pet_config = main_game.pet_config # 使用服务器返回的宠物配置 if pet_config.has(pet_name): var pet_info = pet_config[pet_name] - var scene_path = pet_info.get("场景路径", "") + var scene_path = pet_info.get("pet_image", "") # 使用服务器数据的pet_image字段 + print("宠物信息面板 ", pet_name, " 的图片路径:", scene_path) if scene_path != "" and ResourceLoader.exists(scene_path): + print("宠物信息面板开始加载宠物场景:", 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() + # 直接使用实例化的场景根节点,因为根节点就是PetImage + if pet_instance and pet_instance.sprite_frames: + var animation_names = pet_instance.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) + var frame_count = pet_instance.sprite_frames.get_frame_count(default_animation) if frame_count > 0: - var texture = pet_image_node.sprite_frames.get_frame_texture(default_animation, 0) + var texture = pet_instance.sprite_frames.get_frame_texture(default_animation, 0) + print("宠物信息面板成功获取宠物纹理:", pet_name) pet_instance.queue_free() return texture + else: + print("宠物信息面板场景没有动画:", pet_name) + else: + print("宠物信息面板场景没有PetImage节点或sprite_frames:", pet_name) pet_instance.queue_free() + else: + print("宠物信息面板无法加载宠物场景:", scene_path) + else: + print("宠物信息面板图片路径无效或文件不存在:", scene_path) + else: + print("宠物信息面板配置中没有找到:", pet_name) return null # 加载宠物配置数据 @@ -123,19 +136,10 @@ func _load_pet_config() -> Dictionary: return json.data -# 设置宠物详细信息(使用bbcode美化) +# 设置宠物详细信息(使用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_birthday = pet_data.get("pet_birthday", "") var pet_age = 0 if pet_birthday != "": pet_age = _calculate_pet_age(pet_birthday) @@ -145,76 +149,64 @@ func _set_pet_detailed_info(pet_name: String, pet_data: Dictionary): # 基本信息 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=yellow]" + str(pet_data.get("pet_type", "未知")) + "[/color]\n" + info_text += "宠物编号:[color=gray]" + str(pet_data.get("pet_id", "无")) + "[/color]\n" + info_text += "性格特点:[color=cyan]" + str(pet_data.get("pet_temperament", "活泼")) + "[/color]\n" info_text += "出生日期:[color=green]" + str(pet_birthday) + "[/color]\n" info_text += "年龄天数:[color=orange]" + str(pet_age) + " 天[/color]\n" + info_text += "爱好:[color=magenta]" + str(pet_data.get("pet_hobby", "无")) + "[/color]\n" + info_text += "介绍:[color=lime]" + str(pet_data.get("pet_introduction", "无")) + "[/color]\n\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=yellow]" + str(pet_data.get("pet_level", 1)) + " 级[/color]\n" + info_text += "经验值:[color=cyan]" + str(pet_data.get("pet_experience", 0)) + "/" + str(pet_data.get("pet_max_experience", 1000)) + "[/color]\n" + info_text += "亲密度:[color=pink]" + str(pet_data.get("pet_intimacy", 0)) + "/" + str(pet_data.get("pet_max_intimacy", 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=red]" + str(pet_data.get("pet_current_health", pet_data.get("max_health", 100))) + "/" + str(pet_data.get("max_health", 100)) + "[/color]\n" + info_text += "护甲值:[color=blue]" + str(pet_data.get("pet_current_armor", pet_data.get("max_armor", 0))) + "/" + str(pet_data.get("max_armor", 0)) + "[/color]\n" + info_text += "护盾值:[color=cyan]" + str(pet_data.get("pet_current_shield", pet_data.get("max_shield", 0))) + "/" + str(pet_data.get("max_shield", 0)) + "[/color]\n" + info_text += "生命恢复:[color=lime]" + str(pet_data.get("health_regen", 0)) + "/秒[/color]\n" + info_text += "护盾恢复:[color=cyan]" + str(pet_data.get("shield_regen", 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=red]" + str(pet_data.get("base_attack_damage", 0)) + " 点[/color]\n" + info_text += "暴击几率:[color=purple]" + str(pet_data.get("crit_rate", 0) * 100) + "%[/color]\n" + info_text += "暴击倍数:[color=purple]" + str(pet_data.get("crit_damage", 1.0)) + " 倍[/color]\n" + info_text += "护甲穿透:[color=orange]" + str(pet_data.get("armor_penetration", 0)) + " 点[/color]\n" + info_text += "左手武器:[color=yellow]" + str(pet_data.get("left_weapon", "无")) + "[/color]\n" + info_text += "右手武器:[color=yellow]" + str(pet_data.get("right_weapon", "无")) + "[/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=cyan]" + str(pet_data.get("move_speed", 0)) + " 像素/秒[/color]\n" + info_text += "闪避几率:[color=yellow]" + str(pet_data.get("dodge_rate", 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" + info_text += "元素类型:[color=yellow]" + _get_element_name(str(pet_data.get("element_type", "NONE"))) + "[/color]\n" + info_text += "元素伤害:[color=orange]" + str(pet_data.get("element_damage_bonus", 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" + # 技能系统 + info_text += "[color=gold][b]✨ 技能系统[/b][/color]\n" + if pet_data.get("enable_multi_projectile_skill", false): + info_text += "多重弹射:[color=green]已激活[/color] (延迟: " + str(pet_data.get("multi_projectile_delay", 0)) + "秒)\n" + if pet_data.get("enable_berserker_skill", false): + info_text += "狂暴技能:[color=red]已激活[/color] (倍数: " + str(pet_data.get("berserker_bonus", 1.0)) + ", 持续: " + str(pet_data.get("berserker_duration", 0)) + "秒)\n" + if pet_data.get("enable_self_destruct_skill", false): + info_text += "自爆技能:[color=orange]已激活[/color]\n" + if pet_data.get("enable_summon_pet_skill", false): + info_text += "召唤技能:[color=cyan]已激活[/color] (数量: " + str(pet_data.get("summon_count", 0)) + ", 缩放: " + str(pet_data.get("summon_scale", 1.0)) + ")\n" + if pet_data.get("enable_death_respawn_skill", false): + info_text += "死亡重生:[color=purple]已激活[/color] (生命: " + str(pet_data.get("respawn_health_percentage", 0) * 100) + "%)\n" + info_text += "\n" # 设置文本 pet_inform.text = info_text - # 获取攻击类型名称 func _get_attack_type_name(attack_type: String) -> String: match attack_type: @@ -340,9 +332,8 @@ func on_edit_inform_button_pressed(): Toast.show("宠物名字太长,最多20个字符", Color.RED, 2.0, 1.0) return - # 获取当前宠物名字 - var basic_info = current_pet_data.get("基本信息", {}) - var current_name = basic_info.get("宠物名称", "") + # 获取当前宠物名字(新格式) + var current_name = current_pet_data.get("pet_name", "") # 检查名字是否有变化 if new_pet_name == current_name: @@ -383,9 +374,8 @@ func _on_confirm_rename_pet(new_name: String, dialog: AcceptDialog): # 取消重命名宠物 func _on_cancel_rename_pet(dialog: AcceptDialog): - # 恢复原名字 - var basic_info = current_pet_data.get("基本信息", {}) - var original_name = basic_info.get("宠物名称", "") + # 恢复原名字(新格式) + var original_name = current_pet_data.get("pet_name", "") pet_name_edit.text = original_name dialog.queue_free() @@ -395,9 +385,8 @@ func _send_rename_pet_request(new_name: String): Toast.show("网络功能不可用", Color.RED, 2.0, 1.0) return - # 获取宠物ID - var basic_info = current_pet_data.get("基本信息", {}) - var pet_id = basic_info.get("宠物ID", "") + # 获取宠物ID(新格式) + var pet_id = current_pet_data.get("pet_id", "") if pet_id == "": Toast.show("宠物ID无效", Color.RED, 2.0, 1.0) @@ -411,9 +400,9 @@ func _send_rename_pet_request(new_name: String): # 处理重命名成功的响应(从宠物背包或其他地方调用) 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 + # 更新当前宠物数据(新格式) + if current_pet_data.get("pet_id", "") == pet_id: + current_pet_data["pet_name"] = new_name pet_name_edit.text = new_name Toast.show("宠物名字修改成功!", Color.GREEN, 2.0, 1.0) @@ -469,11 +458,6 @@ func on_use_item_button_pressed(): # 巡逻按钮点击事件 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 @@ -484,65 +468,61 @@ func _on_patrol_button_pressed(): return # 获取宠物ID - var basic_info = current_pet_data.get("基本信息", {}) - var pet_id = basic_info.get("宠物ID", "") - + var pet_id = current_pet_data.get("pet_id", "") if pet_id == "": Toast.show("宠物ID无效", Color.RED, 2.0, 1.0) return - # 检查当前宠物是否已在巡逻 - var is_currently_patrolling = _is_pet_patrolling(pet_id) + # 检查是否已经在巡逻 + var is_patrolling = _is_pet_patrolling(pet_id) - if is_currently_patrolling: - # 取消巡逻 - _remove_from_patrol(pet_id) + if is_patrolling: + # 取消巡逻 - 发送到服务器 + _send_patrol_request(pet_id, false) + var pet_name = current_pet_data.get("pet_name", "宠物") + Toast.show("正在取消 " + pet_name + " 的巡逻...", Color.YELLOW, 2.0, 1.0) else: - # 添加到巡逻 - _add_to_patrol(pet_id) + # 检查巡逻宠物数量限制 + if main_game.patrol_pet_instances.size() >= 4: + Toast.show("最多只能设置4个巡逻宠物", Color.RED, 2.0, 1.0) + return + + # 开始巡逻 - 发送到服务器 + _send_patrol_request(pet_id, true) + var pet_name = current_pet_data.get("pet_name", "宠物") + #Toast.show("正在设置 " + pet_name + " 为巡逻宠物...", Color.GREEN, 2.0, 1.0) -# 检查宠物是否正在巡逻(基于服务器数据) +# 发送巡逻请求到服务器 +func _send_patrol_request(pet_id: String, is_patrolling: bool): + var message = { + "type": "set_patrol_pet", + "pet_id": pet_id, + "is_patrolling": is_patrolling + } + tcp_network_manager_panel.client.send_data(message) + +# 检查宠物是否在巡逻 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 - + # 检查本地 patrol_pet_instances 数组 + for pet_instance in main_game.patrol_pet_instances: + if pet_instance and is_instance_valid(pet_instance): + if pet_instance.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 +# 移除巡逻宠物 +func _remove_patrol_pet(pet_id: String): + # 查找并移除对应的巡逻宠物实例 + for pet_instance in main_game.patrol_pet_instances: + if pet_instance and is_instance_valid(pet_instance): + # 检查是否是对应的巡逻宠物 + if pet_instance.pet_id == pet_id: + pet_instance.queue_free() + main_game.patrol_pet_instances.erase(pet_instance) + print("移除巡逻宠物实例: " + pet_instance.pet_name) + 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) + print("未找到对应的巡逻宠物实例: " + pet_id) # 更新巡逻按钮文本 func _update_patrol_button_text(is_patrolling: bool): @@ -558,8 +538,7 @@ 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", "") + var pet_id = current_pet_data.get("pet_id", "") if pet_id == "": return @@ -578,9 +557,8 @@ func _on_battle_button_pressed(): Toast.show("访问模式下无法设置出战宠物", Color.ORANGE, 2.0, 1.0) return - # 获取宠物ID - var basic_info = current_pet_data.get("基本信息", {}) - var pet_id = basic_info.get("宠物ID", "") + # 获取宠物ID(新格式) + var pet_id = current_pet_data.get("pet_id", "") if pet_id == "": Toast.show("宠物ID无效", Color.RED, 2.0, 1.0) @@ -602,9 +580,9 @@ func _is_pet_battling(pet_id: String) -> bool: if main_game.battle_pets == null or main_game.battle_pets.size() == 0: return false - # 遍历出战宠物列表,查找匹配的ID + # 遍历出战宠物列表,查找匹配的ID(新格式) for battle_pet in main_game.battle_pets: - var battle_pet_id = battle_pet.get("基本信息", {}).get("宠物ID", "") + var battle_pet_id = battle_pet.get("pet_id", "") if battle_pet_id == pet_id: return true @@ -612,9 +590,9 @@ func _is_pet_battling(pet_id: String) -> bool: # 添加到出战(新的基于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) + # 检查出战宠物数量限制(目前服务器设置最多4个) + if main_game.battle_pets != null and main_game.battle_pets.size() >= 4: + Toast.show("最多只能设置4个出战宠物", Color.ORANGE, 3.0, 1.0) return # 检查是否在巡逻中(出战宠物不能是巡逻宠物) @@ -626,7 +604,7 @@ func _add_to_battle(pet_id: String): if not main_game.is_visiting_mode: # 发送到服务器保存 tcp_network_manager_panel.sendSetBattlePet(pet_id, true) - var pet_name = current_pet_data.get("基本信息", {}).get("宠物名称", "未知") + var pet_name = current_pet_data.get("pet_name", "未知") Toast.show("正在设置 " + pet_name + " 为出战宠物...", Color.YELLOW, 2.0, 1.0) else: Toast.show("访问模式下无法设置出战宠物", Color.ORANGE, 2.0, 1.0) @@ -655,8 +633,7 @@ 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", "") + var pet_id = current_pet_data.get("pet_id", "") if pet_id == "": return diff --git a/Script/SmallPanel/WisdomTreePanel.gd b/Script/SmallPanel/WisdomTreePanel.gd index 8787c82..81ff411 100644 --- a/Script/SmallPanel/WisdomTreePanel.gd +++ b/Script/SmallPanel/WisdomTreePanel.gd @@ -247,15 +247,20 @@ func handle_wisdom_tree_operation_response(success: bool, message: String, opera # 根据操作类型显示不同的提示 match operation_type: "water": - Toast.show("浇水成功!" + message, Color.CYAN) + #Toast.show("浇水成功!" + message, Color.CYAN) + pass "fertilize": - Toast.show("施肥成功!" + message, Color.PURPLE) + #Toast.show("施肥成功!" + message, Color.PURPLE) + pass "kill_grass": - Toast.show("除草成功!" + message, Color.GREEN) + #Toast.show("除草成功!" + message, Color.GREEN) + pass "kill_bug": - Toast.show("杀虫成功!" + message, Color.GREEN) + #Toast.show("杀虫成功!" + message, Color.GREEN) + pass "play_music": - Toast.show("放音乐成功!" + message, Color.MAGENTA) + #Toast.show("放音乐成功!" + message, Color.MAGENTA) + pass # 放音乐时可能获得随机消息,需要特殊处理 if updated_data.has("random_message"): var random_message = updated_data["random_message"] @@ -293,7 +298,7 @@ func handle_wisdom_tree_message_response(success: bool, message: String, updated main_game.money = updated_data["钱币"] main_game._update_ui() - Toast.show("消息发送成功!", Color.GREEN) + #Toast.show("消息发送成功!", Color.GREEN) else: Toast.show(message, Color.RED) diff --git a/Server/ConsoleCommandsAPI.py b/Server/ConsoleCommandsAPI.py index 0e3c2a1..982f615 100644 --- a/Server/ConsoleCommandsAPI.py +++ b/Server/ConsoleCommandsAPI.py @@ -25,24 +25,24 @@ class ConsoleCommandsAPI: """ 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, - "weather": self.cmd_weather, - "help": self.cmd_help, - "stop": self.cmd_stop, - "save": self.cmd_save_all, - "reload": self.cmd_reload_config, + "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, # 重置玩家土地 + "weather": self.cmd_weather, # 设置天气 + "help": self.cmd_help, # 显示帮助信息 + "stop": self.cmd_stop, # 停止服务器 + "save": self.cmd_save_all, # 保存所有玩家数据 + "reload": self.cmd_reload_config, # 重新加载配置文件 # MongoDB管理命令 - "dbtest": self.cmd_db_test, - "dbconfig": self.cmd_db_config, - "dbchat": self.cmd_db_chat, - "dbclean": self.cmd_db_clean, - "dbbackup": self.cmd_db_backup + "dbtest": self.cmd_db_test, # 测试MongoDB连接 + "dbconfig": self.cmd_db_config, # 配置MongoDB连接 + "dbchat": self.cmd_db_chat, # 管理聊天数据 + "dbclean": self.cmd_db_clean, # 清理数据库 + "dbbackup": self.cmd_db_backup # 备份数据库 } # 初始化MongoDB API @@ -227,36 +227,36 @@ class ConsoleCommandsAPI: def cmd_list_players(self, args: List[str]): """列出所有玩家命令: /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("玩家昵称", "未设置") - level = player_data.get("等级", 1) - money = player_data.get("钱币", 0) - last_login = player_data.get("最后登录时间", "从未登录") + try: + # 使用MongoDB获取玩家数据 + if hasattr(self.server, 'mongo_api') and self.server.mongo_api: + players_data = self.server.mongo_api.get_all_players_basic_info() + + if not players_data: + print("📭 暂无已注册玩家") + return + + print(f"📋 已注册玩家列表 (共 {len(players_data)} 人):") + print("-" * 80) + print(f"{'QQ号':<12} {'昵称':<15} {'等级':<6} {'金币':<10} {'最后登录':<20}") + print("-" * 80) + + for player in players_data: + qq_number = player.get("玩家账号", "未知") + nickname = player.get("玩家昵称", "未设置") + level = player.get("等级", 1) + money = player.get("钱币", 0) + last_login = player.get("最后登录时间", "从未登录") 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) + + print("-" * 80) + else: + print("❌ 未配置MongoDB连接") + + except Exception as e: + print(f"❌ 列出玩家时出错: {str(e)}") + def cmd_player_info(self, args: List[str]): """查看玩家信息命令: /playerinfo QQ号""" diff --git a/Server/QQEmailSendAPI.py b/Server/QQEmailSendAPI.py index 7ea63cf..426288b 100644 --- a/Server/QQEmailSendAPI.py +++ b/Server/QQEmailSendAPI.py @@ -211,7 +211,13 @@ class EmailVerification: # 优先尝试使用MongoDB try: from SMYMongoDBAPI import SMYMongoDBAPI - mongo_api = SMYMongoDBAPI("test") + import os + # 根据环境动态选择MongoDB配置 + if os.path.exists('/.dockerenv') or os.environ.get('PRODUCTION', '').lower() == 'true': + environment = "production" + else: + environment = "test" + mongo_api = SMYMongoDBAPI(environment) if mongo_api.is_connected(): success = mongo_api.save_verification_code(qq_number, verification_code, expiry_time, code_type) if success: @@ -279,7 +285,13 @@ class EmailVerification: # 优先尝试使用MongoDB try: from SMYMongoDBAPI import SMYMongoDBAPI - mongo_api = SMYMongoDBAPI("test") + import os + # 根据环境动态选择MongoDB配置 + if os.path.exists('/.dockerenv') or os.environ.get('PRODUCTION', '').lower() == 'true': + environment = "production" + else: + environment = "test" + mongo_api = SMYMongoDBAPI(environment) if mongo_api.is_connected(): success, message = mongo_api.verify_verification_code(qq_number, input_code, code_type) print(f"[验证码系统-MongoDB] QQ {qq_number} 验证结果: {success}, 消息: {message}") @@ -364,7 +376,13 @@ class EmailVerification: # 优先尝试使用MongoDB try: from SMYMongoDBAPI import SMYMongoDBAPI - mongo_api = SMYMongoDBAPI("test") + import os + # 根据环境动态选择MongoDB配置 + if os.path.exists('/.dockerenv') or os.environ.get('PRODUCTION', '').lower() == 'true': + environment = "production" + else: + environment = "test" + mongo_api = SMYMongoDBAPI(environment) if mongo_api.is_connected(): expired_count = mongo_api.clean_expired_verification_codes() print(f"[验证码系统-MongoDB] 清理完成,删除了 {expired_count} 个过期验证码") @@ -433,7 +451,13 @@ class EmailVerification: # 优先尝试使用MongoDB try: from SMYMongoDBAPI import SMYMongoDBAPI - mongo_api = SMYMongoDBAPI("test") + import os + # 根据环境动态选择MongoDB配置 + if os.path.exists('/.dockerenv') or os.environ.get('PRODUCTION', '').lower() == 'true': + environment = "production" + else: + environment = "test" + mongo_api = SMYMongoDBAPI(environment) if mongo_api.is_connected(): verification_codes = mongo_api.get_verification_codes() if verification_codes and qq_number in verification_codes: diff --git a/Server/SMYMongoDBAPI.py b/Server/SMYMongoDBAPI.py index 79991f2..372fe1b 100644 --- a/Server/SMYMongoDBAPI.py +++ b/Server/SMYMongoDBAPI.py @@ -31,12 +31,16 @@ class SMYMongoDBAPI: "test": { "host": "localhost", "port": 27017, - "database": "mengyafarm" + "database": "mengyafarm", + "username": None, + "password": None }, "production": { "host": "192.168.31.233", "port": 27017, - "database": "mengyafarm" + "database": "mengyafarm", + "username": "shumengya", + "password": "tyh@19900420" } } @@ -55,8 +59,17 @@ class SMYMongoDBAPI: bool: 连接是否成功 """ try: + from urllib.parse import quote_plus current_config = self.config[self.environment] - connection_string = f"mongodb://{current_config['host']}:{current_config['port']}/" + + # 构建连接字符串 + if current_config.get('username') and current_config.get('password'): + # 对用户名和密码进行URL编码以处理特殊字符 + username = quote_plus(current_config['username']) + password = quote_plus(current_config['password']) + connection_string = f"mongodb://{username}:{password}@{current_config['host']}:{current_config['port']}/{current_config['database']}?authSource=admin" + else: + connection_string = f"mongodb://{current_config['host']}:{current_config['port']}/" self.client = pymongo.MongoClient( connection_string, @@ -386,302 +399,604 @@ class SMYMongoDBAPI: #=====================初始玩家数据模板系统====================== - #=====================验证码系统====================== - def get_verification_codes(self) -> Optional[Dict[str, Any]]: - """获取验证码数据""" - return self._get_config_by_id(self.CONFIG_IDS["verification_codes"], "验证码数据") + #=====================玩家数据管理====================== + + # ========================= 验证码系统 ========================= - def update_verification_codes(self, codes_data: Dict[str, Any]) -> bool: - """更新验证码数据""" - return self._update_config_by_id(self.CONFIG_IDS["verification_codes"], codes_data, "验证码数据") - - #=====================聊天消息系统====================== - def save_chat_message(self, username: str, player_name: str, content: str, timestamp: float = None) -> bool: - """保存聊天消息到MongoDB""" - try: - if timestamp is None: - timestamp = datetime.now().timestamp() - - # 获取日期字符串作为文档标识 - date_obj = datetime.fromtimestamp(timestamp) - date_str = date_obj.strftime("%Y-%m-%d") - - # 创建消息记录 - message_record = { - "username": username, - "player_name": player_name, - "content": content, - "timestamp": timestamp, - "time_str": date_obj.strftime("%Y年%m月%d日 %H:%M:%S") - } - - collection = self.get_collection("chat") - - # 查找当天的文档 - query = {"date": date_str} - existing_doc = collection.find_one(query) - - if existing_doc: - # 如果文档存在,添加消息到messages数组 - result = collection.update_one( - query, - { - "$push": {"messages": message_record}, - "$set": {"updated_at": datetime.now()} - } - ) - success = result.acknowledged and result.modified_count > 0 - else: - # 如果文档不存在,创建新文档 - new_doc = { - "date": date_str, - "messages": [message_record], - "created_at": datetime.now(), - "updated_at": datetime.now() - } - result = collection.insert_one(new_doc) - success = result.acknowledged - - if success: - self.logger.info(f"成功保存聊天消息: {username}({player_name}): {content[:20]}...") - else: - self.logger.error(f"保存聊天消息失败: {username}({player_name}): {content[:20]}...") - - return success - - except Exception as e: - self.logger.error(f"保存聊天消息异常: {e}") - return False - - def get_chat_history(self, days: int = 3, limit: int = 500) -> List[Dict[str, Any]]: - """获取聊天历史消息""" - try: - collection = self.get_collection("chat") - - # 计算日期范围 - end_date = datetime.now() - start_date = end_date - timedelta(days=days-1) - - # 生成日期列表 - date_list = [] - current_date = start_date - while current_date <= end_date: - date_list.append(current_date.strftime("%Y-%m-%d")) - current_date += timedelta(days=1) - - # 查询这些日期的文档 - query = {"date": {"$in": date_list}} - docs = collection.find(query).sort("date", 1) - - # 收集所有消息 - all_messages = [] - for doc in docs: - messages = doc.get("messages", []) - all_messages.extend(messages) - - # 按时间戳排序 - all_messages.sort(key=lambda x: x.get("timestamp", 0)) - - # 限制数量 - if limit > 0 and len(all_messages) > limit: - all_messages = all_messages[-limit:] - - self.logger.info(f"获取聊天历史消息成功: {len(all_messages)} 条消息(最近{days}天)") - return all_messages - - except Exception as e: - self.logger.error(f"获取聊天历史消息失败: {e}") - return [] - - def get_latest_chat_message(self) -> Optional[Dict[str, Any]]: - """获取最新的一条聊天消息""" - try: - collection = self.get_collection("chat") - - # 获取最近的文档 - latest_doc = collection.find().sort("date", -1).limit(1) - - for doc in latest_doc: - messages = doc.get("messages", []) - if messages: - # 返回最后一条消息 - latest_message = messages[-1] - self.logger.info(f"获取最新聊天消息成功: {latest_message.get('username', 'N/A')}: {latest_message.get('content', '')[:20]}...") - return latest_message - - self.logger.info("没有找到聊天消息") - return None - - except Exception as e: - self.logger.error(f"获取最新聊天消息失败: {e}") - return None - - def clean_old_chat_messages(self, keep_days: int = 30) -> int: - """清理旧的聊天消息""" - try: - collection = self.get_collection("chat") - - # 计算保留的最早日期 - cutoff_date = datetime.now() - timedelta(days=keep_days) - cutoff_date_str = cutoff_date.strftime("%Y-%m-%d") - - # 删除早于cutoff_date的文档 - query = {"date": {"$lt": cutoff_date_str}} - result = collection.delete_many(query) - - deleted_count = result.deleted_count - self.logger.info(f"清理旧聊天消息完成: 删除了 {deleted_count} 个文档({keep_days}天前的消息)") - return deleted_count - - except Exception as e: - self.logger.error(f"清理旧聊天消息失败: {e}") - return 0 - #=====================聊天消息系统====================== - - def save_verification_code(self, qq_number: str, verification_code: str, expiry_time: int = 300, code_type: str = "register") -> bool: - """保存单个验证码到MongoDB""" - import time + def save_verification_code(self, qq_number: str, verification_code: str, + expiry_time: int = 300, code_type: str = "register") -> bool: + """ + 保存验证码到MongoDB + Args: + qq_number: QQ号 + verification_code: 验证码 + expiry_time: 过期时间(秒),默认5分钟 + code_type: 验证码类型,"register" 或 "reset_password" + + Returns: + bool: 保存成功返回True,否则返回False + """ try: - # 获取当前验证码数据 - codes_data = self.get_verification_codes() or {} + import time + from datetime import datetime, timedelta - # 添加新的验证码 - expire_at = time.time() + expiry_time - current_time = time.time() + collection = self.get_collection("verification_codes") - codes_data[qq_number] = { + # 计算过期时间 + expire_at = datetime.now() + timedelta(seconds=expiry_time) + + # 验证码文档 + verification_doc = { + "qq_number": qq_number, "code": verification_code, - "expire_at": expire_at, "code_type": code_type, - "created_at": current_time, + "created_at": datetime.now(), + "expire_at": expire_at, "used": False } - # 更新到MongoDB - success = self.update_verification_codes(codes_data) - if success: - self.logger.info(f"为QQ {qq_number} 保存{code_type}验证码: {verification_code}, 过期时间: {expire_at}") - return success + # 使用upsert更新或插入(覆盖同一QQ号的旧验证码) + query = {"qq_number": qq_number, "code_type": code_type} + result = collection.replace_one(query, verification_doc, upsert=True) + if result.acknowledged: + self.logger.info(f"成功保存验证码: QQ {qq_number}, 类型 {code_type}") + return True + else: + self.logger.error(f"保存验证码失败: QQ {qq_number}") + return False + except Exception as e: - self.logger.error(f"保存验证码失败: {e}") + self.logger.error(f"保存验证码异常 [QQ {qq_number}]: {e}") return False - def verify_verification_code(self, qq_number: str, input_code: str, code_type: str = "register") -> tuple[bool, str]: - """验证验证码""" - import time + def verify_verification_code(self, qq_number: str, input_code: str, + code_type: str = "register") -> tuple[bool, str]: + """ + 验证用户输入的验证码 - try: - # 获取验证码数据 - codes_data = self.get_verification_codes() - if not codes_data: - self.logger.warning(f"QQ {qq_number} 验证失败: 验证码数据不存在") - return False, "验证码不存在或已过期" + Args: + qq_number: QQ号 + input_code: 用户输入的验证码 + code_type: 验证码类型,"register" 或 "reset_password" - # 检查该QQ号是否有验证码 - if qq_number not in codes_data: - self.logger.warning(f"QQ {qq_number} 验证失败: 没有找到验证码记录") + Returns: + tuple: (验证成功, 消息) + """ + try: + from datetime import datetime + + collection = self.get_collection("verification_codes") + + # 查找验证码 + query = {"qq_number": qq_number, "code_type": code_type} + code_doc = collection.find_one(query) + + if not code_doc: return False, "验证码不存在,请重新获取" - # 获取存储的验证码信息 - code_info = codes_data[qq_number] - stored_code = code_info.get("code", "") - expire_at = code_info.get("expire_at", 0) - stored_code_type = code_info.get("code_type", "register") - is_used = code_info.get("used", False) - created_at = code_info.get("created_at", 0) + # 检查是否已使用 + if code_doc.get("used", False): + return False, "验证码已使用,请重新获取" - self.logger.info(f"QQ {qq_number} 验证码详情: 存储码={stored_code}, 输入码={input_code}, 类型={stored_code_type}, 已使用={is_used}, 创建时间={created_at}") - - # 检查验证码类型是否匹配 - if stored_code_type != code_type: - self.logger.warning(f"QQ {qq_number} 验证失败: 验证码类型不匹配,存储类型={stored_code_type}, 请求类型={code_type}") - return False, f"验证码类型不匹配,请重新获取{code_type}验证码" - - # 检查验证码是否已被使用 - if is_used: - self.logger.warning(f"QQ {qq_number} 验证失败: 验证码已被使用") - return False, "验证码已被使用,请重新获取" - - # 检查验证码是否过期 - current_time = time.time() - if current_time > expire_at: - # 移除过期的验证码 - del codes_data[qq_number] - self.update_verification_codes(codes_data) - self.logger.warning(f"QQ {qq_number} 验证失败: 验证码已过期") + # 检查是否过期 + if datetime.now() > code_doc.get("expire_at", datetime.now()): return False, "验证码已过期,请重新获取" - # 验证码比较(不区分大小写) - if input_code.upper() == stored_code.upper(): - # 验证成功,标记为已使用 - codes_data[qq_number]["used"] = True - codes_data[qq_number]["used_at"] = current_time - - success = self.update_verification_codes(codes_data) - if success: - self.logger.info(f"QQ {qq_number} 验证成功: 验证码已标记为已使用") - else: - self.logger.warning(f"标记验证码已使用时失败,但验证成功") - return True, "验证码正确" + # 验证码码 + if input_code.upper() != code_doc.get("code", "").upper(): + return False, "验证码错误,请重新输入" + + # 标记为已使用 + update_result = collection.update_one( + query, + {"$set": {"used": True, "used_at": datetime.now()}} + ) + + if update_result.acknowledged: + self.logger.info(f"验证码验证成功: QQ {qq_number}, 类型 {code_type}") + return True, "验证码验证成功" else: - self.logger.warning(f"QQ {qq_number} 验证失败: 验证码不匹配") - return False, "验证码错误" + self.logger.error(f"标记验证码已使用失败: QQ {qq_number}") + return False, "验证码验证失败" except Exception as e: - self.logger.error(f"验证验证码异常: {e}") + self.logger.error(f"验证验证码异常 [QQ {qq_number}]: {e}") return False, "验证码验证失败" def clean_expired_verification_codes(self) -> int: - """清理过期的验证码和已使用的验证码""" - import time + """ + 清理过期的验证码和已使用的验证码 + Returns: + int: 清理的验证码数量 + """ try: - codes_data = self.get_verification_codes() - if not codes_data: + from datetime import datetime, timedelta + + collection = self.get_collection("verification_codes") + + current_time = datetime.now() + one_hour_ago = current_time - timedelta(hours=1) + + # 删除条件:过期的验证码 或 已使用超过1小时的验证码 + delete_query = { + "$or": [ + {"expire_at": {"$lt": current_time}}, # 过期的 + {"used": True, "used_at": {"$lt": one_hour_ago}} # 已使用超过1小时的 + ] + } + + result = collection.delete_many(delete_query) + + if result.acknowledged: + deleted_count = result.deleted_count + self.logger.info(f"清理验证码完成: 删除了 {deleted_count} 个验证码") + return deleted_count + else: + self.logger.error("清理验证码失败") return 0 - - current_time = time.time() - removed_keys = [] - - # 找出过期的验证码和已使用的验证码(超过1小时) - for qq_number, code_info in codes_data.items(): - expire_at = code_info.get("expire_at", 0) - is_used = code_info.get("used", False) - used_at = code_info.get("used_at", 0) - should_remove = False - - # 过期的验证码 - if current_time > expire_at: - should_remove = True - self.logger.info(f"移除过期验证码: QQ {qq_number}") - - # 已使用超过1小时的验证码 - elif is_used and used_at > 0 and (current_time - used_at) > 3600: - should_remove = True - self.logger.info(f"移除已使用的验证码: QQ {qq_number}") - - if should_remove: - removed_keys.append(qq_number) - - # 移除标记的验证码 - for key in removed_keys: - del codes_data[key] - - # 保存更新后的数据 - if removed_keys: - self.update_verification_codes(codes_data) - self.logger.info(f"共清理了 {len(removed_keys)} 个验证码") - - return len(removed_keys) - except Exception as e: - self.logger.error(f"清理验证码失败: {e}") + self.logger.error(f"清理验证码异常: {e}") return 0 + #=====================验证码系统====================== + # ========================= 通用数据库操作 ========================= + + def get_player_data(self, account_id: str) -> Optional[Dict[str, Any]]: + """获取玩家数据 + + Args: + account_id: 玩家账号ID + + Returns: + Dict: 玩家数据,如果未找到返回None + """ + try: + collection = self.get_collection("playerdata") + + # 根据玩家账号查找文档 + query = {"玩家账号": account_id} + result = collection.find_one(query) + + if result: + # 移除MongoDB的_id字段 + if "_id" in result: + del result["_id"] + + # 转换datetime对象为字符串,避免JSON序列化错误 + result = self._convert_datetime_to_string(result) + + self.logger.info(f"成功获取玩家数据: {account_id}") + return result + else: + self.logger.warning(f"未找到玩家数据: {account_id}") + return None + + except Exception as e: + self.logger.error(f"获取玩家数据失败 [{account_id}]: {e}") + return None + + def save_player_data(self, account_id: str, player_data: Dict[str, Any]) -> bool: + """保存玩家数据 + + Args: + account_id: 玩家账号ID + player_data: 玩家数据 + + Returns: + bool: 是否成功 + """ + try: + collection = self.get_collection("playerdata") + + # 添加更新时间 + update_data = { + "updated_at": datetime.now(), + **player_data + } + + # 使用upsert更新或插入 + query = {"玩家账号": account_id} + result = collection.replace_one(query, update_data, upsert=True) + + if result.acknowledged: + self.logger.info(f"成功保存玩家数据: {account_id}") + return True + else: + self.logger.error(f"保存玩家数据失败: {account_id}") + return False + + except Exception as e: + self.logger.error(f"保存玩家数据异常 [{account_id}]: {e}") + return False + + def delete_player_data(self, account_id: str) -> bool: + """删除玩家数据 + + Args: + account_id: 玩家账号ID + + Returns: + bool: 是否成功 + """ + try: + collection = self.get_collection("playerdata") + + query = {"玩家账号": account_id} + result = collection.delete_one(query) + + if result.acknowledged and result.deleted_count > 0: + self.logger.info(f"成功删除玩家数据: {account_id}") + return True + else: + self.logger.warning(f"删除玩家数据失败或数据不存在: {account_id}") + return False + + except Exception as e: + self.logger.error(f"删除玩家数据异常 [{account_id}]: {e}") + return False + + def get_all_players_basic_info(self, projection: Dict[str, int] = None) -> List[Dict[str, Any]]: + """获取所有玩家的基本信息(优化版本,用于排行榜等) + + Args: + projection: 字段投影,指定需要返回的字段 + + Returns: + List: 玩家基本信息列表 + """ + try: + collection = self.get_collection("playerdata") + + # 默认投影字段(只获取必要信息) + if projection is None: + projection = { + "_id": 0, + "玩家账号": 1, + "玩家昵称": 1, + "农场名称": 1, + "等级": 1, + "钱币": 1, + "经验值": 1, + "最后登录时间": 1, + "总游玩时间": 1, + "种子仓库": 1, + "点赞系统": 1, + "体力系统.当前体力值": 1 + } + + cursor = collection.find({}, projection) + players = list(cursor) + + # 转换datetime对象为字符串 + players = [self._convert_datetime_to_string(player) for player in players] + + self.logger.info(f"成功获取 {len(players)} 个玩家的基本信息") + return players + + except Exception as e: + self.logger.error(f"获取玩家基本信息失败: {e}") + return [] + + def get_players_by_condition(self, condition: Dict[str, Any], + projection: Dict[str, int] = None, + limit: int = 0) -> List[Dict[str, Any]]: + """根据条件获取玩家数据 + + Args: + condition: 查询条件 + projection: 字段投影 + limit: 限制数量 + + Returns: + List: 符合条件的玩家数据列表 + """ + try: + collection = self.get_collection("playerdata") + + cursor = collection.find(condition, projection) + if limit > 0: + cursor = cursor.limit(limit) + + players = list(cursor) + + # 移除_id字段并转换datetime对象 + for player in players: + if "_id" in player: + del player["_id"] + player = self._convert_datetime_to_string(player) + + # 重新转换整个列表确保所有datetime都被处理 + players = [self._convert_datetime_to_string(player) for player in players] + + self.logger.info(f"根据条件查询到 {len(players)} 个玩家") + return players + + except Exception as e: + self.logger.error(f"根据条件获取玩家数据失败: {e}") + return [] + + def get_offline_players(self, offline_days: int = 3) -> List[Dict[str, Any]]: + """获取长时间离线的玩家(用于杂草生长等) + + Args: + offline_days: 离线天数阈值 + + Returns: + List: 离线玩家数据列表 + """ + try: + import time + from datetime import datetime, timedelta + + # 计算阈值时间戳 + threshold_time = datetime.now() - timedelta(days=offline_days) + + collection = self.get_collection("playerdata") + + # 查询条件:最后登录时间早于阈值 + # 注意:这里需要根据实际的时间格式进行调整 + cursor = collection.find({ + "最后登录时间": {"$exists": True} + }, { + "_id": 0, + "玩家账号": 1, + "最后登录时间": 1, + "农场土地": 1 + }) + + offline_players = [] + for player in cursor: + last_login = player.get("最后登录时间", "") + if self._is_player_offline_by_time(last_login, offline_days): + offline_players.append(player) + + # 转换datetime对象为字符串 + offline_players = [self._convert_datetime_to_string(player) for player in offline_players] + + self.logger.info(f"找到 {len(offline_players)} 个离线超过 {offline_days} 天的玩家") + return offline_players + + except Exception as e: + self.logger.error(f"获取离线玩家失败: {e}") + return [] + + def _is_player_offline_by_time(self, last_login_str: str, offline_days: int) -> bool: + """检查玩家是否离线超过指定天数""" + try: + if not last_login_str or last_login_str == "未知": + return False + + # 解析时间格式:2024年01月01日12时30分45秒 + import datetime + dt = datetime.datetime.strptime(last_login_str, "%Y年%m月%d日%H时%M分%S秒") + + # 计算离线天数 + now = datetime.datetime.now() + offline_duration = now - dt + return offline_duration.days >= offline_days + + except Exception: + return False + + def _convert_datetime_to_string(self, data: Any) -> Any: + """ + 递归转换数据中的datetime对象为字符串 + + Args: + data: 要转换的数据 + + Returns: + 转换后的数据 + """ + from datetime import datetime + + if isinstance(data, datetime): + return data.strftime("%Y年%m月%d日%H时%M分%S秒") + elif isinstance(data, dict): + return {key: self._convert_datetime_to_string(value) for key, value in data.items()} + elif isinstance(data, list): + return [self._convert_datetime_to_string(item) for item in data] + else: + return data + + def count_total_players(self) -> int: + """统计玩家总数 + + Returns: + int: 玩家总数 + """ + try: + collection = self.get_collection("playerdata") + count = collection.count_documents({}) + + self.logger.info(f"玩家总数: {count}") + return count + + except Exception as e: + self.logger.error(f"统计玩家总数失败: {e}") + return 0 + + def update_player_field(self, account_id: str, field_updates: Dict[str, Any]) -> bool: + """更新玩家的特定字段 + + Args: + account_id: 玩家账号ID + field_updates: 要更新的字段和值 + + Returns: + bool: 是否成功 + """ + try: + collection = self.get_collection("playerdata") + + # 添加更新时间 + update_data = { + "updated_at": datetime.now(), + **field_updates + } + + query = {"玩家账号": account_id} + result = collection.update_one(query, {"$set": update_data}) + + if result.acknowledged and result.matched_count > 0: + self.logger.info(f"成功更新玩家字段: {account_id}") + return True + else: + self.logger.warning(f"更新玩家字段失败或玩家不存在: {account_id}") + return False + + except Exception as e: + self.logger.error(f"更新玩家字段异常 [{account_id}]: {e}") + return False + #=====================玩家数据管理====================== + + # ========================= 验证码系统 ========================= + + def save_verification_code(self, qq_number: str, verification_code: str, + expiry_time: int = 300, code_type: str = "register") -> bool: + """ + 保存验证码到MongoDB + + Args: + qq_number: QQ号 + verification_code: 验证码 + expiry_time: 过期时间(秒),默认5分钟 + code_type: 验证码类型,"register" 或 "reset_password" + + Returns: + bool: 保存成功返回True,否则返回False + """ + try: + import time + from datetime import datetime, timedelta + + collection = self.get_collection("verification_codes") + + # 计算过期时间 + expire_at = datetime.now() + timedelta(seconds=expiry_time) + + # 验证码文档 + verification_doc = { + "qq_number": qq_number, + "code": verification_code, + "code_type": code_type, + "created_at": datetime.now(), + "expire_at": expire_at, + "used": False + } + + # 使用upsert更新或插入(覆盖同一QQ号的旧验证码) + query = {"qq_number": qq_number, "code_type": code_type} + result = collection.replace_one(query, verification_doc, upsert=True) + + if result.acknowledged: + self.logger.info(f"成功保存验证码: QQ {qq_number}, 类型 {code_type}") + return True + else: + self.logger.error(f"保存验证码失败: QQ {qq_number}") + return False + + except Exception as e: + self.logger.error(f"保存验证码异常 [QQ {qq_number}]: {e}") + return False + + def verify_verification_code(self, qq_number: str, input_code: str, + code_type: str = "register") -> tuple: + """ + 验证用户输入的验证码 + + Args: + qq_number: QQ号 + input_code: 用户输入的验证码 + code_type: 验证码类型,"register" 或 "reset_password" + + Returns: + tuple: (验证成功, 消息) + """ + try: + from datetime import datetime + + collection = self.get_collection("verification_codes") + + # 查找验证码 + query = {"qq_number": qq_number, "code_type": code_type} + code_doc = collection.find_one(query) + + if not code_doc: + return False, "验证码不存在,请重新获取" + + # 检查是否已使用 + if code_doc.get("used", False): + return False, "验证码已使用,请重新获取" + + # 检查是否过期 + if datetime.now() > code_doc.get("expire_at", datetime.now()): + return False, "验证码已过期,请重新获取" + + # 验证码码 + if input_code.upper() != code_doc.get("code", "").upper(): + return False, "验证码错误,请重新输入" + + # 标记为已使用 + update_result = collection.update_one( + query, + {"$set": {"used": True, "used_at": datetime.now()}} + ) + + if update_result.acknowledged: + self.logger.info(f"验证码验证成功: QQ {qq_number}, 类型 {code_type}") + return True, "验证码验证成功" + else: + self.logger.error(f"标记验证码已使用失败: QQ {qq_number}") + return False, "验证码验证失败" + + except Exception as e: + self.logger.error(f"验证验证码异常 [QQ {qq_number}]: {e}") + return False, "验证码验证失败" + + def clean_expired_verification_codes(self) -> int: + """ + 清理过期的验证码和已使用的验证码 + + Returns: + int: 清理的验证码数量 + """ + try: + from datetime import datetime, timedelta + + collection = self.get_collection("verification_codes") + + current_time = datetime.now() + one_hour_ago = current_time - timedelta(hours=1) + + # 删除条件:过期的验证码 或 已使用超过1小时的验证码 + delete_query = { + "$or": [ + {"expire_at": {"$lt": current_time}}, # 过期的 + {"used": True, "used_at": {"$lt": one_hour_ago}} # 已使用超过1小时的 + ] + } + + result = collection.delete_many(delete_query) + + if result.acknowledged: + deleted_count = result.deleted_count + self.logger.info(f"清理验证码完成: 删除了 {deleted_count} 个验证码") + return deleted_count + else: + self.logger.error("清理验证码失败") + return 0 + + except Exception as e: + self.logger.error(f"清理验证码异常: {e}") + return 0 + + #=====================验证码系统====================== # ========================= 通用数据库操作 ========================= @@ -735,11 +1050,14 @@ class SMYMongoDBAPI: documents = list(cursor) - # 转换ObjectId为字符串 + # 转换ObjectId为字符串并转换datetime对象 for doc in documents: if "_id" in doc: doc["_id"] = str(doc["_id"]) + # 转换datetime对象为字符串 + documents = [self._convert_datetime_to_string(doc) for doc in documents] + return documents except Exception as e: @@ -789,6 +1107,202 @@ class SMYMongoDBAPI: except Exception as e: self.logger.error(f"删除文档失败 [{collection_name}]: {e}") return False + + # ========================= 聊天消息管理 ========================= + + def save_chat_message(self, username: str, player_name: str, content: str) -> bool: + """ + 保存聊天消息到MongoDB(按天存储) + + Args: + username: 用户名(QQ号) + player_name: 玩家昵称 + content: 消息内容 + + Returns: + bool: 是否保存成功 + """ + try: + import time + from datetime import datetime + + collection = self.get_collection("chat") + + # 获取当前日期 + current_date = datetime.now().strftime("%Y-%m-%d") + current_time = datetime.now() + + # 创建消息对象 + message = { + "username": username, + "player_name": player_name, + "content": content, + "timestamp": time.time(), + "time_str": current_time.strftime("%Y年%m月%d日 %H:%M:%S") + } + + # 查找当天的文档 + query = {"date": current_date} + existing_doc = collection.find_one(query) + + if existing_doc: + # 如果当天的文档已存在,添加消息到messages数组 + result = collection.update_one( + query, + { + "$push": {"messages": message}, + "$set": {"updated_at": current_time} + } + ) + else: + # 如果当天的文档不存在,创建新文档 + new_doc = { + "date": current_date, + "messages": [message], + "created_at": current_time, + "updated_at": current_time + } + result = collection.insert_one(new_doc) + + if result.acknowledged: + self.logger.info(f"成功保存聊天消息: {username} - {content[:20]}...") + return True + else: + self.logger.error(f"保存聊天消息失败: {username}") + return False + + except Exception as e: + self.logger.error(f"保存聊天消息异常: {e}") + return False + + def get_chat_history(self, days: int = 3, limit: int = 500) -> List[Dict[str, Any]]: + """ + 获取聊天历史消息(从按天存储的chat集合) + + Args: + days: 获取最近几天的消息 + limit: 最大消息数量 + + Returns: + List: 聊天消息列表 + """ + try: + from datetime import datetime, timedelta + + collection = self.get_collection("chat") + + # 计算日期范围 + end_date = datetime.now() + start_date = end_date - timedelta(days=days-1) + + # 生成日期列表 + date_list = [] + current_date = start_date + while current_date <= end_date: + date_list.append(current_date.strftime("%Y-%m-%d")) + current_date += timedelta(days=1) + + # 查询条件 + query = {"date": {"$in": date_list}} + + # 获取文档 + cursor = collection.find(query).sort("date", 1) + docs = list(cursor) + + # 提取所有消息 + all_messages = [] + for doc in docs: + messages = doc.get("messages", []) + for msg in messages: + # 移除MongoDB的_id字段(如果存在) + if "_id" in msg: + del msg["_id"] + all_messages.append(msg) + + # 按时间戳排序 + all_messages.sort(key=lambda x: x.get("timestamp", 0)) + + # 限制消息数量 + if len(all_messages) > limit: + all_messages = all_messages[-limit:] + + self.logger.info(f"成功获取聊天历史: {len(all_messages)} 条消息(最近{days}天)") + return all_messages + + except Exception as e: + self.logger.error(f"获取聊天历史失败: {e}") + return [] + + def get_latest_chat_message(self) -> Optional[Dict[str, Any]]: + """ + 获取最新的聊天消息(从按天存储的chat集合) + + Returns: + Dict: 最新的聊天消息,如果没有返回None + """ + try: + collection = self.get_collection("chat") + + # 按日期降序排序,获取最新的文档 + cursor = collection.find().sort("date", -1).limit(10) # 获取最近10天的文档 + docs = list(cursor) + + latest_message = None + latest_timestamp = 0 + + # 遍历文档,找到最新的消息 + for doc in docs: + messages = doc.get("messages", []) + for msg in messages: + timestamp = msg.get("timestamp", 0) + if timestamp > latest_timestamp: + latest_timestamp = timestamp + latest_message = msg.copy() + # 移除MongoDB的_id字段(如果存在) + if "_id" in latest_message: + del latest_message["_id"] + + if latest_message: + self.logger.info(f"成功获取最新聊天消息: {latest_message.get('content', '')[:20]}...") + return latest_message + else: + self.logger.info("暂无聊天消息") + return None + + except Exception as e: + self.logger.error(f"获取最新聊天消息失败: {e}") + return None + + def clean_old_chat_messages(self, keep_days: int = 30) -> int: + """ + 清理旧的聊天消息(从按天存储的chat集合) + + Args: + keep_days: 保留最近几天的消息 + + Returns: + int: 删除的文档数量 + """ + try: + from datetime import datetime, timedelta + + collection = self.get_collection("chat") + + # 计算删除日期点 + cutoff_date = datetime.now() - timedelta(days=keep_days) + cutoff_date_str = cutoff_date.strftime("%Y-%m-%d") + + # 删除旧文档 + query = {"date": {"$lt": cutoff_date_str}} + result = collection.delete_many(query) + + deleted_count = result.deleted_count + self.logger.info(f"成功清理 {deleted_count} 个旧聊天文档(保留最近{keep_days}天)") + return deleted_count + + except Exception as e: + self.logger.error(f"清理旧聊天消息失败: {e}") + return 0 # ========================= 测试和使用示例 ========================= diff --git a/Server/TCPGameServer.py b/Server/TCPGameServer.py index e48d7ac..b5850ac 100644 --- a/Server/TCPGameServer.py +++ b/Server/TCPGameServer.py @@ -21,20 +21,11 @@ from ConsoleCommandsAPI import ConsoleCommandsAPI #导入控制台命令API模 - 消息类型:请求/响应模式 ==================================================================== """ - -# ============================================================================ -# 服务器配置参数 -# ============================================================================ server_host: str = "0.0.0.0" server_port: int = 6060 buffer_size: int = 4096 server_version: str = "2.0.1" - - -# ============================================================================ -# TCP游戏服务器类 -# ============================================================================ class TCPGameServer(TCPServer): """ @@ -69,6 +60,9 @@ class TCPGameServer(TCPServer): self.crop_data_cache_time = 0 self.cache_expire_duration = 300 # 缓存过期时间5分钟 + # 偷菜免被发现临时计数器 {玩家名: {目标玩家名: 剩余免被发现次数}} + self.steal_immunity_counters = {} + self.log('INFO', f"萌芽农场TCP游戏服务器初始化完成 - 版本: {server_version}", 'SERVER') # 启动定时器 @@ -82,8 +76,15 @@ class TCPGameServer(TCPServer): """初始化MongoDB API连接""" try: # 根据配置决定使用测试环境还是生产环境 - # 这里默认使用测试环境,实际部署时可以修改为 "production" - environment = "test" # 或者从配置文件读取 + # 检查是否在Docker容器中或生产环境 + import os + if os.path.exists('/.dockerenv') or os.environ.get('PRODUCTION', '').lower() == 'true': + environment = "production" + else: + environment = "test" + + # 保存环境信息供其他组件使用 + self.environment = environment self.mongo_api = SMYMongoDBAPI(environment) if self.mongo_api.is_connected(): @@ -244,6 +245,8 @@ class TCPGameServer(TCPServer): # 清理用户数据 if client_id in self.user_data: + # 清理偷菜免被发现计数器 + self._clear_player_steal_immunity(username) del self.user_data[client_id] self.log('INFO', f"用户 {username} 已离开游戏", 'SERVER') @@ -283,32 +286,45 @@ class TCPGameServer(TCPServer): #=================================数据管理方法==================================== #加载玩家数据 def load_player_data(self, account_id): - """从文件加载玩家数据""" - file_path = os.path.join("game_saves", f"{account_id}.json") - + """从MongoDB加载玩家数据""" try: - if os.path.exists(file_path): - with open(file_path, 'r', encoding='utf-8') as file: - player_data = json.load(file) + if not self.use_mongodb or not self.mongo_api: + self.log('ERROR', 'MongoDB未配置或不可用,无法加载玩家数据', 'SERVER') + return None + + player_data = self.mongo_api.get_player_data(account_id) + if player_data: return player_data - return None + else: + self.log('DEBUG', f"MongoDB中未找到玩家 {account_id} 的数据", 'SERVER') + return None + except Exception as e: self.log('ERROR', f"读取玩家 {account_id} 的数据时出错: {str(e)}", 'SERVER') return None #保存玩家数据 def save_player_data(self, account_id, player_data): - """保存玩家数据到文件""" - file_path = os.path.join("game_saves", f"{account_id}.json") - + """保存玩家数据到MongoDB""" try: - with open(file_path, 'w', encoding='utf-8') as file: - json.dump(player_data, file, indent=2, ensure_ascii=False) - return True + if not self.use_mongodb or not self.mongo_api: + self.log('ERROR', 'MongoDB未配置或不可用,无法保存玩家数据', 'SERVER') + return False + + success = self.mongo_api.save_player_data(account_id, player_data) + if success: + return True + else: + self.log('ERROR', f"MongoDB保存失败: {account_id}", 'SERVER') + return False + except Exception as e: self.log('ERROR', f"保存玩家 {account_id} 的数据时出错: {str(e)}", 'SERVER') return False + #加载玩家数据(兼容旧方法名) + + #加载玩家数据 def _load_player_data_with_check(self, client_id, action_type=None): """加载玩家数据并进行错误检查的通用方法""" @@ -335,7 +351,7 @@ class TCPGameServer(TCPServer): #加载作物配置数据(优化版本) def _load_crop_data(self): - """加载作物配置数据(优先MongoDB,带缓存优化)""" + """加载作物配置数据(从MongoDB,带缓存优化)""" current_time = time.time() # 检查缓存是否有效 @@ -344,29 +360,22 @@ class TCPGameServer(TCPServer): return self.crop_data_cache # 缓存过期或不存在,重新加载 - # 优先尝试从MongoDB加载 - if self.use_mongodb and self.mongo_api: - try: - crop_data = self.mongo_api.get_crop_data_config() - if crop_data: - self.crop_data_cache = crop_data - self.crop_data_cache_time = current_time - self.log('INFO', "成功从MongoDB加载作物数据配置", 'SERVER') - return self.crop_data_cache - else: - self.log('WARNING', "MongoDB中未找到作物数据配置,尝试JSON文件", 'SERVER') - except Exception as e: - self.log('ERROR', f"从MongoDB加载作物数据失败: {str(e)},尝试JSON文件", 'SERVER') - - # MongoDB失败或不可用,尝试从JSON文件加载 + if not self.use_mongodb or not self.mongo_api: + self.log('ERROR', 'MongoDB未配置或不可用,无法加载作物配置数据', 'SERVER') + return {} + try: - with open("config/crop_data.json", 'r', encoding='utf-8') as file: - self.crop_data_cache = json.load(file) + crop_data = self.mongo_api.get_crop_data_config() + if crop_data: + self.crop_data_cache = crop_data self.crop_data_cache_time = current_time - self.log('INFO', "成功从JSON文件加载作物数据配置", 'SERVER') + self.log('INFO', "成功从MongoDB加载作物数据配置", 'SERVER') return self.crop_data_cache + else: + self.log('ERROR', "MongoDB中未找到作物数据配置", 'SERVER') + return {} except Exception as e: - self.log('ERROR', f"无法加载作物数据: {str(e)}", 'SERVER') + self.log('ERROR', f"从MongoDB加载作物数据失败: {str(e)}", 'SERVER') return {} #更新玩家登录时间 @@ -656,6 +665,8 @@ class TCPGameServer(TCPServer): 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 == "request_pet_config":#请求宠物配置数据 + return self._handle_pet_config_request(client_id) elif message_type == "visit_player":#拜访其他玩家农场 return self._handle_visit_player_request(client_id, message) elif message_type == "return_my_farm":#返回我的农场 @@ -712,6 +723,8 @@ class TCPGameServer(TCPServer): return self._handle_buy_store_booth(client_id, message) elif message_type == "save_game_settings":#保存游戏设置 return self._handle_save_game_settings(client_id, message) + elif message_type == "pet_battle_result":#宠物对战结果 + return self._handle_pet_battle_result(client_id, message) #--------------------------------------------------------------------------- elif message_type == "message":#处理聊天消息(暂未实现) @@ -951,29 +964,20 @@ class TCPGameServer(TCPServer): #辅助函数-创建新用户 def _create_new_user(self, client_id, username, password, farm_name, player_name): - """创建新用户(优先从MongoDB加载模板)""" + """创建新用户(从MongoDB加载模板)""" try: - # 优先从MongoDB加载初始玩家数据模板 - player_data = None - if self.use_mongodb and self.mongo_api: - try: - player_data = self.mongo_api.get_initial_player_data_template() - if player_data: - self.log('INFO', "成功从MongoDB加载初始玩家数据模板", 'SERVER') - else: - self.log('WARNING', "MongoDB中未找到初始玩家数据模板,尝试从JSON文件加载", 'SERVER') - except Exception as e: - self.log('ERROR', f"从MongoDB加载初始玩家数据模板失败: {str(e)},尝试从JSON文件加载", 'SERVER') - - # MongoDB加载失败或不可用,从JSON文件加载 - if not player_data: - template_path = os.path.join("config", "initial_player_data_template.json") - if not os.path.exists(template_path): - return self._send_register_error(client_id, "服务器配置错误,无法注册新用户") - - with open(template_path, 'r', encoding='utf-8') as file: - player_data = json.load(file) - self.log('INFO', "成功从JSON文件加载初始玩家数据模板", 'SERVER') + # 从MongoDB加载初始玩家数据模板 + if not self.use_mongodb or not self.mongo_api: + return self._send_register_error(client_id, "MongoDB未配置或不可用,无法注册新用户") + + try: + player_data = self.mongo_api.get_initial_player_data_template() + if not player_data: + return self._send_register_error(client_id, "MongoDB中未找到初始玩家数据模板,无法注册新用户") + self.log('INFO', "成功从MongoDB加载初始玩家数据模板", 'SERVER') + except Exception as e: + self.log('ERROR', f"从MongoDB加载初始玩家数据模板失败: {str(e)}", 'SERVER') + return self._send_register_error(client_id, f"加载初始玩家数据模板失败: {str(e)}") # 更新玩家基本信息 current_time = datetime.datetime.now() @@ -993,10 +997,9 @@ class TCPGameServer(TCPServer): # 确保必要字段存在 self._ensure_player_data_fields(player_data) - # 保存新用户数据 - file_path = os.path.join("game_saves", f"{username}.json") - with open(file_path, 'w', encoding='utf-8') as file: - json.dump(player_data, file, indent=2, ensure_ascii=False) + # 保存新用户数据到MongoDB + if not self.save_player_data(username, player_data): + return self._send_register_error(client_id, "保存用户数据失败,注册失败") self.log('INFO', f"用户 {username} 注册成功,注册时间: {time_str},享受3天新玩家10倍生长速度奖励", 'SERVER') @@ -1449,11 +1452,11 @@ class TCPGameServer(TCPServer): } }) - #辅助函数-处理偷菜逻辑(访问模式下收获其他玩家作物的操作)(优化版本) + #辅助函数-处理偷菜逻辑(访问模式下收获其他玩家作物的操作) def _process_steal_crop_optimized(self, client_id, current_player_data, current_username, target_player_data, target_username, target_lot, lot_index, crop_data): - """处理偷菜逻辑(收益给当前玩家,清空目标玩家的作物)(优化版本)""" + """处理偷菜逻辑(收益给当前玩家,清空目标玩家的作物)""" # 偷菜体力值消耗 - stamina_cost = 2 + stamina_cost = 1 # 检查并更新当前玩家的体力值 self._check_and_update_stamina(current_player_data) @@ -1462,17 +1465,24 @@ 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%概率) + # 检查是否被巡逻宠物发现(30%概率) 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] - ) + # 先检查是否有免被发现次数 + immunity_count = self._get_steal_immunity_count(current_username, target_username) + if immunity_count > 0: + # 有免被发现次数,消耗一次 + self._consume_steal_immunity(current_username, target_username) + self.log('INFO', f"玩家 {current_username} 使用免被发现次数偷菜 {target_username},剩余次数:{immunity_count - 1}", 'SERVER') + else: + # 30%概率被发现 + import random + if random.random() <= 0.3: + # 被巡逻宠物发现了! + return self._handle_steal_caught_by_patrol( + client_id, current_player_data, current_username, + target_player_data, target_username, patrol_pets[0] + ) # 获取作物类型和基本信息 crop_type = target_lot["crop_type"] @@ -1571,7 +1581,7 @@ class TCPGameServer(TCPServer): "钱币": current_player_data["钱币"], "经验值": current_player_data["经验值"], "等级": current_player_data["等级"], - "体力值": current_player_data["体力值"], + "体力值": current_player_data.get("体力系统", {}).get("当前体力值", 20), "种子仓库": current_player_data.get("种子仓库", []), "作物仓库": current_player_data.get("作物仓库", []) } @@ -1647,16 +1657,13 @@ class TCPGameServer(TCPServer): """根据巡逻宠物ID获取完整宠物数据""" pet_bag = player_data.get("宠物背包", []) for pet in pet_bag: - if pet.get("基本信息", {}).get("宠物ID", "") == patrol_pet_id: + if pet.get("pet_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" + # 直接从pet_image字段获取场景路径 + scene_path = pet.get("pet_image", "res://Scene/Pet/PetBase.tscn") + pet_data["场景路径"] = scene_path return pet_data return None @@ -1665,16 +1672,13 @@ class TCPGameServer(TCPServer): """根据出战宠物ID获取完整宠物数据""" pet_bag = player_data.get("宠物背包", []) for pet in pet_bag: - if pet.get("基本信息", {}).get("宠物ID", "") == battle_pet_id: + if pet.get("pet_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" + # 直接从pet_image字段获取场景路径 + scene_path = pet.get("pet_image", "res://Scene/Pet/PetBase.tscn") + pet_data["场景路径"] = scene_path return pet_data return None @@ -1842,11 +1846,6 @@ class TCPGameServer(TCPServer): affected_players = 0 total_weeds_added = 0 - # 获取所有玩家存档文件 - game_saves_dir = "game_saves" - if not os.path.exists(game_saves_dir): - return - # 获取作物数据以验证杂草类型 crop_data = self._load_crop_data() if not crop_data: @@ -1863,32 +1862,64 @@ class TCPGameServer(TCPServer): self.log('WARNING', "没有找到可用的杂草类型,跳过杂草检查", 'SERVER') return - # 遍历所有玩家文件 - for filename in os.listdir(game_saves_dir): - if not filename.endswith('.json'): - continue + # 优先使用MongoDB获取离线玩家 + if self.use_mongodb and self.mongo_api: + offline_players = self.mongo_api.get_offline_players(self.offline_threshold_days) - account_id = filename[:-5] # 移除.json后缀 - - try: - # 加载玩家数据 - player_data = self.load_player_data(account_id) - if not player_data: + for player_data in offline_players: + account_id = player_data.get("玩家账号") + if not account_id: continue - # 检查玩家是否长时间离线 - if self._is_player_long_offline(player_data, current_time): + try: + # 获取完整玩家数据 + full_player_data = self.mongo_api.get_player_data(account_id) + if not full_player_data: + continue + # 为该玩家的空地生长杂草 - weeds_added = self._grow_weeds_for_player(player_data, account_id, available_weeds) + weeds_added = self._grow_weeds_for_player(full_player_data, account_id, available_weeds) if weeds_added > 0: affected_players += 1 total_weeds_added += weeds_added # 保存玩家数据 - self.save_player_data(account_id, player_data) + self.mongo_api.save_player_data(account_id, full_player_data) - except Exception as e: - self.log('ERROR', f"处理玩家 {account_id} 的杂草生长时出错: {str(e)}", 'SERVER') - continue + except Exception as e: + self.log('ERROR', f"处理玩家 {account_id} 的杂草生长时出错: {str(e)}", 'SERVER') + continue + else: + # 降级到文件系统 + game_saves_dir = "game_saves" + if not os.path.exists(game_saves_dir): + return + + # 遍历所有玩家文件 + for filename in os.listdir(game_saves_dir): + if not filename.endswith('.json'): + continue + + account_id = filename[:-5] # 移除.json后缀 + + try: + # 加载玩家数据 + player_data = self.load_player_data(account_id) + if not player_data: + continue + + # 检查玩家是否长时间离线 + if self._is_player_long_offline(player_data, current_time): + # 为该玩家的空地生长杂草 + weeds_added = self._grow_weeds_for_player(player_data, account_id, available_weeds) + if weeds_added > 0: + affected_players += 1 + total_weeds_added += weeds_added + # 保存玩家数据 + self.save_player_data(account_id, player_data) + + except Exception as e: + self.log('ERROR', f"处理玩家 {account_id} 的杂草生长时出错: {str(e)}", 'SERVER') + continue self.log('INFO', f"杂草检查完成,共为 {affected_players} 个玩家的农场添加了 {total_weeds_added} 个杂草", 'SERVER') @@ -1974,6 +2005,64 @@ class TCPGameServer(TCPServer): +#==========================偷菜免被发现计数器管理========================== + def _get_steal_immunity_count(self, player_name, target_player_name): + """获取玩家对目标玩家的免被发现次数""" + return self.steal_immunity_counters.get(player_name, {}).get(target_player_name, 0) + + def _consume_steal_immunity(self, player_name, target_player_name): + """消耗一次免被发现次数""" + if player_name not in self.steal_immunity_counters: + return False + + if target_player_name not in self.steal_immunity_counters[player_name]: + return False + + if self.steal_immunity_counters[player_name][target_player_name] > 0: + self.steal_immunity_counters[player_name][target_player_name] -= 1 + + # 如果计数器归零,清理该条目 + if self.steal_immunity_counters[player_name][target_player_name] == 0: + del self.steal_immunity_counters[player_name][target_player_name] + + # 如果该玩家没有其他计数器,清理玩家条目 + if not self.steal_immunity_counters[player_name]: + del self.steal_immunity_counters[player_name] + + return True + + return False + + def _set_steal_immunity(self, player_name, target_player_name, count=3): + """设置玩家对目标玩家的免被发现次数""" + if player_name not in self.steal_immunity_counters: + self.steal_immunity_counters[player_name] = {} + + self.steal_immunity_counters[player_name][target_player_name] = count + self.log('INFO', f"为玩家 {player_name} 设置对 {target_player_name} 的免被发现次数: {count}", 'SERVER') + + def _clear_player_steal_immunity(self, player_name): + """清理玩家的所有免被发现计数器""" + if player_name in self.steal_immunity_counters: + del self.steal_immunity_counters[player_name] + self.log('INFO', f"清理玩家 {player_name} 的所有免被发现计数器", 'SERVER') + + def _clear_target_steal_immunity(self, player_name, target_player_name): + """清理玩家对特定目标的免被发现计数器""" + if player_name in self.steal_immunity_counters: + if target_player_name in self.steal_immunity_counters[player_name]: + del self.steal_immunity_counters[player_name][target_player_name] + + # 如果该玩家没有其他计数器,清理玩家条目 + if not self.steal_immunity_counters[player_name]: + del self.steal_immunity_counters[player_name] + + self.log('INFO', f"清理玩家 {player_name} 对 {target_player_name} 的免被发现计数器", 'SERVER') + +#==========================偷菜免被发现计数器管理========================== + + + #==========================种植作物处理========================== #处理种植作物请求 def _handle_plant_crop(self, client_id, message): @@ -2204,14 +2293,9 @@ class TCPGameServer(TCPServer): return {"success": False, "message": "该宠物不存在"} pet_info = pet_config[pet_name] - purchase_info = pet_info.get("购买信息", {}) - # 检查宠物是否可购买 - if not purchase_info.get("能否购买", False): - return {"success": False, "message": "该宠物不可购买"} - - # 验证价格 - actual_cost = purchase_info.get("购买价格", 0) + # 从配置中获取宠物价格 + actual_cost = pet_info.get("cost", 1000) # 默认价格1000 if pet_cost != actual_cost: return {"success": False, "message": f"宠物价格验证失败,实际价格为{actual_cost}元"} @@ -2224,13 +2308,12 @@ class TCPGameServer(TCPServer): #处理宠物购买逻辑 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) + pet_cost = pet_info.get("cost", 1000) # 从配置中获取价格,默认1000 # 检查玩家金钱 if player_data["钱币"] < pet_cost: return self._send_action_error(client_id, "buy_pet", - f"金钱不足,无法购买此宠物。需要{pet_cost}元,当前只有{player_data['money']}元") + f"金钱不足,无法购买此宠物。需要{pet_cost}元,当前只有{player_data['钱币']}元") # 扣除金钱并添加宠物 player_data["钱币"] -= pet_cost @@ -2268,16 +2351,15 @@ class TCPGameServer(TCPServer): # 生成唯一ID和设置基本信息 unique_id = str(int(time.time() * 1000)) now = datetime.datetime.now() - birthday = f"{now.year}年{now.month}月{now.day}日{now.hour}时{now.minute}分{now.second}秒" + birthday = f"{now.year}-{now.month:02d}-{now.day:02d}" - if "基本信息" in pet_instance: - pet_instance["基本信息"].update({ - "宠物主人": username, - "宠物ID": unique_id, - "宠物名称": f"{username}的{pet_name}", - "生日": birthday, - "年龄": 0 - }) + # 新格式:直接在根级别设置属性 + pet_instance.update({ + "pet_id": unique_id, + "pet_name": f"{username}的{pet_name}", + "pet_birthday": birthday, + "pet_owner": username + }) return pet_instance @@ -2286,36 +2368,29 @@ class TCPGameServer(TCPServer): """检查玩家是否已拥有指定类型的宠物""" pet_bag = player_data.get("宠物背包", []) for pet in pet_bag: - basic_info = pet.get("基本信息", {}) - pet_type = basic_info.get("宠物类型", "") + pet_type = pet.get("pet_type", "") if pet_type == pet_name: return True return False #加载宠物配置数据 def _load_pet_config(self): - """优先从MongoDB加载宠物配置数据,失败时回退到JSON文件""" + """从MongoDB加载宠物配置数据""" try: - # 优先从MongoDB加载 - if hasattr(self, 'mongo_api') and self.mongo_api: - config = self.mongo_api.get_pet_config() - if config: - self.log('INFO', "成功从MongoDB加载宠物配置", 'SERVER') - return config - else: - self.log('WARNING', "MongoDB中未找到宠物配置,回退到JSON文件", 'SERVER') - - # 回退到JSON文件 - with open("config/pet_data.json", 'r', encoding='utf-8') as file: - config = json.load(file) - self.log('INFO', "从JSON文件加载宠物配置", 'SERVER') - return config + if not hasattr(self, 'mongo_api') or not self.mongo_api: + self.log('ERROR', 'MongoDB未配置或不可用,无法加载宠物配置数据', 'SERVER') + return {} + + config = self.mongo_api.get_pet_config() + if config: + self.log('INFO', "成功从MongoDB加载宠物配置", 'SERVER') + return config + else: + self.log('ERROR', "MongoDB中未找到宠物配置", 'SERVER') + return {} - except json.JSONDecodeError as e: - self.log('ERROR', f"宠物配置JSON解析错误: {str(e)}", 'SERVER') - return {} except Exception as e: - self.log('ERROR', f"加载宠物配置失败: {str(e)}", 'SERVER') + self.log('ERROR', f"从MongoDB加载宠物配置失败: {str(e)}", 'SERVER') return {} # 将巡逻宠物ID转换为完整宠物数据 @@ -2327,17 +2402,14 @@ class TCPGameServer(TCPServer): for patrol_pet_id in patrol_pets_ids: for pet in pet_bag: - if pet.get("基本信息", {}).get("宠物ID", "") == patrol_pet_id: + if pet.get("pet_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 + # 直接从pet_image字段获取场景路径 + scene_path = pet.get("pet_image", "") + patrol_pet_data["场景路径"] = scene_path patrol_pets_data.append(patrol_pet_data) break @@ -2353,17 +2425,14 @@ class TCPGameServer(TCPServer): for battle_pet_id in battle_pets_ids: for pet in pet_bag: - if pet.get("基本信息", {}).get("宠物ID", "") == battle_pet_id: + if pet.get("pet_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 + # 直接从pet_image字段获取场景路径 + scene_path = pet.get("pet_image", "") + battle_pet_data["场景路径"] = scene_path battle_pets_data.append(battle_pet_data) break @@ -2405,14 +2474,13 @@ class TCPGameServer(TCPServer): pet_found = False for pet in pet_bag: - basic_info = pet.get("基本信息", {}) - if basic_info.get("宠物ID", "") == pet_id: + if pet.get("pet_id", "") == pet_id: # 检查宠物主人是否正确 - if basic_info.get("宠物主人", "") != username: + if pet.get("pet_owner", "") != username: return self._send_action_error(client_id, "rename_pet", "你不是该宠物的主人") # 更新宠物名字 - basic_info["宠物名称"] = new_name + pet["pet_name"] = new_name pet_found = True break @@ -2468,7 +2536,7 @@ class TCPGameServer(TCPServer): # 查找目标宠物 target_pet = None for pet in pet_bag: - if pet.get("基本信息", {}).get("宠物ID", "") == pet_id: + if pet.get("pet_id", "") == pet_id: target_pet = pet break @@ -2476,17 +2544,16 @@ class TCPGameServer(TCPServer): return self._send_action_error(client_id, "set_patrol_pet", "未找到指定的宠物") # 检查宠物主人是否正确 - basic_info = target_pet.get("基本信息", {}) - if basic_info.get("宠物主人", "") != username: + if target_pet.get("pet_owner", "") != username: return self._send_action_error(client_id, "set_patrol_pet", "你不是该宠物的主人") - pet_name = basic_info.get("宠物名称", basic_info.get("宠物类型", "未知宠物")) + pet_name = target_pet.get("pet_name", target_pet.get("pet_type", "未知宠物")) if is_patrolling: # 添加到巡逻列表 - # 检查巡逻宠物数量限制(最多3个) - if len(patrol_pets) >= 3: - return self._send_action_error(client_id, "set_patrol_pet", "最多只能设置3个巡逻宠物") + # 检查巡逻宠物数量限制(最多4个) + if len(patrol_pets) >= 4: + return self._send_action_error(client_id, "set_patrol_pet", "最多只能设置4个巡逻宠物") # 检查是否已在巡逻列表中(现在只检查ID) for patrol_pet_id in patrol_pets: @@ -2519,17 +2586,14 @@ class TCPGameServer(TCPServer): patrol_pets_data = [] for patrol_pet_id in patrol_pets: for pet in pet_bag: - if pet.get("基本信息", {}).get("宠物ID", "") == patrol_pet_id: + if pet.get("pet_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 + # 新格式中场景路径已经在pet_image字段中 + if "pet_image" in pet: + patrol_pet_data["scene_path"] = pet["pet_image"] patrol_pets_data.append(patrol_pet_data) break @@ -2576,14 +2640,14 @@ class TCPGameServer(TCPServer): # 查找宠物是否在背包中 target_pet = None for pet in pet_bag: - if pet.get("基本信息", {}).get("宠物ID", "") == pet_id: + if pet.get("pet_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("宠物名称", "未知宠物") + pet_name = target_pet.get("pet_name", "未知宠物") if is_battle: # 添加到出战列表 @@ -2595,9 +2659,9 @@ class TCPGameServer(TCPServer): 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个出战宠物") + # 检查出战宠物数量限制(最多4个) + if len(battle_pets) >= 4: + return self._send_action_error(client_id, "set_battle_pet", "最多只能设置4个出战宠物") # 添加到出战列表 battle_pets.append(pet_id) @@ -2623,18 +2687,14 @@ class TCPGameServer(TCPServer): battle_pets_data = [] for battle_pet_id in battle_pets: for pet in pet_bag: - if pet.get("基本信息", {}).get("宠物ID", "") == battle_pet_id: + if pet.get("pet_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" + # 新格式中场景路径已经在pet_image字段中 + if "pet_image" in pet: + battle_pet_data["scene_path"] = pet["pet_image"] battle_pets_data.append(battle_pet_data) break @@ -2673,6 +2733,8 @@ class TCPGameServer(TCPServer): new_intimacy = message.get("new_intimacy", 0) level_ups = message.get("level_ups", 0) level_bonus_multiplier = message.get("level_bonus_multiplier", 1.0) + is_steal_battle = message.get("is_steal_battle", False) + battle_winner = message.get("battle_winner", "") if not pet_id or not attacker_name: return self._send_action_error(client_id, "update_battle_pet_data", "无效的宠物ID或进攻者名称") @@ -2688,6 +2750,14 @@ class TCPGameServer(TCPServer): new_intimacy, level_ups, level_bonus_multiplier) if success: + # 检查是否是偷菜对战且玩家获胜,如果是则设置免被发现计数器 + if is_steal_battle and battle_winner == "team1": + # 获取当前访问的目标玩家名称(从客户端连接信息中获取) + target_player_name = self.user_data.get(client_id, {}).get("visiting_target", "") + if target_player_name: + self._set_steal_immunity(attacker_name, target_player_name, 3) + self.log('INFO', f"玩家 {attacker_name} 战胜巡逻宠物,获得对 {target_player_name} 的3次免被发现机会", 'SERVER') + # 保存玩家数据 self.save_player_data(attacker_name, player_data) @@ -2719,7 +2789,7 @@ class TCPGameServer(TCPServer): # 查找指定宠物 target_pet = None for pet in player_data["宠物背包"]: - if pet.get("基本信息", {}).get("宠物ID") == pet_id: + if pet.get("pet_id") == pet_id: target_pet = pet break @@ -2727,38 +2797,28 @@ class TCPGameServer(TCPServer): 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 + target_pet["pet_level"] = new_level + target_pet["pet_experience"] = new_experience + target_pet["pet_max_experience"] = new_max_experience + target_pet["pet_intimacy"] = 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) + old_max_health = target_pet.get("pet_max_health", 100.0) + old_max_armor = target_pet.get("pet_max_armor", 100.0) + old_attack_damage = target_pet.get("pet_attack_damage", 20.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 + + target_pet["pet_max_health"] = new_max_health + target_pet["pet_current_health"] = new_max_health # 升级回满血 + target_pet["pet_max_armor"] = new_max_armor + target_pet["pet_current_armor"] = new_max_armor # 升级回满护甲 + target_pet["pet_attack_damage"] = new_attack_damage return True #==========================更新宠物对战数据处理========================== @@ -2810,9 +2870,9 @@ class TCPGameServer(TCPServer): target_pet = None for pet in pet_bag: - if pet.get("基本信息", {}).get("宠物ID", "") == pet_id: + if pet.get("pet_id", "") == pet_id: # 检查宠物主人是否正确 - if pet.get("基本信息", {}).get("宠物主人", "") != username: + if pet.get("pet_owner", "") != username: return self._send_action_error(client_id, "feed_pet", "你不是该宠物的主人") target_pet = pet break @@ -2835,7 +2895,7 @@ class TCPGameServer(TCPServer): # 保存玩家数据 self.save_player_data(username, player_data) - pet_name = target_pet.get("基本信息", {}).get("宠物名称", "未知宠物") + pet_name = target_pet.get("pet_name", "未知宠物") # 构建效果描述 effect_descriptions = [] @@ -2877,18 +2937,12 @@ class TCPGameServer(TCPServer): # 记录实际应用的效果 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) + current_exp = target_pet.get("pet_experience", 0) + max_exp = target_pet.get("pet_max_experience", 100) + current_level = target_pet.get("pet_level", 1) new_exp = current_exp + exp_gain applied_effects["经验"] = exp_gain @@ -2903,9 +2957,9 @@ class TCPGameServer(TCPServer): max_exp = int(max_exp * 1.2) # 更新经验数据 - level_exp_data["当前经验"] = new_exp - level_exp_data["最大经验"] = max_exp - level_exp_data["宠物等级"] = current_level + target_pet["pet_experience"] = new_exp + target_pet["pet_max_experience"] = max_exp + target_pet["pet_level"] = current_level # 如果升级了,记录升级次数 if level_ups > 0: @@ -2916,69 +2970,58 @@ class TCPGameServer(TCPServer): # 处理生命值效果 if "生命值" in feed_effects: hp_gain = feed_effects["生命值"] - current_hp = health_defense_data.get("当前生命值", 100) - max_hp = health_defense_data.get("最大生命值", 100) + current_hp = target_pet.get("pet_current_health", 100) + max_hp = target_pet.get("pet_max_health", 100) actual_hp_gain = min(hp_gain, max_hp - current_hp) # 不能超过最大生命值 if actual_hp_gain > 0: - health_defense_data["当前生命值"] = current_hp + actual_hp_gain + target_pet["pet_current_health"] = current_hp + actual_hp_gain applied_effects["生命值"] = actual_hp_gain # 处理攻击力效果 if "攻击力" in feed_effects: attack_gain = feed_effects["攻击力"] - current_attack = attack_data.get("基础攻击伤害", 20) + current_attack = target_pet.get("pet_attack_damage", 20) new_attack = current_attack + attack_gain - attack_data["基础攻击伤害"] = new_attack + target_pet["pet_attack_damage"] = new_attack applied_effects["攻击力"] = attack_gain # 处理移动速度效果 if "移动速度" in feed_effects: speed_gain = feed_effects["移动速度"] - current_speed = movement_data.get("移动速度", 100) + current_speed = target_pet.get("pet_move_speed", 100) new_speed = current_speed + speed_gain - movement_data["移动速度"] = new_speed + target_pet["pet_move_speed"] = 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) + current_intimacy = target_pet.get("pet_intimacy", 0) + max_intimacy = target_pet.get("pet_max_intimacy", 1000) actual_intimacy_gain = min(intimacy_gain, max_intimacy - current_intimacy) if actual_intimacy_gain > 0: - level_exp_data["亲密度"] = current_intimacy + actual_intimacy_gain + target_pet["pet_intimacy"] = 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) + current_armor = target_pet.get("pet_current_armor", 10) + max_armor = target_pet.get("pet_max_armor", 10) actual_armor_gain = min(armor_gain, max_armor - current_armor) if actual_armor_gain > 0: - health_defense_data["当前护甲值"] = current_armor + actual_armor_gain + target_pet["pet_current_armor"] = 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) + current_crit = target_pet.get("pet_crit_rate", 0.1) new_crit = min(current_crit + crit_gain, 1.0) # 最大100% - attack_data["暴击率"] = new_crit + target_pet["pet_crit_rate"] = new_crit applied_effects["暴击率"] = feed_effects["暴击率"] # 处理闪避率效果 @@ -3002,30 +3045,154 @@ class TCPGameServer(TCPServer): 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) + old_max_hp = target_pet.get("pet_max_health", 100) + old_max_armor = target_pet.get("pet_max_armor", 10) 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 + target_pet["pet_max_health"] = new_max_hp + target_pet["pet_current_health"] = new_max_hp # 升级回满血 + target_pet["pet_max_armor"] = new_max_armor + target_pet["pet_current_armor"] = new_max_armor # 更新攻击属性 - attack_data = target_pet.setdefault("基础攻击属性", {}) - old_attack = attack_data.get("基础攻击伤害", 20) + old_attack = target_pet.get("pet_attack_damage", 20) new_attack = old_attack * level_bonus_multiplier - attack_data["基础攻击伤害"] = new_attack + target_pet["pet_attack_damage"] = new_attack #==========================宠物喂食处理========================== +#==========================宠物对战结果处理========================== + def _handle_pet_battle_result(self, client_id, message): + """处理宠物对战结果""" + # 检查用户是否已登录 + logged_in, response = self._check_user_logged_in(client_id, "提交宠物对战结果", "pet_battle_result") + if not logged_in: + return self.send_data(client_id, response) + + # 获取玩家数据 + player_data, username, response = self._load_player_data_with_check(client_id, "pet_battle_result") + if not player_data: + return self.send_data(client_id, response) + + # 获取对战结果数据 + battle_data = message.get("battle_data", {}) + winner = battle_data.get("winner", "") + attacker_name = battle_data.get("attacker_name", "") + defender_name = battle_data.get("defender_name", "") + battle_type = battle_data.get("battle_type", "") + attacker_pets = battle_data.get("attacker_pets", []) + defender_pets = battle_data.get("defender_pets", []) + duration = battle_data.get("duration", 0) + timestamp = battle_data.get("timestamp", time.time()) + + # 验证必要参数 + if not winner or not attacker_name or not defender_name: + return self._send_action_error(client_id, "pet_battle_result", "对战结果数据不完整") + + # 记录对战结果到日志 + self.log('INFO', f"宠物对战结果 - 获胜方: {winner}, 攻击方: {attacker_name}, 防守方: {defender_name}, 类型: {battle_type}, 持续时间: {duration}秒", 'BATTLE') + + # 初始化对战历史记录 + if "对战历史" not in player_data: + player_data["对战历史"] = [] + + # 添加对战记录 + battle_record = { + "获胜方": winner, + "攻击方": attacker_name, + "防守方": defender_name, + "对战类型": battle_type, + "攻击方宠物": attacker_pets, + "防守方宠物": defender_pets, + "持续时间": duration, + "时间戳": timestamp, + "日期": datetime.datetime.fromtimestamp(timestamp).strftime("%Y年%m月%d日%H时%M分%S秒") + } + + player_data["对战历史"].append(battle_record) + + # 限制历史记录数量(保留最近100条) + if len(player_data["对战历史"]) > 100: + player_data["对战历史"] = player_data["对战历史"][-100:] + + # 更新对战统计 + if "对战统计" not in player_data: + player_data["对战统计"] = { + "总对战次数": 0, + "胜利次数": 0, + "失败次数": 0, + "胜率": 0.0 + } + + stats = player_data["对战统计"] + stats["总对战次数"] += 1 + + if winner == username: + stats["胜利次数"] += 1 + else: + stats["失败次数"] += 1 + + # 计算胜率 + if stats["总对战次数"] > 0: + stats["胜率"] = round(stats["胜利次数"] / stats["总对战次数"] * 100, 2) + + # 保存玩家数据 + self.save_player_data(username, player_data) + + # 如果是与其他玩家的对战,也更新对方的记录 + if defender_name != username and defender_name != "系统": + defender_data = self.load_player_data(defender_name) + if defender_data: + # 初始化对方的对战历史和统计 + if "对战历史" not in defender_data: + defender_data["对战历史"] = [] + if "对战统计" not in defender_data: + defender_data["对战统计"] = { + "总对战次数": 0, + "胜利次数": 0, + "失败次数": 0, + "胜率": 0.0 + } + + # 添加对战记录 + defender_data["对战历史"].append(battle_record) + + # 限制历史记录数量 + if len(defender_data["对战历史"]) > 100: + defender_data["对战历史"] = defender_data["对战历史"][-100:] + + # 更新对战统计 + defender_stats = defender_data["对战统计"] + defender_stats["总对战次数"] += 1 + + if winner == defender_name: + defender_stats["胜利次数"] += 1 + else: + defender_stats["失败次数"] += 1 + + # 计算胜率 + if defender_stats["总对战次数"] > 0: + defender_stats["胜率"] = round(defender_stats["胜利次数"] / defender_stats["总对战次数"] * 100, 2) + + # 保存对方数据 + self.save_player_data(defender_name, defender_data) + + return self.send_data(client_id, { + "type": "action_response", + "action_type": "pet_battle_result", + "success": True, + "message": "对战结果已记录", + "updated_data": { + "对战统计": player_data["对战统计"] + } + }) +#==========================宠物对战结果处理========================== + + + + #==========================开垦土地处理========================== #处理开垦土地请求 def _handle_dig_ground(self, client_id, message): @@ -3108,7 +3275,7 @@ class TCPGameServer(TCPServer): self._push_crop_update_to_player(username, player_data) # 构建奖励消息 - reward_message = f"获得 {rewards['money']} 金钱、{rewards['experience']} 经验" + reward_message = f"获得 {rewards['钱币']} 金钱、{rewards['经验值']} 经验" if rewards["seeds"]: seed_list = [f"{name} x{qty}" for name, qty in rewards["seeds"].items()] reward_message += f"、种子:{', '.join(seed_list)}" @@ -3725,30 +3892,21 @@ class TCPGameServer(TCPServer): #加载道具配置数据 def _load_item_config(self): - """优先从MongoDB加载道具配置数据,失败时回退到JSON文件""" - # 首先尝试从MongoDB加载 - if self.mongo_api and self.mongo_api.is_connected(): - try: - config = self.mongo_api.get_item_config() - if config: - self.log('INFO', '成功从MongoDB加载道具配置', 'SERVER') - return config - else: - self.log('WARNING', 'MongoDB中未找到道具配置,回退到JSON文件', 'SERVER') - except Exception as e: - self.log('WARNING', f'从MongoDB加载道具配置失败: {e},回退到JSON文件', 'SERVER') - - # 回退到JSON文件 - try: - with open("config/item_config.json", 'r', encoding='utf-8') as file: - config = json.load(file) - self.log('INFO', '从JSON文件加载道具配置', 'SERVER') - return config - except json.JSONDecodeError as e: - self.log('ERROR', f'JSON文件格式错误: {e}', 'SERVER') + """从MongoDB加载道具配置数据""" + if not self.mongo_api or not self.mongo_api.is_connected(): + self.log('ERROR', 'MongoDB未配置或不可用,无法加载道具配置数据', 'SERVER') return {} + + try: + config = self.mongo_api.get_item_config() + if config: + self.log('INFO', '成功从MongoDB加载道具配置', 'SERVER') + return config + else: + self.log('ERROR', 'MongoDB中未找到道具配置', 'SERVER') + return {} except Exception as e: - self.log('ERROR', f'无法加载道具数据: {e}', 'SERVER') + self.log('ERROR', f'从MongoDB加载道具配置失败: {e}', 'SERVER') return {} #==========================购买道具处理========================== @@ -4702,7 +4860,7 @@ class TCPGameServer(TCPServer): pet_bag = player_data.get("宠物背包", []) pet_index = -1 for i, pet in enumerate(pet_bag): - if pet.get("基本信息", {}).get("宠物ID") == pet_id: + if pet.get("pet_id") == pet_id: pet_index = i break @@ -4760,27 +4918,27 @@ class TCPGameServer(TCPServer): # 启用死亡免疫机制 pet_data["特殊机制开关"]["启用死亡免疫机制"] = True pet_data["特殊属性"]["死亡免疫"] = True - return True, f"宠物 {pet_data['基本信息']['宠物名称']} 获得了死亡免疫能力!", pet_data + return True, f"宠物 {pet_data['pet_name']} 获得了死亡免疫能力!", pet_data elif item_name == "荆棘护甲": # 启用伤害反弹机制 pet_data["特殊机制开关"]["启用伤害反弹机制"] = True pet_data["特殊属性"]["伤害反弹"] = 0.3 # 反弹30%伤害 - return True, f"宠物 {pet_data['基本信息']['宠物名称']} 获得了荆棘护甲!", pet_data + return True, f"宠物 {pet_data['pet_name']} 获得了荆棘护甲!", pet_data elif item_name == "狂暴药水": # 启用狂暴模式机制 pet_data["特殊机制开关"]["启用狂暴模式机制"] = True pet_data["特殊属性"]["狂暴阈值"] = 0.3 # 血量低于30%时触发 pet_data["特殊属性"]["狂暴状态伤害倍数"] = 2.0 # 狂暴时伤害翻倍 - return True, f"宠物 {pet_data['基本信息']['宠物名称']} 获得了狂暴能力!", pet_data + return True, f"宠物 {pet_data['pet_name']} 获得了狂暴能力!", pet_data elif item_name == "援军令牌": # 启用援助召唤机制 pet_data["特殊机制开关"]["启用援助召唤机制"] = True pet_data["援助系统"]["援助触发阈值"] = 0.2 # 血量低于20%时触发 pet_data["援助系统"]["援助召唤数量"] = 3 # 召唤3个援军 - return True, f"宠物 {pet_data['基本信息']['宠物名称']} 获得了援军召唤能力!", pet_data + return True, f"宠物 {pet_data['pet_name']} 获得了援军召唤能力!", pet_data elif item_name in ["金刚图腾", "灵木图腾", "潮汐图腾", "烈焰图腾", "敦岩图腾"]: # 改变宠物元素 @@ -4806,7 +4964,7 @@ class TCPGameServer(TCPServer): pet_data["元素属性"]["元素类型"] = new_element pet_data["元素属性"]["元素克制额外伤害"] = 100.0 # 元素克制时额外伤害 - return True, f"宠物 {pet_data['基本信息']['宠物名称']} 的元素属性已改变为{element_name}元素!", pet_data + return True, f"宠物 {pet_data['pet_name']} 的元素属性已改变为{element_name}元素!", pet_data else: return False, f"未知的宠物道具: {item_name}" @@ -4819,7 +4977,6 @@ class TCPGameServer(TCPServer): - #==========================农场道具使用处理========================== def _handle_use_farm_item(self, client_id, message): """处理农场道具使用请求""" @@ -4968,6 +5125,24 @@ class TCPGameServer(TCPServer): "success": False, "message": "无法读取道具配置数据" }) + + def _handle_pet_config_request(self, client_id): + """处理客户端请求宠物配置数据""" + pet_config = self._load_pet_config() + + if pet_config: + self.log('INFO', f"向客户端 {client_id} 发送宠物配置数据,宠物种类:{len(pet_config)}", 'SERVER') + return self.send_data(client_id, { + "type": "pet_config_response", + "success": True, + "pet_config": pet_config + }) + else: + return self.send_data(client_id, { + "type": "pet_config_response", + "success": False, + "message": "无法读取宠物配置数据" + }) #==========================道具配置数据处理========================== @@ -5774,32 +5949,28 @@ class TCPGameServer(TCPServer): return self.send_data(client_id, response) # 获取排序和筛选参数 - sort_by = message.get("sort_by", "等级") # 排序字段:seed_count, level, online_time, login_time, like_num, money - sort_order = message.get("sort_order", "desc") # 排序顺序:asc, desc + sort_by = message.get("sort_by", "等级") # 排序字段 + sort_order = message.get("sort_order", "desc") # 排序顺序 filter_online = message.get("filter_online", False) # 是否只显示在线玩家 search_qq = message.get("search_qq", "") # 搜索的QQ号 - # 获取所有玩家存档文件 - save_files = glob.glob(os.path.join("game_saves", "*.json")) - players_data = [] - - # 统计注册总人数 - total_registered_players = len(save_files) - - for save_file in save_files: - try: - # 从文件名提取账号ID - account_id = os.path.basename(save_file).split('.')[0] + try: + players_data = [] + total_registered_players = 0 + + # 优先使用MongoDB + if self.use_mongodb and self.mongo_api: + # 获取所有玩家基本信息 + all_players = self.mongo_api.get_all_players_basic_info() + total_registered_players = len(all_players) - # 如果有搜索条件,先检查是否匹配 - if search_qq and search_qq not in account_id: - continue - - # 加载玩家数据 - with open(save_file, 'r', encoding='utf-8') as file: - player_data = json.load(file) - - if player_data: + for player_data in all_players: + account_id = player_data.get("玩家账号", "") + + # 如果有搜索条件,先检查是否匹配 + if search_qq and search_qq not in account_id: + continue + # 统计背包中的种子数量 seed_count = sum(item.get("count", 0) for item in player_data.get("种子仓库", [])) @@ -5821,13 +5992,13 @@ class TCPGameServer(TCPServer): last_login_str = player_data.get("最后登录时间", "未知") last_login_timestamp = self._parse_login_time_to_timestamp(last_login_str) - # 获取所需的玩家信息 + # 获取体力值 stamina_system = player_data.get("体力系统", {}) current_stamina = stamina_system.get("当前体力值", 20) player_info = { - "玩家账号": player_data.get("玩家账号", account_id), - "玩家昵称": player_data.get("玩家昵称", player_data.get("玩家账号", account_id)), + "玩家账号": account_id, + "玩家昵称": player_data.get("玩家昵称", account_id), "农场名称": player_data.get("农场名称", ""), "等级": player_data.get("等级", 1), "钱币": player_data.get("钱币", 0), @@ -5843,49 +6014,119 @@ class TCPGameServer(TCPServer): } players_data.append(player_info) - except Exception as e: - self.log('ERROR', f"读取玩家 {account_id} 的数据时出错: {str(e)}", 'SERVER') - - # 根据排序参数进行排序 - reverse_order = (sort_order == "desc") - - if sort_by == "seed_count": - players_data.sort(key=lambda x: x["seed_count"], reverse=reverse_order) - elif sort_by == "等级": - players_data.sort(key=lambda x: x["等级"], reverse=reverse_order) - elif sort_by == "online_time": - players_data.sort(key=lambda x: x["total_time_seconds"], reverse=reverse_order) - elif sort_by == "login_time": - players_data.sort(key=lambda x: x["last_login_timestamp"], reverse=reverse_order) - elif sort_by == "like_num": - players_data.sort(key=lambda x: x["like_num"], reverse=reverse_order) - elif sort_by == "钱币": - players_data.sort(key=lambda x: x["钱币"], reverse=reverse_order) - else: - # 默认按等级排序 - players_data.sort(key=lambda x: x["等级"], reverse=True) - - # 统计在线玩家数量 - online_count = sum(1 for player in players_data if player.get("is_online", False)) - - # 记录日志 - search_info = f",搜索QQ:{search_qq}" if search_qq else "" - filter_info = ",仅在线玩家" if filter_online else "" - sort_info = f",按{sort_by}{'降序' if reverse_order else '升序'}排序" - - self.log('INFO', f"玩家 {self.user_data[client_id].get('username')} 请求玩家排行榜{search_info}{filter_info}{sort_info},返回 {len(players_data)} 个玩家数据,注册总人数:{total_registered_players},在线人数:{online_count}", 'SERVER') - - # 返回排行榜数据(包含注册总人数) - return self.send_data(client_id, { - "type": "player_rankings_response", - "success": True, - "players": players_data, - "total_registered_players": total_registered_players, - "sort_by": sort_by, - "sort_order": sort_order, - "filter_online": filter_online, - "search_qq": search_qq - }) + else: + # 降级到文件系统 + save_files = glob.glob(os.path.join("game_saves", "*.json")) + total_registered_players = len(save_files) + + for save_file in save_files: + try: + # 从文件名提取账号ID + account_id = os.path.basename(save_file).split('.')[0] + + # 如果有搜索条件,先检查是否匹配 + if search_qq and search_qq not in account_id: + continue + + # 加载玩家数据 + with open(save_file, 'r', encoding='utf-8') as file: + player_data = json.load(file) + + if player_data: + # 统计背包中的种子数量 + seed_count = sum(item.get("count", 0) for item in player_data.get("种子仓库", [])) + + # 检查玩家是否在线 + is_online = any( + user_info.get("username") == account_id and user_info.get("logged_in", False) + for user_info in self.user_data.values() + ) + + # 如果筛选在线玩家,跳过离线玩家 + if filter_online and not is_online: + continue + + # 解析总游玩时间为秒数(用于排序) + total_time_str = player_data.get("总游玩时间", "0时0分0秒") + total_time_seconds = self._parse_time_to_seconds(total_time_str) + + # 解析最后登录时间为时间戳(用于排序) + last_login_str = player_data.get("最后登录时间", "未知") + last_login_timestamp = self._parse_login_time_to_timestamp(last_login_str) + + # 获取所需的玩家信息 + stamina_system = player_data.get("体力系统", {}) + current_stamina = stamina_system.get("当前体力值", 20) + + player_info = { + "玩家账号": player_data.get("玩家账号", account_id), + "玩家昵称": player_data.get("玩家昵称", player_data.get("玩家账号", account_id)), + "农场名称": player_data.get("农场名称", ""), + "等级": player_data.get("等级", 1), + "钱币": player_data.get("钱币", 0), + "经验值": player_data.get("经验值", 0), + "体力值": current_stamina, + "seed_count": seed_count, + "最后登录时间": last_login_str, + "last_login_timestamp": last_login_timestamp, + "总游玩时间": total_time_str, + "total_time_seconds": total_time_seconds, + "like_num": player_data.get("点赞系统", {}).get("总点赞数", 0), + "is_online": is_online + } + + players_data.append(player_info) + except Exception as e: + self.log('ERROR', f"读取玩家 {account_id} 的数据时出错: {str(e)}", 'SERVER') + + # 根据排序参数进行排序 + reverse_order = (sort_order == "desc") + + if sort_by == "seed_count": + players_data.sort(key=lambda x: x["seed_count"], reverse=reverse_order) + elif sort_by == "等级": + players_data.sort(key=lambda x: x["等级"], reverse=reverse_order) + elif sort_by == "online_time": + players_data.sort(key=lambda x: x["total_time_seconds"], reverse=reverse_order) + elif sort_by == "login_time": + players_data.sort(key=lambda x: x["last_login_timestamp"], reverse=reverse_order) + elif sort_by == "like_num": + players_data.sort(key=lambda x: x["like_num"], reverse=reverse_order) + elif sort_by == "钱币": + players_data.sort(key=lambda x: x["钱币"], reverse=reverse_order) + else: + # 默认按等级排序 + players_data.sort(key=lambda x: x["等级"], reverse=True) + + # 统计在线玩家数量 + online_count = sum(1 for player in players_data if player.get("is_online", False)) + + # 记录日志 + search_info = f",搜索QQ:{search_qq}" if search_qq else "" + filter_info = ",仅在线玩家" if filter_online else "" + sort_info = f",按{sort_by}{'降序' if reverse_order else '升序'}排序" + + self.log('INFO', f"玩家 {self.user_data[client_id].get('username')} 请求玩家排行榜{search_info}{filter_info}{sort_info},返回 {len(players_data)} 个玩家数据,注册总人数:{total_registered_players},在线人数:{online_count}", 'SERVER') + + # 返回排行榜数据(包含注册总人数) + return self.send_data(client_id, { + "type": "player_rankings_response", + "success": True, + "players": players_data, + "total_registered_players": total_registered_players, + "sort_by": sort_by, + "sort_order": sort_order, + "filter_online": filter_online, + "search_qq": search_qq + }) + + except Exception as e: + self.log('ERROR', f"处理玩家排行榜请求时出错: {str(e)}", 'SERVER') + return self.send_data(client_id, { + "type": "player_rankings_response", + "success": False, + "message": "获取排行榜数据失败" + }) # 辅助函数:将时间字符串转换为秒数 def _parse_time_to_seconds(self, time_str): @@ -6039,6 +6280,9 @@ class TCPGameServer(TCPServer): self.user_data[client_id]["visiting_mode"] = False self.user_data[client_id]["visiting_target"] = "" + # 清理偷菜免被发现计数器 + self._clear_player_steal_immunity(username) + self.log('INFO', f"玩家 {username} 返回了自己的农场", 'SERVER') # 返回玩家自己的农场数据 @@ -6428,7 +6672,7 @@ class TCPGameServer(TCPServer): # 保存消息到MongoDB if self.mongo_api and self.mongo_api.is_connected(): - success = self.mongo_api.save_chat_message(username, player_name, content, current_timestamp) + success = self.mongo_api.save_chat_message(username, player_name, content) if not success: self.log('WARNING', f"保存聊天消息到MongoDB失败,尝试保存到本地文件", 'BROADCAST') self._save_broadcast_message_to_log(username, player_name, content) @@ -7728,11 +7972,6 @@ class TCPGameServer(TCPServer): #==========================发送游戏操作错误处理========================== - - - - - # ================================账户设置处理方法================================ def _handle_modify_account_info_request(self, client_id, message): """处理修改账号信息请求""" @@ -7811,11 +8050,11 @@ class TCPGameServer(TCPServer): username = self.user_data[client_id]["username"] try: - # 删除玩家文件 - file_path = os.path.join("game_saves", f"{username}.json") - if os.path.exists(file_path): - os.remove(file_path) - self.log('INFO', f"已删除玩家文件: {file_path}", 'ACCOUNT') + # 优先从MongoDB删除 + if self.use_mongodb and self.mongo_api: + success = self.mongo_api.delete_player_data(username) + if not success: + self.log('WARNING', f"MongoDB删除失败,尝试删除文件: {username}", 'ACCOUNT') # 清理用户数据 if client_id in self.user_data: @@ -7856,8 +8095,8 @@ class TCPGameServer(TCPServer): username = self.user_data[client_id]["username"] try: - # 强制从文件重新加载最新数据 - player_data = self._load_player_data_from_file(username) + # 强制从数据库重新加载最新数据 + player_data = self.load_player_data(username) if not player_data: return self._send_refresh_info_error(client_id, "无法加载玩家数据") @@ -8113,7 +8352,6 @@ class TCPGameServer(TCPServer): def _load_scare_crow_config(self): """加载稻草人配置""" - # 优先从MongoDB加载配置 try: if hasattr(self, 'mongo_api') and self.mongo_api and self.mongo_api.is_connected(): config = self.mongo_api.get_scare_crow_config() @@ -8121,27 +8359,21 @@ class TCPGameServer(TCPServer): self.log('INFO', "成功从MongoDB加载稻草人配置", 'SERVER') return config else: - self.log('WARNING', "MongoDB中未找到稻草人配置,回退到JSON文件", 'SERVER') + self.log('WARNING', "MongoDB中未找到稻草人配置,使用默认配置", 'SERVER') + else: + self.log('WARNING', "MongoDB未连接,使用默认稻草人配置", 'SERVER') except Exception as e: - self.log('ERROR', f"从MongoDB加载稻草人配置失败: {str(e)},回退到JSON文件", 'SERVER') + self.log('ERROR', f"从MongoDB加载稻草人配置失败: {str(e)},使用默认配置", 'SERVER') - # 回退到从JSON文件加载 - try: - with open("config/scare_crow_config.json", 'r', encoding='utf-8') as file: - config = json.load(file) - self.log('INFO', "成功从JSON文件加载稻草人配置", 'SERVER') - return config - except Exception as e: - self.log('ERROR', f"无法加载稻草人配置: {str(e)}", 'SERVER') - # 返回默认配置 - return { - "稻草人类型": { - "稻草人1": {"图片": "res://assets/道具图片/稻草人1.webp", "价格": 1000}, - "稻草人2": {"图片": "res://assets/道具图片/稻草人2.webp", "价格": 1000}, - "稻草人3": {"图片": "res://assets/道具图片/稻草人3.webp", "价格": 1000} - }, - "修改稻草人配置花费": 300 - } + # 返回默认配置 + return { + "稻草人类型": { + "稻草人1": {"图片": "res://assets/道具图片/稻草人1.webp", "价格": 1000}, + "稻草人2": {"图片": "res://assets/道具图片/稻草人2.webp", "价格": 1000}, + "稻草人3": {"图片": "res://assets/道具图片/稻草人3.webp", "价格": 1000} + }, + "修改稻草人配置花费": 300 + } def _send_buy_scare_crow_error(self, client_id, message): """发送购买稻草人错误响应""" @@ -9326,6 +9558,8 @@ class TCPGameServer(TCPServer): #==========================小卖部管理处理========================== + + def console_input_thread(server): """控制台输入处理线程""" import threading diff --git a/Server/__pycache__/ConsoleCommandsAPI.cpython-313.pyc b/Server/__pycache__/ConsoleCommandsAPI.cpython-313.pyc index e3602712f476e068bf0ca2e8778dc17dadacc9e2..aa5adb2908f18c4acafcf34f81fe66569ea3e325 100644 GIT binary patch delta 1906 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 NBDYRj@Gl?!=)Z_~qsIUM diff --git a/Server/__pycache__/SMYMongoDBAPI.cpython-313.pyc b/Server/__pycache__/SMYMongoDBAPI.cpython-313.pyc index a21b90b950e7000b9f822dd271035a701a80fcd5..7e0fa99e7a2394868a62fbb546a8ee2f809cb892 100644 GIT binary patch literal 53845 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 delta 13788 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 diff --git a/Server/__pycache__/TCPGameServer.cpython-313.pyc b/Server/__pycache__/TCPGameServer.cpython-313.pyc index b37fd7f607cd3db5e111112e0b452d526928d76b..078cd16f7223c15032a1958dc0e3830c084c2e35 100644 GIT binary patch delta 64523 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 diff --git a/Server/__pycache__/TCPServer.cpython-313.pyc b/Server/__pycache__/TCPServer.cpython-313.pyc index d3d79057da4d07492b10318a1fb24c5dcb9ca5ec..6938e54101602030ffb20a2745404c43c39f93d0 100644 GIT binary patch delta 20 acmX?7f25xKGcPX}0}y;wsNcxF(;fg$PzLb; delta 20 acmX?7f25xKGcPX}0}xbvt=q`G(;fg%-Umnk diff --git a/Server/deploy.sh b/Server/deploy.sh index 78b9fca..020338b 100644 --- a/Server/deploy.sh +++ b/Server/deploy.sh @@ -20,7 +20,6 @@ show_help() { echo " logs - 查看日志" echo " status - 查看状态" echo " build - 重新构建镜像" - echo " clean - 清理停止的容器和未使用的镜像" echo " help - 显示此帮助信息" } @@ -41,17 +40,10 @@ check_docker() { start_server() { echo "🚀 启动萌芽农场服务器..." - # 检查配置文件是否存在 - if [ ! -f "config/crop_data.json" ]; then - echo "⚠️ 警告: 配置文件不存在,请确保 config 目录包含必要的配置文件" - fi - # 启动容器 docker-compose up -d echo "✅ 服务器启动成功!" - echo "📡 服务器地址: localhost:6060" - echo "📝 查看日志: $0 logs" } # 停止服务器 @@ -83,11 +75,6 @@ show_status() { 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 @@ -100,13 +87,6 @@ build_image() { echo "✅ 镜像构建完成" } -# 清理 -clean_up() { - echo "🧹 清理停止的容器和未使用的镜像..." - docker-compose down - docker system prune -f - echo "✅ 清理完成" -} # 主函数 main() { @@ -131,9 +111,6 @@ main() { "build") build_image ;; - "clean") - clean_up - ;; "help"|*) show_help ;; diff --git a/Server/docker-compose.yml b/Server/docker-compose.yml index 661e571..dc7a190 100644 --- a/Server/docker-compose.yml +++ b/Server/docker-compose.yml @@ -18,6 +18,7 @@ services: - PYTHONUNBUFFERED=1 - LANG=C.UTF-8 - LC_ALL=C.UTF-8 + - PRODUCTION=true networks: - mengyafarm-network logging: @@ -28,4 +29,4 @@ services: networks: mengyafarm-network: - driver: bridge \ No newline at end of file + driver: bridge \ No newline at end of file diff --git a/Server/game_saves/2143323382.json b/Server/game_saves/2143323382.json deleted file mode 100644 index d4e5648..0000000 --- a/Server/game_saves/2143323382.json +++ /dev/null @@ -1,1099 +0,0 @@ -{ - "经验值": 455, - "等级": 36, - "钱币": 200796649, - "农场名称": "柚大青の小农场", - "玩家昵称": "柚大青", - "玩家账号": "2143323382", - "玩家密码": "tyh@19900420", - "最后登录时间": "2025年07月21日13时43分17秒", - "总游玩时间": "6时50分12秒", - "农场土地": [ - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 1440, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "野草1", - "grow_time": 6, - "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": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 1080, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "橘子", - "grow_time": 10234, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 10200, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 12000, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 1080, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 240, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "杂交树1", - "grow_time": 21642, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 3, - "浇水时间": 1753019871.817958 - }, - { - "crop_type": "杂交树2", - "grow_time": 25236, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 3, - "浇水时间": 1753019874.5774846 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "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": 7006, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 7000, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "杂交树2", - "grow_time": 25208, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "杂交树1", - "grow_time": 21642, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 480, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 14400, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "芦荟", - "grow_time": 6013, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 6000, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "玉米", - "grow_time": 918, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 900, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "松露", - "grow_time": 18001, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 18000, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "藏红花", - "grow_time": 7009, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 7000, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "杂交树1", - "grow_time": 21607, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "杂交树1", - "grow_time": 21603, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 3060, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": true, - "is_planted": false, - "max_grow_time": 2500, - "已浇水": 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": "杂交树2", - "grow_time": 25215, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": 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": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - } - ], - "种子仓库": [ - { - "name": "土豆", - "quality": "普通", - "count": 2 - }, - { - "name": "小麦", - "quality": "普通", - "count": 2 - }, - { - "name": "胡萝卜", - "quality": "普通", - "count": 1 - }, - { - "name": "番茄", - "quality": "普通", - "count": 1 - }, - { - "name": "辣椒", - "quality": "普通", - "count": 1 - }, - { - "name": "草莓", - "quality": "稀有", - "count": 1 - }, - { - "name": "花椰菜", - "quality": "优良", - "count": 1 - }, - { - "name": "葡萄", - "quality": "普通", - "count": 2 - }, - { - "name": "南瓜", - "quality": "普通", - "count": 1 - }, - { - "name": "月光草", - "quality": "传奇", - "count": 1 - }, - { - "name": "荔枝", - "count": 2 - }, - { - "name": "玫瑰花", - "count": 1 - }, - { - "name": "石榴", - "count": 2 - }, - { - "name": "芦荟", - "count": 1 - }, - { - "name": "向日葵", - "count": 3 - }, - { - "name": "黄瓜", - "quality": "普通", - "count": 3 - }, - { - "name": "野草1", - "quality": "优良", - "count": 2 - }, - { - "name": "豌豆", - "quality": "普通", - "count": 4 - }, - { - "name": "稻谷", - "quality": "普通", - "count": 4 - }, - { - "name": "山楂", - "quality": "优良", - "count": 2 - }, - { - "name": "龙果", - "quality": "传奇", - "count": 1 - }, - { - "name": "杂交树1", - "quality": "传奇", - "count": 1 - }, - { - "name": "杂交树2", - "quality": "传奇", - "count": 1 - } - ], - "注册时间": "2025年05月21日15时00分00秒", - "个人简介": "其实我是一个梨子,真的,不骗你", - "作物仓库": [ - { - "name": "番茄", - "quality": "普通", - "count": 23 - }, - { - "name": "小麦", - "quality": "普通", - "count": 44 - }, - { - "name": "龙果", - "quality": "稀有", - "count": 4 - }, - { - "name": "玉米", - "quality": "优良", - "count": 1 - }, - { - "name": "稻谷", - "quality": "普通", - "count": 3 - }, - { - "name": "胡萝卜", - "quality": "普通", - "count": 20 - }, - { - "name": "花椰菜", - "quality": "优良", - "count": 1 - }, - { - "name": "土豆", - "quality": "普通", - "count": 19 - }, - { - "name": "咖啡豆", - "quality": "稀有", - "count": 9 - }, - { - "name": "人参", - "quality": "史诗", - "count": 3 - }, - { - "name": "藏红花", - "quality": "稀有", - "count": 1 - }, - { - "name": "杨桃", - "quality": "史诗", - "count": 1 - }, - { - "name": "冬虫夏草", - "quality": "史诗", - "count": 1 - }, - { - "name": "仙人掌", - "quality": "优良", - "count": 5 - }, - { - "name": "大豆", - "quality": "普通", - "count": 5 - }, - { - "name": "荔枝", - "quality": "优良", - "count": 5 - }, - { - "name": "杂交树2", - "quality": "传奇", - "count": 1 - } - ], - "宠物背包": [ - { - "场景路径": "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" - } - }, - { - "场景路径": "res://Scene/Pet/BigBeetle.tscn", - "基本信息": { - "宠物主人": "2143323382", - "宠物名称": "2143323382的大甲虫", - "队伍标识": "team1", - "宠物ID": "1753020931947", - "宠物类型": "大甲虫", - "生日": "2025年7月20日22时15分31秒", - "年龄": 0, - "性格": "活泼", - "简介": "", - "爱好": "" - }, - "等级经验": { - "宠物等级": 1, - "当前经验": 0, - "最大经验": 100, - "亲密度": 0, - "最大亲密度": 1000 - }, - "购买信息": { - "能否购买": true, - "购买价格": 1000, - "出售价格": 500 - }, - "生命与防御": { - "最大生命值": 200, - "当前生命值": 200, - "生命恢复速度": 1, - "最大护盾值": 0, - "当前护盾值": 0, - "护盾恢复速度": 0, - "最大护甲值": 100, - "当前护甲值": 100 - }, - "基础攻击属性": { - "攻击类型": "MELEE", - "基础攻击伤害": 25, - "攻击距离": 100, - "暴击率": 0.1, - "暴击伤害倍数": 1.5, - "生命汲取": 0.1, - "护甲穿透": 0 - }, - "近战攻击": { - "近战额外伤害": 0, - "近战攻击速度": 1 - }, - "远程攻击": { - "远程额外伤害": 0, - "远程攻击速度": 1, - "远程攻击模式": "SINGLE", - "子弹速度": 300 - }, - "散弹攻击": { - "散弹数量": 5, - "散弹扩散角度": 45 - }, - "多发射击": { - "多发射击行数": 2, - "多发射击列数": 3, - "多发射击间距": 30 - }, - "加特林属性": { - "加特林子弹数量": 8, - "加特林射击间隔": 0.1, - "加特林冷却时间": 2 - }, - "穿透属性": { - "穿透数量": 3 - }, - "移动与闪避": { - "移动速度": 100, - "闪避率": 0.05, - "击退力度": 300, - "击退抗性": 0 - }, - "元素属性": { - "元素类型": "NONE", - "元素克制额外伤害": 50 - }, - "特殊属性": { - "控制抗性": 0, - "伤害反弹": 0, - "死亡免疫": false, - "狂暴阈值": 0.3, - "狂暴状态伤害倍数": 1.5 - }, - "特殊机制开关": { - "启用伤害反弹机制": false, - "启用狂暴模式机制": false, - "启用死亡免疫机制": false, - "启用援助召唤机制": false, - "启用死亡重生机制": false - }, - "援助系统": { - "援助触发阈值": 0.2, - "援助召唤数量": 2, - "援助召唤间隔": 5 - }, - "品质系统": { - "宠物品质": "COMMON" - } - } - ], - "巡逻宠物": [ - "1751716398095" - ], - "出战宠物": [ - "1751716398095" - ], - "签到历史": { - "2025年07月12日21时05分47秒": "金币249 经验75 土豆x3", - "2025年07月13日07时26分04秒": "金币302 经验63 土豆x5 小麦x3" - }, - "在线礼包": { - "当前日期": "2025-07-21", - "今日在线时长": 0.0, - "已领取礼包": [], - "登录时间": 1753063234.6517925 - }, - "点赞系统": { - "今日剩余点赞次数": 10, - "点赞上次刷新时间": "2025-07-21", - "总点赞数": 0 - }, - "新手礼包": { - "已领取": true, - "领取时间": "2025-07-20 20:21:04" - }, - "体力系统": { - "当前体力值": 25, - "最大体力值": 25, - "上次刷新时间": "2025-07-21", - "上次恢复时间": 1753063234.6496308 - }, - "道具背包": [ - { - "name": "铲子", - "count": 100 - }, - { - "name": "农家肥", - "count": 4 - }, - { - "name": "水桶", - "count": 3 - }, - { - "name": "荆棘护甲", - "count": 1 - }, - { - "name": "时运-镰刀", - "count": 1 - }, - { - "name": "精准采集-镰刀", - "count": 1 - }, - { - "name": "金坷垃", - "count": 1 - }, - { - "name": "水壶", - "count": 1 - }, - { - "name": "杀虫剂", - "count": 1 - }, - { - "name": "除草剂", - "count": 1 - } - ], - "小卖部配置": { - "商品列表": [], - "格子数": 50 - }, - "游戏设置": { - "背景音乐音量": 1.0, - "天气显示": true - }, - "智慧树配置": { - "距离上一次杀虫时间": 1753014929, - "距离上一次除草时间": 1753014864, - "智慧树显示的话": "你好,树萌芽", - "等级": 2, - "当前经验值": 27, - "最大经验值": 169, - "最大生命值": 102, - "当前生命值": 102, - "高度": 20, - "上次护理时间": 1753014929 - }, - "稻草人配置": { - "已拥有稻草人类型": [ - "稻草人1", - "稻草人2", - "稻草人3" - ], - "稻草人展示类型": "稻草人2", - "稻草人昵称": "稻草人", - "稻草人说的话": { - "第一句话": { - "内容": "第一句话", - "颜色": "52dceeff" - }, - "第二句话": { - "内容": "第二句话", - "颜色": "80d5ffff" - }, - "第三句话": { - "内容": "第三句话", - "颜色": "ac52ffff" - }, - "第四句话": { - "内容": "第四句话", - "颜色": "f881ffff" - } - }, - "稻草人昵称颜色": "b38282ff" - } -} \ No newline at end of file diff --git a/Server/game_saves/2804775686.json b/Server/game_saves/2804775686.json deleted file mode 100644 index 466aa5b..0000000 --- a/Server/game_saves/2804775686.json +++ /dev/null @@ -1,577 +0,0 @@ -{ - "经验值": 396, - "等级": 5, - "钱币": 11476, - "农场名称": "123", - "玩家昵称": "123", - "玩家账号": "2804775686", - "玩家密码": "123", - "最后登录时间": "2025年07月22日08时51分11秒", - "总游玩时间": "0时3分4秒", - "注册时间": "2025年07月21日20时35分51秒", - "个人简介": "21323123", - "农场土地": [ - { - "crop_type": "杂交树2", - "grow_time": 860, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "小麦", - "grow_time": 300, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 300, - "已浇水": 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": 300, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "小麦", - "grow_time": 300, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "小麦", - "grow_time": 300, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "小麦", - "grow_time": 300, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "胡萝卜", - "grow_time": 240, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 240, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "小麦", - "grow_time": 300, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "龙果", - "grow_time": 840, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 14400, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "玉米", - "grow_time": 840, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 900, - "已浇水": 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": 830, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 900, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "辣椒", - "grow_time": 650, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "辣椒", - "grow_time": 650, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "小麦", - "grow_time": 300, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "胡萝卜", - "grow_time": 240, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 240, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "胡萝卜", - "grow_time": 240, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 240, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "小麦", - "grow_time": 300, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 300, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "玉米", - "grow_time": 810, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 900, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - } - ], - "种子仓库": [ - { - "name": "杂交树1", - "quality": "传奇", - "count": 1 - }, - { - "name": "小麦", - "quality": "普通", - "count": 6 - }, - { - "name": "辣椒", - "quality": "普通", - "count": 1 - }, - { - "name": "胡萝卜", - "quality": "普通", - "count": 8 - }, - { - "name": "椰子", - "quality": "优良", - "count": 2 - } - ], - "作物仓库": [ - { - "name": "辣椒", - "quality": "普通", - "count": 33 - } - ], - "道具背包": [], - "宠物背包": [], - "巡逻宠物": [], - "出战宠物": [], - "稻草人配置": { - "已拥有稻草人类型": [ - "稻草人1" - ], - "稻草人展示类型": "", - "稻草人昵称": "稻草人", - "稻草人说的话": { - "第一句话": { - "内容": "第一句话", - "颜色": "52dceeff" - }, - "第二句话": { - "内容": "第二句话", - "颜色": "80d5ffff" - }, - "第三句话": { - "内容": "第三句话", - "颜色": "ac52ffff" - }, - "第四句话": { - "内容": "第四句话", - "颜色": "f881ffff" - } - }, - "稻草人昵称颜色": "b38282ff" - }, - "智慧树配置": { - "距离上一次杀虫时间": 1753004237, - "距离上一次除草时间": 1753004237, - "智慧树显示的话": "", - "等级": 1, - "当前经验值": 0, - "最大经验值": 100, - "最大生命值": 100, - "当前生命值": 100, - "高度": 20, - "上次护理时间": 1753101378 - }, - "签到历史": { - "2025年07月21日21时13分12秒": "金币276 经验56 土豆x2 小麦x4" - }, - "在线礼包": { - "当前日期": "2025-07-22", - "今日在线时长": 78.0709433555603, - "已领取礼包": [ - "1分钟" - ], - "登录时间": 1753145471.320933 - }, - "点赞系统": { - "今日剩余点赞次数": 10, - "点赞上次刷新时间": "2025-07-22", - "总点赞数": 0 - }, - "新手礼包": { - "已领取": true, - "领取时间": "2025-07-21 21:13:05" - }, - "体力系统": { - "当前体力值": 25, - "最大体力值": 25, - "上次刷新时间": "2025-07-22", - "上次恢复时间": 1753145471.3187816 - }, - "小卖部配置": { - "商品列表": [], - "格子数": 10 - }, - "游戏设置": { - "背景音乐音量": 1.0, - "天气显示": true - }, - "": "123" -} \ No newline at end of file diff --git a/Server/requirements.txt b/Server/requirements.txt index 9a8909c..fe2618d 100644 --- a/Server/requirements.txt +++ b/Server/requirements.txt @@ -1,4 +1,5 @@ # Game Server Dependencies colorama>=0.4.6 # For colored terminal output +pymongo>=4.6.0 # MongoDB driver for Python # Email Requirements -# Standard library dependencies are not listed (socket, threading, json, etc.) \ No newline at end of file +# Standard library dependencies are not listed (socket, threading, json, etc.) \ No newline at end of file diff --git a/Server/test_pet_data_migration.py b/Server/test_pet_data_migration.py new file mode 100644 index 0000000..516a625 --- /dev/null +++ b/Server/test_pet_data_migration.py @@ -0,0 +1,341 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +宠物数据格式迁移测试脚本 +用于验证从旧的嵌套数据格式到新的扁平化数据格式的迁移是否正确 +""" + +import json +import sys +import os + +# 添加当前目录到Python路径 +sys.path.append(os.path.dirname(os.path.abspath(__file__))) + +def test_old_to_new_format_conversion(): + """测试旧格式到新格式的转换""" + print("=== 测试旧格式到新格式的转换 ===") + + # 模拟旧格式的宠物数据 + old_pet_data = { + "基本信息": { + "宠物ID": "pet_001", + "宠物名称": "小火龙", + "宠物类型": "火系", + "拥有者": "player123", + "场景路径": "res://Scene/Pet/FireDragon.tscn" + }, + "等级经验": { + "等级": 5, + "经验值": 150, + "最大经验值": 200 + }, + "生命与防御": { + "当前生命值": 80, + "最大生命值": 100, + "最大护甲值": 20 + }, + "基础攻击属性": { + "攻击伤害": 25 + }, + "移动与闪避": { + "移动速度": 150 + }, + "亲密度": 75 + } + + # 转换为新格式 + def convert_to_new_format(old_data): + """将旧格式转换为新格式""" + basic_info = old_data.get("基本信息", {}) + level_exp = old_data.get("等级经验", {}) + health_defense = old_data.get("生命与防御", {}) + attack_attrs = old_data.get("基础攻击属性", {}) + movement = old_data.get("移动与闪避", {}) + + return { + "pet_id": basic_info.get("宠物ID", ""), + "pet_name": basic_info.get("宠物名称", ""), + "pet_type": basic_info.get("宠物类型", ""), + "pet_owner": basic_info.get("拥有者", ""), + "pet_image": basic_info.get("场景路径", ""), + "pet_level": level_exp.get("等级", 1), + "pet_experience": level_exp.get("经验值", 0), + "pet_max_experience": level_exp.get("最大经验值", 100), + "pet_current_health": health_defense.get("当前生命值", 100), + "pet_max_health": health_defense.get("最大生命值", 100), + "pet_max_armor": health_defense.get("最大护甲值", 0), + "pet_attack_damage": attack_attrs.get("攻击伤害", 10), + "pet_move_speed": movement.get("移动速度", 100), + "pet_intimacy": old_data.get("亲密度", 0) + } + + new_pet_data = convert_to_new_format(old_pet_data) + + print("旧格式数据:") + print(json.dumps(old_pet_data, ensure_ascii=False, indent=2)) + print("\n新格式数据:") + print(json.dumps(new_pet_data, ensure_ascii=False, indent=2)) + + # 验证转换结果 + assert new_pet_data["pet_id"] == "pet_001" + assert new_pet_data["pet_name"] == "小火龙" + assert new_pet_data["pet_type"] == "火系" + assert new_pet_data["pet_owner"] == "player123" + assert new_pet_data["pet_level"] == 5 + assert new_pet_data["pet_experience"] == 150 + assert new_pet_data["pet_max_experience"] == 200 + assert new_pet_data["pet_current_health"] == 80 + assert new_pet_data["pet_max_health"] == 100 + assert new_pet_data["pet_max_armor"] == 20 + assert new_pet_data["pet_attack_damage"] == 25 + assert new_pet_data["pet_move_speed"] == 150 + assert new_pet_data["pet_intimacy"] == 75 + + print("✅ 旧格式到新格式转换测试通过") + return new_pet_data + +def test_new_format_operations(pet_data): + """测试新格式数据的各种操作""" + print("\n=== 测试新格式数据操作 ===") + + # 测试宠物升级 + def level_up_pet(pet): + """模拟宠物升级""" + pet = pet.copy() + pet["pet_level"] += 1 + pet["pet_experience"] = 0 + pet["pet_max_experience"] = pet["pet_level"] * 100 + pet["pet_max_health"] += 10 + pet["pet_current_health"] = pet["pet_max_health"] + pet["pet_attack_damage"] += 5 + return pet + + # 测试宠物喂食 + def feed_pet(pet, exp_gain=20): + """模拟宠物喂食""" + pet = pet.copy() + pet["pet_experience"] = min(pet["pet_experience"] + exp_gain, pet["pet_max_experience"]) + pet["pet_intimacy"] = min(pet["pet_intimacy"] + 5, 100) + return pet + + # 测试宠物治疗 + def heal_pet(pet, heal_amount=20): + """模拟宠物治疗""" + pet = pet.copy() + pet["pet_current_health"] = min(pet["pet_current_health"] + heal_amount, pet["pet_max_health"]) + return pet + + print("原始宠物数据:") + print(f"等级: {pet_data['pet_level']}, 经验: {pet_data['pet_experience']}/{pet_data['pet_max_experience']}") + print(f"生命值: {pet_data['pet_current_health']}/{pet_data['pet_max_health']}") + print(f"攻击力: {pet_data['pet_attack_damage']}, 亲密度: {pet_data['pet_intimacy']}") + + # 测试喂食 + fed_pet = feed_pet(pet_data) + print("\n喂食后:") + print(f"经验: {fed_pet['pet_experience']}/{fed_pet['pet_max_experience']}") + print(f"亲密度: {fed_pet['pet_intimacy']}") + + # 测试升级 + leveled_pet = level_up_pet(fed_pet) + print("\n升级后:") + print(f"等级: {leveled_pet['pet_level']}, 经验: {leveled_pet['pet_experience']}/{leveled_pet['pet_max_experience']}") + print(f"生命值: {leveled_pet['pet_current_health']}/{leveled_pet['pet_max_health']}") + print(f"攻击力: {leveled_pet['pet_attack_damage']}") + + # 测试治疗 + # 先模拟受伤 + injured_pet = leveled_pet.copy() + injured_pet["pet_current_health"] = 50 + print("\n受伤后:") + print(f"生命值: {injured_pet['pet_current_health']}/{injured_pet['pet_max_health']}") + + healed_pet = heal_pet(injured_pet) + print("\n治疗后:") + print(f"生命值: {healed_pet['pet_current_health']}/{healed_pet['pet_max_health']}") + + print("✅ 新格式数据操作测试通过") + +def test_pet_bag_operations(): + """测试宠物背包操作""" + print("\n=== 测试宠物背包操作 ===") + + # 创建测试宠物背包 + pet_bag = [ + { + "pet_id": "pet_001", + "pet_name": "小火龙", + "pet_type": "火系", + "pet_owner": "player123", + "pet_image": "res://Scene/Pet/FireDragon.tscn", + "pet_level": 5, + "pet_experience": 150, + "pet_max_experience": 200, + "pet_current_health": 80, + "pet_max_health": 100, + "pet_max_armor": 20, + "pet_attack_damage": 25, + "pet_move_speed": 150, + "pet_intimacy": 75 + }, + { + "pet_id": "pet_002", + "pet_name": "水精灵", + "pet_type": "水系", + "pet_owner": "player123", + "pet_image": "res://Scene/Pet/WaterSpirit.tscn", + "pet_level": 3, + "pet_experience": 80, + "pet_max_experience": 150, + "pet_current_health": 60, + "pet_max_health": 80, + "pet_max_armor": 15, + "pet_attack_damage": 20, + "pet_move_speed": 120, + "pet_intimacy": 50 + } + ] + + print(f"宠物背包中有 {len(pet_bag)} 只宠物") + + # 测试遍历宠物背包 + for i, pet in enumerate(pet_bag): + print(f"\n宠物 {i+1}:") + print(f" ID: {pet['pet_id']}") + print(f" 名称: {pet['pet_name']}") + print(f" 类型: {pet['pet_type']}") + print(f" 等级: {pet['pet_level']}") + print(f" 生命值: {pet['pet_current_health']}/{pet['pet_max_health']}") + print(f" 攻击力: {pet['pet_attack_damage']}") + print(f" 亲密度: {pet['pet_intimacy']}") + + # 测试查找特定宠物 + def find_pet_by_id(pet_bag, pet_id): + for pet in pet_bag: + if pet.get("pet_id") == pet_id: + return pet + return None + + found_pet = find_pet_by_id(pet_bag, "pet_002") + if found_pet: + print(f"\n找到宠物: {found_pet['pet_name']} (ID: {found_pet['pet_id']})") + + # 测试按类型筛选宠物 + def filter_pets_by_type(pet_bag, pet_type): + return [pet for pet in pet_bag if pet.get("pet_type") == pet_type] + + fire_pets = filter_pets_by_type(pet_bag, "火系") + print(f"\n火系宠物数量: {len(fire_pets)}") + + # 测试计算总战力 + def calculate_total_power(pet_bag): + total_power = 0 + for pet in pet_bag: + power = pet.get("pet_level", 1) * 10 + pet.get("pet_attack_damage", 0) + pet.get("pet_max_health", 0) + total_power += power + return total_power + + total_power = calculate_total_power(pet_bag) + print(f"\n总战力: {total_power}") + + print("✅ 宠物背包操作测试通过") + +def test_data_validation(): + """测试数据验证""" + print("\n=== 测试数据验证 ===") + + def validate_pet_data(pet): + """验证宠物数据的完整性""" + required_fields = [ + "pet_id", "pet_name", "pet_type", "pet_owner", "pet_image", + "pet_level", "pet_experience", "pet_max_experience", + "pet_current_health", "pet_max_health", "pet_max_armor", + "pet_attack_damage", "pet_move_speed", "pet_intimacy" + ] + + missing_fields = [] + for field in required_fields: + if field not in pet: + missing_fields.append(field) + + if missing_fields: + return False, f"缺少字段: {', '.join(missing_fields)}" + + # 验证数值范围 + if pet["pet_level"] < 1: + return False, "宠物等级不能小于1" + + if pet["pet_experience"] < 0: + return False, "宠物经验值不能为负数" + + if pet["pet_current_health"] > pet["pet_max_health"]: + return False, "当前生命值不能超过最大生命值" + + if pet["pet_intimacy"] < 0 or pet["pet_intimacy"] > 100: + return False, "亲密度必须在0-100之间" + + return True, "数据验证通过" + + # 测试有效数据 + valid_pet = { + "pet_id": "pet_001", + "pet_name": "测试宠物", + "pet_type": "普通", + "pet_owner": "player123", + "pet_image": "res://Scene/Pet/Test.tscn", + "pet_level": 1, + "pet_experience": 0, + "pet_max_experience": 100, + "pet_current_health": 100, + "pet_max_health": 100, + "pet_max_armor": 0, + "pet_attack_damage": 10, + "pet_move_speed": 100, + "pet_intimacy": 0 + } + + is_valid, message = validate_pet_data(valid_pet) + print(f"有效数据验证: {message}") + assert is_valid, "有效数据应该通过验证" + + # 测试无效数据 + invalid_pet = valid_pet.copy() + del invalid_pet["pet_name"] # 删除必需字段 + + is_valid, message = validate_pet_data(invalid_pet) + print(f"无效数据验证: {message}") + assert not is_valid, "无效数据应该不通过验证" + + print("✅ 数据验证测试通过") + +def main(): + """主测试函数""" + print("开始宠物数据格式迁移测试...\n") + + try: + # 测试格式转换 + new_pet_data = test_old_to_new_format_conversion() + + # 测试新格式操作 + test_new_format_operations(new_pet_data) + + # 测试宠物背包操作 + test_pet_bag_operations() + + # 测试数据验证 + test_data_validation() + + print("\n🎉 所有测试通过!宠物数据格式迁移工作正常。") + + except Exception as e: + print(f"\n❌ 测试失败: {str(e)}") + import traceback + traceback.print_exc() + return False + + return True + +if __name__ == "__main__": + success = main() + sys.exit(0 if success else 1) \ No newline at end of file diff --git a/Server/test_player_data_mongodb_migration.py b/Server/test_player_data_mongodb_migration.py new file mode 100644 index 0000000..e68ddbb --- /dev/null +++ b/Server/test_player_data_mongodb_migration.py @@ -0,0 +1,219 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +玩家数据MongoDB迁移测试脚本 +作者: AI Assistant +功能: 测试玩家数据从JSON文件到MongoDB的迁移和操作功能 +""" + +import json +import sys +import os +import time +from SMYMongoDBAPI import SMYMongoDBAPI + +def test_player_data_operations(): + """测试玩家数据操作""" + print("=== 玩家数据MongoDB操作测试 ===") + + # 1. 连接MongoDB + print("\n1. 连接MongoDB...") + try: + api = SMYMongoDBAPI("test") + if not api.is_connected(): + print("❌ MongoDB连接失败") + return False + print("✅ MongoDB连接成功") + except Exception as e: + print(f"❌ MongoDB连接异常: {e}") + return False + + # 2. 测试获取玩家数据 + print("\n2. 测试获取玩家数据...") + test_accounts = ["2143323382", "2804775686", "3205788256"] + + for account_id in test_accounts: + try: + player_data = api.get_player_data(account_id) + if player_data: + print(f"✅ 成功获取玩家 {account_id} 的数据") + print(f" 昵称: {player_data.get('玩家昵称', 'N/A')}") + print(f" 等级: {player_data.get('等级', 'N/A')}") + print(f" 金币: {player_data.get('钱币', 'N/A')}") + print(f" 农场土地数量: {len(player_data.get('农场土地', []))}") + else: + print(f"⚠️ 未找到玩家 {account_id} 的数据") + except Exception as e: + print(f"❌ 获取玩家 {account_id} 数据时异常: {e}") + + # 3. 测试获取所有玩家基本信息 + print("\n3. 测试获取所有玩家基本信息...") + try: + players_info = api.get_all_players_basic_info() + print(f"✅ 成功获取 {len(players_info)} 个玩家的基本信息") + + for i, player in enumerate(players_info[:3]): # 只显示前3个 + print(f" 玩家{i+1}: {player.get('玩家账号')} - {player.get('玩家昵称')} (等级{player.get('等级')})") + + if len(players_info) > 3: + print(f" ... 还有 {len(players_info) - 3} 个玩家") + + except Exception as e: + print(f"❌ 获取玩家基本信息时异常: {e}") + + # 4. 测试统计玩家总数 + print("\n4. 测试统计玩家总数...") + try: + total_count = api.count_total_players() + print(f"✅ 玩家总数: {total_count}") + except Exception as e: + print(f"❌ 统计玩家总数时异常: {e}") + + # 5. 测试获取离线玩家 + print("\n5. 测试获取离线玩家...") + try: + offline_players = api.get_offline_players(offline_days=1) # 1天内未登录 + print(f"✅ 找到 {len(offline_players)} 个离线超过1天的玩家") + + for player in offline_players[:3]: # 只显示前3个 + account_id = player.get('玩家账号') + last_login = player.get('最后登录时间', 'N/A') + print(f" {account_id}: 最后登录 {last_login}") + + except Exception as e: + print(f"❌ 获取离线玩家时异常: {e}") + + # 6. 测试更新玩家字段 + print("\n6. 测试更新玩家字段...") + if test_accounts: + test_account = test_accounts[0] + try: + # 更新测试字段 + update_fields = { + "测试字段": f"测试时间_{int(time.time())}", + "测试更新": True + } + + success = api.update_player_field(test_account, update_fields) + if success: + print(f"✅ 成功更新玩家 {test_account} 的字段") + + # 验证更新 + updated_data = api.get_player_data(test_account) + if updated_data and "测试字段" in updated_data: + print(f" 验证成功: 测试字段 = {updated_data['测试字段']}") + else: + print("⚠️ 更新验证失败") + else: + print(f"❌ 更新玩家 {test_account} 字段失败") + + except Exception as e: + print(f"❌ 更新玩家字段时异常: {e}") + + # 7. 测试条件查询 + print("\n7. 测试条件查询...") + try: + # 查询等级大于等于5的玩家 + condition = {"等级": {"$gte": 5}} + projection = {"玩家账号": 1, "玩家昵称": 1, "等级": 1, "钱币": 1} + + high_level_players = api.get_players_by_condition(condition, projection, limit=5) + print(f"✅ 找到 {len(high_level_players)} 个等级≥5的玩家") + + for player in high_level_players: + print(f" {player.get('玩家账号')}: {player.get('玩家昵称')} (等级{player.get('等级')}, 金币{player.get('钱币')})") + + except Exception as e: + print(f"❌ 条件查询时异常: {e}") + + # 8. 性能测试 + print("\n8. 性能测试...") + try: + start_time = time.time() + + # 批量获取玩家基本信息 + players_info = api.get_all_players_basic_info() + + end_time = time.time() + duration = end_time - start_time + + print(f"✅ 获取 {len(players_info)} 个玩家基本信息耗时: {duration:.3f} 秒") + + if duration < 1.0: + print(" 性能良好 ✅") + elif duration < 3.0: + print(" 性能一般 ⚠️") + else: + print(" 性能较差,建议优化 ❌") + + except Exception as e: + print(f"❌ 性能测试时异常: {e}") + + print("\n=== 测试完成 ===") + return True + +def test_compatibility_with_file_system(): + """测试与文件系统的兼容性""" + print("\n=== 文件系统兼容性测试 ===") + + try: + # 模拟服务器环境 + from TCPGameServer import TCPGameServer + + # 创建服务器实例(不启动网络服务) + server = TCPGameServer() + + # 测试加载玩家数据 + test_account = "2143323382" + + print(f"\n测试加载玩家数据: {test_account}") + player_data = server.load_player_data(test_account) + + if player_data: + print("✅ 成功加载玩家数据") + print(f" 数据源: {'MongoDB' if server.use_mongodb else '文件系统'}") + print(f" 玩家昵称: {player_data.get('玩家昵称', 'N/A')}") + print(f" 等级: {player_data.get('等级', 'N/A')}") + + # 测试保存玩家数据 + print("\n测试保存玩家数据...") + player_data["测试兼容性"] = f"测试时间_{int(time.time())}" + + success = server.save_player_data(test_account, player_data) + if success: + print("✅ 成功保存玩家数据") + + # 验证保存 + reloaded_data = server.load_player_data(test_account) + if reloaded_data and "测试兼容性" in reloaded_data: + print("✅ 保存验证成功") + else: + print("❌ 保存验证失败") + else: + print("❌ 保存玩家数据失败") + else: + print("❌ 加载玩家数据失败") + + except Exception as e: + print(f"❌ 兼容性测试异常: {e}") + import traceback + traceback.print_exc() + +def main(): + """主函数""" + try: + # 基本操作测试 + test_player_data_operations() + + # 兼容性测试 + test_compatibility_with_file_system() + + except KeyboardInterrupt: + print("\n测试被用户中断") + except Exception as e: + print(f"测试过程中发生异常: {e}") + import traceback + traceback.print_exc() + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Server/test_server_pet_functions.py b/Server/test_server_pet_functions.py new file mode 100644 index 0000000..4147b1e --- /dev/null +++ b/Server/test_server_pet_functions.py @@ -0,0 +1,401 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +服务器宠物功能测试脚本 +用于测试TCPGameServer中宠物相关功能是否正常工作 +""" + +import json +import sys +import os +from unittest.mock import Mock, patch + +# 添加当前目录到Python路径 +sys.path.append(os.path.dirname(os.path.abspath(__file__))) + +def test_pet_data_conversion_functions(): + """测试宠物数据转换函数""" + print("=== 测试宠物数据转换函数 ===") + + # 模拟TCPGameServer类的部分方法 + class MockTCPGameServer: + def _convert_patrol_pets_to_full_data(self, patrol_pets): + """模拟巡逻宠物数据转换""" + full_pets = [] + for pet in patrol_pets: + # 使用新的扁平化数据格式 + scene_path = pet.get("pet_image", "") + full_pet = { + "pet_id": pet.get("pet_id", ""), + "pet_name": pet.get("pet_name", ""), + "pet_type": pet.get("pet_type", ""), + "pet_level": pet.get("pet_level", 1), + "pet_current_health": pet.get("pet_current_health", 100), + "pet_max_health": pet.get("pet_max_health", 100), + "pet_attack_damage": pet.get("pet_attack_damage", 10), + "pet_move_speed": pet.get("pet_move_speed", 100), + "scene_path": scene_path + } + full_pets.append(full_pet) + return full_pets + + def _convert_battle_pets_to_full_data(self, battle_pets): + """模拟战斗宠物数据转换""" + return self._convert_patrol_pets_to_full_data(battle_pets) + + def _player_has_pet(self, pet_bag, pet_type): + """检查玩家是否拥有指定类型的宠物""" + for pet in pet_bag: + if pet.get("pet_type", "") == pet_type: + return True + return False + + server = MockTCPGameServer() + + # 测试数据 + test_pets = [ + { + "pet_id": "pet_001", + "pet_name": "小火龙", + "pet_type": "火系", + "pet_level": 5, + "pet_current_health": 80, + "pet_max_health": 100, + "pet_attack_damage": 25, + "pet_move_speed": 150, + "pet_image": "res://Scene/Pet/FireDragon.tscn" + }, + { + "pet_id": "pet_002", + "pet_name": "水精灵", + "pet_type": "水系", + "pet_level": 3, + "pet_current_health": 60, + "pet_max_health": 80, + "pet_attack_damage": 20, + "pet_move_speed": 120, + "pet_image": "res://Scene/Pet/WaterSpirit.tscn" + } + ] + + # 测试巡逻宠物转换 + patrol_pets = server._convert_patrol_pets_to_full_data(test_pets) + print(f"巡逻宠物转换结果: {len(patrol_pets)} 只宠物") + for pet in patrol_pets: + print(f" {pet['pet_name']} (ID: {pet['pet_id']}) - 场景路径: {pet['scene_path']}") + + # 测试战斗宠物转换 + battle_pets = server._convert_battle_pets_to_full_data(test_pets) + print(f"\n战斗宠物转换结果: {len(battle_pets)} 只宠物") + + # 测试宠物类型检查 + has_fire_pet = server._player_has_pet(test_pets, "火系") + has_grass_pet = server._player_has_pet(test_pets, "草系") + print(f"\n玩家是否拥有火系宠物: {has_fire_pet}") + print(f"玩家是否拥有草系宠物: {has_grass_pet}") + + assert has_fire_pet == True + assert has_grass_pet == False + + print("✅ 宠物数据转换函数测试通过") + +def test_pet_feeding_system(): + """测试宠物喂食系统""" + print("\n=== 测试宠物喂食系统 ===") + + class MockTCPGameServer: + def _process_pet_feeding(self, pet_data, food_item): + """模拟宠物喂食处理""" + # 使用新的扁平化数据格式 + exp_gain = food_item.get("经验加成", 10) + intimacy_gain = food_item.get("亲密度加成", 5) + + # 更新宠物数据 + pet_data["pet_experience"] = min( + pet_data.get("pet_experience", 0) + exp_gain, + pet_data.get("pet_max_experience", 100) + ) + pet_data["pet_intimacy"] = min( + pet_data.get("pet_intimacy", 0) + intimacy_gain, + 100 + ) + + return { + "success": True, + "message": f"{pet_data['pet_name']} 获得了 {exp_gain} 经验和 {intimacy_gain} 亲密度", + "pet_data": pet_data + } + + def _apply_level_up_bonus(self, pet_data): + """模拟宠物升级加成""" + level = pet_data.get("pet_level", 1) + + # 使用新的扁平化数据格式 + pet_data["pet_max_health"] = pet_data.get("pet_max_health", 100) + 10 + pet_data["pet_max_armor"] = pet_data.get("pet_max_armor", 0) + 2 + pet_data["pet_attack_damage"] = pet_data.get("pet_attack_damage", 10) + 5 + pet_data["pet_move_speed"] = pet_data.get("pet_move_speed", 100) + 5 + + # 恢复满血 + pet_data["pet_current_health"] = pet_data["pet_max_health"] + + return pet_data + + server = MockTCPGameServer() + + # 测试宠物数据 + pet_data = { + "pet_id": "pet_001", + "pet_name": "小火龙", + "pet_type": "火系", + "pet_level": 5, + "pet_experience": 180, + "pet_max_experience": 200, + "pet_current_health": 80, + "pet_max_health": 100, + "pet_max_armor": 20, + "pet_attack_damage": 25, + "pet_move_speed": 150, + "pet_intimacy": 75 + } + + # 测试食物道具 + food_item = { + "物品名称": "高级宠物食物", + "经验加成": 25, + "亲密度加成": 10 + } + + print(f"喂食前: {pet_data['pet_name']} - 经验: {pet_data['pet_experience']}/{pet_data['pet_max_experience']}, 亲密度: {pet_data['pet_intimacy']}") + + # 执行喂食 + result = server._process_pet_feeding(pet_data, food_item) + + if result["success"]: + updated_pet = result["pet_data"] + print(f"喂食后: {updated_pet['pet_name']} - 经验: {updated_pet['pet_experience']}/{updated_pet['pet_max_experience']}, 亲密度: {updated_pet['pet_intimacy']}") + print(f"消息: {result['message']}") + + # 检查是否需要升级 + if updated_pet["pet_experience"] >= updated_pet["pet_max_experience"]: + print("\n宠物可以升级!") + updated_pet["pet_level"] += 1 + updated_pet["pet_experience"] = 0 + updated_pet["pet_max_experience"] = updated_pet["pet_level"] * 100 + + # 应用升级加成 + updated_pet = server._apply_level_up_bonus(updated_pet) + print(f"升级后: {updated_pet['pet_name']} - 等级: {updated_pet['pet_level']}, 生命值: {updated_pet['pet_current_health']}/{updated_pet['pet_max_health']}, 攻击力: {updated_pet['pet_attack_damage']}") + + print("✅ 宠物喂食系统测试通过") + +def test_pet_item_usage(): + """测试宠物道具使用""" + print("\n=== 测试宠物道具使用 ===") + + class MockTCPGameServer: + def _process_pet_item_use(self, pet_data, item_data): + """模拟宠物道具使用处理""" + item_name = item_data.get("物品名称", "") + + # 使用新的扁平化数据格式获取宠物名称 + pet_name = pet_data.get("pet_name", "未知宠物") + + if "治疗" in item_name: + # 治疗道具 + heal_amount = item_data.get("治疗量", 20) + pet_data["pet_current_health"] = min( + pet_data.get("pet_current_health", 0) + heal_amount, + pet_data.get("pet_max_health", 100) + ) + return { + "success": True, + "message": f"{pet_name} 使用了 {item_name},恢复了 {heal_amount} 生命值" + } + elif "经验" in item_name: + # 经验道具 + exp_gain = item_data.get("经验加成", 50) + pet_data["pet_experience"] = min( + pet_data.get("pet_experience", 0) + exp_gain, + pet_data.get("pet_max_experience", 100) + ) + return { + "success": True, + "message": f"{pet_name} 使用了 {item_name},获得了 {exp_gain} 经验值" + } + else: + return { + "success": False, + "message": f"未知的道具类型: {item_name}" + } + + server = MockTCPGameServer() + + # 测试宠物数据 + pet_data = { + "pet_id": "pet_001", + "pet_name": "小火龙", + "pet_type": "火系", + "pet_level": 3, + "pet_experience": 50, + "pet_max_experience": 150, + "pet_current_health": 40, + "pet_max_health": 80, + "pet_attack_damage": 20, + "pet_intimacy": 60 + } + + # 测试治疗道具 + heal_item = { + "物品名称": "高级治疗药水", + "治疗量": 30 + } + + print(f"使用治疗道具前: {pet_data['pet_name']} - 生命值: {pet_data['pet_current_health']}/{pet_data['pet_max_health']}") + + result = server._process_pet_item_use(pet_data, heal_item) + if result["success"]: + print(f"使用治疗道具后: {pet_data['pet_name']} - 生命值: {pet_data['pet_current_health']}/{pet_data['pet_max_health']}") + print(f"消息: {result['message']}") + + # 测试经验道具 + exp_item = { + "物品名称": "经验药水", + "经验加成": 80 + } + + print(f"\n使用经验道具前: {pet_data['pet_name']} - 经验: {pet_data['pet_experience']}/{pet_data['pet_max_experience']}") + + result = server._process_pet_item_use(pet_data, exp_item) + if result["success"]: + print(f"使用经验道具后: {pet_data['pet_name']} - 经验: {pet_data['pet_experience']}/{pet_data['pet_max_experience']}") + print(f"消息: {result['message']}") + + print("✅ 宠物道具使用测试通过") + +def test_pet_bag_operations(): + """测试宠物背包操作""" + print("\n=== 测试宠物背包操作 ===") + + # 模拟宠物背包数据 + pet_bag = [ + { + "pet_id": "pet_001", + "pet_name": "小火龙", + "pet_type": "火系", + "pet_owner": "player123", + "pet_image": "res://Scene/Pet/FireDragon.tscn", + "pet_level": 5, + "pet_experience": 150, + "pet_max_experience": 200, + "pet_current_health": 80, + "pet_max_health": 100, + "pet_max_armor": 20, + "pet_attack_damage": 25, + "pet_move_speed": 150, + "pet_intimacy": 75 + }, + { + "pet_id": "pet_002", + "pet_name": "水精灵", + "pet_type": "水系", + "pet_owner": "player123", + "pet_image": "res://Scene/Pet/WaterSpirit.tscn", + "pet_level": 3, + "pet_experience": 80, + "pet_max_experience": 150, + "pet_current_health": 60, + "pet_max_health": 80, + "pet_max_armor": 15, + "pet_attack_damage": 20, + "pet_move_speed": 120, + "pet_intimacy": 50 + } + ] + + print(f"宠物背包中有 {len(pet_bag)} 只宠物") + + # 测试遍历宠物背包(模拟TCPGameServer中的for pet in pet_bag循环) + print("\n遍历宠物背包:") + for pet in pet_bag: + # 使用新的扁平化数据格式 + pet_id = pet.get("pet_id", "") + pet_name = pet.get("pet_name", "") + pet_type = pet.get("pet_type", "") + pet_level = pet.get("pet_level", 1) + pet_health = pet.get("pet_current_health", 0) + pet_max_health = pet.get("pet_max_health", 100) + pet_attack = pet.get("pet_attack_damage", 10) + pet_intimacy = pet.get("pet_intimacy", 0) + + print(f" 宠物ID: {pet_id}") + print(f" 名称: {pet_name} ({pet_type})") + print(f" 等级: {pet_level}") + print(f" 生命值: {pet_health}/{pet_max_health}") + print(f" 攻击力: {pet_attack}") + print(f" 亲密度: {pet_intimacy}") + print(" ---") + + # 测试查找特定宠物 + target_pet_id = "pet_002" + found_pet = None + for pet in pet_bag: + if pet.get("pet_id") == target_pet_id: + found_pet = pet + break + + if found_pet: + print(f"\n找到宠物 {target_pet_id}: {found_pet['pet_name']}") + else: + print(f"\n未找到宠物 {target_pet_id}") + + # 测试统计信息 + total_pets = len(pet_bag) + total_level = sum(pet.get("pet_level", 1) for pet in pet_bag) + avg_level = total_level / total_pets if total_pets > 0 else 0 + total_intimacy = sum(pet.get("pet_intimacy", 0) for pet in pet_bag) + avg_intimacy = total_intimacy / total_pets if total_pets > 0 else 0 + + print(f"\n统计信息:") + print(f" 总宠物数: {total_pets}") + print(f" 平均等级: {avg_level:.1f}") + print(f" 平均亲密度: {avg_intimacy:.1f}") + + print("✅ 宠物背包操作测试通过") + +def main(): + """主测试函数""" + print("开始服务器宠物功能测试...\n") + + try: + # 测试宠物数据转换函数 + test_pet_data_conversion_functions() + + # 测试宠物喂食系统 + test_pet_feeding_system() + + # 测试宠物道具使用 + test_pet_item_usage() + + # 测试宠物背包操作 + test_pet_bag_operations() + + print("\n🎉 所有服务器宠物功能测试通过!") + print("\n✅ 确认事项:") + print(" - 宠物数据转换函数正常工作") + print(" - 宠物喂食系统使用新的扁平化数据格式") + print(" - 宠物道具使用系统正确访问宠物名称") + print(" - 宠物背包遍历操作正常") + print(" - 所有宠物相关功能已适配新数据格式") + + except Exception as e: + print(f"\n❌ 测试失败: {str(e)}") + import traceback + traceback.print_exc() + return False + + return True + +if __name__ == "__main__": + success = main() + sys.exit(0 if success else 1) \ No newline at end of file diff --git a/__pycache__/SMYMongoDBAPI.cpython-313.pyc b/__pycache__/SMYMongoDBAPI.cpython-313.pyc deleted file mode 100644 index 767d4e93b372247da0c4604a0b30d491eac6e6b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14409 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%0Dd(F1w~bDB7^w3GOUGvV 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�TRv^6Y zQfcu18hF)^*S2nlL7Tx7;6-g_=E`yj zJ%)e6vvybjuEEhbIvhY;P{aFDk}&OoKeRn)svRDsN6WNR)AZm-J&2-vIP|&G%YldS zYP5tm6+3sNb{io|3x8)O0PxHmSwBG(kD&4jqP!+iUO|>wmk)683&H1e2tvBmAU939 zYG)tm!7C1OI}h<`Kla_uWq%1R_tVRQcZs!s$L4-Rg3W!g7J{L(#`6%b>ItG;KvWCJ z;!5umPvYSHVrr~FT6C66n|kvjJ3k5qYq9a&0006cNkln4>z*a}7Ah-V|(-#G=lTt=IOj%C`{7h)bdb-x^U<*5&M`yE7dU5=G3gog~ zD)-!_y$0QYIMgfoae`dv7%xPe`Md(${B*M=H(&jT1)t8IzC3t1gWQ1XNBzP?J|$6W zs6x-#%cmY_yPq-Wsr@`LpUrS@vsQXmLh$n0nQ)6~3ixA1aM+9QIums^t9Nk6gNf>` z_EEjt$e+z-A6w>`Ahe$e-tm_yc+%4A01vN`metCdMxLp&hdUK}&7SHB9eUqR?htut z_IW~|8S-tH&Mw?4%A|*f$#A5Q8#|!dg?jwe9CUDh9r3ve;{BRn&qe_J_<$~s&_1GM z`}e(~^m@P}tew+7wk|t+`Gka?#Gy4@7_GL@orY(2f&8qn3+3ngweh_Lb=&oH{U7$b zk-deP+EpF=nD4gP**u?%?{CA2IiYaNy5aRf$EySH67AueUjC+aj&vc;mcW7*St*Qm zvz8ZT8-p&h1L(pVB1Q*;M)qR}+yYHxLw)NwuvYug)YOJ~ciV$C`(7_}yjt*xz;BN? z#&KdNijQXn9YW_Z{ygEsE|Tw!05)15nECd;W+6UaKXkuN8^dnb?4fog54XOH?lJ2b ffALD81Hk_Wcer~nB<5JW00000NkvXXu0mjfdtJzu literal 0 HcmV?d00001 diff --git a/assets/子弹图片/01.png.import b/assets/子弹图片/01.png.import new file mode 100644 index 0000000..17fb22d --- /dev/null +++ b/assets/子弹图片/01.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://by01joyt7e4qh" +path="res://.godot/imported/01.png-95d14629d6075888bdfa42cfcf0c603f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/01.png" +dest_files=["res://.godot/imported/01.png-95d14629d6075888bdfa42cfcf0c603f.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/子弹图片/02.png b/assets/子弹图片/02.png new file mode 100644 index 0000000000000000000000000000000000000000..22048fdb745370614e24128b6049447cf0259b83 GIT binary patch literal 8780 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 Q{{R3007*qoM6N<$g2Q~E9RL6T literal 0 HcmV?d00001 diff --git a/assets/子弹图片/03.png.import b/assets/子弹图片/03.png.import new file mode 100644 index 0000000..4c3a75c --- /dev/null +++ b/assets/子弹图片/03.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bf27ywrn16wcv" +path="res://.godot/imported/03.png-dab68a06be5dfaf312394a4d0cee9345.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/03.png" +dest_files=["res://.godot/imported/03.png-dab68a06be5dfaf312394a4d0cee9345.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/子弹图片/04.png b/assets/子弹图片/04.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a8e2639652ca7f90191bb1184e010bed84fd28 GIT binary patch literal 9216 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 FV1i$mu=xN0 literal 0 HcmV?d00001 diff --git a/assets/子弹图片/05.png.import b/assets/子弹图片/05.png.import new file mode 100644 index 0000000..cf1882c --- /dev/null +++ b/assets/子弹图片/05.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c20yr5fi7byd" +path="res://.godot/imported/05.png-d36e682cb08cded77cc6343a325c052f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/05.png" +dest_files=["res://.godot/imported/05.png-d36e682cb08cded77cc6343a325c052f.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/子弹图片/06.png b/assets/子弹图片/06.png new file mode 100644 index 0000000000000000000000000000000000000000..8ced12caeaad44f4ad490934561485f73ff93be0 GIT binary patch literal 9095 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 literal 0 HcmV?d00001 diff --git a/assets/子弹图片/09.png.import b/assets/子弹图片/09.png.import new file mode 100644 index 0000000..52d46d2 --- /dev/null +++ b/assets/子弹图片/09.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cleyjr7css15h" +path="res://.godot/imported/09.png-9238e10e67248408a3bf17849b66aceb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/09.png" +dest_files=["res://.godot/imported/09.png-9238e10e67248408a3bf17849b66aceb.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/子弹图片/21.png b/assets/子弹图片/21.png new file mode 100644 index 0000000000000000000000000000000000000000..4c382a8cebd13c97701a0ce89d4235ba3a919b3b GIT binary patch literal 13364 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 KMNUMnLSTYaTS=_| literal 0 HcmV?d00001 diff --git a/assets/子弹图片/21.png.import b/assets/子弹图片/21.png.import new file mode 100644 index 0000000..a199dab --- /dev/null +++ b/assets/子弹图片/21.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csmi7hdbgjqjv" +path="res://.godot/imported/21.png-5303d7aebe0a4b42c955d30435004edf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/21.png" +dest_files=["res://.godot/imported/21.png-5303d7aebe0a4b42c955d30435004edf.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/子弹图片/22.png b/assets/子弹图片/22.png new file mode 100644 index 0000000000000000000000000000000000000000..8d15d48d9f467fb77a565bb2684d76f16fd8d202 GIT binary patch literal 12781 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 literal 0 HcmV?d00001 diff --git a/assets/子弹图片/22.png.import b/assets/子弹图片/22.png.import new file mode 100644 index 0000000..c983218 --- /dev/null +++ b/assets/子弹图片/22.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bknpmcntsy5lb" +path="res://.godot/imported/22.png-570b7d75cb7a42beedccaf1ee60b755d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/22.png" +dest_files=["res://.godot/imported/22.png-570b7d75cb7a42beedccaf1ee60b755d.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/子弹图片/23.png b/assets/子弹图片/23.png new file mode 100644 index 0000000000000000000000000000000000000000..6b5d98da471b3c5c102b866bfcb2612d7b71dfc5 GIT binary patch literal 14550 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 AW&i*H literal 0 HcmV?d00001 diff --git a/assets/子弹图片/23.png.import b/assets/子弹图片/23.png.import new file mode 100644 index 0000000..753c32a --- /dev/null +++ b/assets/子弹图片/23.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://htnv7xp8fpu4" +path="res://.godot/imported/23.png-211603348421cbb9dc3c19157b492009.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/23.png" +dest_files=["res://.godot/imported/23.png-211603348421cbb9dc3c19157b492009.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/子弹图片/24.png b/assets/子弹图片/24.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e34934fc8e02c2552134f107d05007e3fd4dfb GIT binary patch literal 12939 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 KMNUMnLSTZq08Om` literal 0 HcmV?d00001 diff --git a/assets/子弹图片/25.png.import b/assets/子弹图片/25.png.import new file mode 100644 index 0000000..93add2a --- /dev/null +++ b/assets/子弹图片/25.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://omdy6jm6mbbn" +path="res://.godot/imported/25.png-5fb7f030a337625c846241a4f9950920.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/25.png" +dest_files=["res://.godot/imported/25.png-5fb7f030a337625c846241a4f9950920.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/子弹图片/26.png b/assets/子弹图片/26.png new file mode 100644 index 0000000000000000000000000000000000000000..6c92bf9dc2e0679afabc8dd57d004a3d5b89109f GIT binary patch literal 10287 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 Hu0mjfeza?Z literal 0 HcmV?d00001 diff --git a/assets/子弹图片/30.png.import b/assets/子弹图片/30.png.import new file mode 100644 index 0000000..aa09651 --- /dev/null +++ b/assets/子弹图片/30.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bq4yl28vrqg0n" +path="res://.godot/imported/30.png-6d3aacaba3ae939e0d65327529fda88c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/30.png" +dest_files=["res://.godot/imported/30.png-6d3aacaba3ae939e0d65327529fda88c.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/子弹图片/31.png b/assets/子弹图片/31.png new file mode 100644 index 0000000000000000000000000000000000000000..157753006461d2ecbd9c753a414a7fdbfe906e17 GIT binary patch literal 52470 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 bjfnm~O0&cG_iU_700000NkvXXu0mjfAtX98 literal 0 HcmV?d00001 diff --git a/assets/子弹图片/31.png.import b/assets/子弹图片/31.png.import new file mode 100644 index 0000000..b31d604 --- /dev/null +++ b/assets/子弹图片/31.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pcgkxxyh2vtq" +path="res://.godot/imported/31.png-150a0be9a006adebb26ac0942b5f1c58.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/31.png" +dest_files=["res://.godot/imported/31.png-150a0be9a006adebb26ac0942b5f1c58.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/子弹图片/32.png b/assets/子弹图片/32.png new file mode 100644 index 0000000000000000000000000000000000000000..a57e68652e8be557b2eba9b33a5a1afefad3be6c GIT binary patch literal 53187 zcmV(`K-0g8P)&Sj;Q*_y5CNqW)${~3Cb$#gMkrCr-OyJx0nrmHG5f`ANg zcfjFvkc`O8>ONvwR7Q{>0D|Dh&o6Mt|K{{R!TlS);@tbTaf`V5^F4Zj=J%)rwlqL8 zN07f`D~nK%rCdJQa|ivxR?DbwXxpL|)G_(SB`^TO#CxzFL!2N$Fu!NOycef(PRQq# z^Fuv1K`b9?G_9^GsP zlA{r>5MhComU1k@1(tNJ{iE{v?^4UPXV+FdIgNy_p+b%g$jNIih=*ODZh2(vE;%px>qc8nhGA_+tiHNCb$9fN_SY0H1){0ul4? z0GJS>)RQ8$hxt2{9?-qkFN6j-Sg&X2#W#4x+Pi&Zqci;4K+TkKJ9eUuYkS@Het7dr zF#JB->hkf{0XfVkhk)bnxdjN<6SQMmh~0j#Pos86Oiq2Fw!*fCrq_bt(wPRIgc>VT23jHsp9r*F^iT<+G#<0b!!+%>YSk zk^nLk)=1D2k?(L}jq6#G2B5Yji=@p`z@c86o-Ha@}h+mJpWb!@i)s1ZwJD?H|G%~z3(hta)0t_ z_Gf`m3(fYNrcdfy@&LH8KCBNv*MXowr!gROm|D~Q2{3B?pJH708=7-fw{cSTz*LW)h8wadkjQhLwrGPfE1TWo9FuMo5?% zXm%_*vp%@}2JQ?tyv$9Cr#A77mM&WL=0>TqacrM@Nng|S=!6RQoXPDtFaQzW- zUDv`u170AcDdlq(c!8zp5ig}b5n}^E)>x9*jP=@!ZnJxiQ+Lm|XQJl$>(}S;P0!h6 zzG-0I5u0n{Twn5`_1E5hbIkA<5RO=&FG6mgP1~`XvR3$y;ni_OgNCOo0l=`|1}z+qitHCTwK+S?(u zE)lA3GS{0hsU9Z=x1|Dhf6KCv{89i>MoX-{(vOMzHRA)!_*kzei`+4>E|7JQB6R}6%draA}Yr!{?Z5e1t64-`WdTEvV8E$ zK=@Jw_H3ldqB#O4VuzuCWd=ShVl(L`V-efMu%ei!%M!gg*JDsG-U>vGwUFMCH81Sh z;2IEZNgs~84yQx#`HF48RGsZN0fr-XwZ#gz*x zxiFKH_N9Eg3$ZY^dM9|02~=mrr(8&Br13?RZSVdXe_XdV~`ZWWJE*YFL=)t~1 zBT7$-xJ=?_(ZS7iUtmK;GgxF1m4LEcUv|%VP*>l43Q3nI0BDU1y~|HwTa`gZYO9FU zBAfC|0If9qp6z z*LCXeO*~^Ar5Grj>+Qd{wm`rT&J|n=D=Yqo0)!+k3nLWfCJ*t90uqUtk+fvRWqa3} zQ*|gX*o++_dS~VZj58A(d_;UF1Ik%hxlg6u>PRj+OJy4sQDQ)p2@n&%q`OHP&DE~SKtHdv!6OM-tge3ooBG=^ePUYu-GV*+ zd%N7a?DuAfzX}+BA0QlqVEgXB6-SN;I0OXS!WanGtkCvVmvycS8_+cn!d>fcUteW% zU7xD>SXOPMdd}LtgKMgwkpX4KD*mDo)v<}mVzCvVoZ+Ebp;udIteC)A8D>_D6_lZa z`bj=~p|qE<`3%avkvU$(jaFvdkA%Zom)vDbF>|Ur7@I^pv~;x{`rdSH>xvy9T4u- zHv&Q5nt4~{KCti-G zuQW0A^Z=OJF?B`Nr3SUJMD&c*YFpuvb$S_W8WVef8P3XpBJ73Q5>OJI9MwIecC^+) z*)=_<3`k-ik$XuZxICs!l^~$pEXpUvXdh76c6H$?Y%Uc?>XD!Han8(m=4V z$hk6K0Yp_9buftrQ`(Wgp@JlhX;eDhe%{&n0|p3tR@Tqt#3DJu8WQ(s{hIH=2BFyB z`t!agL%ahFchT$knFoQ;|LrlveGu%*U|+U1|~`Y$@(6#$ErJC5otA0hEBUvFZwj z7}y{}eHR19nl(cinGpE zf}S}%nb`G5(};HeEGYIfJGt|GJ?pnw-ce!uH6`9-yAcfU2f}q#$Lrc=g%$`0ztKNF zdee5tFs=5tl1-{jESSs38Nq{glkyk|Y++VVG=VKX;AIY^w^^3qbG3z52n@|93s$#k5SxGn8KAGW8m^vT~ z41S?}0y2|MOKK{RVp|qaEV@o%%(0v4dYTr;%*j z_J1#Ee0MR~2eNxW)dLTEY##{Mpn0U1xB|d+Is3oQ1`)Jspa)9*cLjQ)gX)-}UP~K< zX%V|*FfKDw6@_&m1gdc%C+I}1vW=}?@`ts) z;{OMaK%5ptV> z>4kxYUX&9&U~wl(Q<~DLfbyKa!X2+{$~v0V3z%VB2GbH$a+G^mTxE?CcxB@OA)O zpK*Jz1+NZt%lJU3foIL!{1#;M?8Vz9`#$t+P_BL5`&GI6T~=sl5Syx~+?Kf^KmKQI z{(21%+q<5)Na&-=)RiD|EwSp{5~mWijTvaZ<@LxV4#lYLMJx~4~%(igZy(nV(A%g*2VQ;az!q{BD3;y2!Z zLiTG+*8;4e_$wB77=#LlG-;BOM1q+|?G8beZW0IMkd;iS1Fu$Ib4RIDgWL#Ij_w{zGi06DqCT)GOi`)1G{UdYG%>n zD)5!e-0iK&y?c$^NjA_7*x^widQ;)nRPlOI**>@Zb`T721EaSBLbskneOfy@%YI*% z2df*uZpVYkWJ)57YM>s*HFHh;_U*4#Gb|efK}UQEDrl-`;^xj0YC*N@A7In*RlOMj zgDkO=_9**3+VcD}H-oSrwl@UO`g8r}Q1m$`5vLAt&Wnow2t73f0tV z&L~KL$Wf;$0?nzi>zP4%E`}Te!NV$S1P(UZ}pmOAQfsUot(`Nl5A060$>8e@tsjgI3DICp0xXT5HFdq`aO?ft>B?vNz~^ zm7@cS{#i7EeDS$~=?FS|U0>^;x3xER$5K&PURy~LSfs6tu(KvZUGv+Rp_h)6G^= zX~W)(0(=2VP=pgcA^oKQ2`2%q^005kSJ~eJi@q}I;TQn!-@Jp{iKj}wwmcr$urd`j z1oOI_egKzZY0ivLmM>lc8Clp$L#0bZnags<4w4NEo zk1=bbr_}r#MW4H2wJlEHS@Q@jkZfvh+rj`bY3;UVhkn@p^)~@;Tmho@eS7KOcR@h6 z&39ymZ-RtQZHCo3VAUH*d{)@Ax#k$W=AUT559&F#44D6Q+wEN+SCM4;RGgu6rRi3f zz*K$Wv|}*Jsth5<0;)JyBT3WAF?iOfF-`on$T@qB>fl@ZCJX9W?O6sUf8IwzXIfOG_ zDd0oGm=jn9h%rJ83oP*kB3`Oxy+qJ1zLS^Ym?NOrHYI&ja0^v;*uMAcy2XMlbF#B8 z8<}WpXuKGQK2UDe=>y^WLnQ8j;VWk1&8Ln}@Wkdd5c(pr7J55SQ~?jPb8;8{NWQJ& z1Y(^~NwwdL+_B|Qj}<#JX!IngCHfGi&r zfE4hfV^~DZNsVV>R*?-HDN!_>JPMa=O-+y8mFkr}OUW<%Ld)HXOUk;&`2zVZLwKPm!$7*;)HJC${4BQWsUXM8lEj zL(MK-;wD1k@A9gN3by2q>HR_*J>4O=;`DYDY)!C_LfiLaiW^{f`@DIJnKlq+yAm!C zVh?t`K?7Id24FvO)L4VDucJ45g!-$oJy7-Po0#fyI?F_ZSyQZac>J5Q68Fo~w8$%A z^;^(^x#ji1hw4*Tj278B8y@QZ8hbE{$VijIv$A&Lr#k*ntf^zcG!>)ESF%lj?W$0n+`8wnP&FVGuc3my_^R zT8B5*HEL(&K1L!|V3akxlZiGXAc)E;dt%*STka;SNosN=8G97R>-rHV#zB72Tjh>9XGT$F|_uK9Ii7ZNImVJe%BKBV6bN0DRC5Qw(LJG02 z#HjNubuw+D?0?XS!`QiIOHq+ZkgLF+)1g(;w&$!lV;j|J6|uMUfV${NT;AW_8zvnv z{N8g2%{MLTf%=ZHE+qh__iXeZbqUShd?)QzGMHM|KuC_g{07Ay95o>JHEWldmTI%q zfY!}sQo6oV6L)JEea#FhV1nr8q#RjrADI!JS4-S>Z%}^`Z@F!Y0{h#q1$?(|E`S%t zouIt5GIKwNPqY*-YQ1rL21MPGB%D$c#CKy!oXojN{=L^z*gfIJ2eL5vr_A6n;gUk2wanSDB3oY9J=Jsq z{1+o;cO8&$WmO!OhFCR&Nm-Yr2in*o(u@Eit~+Wj0F<^dTd(&3aX+)3)1vzMp0M~n zV)CwH$g)BG%@>6`X1Ee(<&D{df~59(?Y5TC>(lEDQ;IH*(HW{B^ZBZam%0mE&Mcci2S!k!Ik#%1~2c+(au zMf1y&rhx&bgFmdsj!vi8=>XNHKG9$f*u5T$|}M5LouA>IZ~2M z;f25uB^f?&%tOikS1iuN4uve_1Xg)TASN}ZQ&szEvAU^rVg*1t?gx@xUy?ikEt4Ol zSdW6@k85(Wr4shV>i62-o*53O#{EEO1G9QHCUv{|efD?L-)Rph&EQgZfZzoqNmeVX%BKZgmf=_6e5TlV`*Wd%@@{4rOWqdB>h=#q0tvBDOwNJ}Fj z(Gol{&LO{)**~Ldp|VW?C^b6 zhpz_1eO9=|<<_9m0bv)oa(n)+j|%jeoUn=92%r-knwZ_FeWT>4fqB)U6(54J1_#ss zvVH@DnhVv*8r$j-`CX$&*T~B)SOcn+B3T4}3P0gf_&tZOpX*v#M>lw!zV`$Ay|>qb zmVFoAdhH_}%bSVD-o8@-#1HV2ej&Ff1%z{npiNo!T22+3w~_NP7vVQ$KnyCn4JE~g z9GRO#hourXF;*#vRskw@D8Pte)zubFyP}^6;cccPt1%BVz;{Nwo$U>op%+9<^??uHJJFB#^9_z68C8cHsMT*pX4j+qH z{D7a~A$-RCn;79lPR;&M-2;Ss$Mp7Epm?usukO*C+zJ@F>{~v$9TJqdiKG|C1urRb zB%uOU7?s7CgTNNYcI6XT+y+xhO7dAnFRBs`JK?a)4Ro(={rbnc4^@{Fi{((yY2_Ow zSr6$Ecbw5My$5W*3Jh`h!z(kIi++if&Tw_?NL}k1`|lorp@ClqO-ytfOB(!J9N6;< z)WmE$#_DKomfO_;r^Qgxat&w4+^i22Ak1rh&qZH2ZCQ%9wzmSJTj%L-T~z;7UJxbN z1P8sP^~o))TFtu*6r1vzWTjH#oG;baMdDi%fTWPhJWCvoEy+u|e=_YIw$!UvIk`40|Bl7LT{YXA34C_`&KHcsImv3%mXq1BrlA7p!0{DYeB! zEehzK*iOD+sD`G&Ahn&k(yf1?Uqu2OH3rTqC~4LaigoxiW?kU}ek#FAcYtvJE#mLL zb*3Jf-M=Le{H^q*j$1Z%E%3y-m=Ve6a8AXT7AP%1wiI7dQ^QCkp^`E{txS<*`moX! zUYjClBYK#+=#W<)OAkckF+8#XwYmXgb4L95r%&7X;f}!#}tbNhxHrd&_Fv3S| zEry5iLt%s&2+v_2E~9fgxVQf;#KNr^|GmKHNWZ^FU)Gf9fD$bSkiFtZnh)VzqGyM6 zN*Ng2dis^En5SGSF%Qdfykb;ov1(c~_7hk~s292PXEkVZo?%}1yb9@6S)=@XEgS65 zeJfDB84OoIc=J^9fv{(qwmho8s(i=Ne0FHTv+7B@a9P?~yaroa?;2qHeyZ<+a|%$K zz7ctOsl+Xmb;R{AuPDg?m{%o;tIVlbi=Xg;_nnv#ZVvkK{aZENI)gnBxOLk*$J6P( z_qG-v?z^r{KqOZiTE9$=*X2^PT`ozuua=Tkr&2`@pLVIq^nITmdIA!*1Y7c&mLy=9 z)V|s^`wUyPQ+tLgE3C#8X?bi}-koF>Ts?dA{o74ocnk=)pQSMnuFvx|cVb`x13shn zTm2POyHNO3T~Q+EwwteA19bg%0;sn1>J&HHf$BF8VOv++k`z(&7}{TTgDe)4%Zz*` zIFJ1Y{ec|~)UoZ}7xArtb!&h2%J_KjHvM_cm}~-K_68_nVM~@l4)~j9%n@&Ld_&2& z7fN((&b}8ZhGY?u3m|$`3jyHY#bUg0Z&I}?ixaheHrA9tvB7#pu|6T5xV*l6G$nV2 z2UQ=G@#Zyv_{M&QK4+3WdqB8lH0f$Il;29V001BWNklxlJRX{}8Z0EAvo=;{hn z6I*%PrX78o-HMVDfYs_Dv1?EM_CUx^)f}~?_z#90VBv?dOzR=?Foh#Hg@YP;UpjE_Cd0`||a~YDwNH615y_y2oDR7wa*B z-PlU)_|_e8${!jwzovU8)vB$Zvl3D?QJ2)ooG;nZ+ZTE)f&Hi_w@=F3nc*QI90A|x zH*`SQvnPGbYemui!QXWh>0V53mnI%ok#gWF6)$bt6rwHGs8VwVY<-b>W%=CHEvK8< zYCN;0SO76QPiGKhFf2g$SRAbHa+~?rxV?u6``U5ZI`3BC+Y^m9aU$yxPi5Wu#{zam zM_AS{Q?6@q%Ab(+i42Ccu35j36Tkc^xzxG~jWvoOn+#mpb7}4=Ut}P(!2XbwUX#f{i29AzN>U}kipaE2zYDg^|Ax4M$*L^0cA0<$n8=blb zSsi|>#Ua#L=2qdla(W+GbKJ!zYz7p`AUBuLTWd@q8B(^hn=c%L4B;_Plo7Zh4lEP$A+$EH2ZJ4@KXdb2MM@YofKxC$T&;ATj|ct5pct zVvSs*qto~eAGv_k0j757MkOv|=T-yt$oGQ0@%C@h#VO6zJabX?v^s56XtLWr-nTUZ4C>bP~UTKn4rsx++Y2fkr8R9E{RFkl5elY|{{u0dI4qqp?Awh^kB zeC9ZW!~$oIL@ll}5`AXiM)+F*!nfGQdY17vI_F*=jDHPdGz7>Dh&cyy3GQ1G)}PbF zfjy?w0I}s*=J}jbjcbU-`Jar?IrUUr0byH{FV7uxIz;BCZ`{7uL*A4=gCy^hb1o$Y4rHb=(fGeiDX1N&q5>lwIG;t=BSm&o3z#-}3^uSLIIqM-& zd0!+mSrRsH9vtc+-OE0-`<89qsNQL9>vt=sL1%a7)kjDNi(I$Ui^_dF0%E{Mi%w)l zeZ0RCROgCvS-_AL%5_-k+Tt3KntcR0iF=DQBYMLY>3XVxS!F+M#d1uc`Ag6Rwk9J5 zWDqOhn?JqxR<}1z_Ue5rk^J8C-h*bmw$5Jae8o0#4wXry38WP%c`g;;E3}WCuWO|B zq^!yXlp^aD2gBU4K?_@H_08IyS3tPBF(WJTEf{tGFjg^H%Ng!a4CLkQ+1ZQ6XnwE1 zDjrl73#sc}GW7^kYrtn+Xr^wTb`8=-5iIZ5HaRF}9L0nq0PGSsDa$a{zzR06u>i7& z#Vu$n)p1flm?Kn+Zt+~h_fxX``Yb$FxaD_v~Bl2^nki<+$nQtn+iKT z7Zu9|A9J+xG~rhhR;xjn)_W&TG^)Expcq%;Y7c=UP_({_`U2O$xV9=E9X`9=1E6hN z=?r}!T#LhfISY>7|LUgHKfVY}dz1Q>)G*r8Hi45Dnk#hRWZ}@36-Vnfkb(aZ*tK&f z7Dpxuz6z4JnEryfj%qzd3dwcm>~$p`A^uR0=P1W#WQh0S;2swCR?O@z8P@j_<89rq zVYshp7hYjm-reTnazks@FZi`dBW}}JU+O8fWJ{o)3RE#T#h@bf_^eQC4ei$K#|;p< z6zcZ3VR5*2bWq`bzT7zjTXV5IZ#wa(S=Esoy$P~XzV zdoV#bsIUB9o7eWeW7$2tMO5acoijX^Wc2wZy`*PF99X}dSzpm3PQ_qS=5b2UNkGN8 zGBF@hDo{v~pA9d1weFZ_AC~8#`5$V!v##m&@7`N#APqg>0A!9f2kOEs(0L$efzsBc zw+2rhHw1vy5<6`jCegTau|ex=DBp#$x84Nh|My^AX4-jV=-_moDs!C{)muI1>QW<& zkeJ{Dh3dZ_1h>i@y|ed-(YMalw-DcNHHf@5qkYTm&H5F(Wb}_>jDvt**v}9tC~VP- zPbDh~8B+54=9t9DBEVQYA_{54x@Mn7GHyU&syi`RU~AtsEb4u|K2ckheRw^x9liNY zOnwy*TH)Eko+oB|B|H(lorm?Hwis(&USohk1xo1ttb6?;gNSTyJ*x(&AQum$BT@$R49 z)b(snD}lYF+-+|&^hXByMyKl|&zsNQJh9mVXkRwff%2JT(|L$dLbjm6u}c82MdB8q zp)KR+MPr+}lttnV%EzGXYNZhP$Ty~Ntr zu-PL%A9_p9{x<`?(KbnZ%#uR%RF`(n@Lbm}mqY;R%K7v}7f8<7$j*pK`5gj3M1+`1Bd9(EV1ba&nUo3K^fjWpYgq5 z@x6iYD0_YD>+!(#HRAmdu>PK7t8odY65_3_NWp+pD*EmuK8H*1OkH$`;&=`0d>xA~ zVr0>qSRu*1%|Ux&_p?}m&ALh#ki%v;q4sR}6P+ui_Z)%YjT+oO5gj+!=+@hC_V1bZ zQaiTopRoo+dwC7W`Z6m9YDC`Nnrzvs)DtROvvszma$3(fJ529Xa~L=4GSpO_0(i6< z;A9x%X)h@2YsKRCI(Ls%y{69Zbz+wp*|~0Kf76Vson)O_1kn0@K8tKCN%|Edx?iZQWxbO%C3FwU$8QD3 z#lU0Ibk=Ax4{dTO5NxhCG;(D*R4JRm?*q;#S?!*9bqR8`k-LZYmWS`H*veb6wp-7A z51`q5LPnzQk+N^m{=H>aCswO5&UINHh47-6`HUngN4QYx(G=U0h7*F)9}@5-cG8w0 ztt$2m#%>h}47g(bR>2AsWTFz8dop&H;baF8y(6=2RJQxLq5u5#46tW|c3&^9DloJ_ zXks5iyOBmG2<7HhpzDIL_TsV8?bYu!MJG^*En$zcWKQ0)0){#C*10gjhbl6^k`2BE zF#MW8^xoHZ3(LC|koM~P&22QRn@UFvdJ9}wmpB(NoA3n|II&2)faFvrF?g<6M(dTu z?Z#53rYrQI%M+fVGDO7~cW=~hjhL*N);%vpM{>aRkNUq_I@cLA>NmZz zq?Og+*SFr1Xt%dxs6dDq)cLJ7y=+b_z9Q0!&tQu^I90<5D&P%8PxDlw%~a#awt-}C zFpnNTa?X)D-iwLd+s<18spbNAKypn+3WJ6pJ#li_H_p90glMT7KzcHmJar z5=WJ^0N3srl#&Gm+2TyPMK+8f>*1w@JsBl^GI#YVR->x?CyU`yGVzgNRaU3)xr;kpDw z&-ek$5<3RMhk#ptgU5#P_1pJgok!}t7m#leZTIwe=_2gUbF?NrqTD4$lSG@FLw_2GV4q5Tr{YlfJC z?0bs5j<~HP5jIFlXzN!ft6rE*mK2`nlH)js?cZEQ;tl34$Bx$d8fNxZ=N;+OTb{EA zoJR~FBjd$Zxg%q}_Y@yxh@*0KfAL$5XGq}#q*!F8oNPH!8quWyp;(wpBC?!4k8>r9 ze__nYnmJSr)<7k)W?33*&t~0c{17cLjs@fXQm~R6P)={1t@=&GW!dJw%d)lkveqK@ zojtZC?M+l$Yr`m@r9rM`lhfj|;f|(X$$X%KY10#G28ye8Bs5nQj|=c+#(1hNi1;jG za&}?J43d&KeT2u?8AqfJCc7~Z-ouEFo_}C~ zU)A=l+pYDymUZ6B&_?@j1?atYy*?gcghv4J5J=Y0Uhu+!UdghYfpAHA|5Z6-U&)Y? z1Q6*7379aJ=uM%^rve=3Ni5NlYPUQ&>T&J;2mN8w6v?v4{&Lsv4-LA<1OxxbY(?_i-3=t(twde?60fhH}-D~T8O_?Kllv~@_Dz^nZx3Z_bHrFI%`@CC4+q=Q- z;8yFJOIp#XB#4?!{>2p}#@JfxN+VH!H=DuW`(6NQ{PFF~bE6%awzDDS0t z!uqL4Q0pI)!#G<#hXxP9xb*Z}#|+o9=hf9=d}pGx$!{z#WnO+tvyeD6s4D!_tm z)gH0K-JicA{N=_kAeJ}m08>QhP>nj-m4>Xw84ORaSxxd9*7w%+*@yNm`nAQtj@G#c zJR^X4&1UI{-HwX)9te8Zvjv!U0cd_?G9X^F0WnP+-Fiw0%^0ZN&M3cfEb%-k5Nv&R zi~U$jOL=WGEz1jhjx68P>Z;g9vu+Yss#a(L%T?cH1&b1weRik;ac7z|q+OL6y1uP} zZd^h-UiWt(*n^M;&Q2Fl@-g&05js!?b)4&4% zXn$M+Mai+8U1;V?3;?e+;tg@WY>B^4S6VU^J5ts=cXQt<04(tVB7V$ZhznfO zf-ex#b0q`WBchzdp}i6tRm$J8FR_Tt21<^Hm=dwS{9MHn)M2R#!`3NY3{ifFuVQ12 zjV&sWbgj_VN}U|h_<)t!*}XEL!0_&4{j;_XTTNZh`8rrL5vY4`Tepnh=RaOEPH0){ zP%XRTNY*vrs{~>|y;SK`e63nk8FIeP?lV$Gk~QgNc>(UuUgw?i)=cr1`rZPdwm{=G z=igG+V^#OmX94kOTU!PaZ~xYLZw`nLCC>2&vKq%LMqE+~nbE0ik1)fvM8cjrW|*pJ zC8}!a$&1A;ho3`UnUdsL*KDrp29xO^GV|*f@>xKHK^#SNVDi}3m!G9se`^5Pm+Q-~ z#bJ9d_*3Hsf?`|(QWj7JJS`BmpsjuW6X3Gg6vNo~VyFA-0y3Oxz}31Oj{`H*waOIF z5G6KTTf0n|?ryLk?+o;Cdo2)-fN!guZ1;eRSLdyI7<;bQhrKaADzbX*jR111oh^Xe z>&JTnA{{^i#3lUz5wDO!#1u2Y*2>)ReIFmcPj|$;_cjd1aSK27VB#z2KAV;G-zu5VF!$` zUNu6xJ^EY0%_N4eHRmwqFs*{GPAme8I7~qpB=Yn_3(^2B6c-Dw~@Y(Gsm>&T!+3qpE?6J$;a~`rYHhdP( zYP_b$bV?uKlD@ztNg}DaKwxpkX4e~PrQ|}vCL*)xq{cdI)@7_q_E=!8DFk56`uGx> zG1Fm>l?iH5dUVM*j%sH>S+T!S4Vu;2b2KQfpVP(#`z3MM{R=B&30AR}zzwR-Z_?n2 z(yq7-=(L>@cAsJqG9#2|H0(58&#B zx#Kl_xR0aXuVJTKY*+t%&E33(1s<($tF9xAaQJ&F4DkdIekl6Em=?^U^K<-b%1iW$ zRXK~vF}s;vJO4v0Uc6*{Nd%S%DWuL9u_TVt&Gz`vZl=`>qGE@#*D%Fy-Ex1KJzKnG zlo7A3Nqn z0e7{V4Jw#{Fa8ACkdgy7D5?jj+NV zsv0I}HrV!Q(6j~+yH84v*Et`8MOA2JP1ZEkXNkSxLhq^H5Lab;QC5K_LN`cIBh^^o zM3r}BQljuWK~po7NJMIKg~9T7f);|GvWV%hU2};(L%ED8mFK52NC%R+9|gE0V0r8D zBlX@2h_IupyY(Tw_ZnVP-d^LLf#a4$MLLv!ox z#unVQ2e_m_tFL~<49VEh*R=*f=m8crrwdNFuI67DdLs(uGFBqAuGQIz-SP|C-U+uv#R8Rw>7+o1* zOul1nAgQ7+GeXkqNg^gm&8e5m1r=he*9nSijDTRvQIajj4-{~rKQObZ2GXZ_no#~Km^evh6y142pB@4eOG)* z*PLQB8&E<73I8=E*5#o%S1*Q$Oe`cva>XeCX@-we4d~l}b%Jr6fds~}TG^8wCv5Lh zdsewI?8pX`#>8a*Iuv93rT|eTZXy7ZU)Yt_OW=9~i`ETVqltB=nY!aa{G!r0Yzqpr<$|mfko#Jdt&je%E%kXoIAUufK(_Vm z_2CxKL#Izi&)eH{y?bqVEKxQOD7RRhJL{xgkJ`v{EHYPFEzq#3j9O zpoh6wm?^r=R92=G>5Ld7hC=yTPG$+{5W02C+%zhzsmD~8q@GpyF6?f$)<2^9AIz`u z(ADclckcB7+28vHghr(8K#;#9sB&#f-C0KOXMGD>N=^zIRC6V>$P1+FlO=UlY!;Af zaR}Rf7L}0z@PYG{3?o$E3W7(@*(-MhSiR#TK-mJSqab+%5RUX!*EcFZVyIikxBBGO zp^uLM>&Uhz8hdScKzoEujzIQRV)tCc=In2nf$#~h_?(vX3|IU{R^}4%=DLbtLx7lC zcD>?yV{;Kf5uK&WSb1OKl%l*+tPX=1YV1I@Jj*sx&geaGWH4qMGV9PBUqz2`{&q%` zo++;PufKN|WRuH87M<6>*dkDi!KCFi4oW9@s=kKgM@Xwm#BGL{A{I;A_~Q2lXS4h* z?C#!uN0{KffVlOre(`Cc;825yt*t9j_SCTO{%BgWrwzJdwR&N{_LZGsW%|hC8#HME4y$$pjZOGMs*?q z;gth4#1iOrDVdfQe8K+(}SyI_SQCHa$7)Z`?@7sdO+pX z0Rtej+Y!B?*Va)0yye(%dn{fvpGbEYKH>vh^1_p1TnVXow}v#bN)49L^=>mghPf&NLngTcEa)f2=8GlM}hD)zqcOtqb$k; zt0U)*>hpddt#|Li)Z0;pI@)*SdvgA2Ks=;#yQBX{UOE<-xB6krdB43rb!D?LO(THq#747RWHFv8pX~O;yY=`U5Z(eDM}Tn;5Ow)29h!H(_i)?`Fy3zsFqUoE zYu#g3ULU;kMyzNwZeYO2exfM@W}J_1-pgmJFKG68FOjV}w_ZA%W1EeNA0~t;{zT7H z`YS%iQ!39}m^o<^r4%T7MJ6_sp#G)!BL=+YSlF2@rYNa3szq4`i=Db&_86Oe85u;Y zLv}wjI*@|~ynR3fyByEEt39+e{U5FvV*httM=P)DxgF+ zbX7&2kp%CoOC;aHWja^?iYG#Kw-CtIxCb>;cpku-Ri<%+TwrWiB2Y z1?M3j_0{W}?WbjK_8fb@Z8z*(i`@ha1;~waT(=!%)*dKrsVQtfy)xc*6c7*XpNbwa zXVCj0FWDpHDXPB&OIfY5kf9|}wCv0lOVk^E1$9{r3PrEmGY|GCx;a`95>tgz#nc*!U?_IAQw=Iyf zV>)W@h+5$;K+O8~$8Z8D0b=u>hzXZOQE#G>+(@ds!ZR%FfW64@l?XTsrnIn01bDS^ zd4j132Zbn^`k3lhJ0h-2fR^w`9*_jr%Z%2S)>+crp@%DRv z_v#tdH9B9mbf9fr){288CL{ae#`zWqN7reYp#^0$b$MW@kL!A^IO>g~eYwcr=+tp! z3`hI*`LAJrw*u=fAkGYk2tQB&2aF{aVvcS@OY>&-sixuJsMwwOOHs2`3%ML*GDwFCz zxZc+SvCb|Ko|y4zz$;GG;bX@nNmM?KEXP~$xCfoy#g6umKxGdMM%Rrx$pEhhn!v2kj$Ls2fDY@meX`?d%h<8C zPwl-RIRd_;?XLEhU?yQMDFjLuy-3k*vXwbMgBiIpP)ZIJrgrR8NZ=-6z6k7!$_*jS zDV6-pvHBq9;<2`lj^;v4+AS3+csZE)o0n#E?u$Y%7DE6VKouOu=Z&Klp+T`fFAzg! zgqjIfKS6j<>`sH?Bh1VY>H7oLye8$m$GWucI{=|~&QSmyf#Mz*-U5hw?R#b=50FPd zIAVri_G$4{L{2@M(SV^R?t*!^J!a@#$Ea@;f9ymafqGOQ%Lpw1jtneYbH}@fd*ZG= z_g?Y%mO5)4ltSPE7W_m(5hJ8*I0>9kDse(75O)~}9Ww+Lhh+$p@_{7946f1MiuN>pT;l3gRVyF-#%#cLqrE{=`9G$9o`Gr(+ zv2fhPfQ?+nZpBJqw;RdTY(TLDptbtLH6YIVTG!%nGmbPdIj|pgYp@wsWRH`z4%@Oj z)$?RQN5BQ9pKk%SwVtPt2l5k%$gvntFkz(3p*dtj4DbS9;8KNR0yq($vAeZE zc#)=RQBDG<>}rEu>q=C{med{;4NEE*tX-}rfLNo}G+p32mY^1IK`}jDT?dZJ`dk4N zP?#aMI%vOy-kP9ym8oKL^(EwJG|FGG`X%w-(NlW|5bnLXy)s8YaP-*%Mz8%nFx=aB z6cD}du)})vaa~TBp#~St0A~Y+wy%~MTA;M|!egZRJWosp2k->EgE_W1b%GjG&jshG z7<(&V+464%cw23BTV{wMJy7t57%22;3JK#x&e;)JYZp1YUJmAPCB0!6x=UCa5v8R3 z5fh8n#lp-z(qb@n!!B$vR2Q69Hz-IXK%BKfL<3a6e+_IJb?bNR_e;4@gDpsu3qFqR zg7wM~?OaVOPSgq%70@C3Bi7)q@JM2_pThICKzIaXJn*;`1g%)O1$d)lULPzY+52J=h*7>b5k?(&F(n=#$qL8umL9(MPU4qc)=X9n^jea31qU)u#Qe$Kqa~@<7ji zxA)s)gd1 zSSJ`+Er-Rjd?hVo4I0aUR})oLp_~_rM2>w}HHsY|&a3!=oq|Bm0klpto-XH1@c)nvMWz z3z+oZEikp$cq0!=c&WVexS({5Ys zYu%#V=YhUA_mcVOG2H^Ot$D1EZvp8D*zA}d**e_G38o_aK~E;&-_(a8VA zs!V}nfpv+{^oS*u04BktWQMCc(xA$vQUZucE!eS79r*^hM9~>`V5r1ms5-u>(-{sK zB**!u6oB*%%g#`($Ti>s&*5sCkwov3*F=mayuw6SVH258SmPKQa(?>hrqiqC!w*aEo-Uz5|`6@C$;set*AOOUrh|5=eA=ewY za?Q=U3~cO>_m?JDP{iW|eXOpf>RR*}91qqwT#J!KI+}QYu_kM)v5q1WdN&vwg<616 zS%u4}wJ53BEYjMkx`C@0Y^vczav|6ATFw&$wRV|BYI3954A;MPV@LarfEJjEeFO}* z>bM28_uA1wIH`vgZ&)GW?H|1$w!UkS10z~m(1HONdd$#{gM9aZ5C)NEyx*wCDHuJU zcMh6%t=o;1-+C#H?u7=gt+}uTNTa&mN@U(WrzDul=>qU6CzZk_yrir*ENhsfpv|`u zBsSZd$v^SR!5yxJEehUiL0jP&fLsCHzc`#H!hq(uzE9=!(~%mX(1yT_77Z5@N{ zaUCA;ZGo)S2US+{9jYPZ)M5}S-63}KM;yUtY~UG&Gv(k7+xmV42)6)KZ(E>aC;T33^ZEhx z&i4;=FxFYU^20u`M>Y?PU;9Gv0Ol5;we{NvJ~`k92bauk-RGm%r1$B%?C)UqdqAkq z)%!-ExCgTLh|F6|)-9W*wo?djNsn+%-)dlH5|fjX200F5efCq0dq{f2DP_Zt!VJ=VMTLi1j_ zqw|i`cjTP9?^NhG( zE@FyN$F}LFgH9mTO%jqYCs`k?j3=Q3KD9nstw)($k+@@o60suevcleJ)MxP^GLmx8R`3O!9t&-zk47!vhI3y z>|KKgHugA};}%fBT$kQFogbR>JkYXzwYolU#fb%T*)-b=ri`aI^}r;UduWdz5ry?; z8Q`e=JwUk$qB#NqC86ilW+^9;x>RD-D#03#uUL;uO8TJ63Fb72Bg{&b^J3vM{Gviz^V;B=34Do{nGG!gH}Np$gV|CdzXh z2uItkKnR25cJlzj10Y+*)<4>}^#I$6?E%}-O+UP&^}^t^b>vz!xO#oGAZXk29$ql# zkJ{err&ssnfU9;O_u4@P%34&HYt~>XA8)11h`k>LB|9fZKzIuv!p1STj^gnl1Sp*- zB>=NP-BEJB4%N>%N_>RE`U1OVqhf!8RkA+05wtY8+a=4_NCxw8nXNK)ts6fbF z@9GsJNJ;{74H!X1!v{hpsc{Ue7(CNk0w}_7hIrP2 z8*naS@u{vEnwkBKQ$xu+*d%=VI9K-bZ4`)O@ojC;nf@uD!9Wu7^|e(v@2dl54i;2X*AN@C)zZT3aLfo^BR^Qm`U4fVBhc~t`C_mgzc&1RV=|XW#b0CMx{-h#_QG-oP zZY&Wor9{!R^_xCbhDUV>hMD(I6{FMY0%zk;ja?uG=Q=wpvJBrRWY% zob#As6wWo}XJL~lY;vvvUu8u~>y>_z2RCW7&tp=1$G7(Fwdb)C?@cb7y)-*vli9BU zP}-G;UyG+&+_eEn<+o;Pn!SyfkMwg;i@OfLd zDlh3FJ77y5W+f&w!>hi8*!dlkLp2#n%HVSvfMPr5RVCCzto0FrYdtQ1YAnS5V&+aq zh;p^qR+Ol5#1-tcd)w(03rIE#GGgnP0BB&tO@Nl|j)SFMa?*fNN+qM6jJ_8(zD`noLxoD>iW zke!_Im2-D7tnc7!{C;Q^E$pS^o$ z)eg2@Z|uE#V9*bHJtJo5Ndhpq?!A5GdzRwP0pYqlz$HJ^CA>dJtIATOvH-WF@&b%( zP+_$nMSvwYnZC^AH+H;OF zxY4{FT?Y*2^+Mn};hM(? z1;ls-3N(=yjZa}kV^BbtRP~@5>5@lPLkIW4742O~Zs*ZGbAeqd(!#NUPGow<$&2D`8PkvbN|4D~&*_rw!xN1I%; z7b?sG3!3|z%zcaIr3Yqi*uTltvBwtmc8Jj(xc-~A9Mq2%Ta*=LCA@#&ta@$r2{~J5 zb{JC}dI8IQq;Uh5{E_Sapmd3g z>UaM9*{BUfjD9xPJSfBjB<1a@FTri#nJ(y?Zp8ccVINe@3FRcdhpPBO-IR zWuL3SGxDBVRj0c3l{Pw=<&6{Ml+=xAT zVltS1B-6Lah{Bfbjlj?{pk&&J<^fF`t}b#NvjV`6{Q0cFOFj==M#Ntcb03UhWL7{6 zs_qXAidL-tru2rnu0QeqXOrM*Yd&}{D$g-m*AblinVjR%9Jen_51_&P9r-(gbKghT zW#@+N&mOqla=d&m(QJxJ>&9enO;QzlQEVDEiH`6nrNtVx#xTJ3 zDwHxQBGHW^V+vqaI$X~s6I-;)v_HQ?!fY5f`)-IzAC=+Ddm z_JKh!1L5DZ(c`DQ?;PMECWuQaE~6qkKL&tPY!+l0+cTg0AGp0-#~%RT-#kw6`*VQP zd4e<7x1qIVRJWW|L~Or{!YtM0U@B=tT-KMmy=#EPRs07~Oj1Rq!AUK%n>p-1x$$U6Z>n=D zi@CM;>|omh!aXP*F*$wg7C_VtM#@C>R}ZQ8*Y?{3Lc7m04h?)Z-R7)ZP?ql2HY=)t zN8i|7MCFmn?i{D%x+=K!BFc+COkON7g}1zu7jgUNY)G&tZ?x@!+D*Xcog0c(nIqbZ z&QLr{c!f$RF>Dr2CQl4ca-WdjA*Uf>|3e-63&DuVD$#se4GX}WiZ^#cp`6&=m*xph z@xnA9VjYbx;e2(|(QPG41kL%4Yd#YUsp02`bv@lk z7*;W23UK2@v+avJi(XS46-dfC4~9)%m0{s!u%aX=k=csPy5C}u`O1K!-CW2oHVZM# z3iIC#dij$`#4QXh1EVm#obM~NYs-EA@f_gyA7*$upWqZu0O1UfgQ3g|5e1yfvvS7g z@~-~-zg^(tLX$f8<1Y+^S0y^@>$3OFdy!fo^zKa>oHM$YTMWAQ z!Axqqe{Xr$9vFH$9R1re4qLys9RYR?-a+Ztf_f+fL}dHO`aAoO{fU{=3xB|I%C?|k z$6vtkg+Wk!{9d?&p;W>^m;kOhhfrp7dEX_$aQFyr6sw4xt0K4({FvyzDXieZ>Aeh8UE1_n?kNBR*L$^_ZD#`VFp^yLppj z^yc3KUvE--0Zg?k%UM}tMVBVl+%L=yqa*%mb}UR%gM~FnT+~A;?H4u}C^K%zqVg%g zrwL)2LQxr)>k+1y#op%yzFZ?<`>ibnzlt{~oov^c*n>ayzVr-HCumXB4cVen5P!j)Nz%WrIC52Uq8jJc_)ow5C zZ?8*Kfg6-nTE?|HPi6qjff{ikP=usbtVqnmLz@SFTl+>#(5}c3vGS}Ql*x#NT6cDB zqq}+|PtF4X#-L*RWgh}N!8|eDvxMr0MnB8~Tr;ym>*6A=D8DEtWj!un+I>+ki)eI~ z8Vnbs!_4CG!tQ42G{Naq!pRZ%$w%I`FALR?+2fKb+stLA42CQUccWTopMvR_!7%4C zr$^zlS`FjP4Go3>YtTS7&fXjZbDq7gTj1uoF(vbI8qE=J^VpldMqAIj0iRzP1#T#- zO%gO5sXog&t6nG;=D=*Q>xqQ$Ldg&>IzyWJ2nGn{a#1G8LJvjaLSlMOI^F{Yr2`b; zYf)(H1)+A>ZmUn4D~-x-=OmwkZheb8qefJJG`^$X8ay`p-P+bT~=H2?r007*naR5iPkCU{B#rZc6;2ovc9%c{*R4vT;P9AJ8y;K!^-yr#km zi)fz-!M6pzou1(|o!c~(IgU&qvS<}w0KQ(~>z|+DFA?DXVvF=&)DtqPai7$R7#kW4 z%!(X)e@2YY12GQ_!PM*3b%Yh#7i}=t@ESmSGeB$)M_c||mg&No9Igv#%KnE-X*CwZ zNh*59wi?bvrxAk+MwJpEaASgZpr$SuFwE2tkpypr30-3*UrHO9KC2$l+f&VG*Yt^4 znPz_xGB9y>LFQodm>{SLp#j83Y}Vx`^We*O9oG-k3I=(&t+;3>BAT{5a6_|l!mfJI z4?%FQ2UK4zAR>cbc1!sub)7%4f8Jji7_JJ0g)vP|zeS%aAgh_-tX7@KI6tW9GLtw} zXNc5%eU@u}7(~O7u@>gMn03utj84BKw^$)K=O?44*#pB7 zQ$;f;ymQ}jyP@ue2gs|}vJEX;lT#sAWcUz2fvXCzd5zCZjE((UCr?{+`tmLNLJd zGoSZO8HKLu?_%zo1%*A9=Y8yE%jUKjCNjg*QLsaCy(yu*5K~Nj*e?ZtVufA}8?er>%GA&hR;2)tpbb646S0|P8Hk-f zc&{@g6rPd!bBmvjd1$>5oP{(raF? zN~b8x%e2$-MS+<-EH>c4qV#AQsK1%zX!;t#u*S&%_enj#i(zX24gmgpc6|O(t?!lV znH2*{%pkuhHNbym01)f*71jnNFnU!DdOz^FkKAr%gC8^aP5N_YcNhg|8RRerM7}^c z%e$Fh<(U4DA_}6XvdOQi|=C&yMb>LV8C!C9) zJQ%}kQtOl#Wf0NCjlu%v+ex6gu$7mt9;Kb%5YGM8OuPRPFZ`Foxc*++1CU?601x46pW z{jq9UNL(0OAGU;WLDv2-JT5x+63~k&zP!rNybl)zp*Y!m8;GkiOCnajh+S{KTpw<)nnLj!} z!HaVKwVU*L6c13^7G@@^KK@?T1T!PcR#>vyvKy+t%h`GxiRB0rl@M5GvBm_kX*>{{aC1D**iON_F_M;!gI4A6z~6766TrkLGk%7GSrHnIu@YpCtO&X06gw1;Rb%x1|QyYsWbzB5yCqHn%XO_o+8rW6vn*sNP=+Li{8B)XB0j@v&p<3az&PCKY0&X8e*vfS5Tu8FNb zQh`{dIWk4j1r*=IYZ0BZh@FXYOuJz(vNriXN7to2x zMO?w+!_Bz|D4;gU0_nX`Ol%qh`f68+7R_AhG)K4*=)i0h~SpgaVtYX7Nd96lQ$~STO60Q^;suTlJeTcM)#wf zcUj;X<@V4?`PkQ&1%6}$K_21|Cy0|`fTGg7Msi^Z6gehvQ1z70eF$()RAvbYLWqDN z(ae&OTb`Aud2QlnVRc!&Jt;t2`gO&{*Oo^(FmPs2ip;&rykDqnVS&%oMggv`<#+De zHTO^Sr1J!GW~-;nSU(cOo1a==bKTcp82G->zFb#jntc3k&+rR7asQcpHBbCv`V$+W z(9BJ5>79OY>zO`!LGJ zaFzi|=T}KJX$ezdj3=6aIm`&W)U=`z=4?&EyhLXy38!~&koE2l4v3Aw(fS*X*r1*W z)*xbalj2t=Y*0jJ$;WXuR&A+wQ3jfe0y!{xM{(`ZD?jx0h($Xe&kt+<{+#-7_umr0 z&)=59Xma?grwn*30tc2aiVm^p1`~W)Qd2i*N9kf2CgxUT8PTuht4+ACBn-@fgZvG!koo+(J|%@ z3W#1Z>-!79^S`ie@@%Ung>$Z#+7@zX}zZO7*YD5WT zEpv_HuW~a(^>D!&j#`ATd40d4Vu|uwGL_PPkn3 ze?_*o|MddDB!K_SeuRJKvHlCY)BIPSdy{(c*_XBkwNbziJFoRac|=s+E4L-;j!4FL z-KwaJ6%dPb2pnKAloctY1;XmHoEQiLJ6$i$rH|J$+u$(`zXYqGm6NlWB5u5cAHErb4OjENAVVA)G?w`3083TFnY+m9o3~FM<7BG~)mOey) z$C%*ZvcP9-7>k415w02k`-Y{tIksNk%2^ENN|R~!e?2rBIjndnWI0XuO#+< z`)7ck{|sOL_$yz}FZ^AWG0J^&1*fkG;of@YkU4J zK)A)ytZ4pTTi5Q4e4z=H;g$T8$^Tf#F(4q!s<)b7J*(wd4M+OKSkH?&WHc7nJ+@!a z`esPV?uoJ28MbA4QTgQn|8Ce&V;hPWIQAq7LDq+AF}mRmVq483^N58D4ZdVx-Z50-pH+ zm4SO!%jZrKU7Eq=XXV!@AE{T`7LdwVp$$J(x0(snOROtqzNotYq#pkN#H%#~3?(U) zX1qailw1>>uS;p?7ZrUvxAE`(c7cDtMEIxA0H4kmI87&7a8RCuSX^F2Rf3ZkNInw# zD{e9qoU`8V2@`EL<}{|mt1zQQkmdWN49!2b*Y{~NQuKPk1u&uaPJFUkYp zK}8e)(J`D@K-=0Zc-j=LM|EU1=h~`)=9zBL;dROTrr*8|WXBEFt zl0qRnY-jmDi_Mo5(^5_>Z;Q34465-XH^74Ei1F=xx8+CR`mBIZSf8~03$r;{@+Gb? zQ8Oi_FBH%aFKchd~JU{ug45FP3Uw7$@Vi9UWrCq~!YC@0Q|a#FSBHOu6I9!q?) zYi&7r%`|}XZpfB6edG=1)eUCf7O-wbvH5BO1bk8vr=wcO8_WYHpd(r2WYeowwBAv& z!imE7*@)9p|JhihXXP(9DTB^e?z1pJS(zda@L#!~a;<;k-!cx5#y1jF`;V%9S<svK@wG)jp?tW)zkcAwTHFZw~+eU*tF2(v`0?ce>~7T_n;0AU{?n z!7A4NIMZVb9jA8{iv&TCSX}vC%iCYy%KzF9Y$CO0#uf+g28wN;wYd|~-v;YeUqt=a zTkRQfx)XJ?82|0o`~N@WUo(pQUvfRaL!^(2$T_d2sx&ygAZEsr+2;&eTN07)J&%vt zGoY10@)1*f7EB+u;j%2!r_@R6qHY&?UphxDq=6p_h-?;Qk|;OsNu)RNdtPK$k6+d} zxc+}})V}gAQjdlAl>laB%9)grMpEJo72phW)TdA>uYdNsCpG8@H-0O(@}u1N_wri* zR%(x3yxLj2vn_=I;|Xy)9Xv!wEOGWd_i+yZvHx3otK-5!@E`y(%z9G*tW?+c-voqy zfMYK*)66c`#87pSDHDAICRX718!*7X!?^!d{OJB4`TPc;#RKqj2NR3N6Vz2k z!w*Jr{03QK{LOn`=)qu4w51aT32>m$JR^@Sptt*Aas)+2H$Qs=kJLvwnLk zzr7BT|6jpCf@4=Vr5|vwa)B(&PJ}7lvNbqAvnAa({Cf{zjzI2=So=)7H|9s}S+Q9j zG)>`k3rSutq}a50utrbZ;48E{UH76=wg1*a_@qX=WWuiEpgkl`tnmao!(uwa$PyjU zN@97@4QJUQksU#vPRH{eUX2mLQ#SA(cllYBZT0CjK zL61P{o`^65ycxTE#11(v25k#icNbY?m`4zk#S(zRZ}RUyL+mT3ezEkYPUegCFJa11)Pr-t%AiHfQf=Pr%0Mb#)6{e8|X3#K=OA1tERJD zer)AGF_-@!DZN;XH!X?6pSD_lZQ$6l+Wgr1-2E3|Y)v)sAAY%%|EU#|`nQ{@E&e;O zL4ApA@bby(1sz`n1JnZdJ?sDQc{qBBJu69aDEPq|NcIBU{Z6=%Dl)G zUtVkZPm^?JzxN=N+S~*CdHzL!T*daDdae0bil3#<>HjIezrx)7m@vZ3_;LR6^*jTn znFyM}Fuz3evz3p<-%8q+zaN3oJ)p`&;5`iUsO|b1#p5<%fh8eI4S%C2%cTqGV^YCb8+XLrHEX|}qs}#0&G~W8fuDguccA;9- zrPgjxX{_)@zw%|&SQYgux3>qq(Ql;zt532GA{eSg8P8AP zRN`AbTm@fV34`72nk zF^R?-utWqa9p?fsn*#GtfkEc`kIx(4f1ZHtY~S49J(ifa&)R1K+`Ahq81`^rSz22B z33D8RBx!Kivg|XKEMBbS$Y6*ae|m~At(xb_UwPy+WKywLPvj*4*u-CFh=a9tNDHZP z9C^nOM`=*D+b}3Ds)FW*7RC&>kl?ZD5*NC%Qs)t7Tj{O-tzUTaq&)z{GY>;P1|P^WO-w-5kNzBu+BQx9JyNdUJ1H%A=ZcN9M z^`w}z0$oM4p^*f`8W9Zfg>g$Sg#RvVPF;ciy#QjiZvO@#_X9vs&!b?k^YB-&Xs;6; z;0$E&-g6o^rRNC$QtGp&;D&Q3qf7wH4bXPszksWo3 z7l}U{#}11!3uPAhzgwbTH0253%HN4M=k%JndOWLV&64=$Hjoh z;eH4dXoc3vMO|ZNoCLsCpwGPc@WI~F_8eBIIxtF1@0P~*22S9p>%)HO0K{?oI+-H^ z5Y@462|yJ%lW?UUu*&f|dy!>&+U{oZz77Q_P-eZ5QBYb_ zpp5GI!+Lb>`40!R&U(+&H*f}k_x3+JekR`J#i#oy=;S^!D9prd{5)e61&%}iK^zb6 zzW@`|e$j~>W2RNSMJqD;H{$WAL(KE^2te|@-(dS2?Du!DIR6XG#}6=mWY0YqmJdyq8EdhT0d!Ry5VtPQI_vX)y+d}PIbWmJMIN8Uy3H!W?S^@G1> z@HslSwk3(ZWD~UqX*@O?Z1j6BDwD-F{f+=v!7&&|1oC3Z&#c`FH+coCu%1u!o_?~e`q3Tb6BGxWW#+ChjF*8h4cFG=P`wkQ0Jty_RV zM_9rg*-LM1&!vRfh+eUpxqGA%8~&B<`*`V5D=%>2Qe>1LJ(E+QI@)Ija!2BGfd@H@ z;~4~J5B&@bDJ@n?|MJ+5bXnT+@7Ui0pjBY;W&?sAzov8KKDBLW-zA-sC*fupWN;qW zgL{}?9yll41mw!(-W};QXCiW*+j21ed>ymnO6vP8)5{=v<|X@V`!KkjY!h}^x_>d7 zA*Cl1>>pMma4=<5G+RD+sT8mqk1W`=yX8>NWaEaJF`c_IbU2U0K(UP!4J@EVZjzoI z!CKVbPEqU`%>e4=aREaj%SJK0$wwmC{0wu?W)!WA$G>MkZTDF24iIaP zCiyNu_FF=dN~W}G6fB05MP2$NjhAMv8CN1;C_2RwTxy~Ka&^5Oj8U8yOLu{3r|3S2 zGz=JvWQFhw^~&?~nhXGg-(i6PlmM8@4q0@5wpzQfq&v|7(N!iZ1?%b3z15p9;+4Ml z=#+Q1dvA6fb|OXN!s^e{0%)^cnxw$#*>80)5XGV`fHrod__?1TeP5 z%JKq6c9`FGv$;WV%l9XPJswvl*IeM7`Cj2XEtBIBwDUc~@AsaeJnq@`=6>>v?LF-* z=sojN|I*gh@(XyD33(#5LQuzxs|0Pd&p*uI$|49@1-&UDBa@1WF#?61WR0s;1Be(f zdSPbn$>BArf*lL@lkF5Eks^iriKc8eHmLVpt=UD&`z@qN8XN=_+0A#Td#it^Z}jK# zLYL3DH?y0aMc>(e$WlsLq?rMg$=|$f#zae6Xfsg6e_3ykfuSY<&tuDCV+I3CfPtWe zPS!LTE3(oVQ@%G>Gw`R0^?Ak!^*1zV%;xdzJv(a8yi|`^;XM|0wEfKSXRqNs`#x%? z+2O?sVvkUHw`0^U@HUaSXSxc87tq#c@W?D zt#JKTzVAcy@`OLzG6>!S#0od{h#ls!%^1Nw2AZ#B281(lDxZJ$d!6X|c(X(U_W%GO z07*naR03+0t_j&V4;!+8;%pr-gMH2j=5ZvMwwr`;<6TR^10cls$Y$tzMS z4I!3LJ$JeuY)=3Q!tX}9|1tNKSQ#JB3@9N)X1b5b>EtQC3LN88v5@4<>4f;|AV_W- zQpG4sa)(#uveIkW_|N6rvK$qnzsLN}w#-nFNoBw|I`0{VI2-$HtUNhyKK~5(@_r0# zF2~;Dxlz2Hu{w;9;Uo%c-`VA6#^mxfW^{m4zXB+q0!US8_v8)TzqoW2SshjIMk%OJJuG&uI>S-iPPVjM>nwr4UH6!hyY|mg zjmOh>Y0Cd1?l%sS3TE2SWrpB;oCC7Le#M>~cl3_zZyci;u)8B>V}ISsee0IyMvbrZ zov-D4FCx=K=9OB;n?H*lap^^>?-Z3P2M_R>eU2Exnf}U?3nT+?W+3l<2EgHyx-YtJS#$?h&*Ge?|E^~<}UA(Kc7A4GxIPz-)HRi z*?ok2r84HF`yqep>ahl0J@08x)G#E&Zd3_@AixlX(0PK`;&up02X-y?q^RHC;^oO~ zWYue+u+_hla-d|R$7|ukdkRSy^f%Hys{^8x9nf+03l|+>yYRKVb$6OtI~bM$hV9=k zTxq4cw9=!mWh=jwt;a1>&Tw;d(;hu|_jEz!VBzg4^7G@Efnxrg$B>!KtWTP-v3ds# zXUwcXKY3wu>PLZbOMT7$&gNz|j#)!CINR?LJ3-*Z{qG%j?`8RD`=hZONd&XMXV3YS z?a}$3Vu$92(1R;RzQR>(7n=N~>kzw(oe(_5L69W(o-mG7*Kx4w6d~T6(G7>;ATUWo z`8`IKNd6qorBp7(E9I)bk<{sX95lppWr;Po&WL#2nQALK|JKFh4v51^lN(6B(2Y8K zq_=Y8mvZCp-N^ECpD8{9#WM>b?{mcN&i0-6c?5`A4^}4MbIX?J98oa?prh+NVqjVH zK6~x6^S*}>l?UpAqw6VYULWa6$A z<1ux%r#PWjViIzOokpIZAZe~OJ+99H(UFx%JovbPWA*~zHvvQ|$H$Ns?1+@;XU&Tv z!P=7LmIRo)cy2_JG*N>TmEOu#DRLY1Vgh>~b*r-1EAExovhugG(y!%ZS)wQN9JQYj ziOw?1-0p$yncwa)#MyC23^VHvXX5b@$lbfn8DpMZ*BQn=`#T%U5sQ1YKr_4kNV^BD zN88?W&aYs6Kbu9~ZB;O#Wx;Pi*z5x%6aHrEG!jYHT?PHW_@KCg&wksv))bMQDZa27 z%+O*;2AyCrsmGDoKMnTCLLgZK?Cg9y-q=!flEANs(OQ*n)L!7&U zCwl0taUH3@=!II@!78Tst$wpQEPZm|a1f`T1;p~?gLFnzD<{T~0r5=#JlSViO1edArqm&eaup*AIWvs9^9oOjBB+CzKNXti5cP}x$(5IK z3}wSgRO=9o#qgcUir6<8qaJPpPT$1Vzu$Q^!i*XSO?@eX7U47Ff6q9MSn!OcK4O|B^>OsO?(>yk zbB`rIbNpAgkBG`cJnsL7fuy_8@LONIE5C9F#_}fHZ{`!71)UI?tbTXPS@rSxVW`>H}6`R%H41X^y3WuGWhxwWq*|JIZN6aS^(Fp zCvz;r+P$bAQ!>_WJu2lkTyJ_+ECoYP5Zm7#yzoLJxk-CVT&OwVK(?Dc^uLsE^zFz3 zeMa>B8SOn{d>-esBJWXqFAI1ymS-3sw%NR77My|j2*hSgGXKSMJbNAQxsRX8;J>oH zn;lk3{xU-Bw(dI9zw^q2xCmP;Hvq~T6nSzc*w*{TXd_fN8`e!U(*AQ1HyKVt(ctIB zWbQ#l_xFv9)-I_Nmz(|b6tbS0MPf&!`b6zOz_OH_s0H}?cHh>mg;p)a=Y=5qGE9kjt-h}bqnl|#m#2? z<%Dg#KN;q^V{oMb4rd{A<55{2%pd@$K3jxGXvB%KN4=ObqFhKXW=w)}&;>x)&u$Ku z!b-O?!fsSIP^E5ak@_pt(}=%WO0bLgC$>-@bn?cET2%jCe;0gV0*KlEp9zSMfcY$- z93B5z?cIy!Q-UQJLrdIB_~N8 z1Fy0-SZmu@Ny`#c@kSppEDo1y4cEYJVlO1KSYn68>NS(ZJFDWgmR0nPBSL23!3Vp4 zWBqgaz6`7Lg{%;uO(&Iy5iaEm7ROQlU)k4t&hbakPn8M#JIjclRVB>5E9*(=Il*d(k3%kf%)*ayGtXQgGbEcSCqPMFaW&*4rGP1;?5hxn}M+7JKj==`( zj8DW`dmcJ#tP{}HV_0$;k`Z91x#MCMDxTy4#CxO5E$NtDfFyJ*YC#$)zb=hAYSF3A zAV~_#EE45%?L`i{7``+>{L66lrpxZ>Ug8xx%+Hs=8BqM}1$5N!O!WKebACpDpVd#E z3vKtr>iqeuLFrks_%mK)pP@Q=b{t`Qvm$pxhSi;ShRR&b_J(5&rn;~16&%IS5kZOGSdEc zz2L>n0x8>mPS z_|P#5>lF6-%f}$#D*^G|_pfLly_T;8!1s(RFPAg>mv`uoXWt*O&@+8Kd+ul3ht4;A z3)ikERPoru?0omJ9>q?O@Y_?s#4vXMRcs-wMeYjinPCB^YNd+B4JZbS3@2uSvBY~7 zzL{m(V+0jY$KZ+p;^3Ggmth&+L%eaJMRwY(Zfa+H^1VuC?5%Ha+pfbf&FZ19deGW) zc#pcyi&WK@^S11|tntv_#jxGUI*mH3myiUgh(&sU;9!;GqT6}?(gE=fLwvM2j`sO# zk^A1cKhhtzdyMq6j5e{mJFqXk&#m`4g8jOAo;8lU__zr} z7`1@)V4~N~BB}iHQHJ<%M!yiWzKWgZ^E~t0SB&EfvgVZVdM0cCx!2X8)}rIBi_mAAj=ulN~Yb8peTr;lg$n=za}iqYh=+Yulh z=^jhk{)}jykA3v{-ZAez*JmAjs?Qd7cdIO-@tf%k3#M%48rC!F409d#(PlBq9J1Re zOS?L|b1B<9iHvdlq7IE^dQbiM$TfXiL~c_I8YnvQvoS&$BcsR}g;jLS9tN1j_9A#o zlQA_L z%wFZY+Y!7@il_O)uwCw9yOQ*9FtKDrNu!N^i2nck&xH1b6t|?5c?H~h9IYJ=amoxm zQ{;@iHK52n>J;odMSvVA$8!Ax=+tdTU2fFzd`u#w6l2etF?v@p9B-OYvg%T9<)tkA zr;qq5zNZ~6oHHzD)}Gz>kIoJsjq!+W-(!W(ob%pG=Il%7j{<_vj?I2!hO9LG2NjKb zKn1ToJhlMy!^k!^FstnU6x>*B2`Uj9sB#VDsZ~?yISiD8nHY}F*2WH9q(qk(r=Ibd z*sr!(Y+y;n&KCHNITnk#%E&l*(HbnK4@8}`8)!V`7>)=(*Ih*<3p?ytayA=kyb0CJ z^`3vRh-J&)NRk+cHfqY?m!4Dc<#~4amCW%g+tFhGXB46DG08{s`3&gh@6WKqv+c8) z;CooHwKtAocN%7=U{;I}RS=PN+X_0vBtC;X4KhkU+SV_to6a?iF1X4dOROF>68sQR zq|R51{E@>&>0y{WmWrnkQ}9J=azjS-FJv1JN0?JxVYlioX;jDt3yeo1u4j)lk2+jz z*>c3tQ^s3H>9}4`HP@gj5j2-x+j-%aaw%^e5HC{X<^vDVXMxGj5^raV{h4bx63_q9 z?HQ0e5~*iKm1n{6O#7<&J0$`iwPq~2^&}~)#T2vTEUX2XTwiPIHYd?0LPVIWi@pek zjg%-L8WVJN*jT>~gzfKjdT#_28CaLrDcR}zN=f2sNzX4uR>(eAY$7_2g5X^0Ub78e zrXhPmUrF3ptcWyTL%KJpe++gf)@uA?q{H`c6Hpya+76_}z)&Z=Gei4zvBVLjXWV%0 z`EwV(baASPJ?FDy zs-@?;nZC~xFErxdVRxw4bH+F7AB`jp3Vf?%q1ue*n3#;x+yFqo>pe1AWr{j&q&KkN8s z0PzfKf20n%x9yY;?vvUhHvb_;Sj>gyHr9izC-E(0O{-^}G8^&W0?{YJDlJ@(SFu2E z5Top(GVI3~!J_?M?~YikrXzhnfi7_Zh%?m*pP3yVS*<(hc!F87qErY*#^-{+BMRXK z*d8)M7X2XBRYfs+w!LM=UX1xE!>vZs{d&QsBPCZyJ~gHDYtOb(Bs#i304-Y%??mSR zzp=i5WV^@m&a}_GS0533KMM%o!)%{DzPAx!QY9(tY9g&BZyjLhWxFk^OaRT3yuM2I zYspEv6R)EVae(B;9;56-W6WA}@0v`qCH%l3J|1}%7TB7%XCQT5;b^E6%m$u(Hcr5o zuY(2b)XFrr4d-q*+^G4T#8OQfv)mo2FYspCq-M;eEEt(A0FFvq6{olI+O5m&{nG;e z79M~&aXSAs&r(s(tUC10YcUR-dhID~io zr45OpN7r-I0yMwhoR_1e^9&%KZGSY@`HvjWXEM5H!0)r~>6!NI`9ISC{oi<4kJpik zYk(K)n%g@}qrp;{qsA*Ymm38@1XL^(rI~FqIf+i&F2P;**D?n--^!jbW(taXKy>jM zw>h^|W=ZPE3@N-a5C(BrkF&Ga9*MG$mJ38tmCaZ)c4muIaS_==bh^&4`3zbTh9!cf z^xpC(x&bHZEsMUT$aIW7##sUJ!BhVgVDVAr^V#jp!v9B%H9yGDiqBs$o=2b0jAQmp zePp~(onNiTtEK9PG+f+kVxrGq!&l6ayv|J=qK~*#zt2wF9I^p{#PM@n$jo zBg2_2FChmC?UnET0t}pHXeRS1kPup#7{D;&WqRO`ZkpOluN}+YC!u zeq3*=BUAt#Bw`JIzGz(G0E98QgUf3iSfS|*dB@r2*XlD!015@R@&Oda>E8>;4n3ZL z!GVnwZ%Oya{Ln>bEi2k5N)k6H%hWOGxP$Q|d8I38cZS(@h$AD7GDy`mj%2jM@tYtM z_b}Dm1bbOP^V0Q%m!2o_d(S7PH~2y?{a^EdKXADzU%2SYgGGAwyt9S-Gg#ew&cg=} z;l2IKNdv-X=?p&tglG1BFR;GrIMdK^7Fnx!4sHQeMhOpLguo^%xW}-#`Ic)(5=DoN{aVkeMPWSzs3Q43l7qBkR)%mk>9a_@Bqm^9zpUAvTUz|12Wf2n%$X=m@{=`We1 zvF)K{1^_NC^vxPl3l8WJyp?`CIBPD&ki>QXV0XlJy~c3<+_+Wg`$4UseXG`2 zI`|*sS*7=G&?e5)WO^#haM;PZ| z_7o~}wCBgf+>+ok3*q?PLD2L8B9^k%KpBP(&HrF4W z>L1m97E3(a-ZP$`(LVD$@6~Vi*6hQtTudb0jJ2suIO-YK_JlKOArNp$Tl+E24gnZD z@U6+UrtdS@Ag_V!6mh$AfJ7oBVsc#A*s>*Aeq{$K+yMbE8Ywsc;z)Wxn22kqZ$xM$ zsdqx)H|V0V*G#RQ8fxll0^luB;xtlmLCxf@Lw23xTwA}XZF7%P)?!qa`_Lz$i{$|H ztn5?51vSBh7Q-LKs;c-hN}cAWKa{uK)@{#MDVFaE&rVe0JJbHCi}_LeY?1ae##8=4 zFPERqK&R*0SY2s;c-*i#Q@g6m#97I1jlP68{=MAz@1tI_xYKCT*8!H!7NvhyKf`L$ z9UB|<&^z~QM9cQ|_<4z(ktW-Hle0#IP@WuVP-z9HviLj~vX!~97-5G0-XecV4InJ3 zyTt5K0wCteDFGVwyl%1?1`$avCjNs<2Q~%V8u}lWXfXE}crOmQ!dR<(Zq=TLFQeu{ z>PXpqw{TmAFDs(V$R=~JtGGd z6^Xx@SflT?XBP4wp*;(5XV}|kg68~<{`r0XBaXk@M%-}`K>JbF^24pWLmdU>;Riqt zx0zSle?*wP8Y_$uT-8M54t~7x796hCl8oznoHBThglyLV49fv{J@S0m>jY6K#=Shj zLllawAUn;@MkZ{!u5GZhD!R+TFj-3e5dh9OWB?+WcyDh6H>;bltZgB!+Kdd6q|Qne z|HsAhJVw`X*AbR-vHXgvA6e{g^DVsgzy90RoJ}{&u&pIbFJPs<21~owo@r|06)~XNbzX{u$D8DX29-Q$IpIOvTb> zOjO{*YIvG}VHNRM-DxnKb+g0_tLH=HxpBmY3bj(W+E_qmn6K~S^B66~$$$d$=x5Wy zPq`leQ7JoMB6Am)H%rVq*xO=9sySonfH*XE#inLtxQ*hmLwFOnD^)V{zd3Z1iOy|X zXLzAhfnSv-dnn2ajS*g@zVb)_ap}n#nl<_A=aVOE#8s~y+=~>~C#fvh%b;RG?c#YA z#UL{rxywif(LnK1o@(y}hI?T8=)uarpA|Ph6GVTu+Te(le-zA)7V<}#>fv#N5wd~X zHsXTWqdXwmq^tmfgBhBYxZEt`HM+tm^K+~5jji@c$Xgf;8t(s$E3o+k6j4iEEt^5}?#nMrwH@ zEru`s*Yd6Z_Cmji-t%4h#Ctb?w(rsR_q4O;|7;Nb8GtyOpO4JhKTOrJNinCjJEgrD zz*!aUJO#t78e{nWAfI7*Fs}qa zQlRF@qvNnK0HPepj%O}jGq}r;8AQ4@)&TM1S!AHF`(RZUn-zR(ID`|7ML$~Rrop=W-G8?B$7t;jN|%h(vws%$Pipl zF;-pad%1MKF26H9CiC!>)+WZM6X1R#y9+|J|9cwRyKdjC#0%ilGRh;naadnA^}odM;q2G?oZL`PWrXHTKetVtKf6Hkyz6;tmkh$$Of zEn({`SdN`tI_PbTWj|3o#^eh&IVsb=Hzz>MQ!yFa(F+-Y5G@}x-DBRz>^vog>_G&I zXVKAUk_C#t4~A&0sVwFbIJ^<7#1?}nKMBt(fl80K=ROuv@5ZGBy`GFq^^*;bR?CC< z;unZ(f(ft)YbjE-YDd_@##y zwlR*F=$Bp~|6;Ry81-^*Q9iX8nd6g%+SX!sbo}p~#k0Nwxbl$SdycbnbtFcAXzoAI zGLb4u0jg==M|?kZ?e`USWs)@ratWEc%Se8_f0|cmW4$%#5knGL<&EHK zY*yytlVqo0i+E86#sc8O;KB*Ui=Ep$@%UmFn-xU0?5Xr1f7H~8H3!E33;)3^Mo38~R`-folAjVNrmw?f#rqUc}FSL z&R$8=hxL-C;@-2>F}{}uos+r*>4x2H8x#rG`nVocAM?qn|K+f*Ur<|n_5nKEK8rn` z?dOQ){WG-PI4g+9#~0-)8qFLtjD6w?qs5$f3u(EusFONT$8`OPDWa~BA*zHkFqX8g zahr$ZPBLBJyPu%@v-N)@Q}K>5K65AuN9@&%rqT@N(VJd?0^brWtoRy*xhD+DKF(0 z$n2}e6j2=rvot;|;HfW%OL^e|hTpqIyVrN_zmN00(4Wc+|5|=smYGiR;e)e^1Mb#! zIk%uRAL*I&rLhP=w>i1?@r=mIIk(D4dGMJ6zdXYL(2YazD*4lOIQi|2y{g*4Y!z{=wTFu8jOdfuskUszL?e9-jJX; zuHY)Ln9I!C#o89Kx6x}5uPr9CxKEclY;O(ZAeC5Ws2!MJ%SzvQ5!WAKt(GwD%6}=} zoJO^lW9 z+B2&$$D8^WmN)Y+w6dSAo5=IhC2Bj7(VxuQTjGxf;06} z)Ik$$V*oQeY8K;MCi_O6U$I{ad=HHo3dD>|*(62aa}w8hv-RBlA)pEd5%1Y){MwJ- zBp*j%Wp--FxQa-)bmNG}P~O6u(68(w`>LN}v%bC9=sZBZSg4VfE@%L!qPiMThM(iL zv(qcTS<(E?6w7zxxi|i`bJ#O&1AQRAo+>)hde{_?m&(@8O)9Poo$K~UrTtl=?$2&# zK=UlHe&zK)9D|Fa1@82?*A`h)UJVR2L{9;5#4X=keAXiH!O2>kt}!`lbmGp8aK;Q> zeH4)a_qpaPp3g2CPiV65-YPrq4Ov$Nx8oNzIxm-<4+!nf{dkSoO;8=?=yIw9-bYw+ij%_A9wvw%=z9)FOvUQZf>mK8hKgCsSNiZEo9Xm-naUv5yf(6YE>*YFcgd4c=K<=IdbF;q=d#-ZMt4eJ^1f1v?U{`#n!s~_ z;hQS$JZ^T#o;iNX5#k|nf2b;nO{p9P4|DC0l-JkRJaPqhlJG)8A=Bt33GrO_k} z2nQhkUBc$xBm>Rgt*}$nAvzdZ`Ykn>80cZT{^(p?0@!6{=$9Tv>bSo2_y;;eI{1uY zE9%StgWQX;1M;WOtOFwfRc%w@&Y=vrc#F#4-`ymPmWm$^a;|;~Do+%?7)Q#Z|OKk&JDUN@!NSASN%c8i7C0yg2 z2a{~q^}Vl%E5YJW7YqB#;eoZ#NA|pO>h#W18-^fu+ueWu5bcrhlyyJPw6DVZPX}1N zIDAxw$DigQd~NBr_>KQo-YVuH^lUU5VWO@yW+?G|gp&PzgB1U+CsadWHk?Fpw?s@x z#+4l)a)Gxz>Z&xT|rL{(PP3iD;5-xr>rBJ zk9|+M*;0KK5sQ^A#_Mz)Vw@YTxuQ7^hhL-RaNON|cR-CVr~*Lh^EnJPs&l+_KrB+u zbnHg`4Q>pMF1+wUi&(|Sf8RTlahjEi&ah_uS*13N>oCVlp>m5RHv7#Jt1(>)OR`rhk)Zk5 zf|$TlJaDmlF#xphVyz{a!=CY{i_H=a$gUk7*6&ua@78k0c`~qmeJ>UPvzQAJ`Vej! zP!F-FBcrj7pZLoCT6@HIs|)zOzl6dg%BNG0{j;<)pvecH%k+kSZkvuz#blBSLGAv& z^-R>im$&-2^2Wb)R(O+bw*ZD7Vpsd~P@xP!1j4D+I3!;{pTbNIim8rVZc3@Ttmf06 z#7vmsbMt)cT>X(gP-hftvk0pdcNq@g77Iuf;7SCaw3iC(&3`H4pIFrbZD7LU>WEe; zwi2Qw0w7Bgg`V?}0FWTk1wjmtuLgFPervQkpI^Hd$5t1b0@nwx3^zuUMHuGN4Lb&u zEN($v4|(JXpNIX%-3&yBjmc8`bn`&)Uf|Hg0pn}FhP9UuoQ`~g5Xk}qhs z8mm-i`auZ6yIZtrPX_EaMsSNdLIlE~D@@aUQcRvRk2Cuo&u@mf9pp{FDf24^lUku} zE{5YTwud3AGd~AOFi@D7Ympo*srX4l{IVsR4U9(Z6SW`*1_@zuB=wc4klpAinY&pG zK3t$iY}w$Ah%*xBg){?qH&RHV*$%vykQcIA=HQFPdJh04*Bf@7;dOAvp81Bwej`@z zF!c*+6QGo6q+unHJ*F_vCDryZ-FNHdVI`G^%!J#e>d>&@p*$nE&4 z;_(s45f=9=G88DIvV%!sPH8A{5{{8L+n=CnNOwu|Ez+=4eaHw{5 zN>0jJgZqqKXnOu#>~&Fh|GWPZ#ObhF#{W-Qlh4lZp5Hxpk27sO(-0O_RPBZdt75me zWruN^95!RLt|msEqyNLva`!Q#kpI8;mn;KlepG+4B zwZ(JQOZZvs(ZhG<;hc*oAM5j@eVv)XyW?oj;#({I+4O_;Z{=2h=MhaJ`3EtXYXdS~ z6C2zlZ()x>;u@T&Q(FH3gnIx(AdE~9fNF!~WX5y{ameo?+Q5D04mzGF6s+u=Do zVn+Ad%;|XFW-1$k{hxn1GW1XY>Wl^P|5|TF% z)MXi|z$m}1QbH>O)B%^ol%28TYl_1R%wAutITu-SJE~zt^nu-y+!7{8v8x!bz4V8^ zZEkVUH(_f9tl`7zd=*2>D`QDU&+fx8m*f8nSiJGM8BnV!&@PYI;q2l0DWc;CTNt-y zqvY|9+GT_x(c9gN0Qx|?y8zc-|9Atvpt`@f4ttcs*g}@;0-~!J2N}iTg8ISWM+g8n zVR$9>=5w8cqVga z5lb?O!K6bK7tl|RIkg13;)mGBY1VZ;*J6dIhEDOVCy+qqI&#>N-3~&wOM0CI*HXj> z?N%sTHf`04!T&D$ zUoFB^UH=CzFj)5_0@Tbv!r|ELGUn=`au*P7{Z4@}E0*@3^^?_2zL$Y;KZlRzdiH&< z)0(kJ+U@5Ia&NgsVNtj4#YUf)1$skqQAA(sp5jDGse!;<81;#IElYfeHM=(DYbq)# z2ZO>;Pz#`81WR*!R(K_4Q5D9D*NAWBV#X7kU6Pl9getzA;do@Sw_>lUg zSjOz;bJ+4UcCprz-})PWh)87mO4W(3mZ@f(&l&5|b&t)*@tZ;GJsN9Vvt2;4TkDH89nIWf7Bv1hF_D;tHw~w z{GxE*6{@0kA*_9iN*@X3tuGi zq>78r@N2xZT-*EuLI)%3QxR@BY51bNsY{T>JP!u@t-*^H2xrnJPW>_c0x@|HBWIXd?mi!L{G8d)+*iZ;n2EUrzaL$Wk38$< zN_fNi4_bP30bL`3ZjrzzPr$_nGs&2tA$&Fe z`SW5C^gqgMy4Z;tnr)_M ztY!?EtAUodwjM3S3Y_pPr)imjmnC6kSRZ?Ln+SxNV&Rs@K-k(f-_28ZR{(78QZv`h zPKPta$~{*cE%$pQ((^=bNR#VA*hIaATYyLX=9-Qm(@)_U?O6DY*++)|$7AwjL_xw? zTkBZkig_eM?K?(L8HN_;mbvMJqalDer}=f`zYVrFNi+d_jEp~xC9dO_5KA3F(U*^; z`)6HPOJ_VRqIz3^TY05hy^Lap!uZq$LlXe#!jY`Xtjt6g;Dtx6mwx@Vma_b%e4nsP zeG ~adbuwRdJInEx)hir3*_HV-|QDU+J>%txcGB8|h6#m-m>DH_o<9B<}Gf|89u>7@8wXP zrI^lE9@rtq11s)lSuOLniRSjRTcd?4O8HWcOYPZ_TTFDjM|EH5N;0A_uqh~_<&5M) z-?$}#7@E)8^KH=bXJbyQ=*E=IsJN~1t}pa!+31&YCF-Dfrxd}dHqN)AF0O;c5cS`J z9K&E79Eo=?@Q{p;L$CUcbY8Ujquz&wB@0s5=?-10gz-@#&eS{s!Vvuoz&2rpyYRZm0Po+H#b>q%BsFoS*+Sr-9TO-@n4DmcOnD*&R;45l4t0`Ds^85E>V=I#NYGVBeU3|4fr~8+-GUuBZzXTE7xoZ_P8T+RK3=j&RM3$wV?m`?F#bxg3%aeh(l86n$!a{~+q z@Khk=1eQATJtN$U&-dCjJfPu$J;xZ2gj)PPj$uF8Fu@O-FRL6=GQ`vz)Oz$e3azE6 zUob|j_(~=KnsPR9$zds_XtDJ=FCjWHIm zaX=}+s7Z_znt}TQ#jadgt||hp#gYYT6s$Fc*AV+6csg%qiGI1bgDtU$T_bWuvz(|H z?Yb!r3#yoP-g8nadr_SE^m<>`QBK+509`!pl zrl$ro;%0aGmTC zL5sK}sSB0@f69!we;wTMg3D#gS6{=3RzR8iFNY$ln6qzk+j%u9LrFR;S7 zcx*2$M!-bTINsCz?}!b~R_voTak@rc$O*hCoFsCz^g!rdE^DTv4qCw0V^)W~#&PaN z{3sS@5Q-xnfH>pIxn(&C!K|9TsVJZj?it5Hz?N{n(bQ1X^=DTQYk>p|RYY-Tdv@*Q z-=k}b=RI5`!#0=b9P1CejEbearE)MHeKXW(NGkDjkXH81r-m*rbo_)h^0 zu@+3z0A6|qZ_fqTfbW(6&2*hT4`BTr7_BoRt8$166A2C&@#J+k-`$AP#Cr-L$NG}v z^3uiVHdmxRi})N!#1%%03~9g%z*}bOT|@~0*d*tm-pdfNVvNs$5bJ&i0GzPG$71ol z^}FBYn!YE|F$2tFLG~B~=ihg{GZ<#};FiVmxu7<02=;kA-un?~Pmb%0JH}z|EnNDe zFJ}W4S!lewPVaHd!r~&XM!rBO-2%B4b$-YkDaanUp$E)v8W&(`1we(8Q+WlD7%9yb z_8Km6%wBTU$K#CE=SM>P=wf59=ELR-Oq1;H?-|ROR{)O!3yj5}@YaPx72B`~zHs-)YjCn1d1eb1|*lA0NMx0EB>32N5W9;F&684P@853oU=8?r)D-~*}na_t>XRrO5lo7S~+*|oU7ye#0{)^qw4H#6{ z{fSYp=l!ca%gac6C7GXx#r9^`Y{`9t*k7H!i)+=WX1LgWvHQ)%=Cu9)Me6Ak@l$29 z?CVo>VHA~nG)Z}dr(DyBY~oQcbh&Y?s~M|M6=nBf8X1D@Zrg!nHma1co{$w5*fyhC zcN*{aIq6!%un>>o$_)e=TnfNSZjUsA8It!9t=kDi*US}Xy~Ih4kf^=HX^(qQI)>qf z&2EM2^?cFFd6<&pxu1@KLC&v&Wh=vfW6=!XE+!S59E_C_4lz|TZ^!UJzhVT!Dw@Hf z0gN*}os=#ZfL!*@+$wfjjP%xXD(a%#3{3LE@N0HJtYd%P!o4o~vI1xF9tYiwOwARA zw!xgro4pjYLfdX3k%E5}y`~mLf9)kywFb;cJGMH*qBlvA?*);t2+{!G*O2{1vxnE> zPVNH;$;U|-b4eP^8Qqzaq{F?0?G2c5g}EH#(6O(O!P@JXtf?TF zK0RLlJG#iE1g@!yo%J$_E{VAEIY3y>q>9^v-vo?8=W{}P1Y(b1*pJoyUC@fKhkefU zgE)dbse3k;iT~^+u)hsFx$gb`l(JJRAleBz9)-u@ReG;;KpekT?ktVed$UN|t&8aq zwSpZ7|GZ-53f!MeqYKDLt2)u3l3eRBs}9QaQQfK9b$-M0zgQ9n1w$ZI*7H9;|Zxa(~UW{t^;e==J#gj@DQ#vm3%F6zWIA75kcK+1$%blCN%{ zuJCm&8LC6!cRdDOoNz5TOGka;WP1R?Vn7(zPF`=bEsub3{yXo%@Q8KI4xQ<^jyO^N z^_V3-J~IbE^dqyA&3<(8DEyYekgZ2F4RIKGd{5!F89c{ph~o_X@csEmfgg2!1)Rf~ zNen5TrKiBd*Y!a3W~EAf5u$}pm@F?)h$=m>Vks`WhkNl1G+>)W3jK@Rb~L%g_bAZM zXD18)Ze1<*&{PSHqi$F+f5E;&`f@T6G&821)mZeEX4OsC>tG|_x+}$IVRacggf8EX9T>fk2FS93;ovDl0d>bfFHQODSHRy`el7ymUzUi>gUa;Mlm zEE*j`@Y!yav+j|$%>hP6ni$8x zL`=>wv=>p!0}JSJiwk=Sb+9q=$jI>+;G`Jbcrpc1^Mr2aRD1s!!O@NdDfSThWpSGN zFF8$@G_Ub`a;EA72DsZMpCF60C$3eob;K>REKt%nG~t=Z9&#TaGDmx$xrC>}jwb~v zy%KU%aNYovr+aVt*GC`N)6-V#~c#KA)HwT7lnz zMGJM2)uwa*KzI@2b8d{Pn7&PQf_O}nuAHUetJo!l@Q{0*8d0zKy|S7o91SDM{br&c zbU2J-iBH-`+I=7_F#;umTTFIFxFI~!eV$=|3P+co`G}LJhg}rzMK4>VkzjWS>Pc zQ8N)w z0Ey{vvgl2;4gMw(12&Ga$idPXnSxoyNsKr0`$%q~t{=6Fk>iNHb8(Me>3x@Apg<8k zGc9Bq`a+9K14Txitu8iqC|o3?i-MjWr%Z38{JM@_xJa1d(i1gwVC?-9oU$zRbN`7rcl=^iiRUB5e8!v|ZNW0!M<~JOS z9mb%BuRNyo4B&mw&tQB&pJatk0AV@O8RoY^nTpZHzQ^ApOuP$#fNqZyT zSuWxuIYI>A02E(}7P@CCcd(V0a&2QJbu-z_i5o$G%;xIO*;-Pyyd~XR-HEB0Auc3g zcI?qdCVmHNbTLtRh`A2#_@dp#25UJ63DeX*HF730_AQnG)hsrcq6>Udqu(Kl$B%%p zJpA_TUfS-2`(#WW>)aHzm1f5Z5~2WD=0>*8}xm)!w z_Pa-wxTssZ-t?Qj6x_)=Sp8Y8<7)Ks_+``;B4eDh!4g*E86>zT9zWbGw3PP$NN9E@ zI1`UE*NE*tyv7YYW47toeTX1W#x?H(Aut1a26GAt0`fJ*5#(#nB5g?^fq+Qiuq+n) z%x50AAJf=lgINIa+C=tvC*uro0KFIi60gEwG?WfdKRmX)iPa)N#xn0SMHgy};R03p z{M-&6?r-M{#rxO&y%Yh?*A6&}O5;_VAALzwyWe;(jGS}i{Y7TZlOiCqgnQV<>{^zo?hyN{ z4tzVSaV!Y$V7^YT$M0i&q3OrHIv_ux`SU?bAaa&kO=FW8mew8=aiK?MI7^{$JX+ds zn(Q_UQ`-aLtbc47_~xgh-RH=9^80naZwAEq82x2VptEtd6~RtH2MbEPGiqSb){QEI5rj$gV-!X@Sa1MjV7Mwyqh1Zc z@aUze%&>qiagltGjpdY9KEc8VM9gQBLp>B&a!S@-bHzb+wOo@HTMgsh zUr*E(=I3V*g7@L;?kax7rtY-6*5vs%9E!iQ_JBA8)BBe;-T!Pi2SWaS%rPYIM8~Jj zFr)bUee<<3IwitGLFsHPjAns-&oPAXoR?H$ABu z1V;KRsk+zQbXH-8Yq^Bj-uM#E;Gx$rnAhs=DF`ML7ou^GM!J7=>541Qm@||cgH9|P z4@q8hG}hGspT+J^WQ3lbXA7b=I?87QN!AsPdz#fZB|Wow+y0*3zt`v5p#dc>{3GDN z+kk*rCQRyR$ei|_i<=pV7!=8mT7DaGS_reT?q?xy$*g!bFYy|pBaNyADln=j?!<9P zLou5EcDci^gY`cF$Ca^9i@o?;p;$%o&jwJ9dw?l;~V6v~7{Z3B&5zSmUin zJiFx@Su#U{)EG-0^lWB;Fb8w?=Kxp9;LJ>w{QAj;>@PJAj1r$O13w;xRa?YRe4gQ@ zI%39ovoU&jq3by{<9M_n;|n&5$`J_9zu*q`nZ`1oZwHAQqKH9h`~5*C@$TU<_u38t zO<8gT%i3HAa&&D+i4S1EP#uo~n8p6~=b3>f$K~O$+`piwKSK5JB{X5$a{H+>Ik;!+ zDv61Ia2nCrPIe|_5(b8ead@WceDzq@Ig0(fo5PY43^2s77APd-%(MuzG##IW*_p8g z81Y_yNfLqGiapaRre+v;ut`))1DkGHmIxFAw;XjE?||5gE{(FLDuzckuC6PtE7Uo! zTz3pgwgtPnz7YJ_Vn8NF5sK076%`681B`&78HW1aOgqr@lVlV z>tybb@w&cHznh@XE-W$BAl@G~b%o8O#zA-2k_(Thl7-Y2 z#T=H2q~QHHq_pT*d>yQ+-wlepLvUbJY1R}2h5=sL)v zJ?h+OI<*NHRx|K;B8JKicFqKoSgb0X1cJ!i_v`d{ZQWmWA7h2(aSE^VaCU#MSwHq} zdb+p!Z3fn7N2NkR7Q*Z;oW$PP*Tbuj+A8}|xG*wn9$Hr=>-CXX9t|k?i|xrJT?1xi ztdsHi89FBcMLh;=t3sc|(VBR6Z*@UZV8ZH{>(JWIJ# zWWHLXSxT{XXYG*}a0Du92JQipSBowgi6SlrR`{Y)_aIjH8O!D8E-mg;xw*PS_889K z@jeY^ZtIEt>LSaJ%!|D?jYOTe+9}RI0$~l|gfUm4t2p4d{6YZNC=`z)FDwu4?bo!2 z`3#Q%@kqqP{qKY6p@HFufX&clH`dwMBVU+}=pG#HIZ^>}dA8{Axc$XMo!|Z}CYA=B zQx%`b8un-OHM2!lb`O)EYws51zt-5_mUA0~3I;zpFq~T{5akcR? z)DSC-jLWx;v{w-{t0YYI7bXS0uFeiy9DICLXXfQSX)WxMyZ~&>rk|#uBSgR}aKCWO z`8v52VCVa1{sVCC|dKu z0OKs7=G80j>8`x%y%2?m!yoEJiU4IneqV|;JcN0C%=`MyjQj3#ki~hDh2x45GV5a{ zNkgw?N3{mCWw-WZvBo5&b_a%S#dBuB(qCyewg?isBf&yc5glI*+W$-!Ou}&6xJSJ^ z1VPnXE}gAic%e!cxrPP&`}Vpudy#Q4dhJA7XITD>QcAgnCVfeBL^dA>QQ_& z3wQ!Vd{NGq8;2f>6{RZn0w9$FluQhxR(g5B) zFoJkZlw#S%b3gH=a}S7EoW<8*A+BH?DZyeL+2Y<(JcGC6^Y7c&^20qCK2QG=gzOpD zz2j_I9@PQa33f;AKwJ&g_96fr3AphA%p=W=@MvuQM)uk8P&YhNyiRyDLSDx7$ng9j zijN!uKuNzGi6i?&4q3@ShDpN}1@}_+)n5a>R>yEc(Jm{T)_~K}KlvgxBaB@u0tNaf zZooJ_YqI^H+)*&Tw(4XKcRXF*(io-Tvo|cuEcL84`D(F5y4ussWoSPC$m%nA;WLbp zC}Lp4ddrre0;&{FO26)aD1eu*1JAJt;xFhj?*n1FAJF@~?MI)!td&y!UtU8;>i-4W Q9RL6T07*qoM6N<$f@mwsp#T5? literal 0 HcmV?d00001 diff --git a/assets/子弹图片/32.png.import b/assets/子弹图片/32.png.import new file mode 100644 index 0000000..9798137 --- /dev/null +++ b/assets/子弹图片/32.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpu8yonk72iqf" +path="res://.godot/imported/32.png-3a0f744edb5eab8df015c04dd875c0e9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/32.png" +dest_files=["res://.godot/imported/32.png-3a0f744edb5eab8df015c04dd875c0e9.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/子弹图片/33.png b/assets/子弹图片/33.png new file mode 100644 index 0000000000000000000000000000000000000000..67cba901ff039c67e0559df41a8d019cdba09a84 GIT binary patch literal 41704 zcmV(}K+wO5P)&ne=z*TF#N%=*RvkXThH`MRb@tm zxS({e;^@RBMJXb)s^>9*$c&IEilWHFb6sE7()<4j-_-Tf0L0bKu{&yivd57a6NT=Uh$lE|UQ9q*pxsCzu(+)L*dW9f;jKg)k zNQ_Wk)ZUie2m**b!`CO^{5-W8t04ts67gG%+(~nRELb-DcL|)$7&T|E7!M|&Cz=1(< z_6cDE6$HEv^0Wqs7eE`n+jWfsoDTlTAY(~EG#Ka_s9NenurdMyA{-x*fo8Ag8T>7s zbl@AH+x^b=NnojE_fTKE?^)}F0673{dRo0NUYGKQcsm@FCgH8%8X@2CUE3>aeQUwD zHr>0td#5iB6jy`O#{4%iGXNd0lSat{9p?2InkA1-Ne0Yw13yrQ$NZ6gdteB_Hh_l# zVhi``6vXgcVtNg*%;o|dA!Y^yf@$kKmw}PB{lE|blqMDzV>n+1_tcD6&mBUfXAD}; zI02r4AAsyxfv+JjO!?Efpmpr+yMk=cHtYcy`5mtTHSS-z{!%KJ%ZmJ60siWErXQ{W zx-S_RzZg*5!nW4rzXb$mAP1sjuKW@px?-vWXdau&-PaQjz56wEjF}_W!&n~zWDCp? znPNK!$IubD8GxLL)nOg&`W%zh3Ql#2z~W}2u;$U{n*b5pbzq1wh7Q2KxzsaEAREHK zC{H5M%07w6QGqQ2TTIN-CV@aeDVo1`fF{zjdhfjS{_*%$rpRdqf+i7BopZprRR3Q> z`s|>%77W+C;9G#uD~AEG)IoFSb71I!VrlmG7-oqn8r#F;T)ti35F?yG5k%wwqNf4c zP64rla*h454vpIg%bnOD)d|_BkUsBZz)1SNtlm!Vf#Q0A>+Qa$5g5Y>0P;k-#{`Hc z1;N(XgiFf?{$`Su}% zJ^VHxY5~Zm`lyK6&@<%PL7-d%_o%>VEOB6P&<(2W?|OYxO=U!+nWS zjtY=x1xUTe0FuqfK8Ny8${NoKevN{w5D@n8{YtM_c;8;~uB+9Xmw@={7(GV`97}b< z^IsY;eil$%Vn17sP1idBxMl{8WKs66_c|yaD}f>oOavp3Ddz5*W3Nr--VNM$8vJBk z6*Qax%QK*C;CC|@ox_zO2ACK!z(D1M%)r3>g7*Z*D*#UEbAank%HEQw`vSVa_PXvf z!_XvN>+epDGQ&imhMoSxAQLEt<5;hFL}1kK0a#%GKtbJTpJ@ZH?<}Py5UMS=1ddUk zi6`%^0QaQ<)qrrB zB7UfRbZN;kMbx2*#}G5FHfCW~UE%;TJF+0-IkZx@@Ez+jeUOoYP7U{uE$F?{s zVA*dIudO_*&wdpBXW$&+e}`^5W+)mN;!xfW{y&R^m+`&>IKBV~nmBD%a{+f3vsOni z;NW}rbg*83^wc3>Ml>BcOV^$p&GBP*_n;fE09 zA%UX;q?NVPYk2_hAlhl!>`Z+!i*M7oI@AP6FR6|Rm=ZHH=BCM>E7k2W)m`g98BTzK zMgT@pFgRXxjKlwQztj%TA;@!#shuLe4>Q7;(Zwb(bNdO#8bR;M69K0ZGxNYG_Z#oQ zqVN)fiy~JR_1U>XeZEvZTxIGDk$t0nsh@_ds*$+Thf|>U;%a1Ue;S3wBVp z9%FeZF0+53CA^n0FLXTin5JZOi4C$x5QkAL-7D}tC@9)*1JCsP0MCa85y5f+ta@Ww zz}(Q4XKJ??2XK0^=VI%00x+%9qkc?}dQyGi0D9&ZsrN;Tvz0gLE%kmMV>H7}P~%H% z44hG%HXla#j*OWlg_=HS&o0!Da`|h^Ea!LoK89S+G3!2&Gc%ZSOTP4FuYta z2gD^n^6rtlXRV&2G^<_J!CC&71H^{TTYh72DE3~7-5DT6=W4-wLVg>3y&4agWg1(7 zdj|%@i5=Q8WsSxR({}?M`;83p0Cj&+c4zh4E5O<_OpI0mYBH`UxX$v8Y%Phim*eU< zeN=JR7~+$GqJs8|=6TjS*|SCMgT_!NgNriIX9dPx-w)-0VQ6BFGeERw*YD=|jXGZL zdy)DX1Ba;|m}zoO3&ggr&eO4CSp|!3 z&8+Orelt*X#Cw-Pmg)`w=(&(ENVekm69V{IGQ$XhuZhrSczgpt8(>zime?XcU#H-7 zAZB>5@1VciUqEqM<2iS@6 z0)5_A>(eV(ws3C~n~w^f2F_-*k)|2Jt?w^7(zKE%s0~_yu_0&gpsX{JyGxCJ(337A z=s#Vyxa6j0L?i>Qk{J_MIz`975wGR4zJzpFP+SX$OB6l_GP(a*#z??Abxz8cn_2lq z^LYbAuWneUoQ{ag2r&4O6{6w8e$RAy6i}go_G6u*ojKzw4h7+c2AB{S+F-`#F_HK| z+1Cyj;T`}{nPV`W;%q>NFs&xx`!?P?3gbFHf#*M8EW1N?6Uk9WC;-lTWvu9ibb?7> zr**aVc#bh9R`@9d`DBbyMdlXT!j>RTMw@YoV>DJasWX%*8hDvwcXZx?*Y^b4WyTnp zIWDB=u*D!3D|1cqn4rf-w*cc?g63U7aS05)Jd3|ceC0LGH(zl#6^^;`mHtdj?LUfsWBVEimDIsC$} z@-G-w`2P%)GK{UJPFFKs#@a2A#{*;!qqch6s+XW5b)-JRh7)`bGo}cZ zYcmQV<1YatN=`F?%7hT}K#d7T?YnZbeP&?185B$1xCV@J=a+!f&doj6wc6SOeds0nI zjC}+{C4uq6@JRg4iM}}LvbO>u|3Dh@8MDaJF2q76eP>YC0I(Op{d8 z#3V9*($C}>aLF_HP7Zp~p>TUE1w=vdNNFIWU( zVv@)ZXKRUdB?*Gy9zfA_cI=unF*;g?hs*KM)nxiOA@+IF@ffj{okZ4m6gk_^$yezFEI{F1CxGo zQk|&r#xruv01;iWU>!TUzZf|7;G%;8C_KjJ_4}ee@(!%-O9IBb8Cq^;jtdUjrTcQ; z93W2W^M$q3C7t8c2^^r{vbb)u{Oo@S3=dgf2Rg$RK&=Do>7#)VFf_YQ3wl3el?Sj4 zTfQ@d*grdr*;5xx{{a-A#?KUa8^yXLVjk9k5@*g;XQ7l=WTpy^`wEZP{UzOpwEMjJGgxeaNmUx-T~m7 z)%T>%&ivjsCa-{7$IoqLDmZ>M8e>B2`*_lJzz9M+wO*%pm)PS6T^cw9jfjJb_q1lZ zp~)&bxv|Aefb1=cB^ybU_+~XA?{w>W|9E4>O z>Lg3|%`s61Gro_vLVzP$yZ5vim_CzHgjijtK8Ld~UZBU@!-|Z9T6sHSo>)EvgPn{c zdtD8pz#ICDKi_PnNUM59WEBu~dRT?hsgtw0x6GJK5*uIBz_L9pRc8H|O%uZyx-3QO zjt6biXVo>@I%(5AqKlM%g004xmRW)r&6B;*L-cAPpSEa#V7zGXnbaZN0geCwPK5BC%JeY+Y&jnm9B4 zOos@-XZxJcN|g&sgtfza{D2j@ffXCN?l>So;{GdEUrU{`&gF(2^R&u#O8J7wTY%xx zIK6eQ%^h=OHb?KMTOFJnLl{ruRv}~b zfx(P)iRjpE;L2ijsR3%3x72v~G<^woP+xaXo-N{Ae3rlZRF&`Yk_?1#(gHPj{>5z1Y z2Lng_BtT3CnZEDGC_H0Bb zyalYbBp1l=m}5nrfm&fTNlR8dzP2H;+XFif7&#wzLKJU#b;{s_2#gP%vN^y)HyTOi zQFP`O>1j#b7bdz|DpjWB0I;>p*G|`XKx&u7s^49L(S{^Sr!~|m+*njV90J#Bq@7lE zkjJF&RZF%ygh%XGD2+@FsQ2Sz$T)G`wSX}&s~68C4;V3_RlF2+=SxYSHOOpDeh-*X z94lSp9Y@jC14WNPqSY@qL+92m^Ol*GhnC`nhS(rGUGIn`V$41i#Z}ih0ODc$3Xxi54p9Ug$F`mTne8dg-&5#n6 zF-BE$%z}St-Uj;k*=wwvmq%e^e@;`*a0#j_v z??vS280F^#h_j9O&N`OW}(A?+kMtc!`W{yO=ULIozW;pi5ZqV(WH z;NI09Al9(O9FTsFbl1>f3`SSyGU76Wk-aQ$In&a8q+ktWy&xJ;0(>up{4&cOJj?I} zBhz3Y1g>i)CgN2T8?!bW5ZZD+bJoTnsrzL>TmuZb$9|3UO9knrdV7*1Uq3sZ`sO!d zpBnaaIqFIn+cmI}%LeJvW<% zmf{J4u9bsJ=NdAw?1=&HfEn7ZbLM|It!38hHv;08*XyN!%f=Ni@o-oMMs@i9s_(~b zQ+0zabKagwD#{j**q2p5s7o@Z{kbp2hbUl)jw~jVb2ow`r-)+!%IHZv_pV!Nlr1TT zJzL8!f@1Ax%6>0Iqp|NZmd0Cc7OuOl(DDnMI)gL2Ac#%?O-rC6)uAVL*b?)c%F+(o z!0!ea;@;688Uw_&%@eCsV@idE`5u5+lm6KlAJ3_Le9L{RtkP;U3;P(O?Qb*NlwX0X z({q!{7w!@W>K$04J{VzaO?0dM`;3MbbeDmO2OdW_W@zP%x%=?$eOnvm7VzA9Z59;o z1&E#)%^w4xE5=CWdhrnX9+AH1UZ`ZQ!4A?wbdoFQSP-EbCv+F@rE*sNkCl%M(Liqp zV0WOM@FrKC#1fYQaS5dU*;w3`{=a3yU@7fZVsc$?@+LT_JC1F@Z$!Z)iZdEJlqq&> zwN`hY9<0~Fg4mJ^59;udl-Pz|-Z+|x(NGQ(iu^+_HOlt1r7RZ|w~Ux2KxBZ!;|zqz zuxiT}YJeqnnNuF)@0m_8Vn?uTLVzHP71l#jwxqLSSWe)AULHcJBiuB#{0bGK!mVtw!g9gpGjTQN|+G@lQA&1 zAVzb**^(Z=$*hP$V-1gq#n~ehaAJMK-S7IFqU5+eqYx|>ubX|G{f%>h8gg~9l!J;O z*W$d#5VO}(XS8T0+~D{;r8U(YpkW7$5I2B2fK&G2b_;WDGx9lafJ^4wEvXi)YMF4U z-mjf%$D+#?pGLjnu=}6sqs?;Mf>?Yq-J$}aZTfEyZ+?Wfm$e1(U=v>WZeI|(6p=fDUf;_H(iI+69G=uP_<7})v9KS{#t2xPBeBJ} z;o({J^|{g}KgIm8%g?w=?oVp3PuZ0Kf<#pl^dL67m)%*j0zW@ zKwE)MY*E>vS)FgtALi0M!D!3ie{0sZbZ#xXypIkscU*&ge3J%gjG^uO*r;Q7il}o2 zL*Eq7Qoo;dlm1l3309lTyew2NAJhOSz$$yEF>;N>I!14tdkwgyv)l@lwPjR+;+h_{ zl!w22k!)t?GkHCrWFTWUhE`v5i!m_6vP&nGGf_6YtWTU_7Lrfcd{4~#M{1AN!_(l$*P!i@EOOs+c#^j>rVJ;KTt z(=%Q@1TZ-iztPZwzXkfgrx!#ZjS$1pK(>eb=7Q9g8qRBsw*tod=@bjThyozu0V7}I z0UzrfIbUviw`*INO*`;|j9Pb>E$VEG3=u^GZ&WZKVx3#q{2W)W94LzR=fOF{{Gvm^II?R|Wpf*p5@wvwfevDoj zURmCfJOL0z9U`tKvHM5Rqj(0B-19J4^XBs&>+HcQh!*B2*izt0H-CD#O@ElnQ^Od& zYnJ+8twG`5Dff)EW2+{W+KjtQZCfmr}%LxCCs z6mCmQ1%NS0%ysta$(zo%phNW7XHb#n0IO6U!P1<9!={d(u`t)Z zu6qF@=6wre%DsSdX*}JlF10Lh2{3cyiE>?lG3_(`pjPFyc~~=o<#3VhoVY+HhE*?7 z86)@AnRuM3u!+g|-`HXxK=vNY`|dSFuHjw_7^_#bc;5}Mgc_b_rX0Ik`YZ)zFhKNH zzOVx|My0W6HsPXMiMUs84|T+ZoyJ?qV$araJ%Fj=N)=qf_f8q&9RTsQ(rZrKTT_m0 ziTLAbE5okIzYJ>Y#<-tXC5VFti#U!O=T9qO_PV$Bi*A8%RyG-&7>m&`%m6LSH{g#I zFV*^XB)>;X)#5O1u9a(~dnfNjtunM+0b?P+1Aa%qz~fb5={QXzAbRC^D@qg)gE2WP zOMx&LIG&wn!epJv;v(X`@c#Bv14Ptj9pV#wzHXYq((C}@TeGaCd#nYHi)UhX~9_GNx6;vov<&wU#HIBTJ&^5=nDFL@}?0+cxcB0E)2{)lmmIM-kN zxPtdwqEWN)9{4@Vd>J3ESiz0xZEfqLy54MDrLtwPZyo$K6aQLfR+D$l#IO~Zm-5sQ zAiRI=cy;k%A&(v%C)#HP#}*|Rb<}1_1%p9My7WQ-hZ!I`4G?9D{5{(rJTq>tMC2=0 zNI`2qhxoBAN=^n4g?<+qAhSDSc5Nnfn3cx>imOO~nT1^WLXAG{mpjgSfaU(y2c2Ap z0pn$TI|u=`hXAn;u(tVteu$OLzv6sN8TU^20>Z8JuK};M_wXi_HO8ealgV=VByzR@ zhSMZ%u@Y?~D+5H0y%=c|EK9TB=%NE_{tXZ(#+g~J8-gEiksIc7fgs%?)fQZaW5X&E6Mr=S-4vuJxD=J+PtFMC}Qm@Lw1L#%-iC@@-hIa>x8Xx+1k z%*OE8703EK0$QXHV-frwBaCSbUd!PuT;6$^{<_{OKf?jHR9>k z_IQnU%(2<^z-awyToQNzL}iA1aIa|;5Dfs;C1)t}4B*B_mIl7}PM)6f^LU#c6m*xo zr}XThDuP7ZJ7L4FTKl||x5NrD<$5TKsNM<|`_7CKtiXZAS&ynS)yJ2L`6A_Kk+}m= zx`X=RruG;~yHg)UHMEQ@aedkrQDcF}lichQt8u z@G)hAEe(PNkVs4tEzOspw2{YeAn-$$$V@R(Xfdl-55UMPXx297TQSJ>L1r@!*EMDE z^muhGfuN_Kn9i|?ts*nC%`4zWQ5(v@Y~mb3001BWNklQOf1&kgjI)1)Qm`C##0LG9prhIPESr`Kfi%j>KS4Ab(xuhJ*2Wxdb3=B0E? zIi)`OTH^h^pZl%H*sbGw{q+~s%*goE>O8YVTe!M0z{GHaX^k|lSq8xJ7$S?#o=$NF zaumcCabS(^<1LcitCLJGyb@a-e?jm2bWI^1BKKAXE*4+$d_#;3^@zL?RO^&)b(?n6 zQ=mKJ5+`dQ09d=0MPRfp@118i5H=lR0>p2c=9XoAYtC(DS+AMy0fuYF${KLI*BE?l zK)$Z0Ni2|o2>{0KKR?0<;L;s%_tTUfGZYndIe9zM2$B?01NnIUdXugTo* z2^6)*m&#dNuQlEJUSsr4+3GF9ZWZ7<07M z0roPn9)jDF(w-{K)Ue~sZFP9EV6n@9_*P=`T4si+)LYkp&#n2E%J@ssiu_WhHI&9vI2q-PZ8VQt*S%*I$!xc046R;Rc$ zt>?fm7edSfNo%ZGW8jW^5d9jCO`f*~#I5Dzx{@VN#e7TI zHAc|Oh2sWZ9$OS@B(JP1kdygp6q) z&cwEc*{sZswcYKa^1VRp-eui-&$VD)TP~jGu23pxEog4Zw>8y)x^8QsI>OO4M~@GE z*O(%0-5W5d?8N{Qf{N0;irqcA*qF5%MPddzu5?4cdoaSV4Iu)Pj8v}I5OSxNP^VLb z-;DBj9NlTI8p&DzymU_nP}3nQ>kC)RZvjj@CnyD$-NJfh1I5;1nJs{mFK{M0bbRgJMBm6!P~4D1{@db37wfQuV55C8?R0Q2gV8Q1|( zS;7@1dpgfx*nq3T4tx*?9U=H12B$8#UU4#vM%W){el)|n7}7c)ZP9N@HzlJ6Q`$rSCoM^=&}Z5sHbpaLhKHIHwDYGNADRZ zmtN+rz?hA^U1E$iX$FW+2rw?Y0iy$d3oZUM=A0Qu6`tiA5mI=rrN#Yst}^PC*HQ$%hB zvz`7oi}V?z#KZDH&n3qjm)xj<#OU0N#6&6g@Ro906)dG&8ZhstxK{kDusUNya8QP; z#;0X`ly~^b#u;Rm9T+;MGRT@N^Udb3fN%#siO3Y2)j49{i?O|Cy7#@-3LCeG&mQR2GD0q64NHDYBTRic z3W|Nx1PwGB)3yaKDppTHOq@nUBg(W=OeEqKraTUo+jx>)E$Bz4@rV2 zsqr4pQyfOBocEizGqA+uW$_XCddCv|TB&+BzgzNoy>$kP04}@*>Fnhp2;t`Sst2*M zJNS4879lqs+-_7sF<56XSA~uOJ}mej-okpemT~L-ZpoJ`yGC$WQ=gjq=D_hDi2?SW z`u-fS*MRBuaU~N6-Pr0m#u&*M!k@-taUeo_H^t`dK&YG5;%bF<`dYf&+Gkfo!!@(@92hIao3_-$1Gc4W?gfG|bAKz-JHNyf1La-I7H>{1Sd9a^ohcbOs;-g8 zbc9IsCPGhcIY3x?aL<`mexVO!p`ko1kwPPdibnPBv9^(2rkLxITzNi^*H-}}=nnb% z2;T)}FwqwlMvwa-XiZkD+7Uv2=>@ZuG*kF5V3ZRmf}78dKyUK5x{n{?Ycj#L_t*lO zB{0f;uf2E8H6^g&R3jE!DyhuH8JA0STmy`2%B?!ypyXvbcLl`cIDOK<5hgC1Ua;5Y zfDMSyjY?#lp6?+xBi;|k39gr(HH6-$!3HM_w$RH!OY~Y`VP1MY|pG^K|SqzSToIanfW-{cL38fG=7k4pGQj-j@kDBp?iU4O*yyJ zV{Q3M;Flu{xodb_)YgNKFR?-|mCk!0_jws3?dL4U8g<)(9jKtr3X-@1Rzqs7UiV0! zB5l()1A!jg8{4HuFU}gI8?6P#t0pPrU(_je`0_E?{a&HNFHhM?zyB3EG2JT^7Xkfwlo%Vmb*p~G?&=HL#@=EPx;Ty~@n_Y9t`xC|C#r&&zteFUJK>gBvB4-~J`+xsHECg5=S zHTSB?QyTnh%PL*xUBAR~OXc$z<$Lj1&fR+n7}t=Qnz6ooOqZ&rfF++okY|y(4$yRj zs(Lzt$c*l7w$!g5U3>=Vtkp<52@8$}P@wmlL}}daz-f@HMkn1NkMYZ+&4Ez}Kb9If zm&X;K84!{6@o_hAhRs<6iSwW_^LELZJ8;?U#iwv~tu0e(VJ#<%>$p9sy4ehc*b*r5 zMCkRYmZjAkuPvtpcxwRa)_UZU2R^lB*MRw2fLsDZE-R-e%#B~k*; z#{E2tgmV&qE!cxxjFo2?6P>M-R^v+}7grnGDpi?Uh#F$d3@#=qdQrBq(V9%?Fz=k# z(9^LS_KEfyvlu$e8WYb2`d-uf41{vK`+0^G+y|u_-3Q%edV!YXwayYj0Wn|?fn;&x zsU5iC?CrVh0dXxWS#$kXX1Da+JHJ*Zm#ae!d{}?JcF+e0=ZQ zfid;;-#TfTV*O z&g;!UTN+!Im?Boz`%LF8j-okNgI^%#VW48hhmmp&3=!x8#W%!;G|*!mB+fh?#7eY{ zq$W`z1$n?|*|(<}Fk1tLYw~%`oI5Afr%Gkj_OV)!ss;SDZQ<2#_)2+7EU?rFH8V$1d>+1McF4;z#Y_mWzz^*- z6z2E#P%&Wa0O%MP`Gw2^#p*75d-(of5pmS3KLO%?8z9~SV6_ZsOIdub78Iod46_q; zWvT(~rDx)6Jl4f!-Am7TPkkwa?^3FHjwKeVN5-YCi3y%U2uG1P1*OG6Dk8JxvbM=p zDa==CCT1`dTpCE7i@%pT>UzslIgNX?lvbov0$pvMS>-ceY1<71vV`qWe@LrNtPBHB z3_7VWDDX*r2Igs&=d-*JR{c4Sfw}xTm>fqI<<~i_~ z$M#C#?v2e-UQexs*WZ&F-X}pne>aN8p>LWP`+khMsCva=$*ehL>k5}B^X&yJ*)l*h zjx>dpF8H9BSE$j^;NqoOS(%95Ya6o*zW?9s`&4nb`Rq5G4~{;MAC&KN)j%W;w+>Tm zN%zOb788?qdhG+nO-vE9pVsZEvW2m20mRy4OJ(wF_{covGQeog&s_#~dajp(a z?dj>*^pxUs&uq%faO7>$^)!> zKIon*6@a*$kS=7Nd!!dxD`jW4x4V z0P{AYgwm5pOrZFpt6vNhF`z_rK#eQr9h+V*NBbun5ohgla9HLV@LSU$*=2rLg*u=& zea{$MymGI=6)fDSOU(H}G3a(+MeYDVAHmA}pn8H%86<}U%e3K^JT=T~>+jn8<$xu3 zzEr22{=4>hFd-1ch5FP^1f_9VYP+Q|;;}^U9=EW#TJlqyYJf3cXB`)NV2dvh2}c0P zFe*-IlYAyr4eJ(ZyVO$R7n-B*w>WZJ>i7mrJ&8X}g}5yAP*)MPfdw+~vXyx{uHd&< z!^w_xj%r95qG<17f94=^k9de{0P)`7Sqp?)LD9P=*F|#o@{%Vpd3CO-S4nd7>NSl+ z`Yu$boL+DV7<1R~M9@3ubIAkDdx+B6`|eDV5{Zwxo*4tiimhmY$T%F8ducXfkUUpd zvuBM!PT*N^tehph)OnTlzI#2F0gctFdt{zf+(Gpsy~ z%bLO-HlnIn%e*wWZvn%#;CL$#)?8ByW?mQY&hca}nSNNRd+t8o^?YopJ7Zp~AAd(6 z%Z;O)NG$X_2d+6VU6Yo^eGUh%kE?Dmt&vVk0Z(a7bJL809Q4BhUe6Xh0)o*-i$kEm ziOT~$(YN$sxY4F-z^~DL;7l;uQiEX1f+7|YG9VJ@gG>=4Uwb2Q7QE6irkG_JMdSzF zrR;&6uW@Su^Gi&C_+HmER|a+{ovZO#V2x)H z?g0=(qidiomn8ot9P(G&(h8tmSDl$%(+ z|4iapWL&BX|M&7CL-cfMUj6yGN?=&3-%{Bg0O1G2{`F3~;5A&A(lLJa8W9|?lN)|> z-Ew6Oz?gOcZ2LZa4^e@!fxs!l!>2Kpd>ldF*o+&>4MAuv*5Y|QK98jcBDJx|mc(mb zbKQ`*;r*XAS|Jc^DY;A$0Wr+k+|`=n;DDr89{z4Xv=--H6d`A1jLzo(I!9Z>-02dg z%9P7kDxenVN}!axhMO!m@07sTt84CB9Hcy0y?dAH%Xtt;f&)CYV2#OBH|5$(=>9dJ zC_3&?!t?5GsiEH`vDwOD(o;$}me&H~nsj}w5{qBQn1C?sV~mM8cB)@Yt6zo&ZJP1B z0^rLCbQb0>o-DX527X5O9z7m37)4NBCHg@|hzve^Skf(u(^y-!F35u-8av1^!o6%( z1_hCIK`~QC;I)^k6U2R-Z6`9^v_1ugZGqZjJql?HAbR;~fid^JraWFeR11hppePy9 zkju}3Nv^&KBn&J_82A|(6fyM#N=xk`at(^?AQ2p(>!F^FY)ahLXJ>HBC4CYq)hw<$YsZ>d~a`1E&({F+#DDkP~m=!-Hqoa)Z4?7^q~)lGz^9SAY%Wy#yS&a&ls%RJ=a#*>X&S z!BzlFI1suAi2Q5~mDfA}*~Jx~i$z^5e@X1^i7lRCH(U?oJaA;74OAxIf6afq#}ad0 z!U0Y$FuosIVcMT%I(O7{(v8fQ1fEPBhE1=6?grRj@}`Zj#JJ68BV>_5uv9Z3zV5F#Ur>SeIaZ$8W0dW@HIS;fyKgofuG_K0}%}^ z3$8c!0>mZIs0GE`wWaGynui+D!*Y0Vd-vq$;4*U)g$Ig(K*a;Z)_G2W@|eZ-keA!C z#3&hTJs>-Sag>9+V7uWtZ?|1uMxA{)eTW z*D%YxxZ(_r($Q)Z4-g;Ww}k_J4v*I#5P(xsWu-=6A&Wg~bpczX%K z5DAY|0$&ZV<;Ht1mGWQC>G(>(cy>Q3D&dOG4ZZHH!UUSV4-dV+F(={+K1VZkqlBwiWStoF;ex}g>$PhU~_5*y^ z=r-n(GX!-A@S^S%?Iw54n(s@X=dnG>oRiFTo=D9a4tzx%)WjRyTo2A$+pf9pVW}a8 zXXB{^irzcu9pJ$a@7%;SXxhGHC|?^X}7@+cL-F&i{(WpaIsls$!`(=69eUIW-D3@5GUhC z#<;?$Ej&tdo6L`8&kQR&2N2O8(LM97NP%1sQm#4%OS!8aBG3IoC`1~x!G63TJF<(gsi3U$^Qo?dhPCNvBcCJgH za(Tkwv3rknFR-1T({cK~X+lsRMgzqc&@-Nfr;M}xT$Cx!8p#-3W3(H#Tg7_@FuaJm z>EO%3V6@)MyriG7YdS163uewJX{pehyAFxa0mWqVDcnJH>}gLG6_F3HgfICa@}~H& zka9qf`;Ymy0AdLsrC?}bV9bf2s2A&<=coZi?|%*yF?oVSBw*|a6uC{9x!HBzy=p#Q zcSaH0?sum8V%a^_sdxUz%(Y&>Dlx`2pyuVj7s$@bQNv54z-W#7Ek-boFos9s} zA2yCbWwxIR?W6KU29`bOIaj>M+T%6HmVR@SEP>xz#^}vcvt{It(LVQFJP`Rl_`Ie1 zSjy?q`i#yE!5qcsrTcq2L3|z$kaDY1@H%Fl0T^~eWpce36wj2mFGShGy2u?s@HNvF zFg_VDjy{WVk|2|tPC7>ob+irhMP?z$EKds!XB*<v0IPLHS~-Oo}MV(6EJ%Iz?eK% z%H`oi(7>}b#DIIp2*drL#1Mtf@tEd5z~^#!aNm@62TZG8(hh-56AT!KM%UFYwqj-S zbTP&#^EJx7lCdtv(5p2%05A%~c8u^H#pns_7R2aTqYyZDxYu%kH(Dd(3H?VVX$;X^ zZtR*XK(w93NY99dmc6c6L5i?Zm$(KHbJ)+NIIuST|escWE zJ+T(M2VQ?BhQ#%5Xka23BGBZzoTn~mC7&WWUZ2TVvee!Y?&UGWhTa3VsnzccWnufi zjd+_cw+4WP+M;}Y8q;kn-;MwnPW@#!6vfno>e`T8?} z)0sd`pnfH`=8d=DT*vi|1dx&1Ba+S%@9%*TpYxJ;?H0hT>7#zR$&WEviecQF7(F!* z=n1Draf~KrgJ_j8PS+4Xa+tE&OU?wa<%Z%$>v+Wof*6|u8%KG z<1Bv@DifcNfjS4W-m_v^*xsJ*)V{NI_~eNATyO6k@V&9F-g!&BBBp_RdhNu=Jb+tj znQhcz>1Y@ z;5u$ZufbsBR{0WhzZvXudDnoVR}QC= zPH3y>gaaD~|Jf0Z8%NaS!OdW}r&l774}V+A858UkqK2fy?v>Hq@o!8Bu7SFXKwI0h zvncDeo7dGmfXB%M{ViEviO`XdB#G#f}y3Bx)8Y60baNAU703J|wxi!fRR%HGL12V_lTjc9o zvN{|4+d&|Q4n`p=pc;L+JG{W$e`eD;04xEnWIC+ZS=V&N99xVaEu7%|S%2FE*%E+Q znG6*6%694vWu8%iK+F0x1C<9dLIAc0z(ug^p!_qGH3WEe{0Dgz3|HiZgUY_{vO~N_Qyfs~w8PtO$ zj$jyeF~(NoGg_#z7Pc@*BJN4IRTZ)%D*=o4(jysOX1W_P+E`t9&uH&OU_*5XfQ-)J zx^frfCW|%S(lgv3FwXW@QE+TE;KLH~tVp>_xr3JgQz&mP)y&lV4luF!>gDD4$dg|L zAZY*?P50(8M!Oy-?@s2TDYpe0ENn$rPxWCid;r%|1Y6V%3V`8@KF2cvW7NC{0BwFI zbOCAr{9foidhgSl)Ub=^`heF)_&%7qqB!m899hKXNxRg4mO!tzKdwph`zkAZ2iS3p zF`g`TV$;aSBwhmvda)M-OwcyQ@^la$b7V1k_F@XV{BZ-%oVPi6EF%JovMA?X7aq+01{h>3b3@J&5>cuJL9U|52y)+Z_lSj#xzzc1FtY21P}$5ZkTn`Jve#qo zIi6M`XS_g%Y8D?^yzR-#%b>VZpI-YsDmXS!FEr%XVu+9G`}$&=bhx^K;kbE-abfj^FXs`@*t#B~PULv%xAl{a%&kFO=oG)VzLJ7S^`95f4~L<=J7s4 zZ?GjF#FoV49RMQkuL7Ic58Db%JMpbgrHgWpAcb~Z)4rCtl{YXAVzY_W_WNfM`5+=c>30Lk1gzg^ z8BYMJ)<$+6f}>3q5sveF@Scm?8^5zk0VgJ$WRL+eC<>J!a6L-`+;@0l^v>6^$C|_} znA7!rble`s6)kBsTV%gv+ak50nHbe?4H;1IrQlA29)X%Qg0tGiYpAYumgk|dW!jt` zbc;(Y4j;0cZx=9$&g_a~JM}&4`sUfjQ_#RSyv!V)FEN6p<9r_;SOUj$`32qyCr@nS zdYs@G8z2}IZElLhPR{gUW6hZ?xLB8to+Bt=B{2L}M1BjP_g;bRK>^ah?n#eZVD%qF z_bUZQ%Wvc9&m!_SWtN|Sg<9KuqI%+U@=6r1t)-%mAh4n2*OC+v zU?TFsmVuG`2=)z}yrcrS*0Mz|2kVe8!@Ns0Vh*qAoQVq46zZw_%gWQv~~W7xfiv>>O4U7z|*@XS02y& zB~iKb3~NN}Km*E>H*s1sqlnCg8h*vd9I=0KKMDXo*5BVNXng}9_BDJuVp5h&SNN3z zCf2#tvVN=ozjMaTUeEnQLDlq_2EadPzGryGNPuYHXC7shi83iO)EF zO$>1kl2hKPK-!er1;jb%%`DH|-1rjAPjO{@#HEZSR>=QL?6EW-2+h`>j)?Q->Y5XW zIQ5Vp2N=7mi1y1zc#UVc4~t`#&+Rm=BWeFrS^r+k{k0Pj`!|~Jk0SCX1;-yiFS(<3w)b^{?^s?V!b4-$Zn?zo z!~;ZTf!qgj@7FpXKnUkad~K#jOn~*TBJz9v7;AhlyWL*Q z8Q&(q)9Kyt;R*403{dZ*0=w1uJTtr`aGhEsnvv(A_4`OV$|E^=H_&G6bLhQ8q4(~I zyEr}@DwErpmtNxi_&C0EDfFQw9H;`cn-kg>U>}z&CIMTS8lgJjN*85u%KJ)Ojjs!?T{_-Hm93A+YkiG+W<>6-^UKO6HwjZBe>%nlqGg@Q_3+vJ|=WN z#~yKpN5wg|B@QM&x5Om4xl5gV2}mOV7VE_9JA)!JN@Tb=IkS}G>A+CTOnSlJDVzK6 z^!vXIz!k!ybX_A|Co@n?|I@Ma`2vP^?)mvE`Sj^gLF^|mt{9N-B!u^JI0Sik7~L+? z=i|p;%klUG%Sy`LSq|w?lcUJ9w_2);&;vOoAY?Uw$#VCtfgaX z)1?f3r|q~sL1-*WaK-UnsMlB)WOn9*$OtiO zSzCwb)fKPx z1_(EK1b;ruyK`J-c21B4G_stWfz{A|YY!s>PXL6bLwr8~;%;ZG@UmpHg(=z2r%pTv z%uas#DY4G)!Fcl?-k~940dw9drOWwWtJJ#0&SF?Hw{Woo~Y!=V{~%s^1&0)+NS=Mq?c z`t&O~oqjt2VhG>L*IzgC)mI|`b|7D*yy;j1%JhlxAV2>2d#&Rq1yzCP5`9iyj~zj@ z&h?wwIoaPw_9lEbf`?NKI7*j;6bB=ZhRyH9u=o$q85!X1QnVl72&3GA5o_i^Y3)P%qQF9l%hr zhw=;zPma;W193i%>?l&Xe+NIs7m4vK!8UKxHf`Hx056^hQLMJ*Tj1z$8MS}A?_d5@K8p@voRE(4^ zH2hfP&b^x)Xy*9M5^JnYImUU#7IEoR2bp?{wFpc2LZ-Z>O7cTxafWsS?9dMp~QRG86!YJA?cj{?tLb#BPtAs})OHzj56DQ8oiu}oU^(op$0&DzvF z03))3a)a}C?>~R89t}P_0E`{6g3bX;1Vsdy4n%DfqdzJ5oFGsGG6|L#aGuiZVA!=>P6EvIf4pudA3r{+i;lI~d#&#oCXr9j-YtQdwc87v;g-&Lmu~m((0zAR06xVVvN)8)?Dvmj2(#44eZW`Gg8k%A0Q9Y;v#Z56%;O4 z@vdWp@IVgtQOL=EJl$Pwf`zUIx>XLZl11VmSakOTE)kx%ndnfHkAaJE*s{i8(HR4X!fZkz@8rt+GEV zi~0vJTYJ8bWT3$M^#r)anx7_@7z05BEfk*({7grfet-OU$(IZ&i6tgIVq$;EQf+{j zu1nV-TTFRSnVtajn{U$pCpjJ;6$~xV1Uig=f;HB*Qs)H0DL(1PCJ`nz9vk#PF(+C# zg=@SqkyCMqgC*WITYzypV454Au6Z_K^i+1n7)iGi`2j~+`oaRaobhyqywdMDk+cF6 zjB-syqg*zu7D6Bd!d9-gOf|5KH0qX`()pibgeb{30Azg5uGx_&+R!7gc-@gm#R_@> zBgKn?1%gjQ_xK2_E3mWW++&a_S{-aqKM}Au3WC1{Kf!Nw@LQdDIh^^~3U!N56s?Ba zeTN=bur~Rf?DyROQVH15N<4L_cmYBad(-!nf7}r10+@*)9Lm*eeh*-=>z5MW< z2Z+HyPh_^I0;VXi1))`t^pdDkwQ>65&$H-Co@Ra zIkqr}1fsfd-~%hy@|$?gAp8LaoM#0^L(mg2UOR7f`n~!L{z^aZAavIWL}oP1yn{Bu zxP~4mqRutI^S&Rzw{4#WAWMLhK4u+Gp9EN`6DQV}j@!pTQ54jU#}NpVAEN0K4HVP0 z>0_=r>0Wk^l#**s`lR1Ugid9rJU{;UUVi@hy_`<()z!x)i3eCqU~QPr{Xs|Hy zBY1rDA%oH3sL>eV5o_i7iUy^TAbQ#zl&R)GGXpC7b7795tB z_hG0n)S;RP{hd5Kgc&n5{a;E6fYLEr#ezCTW{W8go@c!zUt`aB)@Dl2`tovl?gVnC zcTDUv<^R>MM85rY6t5E-wR)!Ol5R8UBmeM+U&$Z;_&;j9d<2&L?CfU9st<37un5i9 zc`J#s!d=C&+_haSNqgi+U>-4}r`%-*-C6JT0QI)X;2VfL7_U6{(a16W zZ{&P7e|l@r7IcJm&%^YrAzTbbF&fi-81}nNY%2kdF+|iAnpN10BUT^$h+M=b^g+Zr z<8jO{;Hr}V@WY4kf6ABYg=HoXOrHdZi8-eF7(-0PnFNZ)Ovf@GubdFC5Fepw}Rkm09DtU>5ZAo%%paM&|x#TJ#zM*V%Cv^b}#c4 zFDPQSCcQd)y9j{dq_|9qOpAgO356^ns^Vuh{i*02KwLhnxNO(634TRlF@vik#F_;1 zH_%2Au4#zLdE$0(m?^sL9Kbo4=Zih$K@fd`=rwq6ffXekJcH z4ah7R>%%}128af%>Ax{f1hsVhr=LXr`qzu@(L`+%v48tpk?+2{i1T*;^hpdc0qPGw zjCD=lM^OHaGH_cl^h_>G999vunGn#4hFByO>Md3 z3ymD8!+7}&5IlDotiGpy@K|ULC|i2;Y2_l+ry=lsA}4Ef)v*C_q-VkV@O;%PW3l!y zmCUnRNKt~2;hr&$8&k!&m%g{Ue^7%156&KRk0W>+h#^=ZK&Er(f@2_MxK3cHFr2olk zoj^5RpT2+iU=zpp8kX!&-~fLnKh7TBk2oN~9|k{9TwVf3k1cY4e=RmxUpA5?6sKry zbgKY3S(hoY4L(#u9erYpG6%-eEMwmXrWh0$gUpR4OMr+iZcF?oq$Y9L13*tUsA*FD z-&3`a3HAht{MN<$;AC*3l_^gE zl+Tnug0Aub0Q{i&{{#cv*sqnppBQW3_i{Qlv#2)gG@Y21iJzy_i#$B+CwCfTa|wV@ ztj4lXT*hSQ(AUxKYod3mTLQ8KXy1P?)6zf#!c>Qp=P!R5&;RXjB7gq#c+L52lgwFl ztKX|j&i9}*{(sa8{Q&^+L`+-62QQ&_%(}!9OZ3KqWQL`eZWWbFsTvq6KZ<~QvR?wjq^bOpfmve8A4z^L7cy@L7#^oGr}OS1}NK} z_Xv}(iF2Pw7kX4znfCyCzX4166Ro~EgU&Mo$R6c*G!dTNne6$0Ql>f@ic&y_^hx(h z@f4H3(ZpB;KNF#mfg1ap-XMXZeK(OhfpG%m1h}d5ClE}4m_7#BNi_cP#}Nqs@P}UA zZT>54gYW_dlq0mGIdA`@+a7!(R?UVmug~J~92;CCB76PYyO&oduZ~+&?%HdxRFJYx z*n=m^NkPlRm1!`55e0Nwp#>2d8BqkrAsPLlmpX66^V4{S7mxo>dCVdN=rHss@I!jG zdnpj^^!(12`^|5e14OKf{carc84IAtzdaGeyB=91f+C-1=W%0_xFpb4Mttkk_eJyU zz~Z|HaNGeKwSM$>ZQ`E+5Y4J=5wHc?HIRsoeX0S5`jNu;_W-Uv0q|dxNtu=Q{q#8= z)8||H@yBna>%JL8Sre-hke$yTrsv=79wq>_6)OUUB6OWeDKWiNhUo>9RXMGKF=m*K zCH9(_;UE5x?)krq$p4}B{a(TDCjdVafQ%{ssGlRen%+i48ek0C*afVwi z;g~5gxYuBeRh2VFXkpf);=>65vT;P_Y0zQZL>u_HB>`Nwg!)sXCZOgw(L2b&eB9_~ z1Rum+H?*EAZcBH}!mRm^@Sp+ErD0&W0ip>GkAOr!4XW;3qaqlY34RbyH@o{z(DFK=K<1xNxSWb&mj6|4@KAfe2_M{YQ1^ ze$ej$mi~R^tlYu55?Rp^K*GL%1PAaB@Ui*tadHzHlNl^55XGOg-u7JI4`m&X|6V?P z_>~-wy|%|Y>AKxyMYd&x7(vIJy;Cw#`5*sC*Z;pF^1mrV{Da=}@7fkUJll!hElz$c zKpkO{V*?=f6Yg8g5Itbz{!~K-g!0w0Oup887Ji2MvXsp|jkplhS9$0>vy~UNL>NS0 zV;V8ct;*K9%oPW*C`YfZDsB$qr6=={6|F^<$5`SFDZqHs6OHO=MA^)+8~24Bwk2qs z`Z#RQJLlne?t8Ah(u?NuJZnFSM93O(#6(l7oZEne1Wz>t9`40^nXJcwq1a&O_nKO z#qs#Bvkj1C$B1pwK9v&Z7uzsEvT84`FN(ANs7U5l4s0hw%_&aM&U?t_O0Z zb2T$+E@A#$87%(rtbc|_#A}enf7HQg?-WCE3Fs?dK;i#P`42E?P5)@l<|i7oKZ4=s zK%n^yxA*v1n;zs~Xs}H)W;4(M^^S>#We*(bcI-7gZpP@~y9AlWj8CLLo z|NU=<&*AXR0FGviNjk()O#UwljK~gucJ7~hzt+CS@a_HJCRiTh!~PLyk`(GYHGQ!p z-QFsk+ z2=ptG3uA1w;$uctkg78E8NAn9T?ZW?RLjD8Xb%_#+B&C$VSuXv%_Tsdn$x+K)h7H7 zjg=w8vO#AI5v2=cU;@`!*$*HdKSO;DshehmL*`)WZS83+Q25X?X<4l%5V|(VM zqWR?#At#(eh-{qk9$x6>Tuz43dE4R}YKCYq6f)ZYPSn-j0D7e>Q;c9m4iGcTfby*O zJi)%vVhu1B7>xc{Wt~R$fUE?9+yOl>T}maO^*S%J1~g>MUI%^7AkJc5n>%pXAKu%* z<^&9nL8=Ff^pV1$+4}2Gu)^g8VkUzz4&E~uDXfh!E+Mu@3m|+1FggJc+B|A?!)2A` zI)g^56U24=TE*|*NR0mi_5E3|{Xp#S6R0YTcm!g&+)wcRv!RXODJKsQu|0DjT$@;O z@x=Ih0N{q2jkmJ^5EwqJg-xj%+xA44ADd^&h4~#Q>{kOnmO)dQow@8%6OUP{c!w)Bey-WNzDB>FJGceQ+>WPuS8@Q%{@-6tRv8hi0 z5)Jh|G`^tU-V3l-Y_lEI8zWiwP(O2bK}Ppp0nc=xAIP$9fcY14W3uPBydPk~U_Zl1 z?n90h(OzOom#kt*Icu%sRxFL;L1^Z zA^;#xf{_3bKLX{QoqqFo1x6E#tzInQoS{zmAH{lJEYQF+urAM32?p+_OZ}QAgO8vh zKwW60=e6UH;57dU>WTW!NaTTmCIFCn{R7{nIQ^)hYq?+c^gjo5cufvCm%z}gzXzCH z-pwg$L+l|6_ii+}Ue-9PR4Pi^CZ?zu)q^z411KPnIuFy31>0W86i+dN{xHl%-{|n} zfHyFfH_M01YG6wPqbD8d6mSh&?E9giZ2!%~8lT5T3y1T0h}_%F!O;W099VK5e(ANz z1KwPx3{Gc5V4O82{KmnL;+c0Z1kWD&hgTnDi+10hydo@p1i-?0ic{aB`{Xw2LY-*? ztkUk!h9H6C2F54QXzk5$Rk4#zA-4H0G}q z&41}vG0e<%$^ZZ$07*naREGDsUUvSxC14b%gREtQd~I+#FXlsF^t_tH8DyBxfX-ub zkp>Zq;#_wed=2C~!K*+W;78K6@dVHih@LCw0h%~6ZmAAipLQ7e2yXJ>b#V02ftE6KjsnC zLaXDuRf}>9_6d7oor2~`&shh;P-E7~a6>Euzy`KAXvBX>9saNum@c?pa#tmPPO=9u z&p)vopCK)x52fx5mk)tm2!j1Qj?^YwHOes1>sYH3n1aoV~9itD^X zA$~lMjRt^-{S4PweffJ$;&#k|agHJ8?zsevx74|mN@W%Aa~|;_TE{eUWYXgSUd-?U zVR;|=j2WP|$qIe3i_BKU^kBK320{okN!JBM!QPHJ!;l0llqVIgqO)%$9W1`)qwjSHN|NHr0@^ZQ^Ss04^!_pfD; zxxT}y4!*xQ?N$q5OLY?msA|f773PSuKmc${L}{nkaa6?QOH0>tXYl~hJ9d^ii$^gs$Th>k=0~8w`_J^u&UpsymO#-G zT48%S&J4%v7E&0@Jm_<58WVyW>LwYOJpj)!rr@;G)`7p}It1$y5HGR8E%kmCfYanL zL!T{PHpLIg6>kb1CYPmrh7}zw7d8>vqT|d~8h~q03sPxN6&`j{>+ro?)>O}|&nySw z-p$j~U<3*POd0b;)-P(=QTJ51D8>|(TTmF;{t0GnYUQ#;!c-4^s3UH0V^Ibiai3Cd z=3ZipxqNHDHfB1;*?C6@EDarJAo0X%206YC>)kuf6T9>AHwBRar?pv;NEl?QWa z(&-7b`91KY;xRs<>#^M_I5U-# ztboyRC;t=kYlMdqXe@IgPwdeF#T-MMN^$b$29THU7O}>gNs&1OI>zFjz0b2#uJ_@3 z@O;N}qv`1)^(8KwLAhj{@UAbhpg@xbi`||iVBb9kTWW)vcH{ajC2taChKlEEKrZ(` zS4J%;dx`t`n&+>X5Qc;s;!kTQaX%LDR}47go1H;Jj-eOJ8Cc<18+E_IptYGb*X@7a z?XJXSPlWbl6{Dn{8P!W5Glf~t1AycW_Gi<7dQcc8jm{7Un_?WpP@YpX*vH zC6w-s-*b{oEhy&BdB1Dw&Ux-Nmh_4dm~6T4ti!-K##vclHJ#-{iyFMhz-4e}4T=|d zuJfk1Vj!zSr>k5Jm;d3hEIQ{> zZO0aPoZx&fl~Fr;N2hH5&rFibW6Q8-=n%RVKYR}!wB9p#YzxnMBC2Hm&*t2Ub}rRx zDRFrvKrFp8OgTpC^??#oXgoU#54S!D%ZXdil6a2HaAeYVOB#6>C(OwJ;mRxidG2W5(BV>De*mKxF9}e#R1m z+>*ThR02i@#L{zlbHHNgxpWVapq6=-QVqLUE6yyj41TpjuPEnw!>>0IL*(c7$}Zif1a3>uo6El> zI(vG>nv}bz2WCt6Egdfb>|3TaY;mdX{y81HjoJ!!qof!N8yYbBP7)*-N@iXvxc#o( z55#Ef%;;q^fT936v3}6|FAJk3H*&=3^=7>W3wLNtf2f~^^Z^k(+^6L~7qL4StE>dZ zr5E>_X$xyvJK%H2Jt06=0GId4rBc~^|D|VHlS*yF=hgyD3B1?5hthHH{F16<&AHsQ zxxP_TzqRN6a|n(XU&0G%B2erhKm;03COgFiJ0^eWUM_KAF%6)It}k}$oO}I@0Tuv| zN0d-mc(2RX`BCg)xYleky_0Dkb{8DPaPxiQ`&6c-j`3PRdMhy2mQj;D;93$}w=%tZ zrrL?)mU`vxv8K#5V6j$AuF3bBOmj`24B7Jvj@`xB5_BJ@;nV22K7nN#nO`KFP+}FV z?Adu+G%^#PJs>0z+66^$qDJssl8YD^k=-Sq!vL+-L%CKjoB;&OznJvHiFfGQ=C)Il zax?hW8*Z6>x6ar#?BfywKJ<^uRy#Bnh zM)ONP=zme4=NDC}v7aMiRlH!!r4h(SaWLNer`_(7!D%rB#)CRUTTOmk7!4W$u-98&wA z(!RNwpbz-89_Y;!l?8>-6%sKJ&o(x=^wz&6mE{WB*f?*9aFWsZm zKevIST*muu45As1u-{WOuNBZWid_5~Tfmzcewp|@fTCOmc~0}~iNN05F16tFl)&s} z=ZHya#Rp6e#0qVB&h)Ub9umu&fh_1O%{x9(?iU43VW6~+5Fp}j=CR@9l6;ikV|Vzo)4foWs5FB!=L+oF|@DH#h}@#7$|`LDQD?oYm1Y=rfs> zYQ_fDpJ>)l5VUePx&Tbe30qj&h)(2}26+<^{1*MBSC*I7=&#-~tpQ|@0p_~$lAg4b ze@$6i%J+uVE%#fx_r1#YQt3HvO7k{BIr8DPh6nf(v( zoD{$>*UH&9kNdY6o1^7{2#&aum)P1z3ln6a$zekqbM&<9MIYF=WJmm&6>0o^xgt2-y-32yw-qU0vcJ-mNjM7mQhOgXcNBYE$6xJpLNn4 z>>F`Ht!bRHV>Sk_768#{8&w6<76U?Dg>c5OI{+Gy2fhOc9th5uB7rF`p_sNSm;>Sz zkI{g$g$TRg{XRXMfvEW~M$;{5eND_h!){*Y6V(Gt6x}zX0S4Ja(Az1n?ft;9l{xq+xWQ;arckgcw>w%x@#2E^?KnOoQ*rrH_&O9j|_q@0lAb;qsk@R}^?R`I;{ z+Al#pl1qzq<82rbyUgRHg{_n=&Z3P|*g#)7pA%%(s|5q4Q16<=ZihuWL1<^FzI1P3 znZw#>3nO+?5HoQ(Qb?d)!<-Ml3=Cn`XeoHDJx7l_iNOwGXVW)~4LsZ!*J1{^hX{b- zdiGeO?^!BrjR>?Q{ZhcRq_@j4$(l0O+;2@>63W$jrJ}XQ7IY#+lY|)eaShS`f5oqW&f-`f; zu^RCXegZeys+>Sw9{VYZT%vNL<;cwER<`9irDsvYi-6%JYRt6;;;r?xw@X7xReWaK zAP4VvRzS5h%|hBy~8;>~sM)wdX>Lkt;)n^>IyEX}ZrtMX=s7Skz40KDNX(uP&|BpzD~D|$ew zS6NI%-V8aygUcmM*u`g2&$kMq7D_B$mibK}XA8?G&vrDtfZIG$9G=U;) zy0e4r7F3@xwC1C{nc-z^su^sb6D-&0NVhPrw=%Twy|(Ix*R!n8n{KZcEuJ`!<1iXw zF;A5=HZ7c>Cmr%{3^qF%WU@>UTw`kATq)mdbF0f(&XP_jw-A56~?Ta(#RoH?hU+D{;QRMXC`T)}&iNr37>}*WAjEm)asXK6A%z z6`Sw%PPVe!A_vQ#8BZA?#?k#I>S~r5FtVtOlHDxSVTNf6GR3V^g$EX1KHLfwSI-~| zjKCx#iP#2wwsHkPXjttMKooARA;A#S6NvQ;u%3sz0%Dta&e?z1H)8mv5jR;OPyk_}pet*g7KI{F1Z^f?)8uFaO((G!)I)DdgSsI7PD zcP`&sr7etao7hbIuJi<8;*7~0-Hr&5jv+=FWz34tnD{*BEnSbmfk1>}a}R)t;&mja z>Hz1?uso35Tn6T7y2>fKjarv`xg@l58})7g9D~!y>>wUUcWBp5x-qmvxy^0`M(-VzfV1WvrF)ltdwITuv`sYj&XFGR2)2bD*rBkI1y;30 z7>h!AXTHkh-`J~r-Ie=I4NxvUu?M0o8ViWh2!aSkRzDP@1C$q(ec4)Oc0w=pYy;HZ zEX)X^PNREDU1NvlF>m_F7uw9S@KEaD1Oq9McziA#3LA5APWCvfH^|&>E!!tM%vC{T2sma z1HPfTK79BkCwvHxWV9?(}(ZJ$3`W zi>4wt!TAn!8`-6Sb;)BdYp=~U*FQtr!WKEtJtiN1PisK$79ji5#BBe#0^%9i-is29 z!LR~*u_Qoz*3Tz!&^8b}0pRiWBnFr-mun)PyIRpQq{0BLVUP@JLcPJ0|9cd#-;wK91BgB8{w&$O1Gwv)*#!Xf8xa_)fu;F0np5`+0Hf_d*j&yJ0d&vmH@VdI z6=|u7INc%)aQf20^j@I0wv5_q*0RFfWcJnoxDNO#>W2mu)4|*LIx2HK(t2myr)6S| zj+OZYfOs^9NWP4|p(Qgw84#BMGG@SVItNSpg!~f)Kx@($Pyh(5U8v|4Q#ty(ft4#) z<&pk^={L87x%Es|Ykgs+pG?5F)AP2f=BQxV&nkJ>Wq@*rLA(Yye~E^mHEgl=nzdz= z0I?Pp>Cmm@^TF#=+Mh&sXuWQGCpNXr2GoJ-F19in6BMA+I^ zi*%0&_du7N2_Qi`yS6?B5xEP&$~=(tdOAZRz>w;1(0UH&&Q zReM>jNZhFZ_ zfgwe`I_b41V2DU)jsS=+sa%leP6VLSj-SOEJ6jagwpPo zDks3K)q>xp`BjPP8`Jq6xaK^M`J>YRaM0B*owYZGI=Ugf^#J>~Y7xh-{Y%iZmd-6% z+-u4ypI1P9QKJd4yWtuGGy}X(YI#19UXhpou?6}F0LfC{3C4BL#3WbqMO~t^#1D-m zksPNnUr)et6)p^%ukp9A>rU>lFg+UT%FypOWO$Wb;#F20R{{4dc-v_%hkSZ;XI z$iX(7?R8n8mLF5Nu?}>R-Q}iEt69aNcApqKAio z)b*kO_(A_aqvaX?zkoQ5K!|{7QXVo!)Kx~13X4&41S-k8xZG27J~Y~3Bpn7f_A|T! zLt5QpdC{|-#cc}~k+WDw5^ud{IRhZ}^nAGYbOO#squ@;7sQ)8~*0@OhMfHu1p4&tD zoo35H&mhkIiFw8)z2da)63&@#qHV7_MeKn9w*p{h+pG>E0QfIjaN0A73~_F) z9!iQDmdqv>+`|^Z-9Ee5GumuPzeLvfIqO^+BDKd~E8Px=u+IvPt*AiPtC;*zw;TAm z?+4vG>Jl-SEIVmW;xYoCT%vW)tj%O6h&9&d8gaMOI>qZrH^})gV1pZC3>q|;RTvml z5~I1E2qe*Ae|(P~8jsIm5Q`ojIl`)yvu$ahzE{8+ErZvahvf~yssxO;vc+7!HOJpN-Chp`#As}ej2uVWd&U00 zsJe+Av{5ezzJ@bEL?1+U)b44VOO5zE)1f)?Q0{H#j?Z+CjyNnJ3g_yBAAxHG#Oz+J zz;;j8b@J>G8~|tWn(t>z6;US<$Bj=DG6r+cX&_3EDS0Dc%Z zvZM9b@nWP29k9_xfmWQh|3cF}!GO!UM+2-;4=e%f(mmFmyLY;)$ZyN@l5yn)#9>>@ zY+(37EzUFDp(6r=UNW-#9Ir-0BIFUD%}mi_SGhNCqHv&NT%M<|WOg=ViNGX#0x}EI z&=BDLx9YBh$#Ilfg5;i=JtE%!|Cuj#j_$T4zK~ssl2n0^?e3i=!r@CofKZZkP&Er} z=JsSZY5G9Drh=!6)QQ@Z4KRrRXaGGBAdb8P2CF7z7sFo95sZ>n#L*b$iJZcDtW2y= zmZutwGA@(p+fv^!lzPekmSy`hMcbZhJ<0^1b^J$^-ZpfL&1W;3{IcKBs9lTe(g3!Be%I9^ z(kqFTnXeNC7`;9z2qW|ntmI=@qlAwJb^y{dTe2n6&PZT6+8)h8LY84{G#!GSe-kTW zjDOGb4H(r>a}PNFJD{pU%tv4AcUv_+8ZeL4-v@|R&LkC`DX7DuH~e8>xai&ClL(gh zt`TprRgXYV0g(L=r?Ax_G9Y$~&kA@t3d;Cu#+4(*1w=<=);997QI2PJSrftaTvsgkk1Edv#C&9012-(0_~5i{0Qk!Q5hC*&fgwa}jYYt^ zMU7;YG^?MenF8;Prr)}(&%H&B89Ztc?90jd+#W|^ht78|a0QS^A7+$EepiW+J60H4j+n;w?s`oJxpyr-hDF|)Tz6&% zta4xnVqR=GQC&iJsZL?BO#3Zc)`39@*5CvNc z0j4OhOpm6^yxayfPb4$eBpcW3i8)$N_2#S!^O?qD5HUWGE)@@hjyYV4f*F&Fd^Pv8 z$KEOSQQ+mVvla*)0jWp8>=|{m0g)nM!)t=U@Xf?!4iF1{;wydkbc0g~j+?#93Vy-U zAIi=&{2u7I&EDtUS#oqn@kqkKxtGUtr@)*h+8vXD(E&}Z&s!Y=ozF$3D} zvL0}dNZf+~7k@8UqU5E4b9kU@7UN+PZYF2(V(biH21?h8=smDt+oZbg%As7<)Ol+Y z0pd?`dBT{!h^~{B-8p#Z;#D7Sz09k&L>U^MBToODz^K=G{;onaVJA|_~EYAwCQEpfekXOA)UJ#6B z0ni3Y0+z_&lLPBQ4`c2}VFjh@w?C0aLAMjy#6onE*`gvFm|Y#$A*P3QMNho9HCbdJ z?BqG$+8o(h{xx*&_kO(G3yi;$nEV-~3EXG%ExhUsi49T=!(waRJ2OY#veQ-;_W%GO z07*naR7WB960yZIIb?f*VP^ro;7El`uJku%m#(431G2qxlwoFI#I>A&5yg1|c0pKG zl6EVwFd%MRZiJaBC>JpwDI=SgxAa0h!15QoXl z2j@WtlXJ;noWMfK2y-!D{M%VIXAb>t`&F08`f`gbo+fFthK0x2!Z4K9xp3W+X|6-p z{oa2zocKG-M+4XI!Zd5;QQhJG^(}**=?)XS*SwQ|As8U!81#Fi-3=hI%yWGPAKC&IpEVW1Ju{M$9 z@Fon9!Ry^|zUBzp9MpluY?$%bSTf1nV|}CA3xdo|uT#tp`P@S;Io`wD0+m+TfD{IL zN5P+jE%Nz^nFRrc8YUDFn+&z_KkGO-vDQFfHelxovBS{;f9|7~qJc#T-m}SpA%cm+ z6OSVST_SP$#l&r1G}vGA^)~4j5%;QN{9-v~H0lT};2QH1K|?Xwc^tDIR)YA>#$>Pl zl*4dk35)UPuSJ|*d@AqTw|#`o@w7ZD{M^&7-@WVtB6g#^*>*in7jRkKa5gNDbE*hS zOcw&HnSk-)Fhh?e>fowm$RueaKJS6zBjR)G+(Lww-}o3kKI;e7NQ0ax3YhBJ($Oxj zu+z5Jhglx@C}Q(S@2aaTZVm_QB_qa#*yXiv8pM|B%fUG*N!CbK>xtMSi_tj+tNAsa z4Sb;cOD59J>#Du3_y`yHoy#sDLL#_S z0Lqi{FkhG{7I6>B$vTLkBtT+vzzmX;H^_=51%q^4$-0?hizT*Z#U9YH+~R#^uw=st z+*D9F$m^g$WqXAO0#_c)RvUHiw8n(gn;)4aiugQ+Reu?4z$ic)tiNEJHSqw~1ZY8o zN6JQ6#8DprE`v41eY5Oil_nRPMdue;Y|(IKbD1eEukHxvmhT5KS1e{I6GE-oe~Yo_ ztFi4r0EnLxO!wI$^?wNv+r`Eo`}HT=ol?vN2Y?dI&m#MtB%`0`Jaxt{o{t@Ca-eH_ zD!foRuL~6SL}a~a4P;v9<3k_^G%wGF`*3? zyY@_0-^@ITc`;L(9mB*(y1hY;_e2HsndT?O5z<#`lS$&Sx3>~^%?lur?JI|4K<;A97L&bf?k1hb_^yD+b4ppE&VOZt8|hAT zjrjePJKHg-YDd(lY0tT>b3!QdyLfk>J3G^V83f5!@ODD!A6aXAi|t}Sb-NyJS|rA} zVQ3=Cdu|2nbCq?J2B1iyAE?i4!BySe6iPkb=)EWu*=!3D{48^%A@Pg62qT#2UcgD* z+n_&DJp&nrUPu@FLMjl_L0zrk%Ut-Xt~&d3_ffWYPu<>>zK1m)Ill#vj{#zF*aYxEV2&T&gfaQtMnCw~aYWhj$5<*Y~I?3J{8UULRCC8f`HSu!qm?#%$vAw-nd81qPqoU{=wSES`>&he<1;L;O zW>j=-ukF$4W1t5&gmR}&C;>K&tGh`Yr0$utsdl_IF>OFFcOrX$Zj+GqX2z~5q2A)XDb)Ha@qnpV_BDzkZds65)ovn}= zEJ-zy^|cgCB0}#Oj)$bXv(z|5t@KR!qk#DtATC#4v+tc($NYqBd;g>qzAw?TcR-N> zIVAd=7f?P%RWF4xv9V>3OHJ|$GGBR)hO3Io8G|kc_W{LwpaacBelI#JfTRNur1P4X zAIA-1JZa5VclF^s(3Ko8gVWByBDH~LwyN)}gq|om$aiCjIdH=Qka@f?cE~_T3q&N5 zEC=3LS+82xgTk@mHL-F?DTzw}G>K7j=d*Jj8R=9WG=ZXH3 zeb2V!r8i1J`j17+{zWcXZzM&$la+b1T~C5KOcmy+E<5^6Y}84O2>YAgg-ssTDfWof zy>)oMG4S1fxB(5j<^-psL0F>)keRJ;$g9Tgm|5E5^_>AAyP7zZJ@=FR6uDgxVY9O| z1#r!)niG#u$8QkJI@-gayzCN*<~kI@y6-$v4w->dqmtM>6Z2M9pTwHZ7DTk2qljb2 z4WG|rf?VG0+7Za2&ez<8I_od@g3P_3_UO66nUWvV4${TFty%W2BJ+1+hu=Bt9$A@1 zpO_fbbdJ=(u?C2R_$(a(AhvXd#kmffd`db3Z&t+z?!0>*`AB)2O``RJd z_kIu<{-9K(zXTM?n3B$pPS9hE+1OI?S>!sr=PFbfVig#jZGov}XyJoe{~wVddhc8T zT231jB-VVkQF5D55ie#xV@e@cA6Y>ddJqJ-y>h+Yh5&gM1`U5@L-X7>*=dtxaZu@7L(k z6>VAWleu5L3PXJ50I~Ek!%9vprJ?Q$K$L}l7DgFFI#GaQK-_zwE^i?8`(g1pIUv+C z^0isE*FY|{^VJ%gKQq&7CAM+^b#C;n)kj>zW3jdK6)f|fZplaMwN(LI7Z9F2yjPqU z-}N8-KbWKR$sSJV8fQvn0QLtl7)knT6WF^q(XrI)f;GstNM#U98_bvT+R{Ikpb__n z81sfxn|*Ixl_OR#Op=Zhi_?i8QY>!AeKPMVOFRC#S(np>9U_eYTZ$!8k|v@rfN%{W zTQ#D1AjkmM1%w^UPzUVLHb1WdWncHyaZllE>g;uys-#$r4&cSK-JzoW^1!G@FBGJb zGiL7CIV+}Kr)Lb4P6A@Xd1W@s^z~6Q#yHr7_6#j3*vE}J7{ImNK^6$FKRON^r1yoK z$Z;$dioB~Pg!Fz3Xc3ov+c{n9bAr>>hWLo~NRCM1GS7LeF0?Z!@it9cj4)rn1bJRR zN{?zF_&ufc|71{MP<%5NoyoRzPU3s$S(=mF!y|yWHf`$$=ADCMgPvdOvb}dP#Tv`2 zReJCLJ?C<6mpx$IJZL*@ok=WZX30#BnOCl#eE7UbJlY=b`Z%s8vbVtBWxoI`ZNKyn zj@&7luzzy{%*T$j*P7dT;%$5yShq4!asEKMLIk+bz!iK?SPbVxMcj8%)Gwl2d@+&y zLFTwuTI*)L%=49DeP;$`sT`ur*OTpn!tWQ^Lm!_FkR~?&yt&$>pA;+@s*C*YL}4!g z&j|*rV8)@siaHviZWlv5$PT$25}!SA>;=qw&hf4lI)PDt_qLbuaSR-)^9!Wc!VOE( zo?HiS!&B?EWB%th)*|=>XUw>N9zbHkW$=@+;O&V3z#dt6SUesSe(3ap#IgLqE;_9jv_<7gPlB`k4q=wB7W*XQkp zoT>rLWRyvI4rR!D^z*bP&$_;k7KGzG&*`ri2_m*cf%+=TL>hJf97FYnoAahFN zVS)ld*SfIc3&p;?yS)b3CNi&E_R5q48{^8QWP~Xbh8D1ex-TJbdf5E8#}F%|qlX=G zd5WK+SB^BK#(?nM1I9=LaXTSy>fm|+1c4@^=2uRY>*Z^D)-k7D%36aQuSS^7XL59| zF~Pkttt}2S?U=!D@Le2N-C-J#>qYvAJ=-tjG!4DqC2gbkM0sgsA)Eu&_=Uv8i3|;J z57G>97|#>EUJ#zmg66)(m|mCcfYBm#$hheJ2$qxPivjCXz|nwaVPHSVrw{Gni0K?e zcpy)Jk$!)%v9fG;*BwfKhEOiVN7`)GWjJSZe&!49QejX$GgFipiouzK{5$`zfVcrW zVwNr#R<3sx3{g%vuy^n1hKV#v3mke&bgtPFo4Jj8y_qH)L`E>BD1cLAfCbZO9M>8@ zeb?*e@7Q{`GgdW#_S%;x6R99(d*JfU7W%(fcy42r3|!-6BI*mmi%}oc*phd^@K!=& z#Ylp`OvYDPToBMU*c^T500X4cf?sC#ZG=8_0n!^VUcr$AV{F1!5h#7VG0XS`BI+X< z1dii}!#l3+gEfVl`mY>(xZ^stC>hivMLb)JoNXv@sF1&3b%oyhB)%{_oufog_hyPtIo!Lk1^o_#`*-&wf41wI6S{(Il6Lt*cw_`Jgw zlLJt-ifaw=9$4?cjp(`q2r+C|i&`DCQy&{2T7Al&S+ul=o4>n#ujm-HT+b%gnSmaj z;@uIiYwgzY;KD%3=hQ6Wf&Lq8A9av1(Bqx`*Eay5sN(NrFgX!OGCR?2gRn*ix}VX2 z;Y3Vk7AD9cse=BWQdq$7+Zy{XU2cps{=KvvjByWa;P|}69ki%2zeN1hsOie|84!6M zWIe7KyS~~&bzUvgaTJ}erz=A|OaQimVb%}pOPD$vx+bwYCmLVf!J>j#>@bT5H|R~MnfV3mW-(4^@mREugNnDF zc%NB>^iRhtrEP8+9XkbReMpP80Tj*AJ5YPQdN_&^K+A;`l3a zpaBNOFXT|1MEpg43_=r$`9&~POWgHtJ^4QhrB)7PIX^C|!*lvc#)~)E3V9*0Q%Piy z7yf$@w=L`_&J+=NuaSI4^Gg=ElZ$E2l0Ie$tK=Y&r zzyO@q%GVb5j7gLiz(MP%sRg(%{2(xc1u$knbrOmNdayZ+8VWN-2F2t&TtS$~U>OQI z|Fv4Lm6^>35MS-wZ*W)-A$>_HeiI!Z#CX&P2KK%ri6>t_`n}iCrN$CB%*qij_s*+buUL&bKva*rr*E}7!5S5m0F)UR@jqCH_;Cig zhu#avOaw+O@XjW138ARL4ofHKrsY)P^6CtI~FNS z8HYPNll7X;c6VSbJ?!W*p@=Oj3?5ILNuzcQ1q( z*D1jwJVsswpXGMm7SV*d@}$2Vm%O@|ap2+3^@{#fKl4M?VhdT}Z-4=v7lYoJm41xFV{5TFa`0x^EM52R-l9cWHX+RDjXOT(KyP;5D8e*z!|)hXuBj_+TP zWA+~C-f{$l^%_UdE6%U@H+sOOtknCTZ<-#LXad#%PsdG}t+FRPEShG)tB1i;w*wlk~EiaWj^f8B4|BP!rn$jvT|YOfeeZORj?*b`^kHTRphU+CDy_6SR$>(?DXyA^n(eaa8}wMSZTTw< zD0~gtLB!1h5Q5Elc{jYp0%fvj&XMk6Zoe67M%(RiG4}KYPUpx=P5Ln&m$O74A1Q_B z$sD@@{w#I^m_}k*uavI@?m_2@-<>kx3}SYVM`zJJ5&MPnJ9f8Bth=>yIj}E+`!XwJ z_nYE(dridfy}9l&JXZwoV25j^j|1WnvbNDFZkXc%r|wzIU+L!zpjC)07E#Snwbz8)I?U6`KW&0npJ|>A9YnfRJ-$N5>y- zpf<84eOP-QS!A3I*uk0&|H`*iCULq5qpU@Y!FN_~z~9ib?q5V_iZS8*;JmoNa03;`C2d1|vC#x# z`B{EXI%ZUA1`_wxa@zI)(kagb#L%~h~3j@SKQn=jtf8h-gUuRTB{8o>j9_t z@bUkxg~4loiwSL3%0`YFoj{Z9X&wX+W7vvs%3^hra(lrP3os3(GdP&#NcHDM>!uGY zvKex;lpt;M#+UV9-ncPHEP1%6lp?#81RAR;Y!?rXBRP?{y@23Pa`}PI5PG#_dPoLE zwlbe(dtwTuh?!`fLYUmj^7vDLyS0vwnTBXzgaSv#9z-l6;9^bk#UY)%+ zM*CZUu@e~_ePSO$7PC3xc2w6MhY@mNosotc3p|!~uc6;!0G7G87M|Cx(?c=A<$S~b}@ZmG^_M-4HzOYR#=cUDLm@o$6e3DpCmpVrve31R#bM zQ*41s^I|+u$}k~yaPE;dzRHA@jC;nW2^{{g*J=5Yarm_enfuGWLxINaX|uj@-C=B0GY23 z5ahk)+E1Pjp)p_gz>$CNE%yRmPbolg7Zk*czw4o{Y{T(bTZ_qgK&OD%0>c`>_6)9y zt+h7x*0BeOM^p#7U1W{sYv6YVv)C~)JwQ}Y3v>%0hpm=tqGybuEBPpf?#7Df>)T~MxDtaW}an-2k*#XOKqh7 zF=Na3i2`QKG^V-$pnaD>3CIW-F)l;nInynbGmF<05-fqp$zru9i4}9LqT8=Mn@2(L z5zyRh^Q(bN4CP9Fq+vQ(trewqOpS3JZHs>HX@ds@dQP80pgg}d4z)3>0po3!ZiDZ# z`0GUlpXt7~CMn{r&`LhRv75!S0c6x1O&gF-Begy97&8lG^$3ltf?}-nImmpgN3Yld4rPZm7TP;F-f=bHtue(G zpohws90gMk70Io`Q@=k3*}bto8kB5qA& z?!9i0II!2|dq6M9gL?ZRZhm(c9%2?+pB~!+L|x7Kn*8G9W&kBe_jW9l3gCEfv@UNa zgjY}QkJC<0tANmG3=X<|Zc1xbLv~W1C~(Eu+-w-A03;U?o#zT$D#m$T43cYbp&dik zt{9y~D6H2?I0i2S-PQXy2mcw;HXAD}xAd|4LyS!xgH+XsvPK>cohP;XuH_kE>RO+* z0X1;wWn{UI8auqx0HdFaDmpr~zVeJr>JtLCAVT zVYRccCHAxA_q@|(VQH4(5IM1#kq^AHhpf$cyQ8&>ch5L}fl1kwH=c0|;`uNIDKi%F z^{+-Gi%5QBnq?5*Ti_03qPbo;zzZN|qY(W!%jYEhsfyRm0_n}Gz49!;ba%9bjt9Qy zA@3>L$gvQzcz|OT=py{zPuk;MMiuB&Qcg{vU6{A6mL27@rEpEG=2^hVJD*xs7 z(F4cIe!h=*SC$Y+aj$*aQ_6=*`?Q_tBadg%eqoatFe!=GWsT&MhJ|UF_#8<03D*}D zmvxa+@UR^&NexT7?QoWHABk~~^z100PBN}=xW5M81=GAav?peZHdaadrM`+AFqH4w zui2SfdjIyGuh#$1WRTr{imm@!Kw2DMv0iU}ZMglg6M4^dtJgXkE{^~J0&_`3K~&JT zb=1=f!XALN7~_TkR$?M@9k@PQFum*aEM&Se_fD`p2PlYbejsH_ppNf`{UOr0qm&1W zz-R5Vwnwi65Kkidhp<|gLnr|fAdVd^gXt1yZ09qU#o&>%8H%e-qD27xJDWJFAgViT zk}MvxvBU`X8wc2Hi%q0G)Yk6gEj+Q*BNm|N<$G4<=rY0%mZlx^{` zE@N~0fMbFqGV=rD^;zqw-P1^HiN$8F5Bg9BaXj=FO8uG{6d7u~vCgybP_O}WzkaIYOU@gw_T=YTBph6bh+O_rEp4~?3!0lNB^Rc1ar;Oi%mv&Vq{y?!F71UEGL6vom z#s6~8_8x-Ty!7TH3_kz>>=TdhlO$u(ga8Yxq2lVtNKt5FIr?ki;H|};YY{<{ur6J6 zP$pSG0c>N~f~f9FO0q|t!@WgOUtk;&7R@shdD}Acg1r|XQI0!upL>tFtAr5#2McL= Uj|UQ&?EnA(07*qoM6N<$f-_7{WB>pF literal 0 HcmV?d00001 diff --git a/assets/子弹图片/33.png.import b/assets/子弹图片/33.png.import new file mode 100644 index 0000000..772563c --- /dev/null +++ b/assets/子弹图片/33.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://gi236uf383q" +path="res://.godot/imported/33.png-90fcdb8f86cd1dc860df962290b9563b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/33.png" +dest_files=["res://.godot/imported/33.png-90fcdb8f86cd1dc860df962290b9563b.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/子弹图片/34.png b/assets/子弹图片/34.png new file mode 100644 index 0000000000000000000000000000000000000000..f50054c9e8af2489ee4a21d34e3f5b378c53fba8 GIT binary patch literal 34970 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%0D;)qB{ zuBQpO5WX)>ik(~vTX34g##8!&*n^dE&5>c8r<|QY&18i=D%n(gTT0=^HWKO zvlVb^XutMgwv;76u#)RBDvlDv}$+Ozg4VfP#%;=k{0zv8Io(v11l&+ydBG z^D{dqat1*bgV-eBsK{mW!3ru;nOu6x*-AUwIJGnJ~ z*Lb@B0GX~Ds97p|L1Yaqwwzl7kG&7m4(QT^E{R|zz;Tt26aa$R>sXIzsfbK= zKU?6~QtMPf-2?sIi(kEpw04D}xwv+gD(8OAB^uaMs zv;2JxOa~6AnGenq;K<5=*jlauku7hen$BizVAl3;VRV-5cw$l|W@9HNj%f;m--41* zz4lnQpr93M6Xz-JiSd*otxNZApLxlzrUd4-eyi1A0*0k$ajRbCy+onCAcRG$)QXRaH#Tg+`K*2<=fsLn$FAIv`8hf(r z!A^2}9lm~J{CG;BYx~Z!mnAW(*8giDv~_%ySkInoE|o_C(2d|Wl)2xy%lk+!#3$Vh zocvs$)&O@t;mF8-`i$M=VB_07-9$L}(xl}$5tucM;?;DZmxO5H0$;n@Vs={|_PqgT zD`l+#$`UX91UQJN z1V}Yd5TE-bSBcUjIQ2p9f^z6EaKfDQQ1D0sy&C1dGsPBW<(`1Eblf#>oEpoqW$jJ5 z)~3>AEdhdM9kmHtn~+QQ;mtMHN)2#^O55#qmfBq_TUm`1`m?lu576A>rMLCE?^z0M zIZrxUEKnx~Ofp{?1|qdiakMvrGrgkEh#|dZd+ntgeP>1*M2v>l1P1ub(uX!dgbIk~ z#(h|nJmfO{`Xchn7m?#oTO<5hz$s0dt%G9e?I&h(mX0qCnmv}Or8ky6o(Fsha7y(r zP0HHa-m<7Qwo%%?1d3~Iy9RL9+PC&>{lc@bKx2~D zSp)CAB0{O28enY^C)WCAZ(D3x5|c~Y#q78B?qyGVUIg!0RN6(rHPS&qLK$=0koAd8 z+zqiH?!n-|7v_KFhl7OYVaGu0zQi?P*uryZ=N;FuihRJr{ z94*Va1|*h_yGEp1Yr`5~@cCBfV$ZFyi_+gUQEjUja*qkRRL342#w|d0FJ@5d(IFy8?dDec6RlX#SH+WFEh(j~?4FeIWfGku>C`_!f; zj!~RL%58yi0lHl#M?i!+h>BSK;3p@b0ApQBoc^q72VanV;2|AdVjp|XLn*!aO2_eb zOT%lE7obz~iY@7KxLvYPznICfR)6i>rTwKzy5*&DuTpE{UL9ZUnb%m4U+LS@_O;_{ z=RdM93v=T*S(KjoXvIrkz@RmE>g!3lqt|a#l;R2p%Bp_W zInxg0!i*TIW)iQ0cs6<^>PnklcJ%vA<<^VT-d;7}DT!9svW_K?xR%wF?&n%YSrY+n z>GLJVx7MDub}b!OQ_^F*eIYEdn!SK>>oIpM%1nZe206&b?@OL`2FvJrpUmE#)&dX4 z>6Z2fvT;!bv6{xam`WmiV#;b>m{6193@$MhIF4&5+sy~DelwCKK z+C(kA32oT|Lf5uu>oIGrV2!yg)qm~&rR#3pe@(k&;l8eU8SH7(CoGyou~p~pUj63= z%v+ayX~t=+w{lV6O|10|UCtQ9t-+fYRmltkFTabxsUhiW1XBcBXF{(*op^BZxVDU+ zmh$~^auJ9QnzjA)B;txbIP#MKj%)y(QmN7NQaz=*mcVK&3#r}1mO8iUHrB4URL3LA z9x$|G)}H&@dcU8vxCAIM;F2VkhRxkFIgUf0(>DnNMi!$wpO)gS6dO_wVh?4n%fSZ4 zso3NxjVMH;Nbr54Vn0rPOqv{GEl%oX96nE{Qs5>(q@MwBWT%Y1q%WvZd%N!%3ceKp zuPOJ?F>D2cTgzTC>s~DMGlEX#-e^VKrZGz1@iRI1jmPPVnWKTIO)-^?CfkFgGwN*< z2}xp<&D7UY)F#U4rrhVp$A#@wHVY>305GEk%K6a)QS{uf?P<0;gDpQ3;K)ur$Thl> zExMvD^(-B;_7>kG23_;)N`3gqiCSWrOV{2ChI`ulsQbIJUg{E9kQ(zhJUeK`glSWw z>qBWZL4*nzfIQ~Pl)A`fyenM0&%vfuPh!_6t#zXcqKnO2>L%cUvM6{J|2R+E!umA1 zRqCE)i77m?+@dE~DtiFs+5vox7_^s-Y-ND&S!#^4#4y*y<~<7Jk7hiD7ZvGgAtL2r z3jrhC=;q>Fii2t-@0w9T+)WO>qwY3|WUc(?|C#hIlD8oX6PNjO$(C(^B8eJ0(J2>Y zH!z-KyJf+=b#3#*hlX728p-N*`2jV8z}$}oO%wb zRH8bujOV$}Jrxf^)-U&&pYLY}ocDOM-f~aZO!j-1y=~abjDCi)3^;-1v>^#PgH3Ck z{-|pbZn(+9O=(5@URwEI|EF}IFhdbSD_bEQ2W>P`PjK*7{M|_Ow;2@aun^WjdY(bO z5JN(rhL^HNYTDXLt5T6#Jbe&maWNSnt{%_VocJD~^In7f9{2LmptGgkEtaa!C|=#6 zZ(Ul~@Sq_GZ6>j#xGAi_5I&7M0rnc+H1r5p7;+#HNfUp}y5)3k!n?RvE0rV9L5`Uq zb2!$cLPJFBJ!|8RYLE9rT5lY=aI(}EDg%bd@fQ9$Ub0lRBi3}ZkRyW$eyidOAQ=~M z#I@}2#d3?!%snSh%~#~n(dsPn za+>B{nA_jFX&zw}O%Mox&*|dENCKVzU8>$EleX6t?Z`$xMRh}5qIJMK1ZirR1AuA- zm7vi+>#caNn(1k^O(aquHQe2#ggR)#9$|5cJelFA6LTgjsDW7lSv`RtM6|)@_Y$f{ zPGu}T5!b_cUNg&6r#;+SRhy7Yz8&vX?rA>XYwg*)|Jv)W9rLJmU2~m#_=i=l<7nym z%LF`Mn`!=>&&f)KRaee^S{|kcvq3xILF~!=&5nMsw~vfPuRS#Ry5KEMXm}c<3?BI| zfOKx8SV&0-Gugqc!_T)4Faj{(T1?|wis_1?8pUn^#KLdT!G?8HPUOo)qUoMd`O&4Y?_39wRjA|gK!6*|pMt4M} zwvJ5j02wHxvt&M!02Sw>AA&E?OEW3Q=8Nw=qWm)qTn^EzQ7L|!`uXd-fz3Zt z*~=n6!jg9jOTFc~C?!kBN0bdZAE$F9s5dStbEkEKX&V)zBBo=4vVxez66COPJ^@I$ z0P@{Ly$6)ALt;aro?h#0Nn8sI2drme7H$l2=tqWgwAcWG+JvH1R{?R4+*(E0V7}Gl7kddKT0RO4hcMcVah8 z!JWP(X3}VT+?>(C96uO_Gp>i#PTr4LCyPb1(cAe=JLX_li1@QyU#?{jpApQLCgi;t z$t}R~z@kgI_d{-o8Ru${G^TcU>CI2~6GbaWle1){Lj2T_(otj|>Y{NXWAbZ5yd;Js z}^3gB0he)ABNIq)AB74si?51EA$dY#Nyhfe*yALDOsunj|c+t&k35^rVED z{b>zw{$w}X%SY;G-mB~ZhijD7dwgjgWU3$3AMTv;7IU;W$jZ2sOQ~vRGTc^AY%VHq zhn(HGLRbUDtGKw8Hew*40U$64pfFHz`cbdw2Tx~v-JSxDNBSPUCzyYP*tT`wJse8!#E>o%(Ddg#NR#!Z)7*Alvi5Lh zKFUAb&?Dx+Or5V;8Po)R*2Kw3kd8@@L|U*KCDCd6MoL0hkpLV+lj~&=Bt9)E;Zs)< zaE%^}z0a7a*NagO&T9%l{ zqx$d;BAGINuTnry*nq0Z{?jF;FDJ=Tui|my8>ZtWAs0;2P7iV_lE4~1>QFSdMR4*N zJ%)|m1V|P^g{)jL7phk=hticcE;dFXw5HLZ`Hl0!1< zN8OTw)-yV3)k^h85~3%3MMx>u&^J zLW~L^_$pd~6XH{JuETaRe>W=6 z`6lJh5LNc}L#~`+u<^Q%%|P`!QbbR>au?UV!nKeb>_Q4JfS~|q+}@NJdmP(tt#?a3 zTRoR=E!Tp>&&&@02^=*|+E9UYne?x~jmsFWK;FXmyCJb58@?n)#j7azAW|IW=h4Is z{}`|&1Y@d6T(ptBVK%XmU_Q!nm?=2}8a)Mbve|pQ>?P05lQ|rzxjp=Ab95jJ;h@2y zpo;*&BdDBJUagkWB)Yd_*fs6=nI_0TgEi|D7ZRCxPKlYD(Kyr~5Ys2!jFbHDOrJwO zIQ@`7Y7~7ifrqpf@K|@FArA$KB1@=FVFz}NaWEwK@5CyIx{0Jfu)a598l}B(v(y*y zDr0i?n6}ezbN~P#07*naR47PI?HvV{A~XY_CeRhXT;qfDStj;-wc}CjW(_bO1xEh_ z%w?(ciP?w^11bPc8>~?o2#}b@em7!7rWmM6qLN+IE}F-Ogl^V@cd%eHOz~A+lR_H2 zH!MUwkvS$yh;ac3Scek>HTBz5N3kjW(D_k^bJm8qM#b%TG=NZmGh8UM4F zM*_~;zI%esKRM6{b*BkW;Oq&J?M%l`)~Lo*lBtG_Q{Nzzr&x2{07%e=s32x#E=}sz z=w>oUKn;#j8U3BN?^E@=^MmKU_!NSZ-8qyZkUnCeBC^32U&{H_Z=WG0KQg zLtLyX0g{6$oSq}cKCwL4wP~pr-f#VUE|LJFDLCate;~4om2%f$S>Y@Ylb94oqenD8 z`;pDGy8H|hyNk;~G8{YVa845g>dy2G8Ur}jIs$rSP3<2oRN|v1{+8?BOL=c*;~%Zy zwqV%Nu%B60h9(jf5~EaXiDR0cizm=QH+udy{pn5an0QginT1Uif%!T5&$y%);rzu6 zHefdZlgxWja;6iT=#n@EMfXL4Q*15mWAY%wo?|{jpPEsaeS2*D1%pko`^dSE9Rg7=>v_Lg@4_#yJ+E#(~!bKyi_6M*L1kFd|jJmjYf z>@-0H*uoTcH25CpUXr5RF+ zQ}6Spc+N;j`kvmbsTE2Gr^6!4{XUWr|(NHiFyL}6W`%W zBm^Ryrx@prCT{F^eq0eEwu55HT$lS7ji3}1WM)ldFd}v?9Fw!ZsYpd8^R`J2i48dz zI*mVL(UDncbV*?Lc~(znis5Ql|MO|}Ia|v|nzKJU7;S0a$}y^E3{2*dvy^Q4mXk8= z30Qmto*$pS|1)IMcVmfEZ04I#Wk=ZcA@Dy+2tseI2|a13>a0G zI>H-q$(Xt`kg=fXQwq~Y{dRc2;_1V+eE?pXq zd%EcAf^BLKfMyI}Q>#>~!KSE_EofF`jo_nsfO^e2GMe9y1x4~tUp|uIJi2VXw;Pqf zTuvhW@00E&D0?9ey-niK2tIG5GYrWqFl@n1ZPEaNOyV0|PUav^;5|qXEp09j%L{j0VhT6kYq2zlX&~Ufp5@GIE-P zMjh=q97#u0vD*E-<-Gvsy;zMme{WGV?5(%3D*($sME?CB6Dt9$8DGHq3EP8SCW6g* z615;Dg#F=jNkB7+QDdR|$V3pyEl|bAx%_y0?97Y}X5#YuX0WnMr527b6joE61Hm`lwxr!HXi|>GJihEH*C)VtAmnvpiF^6=I%yyIvyU)>Rbn%OblbVFerMx zCl|vXyicsAGyXYN?*zc&ez9KC5lnRD(5_4O7(qCI;@b@?MGW*|XF_~RgJk%u!1f+x z4G2ma(>>)5`WZNzo+i;JFp}TDPohu+n<1^k9~8i0AC$ju=QJ*1nF0U-r1}Up1+gh( z9Y%c0#*Se`nf}M#6AuRiC_^`0jmn#(Ea zVE{0et&EK2G+COy>&lnV<*=A_G3Sv1r_0(C@x`(kJDC@5gB7P1Xu$XfWlS8F?p=P4 z^$?DeZejnd9b_WzY5l5_C>8ZJq+@|A07S5^O-ss11WF&pEID9ogua>FgHUJ_>M_>igNsN}GS1Rzx@%>k)pR)nTvi6Qh9+CxVTt3oJ0joKiz( z%vkp5VkN7mR1}`9F~xIeQb0K?#9ZLi2lH`H;t?x>xeZoi$n-dNJP^=0$wMdxUW1Az z=b6pqL$d0G4#PwmG^&*qv{2w$P-tA<*%1_p@l4Fa$)E%?JjlZv^^X=_%4R6^0s4s< zp&(?UohKs;gXzdVQeZiH-dSm~72BAB3b_xk=ka31GnI#-(1`q+=N5;2?Tsx`wENVaVEj&t3=rjtwjzD5pr{UOe&I%RS_Y9;lc@s~*zu2(b+wdMbuhH`Ac@&zAsFf>6zUx5uE~%H z(hifp<~a&d!Y_R^fQos~tJd&buj#?_JMlFAJ z1Ry`|2e^DACS*ev05)u}xu~L;=kuxD(!Zf zvt~9i=sre<-%~zhJ!S+Ea@_0b&5m`Y8lzhod`k8%qyWxDHY~O$NhHG!yq*21!)b}l zbZy=)Tt^_TC{tjdi9R}-gNL{ELlQ#)He9!(#PPAu6liVg3$#-%^EVr;6af^U^m@;@ z&eNW`|1$u^M~hDj*AFkh-$j1?J&DI~x;qirOlE8!0cB)73P3-U^^|;SSU1C>Q{U$- z+aq}vTQ*9!VMVGL$QS@(aEQ79?iSJkWa66vD+VT^>)H0sSPs|~r6z35gay!K;T9ww zz#8SrS&ol$LUBulPV-;{ZVsaO6S^2Qyg5&MClk0Tj*Tvf!%2|P%X$>!@75)eHi}Cw z4Gs((4s&4r3m6ta6!JZeKj^y(z;q#N7uMd25%qc>Phd8?62#vFaCoHsQ7ly}*Zy7P z`!|u_zDfjV1@I|>G;wmwOgR1$UpWYhA0jI92fXdYx910iY+b z5n@)$Iv#p~M38DeI*Z^RT&x-<)Ap~*XvWNW-%}o%(|L+z>Wv=_Jl}1~2pw4rHTEH%i`rh=(5%6G{4ixXcEEYlJ>vc&Q zFgy$x8z?&K1H3$_zA?=QEjDg1)J&RPpg9p21GI1qL$&Ym|2glNLh1JP2vp83W z9Khl=lmYfsR}_C*O3F391SY`g5%gKo1$ij!JXw)kR*z77c~GF(l`E`HYCONm9|@b` zS#QLJ-2q^&3yBJYMNAG`MXJpld`H;}I3KN>L8-LkGAV)s$o%>(F`LO`ZGfhrcggb8 zkbVZ=V9YTtk6(}++nE&w*)dy$5;&{|2!4Yt3 zgNu{aK3EO_og5JTDCq5Rh_$4S%5DQNbpRfPK6U{1D`G5>8hD47M^f-Vu40$4Pt56oJOlANi@g?hS zKX1n%6l`h0LnLP|Stx*;16koRaRV3~-s)n&lKYWa6T~I&@(0uSluk5zV3hGM1Us~i z%a~YlHuRbQP<-&cpBDEU@;4Eqw~PKoex~GS@#oOFj9CfVI;L9n(TPz!Jf+<@pws#J z*a_`F_ItqQk@}X;%3NG!yKYkdnQ!V3^G*L|kKnUOdvYObVYDJ%4B!w0>e;E3ESp8q z$#|7#U=!Jg%dInUEY_Z_&yQpO8RT~v$o+pn&KIjNEp%(tCDHa75S4TxK7}TXmK4d& z_qd!BOP9Y3YGNIp3(F${hKkuGPP z_>u-3-dx-t+$a22@;-@m$8G|U=s|3rBL*HD2CxXAsP*c2$)9ET94~t@`Xh8WA6=H1Rbk(G0vd!F{H~exqR52g zYa9~9>I=LqDPi1M6~kxaJH=`OW-cQ0I=#7$9@AyFfyo_jk4GKpP&`e7hM0hpWQ7t^ zB+@(|8wwB_w~;u&{TkauEP}6@i92k%WzmfH(4-wi5boPPBzW?ASga8KKvC(4;`Rp$kKl(d2>MLa*!tl_1+=64pg`H#er;bjB>$oe z%&C7<WQJD|J&?sbWQmqvz&#Z;?wB;t6~#AZ|CGc(;IyYvkw;2Ax51p`FLS7 zHi`unG4q3ghWxfDT%jPgWcm=F9VUDlCY2RwMDlF|y+sF?a^x26ax+zgD1er7>-b6H`nWO zBx0QjuRNKt9X5sALCe-D(|%t9x57}#XdYcxB=0QF$T!}*&4^c^g(688#p^^dK%#zo zZ=)yzamcIAM%&1ya@L_By~U{8!S%@@PiQpigDWWX1>(sMf^?8 zB-KJC5Yw<6;R)|dycAVvCly;Ogy^<6QNz3r-a3W(BV=%pZEj)|6dhL)m!+k!q%qt0{z`=oFstBKZME-y^glBp4D~Af{2Shq|Pz za5QLVH)5?(wtot5?Ln!PACi(9b#UGowoI`?Epyl-F(>oi;qxV@ml;DdrgpS9Q&v-E zJx(3blP7Kj8UiBe<^gc#`A>tduB~lZKI_U)vgY1v5s3j%7WVCxAu2!|D;O z8lHCap5q4Mx6jTG98nbP3r}J2-{y^9%v`)pCIqYWM8I_ zBWO9bMADlT>zach_Ua_q5THRJiNxCB@4tjPzwFiD+#*VC1(+@8Jh%-fT@sgLm~5&D zD_T*CPxiGc{>?9=OdiUChMh!NPnn5MdCRYVeOMNhi9hy2o+c<2IJU7v-8fmB{7pD3 zzG9*`V#^?Tu%~5fR*Z>nW$s+M8TPDYV2vHT=BMM5o{H;h24YA<`bMTb05J415p2{q zhy8NAS@K0_kbp^K{zL@6nW#w55ouFByoU>56Q6<6F&z(KWr@jy8G)-~v^*_QgF4^? z66*Tes5td-&*E!q5H)3 z*@9{3i@wt!Y_P#&o6AP2t8`j zpbjv~K%6BZ&W8S|toJE>x?TFg=DA6&MdRGw!RMLdq{xei_WK@eronR}d`<@QINuT1 zQfObt4>e(P$&rejftRP~0A=kd8gu;0608fyuh2zQz)ah914@E`aL3U`(XXG zuB8Kwsv^>bShl<-U(5R-y6p^9T3E91`BB%hq$HZglU^E)R2HJ&SD} zD-;~gU++Kln_5kgepxRa@Pv1Gb=w=zeDwgn52{OJW>ou*(-rP(=WQO83&m+Ig+PT% z&K3b9mjd&|D>d1kgUv8a`WDL*!gw~-BtWIv_{;9eXS`Xhl;}c$$ANjOMR6Z;283PA z1R4kKJ(JeK+md@6(31VJY_oc)9p{e0M70|BjG6hCyNAw>-@F$r1#cA7)DXYZPU*tQ zg$zuH_+|473A2rB*{N1h1TMP3u!wt|l#>owlD7~|@%Cm`JyjU~ zl7O$&Hw#-E&lT}NZ?Bkns^$EF*|z#L1FjkTd88>63+Q8w=8M|rx@_;=o3Jj`fIU=_ zhEOydM1hBf7tkm#Xf~-Y+TlBJC$ss~@3e4w@@5fh519mxgYFjHm+r+57cY{#Hxd@h z?+1E9g*^9UF&$dLfZaZ&^V_2(n`ht2yfxd%(CR-$hyo9o4U zzuY`F(Ajs-IjPo2!*`3eE^^c_#w9^g189(-Y1zmCn`UYuo(Njd_a!OHp9^=>BKEH? zoOrnaJZ~)w;l1ADTjQ3#CA0sK8(PnQ&`!9=6F{ee%u$JtN`8J)l|Ai(0Kl>52wB{{ z`J|eQYBYm}6TEnA^v`M#EBQId6oCfw1vn;WKfh1kH*#|3C~Pv?8?Gz@B77d)D~Czr zODY1T*DQjI?)%)U3x@FqGGA)i%`}-T*IXLMf$Kq2yXf2`AKiPQdtDm2u490<;M8MU zWFVzMJab75gd^~6a9mCz;IpwcEzIhptY^84ORKMwgzMW&FZxx#KM2iBH>t7TkL~=I zUy3yT1L5Azo=Ojpu$<;W^<3(`p$kDxBCVj4Z)EQMttjZNxw#*`AsoB2E4cjcqa1~? zjx>dPCylMj9&t4;d6LFsKoO)h3}6zxY-eEOG@S@+m=uNJrisbIprB^Wx0`S^?)s^l zW*j@f<_ixrN5{?Vp5w~7tM5n0hV}GJT`$^xqiI^y z)uPtCxwmG3D1~9>;GWWdt2XiT#dY@T_Bes&>$8)t501)}LhtoH53s5H(#7`-v(BJz zzgue=6N0SU6L5~?$khWzy|<712{gZ&3B}zK?rZO$z=W_XnnobA^Rtay+`^eY(`p8j zYGy`7TEi4Xilh$YE@TO$G4nC>eJO6ed9PCvprB`>Fh`mDUA2g4HkHu2KKIUJE_LLMk_h8Weg-zyt(;bKyYBCEGqIdtq@nm$M!-rU@ke+eb@p_#2VN zkJD^gsUFN@^F-=SHKO@tarDWeP8a|jn1yfmvz_t*jITzS?A>%i+6?lZ;NGs_QVU}- z39QxiGXZ;COJHXi9o52mlkh zdONmnpy>?v8E9ff_bcQ5D^F8`gCjMP0|l29=ZhUL+gnn%5- z;PzH<89a3eu553>3T798`$B0dyoic7t6)BJNdkPRz)^+bt@V{U_qVbE0Wnt-!~o(*ZQx=$~EMo7ZU6ea&k%G?RFZB>7#f2+?%tJBc8E z(G21>r+HG^_9Y^TZKM6zyy0@9Sq|l&YVJ9p;R%Sw5NI;PAltTQPq^w_6_ts1*=FYJ1lE`#RUV!+`4UpvgDh7K78g)tUwg3PK zF-b&0RJ`Gi%R#FmPtJ}k@TCWrvFU+=U}r>hKC{88vLC<)=3Bkie+pIk`yF$Iw3&~u zZib-flnZRb+)3am&x30^xby)42>PQUE#u5M6(dX9+fYdneIgk_VS8ByuK_ zFw=Qb_Axa!7y+h2LK2xbN?Pl))jv24R7Xaj8AK;EZ7%ql&8t-WzJ*gImH<>NsI^KcpDaGj_ie|vyF>=p`zlj(Q97PMrMfF*fPG{goWpAyMPS_w#%| zN#n~m>MP#niwRdm;r?ox0%B9pg`fyAdT3n>Y1>jbA6q5AVNP9_KG)a78+U&Gkvgy@ zj@%_q23pDo1@axWg+I&jJC~Nw8aAAU;LLuOALU?XW>f$?DIkaWWjq0zG}f~bp;5`Q zKZz=xo`6nR)-(G>Jh;y%K*Jye;mhKZ9)M_~wdx;AiuX0^TH z+FA#1ov#8gag3RoVb@DHvn*Tu+Cd1aGt2(+j%mj|G6rQp8PyHz!we3&NhE5++D2j^Z~o&BJs&pQ#VU)Cw| ztl5h-3{Ak@x70Ag-%B~&``0TtoNT6Tz1D@C1NMAMk1OJ&NvvI%PM-|~IYog}4=h5M zxSB#FzXHbqBD8k(#XaS2M2OrmBhWO>=9#Gx2$q=xQR)H-fxZ>TllPCAg*m>ReqMSr z4`>>wcf+Ji&K>Q?yi*ned$>>4z6ccc;w1$j3UAv++6H2Lm^hX(94~H4yMR#dQtxIX z7cxvKB>{&J{)?0^-Ak{l%o-D$vUsziZqETA)Rwol72ccHb=ygkkvJrnE;#NW zTyLcnZqN37@rDNnWNm<(M!_8(S8BR;cyqo^kl{`QN!At5?@mR-IJ!NFnNrViU(dKA z25SyhWDSo!NcdUr?TiF2y$vpi;Go$Ydl0usyP0gdrb4-T!pZ3OwyssPd1`5tQK&Sv zKus*WV8GL`fJ9!Y#6r%dR6ryf$_63yd=Ax?o{kp+FNn|Ppz*3QF@q+<6CI6}fu@it zDP*l(l+rHTdFfWb+3b`vb?`h*vrw(f%z@nxCzGaRb57UB+j0;#$*;+~H#aUKWLKC{ zNXSg_nlQrk)&%T!YB?pHwT)3k>ejqKhZ%BXji_rh$R#qcxu40490+HR2xb(4O_67$ zb&#NK)oHma>Hg@E+FTk$>lGne`vkz!du~5^>`z1t?@ZWF`Z)PTDl*Du(F9B!=*-FB zL9=JJ{Q?<7}qncPOncX6y}=F z0*SDotwdC zKeZd=8Ldm_fEe7cStY^-B0UniG(kH-r*;c{mqfynI**}^^8ab3iIr+VuXND_uvXYy zQ=rMIYgWC8Szo_bU^oH z{D{Yi%)@BgReRyZKoP$NHp%lg*icUgnv!utFR$h^zsHDh7s z`?)OsO$|~Spi@Hwp;c&GSscSTMYZoWa)}_!aLF^sCeql91LShD42n`&@!S_3LbHuu zIWm`pZDv(5Z`7;^mYPmlE@BsLrxdT9In$Rc0|t!&h$2l!_#9p1?Z?R3I05`l+5>^b zA6e6h1Qo|d!E5{`cjr-!C6GGzMtZ?)g47NBsn#Gus+wI2=Bv=(iwHFDGy~_9#)ll4 zLhf2}91#k-MJ`?KH%_^-uT{rM$cpezT4nRD{l?P4=;G$*~ zXTaYnU13NqKwmHk;M)XrBF%=gyZM>wbDVuvZ6@jG{^6Sl;%9&}d1Gf?_!BZ&g~SOh z3AZlnXFy}8iA<~67z18vc24|KRI9;#lX*2sy==7Abo=#G%fxA&*)xF>$Yz9IaQSz;Z8z}pc$~SX&~uSWMrK} zF3)i100JPev2B1M{PMrcG6gyk;E;2!^*iu6PFv?K#hrQZcPn?G^H|1CL^>^Nr@!sq z4vG+|96|5FJe^}XzmD32o|W<*MdCRB&3PO|!a=XK@Am288Jb@>&c~;}-4X8T^{*aJ zzk530LtP?#1nQulbU5ZZhd4@{elN z?u(cQ_C$v|J$$5)l+~meak1evdWK zr0bqUx(Q?^V11qQ8^iqRf=KlGsDb1FK*IxlEycRdslB2z$k!%sOkKGr1Og5Cou1Je zPwkUR&fAE5lems zY8BALd4Q&}>+^COD??DG5u}qiwM`t#XF8w2;b|`0;gbYoUGY4Fn1V^n?E);&7zwhJ zP8p3cz5HIMJUfxGqy82Oc-i+D%6r-De*z#Y&@T9x;0$p7&WW#!bvB$uvxoqMHgQJI zXfNojKB%4gMJBDZB8pTXBlSSRidK&a;0b@zs5&$`$%xrYDBcMiUOx-_NBkRt^=1g4H?C@(MBv zIxz!|icZ5HATDY<8PJT>AM$4a@QJ`Q8FV7`Ga8H`)}WKGzZ7sd1z;)5Q||F90qaWd zh;P_4F85qRso!ECZX596rek?9uP~r?=8zn*s(PPcdCYyjtaOUC@1fLjnhisA0Hq@~ zb0}h1#X5K<<@=;`>zrrjuI? zf`QN2OHB6(h#y>|6U7bO;=#oWNj;{)Y-KA!qcnlgQ{IYm9LwU>6Rr=D@+a}75@k?v zd#HgSm%YKFD)D6mFo`tz5R<|e9|DL*AU1`ggmmn==xkJM$$*pJ35ZY?_;~>5DI86a zY@lNGQvd^c77?}&5W0vLO#x9z)KNYaqQd;rM zDNX|iI_C`Hz=-bIkIaP<)P!1E+Wsm~#g!WGFV+0)$fYT&8$y=#&I7*z9?vuzE^)tzF>DZv4Gs4(IeOXs3Q`OZQgv{iT z1x3(vt@YiFL0ySstrQ4Ugp|}?^4QYebiwsmjB*D&AM>sajdRc|7Zj6Uir0Gsu$LCX zLfH(IDp0}aGh4wt);?r)LUAI42%4VtJerqT1VL7i&)YL_1_nk^i7iaUJAK|$0l)AB zW^hy#n+``A&*8Hwj#qFPvChM5e1)SdQ#$uN*XN*Z7}fNg+vHg4keOHebxS-bcs$LZ zF@QKa48DRqwaIA~4=2%XRAqcH02H+bB9Pla4Iqwr1!|yh*4vE0P(9HHtzX=@vdkBc zhn943A#gM=-^yp_b9!+)Pcy@fi<^U*m`}b|k5x0ZC8VG`5IyinV3EmD(qi41%>)pY z@ZN=J552@-Iw&-2Lw|^- zFdj+#v9W|`>-9r+gc2Oq4q%5p%!k(oJJJBcce)4S_cH}h1? z^QH^K2aV9rI$~(i+!C-t)OB)ykurhGSlCbmMRD}{Gd}bR5i5ve%Dy&v`P?DzKDXPR zp5`!=#WALq@ZAF>RBpM}E1Mxa?#_>5%E`JBuiW+%rqh7ThCO!Krv*SGi%&-fTw2V> zzIRkM?2OE6MyH;2-of(D3St`!#~Qfe!EKJaq>hT2_1*w5>;rg7IXY^l3CIS};YM_^^#TQF#}DxzyZ*8mz7sZgKef=ZyjBK3E;bQklv*NeO|qiv_Y1`}AEx1Y># z)z=#^(SFPUsPFl@I0-L%HYxR$hF_N*63K2uV|q{Uz#jZJ*g?$Ouh;} zxjX}iO}JJkK&iP7U{N%M=%fIiK9vbw>3v$8^n8C2s+Cq=`(5%C1f8k=e=G0t+-0Ch zUd$s*8usqSr`d#_mNzJ9L~{T%K#8?mz`_lnBhe|=;F4Y$DT{-Un5C0SzPH6}E=ap> z17_7^H#a1o*<91}ynC2U@OmKzrj|xs%0Q~d7tIj)1TA{ZOb5;j-NQg5tb+l%jo^~c zn;t~{Rw~c}_Mpc?R^q;ZKg>%3r|hCnYlsBJPe*Z{bp@)cnOM!?E41?fuKhY&-+SiULgh5joqx+LHkip5N*1BEiI(l%X7ZeCodSWldb*Dy+9ExBv}+;-on;L}~z0p2Bf zJ?g4C)zn~<9>+pbBx{v=9H)>IZxXsc(mJYW`kSc)L#V|fG0$fM4jhoU&=yN?F9sCM z3&n3Bb2~c$uC+pFEKP{cHPncIEod zCTn6b(iag+4&?c2?Bp3lEzs>`-OP~~lj#l!7{owor>HY3b1`dAOS0`gCZpLZjx&U+ z)Eo-Q;5N16zZUkFL?&J8FomKR=JykZqgt(S5=BSLb6Ij>45eboTsmW$#LDw;1OZzE z*MVM5Hq;9d#waU`y%u98^Z*g8l{P1~1<){)Vdk>8Q2ZMQd`HjrSW)BUy1E($A5W=_ zjDvzup+eXTU{!(4vnqYb>XgML)6X2*O?OR`3INi0viGSnCWGzXKF)R$dG8jLH#p}V+KIzVa&@U z)0ATW5R!~=-!5xTUupkm0>9)LN@0lL-oNIvQk=5M<97~CCOz-H6TA^O% zFcw*7BXjgY)Afkz^K6wlS_l)MkitHb3;TX3h@U;iBLGz_pk&U0p67fBjS9xP-?wx- zIbVt-iu`i?CA^6 zc-fETsagma7BO-ZY|_!+{fjyd{ZiWHb9m{$!i z3d;BdMr;xv3+SM}Z~;Ukn9~VpntB_osaIiBHaA+{1sra@Yk_5@^;aYHg~ksTXqbt> zh;q%{tfQg(^Iy8gTWDF8N$6SB05O2#6hWcoA$%kzV}3C`>1%A6z!O-Oz#MKsbE^~E zJEXPZ?J);@lsfDhF6hBLIqxM?d7QN+-a>EPYlRhT?Ksysh3T}=GV zIv0NtIs7g%Oo7MVW_Dwh9}gf-bpSGFyP)o~=!}T~!e;HtX_Ll?DU+k+-*_tl`+9)9 z1zMwZ{GO?ir|)Oeh)GkK_SS#~2Q;%4p=;^c{M_bBZ7hcqx}jPkAPsSg0$#amp!!;T zvPF(rA^f5d=8oXkqB@!>1ZVQ#-48Uk4(2~Aa9o>Ob!-l=POWv5BV_+QADq@!MWd#+ zs5CJl^@SSkNg60DODO~zd9fxI#)729n$=X`giNJ179cjyrWMNaXz6Wk1tH8|Q#(?h zH{i`m!~npoh#Q1~2ERAJj+sz(T?FPttF!ataFsUS8w(g!F=smXZGJH9)Q2%)K1t|w zIRG)8tfM(JtV4}g^H+MGpKgMeWA#n*6!$)E?eYHD5uw@B(nL%F|Pf`d!6-Kj> z{sNjGm)zl##i?KQz?eg1UzC`Qn!+cb2@q>JrKk&CV=*?^@w5zr7I#{VYa1W9 zo@(JKPYL54yMQC`EI9a3af%*ZBK2V-!J@=XX0tU^JSQRq4QFYA>*62EHSP`z>_kGb zYq8?hA~;;#jra7hd;qsXnRWp90I-w z8ym)Kg6eG+{d6o#4JuaBf%*kZ;NConK;bc)yx=p|!;Jw)xU$zUmK)y89I1~POn`yT zB8|{>YlWf|g#uw=BNN5TKe0Rku63T3Load^J*OVH+@JkoFhpf$E4nj5VlhwPmjkQ4 z56^#zO*bS@px%@20ZL7V)2Y|@sC{5sTV)GalP9vWo~a*9I=Z|@ty3u|=z25=058gd z0>)U@QY14w=xhY%(NLGRVnn!t908{lUiRkJxjgkPpb-{jfHf?{C(l-oi3(^tAQ%@16Fv z=~ZRO-CjlG}E|C@0Rq;8^+^%n!16lPS#r~q5x*tRplHX|I0jz>R~QP{Q@KqblAUz*DN87vfc-iCpv}lGba`@Jx~(>okrQK zWAMFYt&-qap87JYO{Q)1m#NI$UuK}`_lZq=lQ)3gQ?%gc-sAq3x5s;=wKA-xG*^9r zkRK(^P>^xn^D4g?Sk90aZS$ss#zuzXqk~~#7vl;-jiTBCeRMLrvA|rMM`IVw)pPYF zcj_bx4Q_ zWE5z2jG8?IYfp=b!zDT03QCUv0e;gzLX_M!t}x|Q2A>sdj7<#1%pDG}4e+@vZ?O0` zUP#e!u8k8}tzhiNfB*t`Rm*=y*f>!@R3e|AY(AG7d{$dv4^Ul^`fA{MA1KH|Z$kxb z>Tp`uf@qT!v!399$}^^x9__SQW-OK{)C;+x004X-FnBO_!@;o<_=I-_noF*|mK?uF z`Vk(EDs8pP;(V~ke^WpG z6+(h^^L|w_FWQ`dBu3p6E19rif2^#lfz{szG@)BAX|Rd1+BDA+sU-|((8_9ke!*@+ zea|9aY5ZO_Ywb&Y;6ixa&k?Qg6NHZ0ZH`_gUrWl{?CgYe(wNIwlw1q(jYO%cVc7Cz zmw^H~hu7>1$e=>l{AiL#>8~P(<8C%1`!D+;>CXT(_hR_F^3B1Fa_!rWm zPBo1u$p)=K&VUUHN&y1eXXWll1!-7eMf-GSLcr`7<1+ZQs}8X^)oKwQZyTw13j#Ae zgHZ)C_T7;wn+3D$a8)(>^CM7TBQyQuyb+uPEL@TDWHuGc#`zFRGXsr@ObKj`yO+t| zQzUvs`dNXdF%{-?PvB_+PLiT51grwiI7j+3C%^e#+jaBgbYWb+fSX`Zttt_zp<)lF zFgA%I7LlyN4Fs)RW|vN5<>lwo$m_ppwJmlXgLS$I1J$`gK6j0=|? z@WLd@KPX4eV$vs71iyfeW&)a*9|AOd{vLzrX9JpR+H;TixTh`M>jDm(U*`jPE0`hs z-GpK8cQKmvDXgq*LJwnmDEiGnDRS&$q5dxbS{+0PY{kIA8lq@L=P|ffDcs)HDyf*h z9p=KofwE#{3TL+CC}0a+Lx_XNQ`^}Y#kM2a{)g{4T5{+?A|Gn77;EmUum zBlX8@EhPqHK!fJ&AXFk8!yT+1?`Z7cvl}dFjqSLsXm@KV*tEh%teU_rZ(=N2n@)|& z3no3VN!N|gV9WiI>bGEDqZ9bbs{_1{YTqYVSZU10wm|8>Zu-z%Gf39%`N+)U+PeM- zMfD}my&9PEJf^|zvm*Fde6-@T#7U=-yT_pZ%_k4l%Y7ff68ewDJ~_<3GnnO1~9l_d^& zsl$^lbwKZY?bi`R7#u%UhzWsJ*lZNBWXpOWBIT|YMljh6I2(C!s{CvMe@B;p49n>; z9RwZQ%Ng^qI5B}h;Q(NOjfagj5;I}8B2K`oj>ISZ-N8!kyw}rvFJVV*vy)A097w7y8|Vy5~J=C3s&ATm%t}5z{&1P5^Y4rQb}xjy7duAmi(E8bPCu z9+-4(&Z`AB`VzvS-bMw1CI!HHCSRKSi%x%~(so;*x+mfNkI+k91voi~R)9X)Em^mn z%fK?0u%Zj&h$YhH2m_74y*w6KIo$#rua+0LgrDlLpbfyO;=;6?;&}06M-9%(V0un| zHdD!N5#p<6HIBcIrx?yav;2f=2ZWar^y<#(X9B2?EY5MdNy&RL3b>fYX9a0X>T)aL!wZO}I7?fe9JXNcYg##vL~+&*BG~6H15)D;E_CnL@=zgt`nb zK_D>+nN39*$V!C>osYva@_COL1$e1Fm=a^XBSN)79E6a_rtkZUPk&aRx%VKxBwfmm z?kP?+&vimTgMF?qJ2xb~jsi_yLT>EHoW-Z} zF04uLw_-n_@5wGCu^wl6wYaD*6s$`DmDCS-ncLg%3IL50DzwtsppK^_5b(f6AP-RJ zR?7$?p|su7`QVcG{W;Y6VFbQlN;}#yVNwe7;&3NjGo#)+Jpy#@QK#1NAH{w+t<|yB zrWdoDV3QkwO`6CK64Ihg0|E`Y70#ts*|LSufkIa^U6{We<#Ov>7Qe;@;Dknvwtiob zil5C|!k|2XaENt06w8;lt6jYAKzbp&Zv;wcw}Bo9Lqp^co}iC029tF}rF;QFDf!b( zYo2})>HAF)N*(|-w}8r03*N)nZ_IyOm$mr{?AE8^~>Cbx+2_gZWbCv6b(=(mw_0WEJ8O zy#C7A2y&2E1#3GNpvi+6Bn939VZr)ksTg*F$P!N4LSaK&=?-#L@5Xi^aKV7e`JrAn zWJ?u+Qp@3wzgLw)y^Q0RQ!ye7di7kQ>*f5(>}Zy!{%>X7(~gmKufg{ywa`Z|ALs9N z--qZ@-aDnP_A>9PsbMH=DMQR6lL5|9`gp_%_oxj53S?`M3^4pRlET=#PCyp~6Mkkp z5r8k=2WTWQn>7Um1C1eNSUM901`k#svwsZ-A_t&BRIc{degY3kYRt;CXnr%#CGTt* z&}Sd!bx;Xtj{Dl`N9$?cBfWRI_llVx8F1Y4C9uIh7a$0=4z+&_g3Y4gY;!o>I4k_I zLO5qhNyak)&QUkKvx+qax9fu=1Qu&fdz|3D%zCZ`md3MsMzZQ+L`ZRhVM$>$)$#zO zi0rh7j(lvvBJnGIrTw!PtjUpo|V413qtj`tCme|jk0^|I6m5-ew0q8mG0bq zKTK+~8`TX?K+_%70(CC63i{i`sct0S8wL^q-3&i80KiDOcD405UNN?IOW57>Hk^Aa zuvs|Jh2_1A3_JQD_;@#kTE|j>M^`9k&IdPtdxC4ito+RjJ#Ce(Dv1vopgh%fbXMiP5OD-&E7FG01U$G!gQR zVZiB%q~M8E?0XY92F@Dj$d0!H=X+)o`2q^gV+BKo!r;QJC68)C=MZYJS>!EXLI)9Q z+9a-87|I^X2Z%%Sq70{77H3DgW-xtZR&$SM-&^_oNZ_~@nAThf_RQrAqLDt@KeG-| zSB9tQa*A6#D9}XpDpr4+z*Zs)6*?5vMP+fKRo=NkIL27HjDBrAzW18HcLGjd$r4UH z;R-x3R0PKkMt0(uy0bq_Uv`wN{BEp4Isloz0-Jf0I0PwJdu8C0w_N#L*vt-biJRuq z^if&Ry~V(LrfUF!%eQ9g56*S(o;pAd; z7=fu|1B)~w?6IiSdh?;Nl;P617tE=T&EGbVLA2o&;Hdn~dK+)yrGZFagU2H73|XJD z=ycS5o1RpEqxV}yt2I|rz~<2J-fx?l$HHi$Cq0bhX&k_J#;N(jnhWFIt>8-Q zU4l7&JR2+kFF_z>ZzY1UcAWGx708enX4hv>d7|xZaq*-Rs=}5dB#+?70?m(NF+V~S zdc-sL_RU8ylSk`)7I_CXfyZeA)cw83Yh6?1001BWNkl`Kn5h>a6QHG`vRTYI7M}xw z^-2h4`S){D?gn$Z%Zgz~bgNA2s@M5|K=V=bC65NvM~W@i0@gLpxoh58()pxpLpx{M zH+<6FoJ6`e332i&26;d0V4!3sg0+Aqi#t-ramIp36~pr*D2i!=y9J&&;Ig;T>g{*2 zB9^BYUZUY8oWBCY!SE7UGw-bcM|1g8Sx%6bA%ONBmp2#^r|bHQ6~Xf0LHJR0CYCzT zbtnq@9qFThz7dDdpfDAf&{?ZWo-AHuN=B>k)YI*k9;@AT1TdU9GUq z-~uvRb`oORhI!fQQw1BlUc^CgTO6q&Ix}OjGIYghud4f41I~6 z9#Q2Mac1xHFSY<(kl!_cb2Yn31t3F+l~Z4fh1gg|r&`d_AS0@*SqMHY#j~cqvLImwgnStrJdw+;gB=mD!c~iV)-5)H z4|Q1rC}OHSyN3hKM@jb-Yp%U^&mdbHyq6>o5WGBizJ52+=-NDkG-_h8mU@ZPq&l|1 z#lD+r0@;kCk3nXWfgo^!h@k`k3_c$k-?z?TSWwH*8l#E{%&!__21D>I+^fcz4FeeZ z;-KG-`Cqil;*#|V&rh8|*H^27+#@2Jzo_`JCTvMODd8}P`2{YMy?54D+ z1P|~In2xOuhu~Ym6QR(lZvYj?2;u3#fRg^5A6&PCGD2-!c6tapzX{Vd+uUmezB5kl%}mF>}GR z#cI|>yj#KLDwdZ?{IoFhb=K1i1A&g|Cv~#U&VB=cQBO}8A#=kY4M~xc?u?mPi;Y=( zJg*Q3@vX9awb+aUID(f3G<^#I4Q{%Ruap6R6;HJI(tHKN0A{`s7Ls9s0cdjG=#31Q z!sGU&OFRCL61ncle73H+XB|1Ot%11p>@`N?0gwksd-O1S0B5Z(R|C%BFz*XK?UWg8 z4{*EcKwxvC%>qz-f{-jxSx{CgpH)&Apb)ryOIPbXS!}`;;DJD++0w*>L~8v|@5&~u z!;uZffnecmshggymMP&~0PQjWmugoA6|3x7fj)Okw+!}cXY*@BnU9os&f~V&VjHcx zuifW?%wCpqjc9Z$;8e+m%=kqW!Dg}5F%>%r(`s;Am?^L|kp<7n@t(Q@G@?w#B#6v- zP=7-qBo-jkf%t{TRV`96BVKo9$&rfe=W<6(fsM>#eVn81RZAHJ3T&RfSO9I*N|%GQ zi`P{Fm?hWl-kR6)p`A2& zT~+oNK9+dF-KRQ?XMSe)LxAR<0Mj~t>F-<1a|y#(yY3!&MEbtj>sK-;8T#S17_|Hu;se9x{uchzu1l-8Uv~S^cy+t>{G(>! z)+=r?om*$ytum~gyLbEWJ&ygNd0%``Tdbv9nBeYvZBCBL=wlCF_k*qm=dF+|ciq@7 zif{Q@JV*dY)*SoLTIB#ubFZl#t#>W7(+Q!07Aj57L@G>qR~?gHXVphwxNFx zT>g^D(WU7`)1wP0A!pp(%Mp9nMu+x}JqWPMPexddc3Uj1r*EduNPz6a=R5bKNX-*fFH zx|~bv$=7e)|DHM?_g-V}DFVfpdZW2Gs3--2(&Jd9hD9g}dr()e8s`XpHm>tlO`0NK z%MFN%Vh^)cM5$f?d=PA^=0PPeFq^bii6Zx53!`f7{4Et?ahwdJxLI zK-^v)iibt4_cilC*mRqj>p(zUm699ZI4zP*ge4iI* zPFARK1Zm>{QTm*>5coWhh^7ul$QK8IEH8~POkj}ndL{hLViYqO)YSwAltWu5Qyquh zDwV+m6qVBFlj>)tPq>2HRbS#y%2b{ z7~huYvL@!;o84@+jeE|<@IghYWD=jo$9D~k4i0{n%VL{dr>50PZW!;;7?6}ag4EaY z>hDVDW9+7}Jb_cs%w=K9W=~#+;h>4S3g218tIFb(#Hj-WDAx_+E&!Ta#hI;h_hdnr ziX~g((mjBN(;5@GwJp}J-(%X3)CR4=x)-!~&Xtus*V2}Fb``U-{-5IB81sKk`%a}r zni!`z1I-9NHLa3(5{rpb3@FlG(y+*j-_AITl^#1UktC9_x}@K=gpXv(;0Lk#t2Y%GoixMBWITzl32Z`)5;2rS0vufE zeCA9VncLS;>wIhnhrP8!)`P3atIFw*vTqdWS}J`FMt(QX-zNZ$=dw9mFrY!Ps-JZ- z-4`%{A1+#caLEjQ325Bo_!?O3$$u}{Y>5tgj$>ZeGOMlfZ84)(zIz!$i`i^3zZO_+ z0gljpm!4Zo&HIv-`!L5Xo&e-<&Q_>tqsGYA;{-ZGZ5fV3Es3NG+S8%~3@9cc5K+r< z*wM^tycUGty;+bdfbkT-W`Ea;m~uDkT%J|=+n4hJ_UN8~rvF;RGIT25@j@HP^74wQE~o<2|P(I(ca?d-B?EOJ8#>aIBT*DrIs4 zoG10a8FjwzM22p8PXd-xG2Z0;rJ@3lfKQIlYH!||L6&c*@+y`MUlvzw|(x-ZkqQ7^G*3&3^GF*JV82D7+ZWBWgUZU<10)5xwMGW zX8RHTVry$09E-M@#UyMjGK*Ji$g5#A1#zeuO|?8h3mH&+s-5wI>0;6n1k1xV^jBTY zWX`*AKd1KunoG}b&D40#6EE<0>wa$@*;C%ub$bTvS{ZLq2Di$)#p;1 zu5P^#&TH*Cdya2jV}KK$>z!Y9Oom}50MV4gq9BoUyypC8v2PG?BE%=|iZ^ogRxFUZ zK$waM>#_iFs_+%iT3D$b7hLAE1~3@*p|5>yDwFqdxxbTHo6O7jLH;w|wU_+97I4;B z%{9;8Vj`EYpw=MffxAaR%+K`(OskAsR`0sC_uMKkgV5IfSO#(Gx+NU6>hLJQS(H5k z&NS}+Q`s+n(D5}KBqX?j7R}CkZ?re~8Q2U4)1tV=7HB<3`-@;=M>fPIM;#8Ove&oQ zwUE&qNQX0nNu>-%u&J)Q3_WgTG_CV{fn)3bt-o7kSsT={Lr=3--nFtaI|u|g-o0z{ zL+joxu)*tEbzlHMaN+3Ie7*O(m2V4xy!*Hwj{=oL9dXtUQ1`uxUNh6K`68a|_tu^Q^oy zRNQO$*?an!cmJ*6am_vMby-6A1de>=s!oP?DOj_=MCg5|UWfV+01rOY~v-0!l zATZZR_Y=FB*%|3-gqaC58jfFsIvxa~UiCN|y~?TTwP}m3+`>{ku;D?qbx*6_tr>W$ z%=Ue4cJ;2~!P*jUJihBOB~L7C%`aG17T)>1cQ1>5Bi+{$vsx2V3y}7TQ)}rO=Ck{{ zUPFs!aY(P~P7)5oyl*&eb3K90cm~BWPZ<~)lYl0NurM(z7Hd~JWq=b40}_s1Y|JL_ z(q|5M{c;(CeL{&p6S8m3Q(0J9<*_fi-lG`JB|x)w&)Q!PbXs|1ij8Y7Wi)#dvkM-K zEDj;atO(d{9TPe`>*uB{3DNEmRw+>!?B00J@ z2>POKUNjc3ZX?{o%!Z#gQhBZssqO(XTkq)-z*&?jd)@z{TU@`+V=?=chv#{D%bQ(ju|QakY-bhUQn*yl`%cTD#H znigQ}J>R-#&j(-Q8sK=Wv<4xwUih zYcVK(M_iUiv7AdMjs@UE6{!xVa#dn7y@YtyEq%{rDMJu2hmQo=q8XaA?@;gimJ{y2 z2{CYjvMg^am_7$Cw;)%?qHjU5DLe2PtC@UfzQRiGe!XWl8g6ge3pC#O784PtxNF~A z=hr@-7~)w|0u2PNhX*!m?a?~si55(x*T5zafQWP4V^DltC?Buev_KgZ!yVp*VUVrqnm${Y`kK|G4~S0+Iw5HIP6H)eLD>@68x6L%VYiO&neF!i%Dupb2Wv<7 zw3M^0y0*ZE>%P^l3^sv4VGC@$XRkfC1wi7|-2+CUffcFDoTothiqqB}DE^G80-Vlp z;7hR(54LUZX^w?st&uje>s0JAi_}1SgG0~A9?By)@L{VTNRJc1It4u=1Opoc8D%%! zQ?09+mLweNwNTk(*fPBH+q)EK_FS_EXj&lCy2qRSdEj~`WS(``>T*eWEVc9$t$`XG zpka_~wWn7SgI`(UhL6{&)OOi%km?WZeS zm+b+NwexF(!pm!m5w!BNqib-5sJ;YHWI^b3GI)X@qfHS3I zX~jSQlRh1-E{75tyXmW)Cy%wx2KRT$`#c>X!rs&RwAN^xTaI7)`fL$SK?IAEMdd_?-=2VmKB#2QkpK;BIuCG) z&L*J#CY!{cR7TuCYOiH2-m$f7TC7GIB2VkQ2Pnb0M(BG>tdd5jXFBiID*(utU7#b; z!3OcL0e)PTHL>Z^fzKWf_$>6n@%&@>xU95G>-|S)6A#cVbyObj8rjhfe15IGmjc=) zsmXB0DIU(hl<}=k3PVsI9EIaC7U#XZjSF&D1RHE!*mkBmPD!h;Z5z(_MOGLRO?c;L!|t7ZCSmeeAs z9%1G|yarnQOg@hJ@3GLeSixGt@*yy{%F=pP>p48R>;dXqfaRi;0Oz?_oF;{_E-6a! zaPnJI&;Q9>o>q$MuADNE!kBuct z=CAa3a6pXpHf!vNftR1-wQDQ2=DR?3=eFYVtO1-?mOUcX7NE3%^A>iqC`VSLz37Pm z`@KQLKLeWScnU9Z){i&}U+5{-UU5>lW;Jj|1)C}!O<_18Ga7iM!2+D`=m|G8*d>6| zI&W!>fpDki^ZdLuI^ALcBh3wwK*k#YvN3?U&a7zV^+A}Yfy|LWjKK!;#yRdxqFM)e z^bYG{-_w=|6B=zC>AcXp^Nw-8Yoe9MxGo*^USHyT_U3ta){_;+pXafgXtX-{9mYAP z@o=nt?c%(BOy0dgB6u5z@)oo1XY{A32)(4Qf|tK!unEX+R=fGW##=kaoo0=->;WN6 zdw^z*#du6dRyur zduPq>3G(5(4#0-c?0j|x`re+^Vl*w0W`wrJGN5wc+Ih1zX-T91Fe~!<(pEoPON%@! zMcSwN>=ZyQgkUQmeT@YoBB3dkUg z&Aez-+arL@6U|Ek;+5q)fy^s>41Auo3qL_V2wbmvFG~LcgWf=Apt^fZWUb4sfzRI0 zp0w6~WJiCxv~OLL7I_9F9n+Y8(+|13J67ZeCS>*rTcI6o7^F%U84W7mBXk?$h%n~3}Ypz}%deAd4`FtO?L4-xrY^E}f; zYv0dMb_P%HFQ!26j^DZ0?#wEY<&2HK#C@T~dcEXLV2@61z?t+jxUX9Yk~b@jF+wK< z(6hb64Nw*%u&V(FTRSaR=!y?by|G*mLCl|PHgf~#Y_Xb4m`p1#?r`F~4_0I}mD=!Hh7{drRI-of64;Lh(I(_R+rrEA&DtpMc$ zPWr3rlf+z3dSNW)@CdauwqrGKZuN_MenZbQv8vB|JJAl7+1KW&cHX;?(OiN_Ezt4U zj(5Fxj0YvB7U1ChUI!EBJ70s(Jb__Aib&4*A=YhU%Rx2(Xk((!v2=Usd6 zLRRt`8}E1z8|LS4O-^f*);*I8I7TKWMQ~o<$Xwa!fq8pgI9F|2XNLi7%$n7!P9|j0 z3A~4KS;7^`0|Nfu%6aXH-puBGkI;m&(rGwdB2sx}WH%kFo3pBCk_;vzEY1>YN$NOKUV)8UtW0MQ5(SJOhCZ z4jgR#j_SK^plnE zThHDqv)6e!*{qJNhG*;p)k&zMuwDW0Wi}OnW&Enl#zdwUU>~7u+}bpMM*^E(MWH`H z2lQ1xY?V5IUgi&YH@|DX&&42{(wmkiIBn?xi8ldk4Nh*qK!E8zk3mWr$GvCn1&KYN zb(g%;%j}Cnw{q>&Tq6p!T0@I3oYt;E???_v@>>5zP z?>y@Wm}&zxAjc9jy@2Pk&mERK>CWml>*Ng*Q?lB#(adZ!DN4^a0M3pcW38PTY(6Qg z`2uVMLFTON;xkyE7(9_^M|}sss%7en-upNGj^a}U$3X+3sL!>(pQ+sh#6ko=ZUY2D zkF9v1!EMFw`#}9AE{EG9Z2=9YHSwzT`ynYe?16T~B~Bg3dYhJT03M7j1RhI~dcU!t z-l`iqP!fkFP1wO|wt$9TtT(WEhUb|!G(1%Wz=rdK$gCA>Sfkor-L|gnsF?!H7g*i{ z9k(>n2SHT8I%A3J5u8qM^UojPXJcXtDy@%DCZTr|oPiy{PvqDDR=hJ!4@ub?K=PscIpFt@Ej99)Nve0ys~ReCt&vv4H3(0GOh<- z&mES*@kq-80?hEe)b%?%rr&`&UTdYY$IJo@lJB5L8K~T7UGj8D2%^ZCjtUrG0BCT4 z_N4Q%_x4n_%1>qatYG*Ac?jum1l||+0|Wuj5Wo!6dvBOR15{cIT7|%5ugK27TY#|_ zNUmZ-1~%0Ol(g_Vj`fI%D}WMX1CaE5pUqQ~Tk>i4DjXqrIZqw!M=ib!y>y|D%)fCa z>fe+8K-Xc+{u6>#>ZoL?GD(-ywZ>f|@GoU~R7ds8$Z89}rnDCLNK zSv7+pCi23{sJrGV;KZk8?`<>$f9GS~hZz9cybx?Wknw1`I5RU>-v;psOsym2Y3T$W zt+D|$c&?+e9mxaN+QW2CFJO}XLgh3|k118Zk=`JH1xIMGSUyk07SJT!0T3b>po);i zzD~;mMgy6%{(T1hl$GrT-iMXL+6dQY87O-?x{i*mk$q-G zLVb5lx8i}$o=J+!aV_9n&2F;uE^oQboO*=Cm@oojB#>bk*3=tzSK$N0;<{Glw*Dfp z;9pNXLRycrDT+!=p&5KUT~DMA`UKVwHk%584ZcA3+~p=^Q0&PnV`VZO$0zW0d7(0% zs4hpRBb{jVH4lyhh%!fFQ7`b_(|<%qx71NNt**8%Y6LKd@XXYGC$g;C?y0L8C_Ss9 zIe;GLH?VS@px(%g2JlEWCqXO!2^bFc)iv=L6YF(a`P`Fj@H4K>|6;&NFP?TxNdeB) znRn9FgmVF!Dn^Ysy$;L>wt1bM?{P>*id3@lMm!cHG;p~Sdov{i0|OK{Jaz=jn*d!v zqQ6;?CkjNG9q~90)(!?cm$sTcSpWba07*naRQC-!GS8k^ZuBSVo$~&RT5djr1<0-& z!P(8qXrhJXF#`MHsC>*&@VPIvM8Q^m9|25IU&J9OIw<1_nA>NtGIda{1a6;1`e*IO zQy2R~Wc;Im*=GQ(&k8ip6w+~4+yVDFXgC9X*s z@!CPU;=nt-sBw<^5YsZHv+g@Jz<%B+lWVC0joxg*f>GQH+SB!W(mWr_^tF@av{(#( zS~`~i9UAk+zauD7M*<0B0L*wi>^(Ry&F(n^s0`G>QJ2zc1M}EL@epV3U-fe&MX|sj zH(!`906tir;D8>tH!^}AEJmM*<=|SS0APX&UG@gfAlHdJ9kq>LRUsT^&?&R=)8*nY|P4#ncdV+o>UAHh@Y*~=Y>!IRQE?{4R=OyRfel`@P-$NN7 z@k}K=)cFNy>6AD0upWnOus}F=F=gabh`+bQE36yO49sTioOMKgP6v%?GuRtNi|b*K zJ%ge$5(pg~P(0F1$%E1cHZM4|-%n)n?LlPt3}xYjY!BN4^9mr|pl$@~Ywb4xV>p5c z^+ckHJ(tbZ2L+n0hi;)K@=iYjg$B7c9iN%Ze90(d`u!%S@gH-1ZL@5>!21pc%KyE{ z@n7X@|13`lu%^4;o=rD?95*dEM+actOJ1zM~h1qEN0Q6eq%O zaR#_hzh?2vV^SEeh4Vu5dJh8-EjXSSCrdo9>LZTgwuhH*OvUnl2GGN2o=FMJ^|XZX zXbx1?f$E9kAa0b0WwZ56sf(yb1g0*`pS(P#E9`nQVs`V(A7hYFUS#Mx=|Yqk2N~tR zi43o^j^zwxFst3+i^$*p2YGpVk>@GAN*H92S9u#>z5IxVa*R$e`gQk z+-eavq1qu}t~4^v`W+qPds-~X0~-Fm20Z4}_e}YtSi}nw(Ijr2ZD`zoa5~=zR+I?W zoON(8V|xXlz%{rwm_}!o9S9Vyi+JqF+UH0jWdtA-+C0ym&+VN4Viy@`0(es}GVAGg z8Dl4-(a#CEepmKk?VZ@(QRI2j^ZX*+VFH)G%lG&nBImclTu%D;cMVHnZUHC#`w#t` z04O|B%ImKlka$2fHm>#Z6nZyt|8Tln+7C=)t-D=-jIkS&dU$loa&%UEes@J&D9yX( zTU#e=JbVGnRB$$B5do7Yig{JxYw%hG8ykG4U`1MsX5}XkwVt5%7*7}L$2y=bu)*~} zsNA+>pmzkZ&*I7a9m-?Z85ppI2o=U&dz?TA^ajp&sHBbxeyqfo2GhhoklhjDY{W>< zeXEt-u8HN64S5!jgW^$9E?Z#oc<&ND_ZO|K2e z0l>v*{Rswvea!F02CD_M3R4LJ`XJs)O?l>i3yU;?DqLD2|~& z5}KhgwS1pO(5o3}d;;s(1V|IYys7E?{}qw{Q^Drn_1%022R;Uo6R{p#xXPjsr`Ck& zF`s*Yz}C3g05i9GFl(~G_6;m0 zIQZVc$&VB3piq1|0N9`xafJGz$TjFd{tvL)V9c3k2X$W(#Qb;rzzy+136Co}hV9lUz;Xb*gy{|>%Jl!3&X4fZgZ zxN@wO_}MMMiH&2tj}y{v)PD$J^Z^2W+wA=eI-v;q7yE02?7I%y0S1}P)~_(|O|Nq# z@unk2feSUgK{W#7Iq9>12ax*)zAU)Qf<^PQ`+n1pJ^ycD!v6%%Lu(#73R>G3xR@j3 z0OHU;6lDGn5&3@dnTcfI77GeRF%xbi!MhcE@Ezqa6P;(cJlbmKiGx6F4Hq(AGYMk5w zI6~mD_JX}*Ef%yT7q`-$&cXwfXJ=Fx_b`*%;QB-}=@G13r~~?@184vs7yyWVh5QA; z2OR|2(>KtwM;e%C5DWQZgZ7Ec@qbr9F_!laEw@?i{va#a3B*v;|Jd)ZMxEH|O6|7Q6?q)B{ z?9{8mds>(|>27*uH>WxRUk(#$jTDR6REbmB&nChQG7%_5}UqT{mf&?_tMc|x;DQp>EP}R$rfhIY|@U^ZVF09 z#8w`35HKC$7l*OD5fi!kj8MZ&qfB>`_l-Hu8sg-@U@%4q>tNUS^xN(~lURh;_W&k#|3DTKE9Z9ryKe+WxULHoqi^u{6+CHQ34G23 z1}t_(5Yc{z{i9HXc_V=PT^R@uegg@Mb^Ko;*!nL}kN>8iW?=JoU^8#@{DGcPsze zik-8>@h!!)sGNFIdMk}euM7^04HQvHe=h0=U2FIXozWNC?|>=I2h2hKF~lnMX}JpN6Qlen<>Np zoi@h%6)a!>0QUGD0P+pM=0xHXzfbQk4;6mrYxFOXId)63%kifdiG()9(m@MIf-jXRxmc zGb(%T0D}VueMk9!rHQl39ePT$ zvmuw)6IZS%3D|KO}Sb?3E4+6dEybLdq1Drdr%PW>t5a}3?0^Wy zy2YTxnH3q12R0G%_rw?WhdEH&jE$N34`4LtW5W)NW8;H5r;hT*w(%6n0f51P=M&ZY zjhyh11V^erTJ1PoYinThU+RvpyWDW zr)!yj`TCJ`Bg`&>livsmX$--E%4wne5Uf$>gNk;nTZ`fFyWGPT_J}`1d9DGUm+zkM zd@q*!ULsSgUez(21=4svfR(8O-v zwY$ejS2HP&4`ZQQDZ}6A>w4Yo`9fWeKymL0I{balOoRg(*-ZzXjt8g5n7mod6I<5m zg)G7brCoCZRxvi7g|A=)kn~s{iir$Xu~ARdPd~mmF}=-BdHPY%2{I&Kyt%OU)_Pd-uTlN-HoX8e2_quL ztslwzZ_+kH6Lg)#@mqRm-eaayxo-H!e9t%mPS>EbR)d#=9+o4HGhumU_ajItW(%TfjzAylZfruyJ?s+I|AA`fZ?@69x2 zx|_sih7#^i)TA|bS<4(Jf1EJKDNWM0dLSpA&g6MKex5&lJ;m;&xtB1UOW4g?9xY(N zYdpP+2S#4Pdph{-&DI@(O{BW=AlMp=UVRvF))MC(sXn-7iNh;J03MH_aNB#J&-rb= zORo)D@7Sxq<+Io7)p|~=jIH~&uD=%;t(Gwg?4U4$xHJP$2))G4f*fhfgjn8uGKWX? zG(Ld{mc*#H8F{2Dk-5b5HHu=>!}AExsOxrMRH;1y&{LVu!ZVQnx-O3doW1vQ$Hc+I zv|gNZ-pna*d%SVqE@BnEs@>9OYfRFlrT@$s^N1z%HRomfIz5JvT~o7=Or@=H-03b5ctl= zTMUWwVMgGUKhPjXKw&+GH2!*nb8T?9Kwzt5b9-;;N%jCuq;}kM-`;e|VBC7%T032n z-#yY@*kI~#eOZDKa0Nktip+0m_AZ8y64^KBT%!BgBFr4%3CU}?OXMR?*6TDw9_t-7 zgYB+hRmcH~d1-f8JfLhGq)O%PD4|mazsdP;0-DJLz5zCCOl5DnCXYR{<=Q~x0l}n3}^6tR8^5Hgy<=;VXVB*B=Z6Xtz;;v^9zpcz$fbDk~R8EkB8O=B!o3^-DG z+NMFkXhLVZ>1jTxAcbY^ZP050hx6D27+c5pQhpD3w#vA5-qYQz&7R&e2?QFUHfdec zD&HCt^FVj4o@>B$>-*oEJeIR1(rpdeN3ffRGLwl+#2UPT01%&~vuI5!G76VObX{TQP$x2`yBPpgf_x)ekc(m^E>@ z^&Z{>Xdac^I#sUS&+|Gd=~PdvdfNmtdQqa`V;cYSKH))WIGtBnD0$k zuAQRdrQI0}`Jy`fB-iF1^gH`o>s~XQ2Mk-_b4|W$=l0fRi>k9=x-zE_m-K!?k4 zNx571wM5KEq)R5PJ=fi{oIe7Lw#x6G4+uKA8XUq-;J02 zU=Ik8Q79(w?f?(zmR&mPejJmRVPZ@6;8>R0T?jbRK;127@t&#m%uC9$=h|E7`;QV; zymSdjUz3={U7Gh*gA&q@Vm0@8ZgY6LphK4EY~2 z0hXW*mw}@$mJ3hTKE_ogW+URmK7&EP~~% zpegX->DhhrG4Gk~`RGT?+SlkVKBCTGFStB{wcg_$|424y>0a#R=Ib)(Xkfi$CV$pt zOo|PYq!V9fc4LxL0-Kz>0YxYuu}#Ar6=x6v8e1C?pXvjH9j1^{!is@ z1e}V&jP&$abURTq3#!+#^L9gwb4Ut|YLXoT&33O#A}0I%s2XmJ@!$aw$1r#RL%Jrr zdx!yR>6T8n_ufYj=tqkAD0<7$Ka+$ruZ^6&(K9p9@Hx;9;!|E}xv1%N&Q#&6G}Q3{@= zBRR8{P(&e%%9TI|ieLbgWI6P;QRkoJ#%ytO25<(_=JF&8SA}f zCZLH=05qW>W!_fepw2~y+8lur;SK38z?svvI-*MeXKx;S?cTiJD}6*I{jF(VolHNA zv%ZQiy}hQ)Bv5=})?+|J;rB$AV3WNJ4|(^7m`vij{wl;0;VXZr84F1wR0lz}Xu*!gERK^qbJhpxx-8oUA_q<$U<(L~xC;)2+2jTu&6#DX z7>7EY7Rz}M;QRTVN!xyt3R7QLR+LSdxK|tteH% z=>o7U2VGF>c7u3ztO!Mq{?mqbdpR&EYMmwi!`}l5ZBz z$b^0a;C$2$|B+0lYiUpW-AVd=NZBlT?fcKbbaG;#NzplfpFi334SRv~#!&Lc;8HdS zj}c7a8izOxpx?3o!0IICBh%HQR`*o4fCv%5!rss<4#ix!qn?`9SlB*QR#szHqR*B& z-bNC!PPFNsGOFAQx}y8RfH4>JvX45${wy8+R_o741^b^3Xtv6`S)aUT&rlrsl8?=6 z5vMR>gtJvQ=xfGe3a@^{HPs%G_)$;dYAQ$1cvI5~L6SIL^A?l;j}kb1>uxdyDt5q8zMJ(AAdN!+Q18rRY>5P5P!BR$S1Ce$n(e z8Eo?UCwrR#nub1EgfYc!r~_@;lJb=GSrxo}F^yLtEKKl&&8$%OV^RNf8_%?TOl7|x zfZ6D^@q6(+PU71$EQRmEPe+vDKu_2iRq(I$W79_h`b)s$qX5m-<%qy)M%AU-c2L#k zc4$b_aamcTvh$w6KD`mds91btGV4Ko$_V-!uwt3A*y3G)jwTl<=qJa%F-Jl06qXs- zvJ_>7p7yQE6|np?h);Z(nNGHP;qnIqyHE3Xd)x&}9{yrC*QZNe2|hwQe-u}OM<=(u zafu}*E-_f3A{mDag!-)bRi+RHR&C?p4Mm$8k@4Ub{P@AWfDe!->?Ixr^e_lYUD-w^ zTfYu@``@(Q%E}j^ocY+8*;7;tRY=RA<#6O&8Y z7l1N`WS|v8v3}Vas=Q>v_OUqwC@{$IG0BxrH9GXgyKw|Gv7*OMy6i#IPQZzc&h!`K z*-n=L#wGfjd$FN=0F9+qA9*hjy6HI!Mq|+%YH(S)ynt&|&v?DqW!-rv+iz8U=`(whdL& z`4j{whLYXR-s-)`d(6E53}V{70Vg)T%f@qV^|86;`i}-Q?saGbifU1ofj|bwARd$A zDpPh>=)ivk{cWU(Sy?=>6zBnG*quRYjcc`w18j0v0S>I2iUHPPb&mKZP!XVVdDFZ@ zS)*mZGsW6STh8=L)SY7MSfuzVn!KeO6~@=jusmQ|_y46cn$snN=@MYO_Bq#HfA4g& z@;dTI!^xn22BS3Kc+9^IY#5QM?eF#C5a@~gx&knwP|V$?WOlE2YL$I?K=%_Of!tWj ziKu{*Sgc(cv~0cB9GW6ovjVI#w|#KBP#DhxhVY&ow3d%da*JgXinR$vm27=-UQ5nH zz*^N&Rp2`=H^|um&>*;E9ZpviQPuJUVm7wYTq5jkV^*$SVmub}`P5LI-ZMG>MF5*S z_vkg2v!`Qxw9fn^(=EWTb?>Dj&qsVOHv^53hp^$msGh=x3CUadtpLsRnOsk@PRGpR z1~%e&3TMj{=v1;f97Qi_ygIZ@(cwjPBd{PlJeDOCyvn?aX^czSjoF;bwtluSG^!`@ z}d>~YgI{Q=04Hq zJX?TAV?ZbUenvkV5R(jK1lLQU!nh-lXuY~t7e__2MPE1NG6YVKn5UJ8!R8ELV|l7o zYbsY}Er;T5JchhuUodZH-phRQIz|_t2aL}5)VFw|*PlVxb1UG;4dU&emeJrvSw{n2 z!8p-RKw@lXgvFQfRDzz{*y=O5c&x@AIs)LtTIpkYk&5ZG(pWF@EH%>XVsRwQ3B@fC z>8eVfAuqO61<>2z!q8*dY%Au?v=H=qz31s&0Ozk%x5qWg^hW{b&-8xo3N(2QrMa@4 zi+(06hzDRbXJ9_wr&=3@tOf?E1Yk7Yda2G)AUCR*^*sO@_-tFAfV(#2=MTjsFA+cn z#Hifs0B}aIW~FF;x;86W&W7T6WE<-xFXtx+*bK3aP0Dkm!=EjEfIY~J_^X} zX^Xp-6_vu{P(-NY9`aVR{|qjtd@Q1_CVx)zc+RW7D^@cuLqG&%K*n^?*CzVkh0a$C zH?b*W(QLr8t^fca07*naRL?9pzvVFkNLi(=b)*K!y!!O4Vv_CdVB(cNH<`yF{!P;9 z97-cjp2hK5_r!s>e)zco=g%TWVY;?X*RrWcroCeCrRCVXK5vn9Qf2Q5>z-_qSI|jT zs97l-GsAf;IvUim&SDf4fps+k%NVj%2+Y#~K)_guI6zZ<2C6Zexnt4KNGOUZD`2Is zaaNpXCS-Y<)1Crl2UaRv$eCr(H@#0~&Vw~t4=c&_wQm8ACk=j}^w9z5Jw+;-_I_Ae zd-kpGYqefBMAMx6M{RWy0qJ2Vx)`-W#RN)cU_ZQGYCy1oCoXCPtRpLu9p}0VPym>+ zh-8#3&?^O*Bpn(HbIQ*KCbTen6Vc2;z%*Yoja%TZ?0+*5VxJ|BuM#vk`>fMBLisHe z#!$CeU+H6}M*xkN=ew|!z1P{0jRI?&h7t@)&Y zZ^~v)v_T!|dHM=G?BTGyVByp!MQ`KkXmBeS*z69sfXOSrO(!GpTfGq%O5zA$W7Ld7 zT?hirSe8oQ^DX$6=-R6+ip_`}!&yR5<#1ZOX+==5nO2Zbv6ZLQR*Ti=|v!r%T?+ML;tO=wytU*raWi+(~TuL!vqH*>xFsP9+X; zRv>4v@rp!Fedth!W^WNk>5Hs{qUhO(V=*cNO(Y!*wF<5buf!`U;G%JFitvfAQyVQ` zcTnX0R&9V6QyiQ@0tN!gOb1=DpFy|P)n&~t+%{7@6}?Xcmh*#0&^>4Jk0O>mvK)6~ z6Bk~0&GoykMPVdcdC4@5y^_zMc-|)-pW`K<=F` z1{njI@eLHZI>t;)N`cJ(kU0Gv{{SX~j(evXU~*nrXA=MroDx-l zqu#fyrQNi_~Sc2!Yw6 zrE!3|ms$UV%ge77v+&h?5E1RqGPr*Iey3-_^VjI7WAthDF2n(!0wATv=g z$SmWeF>z#e{yCsqBDFb0@*i80>RuL%SXjd99?+l>|i zolGwwfN9^vBxYb4sQQ@!1y!!4^h>E{I;TIqm^#)}9sOo@vvx0EEAT41mHV$q_hvb_ z=I7~je&)2h4v|0X8>6gdn8hcb(Y%4aW~{{~)ZGZ_fBHNSE+}nff#TzQc_0vTYF;f{ z;Pam7#>!<`{?5V8aW@CA9;V~bmG36*p~Iq_fx$pCDs{dA=0r~>3Y zf;aO-VRN~s&y)J|Y+xugWrgcPx^{eJoPSt-ZondNAs0GA|oW^qt>}f%CEMq(Wu*AnDJf7rHcU0!;=N6d?YXfhCed z9stb@GT%TM{H-wjDn`vnRwz8jp_TLhCk>`^X5@%^!2Uic~k%vuxBO!Bq8!%?y>sbXM}I!6@-6?9hiki4r!sCVtT zA^jP_;XOsD&1V_N48~XtKpZPlW;1W#A^ZveWzKuC7KtkG8A!AOKtg%F5~HeKfclcg zps!Yci(@+B!G{~-jdca8XRd)BGaeM10)Yn{%RVp&HUS2sfseNk z$oiD?L(wc21$8#t>nHEer%LF<=b32;HBX*A-U?HxK+a|$yN9T5PMu?!>xx2q3KTE> z-IT`v%;L{2X&0kOKyy}o%Xa{b*Lo3Ue49b0Qu@AaAGvhOfSLWc#;d(2u ziS?ioDI$>9C2Y`%6cI{>TcTfj7( z{9=wesCvj(9N=?ab!G{s0|JH>tc5lIC=eT2V}DFmtOc_eRgDy9WnQ+PeJy7BjL&0< zmWHykEgG$g9E%@?5EBc1{mwGr;trx+Sr4|RyV;2(*vhx29|>NMU^T3<+;u}1r=zl& z-+|EpTZyMxFEc_oh{&KreF_;(wmNyD695f|lj&R4iV+43)oNj3V#|(z^(8=02rwYw zxeGC<)y$!wYd(agWndeEODj;6LAKGUiMek)->W0mL#S~{q|5P>hmv*V{0E8YCH3mR zqZ@y9+G(u#Id*bChr2Kl5S4WmQ$#QaMpH${hasBxKu7&qEXNNj;~%~hhSdU`A2jM8 z1vu|1B6-il>AQJD_1fPGJIR1?$}A*iPhk#lbs|QCQTS{U8fpe3#Aa|q0wg3-iBVh? zt{#a;_+}SCgUVZ6)s6ZbW)S?0R?opf!Xg_6&(Z+yS+ol9y$6q9GGXI`E9uVOsO^Il z3wmd*J8naRc~M0wCU?l@@JX2*OcyjpFpEnW*_ol)atVC-ynoM7fFqKRMAeQcdQ!b$ zt(Y9F6MdbnWVjKkIIr_3Pwx#fvhqy#c%)C7^G>ki0WT>~29wUy5`&QehpbG(eIE5T zsGspzjiy?R;+nJoM!#f{Xk6}YiF%wWhHRKU` zv9g$`NIDIHFsao&mY>SEqB}NZ27%8D8DOG{c)^b6rLpwUg)a^I%iuUz z*wbNBV+4e;T#Hf6WH@LRi&rB74(`MNQT+^Xa1f#wF6($OEdVEw9)|(P6r>>11XdK6 za1!Nq)CI}1!7%hiG#$r*t``F30P-$wBixsANC28T7{lotihVFHUO z7IODgKrVMGs}qVxBT!?d)MCM?xqebaFEQqXt^lF_ZZS_R|4HYC%tju!6UCmiM{o1f zgN!Ba_5%I4>bC_nW^G0X`b6jt86<{AKCC(zAdd#4!L;-s_CUuWJ)B|I(>N9=AxA$9 z+vzcsyk9sKI5rg4Rf_{a%1Gfzb>;VH4L+!X_*j^kp*jK#&Jwwd5R+Jr(BKSE)J_2u z(%IY&tIg$5gHe2vIEg)nLCKN^@?x56W=m_Jte=^|CRWTRQhA5EJOT=6Q_P?hFwcCw zZURUv*2l}t<9h(&Ug=K*Gz{<}04(S~#lRqCa*f!>oxhczj29&n4HKTf905;z)puO! z2FQ5mSOrpS3J%5Hf1x8WF!IVF^*L9U11u!n|rcnwfkgJyJ?+b{v2ac0iR$ftM`@`d;E# zb_-1=`!ItWDvy(Ceyabg9)6}JA(yB30GvM^qp8NSiTD=T;0+x5CZ|2m>ICtEGZ2y9 z1^W|EybMN_DuIbY+z2tTSm)#@k@Mk5*P#MRO5my_3U&GRqGRdcnwHX-^)q-Lo@tGr z1Do41U{}J5;!ul2SqslfuMTKv&{f;oil+Sbz{XaVF96k1Sm(GnM_tBXYo?xN-y5+- zoae%Xs>N_8Xe(qS=yC|Ehyv($vC8uWX+L4dc5;sXFd<>VLZ zSu+nxPd~F(1_$IK$duKkxSWEPF=W6RYtu2-1C``C9u2ZIYhES@p#2^8$UU?%Ycyu-7C z-(g57c7_!Tc9u>7#Nif$-n|ELW}&I#hJN2 z7&$POdkic^zc2iSuqQ|<^FrSQUeD$>V9!i?83O@W^p?Vr4!TeID4_%Eoz-^&n#yTU zYIz&kU1n!?%~+Q?B^8-E)!&$yW#!B)2NlTAHz|qVQ-|X{`gtl18VLZR- z4hZBu?5)yXgo!}K?^r~$h0bQAe#1H&O0F2SXgNH<45F$zoM&)Ak;_cxUcpddi8HJ? z*Mp9R>06fQY_M}fn2y54BCaO`Unm;2XLVAw15u%E|hsFjkR1E8WDnFZ0{V6{jYf*%b zmj^tE8_iZ{9S`bQ1guc9TrFKGf9)Z7KY>ja*Q^fYZxDgqcmtyfIf2f5)TqoL7L^ah zFQ#hKj{b7Pb%imE;8&BuCFtW(Or$a`6nV1j5bjzsT+r%?(zGHT&t>|3+iJ}p$!@Mq zYZ{5WJs<-OSOqb3#I*AN{14i0<&9Q+pB5(ZgD2T<{V$8rB?0*!+Oc&>MW z#uAH50>_YP0K2JLk##DlL=`fP8!JMlB<21VfGxxyvu+viFl%73$2)HWI6~+JEHgHC ztLadD;(%TP-y;AGnwJ4=;-Tnvss=_7I4nh<$~zR}j=(yqtd#D-vsudh0XkCvut~{4 z*gT)nsqDD)F1{jpZ|WXt*C6NlDJ~_;J-4?mzX<3muz}qW#@|HFzh$tAy1!G_-MHaA z&-J8SO-Kwpk@`G=%fgq8NeR%g-fam6g;uldxX#2G99$?iEogWkYgH(VD&tmp;H^Xk z5dzi9!i0Jmz2B@Xyzp}2yvMp7f#>6AETDqm8OP#(lk2I@hbgO09p_A8Y@!bO4`E%b z39$2=NcQHA!*O)FSs~oPvI^W0LV(d!Yh@0z8$di4ykyng4e3@f<)XpuxsO;TEaBht zxoer^k12!!XhyI+8Ngty8h4u&2S|9aWd$fwGh7d77GtzxHkcZsQ>9EKih+8RIKs>r zYj6p&d~11Gf{9P`JLe6{AGmB8yu4S6%1vHu7|XLNU_#`^MsCo@N(5vk2tZ^C@hC<7 zFd)tYcA%FhHPBR^(4pMJ49h?)9p??inED$1u)10P=H(m!aQd1(p#srXsHfk$FIPN1 zL>9U<%ZnMrNPm;q0qg7V)!)e6c9$uCS9VIu;E16-BU+$N%gLtl17p1&i%ixa*fENvXDbk1)9OwDlG!%~m7FHJMY;v9O@r?Y zF9sUFVr@MA(a*r==*8q0O@z^6)?{ZrOXlBW_nWVd>0D6B=Xi9AkUIg69MYL#5c#~E zLa5Uj6`y8Pd-k+Y^V350b&s?KAk4XUrGXg@C{j%)mA6+0yk`md-YIvFQDpdsetyf5 z_zKW`FP0`jvAJPw!alw5C?`v%YZ!t4%fPbu?S%!s{1rL(M6mYoK&IZX{6UNXS<$co zNLyeSYk!d35S{`#6yKQ2afz>K0gjOJ+4HtGW;hmQb$}O%;*~K5Y?rDDdvFMh&{?>{ zaGSHZCyTa70Wb2(`Gc;_@bUtO=&z0IH#o(kaHX)mg^bWsmBJQ-k8K@W04U(QFU918_H=!c^d(##|%(m|kii&qmIg|i6IY+NgY!IcaQr$w&k za!p!#aTGbc3hkrNM9m%EG3DwC8yl1aPX)F1RP zGC0;GW+LMTYvBc$>=i6EkmP(DA7(%6+wWp(S*>CNa2RWFhKS4FmKg#ZsJ4WWG6-|X zQL1b%1C^};EC$!;95X8y2gdU9hCK73ZkcDc<_IZ|V*v%zwRm77N~5!q+0voRuzAD0yB}c6)qk##a@a{-L7N%wS^0T*&zjK_mkx zuWLg69f?s3wgQE635w&y$NjD6L6MUqu0&ZXaq(}Yo>C$ zKwKYWVAawQQAfhA>~S7-0qE43hY>)@$_2g~*$*hrU^n&vdddh=aQ3evhe@CFEE=7AnGtOOjVvPd<(8wu@L*z~p?fP&U#Mix3zr!f;2;H;B}=kr z+cgFt3#$<`4kzSgRi;?jL}dbpvgTbOIs$`6TUFp1Nk^pDWD_^GW49Ee%-1ED?uK7W z2Vipqny|}{9Zx!`V__KS)aPxL{ z7P=uXZ;wh!-9A;FBQXyfNi0^i07sWKbll0fdZ63NKm!X>F@8?cv&d}94!y*11kCBttcN~W(!yMscxpVgiSJmLK2<6 z)jL3ruVu2*@=QP(B3SwU|IV&#Np2ekf|_;gm*oGyG?hI@NJ%2VMzg6|n^mqI&*@hF^87beg|%GrN2 zxKyerhaj7e45yuadoG^9v=C^Hvb|kF#{WEm@|2*JDy=NaV%yKwkWw!HCl zHqRi%X4Jb^6f&yT764|nixq8$t!r!_uH@LBxNcH~&{!+fzOdJn_Zz(zK?T$4#@C8M z;}}wi3)_YV@ctNW$}pwz2#SGHCL&Jk7{k88JMN0aTN^l=#dwVSPhmd*=7_`GF#pj< zugpLFL_9UIOcfuVw{d_m)F^-Nf{a_qILDz6m%-Ks^K094^l@fheUJhF#|Zmc)DrLz zE@^PTdi~Jp?nztT1TbYwoOhrIXyh5E-vt_)XUJ-7if6+Ds{o>j-yPH)B@pT!H8YyH zEIyz`oa?HJX#7+c1DlGf6IJH4MIi72yD3K!fPo-rw{}zaM*k25pY^&aSiEQ-pW2<& zF$JO1 zltbOKUt?U{K%MK)3Uvf#27}nxo>>kOKV+=!e0?@JU7+Js@`)!}{ zH~Dl}3xt0e2n(4GEdnKsgkU@jGE1OYEz)A1f8WnWl?BT&o6k^T$)8y872q(q5Ib1e zPL|tyt8%0C7q$V{l_Yr^XpjmBVzLQaR(TJD2{D$mwQTVI1>-@-J3~V!RsaE|r~lpi z?pFqNXM;GX6&cOnX8pd@?b+3n)@R)(#Lj6WWM!#e8;0h?>FzXOAAoaYo7k_`9zgT_ z(V5GyIjduW*++GR%RJYRxG#3oCZPf#i29`Ji7AO9!eY1_`Cv0nU=@brGG5SkXbj%J zs6L8q0N`-q!mIOhuyKbzcY_89H-#JoGbG8$|8y|DgTie+ift$4D0&5fZ8vhK4Ukhx`a$;8*R_==dlOI*ld6XgHT+9 z#$aYI#_b_CljE_nz%->RPF)uJ9;N>o8~ z1dM!3R#&`Y@4!w`s~LMpbDyZe$DJ_2+Y`k6@ zIl8tECgB8^&W9WVA)fPu?dAtK8(yhO&RkmO@c_?&?hup4d+t#(}UYjw}+K2^!~qHzkSXjLtjH`-2CY98Mw*iliB zK)4c^9PA{(XwvaZ8G=^>sdffzJTIN|;ClxfNp2;_&WMfc%(eP684g*cGx)y&byvlQ z(_n-a4S-2QbhJ~Q;R4_;0`@s_C7mqkFJLxZSeu)-FKZ{Gc_%P>4r8)h<%!uO3)uu4 zK;{$763$fM3HoxdGt{QHOXcF2Gi?0DJWmKjd6?>sWhk}$8}=AEH*f57tMWZ&<0PcE z2AT5P-8D`?q6F;~(D3tE0O+^Hf5)W0yRT85(Wwz^HH9_Aghd}5d>?wD@fNGKS z>R;mWY+^+wP)UbHysr(Ro(zTif{hY5m1lvmIcyr{6?7V;?m;!G^jia_(2dzWao-Wf z^w=71+t_vTBB*TymcOCLG@5j`mE%Ui zt#{>j(NzJ+3zByKEM{&BcnrQnV=FM8bktf6raHl^7!fdy60Ir(0%Eje0QG&oU!A#; zb|Zu9vHh)%JBHN=aN7xN(pH3L#$fCH6xi;iMBrQdOfD8K~`!(3+^3#)T;nop!kl{zo3naX#GKrd@% zvj7}3@-?B=e)=maDltf{m|owNH?6McXRYors;g1Qa#3pJs$jkL;eV5=R~TafcuKsP zUDQRbO4tTA4*C$>u-lYGe2@(x0fL?Ja8=`2v_>q)YCZBj%0DNP?d@<<{W7$atBrQAD#g+Amf4lm# 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 literal 0 HcmV?d00001 diff --git a/assets/子弹图片/36.png.import b/assets/子弹图片/36.png.import new file mode 100644 index 0000000..d9776c8 --- /dev/null +++ b/assets/子弹图片/36.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnbaspakdb5ed" +path="res://.godot/imported/36.png-cf49b3ea30a9f491850986688d95d1c2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/子弹图片/36.png" +dest_files=["res://.godot/imported/36.png-cf49b3ea30a9f491850986688d95d1c2.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/武器图片/Wands-x2.png b/assets/武器图片/Wands-x2.png new file mode 100644 index 0000000000000000000000000000000000000000..59a134bc8ad78ec04d1c9a48d3b88ec05a1ac146 GIT binary patch literal 8695 zcmai)cTkgE*Y0mb6h#FUq=TqP=mIus6r_XH(3{jiKzfG+ks?*;B1jdaBLPA$j|xbr zks7*UKoSB9CX`T4gy;L_J!jsT^Upm=CdqDVUF)~6y<>DAtDZm0aTWl8^Xh7k^Z|gz zjQV8!{f}s z%mPpGr*O}NHA@YjH0bMo*ZAV{h`D}Vm$_UYFJwee(+e*cPc|Q6!fNQhuZ$PXWP46; zM|0uMa|!ZETY5XW_~qor5ys_;CjV+ICC8h**#G=+y|2G*E4zLWJ`;T4M6BOBMb8(( zr1)PSO@E+TBswO=7q|S^EOz``_xEuP;!vRTH|roRAZFG26E@+}LEG(a59#=Lx^?hc z1e5+7X@gLjh&nqxo>T3y;r&_%`1ibYK*-iebk8$9+Guy={oOe_U>iF!#IAwDx|$6U z@c3jz4~@-8vG#djvdP;?u!BR$Op#vwoL!y0*|%6ssLP_|`J-RZxriZ}TUMI}Nkdtao-gKi`*e|htV7xZQ$*Ek>mhvmDc~G0*J^-5 z>1pTp>H6$?F`C=_9701@c*n%C`22Hr=cg1;S_(Z=PS5E4}6A@p7IzjxNQq*yTD7`@AE&@2oFSF4yTyrLBo(fzll<3F3KoHD?@N?ke~Tt6l*P5WImtcvjqoaD(0 zULTNpSYwzVOy<<2x%onrlZ1FMmZH2vC+HLyp5!+H52_-fk^XZ~j%DM@d;9wqSzC)2 zB$f-jOna=XxaaI3C{A#o6D_c|JIb4|+|#rQ2|u1*GfWN#`yJ*yVRA(8PPN_!9xnGP zv#FuOHK;OX##A-&Jo~z4KPzPutP!Y|u4IZH#6Hf;i;q>mBjegTbxXlLSdo6?IuXg< z)Mg>wg=CDrRu{rkbZEA!`Vj2t%+JXu4CR7$eWxQjZ6`RUuD2b)+qa*Ko9wfYXm<|2 zY&p-m@xp-05Nm1Po%rgQiDjff5u$NRI4V>cF(21)Yc(VC-zXsDsnOj0Qcee~^2{&* zjScfT2~2S>(4Q=N<&DEBp3x+mNBX)ls8Us8s33ZZ$>*>n_Qy9gwDpfbuViNDNPDq1 zmTgXJ^nKIDy|gJqaSY|>yfj&lPRW6ek6!cv?FFOP$e`5d6EBmZZ0>s zu!D|u2dbKq5wa%x{Bc9WXJkZPvpt=31Kptg76*$}o9N~@wDh?& zurA6A=GFxfk0hEufUp|=F2>_gzdFqOUt^b29N}INgj*mMFw^i0cxT~S^`f@WE-F;- zZh`%j!j}H+sdl*JM*X^ryI#PhzVWk$sTHd6nC%=jaQgatocb*_8vJ@fUhe&;7TH~> zmpP^6M|sP%b;!&m&T7jZisI2E3WjcF%KBG%s%AAR2~ROQ6|sEbpRXidu>HJrvJY=* zCH#fJGHF?e%Evv^KhZoFLS)?$Hh0e#{?_7{r#|--YpH2T&T@CWWFU;?zgJymKjF~v zX#Af#BzO!SQDi(v)mRc?;*X#n#k0aIt)3I#Lw77}Uhzgf;Sq*4D%|D14m6+5G#}bN zvz)LmoXW3RQpW;)-xG8C-Zlp-i-#GVt9Nbdx=G%BXV$y6J@s6Vs1uKFVR^&aJX^m% zEE3kd-&x}rhTAN8=fcbVDbdYZ>1bf31<(Z9Hz3J}sir?Qek;20mv|<)P||yfhV2q^ zTKvq@?$Fyin&5-VVFD-hkTM7};hnQY`#;Ol-ZvAZ0|ajyx4{@%gq@9!#(T0OfG+0)cY+ z1d;H%;`4Z{pOl!shw@HR`%X&wYUT+F$hXY^_dekrfe~ig@X~6aylj71;KWfej&CSn zQ8sG0q@^uVWNLqiiC)vOMSPXX4{TGPTX7>y+yNH4+9=_BS~)QHOTv8*opk8={iN1j zSXr|NfGOUP$#_)r>I6~s=Yl}g&KXBd3jI+az7~@D^uwCqqLJ($+sV!>hLBWJqbDsR z4~vGLo@8=YQ7a4b9+-5Vemf2_#*;Bp7>mF$2d7_+j`a9?F%emLACcVhxjz=WcMIw? zMJTmnI+h1`v6si0Sjtt%68UxNrGj<^CK5C_sn&mceD|&Li;t~#pDND-0q`Ns_Tu>W zm)aT(%1k^=%a-^uEEBZW(fDV+mS0~GUKOLj=KG_#>hTTTBX-abHq+y1_dZZ6HP0-1 zqgQy5pCG%bwKx^oAZAMp(R-BTwPiL`?<&88(iHlCx^iYtszQwJ`Y4OiTTv|tWmFk2 za6!@bU%@b{^UY5)U1f8zL{~qJG-XZqQs%DLwse=8J#Zx%WOR&@OOHy1lnN#}^Nd|d z#8G#=ww3-8$T!Bn6*&rgl+_2re;G$;S*CfMVeGD5wZD)>hsQ%|g$4Wb@WDSHkQi96 zHr%`3CjmLYyX20N4eAlI`!LjYX`l5h?%yC9nyUd__+)gVi+QZQ>t)&toSH47Y;Pbv z$WFTWeQxvK7=-62AhgaY!(QzU_GYR?yvjWFH+}vaLuzRjtPvj3^GQ7`V1FVOvbmk9 z`nT7A+tQLn3k{Z?9kDg8p2A&&R*0%U73|_xSRdjx;5~1dVpr)o-QRd~13tdKZ-Fq!+Ca+#ObmH(iuq{~ zH`{TU&d~bHi?`L<{I(F69%%NW1Q`hz*dZ9QV=PkpPSD!MV(i0fUq@i80<0OKtk#D^ z*SiUQyW@_B=hnnGU;|>q8b-UONytdMWmeYXfVWZ3(h$6v-SlJz8)UR~2e8>*u)%J| zL?%5u!$?qUIA*^9kND(#DAj<&IyIBIjbtCh$$BXtW=Sj_$ z^2Av?$hsoXDXg>{>*(Q=-IT9dGZ6w~02Vqwy`+6z;cEGA%2z5aIk9NcLPKqWfE3lC z0mRHb+dOA5)m15ozQjwMXR(ne;Rwfjj||Z&(m#Soun2^81!>F?T$<~?_ge$N)zYAM zF=&ge>VjQw>_`o^0A6laUjP-iYW>1SjTWubLOoF2h5WRorTPW{@LL7j%UgkhqesZR zJ2O3%J#Nz^uOZhAYTaGu}t<4bT&@S;peO@aN!dK0ia{wM2zbV}`HY@TkX@JM_6eeH+ z*?yj?JMJDj{4D~!9gLkn*xt0x=O1bd4&*DT^qW;RC{>`6!^s0^%ra{iS~mV4W{I5K z`7cB3KZha-F-vb%ldD7Mav$lT-jW)!b}5ZHCPnkF7pD)A}~ToAOl$k z;z-E&=(&@E`Br`Xu?Uhya|mC#RfancumzFxJ%QJ?Hkld8EH|h4jUx)~D|(WgxG8R- zIc;L)U()A4l+ge^-jU)^N`b5KOfr>*W$h6KmUC^9`BGT{#B7Hkt)_$dYh@VjDB& zMBGTqIR$WqQtWjrtfm~KydqPD*;f$xKMzFE(uPUg2qFuCEeiDTAIVd?=$Ei_N_)^Q zC+Wd*3o~qUsw;@sV#X<9ht=|>O8fdoXsg34@qFH$6u0j|9UT)U1Yl?DXXfc~PBLy! ziDFe^c&w1|{^JjmPE^Dh!s|EaJ9T|JxaC;-o~qUF&li#2UVEM$?8;N;XEWu8Rwj+ zmWGRQj?K$APTW8Ind!~1G4{Q|=~Tjcg3+KCcUV(Z1;a{*S%DX}j5c2FPtU}QM8vE&6q7<3 z(Ql5k@uaX>Q(^C0gSB({XsuyC(p!Dz89^O>hMu?Dsm~V7c`9$!BYnF@%Y?Y3A8*K8 zHZuEwn&1AR)T|yqD~dBKc}cx(Z}vJ zuI9o?EQ^g)5=}-F*2Sr8RhOdXpCmljfZygG_pIN&m~ItF3oMLQTaWalZP@*GddruY zcOWxvT*7<)h)cW8F=wkX1=}@xan%u*;>&ULAjPOw$+aIBW@}~2qrW|W-kk%L-H^xVPner3Ql5iM-wq5H|0v&;*xk&Q zPU+@qMV_}HRuPRM$Sd8?dNm-Fi$&8asbh5_B%E?In`bh)CYyD-o#ub6hOzPmdNJiI zvDKH(@uyj4j;`+FKeq=x?i41nr6kZXAR8n@q`(z8n5pZ`%}3#_LyrO zCfv!E>qZ83v5?Qc1#y06FPaZrSIL+TI|z}2VmxZ(W`N^s5VASV#>G}};2OnxceVQl znGsww8&FvbJT>pAq5;I$5?ZoKKv=^Xo61zpRmYi&@|VvXfo(ST3H@pR0lB(uiA3>o zAa3HS$8PV-Aq6rdT&gYfS+5`i-_!RG`Rt^~Y4eTd_O*ishS~YVz+R`*nkel! z4;utNYEieg|k=|(9=GZnBih5t}+qlJ(iWDIj@rH7vs<&2Cjk& z6U+8ZZ2yreu&5!zj@N2V!mKS^&I6GxETmpGxm3vLfcur;oTlvP67!$fdo$sEO3lcU zi>`jv=+E8FfwLYCP0&Y84PB1qwm+QlV=YVyK{-?KO1RH>I61{;i(raTIL-oeENb=a zc4>)b=9!C*YpIH<73=*{+DVrx;)W~2u1%!|^9MVy)GEN6C#$C!xui-pxR$$Ioq3PJ z?6TX?2NU6y41V8pz9>C^3VrfWi{otiJGegB)1u7KDmU z?XT#+7SSi(zn)_Jmf8o{e2|+gIq3aIDh}TU7D(R97r(2nT6cKRcm+!#xeRdCRb+KH zFoZHO+u<1ZpUCU+v{2cT?e1kzaS2%zUhzmo^%BJZ=Z+fX?30kEZWYAqLyy;6>zIvO zwG_W-9S!}zxvRze7Ni^|uU9QMoO#s!D8;RIHuF0etXYeoP=W{qJ0X8dJNAb!KM2Skr>40Sj5-?WrsmyjkSa zvWdb3xA`Kiq^-E6oD3Skl2bu!oilcvCFL)F{9X#(&)}@i8d&n(=@6KjcQy-;XsPD>Bf49{T?_LoD<0%1No;YJ2h&rTQ%=t`G>5vfhqE7FS~F3he78*YJ25n#MFyF4^|R<5q4=KY94V z*GX72W>0!?aJ;s;ng;lE`m}70b=pcn9&85Y%mvIfyA=K28S9Wa0ZiWVhtom@lM4J? z48)>lyAFTT0-`vH{Bu2fsZSF2CqU7o3@0|FEMu`OEm}kYLu_;Vd)U+FCK}*0e8;5+ ze#$?7{Kdf2R_8(A2bxXItMx}ltZhB3xYfJA5V;cOACFpv|7`cOWESL`fEGCpG@tTcu+mkqP_IW2?RnQE^r?k zEr}a0UJ&Z4t4n6NadR1IPL>g6BQ0_&iQ+r-!OF|VZE(HU`r_%64yh(heLAbJTWxA! zx`w$9n0+IrzizE4!?A=Sscvo20L+~RSe-p*WsMI?bJ=N2?XH7$MkwfP%yZ_v zrKBMTi3+zCE1uI~<-y3;II54Tt`bdG3jQtr#h1PrZrAlni6vUo*<@8kPrv=_OgQA3 z8~3cSkA)zj3O@HO=3@|CPd01P6zD?ra{rbc@`D zV;auWRU+xgI#~mk_bMvS#rkc*1}NU_48iL8MAOZSaV8!_G?muiwv_uog=s_Ab}IsY z53sTEIeGWcEmfbVAcC}0VDGyhY0F-}4xQIm5T_G}wI%#)_XH-r^BI9(_SX$g@>1Hg zBo4pt57szqYtmHF4(sb~z*l$U5{y)otK&eiZ5f@r5kKEN8+&rDI5n5RDhBuIjt4@{*)M7ATl|07~g<38Sroa?Y4NvxH?q#%5kbYQ=PQNqS;J+ zFTru#&Ur%W;@5~a?!gjwc;wN z{Z7YYJ+AyDS7XF@&HVT>mVhMw7U13SpuJ_=W<)8l$8G1f?q}(fEp<{0{?toeE>rmD zMe>;4EoJzhtN3##FWAH z!fx)zYws?q!YUh?9UvVAYAS!N-fD|3;zk;prbW825+qdkc3{uo8i|V_~$XKix=9K!#^)5xXRy8|A;xOtwN-ek2QaU z4I0%Lz9;;^3HE~fEh86a<*SfdC>6WeC#s2f0Yz!J%}>`?p;uuO!J9!cUXsCWGb8f} zakT=%&N_Nu#Bf1-7G&A0XUzt|LB(eA?P}6}zG{JSuMW!7enwn^+q5Zk?a8SQF6TUn zV3Hhof#Rvuq}i?d2>D!ZnZX&D*35)ZQFSOl03zOYL7vUtq-d?Dm#G);-5hV#or! zkb_6xcI8H2{;_jrovjYt*D@L|=61JeC*Yj1_9RRX-NwD4f1b59bZrzBJL<1(;3!8=i+GRaZUlBEW?mPZn9QEP8g3j|M zZ*Pv5pl%6r+GLjQp@{etrRRRdKdmqfd3QDkOx<^&W$vL(Q|jnKyAqo6Ce!7Tb*g*Z zPOi}UG0@CnCiq9|#_SQPR}*3U1fghQhE81d^N;l?RnCXODJz>@Iu&G3Jwx~WABvF>?+Dx1_q8Gn{T|l7J{bthZQA zF=jSiwqT-=Zf@wnf(6Cn=0Z`%o>qpR*eKFlP~~>Fa);y>>M>n@41sCThc$fB^nL;6F8UbdSQEV#apEb@4{<|s6n2vfZhHn!oZw5 zG{zGoKlayqj^<`8=+6_`xGbZjvrKRSr{6hS;0XC#)nQ1!b2JXNb+$??8s0|mAWPZ} zi0dXM8tD~L_2HeGPZITV0P^o$0PBeU;Y*Q$JyGV=)5*P@j1X-O9Ra)d11!WMi&6|} z`R{JP3-iLuJ#N70V?Eq`8gH3jxZJHJ)Q7iuNcKHvfVZTanWfbpE_ZeYx0n0*UUl9d zv*87fDBwM^K(yrqTnMl4sE9Q&0u|VYPH+vso5B_d<(twd*9rPp>ro0w!KB|1VuoAv z@B!rAjq4z70>?@I#La8I`(v~JZUCUcQC(*09U`T6CAA67)2gpR=I#(sH%KYFF?Jj& zhR#O+KZ=JMJxJQ0>}RG@$OujV^|hjfcPN#NIgV$?>;ir%hWQFW(ed)}ya}1YUXB@;Wl{7m8YNq{*xE*=+Li5%jVY88-@6<(Qzl%0QyuhX z^zrG-nL)QYP$G!ZJmE0^y+`A-*Nqx53~yGVYzHO#8d%d&3^3?t7WL8p~<@7lHhPoEJ-&0Yzgm!FUKBoo*q4arz|a_ zTjx?q0*c%LUR85$3qrJkw?_8zo^G%1mW?~Z>hLY!IUX^-UcNry{(-x6(p%RzRfy6i3VR`e^A1y_4TxU zvL^E{Q3BWKwjrm}Q&&CE(W>iSR-w;$dr4-l`pH|MNYgcBL=W&2R! zw-dR5+jWi|S(#57V_b${UYpn*$;_m2cOe3c?25V*7>2mDf( zR^|uRCIo~#Q{0E%2`TDS#XQ*DfBSdpx(AYvoTRWhVcz`U+cKRk<;6o@e=sFNeiaN> zJ|}3b##M=W#r9sYLToTNqS{>|V_xHBUD=+zA25bX#urz^_#>^Qo@{S@@G50!JL79} zaL?(dvHFBDqwfLm=it=4zmGW1UL($we%x=9`NC1}0+Xyh{CuGErT%~dKbr%H)1vHf z<@$Zo!=AN37ZCRI@Y@INd{5hI_dbz83E~BIo{#$zz1TB6mG>b70ILY%Ig=9BcBQ{B z!1>AwfN>>&v+9Mc<-eVHaY>-F=&kfedWnP6SnDmxJDL+F068NX}g zw{imjlGQvjU~b{a=^D;}Hmlh#y+QlP)wcCFKVAo@)~*`31xld|97v5B^Udm_$YeMe z+Nup-d6A^v^`nB|@$HV3WyH!>Kr-=9bm3nYydsajmu5Dn%n%m5?O}@>vn*~E5<$BG znL(I+Zy9joCaNq7Tn3BFxnC^D0Jtmep8{$QdT1)Z+L&a2aXTbYnt7qpEGg*sSMXV2 zXFOxRYF0|{Co`}%v!ILf5v;{PxEyDR%mDC0xXJs$M4j{zEPFt>by$EjfLUs@uE)KK zU6tTzE->QBXDJM#QNEt?UZ5?u^lNqdSp}IXqiJNP-UUGI=J0&+U~Rp;;Dj~RC<(%h>IXF6u2K7&<8P9 zWx;#-qop&NNu3YTSWJTHRkM&0Dx_y(-WE^;4b3@!R55)xWsYiAeR1j~i4{poo!(!a z^dth9Nuh8T!`*4+;sC5V<*qc-X#wx0fR}}D+FzBBbyR>F-%XI|bi%^@*Z$Oid>ylP zi%Y8mC--QfU!q#)Gye>5E|rJ`Ftt0a<+4RI|nQP ztPzns9nGWpD}e*^0q!~QvR1gfN(N;9+we%mqC4&M+ZB+RyA%8T=dPM6CUg0|u?QIQ zk3YO|BB`za$1yz?k(Vx@jW@RX_W$YjqJhrh5@BvzRk1nGqOCak3UNZa3gb6)T9LB$5!$ zarn&z+LNrp*uxn|$Z41%JnNe(;uAos^Say56uE`olg- zHwk14#ULW`}O3Vw$E-+ug(+zg+s5IqVg1J@9=S~c~5Dd zaU?YP>fRo)7QFr#k!%c#$Eb(~PW~9a2Tyao;5E6+eTB@Vy$NSaEaNB+dsHX7sUqn6 zjRO~1z`7D_ms@MoQ@yHWwQbqB|KgtCvqQz=Qvod%U%JVa%2{`(QX&&oitNZ6;kcIh z$W3$*o)pho_*BiI|5a;yb$az_&vRd$ZE+22+1tu~DVK)zHDET~;Q*I2YQ0VUG%UW^ z_dN<3U6M{{RzJgkPUKzv1%Y42ox_U~7A9P`(7}nm`yY0Hr!-oqI}db!%+@~j0QpR8 z+j%K7FHhkkSQL02ein+tRFW2&6C{SO6Sb?m!&WL>N!RyS)HvwLzY39@emi`(mq|(T1X5(~lG3ja?o2dJ1IG z;X_^2tzn=PB#h+w_OAREn9dwM;_gyk>6lied~e(aSq*mQ*yT?kX!xq5d^I!j>V{qX z>d~b+HY<5%7kyhp<=e*Qh+S<8&jp>Ug@1*{OID~Jj`UU|V+(rMZ$9{XMV;DEVzvAS zsbc?h(YZO_Ovba!JcfHHV`lxv~sVqC*9p2fu6VMy~2YYE3+09gq*79oe6)%~GUomxwG;LWC;#><7vEiM_cC zhhFZ!*2ri;)M;>cn$i3`Mojy>9VGimdxzIt?;26*X768FcfERZ^w^ahJR`5E@9Y)7 z?7*cQ{?x>VMqJld9%YVyH-jQ+9PY~c|3y+ageu?nIU|ky(p=y|m!q@6BwcCGTPt*J^OZQKhCfG{J`lLhz6D~V zJpcad$LO=9Bd#?Ec2_&@{?(~7tBsHEBHh^*Y+!z4Y`V@DPn37;lm;QtVjF6%Dvvi8 z{y=A6vL1uRy5}G0_eJ;Lf~*sFDl;Tvgc=2_1?QI*p9TTHuvShhgU=_u1RR$qPHk z*V`{rn&)m_fhyO&>z}vgaxirF(BmcwrNW&rO6?vU`r6Z7>+U?1{;H}4<}m)xD;Y&r z5*lnS|3|G7o>dGbTd&B&xi==7yP}KJA2q&BN)8Jt;oX%jH?`GW1%W1aJBK+8rv(JY zHi+);1REH+wBqbt2uDsDtbYV>NOIouk}#vztPsU z{IF8Re`aGVbF4j79ep+b?O?qO`1?e*Z>ep=!|BHpdUsJ>o3k@6`i`8}nCT?-63=gI zxt{H9@_94e0CXWb@-JS|A;4elw^6T1P)KxTrl{hQasKni<`pf%wo7*^jq8%zz(wxG zY`KerbVR)MAOx&orM;xsUfnw63nJFxEk(ku3dFmqF0AY3t`ydM6@{@5WBDF)2zhS# zY0ujeK~_?CqTHaNR$#6tle<|(>KZ_YUYYYUY@fst3>cJlHqu@91~ zQqJ(Vw^n=STe*ioNvlZ=7$Uc>U%rIo=ZvR5Z$>zbiW3_h(aqntXWv#({MDYGRpp_R z5Uha#NNU-403w;q!UEV9vTbpDeY_8bI(UIAIhIwI>U>7Kaea2(&;AYrfpw2WOVnc{ zFZ1Opl+j6qv3!5VS1lWklZMst!k!6spa|8~0r~jKq5PX02--u2&rj~*Eh?~>64kc3 zgapLaaM|=$QL=9CWS^%r?GhtKY=Q;=80Kp;r}Fzl$Tkm z9o& z5sNuTwM@DF5HNuOj@}VrJx;D#UhUzZmI)@`C{xKf_1FNxig~dQLNEr4zT5}ZQU*Qx zdi^E^I1{w?e1jI@5Cm|inx$LDgPj7}lI5($sXjV!J=(_I-XDLZ^ z9KkEEM*UdGdF#FLvv?X*jb!vP$Ua_J)0-Qqq$Rna+J_+h}&g;Ol(^agz%A}$b8ZJY?fz8fXwe@Jgv$Zvh> z3y6YNX1pswEL;G2Wuh)at+=C4l5TfuMy z1L@4&duqZ_Klwdek8*q(=1`F5xpSzC&-iQ?M%dB)CbxY>Qjca{T9j}r-_=yR^!N;~ z4T|CyAoCMxaOGxjSba{pkZ9hkp_8uv=sZ@iFkN~~QDuSivP_IYVDvG$+nM17dQvlB z1RRE_arG}9L7Em=%U!G&zI?dm-Q+NKHbxGWGE2C-v8j9g;J&aTanKm$6<)q`g0#T@Z?vfl7%E<%FSgJ_A?E6b831 z&9SEO6+2&1tpNcyU||h-$`Kj$$*-Bsl=$z5nY#*e)8h_(hfR2?#hW`f_*SJGylQ+t zJa6vl$1W{mc^7z2=7De zw#(12ahwgo{>a!f>HmVf^yp|`*PkFk@315?y(AJBU6g&&f*jBFD%2E-G-k^V+nM9@ zsDv%Pqll%x%rZ9;x3D|IJB@yAvhY{auz^9tEv`BRm|gk+FT^aoIfuI2OJgZ2ePov8 zI)H*V^BH^jm{YP9g7agsN_DuCHBwJb+lO*3AVVc$<{1A4(f4DJoZ>gNpU~dcKimEH zSpZww+_!A7mba1f_Ra9Fpow!B@JZt;&EcrVb7!wzt%Y3rGRJv5b0qUc%Hw(Yz z^hA%7FGrXuc9Vo|4jmTP#72Pm-kfg?p{1FUI-;=5O|{L-1{Hq$?q`ygjC831>GXvr zcz=90NF{LnC%u~1G5K&SM25*sSqdGD?O+&kwx{sux_WNR-|vZoO>E1zlXa4={HQu-4rS|_)2`#Ac(e#ZKFxOMO;{RO7Ss7H8JFS z2RzXrnQH!@YL4?KOG;TKXAwR`^DwXw51db5)Rvx7`9rkif^`<}1~TEcbd$JCEMqQrV39S{1Wb>BN=nGchGHz#AM7Zh84Ms*(% zk7I|E$vH=#pWK=)cVC1NWz{`DapM_frrNgWw=-9Q{^61fsEWk8^%p;YU*+AajdP5C zMg*UMwb(Q6eVyrkgQ)VM&;r3kx%Ok5{0lbczhACOyhivcqS+YLLV0A$yKdiG(h?rx z1J=-D@i7!*&U#*n!e|Z}lbodF;%*C17Eav}8@}#qL(r^`Iu1qj6}Cz~%z0C76^FIV6C{+g8E4TM;gGC^qvM@a0yiQ7Mh zJQRx#gW@qSJ10;xv*5r07^wa+bnW+Izc0!G2F-+cNg&_IL(MHmUvM9~kFAy4d_dcI zksyc45oXOEIns-lTlyDRmghUZs~F!~;QD0ZMdT_)D*1ifVR1cic-sX5+j!O;-vGP{ zN%py2a_ai57~aro05ZyOsB>@GuYHi%VGlycH%P0^4;AwIs)f8z)5n>O2Ap~Ll%4Gh zBtGA`n4``5P)FDK3-_6%k(zF%3Us z_` znkG;%YUeTOGg=2kep@zR0KmRKZ&Ynk13wEh0E&p6!gb1&gZ>hLiJhdLirl;VK)%mX zF^n0gA!XZ}ROx2e4U$k3HnNq2ac-z!x9~GtWsgm$$p6cH^ z+V1zPwrvi5Ua0L}_Bo~^<=>UL3Bh9e`CJLt5cibt-FI_;s-@ri(t1xc4QwM%P;$|%rS%M+dg1y`>I)~97rnjM4**HcADSk3Y!2=NnER4o^X4REKNS*7 zgTtjyyfo@D?)jEtDL<7O44EevOPqE0Xx|F`v0M47QW^aZy&h(OK7d`#5F-G_J1lAj zfZj=3vxr5IBC5JvSf@L^^qGIsQb?UOa&pJo%3O5- z7E#nfQ?I)>DXskJ#^g@oz4b)v4FiCRYy7oU4FbY3eN^U}E-Y%ad6n9I3zEkoxqa#3~~&Mk(=2*zP6; z_>FfykGI|;Pgjk8Iy(<#1)fZtg?;cMJkKhqA*7z2o-}JgV5avDzI)_vX4{#3*@!7q z-#9rvnHp}$+b7+pGV$Zg%x1H)i>948-QGPM$v!M6cU5*$f;5VoBHEPouC~A~vMnbB zaf@^3!cTt*RzUfsqj#d5EMTR+&6LfK#++H?xcSDsYQVR6JmCfVpCR498c>|ANteZvMZoeI}3Y7ALD$Y33oS-?CXr_zaV z<(=Bre_30P#OTH zw>_98a&!z*9YNx{y<(W;yo|Fyc<#L1fKH0xE2ofd_+>+HWqY?DKQz$Ml3PE);K?kI zt36Ng?=#p^kGNI4EDM(TRJTt91;i{~N3*UP;Uu(wd|)Md^0A)3?iv1R8yTh;86PW# zXy=#F7{APxg}~G{;lz(4O~-}79_{-tlD-VDb{)02=KD;_Pg17&0z`b|`l04kAn3X~ zN1*2h!}JD~Y8KDw3V3bpZq%#|r0949a? zWETpppF?~U2wZ059CjOb`^S80PvIOdqfBV*~JHSvQ;|TqjqCQ1P#l_DLtC)ZM^abYN{jM7f8$J4s`&|t} z$HNAlrI+@lT``}IIA&xTht26!9&X@gsu|GpR#+}bXoF4ou04RMGAiE;g0=(&qGDgs-MuV39+V6{vwTx?m)16|*z zlUDtw<>r10ph_+}LxZd_auKHB_a7gJ+DGZcE{p*HXzuS>fP+m!H;~o`%KDPGJ$VcW zF1;c8VTLgPj&v_jQ!_PBK2n>2NYrwIp8Rm~o;$rl{A(HrMSP^cs6wX&ib> z7Q~h#tvB7p+B^qh!(=9~z8oArR^?OA$o%W2+@fkT?uZ#LtG(6Lp87L!+Km*7wZT`~ zQL%9d?(!Y@wZcRshQPn{ss3^vhm0{Hj#JaZht6bs5<;0ji6j9A`;Sf1Rx}AC=W3sm z?uBhXU6vxW(KM+;|9;=`xK@F{gf2gaIPl$cj%F=!OpH7CVHbsCENftFF=f`pDxOg~ zV-^N>unOEYW7yEs)my7A8=QKQo#s8PqB$RS(`R;PMrnheR|xfPz3m4UhG?lQ)R5?N2OS8 zq^|L>qSW2{%zU3URbT9v7cS%=Bn*flhNT8&r~D8!5qLYwH2Rf1ZfFy#EP7oe#!>tW zAW82Ec^vZ4dugwDYDiS`6iZ^=L-!h?6;C#4$cD*E+5Q>RXxY?H946b=)ET>OX z{a4U2u$jEK{pVfVbb~X4Ue8fCP}OxF3nVp}y>R35>`$||eU{maX&URJYl$1hK3rfvd2 zW`SSjeq8-z8A+vMN>(THq=jz;rA6YRP^TDEn)l=Fm2vI1Lw$;u(fBw*EbWj&wmk($ z7BCcS{{|(}{v6?=6tvkXxg0 zA@46Ttfe+%2a>i?cRfKXx6oEbqUd25m}>(&D=NRj<`4-#p{>7sz+>UErT4$IK66 zN#JUeinVSj_uYTS@2eH$jFw9hrtE)AJBEd@W1kCl_(ZIG0hnm@7U!y#@kK9=3k74> zxett^4*|PVPS*IV=k=62&R9C864;Q_h065;^o@aju;%b|&HwwzW~8c@)f?9GtU~ta Qhk$^)xAku!wQQsQ2bN=F$^ZZW literal 0 HcmV?d00001 diff --git a/assets/武器图片/bronze outline x2.png.import b/assets/武器图片/bronze outline x2.png.import new file mode 100644 index 0000000..a071281 --- /dev/null +++ b/assets/武器图片/bronze outline x2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1e0mkrvmbba6" +path="res://.godot/imported/bronze outline x2.png-64202f8c9498d8b1924bad8ecb45e48b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/武器图片/bronze outline x2.png" +dest_files=["res://.godot/imported/bronze outline x2.png-64202f8c9498d8b1924bad8ecb45e48b.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 0000000000000000000000000000000000000000..16c06c4243101b1d4c4ef88a399cf5420884a89b GIT binary patch literal 141306 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%0AG?CV?BpCj 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%0Ai@nCbVQYmVY!}N&qA_Q;H9GAIcDR=wKQqjuR=i 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 z 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

J7MAV}6HLrU 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%0D_;)gnPZ#9m>CtXPRX}*FjsRD)qHWEmm4-} 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 literal 0 HcmV?d00001 diff --git a/assets/装饰物图片/在线时长礼包.webp.import b/assets/装饰物图片/在线时长礼包.webp.import new file mode 100644 index 0000000..cc22026 --- /dev/null +++ b/assets/装饰物图片/在线时长礼包.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ic2nvi3xlwl4" +path="res://.godot/imported/在线时长礼包.webp-473b0e106777970fe7e873eb25611022.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/装饰物图片/在线时长礼包.webp" +dest_files=["res://.godot/imported/在线时长礼包.webp-473b0e106777970fe7e873eb25611022.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 0000000000000000000000000000000000000000..2b9f2a7a031e2630b4403eaf2844cd8090458aa0 GIT binary patch literal 10012 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

TKGU);SAarB}W*xHx1Y#6vuCb%F`EWUB7@ zHx^%SuO1TxjZ^4Ir*B}d&sV2<35jxe?`7y5BkSXHE6(^J8|Rv?xqC)`N$ zuBbuex8s0)Cw6gWyBkX_Vv{tP8h%v*xNFGVvVwcNjIRbIE|R>X=uWUUe9M@~i+pRs zk=vBtb*8uonYT4@Y(KsaR(7y}`DSkmHz02d&6$I>Ly8gkBB%)6(C9XzHk4$u$wLS} zrU6*WK^1|JNO$8KVU+dCI9`Wrzk*5V=0#0cuLS zlD?WkyD!M}pf15&%QPApIzA5Z7+OM5Hb!3%DWqf|R5PAGr@Fu-8tz8$F>`U%9LiJe z{lySwac}w1Bpo4KE-8sKQ%xxUH9SX-9*TP2{sJGZF8&e2I8|R~IOe*Bd7#+f!;ecP zSMIn%&vv5SIJ;AD+0we*qmU^ZHw}?=Q`FiX{u7#~bnhr>)xnLM!^DRlZ5~g3XV$%d z_x6H6o^;EL%fY=|I)Gy_Xkqzv8~0kn(>9wBzX4Z4uLEQmdcdE7ltI8B`l38cLN=)? zR>{tGlaYHS?_?p0#(&S#A=2)lXRZ zZxOj3d=&_3;O;;Rn_Si-`KzL48h57#y0h~c++msx{e0s0 zhe^VIWFxJ33E~c~s51j-RSqhS3Y_)r(l(#;D%Gei`FRbrw$V^>ziGyzVT9O0VU(?? z<}1#0IL6P;Vk~0}KVN3(FXaa}qM61G8<5Ba5mK}NLW*j5YtO5kbTWo+y;WE8$Fs6r%{%?d&V$7u_!{E9_fJuBsgjE2qmTz3|!=}#|>tRER zC7Cda;-i=@jV{@d#!Z#vqga*@87nZsD?nx95-JX7jMA@<2IP(b8gHO4bdK#oINxvD z8HU;!SZ*45T+$UvNhdx({X}guAj@>ZDMtgQ+nUh5A;XLEtOLQry#XqVU*6vZR23&k zKKiz$3<5mW5&ah#JjlN-sva60_x&BXT{0EHUcEFGCE@z&nTPAx9b+c5=nuM-Bgl6*aTj<3+@+X1sIO^l>7q}5!7cW`i)IEc!rlq3r`N8IXCeiJ8zO?axdfgF1HFo7%bVVFdf*w z_)n1$<6nWx{#kzEpfmewNc#}!gO7o@4gRvG@lPzfEIYY`Ff7>w-5R*a{e-N{S+OSA zokmGZqPOCatnNc$UBH3FTd>q_1!?$G@tB^Kyj_kt8sKMOo2N}qj4=!2DyFf#7Jbsl z*pXCT_>Wa#nDR4i8xIA)zH5~3{=eU234yGp`)enZf-cY~LzU1me&5(k z)Ckd|YqA=->DI?du35L&}sGFHHpGfFyjJu$&pdjCA&*~Gx z?hg`f<6*W;ok$E9MWcyBzQhk#0Pt~%x04xNwwbd*>$ghoOpS}c{&Q8bMC-*lL3^V( za<&0I{)3chPWFzz(nwF5Piltd3rmd8#mbCuX6_TwQjXO4+Z&`iQ_i9U zX$CAE`ku_OcQ=P-!p7(Z3hx#1mx}}M9qhJLzVR+7u@GJyvd&I)I}1JfEB^c|p^Ik^ zIhae>i5avY@_V;SSd;M{!JN!9T*);;*;}fr7Ob1;$NZbti&J{xHg1qoYEwAVZ$U=P z%aO26;**R-vgF_^Cl;n;ihu7>&XL^ppEI%gS$d?9F`8>bF(*nZgzfR<+{@EJesU{h$p$eqHmP2?dpxRxu#iAM3>o2miHCL$Tl7_{cNYLQ7ff6C-(|^ zzzO;*yBl}hJpCoQixq1hd(JacIXXJi0&k;5z}gbxoboi<_J;N*vV~3}RFvJ}D{a?Q zq*m4Ds=f$T>cbgPZN&tBmRA-O!xLJpU4^e%LBb1EmFvEOB=stEntH`0QFMsLdPAxb%5e3-VlBQ=5Q=-r7PI=LF^^3S20j$$OeUV z=EVb6W-s5wED6|f>E52INN+;5sAHc%s)__c89s}!P;jT}6tLv4bPu#pJV{9W+4Wc7 z^&#@$AHJ=4?ABz&lkO$|k+6PSz9q9Yv~4|=(4VODMK$Lv2#=}#^tRhpX7iHKNp&pi zr}r)i`Lz~mSPOen$omzpiy{HUofbFn$$>a;;C0)!w=O5fek&EVf-k0)h|8CSK?~Go zliyCs`-1LJZbG({;)CJh@nSm- z%gA_ySJM&aBMkcYWFFl8J=!*3A84GnT-xFvB53?iZxd^z=ABF@bcA2M(K1cKc}!(6m_~xaY^3`3X)nocsM?-!xF^(8ZWoPpk51O z;|)pg@Wy5J_ox|KyN033ze9#EHB8s$sBalPKq;9lx+kHqVJ4wjcWstssM$w_mOdX2 z9rctLUJ+&O!EYXH!J@ox?~ac5nW2fPS_I;R8hxB%oeaEIqqJD0pu-XR6c+8u$j5Vq z;IBWc&N{wt!Tu!f+z6+HEC7#faroJj;0YMGKV+T@$b$lI8&|*pn$YN4YpC2h@MLgc z#=tn@9=6MpAvN)hF#pGYfI#C30dz1+8OwbXzE2EB*>&5P&8*n;Fp&E$wj5&Wgb{@M zL6k0mHDqlv;ecMtW>{kZTg?>Pt^Ay7Nf?WRFLkChZ@?fNDSpkvndGWrXCbEnYXXG) zExz-zka&i3tw9(@+?Hk7q*YgMt;hy+|Dd*h806jIJET8ikrB1paJ_F~_Kj%p_qLg; zmgf^_=Mfe9u_l(^iVoiH>Q7>B0k*rpA4zQL*>g%xK`I)dBRJ`kT(I5UOYI%ZMf6gv z@mZ|R$o1Wa0a|T`1|>6Obti7OBvRM$<_Te!fr^bR`EhMY=q1I;tH0n(m^CAdSNzDF z0wpO*nOX??LGAT01DmQ5ozyh2EG_$I57_1J4(!iiA<|LWs?t@c7Q<<$1)G`4Kk;oHdO`& z)9`)s3KVx9)q-R;qSuunyh6f?#~r}wm(|P2X;#m? z9_TF!Z(ExK7D^e`DA0tvnIEn})+R#Ff6E0P*2M4xswGo{fK-XwE`#VI*q`c1mp14u z4ut>!22szRcY*)*{K%u9S`<@uY;QPxfRX;000000001a=S)Zd literal 0 HcmV?d00001 diff --git a/assets/装饰物图片/宠物背包.webp.import b/assets/装饰物图片/宠物背包.webp.import new file mode 100644 index 0000000..572b3b4 --- /dev/null +++ b/assets/装饰物图片/宠物背包.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1xgmal8sw6il" +path="res://.godot/imported/宠物背包.webp-e34fe718c4b689ffef9b3abe8fd9b0be.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/装饰物图片/宠物背包.webp" +dest_files=["res://.godot/imported/宠物背包.webp-e34fe718c4b689ffef9b3abe8fd9b0be.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 0000000000000000000000000000000000000000..f2d2bf076b7ca8aeee5a40167a3d51facab3e181 GIT binary patch literal 15732 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 literal 0 HcmV?d00001 diff --git a/assets/装饰物图片/玩家排行榜.webp.import b/assets/装饰物图片/玩家排行榜.webp.import new file mode 100644 index 0000000..b051c57 --- /dev/null +++ b/assets/装饰物图片/玩家排行榜.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbj1s6ctp0utb" +path="res://.godot/imported/玩家排行榜.webp-e24566a7ef861b11b1f9268d2fb33e34.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/装饰物图片/玩家排行榜.webp" +dest_files=["res://.godot/imported/玩家排行榜.webp-e24566a7ef861b11b1f9268d2fb33e34.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 0000000000000000000000000000000000000000..2ff5d7a754b962e754f9ffc06d8c3ccf6a96683c GIT binary patch literal 15204 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 literal 0 HcmV?d00001 diff --git a/assets/装饰物图片/种子仓库.webp.import b/assets/装饰物图片/种子仓库.webp.import new file mode 100644 index 0000000..61d1c51 --- /dev/null +++ b/assets/装饰物图片/种子仓库.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b738esrtjlho7" +path="res://.godot/imported/种子仓库.webp-808f273c864c7c31d5e182311f947980.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/装饰物图片/种子仓库.webp" +dest_files=["res://.godot/imported/种子仓库.webp-808f273c864c7c31d5e182311f947980.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 0000000000000000000000000000000000000000..2c0f82c7584f7a5f431e0ffec64ee28bcdf424bd GIT binary patch literal 8488 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

ZA0q7WI7+H(N zm3eu*hKubCI)8s4nYi$Q8O8q2?c>l^PKo#tyKbQ zx(9C1sh#VVo}mRmtI6ZfQdjSp5}`911JsPNN<|gj>)*5x3W;zxRaI52Y(bmk9WVyq zjL)Vys}XE9ogfO;D(&n?DrTu0kVvE{pny%!JpAa6tCOj@+(iNawew%+T&L}ectCEm ztg;cMl{Hos+J1ijexxN`>WIiBMd*6h|C_bB`noP9nu?<*jSj422M(41iHIdwPCx8~ zs&f0TY9Wax{UV>BGa_Vark@Z|Ojmd76jS$qV>3BGMuu8ztpYIT4?dpBMe5uU(M)la zWa=)jYi%Mf@s1IJY&7Ut198^P0VE=waQ*8)=$_sVZ#P{=fdWw8^>dizk=Cx--W5c@ z6+JbqXn0=yKNs@syyl_(N0G&yLrkHF*E6J-#DzX{?~4nhL5UR1*vA?sI!-S z3V+XbB8Z#f^E`L`)BfgmIS3)c1f5Q$P=Iqc{5S&=&I=JgNulrF_$}=%)g^iA7$T}) z;vPe_895qVM4}`SSIPRE6Sw(7ZnkYrDdC|&`f*O5tUQwGd)5xImPxzUOEg*Y%jXR} z*nHL+t17_Ec^~6k3z0k##v6zT9njM{Ximr7g%;M@IP&fePps7VEbphk_c3IpAgd

Kg^2NVBI3B1 zIj2H#!p0R_29w5Qg^~HGIVFksPqimIF*frn{iGo}271?e%MSgJ?=Ba3T6*l|(2WRCycVCJp6xO(l z_&7^G71z!k(GqLc8D!%2941y_twB$fAcm&%YDyoe&>0bz3=@$R^O~Qw)3_5yKlnpKw4Y*|M30> z*k;?vRPMao^mF6W$ItJ+T)icV6wJraP32aGbagJ7l2{qo1A!*337z*>IOceIEmTGDt_6q?ca*oM@S!EGC{p|JG6})=nO$Q9!1KJ;)eprvUm(l|v)S zn^-yt8z8`Rl9qGwAggJz^$%IBeZK6}*&uETrjLC>HMAdAQ>^05)bzdG$^`Hp z`;RY2F%HE#m(ltOo*K_k*Mi$)z@T>PXQqtrrDiNU3rqw4*5J2AI>U2G3@zPH z%pWyOWxnn_hNd{=T8;ijTmT^xu?MIrIw^@7fJzMuv29C-!W93TniYfu3G|6z~-K3Rajry|=WwNA2!-VO}2a=A>? zhcNEqX1hN(({He_Dp{uV`H8gGBjqg+9P8mt7x_&MIlf&x5%zs9rtvMMKx zV{tx}3Ow4E|##5CNN!6qq^O!%o3ltj2Jn)P9P00RgcY89PT}4Bo6? zWx90lTev@#VOo{xk}g8tCKP)b+5h>B^M~5ZE8+84XBS|ne6=CsZdM(sn+g;#h{uwD za~ME?LZ|XkT>Q%3r>T%OLfVc&8g6*~Ce!l2aAj6U#7+ELdQRQ5aJUy`L|Nbjh^0s! z?=a5tbEVy>tKUxnRAEqjq)_LeIzYl@dQ({y?{krKM47igEVAPdN1%jjM#iZ9%IxUs zbeT>J|3Q$=cTg(>(Vh=QIK`KjLj1?ORONMwssySWa|@HKFvm8W2x=QB{A^h9K>KSQ{)|K9T zt~bjjS-MsiNw4ZsT-mfuj~5({>1*Epv@R{i=$Q~5WrU8zk=Mp@c-U-xa8nD0wE~9( z9f4{H&21jC^O=14RqGJRuJ#;zB0kT(U*iYor$lMa?5MFPTV+=D;yJQ)oY~On~w{GwjaL4;4du&gPGs% zkn={3BXJYuhYE?n$N{_1Uw0QHY_5vyxbN9^Xlz>#rrC7)`O2bKpE*yT3#!t_j9lnZ zngyA0;v$uJ+U5+bVX=cHa&tFVqF8e7C~ceSP>M}r2UtvJvOI~Wf|v+8eWBnN8K+38 z>@lzwrg=W)uTeuEZPSFbQ-Zw_!co2`gJlbHwB`QF&=S$=Gv@@b`Gx;;oUZEvm)IMC zQEr#&e~LcNDGiz=gn$3p1nQK}bRR?uPDPJh4YJ^_(!h(&sj(RT&@F{CQDC?_DCP?e zg5P1X403+AC8cS2Pa_IFmiS(H&kGc`ZzEC^?|d|r?~-+dPKy2_;`hp=Bf_i0tqr?X!mG z+}#GFp6gl`{zLZ1Kl3VmU9|$M`)A4!l*uDzy{Q@XTZ;$xs1@9jjG{eXek0NWB6tTp7j&YOlBo5twm)@=e%*3e%1nH5*lck7f*&yHF<5 z{VcM5h{&N*W28zFC|?1P_rR_a&5K(~UawAms=ECFM~o0&Q+P@+(-Tr8V9d!E3(Zc+ zJJ=%5O$kq11?6Sbe)VdPq3L@Uo!O-L0BCV%zVud7imXVdHj6$-Orh|nlS4WHhopd# zjgg0186*1P6+uBsJiX#dviGC22ENA(Xlc6lxJPl66|Jrk@j;&N$Vvgj3!nDkaW6d1 zZ5o96UZ60!1h{Ws^`yKFZIOx_>D3p(=MdcbcF>0-1vi#+*GPdHGdFKiqm$iB_3G z`=e|2zCEhol6BR(7ASfq0ZW}xL2Az66;k^#!_!n463w1IdNWhFq9}-5J3NJgELb70 zH`V;hKVHwGy+d0sbxWp~WTS7!qekq*_AHbDr4jC19wla6V=a8W!8$9%R6Esb-43nd zN2?N$7Zsq(yAuP7*?q08I~#{36SaBKhs8y|PZb%ld1G4Aq9|1~a^YyD+L~8}2mWzP z7XTvLQM7w~#adTfjBIXM(K&1RK6g8i{bF|9G52|Q=L%I;-1nuG%C|XnXOn$iE)rUe zi&+Pe5jz6G1%RS;FW!|du*e~Ze$99iW5CQ%yAH6Go?gQY?Oq%cXWISYjPay3uEt0D z`E_7-U#pfoSjSJg=TRAUcQEOr7g6&jWYECVZ8%{gQ*l4hzbD485M~p1nEv8|l zn#3E=Z##f}6V-~*pPfYq@{=_D8}VeOUN5kddfB3UnMh4yil)kQdT*NSL@E;bb`e-4I9-j(~>QoPHOy zQxRkS97IP7#VHa&wP_}4WeMzvWGWF#pm zmOQ`5(YsWIB3TJr!0@UxM#`~b^Plw-or?9y_CL1xGF#IUiy5fEFg#qG$o;FVH8T4; zwkMMY=qBqYWG?;G>Bp6(HnzrdrV-AOHm;S=GcKypP{co%PW}@<ZN~nh@@S{l-mX!#8z9xZ6oGo98l80Isb1^W!Eie4MeSNdhc6VsCDWg> z4^`U>LKd}SgvA?~8wQSECMhCx_6;jD4+||=iWwiV{Qy%RVSxyq2&QA+dv%bX>4CTx zq~to@)lwAUIlOHV9BCZx$3zV0!TWe zuQ~UyHsI$*u$wZttJH!0R{ko}|>u`0l;e}8fcs5uRit!8fSBIHx+ty*})wk49PDy`wk)6Er zepFuAB70RDIi`kNnBg&GMKEp4K?_P7Cq)BX+i%ZQZPcRKow2)onJPO0`9vD~8XCD{ zKcb}NbBLc?6kztxIqiJk9HE#f0=4H9)S$mQ@(ab~P*XYQhc7++$Sio;Cz{%Do!Pfa zVU6-?qlXgmNrqkMmzG}LfiMaB$`qhl$K}KOY0^~6vqMO;kti^_Prpz8#mTpU^UsYbryd(K~SoCYk?QVdmYmb+3M*l&6L|o$)7Xwie z3g?Enk{@wRGyhhj$@r@aEn%F*)2$&rABF)?)5fZp1mWMnMD!N8y!d8(MC($gT|wuo zZM8(F*fN>9u!o$8@S+!rM>B4~6v zM=jDi(k+aleKdX>3P+Z~(kD-Tlatv3y45g*{)>v^`@k@!IJMaYeE2oyG_Dv#Ii1H0 zu((I}uAJ5If+BiHM#@?op%;gF6-$whm1}`Qnvec9^aK>{+8ZC0YBjbG^6oxGCZ*DQ zZ`DrICR8?{(Yh~(`Fg%`vOBz%yao!1!~p*G^h-FJ3!u2500012qR-#`B!72bX()r| W@E^>=Ztw~LZ??zUcmMzZ0000{)=!@R literal 0 HcmV?d00001 diff --git a/assets/装饰物图片/道具背包.webp.import b/assets/装饰物图片/道具背包.webp.import new file mode 100644 index 0000000..5da696b --- /dev/null +++ b/assets/装饰物图片/道具背包.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ywdg7xgq7hm8" +path="res://.godot/imported/道具背包.webp-426e5d710d831f351a8c169aadf1e00a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/装饰物图片/道具背包.webp" +dest_files=["res://.godot/imported/道具背包.webp-426e5d710d831f351a8c169aadf1e00a.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/project.godot b/project.godot index ccfc166..3b31350 100644 --- a/project.godot +++ b/project.godot @@ -12,11 +12,15 @@ config_version=5 config/name="萌芽农场" config/description="一款支持多人联机的农场游戏" -config/version="1.0.3" +config/version="2.0.0" run/main_scene="uid://bypjb28h4ntdr" config/features=PackedStringArray("4.4", "Mobile") +boot_splash/bg_color=Color(0.901961, 1, 1, 1) boot_splash/fullsize=false +boot_splash/use_filter=false +boot_splash/image="uid://bl1oahn5noklf" config/icon="res://assets/logo2.png" +boot_splash/minimum_display_time=1500 [autoload] @@ -29,6 +33,8 @@ GlobalVariables="*res://GlobalScript/GlobalVariables.gd" window/size/viewport_width=1400 window/size/viewport_height=720 window/size/resizable=false +window/frame_pacing/android/enable_frame_pacing=false +window/frame_pacing/android/swappy_mode=0 window/stretch/mode="viewport" window/per_pixel_transparency/allowed=true window/vsync/vsync_mode=0 @@ -72,10 +78,16 @@ ui_load={ ] } +[physics] + +2d/run_on_separate_thread=true +common/physics_interpolation=true + [rendering] textures/canvas_textures/default_texture_filter=0 -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" textures/vram_compression/import_etc2_astc=true textures/webp_compression/compression_method=3 viewport/hdr_2d=true diff --git a/server/game_saves/3205788256.json b/server/game_saves/3205788256.json deleted file mode 100644 index 499f4a8..0000000 --- a/server/game_saves/3205788256.json +++ /dev/null @@ -1,1349 +0,0 @@ -{ - "农场土地": [ - { - "crop_type": "南瓜", - "grow_time": 3600, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 3600, - "已浇水": 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": 3600, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 3600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "杂交树1", - "grow_time": 21670, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "杂交树2", - "grow_time": 25200, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 1 - }, - { - "crop_type": "人参", - "grow_time": 7200, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 7200, - "已浇水": false, - "已施肥": false, - "土地等级": 2 - }, - { - "crop_type": "杂交树2", - "grow_time": 25254, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "树莓", - "grow_time": 2113, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 2700, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "树莓", - "grow_time": 2111, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 2700, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "杂交树2", - "grow_time": 14927, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "甘蔗", - "grow_time": 5400, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 5400, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "香蕉", - "grow_time": 8400, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 8400, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "杂交树1", - "grow_time": 21330, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 21600, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "葫芦", - "grow_time": 1080, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 1080, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "葫芦", - "grow_time": 1080, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 1080, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "葫芦", - "grow_time": 1080, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 1080, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "杂交树2", - "grow_time": 14925, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "杂交树2", - "grow_time": 14925, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "杂交树2", - "grow_time": 14925, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "豌豆", - "grow_time": 720, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 720, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "胡萝卜", - "grow_time": 240, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 240, - "已浇水": 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": 1080, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 1080, - "已浇水": 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": 720, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 720, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "杂交树2", - "grow_time": 14923, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": 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": 720, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 720, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "生菜", - "grow_time": 650, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 650, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "杂交树2", - "grow_time": 14922, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 25200, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "梨子", - "grow_time": 2823, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 2820, - "已浇水": false, - "已施肥": false, - "土地等级": 4 - }, - { - "crop_type": "香蕉", - "grow_time": 8401, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 8400, - "已浇水": false, - "已施肥": false, - "土地等级": 3 - }, - { - "crop_type": "可可豆", - "grow_time": 2102, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 2500, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "黄瓜", - "grow_time": 1200, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 1200, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "葡萄", - "grow_time": 2102, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 2700, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "大豆", - "grow_time": 1080, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 1080, - "已浇水": 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": 650, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 650, - "已浇水": 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": 1080, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 1080, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "鱼腥草", - "grow_time": 2101, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 7200, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "稻谷", - "grow_time": 600, - "is_dead": false, - "is_diged": true, - "is_planted": true, - "max_grow_time": 600, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - }, - { - "crop_type": "", - "grow_time": 0, - "is_dead": false, - "is_diged": false, - "is_planted": false, - "max_grow_time": 5, - "已浇水": false, - "已施肥": false, - "土地等级": 0 - } - ], - "种子仓库": [ - { - "name": "小麦", - "quality": "普通", - "count": 27 - }, - { - "name": "胡萝卜", - "quality": "普通", - "count": 6 - }, - { - "name": "土豆", - "quality": "普通", - "count": 8 - }, - { - "name": "鱼腥草", - "quality": "优良", - "count": 4 - }, - { - "name": "蓝莓", - "quality": "稀有", - "count": 1 - }, - { - "name": "大蒜", - "quality": "普通", - "count": 8 - }, - { - "name": "仙人掌", - "quality": "优良", - "count": 1 - }, - { - "name": "稻谷", - "quality": "普通", - "count": 10 - }, - { - "name": "大豆", - "quality": "普通", - "count": 4 - }, - { - "name": "咖啡豆", - "quality": "稀有", - "count": 4 - }, - { - "name": "芒果", - "quality": "稀有", - "count": 2 - }, - { - "name": "荔枝", - "quality": "稀有", - "count": 9 - }, - { - "name": "椰子", - "quality": "优良", - "count": 7 - }, - { - "name": "菠萝", - "quality": "稀有", - "count": 1 - }, - { - "name": "苹果", - "quality": "优良", - "count": 4 - }, - { - "name": "藏羚羊草", - "quality": "史诗", - "count": 1 - }, - { - "name": "向日葵", - "quality": "稀有", - "count": 2 - }, - { - "name": "石榴", - "quality": "优良", - "count": 13 - }, - { - "name": "幸运草", - "quality": "传奇", - "count": 1 - }, - { - "name": "枇杷", - "quality": "优良", - "count": 1 - }, - { - "name": "藏红花", - "quality": "稀有", - "count": 1 - }, - { - "name": "橘子", - "quality": "优良", - "count": 3 - }, - { - "name": "百合花", - "quality": "史诗", - "count": 1 - }, - { - "name": "牵牛花", - "quality": "稀有", - "count": 3 - }, - { - "name": "茄子", - "quality": "普通", - "count": 3 - }, - { - "name": "草莓", - "quality": "稀有", - "count": 1 - }, - { - "name": "番茄", - "quality": "普通", - "count": 2 - }, - { - "name": "大白菜", - "quality": "普通", - "count": 3 - }, - { - "name": "杂草2", - "quality": "普通", - "count": 4 - }, - { - "name": "梨子", - "quality": "优良", - "count": 1 - }, - { - "name": "生菜", - "quality": "普通", - "count": 6 - }, - { - "name": "黄瓜", - "quality": "普通", - "count": 5 - }, - { - "name": "面包树", - "quality": "传奇", - "count": 1 - }, - { - "name": "哈密瓜", - "quality": "稀有", - "count": 3 - }, - { - "name": "野草1", - "quality": "普通", - "count": 5 - }, - { - "name": "豌豆", - "quality": "普通", - "count": 3 - }, - { - "name": "柿子", - "quality": "稀有", - "count": 5 - }, - { - "name": "葡萄", - "quality": "普通", - "count": 2 - }, - { - "name": "树莓", - "quality": "优良", - "count": 1 - }, - { - "name": "玫瑰花", - "quality": "稀有", - "count": 1 - }, - { - "name": "甜菜", - "quality": "稀有", - "count": 5 - }, - { - "name": "辣椒", - "quality": "普通", - "count": 7 - }, - { - "name": "山葵", - "quality": "稀有", - "count": 2 - }, - { - "name": "桃子", - "quality": "稀有", - "count": 3 - }, - { - "name": "甘蔗", - "quality": "稀有", - "count": 2 - }, - { - "name": "杂草1", - "quality": "普通", - "count": 3 - }, - { - "name": "香蕉", - "quality": "优良", - "count": 1 - } - ], - "经验值": 3611, - "农场名称": "树萌芽の狗窝", - "玩家昵称": "树萌芽", - "等级": 66, - "钱币": 615196880382, - "最后登录时间": "2025年07月22日12时49分34秒", - "总游玩时间": "163时34分9秒", - "玩家账号": "3205788256", - "玩家密码": "123456", - "个人简介": "人生啊,就这样吧", - "注册时间": "2025年05月21日15时00分00秒", - "作物仓库": [ - { - "name": "草莓", - "quality": "稀有", - "count": 1 - }, - { - "name": "番茄", - "quality": "普通", - "count": 11 - }, - { - "name": "生菜", - "quality": "普通", - "count": 21 - }, - { - "name": "山楂", - "quality": "优良", - "count": 57 - }, - { - "name": "柠檬", - "quality": "优良", - "count": 2 - }, - { - "name": "芒果", - "quality": "稀有", - "count": 5 - }, - { - "name": "龙果", - "quality": "稀有", - "count": 7 - }, - { - "name": "蓝莓", - "quality": "稀有", - "count": 3 - }, - { - "name": "咖啡豆", - "quality": "稀有", - "count": 1 - }, - { - "name": "小麦", - "quality": "普通", - "count": 77 - }, - { - "name": "山葵", - "quality": "稀有", - "count": 5 - }, - { - "name": "鱼腥草", - "quality": "优良", - "count": 11 - }, - { - "name": "桃子", - "quality": "优良", - "count": 3 - }, - { - "name": "富贵竹", - "quality": "史诗", - "count": 5 - }, - { - "name": "西瓜", - "quality": "优良", - "count": 1 - }, - { - "name": "蕨菜", - "quality": "史诗", - "count": 4 - }, - { - "name": "牵牛花", - "quality": "稀有", - "count": 5 - }, - { - "name": "橘子", - "quality": "优良", - "count": 9 - }, - { - "name": "仙人掌", - "quality": "优良", - "count": 2 - }, - { - "name": "胡萝卜", - "quality": "普通", - "count": 25 - }, - { - "name": "土豆", - "quality": "普通", - "count": 2 - }, - { - "name": "马铃薯", - "quality": "普通", - "count": 29 - }, - { - "name": "火龙果", - "quality": "稀有", - "count": 5 - } - ], - "道具背包": [ - { - "name": "水桶", - "count": 1 - }, - { - "name": "生长素", - "count": 1000 - }, - { - "name": "时运-镰刀", - "count": 1000 - }, - { - "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 - }, - "元素属性": { - "元素类型": "METAL", - "元素克制额外伤害": 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, - "性格": "活泼", - "简介": "", - "爱好": "" - }, - "等级经验": { - "宠物等级": 4, - "当前经验": 156.0, - "最大经验": 172.8, - "亲密度": 272.0, - "最大亲密度": 1000.0 - }, - "购买信息": { - "能否购买": true, - "购买价格": 1000, - "出售价格": 500 - }, - "生命与防御": { - "最大生命值": 266.2000000000001, - "当前生命值": 266.2000000000001, - "生命恢复速度": 1.0, - "最大护盾值": 0.0, - "当前护盾值": 0.0, - "护盾恢复速度": 0.0, - "最大护甲值": 133.10000000000005, - "当前护甲值": 133.10000000000005 - }, - "基础攻击属性": { - "攻击类型": "MELEE", - "基础攻击伤害": 33.27500000000001, - "攻击距离": 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", - "宠物名称": "超级可爱的小甲虫", - "队伍标识": "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 - }, - "体力系统": { - "当前体力值": 25, - "最大体力值": 25, - "上次刷新时间": "2025-07-22", - "上次恢复时间": 1753145617.2709374 - }, - "点赞系统": { - "今日剩余点赞次数": 10, - "点赞上次刷新时间": "2025-07-22", - "总点赞数": 0 - }, - "在线礼包": { - "当前日期": "2025-07-22", - "今日在线时长": 45.17346143722534, - "已领取礼包": [], - "登录时间": 1753145617.273117 - }, - "小卖部配置": { - "商品列表": [], - "格子数": 11 - }, - "游戏设置": { - "背景音乐音量": 0.0, - "天气显示": true - }, - "新手礼包": { - "已领取": true, - "领取时间": "2025-07-21 09:30:48" - }, - "签到历史": { - "2025年07月21日10时47分55秒": "金币439 经验57 小麦x5 土豆x3", - "2025年07月22日10时34分15秒": "金币327 经验58 稻谷x4 小麦x4" - } -} \ No newline at end of file diff --git a/test_bullet_system.gd b/test_bullet_system.gd new file mode 100644 index 0000000..471496b --- /dev/null +++ b/test_bullet_system.gd @@ -0,0 +1,76 @@ +extends Node + +# 子弹系统测试脚本 +# 用于验证每种子弹的独立创建函数功能 + +func _ready(): + test_bullet_system() + +func test_bullet_system(): + print("=== 子弹系统测试开始 ===") + + # 创建子弹实例 + var bullet_scene = preload("res://Scene/NewPet/BulletBase.tscn") + var bullet = bullet_scene.instantiate() + add_child(bullet) + + # 测试获取所有子弹名称 + print("\n可用子弹类型:") + var bullet_names = bullet.get_all_bullet_names() + for name in bullet_names: + print("- %s" % name) + + # 测试每种子弹的创建 + print("\n=== 测试各种子弹创建 ===") + + # 测试小蓝弹 + print("\n测试小蓝弹:") + bullet.create_blue_bullet() + print("速度: %.1f, 伤害: %.1f, 生存时间: %.1f" % [bullet.speed, bullet.damage, bullet.lifetime]) + + # 测试小红弹 + print("\n测试小红弹:") + bullet.create_red_bullet() + print("速度: %.1f, 伤害: %.1f, 生存时间: %.1f" % [bullet.speed, bullet.damage, bullet.lifetime]) + + # 测试长橙弹 + print("\n测试长橙弹:") + bullet.create_long_orange_bullet() + print("速度: %.1f, 伤害: %.1f, 生存时间: %.1f, 最大距离: %.1f" % [bullet.speed, bullet.damage, bullet.lifetime, bullet.max_distance]) + + # 测试黄色闪电 + print("\n测试黄色闪电:") + bullet.create_yellow_lightning_bullet() + print("速度: %.1f, 伤害: %.1f, 生存时间: %.1f, 最大距离: %.1f" % [bullet.speed, bullet.damage, bullet.lifetime, bullet.max_distance]) + + # 测试紫色闪电 + print("\n测试紫色闪电:") + bullet.create_purple_lightning_bullet() + print("速度: %.1f, 伤害: %.1f, 生存时间: %.1f, 最大距离: %.1f" % [bullet.speed, bullet.damage, bullet.lifetime, bullet.max_distance]) + + # 测试通过名称创建子弹 + print("\n=== 测试通过名称创建子弹 ===") + bullet.create_bullet_by_name("小粉弹") + print("小粉弹 - 速度: %.1f, 伤害: %.1f" % [bullet.speed, bullet.damage]) + + bullet.create_bullet_by_name("长绿弹") + print("长绿弹 - 速度: %.1f, 伤害: %.1f" % [bullet.speed, bullet.damage]) + + # 测试获取子弹图标 + print("\n=== 测试获取子弹图标 ===") + for name in ["小蓝弹", "小红弹", "黄色闪电"]: + var icon_path = bullet.get_bullet_icon(name) + print("%s 图标路径: %s" % [name, icon_path]) + + # 测试setup函数的新功能 + print("\n=== 测试setup函数 ===") + bullet.setup(Vector2.RIGHT, 100.0, 10.0, null, "绿色闪电") + print("使用setup创建绿色闪电 - 速度: %.1f, 伤害: %.1f" % [bullet.speed, bullet.damage]) + + bullet.setup(Vector2.LEFT, 200.0, 15.0, null) # 不指定类型 + print("使用setup创建默认子弹 - 速度: %.1f, 伤害: %.1f" % [bullet.speed, bullet.damage]) + + print("\n=== 子弹系统测试完成 ===") + + # 清理测试对象 + bullet.queue_free() \ No newline at end of file diff --git a/test_bullet_system.gd.uid b/test_bullet_system.gd.uid new file mode 100644 index 0000000..bb4962c --- /dev/null +++ b/test_bullet_system.gd.uid @@ -0,0 +1 @@ +uid://bkxv5024t46ya diff --git a/test_weapon_system.gd b/test_weapon_system.gd new file mode 100644 index 0000000..ee6af2c --- /dev/null +++ b/test_weapon_system.gd @@ -0,0 +1,49 @@ +extends Node + +# 测试武器系统的简单脚本 +func _ready(): + print("开始测试武器系统...") + + # 创建武器系统实例 + var weapon_system = WeaponBase.new() + + # 测试武器数据 + print("武器列表:") + for weapon_name in weapon_system.get_all_weapon_names(): + print(" - %s: %s" % [weapon_name, weapon_system.get_weapon_icon(weapon_name)]) + + # 创建一个模拟宠物对象来测试武器效果 + var mock_pet = Node.new() + mock_pet.set_script(preload("res://Scene/NewPet/NewPetBase.gd")) + mock_pet.pet_name = "测试宠物" + mock_pet.base_attack_damage = 25.0 + mock_pet.crit_rate = 0.1 + mock_pet.attack_speed = 1.0 + mock_pet.armor_penetration = 0.0 + mock_pet.attack_range = 100.0 + mock_pet.knockback_force = 300.0 + + print("\n测试武器效果:") + print("装备前属性:") + print(" 攻击力: %.1f" % mock_pet.base_attack_damage) + print(" 暴击率: %.2f" % mock_pet.crit_rate) + print(" 攻击速度: %.1f" % mock_pet.attack_speed) + + # 测试装备钻石剑 + weapon_system.apply_weapon_effect(mock_pet, "钻石剑") + print("\n装备钻石剑后:") + print(" 攻击力: %.1f" % mock_pet.base_attack_damage) + print(" 暴击率: %.2f" % mock_pet.crit_rate) + print(" 攻击速度: %.1f" % mock_pet.attack_speed) + + # 测试卸下武器 + weapon_system.remove_weapon_effect(mock_pet, "钻石剑") + print("\n卸下钻石剑后:") + print(" 攻击力: %.1f" % mock_pet.base_attack_damage) + print(" 暴击率: %.2f" % mock_pet.crit_rate) + print(" 攻击速度: %.1f" % mock_pet.attack_speed) + + print("\n武器系统测试完成!") + + # 清理 + mock_pet.queue_free() \ No newline at end of file diff --git a/test_weapon_system.gd.uid b/test_weapon_system.gd.uid new file mode 100644 index 0000000..2841863 --- /dev/null +++ b/test_weapon_system.gd.uid @@ -0,0 +1 @@ +uid://cc5eho78s6v6k

E7cp^t|JsMek)9+?tUq2tWpAPRSg;cS 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