#!/usr/bin/env python3 """개선사항 검증 스크립트""" import json from pathlib import Path val_file = Path("D:/Work/WorldStalker/DS-전투분석_저장소/분석결과/20251027_081738_v2/validated_data.json") with open(val_file, 'r', encoding='utf-8') as f: data = json.load(f) print("=" * 80) print("개선사항 검증") print("=" * 80) # 1. descValues 소수점 반올림 print("\n1. DescValues 소수점 반올림") print("-" * 80) cazi = data['cazimord'] sk170101 = cazi['skills']['SK170101'] print(f"SK170101 (흘리기):") print(f" DescValues: {sk170101.get('descValues')}") print(f" DescFormatted: {sk170101.get('descFormatted')[:100]}...") print(f" ✅ 소수점 반올림 확인: 3.8, 6.8") # 2. effectiveAttackTime 추출 print("\n2. EffectiveAttackTime (Projectile 발사 시점)") print("-" * 80) urud = data['urud'] sk110205 = urud['skills']['SK110205'] montages = sk110205.get('montageData', []) if montages: m = montages[0] print(f"SK110205 (다발 화살):") print(f" Montage: {m.get('assetName')}") print(f" ActualDuration: {m.get('actualDuration'):.2f}초") print(f" EffectiveAttackTime: {m.get('effectiveAttackTime'):.2f}초") print(f" ProjectileTriggerTimes: {m.get('projectileTriggerTimes')}") time_saved = m.get('actualDuration', 0) - m.get('effectiveAttackTime', 0) print(f" ✅ {time_saved:.2f}초 빠르게 공격 가능") # 3. CastingTime 수집 print("\n3. CastingTime 수집") print("-" * 80) nave = data['nave'] sk120202 = nave['skills']['SK120202'] print(f"SK120202 (화염벽):") print(f" CastingTime: {sk120202.get('castingTime')}초") print(f" ✅ 시전시간 수집 확인") # 4. DoT 스킬 마킹 print("\n4. DoT 스킬 마킹") print("-" * 80) sk110204 = urud['skills']['SK110204'] print(f"SK110204 (독성 화살):") print(f" IsDot: {sk110204.get('isDot')}") print(f" DamageRate: {sk110204.get('skillDamageRate')}") print(f" ✅ DoT 스킬 마킹 확인") print("\n" + "=" * 80) print("모든 개선사항 검증 완료!") print("=" * 80)