| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- 能量条经验值系统配置验证脚本
- 用于验证新的能量条配置是否正确生成和应用
- """
- import json
- import os
- from pathlib import Path
- def verify_energy_config():
- """验证能量条配置"""
- print("=== 能量条经验值系统配置验证 ===")
-
- # 检查关卡配置文件
- levels_dir = Path("assets/resources/data/levels")
- if not levels_dir.exists():
- print(f"❌ 关卡配置目录不存在: {levels_dir}")
- return False
-
- success_count = 0
- total_count = 0
-
- # 检查所有关卡配置文件
- for level_file in levels_dir.glob("Level*.json"):
- total_count += 1
- print(f"\n检查关卡配置: {level_file.name}")
-
- try:
- with open(level_file, 'r', encoding='utf-8') as f:
- config = json.load(f)
-
- # 检查基本结构
- if 'levelSettings' not in config:
- print(f" ❌ 缺少 levelSettings")
- continue
-
- level_settings = config['levelSettings']
-
- # 检查原有能量配置
- if 'energyMax' not in level_settings:
- print(f" ❌ 缺少 energyMax")
- continue
- else:
- print(f" ✓ energyMax: {level_settings['energyMax']}")
-
- # 检查新的能量条经验值配置
- if 'energyExpValues' not in level_settings:
- print(f" ❌ 缺少 energyExpValues")
- continue
- else:
- exp_values = level_settings['energyExpValues']
- if isinstance(exp_values, list) and len(exp_values) > 0:
- print(f" ✓ energyExpValues: 长度={len(exp_values)}, 前5个值={exp_values[:5]}")
- else:
- print(f" ❌ energyExpValues 格式错误")
- continue
-
- # 检查新的能量条升级配置
- if 'energyMaxUpgrades' not in level_settings:
- print(f" ❌ 缺少 energyMaxUpgrades")
- continue
- else:
- upgrade_values = level_settings['energyMaxUpgrades']
- if isinstance(upgrade_values, list) and len(upgrade_values) > 0:
- print(f" ✓ energyMaxUpgrades: 长度={len(upgrade_values)}, 前5个值={upgrade_values[:5]}")
- else:
- print(f" ❌ energyMaxUpgrades 格式错误")
- continue
-
- # 验证数据逻辑
- if len(exp_values) != len(upgrade_values):
- print(f" ⚠️ 警告: energyExpValues和energyMaxUpgrades长度不匹配")
-
- # 验证递增趋势
- if exp_values == sorted(exp_values):
- print(f" ✓ energyExpValues 呈递增趋势")
- else:
- print(f" ⚠️ 警告: energyExpValues 未呈递增趋势")
-
- if upgrade_values == sorted(upgrade_values):
- print(f" ✓ energyMaxUpgrades 呈递增趋势")
- else:
- print(f" ⚠️ 警告: energyMaxUpgrades 未呈递增趋势")
-
- print(f" ✅ {level_file.name} 配置验证通过")
- success_count += 1
-
- except Exception as e:
- print(f" ❌ 读取配置文件失败: {e}")
-
- print(f"\n=== 验证结果 ===")
- print(f"总计关卡: {total_count}")
- print(f"验证通过: {success_count}")
- print(f"验证失败: {total_count - success_count}")
-
- if success_count == total_count and total_count > 0:
- print("🎉 所有关卡配置验证通过!")
- return True
- else:
- print("❌ 部分关卡配置验证失败")
- return False
- def verify_excel_config():
- """验证Excel配置文件"""
- print("\n=== Excel配置文件验证 ===")
-
- excel_file = Path("assets/resources/data/excel/关卡配置/关卡配置表.xlsx")
- if not excel_file.exists():
- print(f"❌ Excel配置文件不存在: {excel_file}")
- return False
-
- try:
- import pandas as pd
-
- # 检查能量经验配置工作表
- try:
- df_exp = pd.read_excel(excel_file, sheet_name='能量经验配置')
- print(f"✓ '能量经验配置' 工作表存在,行数: {len(df_exp)}")
- print(f" 列数: {len(df_exp.columns)}")
- if len(df_exp.columns) >= 21: # 关卡ID + 20次经验值
- print(f" ✓ 列数符合预期 (>=21)")
- else:
- print(f" ❌ 列数不足 (<21)")
- except Exception as e:
- print(f"❌ '能量经验配置' 工作表读取失败: {e}")
-
- # 检查能量升级配置工作表
- try:
- df_upgrade = pd.read_excel(excel_file, sheet_name='能量最大值升级')
- print(f"✓ '能量最大值升级' 工作表存在,行数: {len(df_upgrade)}")
- print(f" 列数: {len(df_upgrade.columns)}")
- if len(df_upgrade.columns) >= 21: # 关卡ID + 20次升级值
- print(f" ✓ 列数符合预期 (>=21)")
- else:
- print(f" ❌ 列数不足 (<21)")
- except Exception as e:
- print(f"❌ '能量最大值升级' 工作表读取失败: {e}")
-
- return True
-
- except ImportError:
- print("❌ pandas库未安装,无法验证Excel文件")
- return False
- except Exception as e:
- print(f"❌ Excel文件验证失败: {e}")
- return False
- def main():
- """主函数"""
- print("开始验证能量条经验值系统配置...\n")
-
- # 验证Excel配置
- excel_ok = verify_excel_config()
-
- # 验证JSON配置
- json_ok = verify_energy_config()
-
- print("\n=== 总体验证结果 ===")
- if excel_ok and json_ok:
- print("🎉 能量条经验值系统配置验证全部通过!")
- print("\n系统已准备就绪,可以进行游戏测试:")
- print("1. 在Cocos Creator中打开项目")
- print("2. 运行游戏场景")
- print("3. 击杀敌人观察能量条变化")
- print("4. 能量满时观察升级效果")
- else:
- print("❌ 配置验证存在问题,请检查上述错误信息")
- if __name__ == "__main__":
- main()
|