| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /**
- * 技能系统配置测试脚本
- * 用于验证新的多星级技能效果配置是否正常工作
- */
- const fs = require('fs');
- const path = require('path');
- // 读取技能配置文件
- const skillConfigPath = path.join(__dirname, 'assets/resources/data/skill.json');
- try {
- const skillData = JSON.parse(fs.readFileSync(skillConfigPath, 'utf8'));
-
- console.log('=== 技能配置验证 ===');
-
- skillData.skills.forEach(skill => {
- console.log(`\n技能: ${skill.name} (${skill.id})`);
- console.log(`最大等级: ${skill.maxLevel}`);
-
- // 验证levelEffects结构
- if (skill.levelEffects) {
- console.log('等级效果配置:');
-
- Object.keys(skill.levelEffects).forEach(effectName => {
- if (effectName === 'descriptions') {
- console.log(` ${effectName}: ${skill.levelEffects[effectName].length} 个描述`);
- skill.levelEffects[effectName].forEach((desc, index) => {
- console.log(` 等级${index}: ${desc}`);
- });
- } else {
- const values = skill.levelEffects[effectName];
- console.log(` ${effectName}: [${values.join(', ')}]`);
-
- // 验证数组长度是否正确(应该是maxLevel + 1)
- if (values.length !== skill.maxLevel + 1) {
- console.error(` ❌ 错误: ${effectName} 数组长度 ${values.length} 不等于 ${skill.maxLevel + 1}`);
- } else {
- console.log(` ✅ 数组长度正确`);
- }
- }
- });
- } else {
- console.error('❌ 缺少 levelEffects 配置');
- }
- });
-
- console.log('\n=== 效果值测试 ===');
-
- // 测试暴击几率技能的不同等级效果
- const critSkill = skillData.skills.find(s => s.id === 'crit_chance');
- if (critSkill) {
- console.log('\n暴击几率技能各等级效果:');
- for (let level = 0; level <= critSkill.maxLevel; level++) {
- const effectValue = critSkill.levelEffects.critChanceIncrease[level];
- const description = critSkill.levelEffects.descriptions[level];
- console.log(` ${level}星: ${effectValue * 100}% - ${description}`);
- }
- }
-
- console.log('\n✅ 技能配置验证完成');
-
- } catch (error) {
- console.error('❌ 读取技能配置失败:', error.message);
- }
|