test_weapon_upgrade.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import pandas as pd
  4. import json
  5. from config_manager import ConfigManagerGUI
  6. def test_weapon_upgrade_parsing():
  7. """测试武器升级费用配置解析"""
  8. print("=== 测试武器升级费用配置解析 ===")
  9. # 创建配置管理器实例
  10. config_manager = ConfigManagerGUI()
  11. # 读取Excel文件
  12. excel_file = "方块武器配置/方块武器配置表.xlsx"
  13. try:
  14. # 读取所有工作表
  15. all_sheets = pd.read_excel(excel_file, sheet_name=None)
  16. print(f"找到工作表: {list(all_sheets.keys())}")
  17. # 解析武器配置
  18. weapon_config = config_manager.parse_weapon_multi_sheet_data(all_sheets, excel_file)
  19. print(f"\n解析结果: 共{len(weapon_config.get('weapons', []))}个武器")
  20. # 检查每个武器的升级配置
  21. for weapon in weapon_config.get('weapons', []):
  22. weapon_id = weapon.get('ID', weapon.get('id', 'Unknown'))
  23. weapon_name = weapon.get('名称', weapon.get('name', 'Unknown'))
  24. has_upgrade = 'upgradeConfig' in weapon
  25. print(f"武器: {weapon_id} ({weapon_name}) - 升级配置: {'✓' if has_upgrade else '✗'}")
  26. if has_upgrade:
  27. upgrade_config = weapon['upgradeConfig']
  28. levels = upgrade_config.get('levels', {})
  29. print(f" 最大等级: {upgrade_config.get('maxLevel', 0)}")
  30. print(f" 升级等级数: {len(levels)}")
  31. if levels:
  32. # 显示前3个等级的费用
  33. for level in sorted(levels.keys())[:3]:
  34. cost = levels[level].get('cost', 0)
  35. print(f" 等级{level}费用: {cost}")
  36. else:
  37. print(" 无升级配置")
  38. print()
  39. # 特别检查毛豆射手
  40. pea_shooter = None
  41. for weapon in weapon_config.get('weapons', []):
  42. if weapon.get('ID') == 'pea_shooter' or weapon.get('id') == 'pea_shooter':
  43. pea_shooter = weapon
  44. break
  45. if pea_shooter:
  46. print("=== 毛豆射手详细信息 ===")
  47. print(f"原始数据: {json.dumps(pea_shooter, indent=2, ensure_ascii=False)}")
  48. else:
  49. print("未找到毛豆射手配置")
  50. except Exception as e:
  51. print(f"测试失败: {e}")
  52. import traceback
  53. traceback.print_exc()
  54. if __name__ == "__main__":
  55. test_weapon_upgrade_parsing()