| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- 测试配置工具修复后的行为
- 验证从Excel导入JSON后不再包含stats.attack字段
- """
- import json
- import sys
- from pathlib import Path
- def test_enemies_json_structure():
- """测试enemies.json的结构是否正确"""
- json_path = Path(__file__).parent.parent / 'enemies.json'
-
- if not json_path.exists():
- print(f"错误: JSON文件不存在: {json_path}")
- return False
-
- try:
- with open(json_path, 'r', encoding='utf-8') as f:
- data = json.load(f)
-
- enemies = data.get('enemies', [])
- print(f"找到 {len(enemies)} 个敌人配置")
-
- has_stats_attack = False
- attack_issues = []
-
- for enemy in enemies:
- enemy_id = enemy.get('id', 'unknown')
- stats = enemy.get('stats', {})
- combat = enemy.get('combat', {})
-
- # 检查stats中是否有attack字段
- if 'attack' in stats:
- has_stats_attack = True
- attack_issues.append(f"敌人 {enemy_id} 的stats中包含attack字段: {stats['attack']}")
-
- # 检查combat中是否有attackDamage字段
- if 'attackDamage' not in combat:
- attack_issues.append(f"敌人 {enemy_id} 的combat中缺少attackDamage字段")
- else:
- print(f"敌人 {enemy_id}: combat.attackDamage = {combat['attackDamage']}")
-
- if has_stats_attack:
- print("\n❌ 测试失败: 发现stats.attack字段")
- for issue in attack_issues:
- print(f" - {issue}")
- return False
- else:
- print("\n✅ 测试通过: 没有发现stats.attack字段")
- print("✅ 所有敌人都使用combat.attackDamage作为攻击力源")
- return True
-
- except Exception as e:
- print(f"测试失败: {e}")
- return False
- if __name__ == "__main__":
- print("开始测试敌人配置结构...")
- success = test_enemies_json_structure()
- sys.exit(0 if success else 1)
|