feat(element): 优化元素计算器并发安全与缓存机制

- 使用 sync.Map 替代 map+锁,提升并发读写性能
- 预加载所有元素组合,避免运行时重复创建
- 攻击系数计算结果加入缓存,提高查询效率
- 完善缓存键命名与错误处理机制
- 调整元素组合字符串展示格式,增强可读性

fix(item): 修复购买物品时价格为0仍扣除金币的问题

- 在购买逻辑中增加对物品价格是否为0的判断
- 防止免费物品被误扣金币
This commit is contained in:
2025-11-02 23:52:06 +08:00
parent 038bd0ce0c
commit 7a8be1c23a
13 changed files with 1051 additions and 263 deletions

View File

@@ -0,0 +1,730 @@
<Root>
<Relation type="grass">
<Opponent type="grass" multiple="0.5" />
<Opponent type="water" multiple="2" />
<Opponent type="fire" multiple="0.5" />
<Opponent type="flying" multiple="0.5" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="2" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="2" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="0.5" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="0.5" />
<Opponent type="deity" multiple="0.5" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="water">
<Opponent type="grass" multiple="0.5" />
<Opponent type="water" multiple="0.5" />
<Opponent type="fire" multiple="2" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="2" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="0.5" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="0.5" />
<Opponent type="deity" multiple="0.5" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="fire">
<Opponent type="grass" multiple="2" />
<Opponent type="water" multiple="0.5" />
<Opponent type="fire" multiple="0.5" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="2" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="2" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="0.5" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="0.5" />
<Opponent type="deity" multiple="0.5" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="flying">
<Opponent type="grass" multiple="2" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="0.5" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="2" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="0.5" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="0.5" />
<Opponent type="nature" multiple="0.5" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="0.5" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="2" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="electric">
<Opponent type="grass" multiple="0.5" />
<Opponent type="water" multiple="2" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="2" />
<Opponent type="electric" multiple="0.5" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="0" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="2" />
<Opponent type="myth" multiple="0.5" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="2" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="0.5" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="2" />
<Opponent type="deity" multiple="0.5" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="2" />
</Relation>
<Relation type="steel">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="0.5" />
<Opponent type="fire" multiple="0.5" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="0.5" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="2" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="2" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="0.5" />
<Opponent type="ancient" multiple="2" />
<Opponent type="demon" multiple="2" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="2" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="ground">
<Opponent type="grass" multiple="0.5" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="2" />
<Opponent type="flying" multiple="0" />
<Opponent type="electric" multiple="2" />
<Opponent type="steel" multiple="2" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="0.5" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="0.5" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="0.5" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="0.5" />
<Opponent type="king" multiple="2" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="0.5" />
<Opponent type="samsara" multiple="2" />
<Opponent type="insect" multiple="0.5" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="normal">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="ice">
<Opponent type="grass" multiple="2" />
<Opponent type="water" multiple="0.5" />
<Opponent type="fire" multiple="0.5" />
<Opponent type="flying" multiple="2" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="2" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="0.5" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="2" />
<Opponent type="ancient" multiple="2" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="0.5" />
<Opponent type="deity" multiple="0.5" />
<Opponent type="samsara" multiple="2" />
<Opponent type="insect" multiple="2" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="psychic">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="0.5" />
<Opponent type="fight" multiple="2" />
<Opponent type="light" multiple="0" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="2" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="2" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="0.5" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="fight">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="2" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="2" />
<Opponent type="psychic" multiple="0.5" />
<Opponent type="fight" multiple="0.5" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="0.5" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="2" />
<Opponent type="saint" multiple="2" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="0.5" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="0.5" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="light">
<Opponent type="grass" multiple="0" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="0.5" />
<Opponent type="psychic" multiple="2" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="0.5" />
<Opponent type="dark" multiple="2" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="0.5" />
<Opponent type="nature" multiple="0.5" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="0.5" />
<Opponent type="samsara" multiple="0.5" />
<Opponent type="insect" multiple="2" />
<Opponent type="void" multiple="0.5" />
</Relation>
<Relation type="dark">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="0.5" />
<Opponent type="psychic" multiple="2" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="0.5" />
<Opponent type="dark" multiple="2" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="2" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="0.5" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="0.5" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="myth">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="2" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="0.5" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="0.5" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="2" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="2" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="0.5" />
<Opponent type="nature" multiple="2" />
<Opponent type="king" multiple="2" />
<Opponent type="chaos" multiple="0.5" />
<Opponent type="deity" multiple="2" />
<Opponent type="samsara" multiple="2" />
<Opponent type="insect" multiple="0.5" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="dragon">
<Opponent type="grass" multiple="0.5" />
<Opponent type="water" multiple="0.5" />
<Opponent type="fire" multiple="0.5" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="0.5" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="2" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="2" />
<Opponent type="saint" multiple="2" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="0.5" />
<Opponent type="demon" multiple="2" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="0.5" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="saint">
<Opponent type="grass" multiple="2" />
<Opponent type="water" multiple="2" />
<Opponent type="fire" multiple="2" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="2" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="2" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="0.5" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="0.5" />
<Opponent type="dragon" multiple="0.5" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="2" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="0.5" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="2" />
</Relation>
<Relation type="dimension">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="2" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="2" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="0.5" />
<Opponent type="psychic" multiple="2" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="0" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="2" />
<Opponent type="nature" multiple="2" />
<Opponent type="king" multiple="0.5" />
<Opponent type="chaos" multiple="0.5" />
<Opponent type="deity" multiple="0.5" />
<Opponent type="samsara" multiple="0.5" />
<Opponent type="insect" multiple="2" />
<Opponent type="void" multiple="2" />
</Relation>
<Relation type="ancient">
<Opponent type="grass" multiple="2" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="2" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="0.5" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="2" />
<Opponent type="dragon" multiple="2" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="0.5" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="0.5" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="2" />
</Relation>
<Relation type="demon">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="0.5" />
<Opponent type="psychic" multiple="0.5" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="2" />
<Opponent type="dark" multiple="2" />
<Opponent type="myth" multiple="2" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="2" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="2" />
<Opponent type="king" multiple="0.5" />
<Opponent type="chaos" multiple="0.5" />
<Opponent type="deity" multiple="0" />
<Opponent type="samsara" multiple="0.5" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="nature">
<Opponent type="grass" multiple="2" />
<Opponent type="water" multiple="2" />
<Opponent type="fire" multiple="2" />
<Opponent type="flying" multiple="2" />
<Opponent type="electric" multiple="2" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="2" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="0.5" />
<Opponent type="fight" multiple="0.5" />
<Opponent type="light" multiple="2" />
<Opponent type="dark" multiple="0.5" />
<Opponent type="myth" multiple="0.5" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="0.5" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="0.5" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="2" />
<Opponent type="chaos" multiple="0.5" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="2" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="0.5" />
</Relation>
<Relation type="king">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="0.5" />
<Opponent type="fight" multiple="2" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="2" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="2" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="2" />
<Opponent type="nature" multiple="0.5" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="0.5" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="chaos">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="2" />
<Opponent type="electric" multiple="0.5" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="2" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="0.5" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="2" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="2" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="2" />
<Opponent type="nature" multiple="2" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="2" />
<Opponent type="samsara" multiple="0.5" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="0" />
</Relation>
<Relation type="deity">
<Opponent type="grass" multiple="2" />
<Opponent type="water" multiple="2" />
<Opponent type="fire" multiple="2" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="2" />
<Opponent type="steel" multiple="0.5" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="2" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="0.5" />
<Opponent type="light" multiple="1" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="0.5" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="2" />
<Opponent type="demon" multiple="2" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="2" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="samsara">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="0.5" />
<Opponent type="psychic" multiple="0.5" />
<Opponent type="fight" multiple="1" />
<Opponent type="light" multiple="2" />
<Opponent type="dark" multiple="2" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="2" />
<Opponent type="dimension" multiple="2" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="2" />
<Opponent type="nature" multiple="0.5" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="2" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="0.5" />
</Relation>
<Relation type="insect">
<Opponent type="grass" multiple="2" />
<Opponent type="water" multiple="0.5" />
<Opponent type="fire" multiple="0.5" />
<Opponent type="flying" multiple="1" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="2" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="0.5" />
<Opponent type="psychic" multiple="1" />
<Opponent type="fight" multiple="2" />
<Opponent type="light" multiple="0.5" />
<Opponent type="dark" multiple="1" />
<Opponent type="myth" multiple="1" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="1" />
<Opponent type="dimension" multiple="1" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="1" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="2" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="1" />
<Opponent type="insect" multiple="2" />
<Opponent type="void" multiple="1" />
</Relation>
<Relation type="void">
<Opponent type="grass" multiple="1" />
<Opponent type="water" multiple="1" />
<Opponent type="fire" multiple="1" />
<Opponent type="flying" multiple="0.5" />
<Opponent type="electric" multiple="1" />
<Opponent type="steel" multiple="1" />
<Opponent type="ground" multiple="1" />
<Opponent type="normal" multiple="1" />
<Opponent type="ice" multiple="1" />
<Opponent type="psychic" multiple="2" />
<Opponent type="fight" multiple="2" />
<Opponent type="light" multiple="2" />
<Opponent type="dark" multiple="0.5" />
<Opponent type="myth" multiple="2" />
<Opponent type="dragon" multiple="1" />
<Opponent type="saint" multiple="0.5" />
<Opponent type="dimension" multiple="0.5" />
<Opponent type="ancient" multiple="1" />
<Opponent type="demon" multiple="1" />
<Opponent type="nature" multiple="2" />
<Opponent type="king" multiple="1" />
<Opponent type="chaos" multiple="1" />
<Opponent type="deity" multiple="1" />
<Opponent type="samsara" multiple="2" />
<Opponent type="insect" multiple="1" />
<Opponent type="void" multiple="1" />
</Relation>
</Root>

View File

@@ -0,0 +1,143 @@
<!--
技能类型
-->
<root>
<item id="1" cn="草" en="grass"/>
<item id="2" cn="水" en="water"/>
<item id="3" cn="火" en="fire"/>
<item id="4" cn="飞行" en="flying"/>
<item id="5" cn="电" en="electric"/>
<item id="6" cn="机械" en="steel"/>
<item id="7" cn="地面" en="ground"/>
<item id="8" cn="普通" en="normal"/>
<item id="9" cn="冰" en="ice"/>
<item id="10" cn="超能" en="psychic"/>
<item id="11" cn="战斗" en="fight"/>
<item id="12" cn="光" en="light"/>
<item id="13" cn="暗影" en="dark"/>
<item id="14" cn="神秘" en="myth"/>
<item id="15" cn="龙" en="dragon"/>
<item id="16" cn="圣灵" en="saint"/>
<item id="17" cn="次元" en="dimension"/>
<item id="18" cn="远古" en="ancient"/>
<item id="19" cn="邪灵" en="demon"/>
<item id="20" cn="自然" en="nature"/>
<item id="21" is_dou="1" att="1 10" cn="草 超能" en="grass_psychic"/>
<item id="22" is_dou="1" att="1 11" cn="草 战斗" en="grass_fight"/>
<item id="23" is_dou="1" att="1 13" cn="草 暗影" en="grass_dark"/>
<item id="24" is_dou="1" att="2 10" cn="水 超能" en="water_psychic"/>
<item id="25" is_dou="1" att="2 13" cn="水 暗影" en="water_dark"/>
<item id="26" is_dou="1" att="2 15" cn="水 龙" en="water_dragon"/>
<item id="27" is_dou="1" att="3 4" cn="火 飞行" en="fire_flying"/>
<item id="28" is_dou="1" att="3 15" cn="火 龙" en="fire_dragon"/>
<item id="29" is_dou="1" att="3 10" cn="火 超能" en="fire_psychic"/>
<item id="30" is_dou="1" att="4 10" cn="飞行 超能" en="flying_psychic"/>
<item id="31" is_dou="1" att="12 4" cn="光 飞行" en="flying_light"/>
<item id="32" is_dou="1" att="4 15" cn="飞行 龙" en="flying_dragon"/>
<item id="33" is_dou="1" att="5 3" cn="电 火" en="electric_fire"/>
<item id="34" is_dou="1" att="5 9" cn="电 冰" en="electric_ice"/>
<item id="35" is_dou="1" att="5 11" cn="电 战斗" en="electric_fight"/>
<item id="36" is_dou="1" att="13 5" cn="暗影 电" en="electric_dark"/>
<item id="37" is_dou="1" att="6 7" cn="机械 地面" en="steel_ground"/>
<item id="38" is_dou="1" att="6 10" cn="机械 超能" en="steel_psychic"/>
<item id="39" is_dou="1" att="6 15" cn="机械 龙" en="steel_dragon"/>
<item id="40" is_dou="1" att="7 15" cn="地面 龙" en="ground_dragon"/>
<item id="41" is_dou="1" att="11 7" cn="战斗 地面" en="ground_fight"/>
<item id="42" is_dou="1" att="7 13" cn="地面 暗影" en="ground_dark"/>
<item id="43" is_dou="1" att="9 15" cn="冰 龙" en="ice_dragon"/>
<item id="44" is_dou="1" att="9 12" cn="冰 光" en="ice_light"/>
<item id="45" is_dou="1" att="9 13" cn="冰 暗影" en="ice_dark"/>
<item id="46" is_dou="1" att="10 9" cn="超能 冰" en="psychic_ice"/>
<item id="47" is_dou="1" att="11 3" cn="战斗 火" en="fight_fire"/>
<item id="48" is_dou="1" att="11 13" cn="战斗 暗影" en="fight_dark"/>
<item id="49" is_dou="1" att="12 14" cn="光 神秘" en="light_myth"/>
<item id="50" is_dou="1" att="13 14" cn="暗影 神秘" en="dark_myth"/>
<item id="51" is_dou="1" att="14 10" cn="神秘 超能" en="myth_psychic"/>
<item id="52" is_dou="1" att="16 12" cn="圣灵 光" en="saint_light"/>
<item id="53" is_dou="1" att="4 14" cn="飞行 神秘" en="flying_myth"/>
<item id="54" is_dou="1" att="7 10" cn="地面 超能" en="ground_psychic"/>
<item id="55" is_dou="1" att="13 15" cn="暗影 龙" en="dark_dragon"/>
<item id="56" is_dou="1" att="16 13" cn="圣灵 暗影" en="saint_dark"/>
<item id="57" is_dou="1" att="18 11" cn="远古 战斗" en="ancient_fight"/>
<item id="58" is_dou="1" att="3 14" cn="火 神秘" en="myth_fire"/>
<item id="59" is_dou="1" att="12 11" cn="光 战斗" en="light_fight"/>
<item id="60" is_dou="1" att="14 11" cn="神秘 战斗" en="myth_fight"/>
<item id="61" is_dou="1" att="17 11" cn="次元 战斗" en="dimension_fight"/>
<item id="62" is_dou="1" att="19 14" cn="邪灵 神秘" en="demon_myth"/>
<item id="63" is_dou="1" att="18 15" cn="远古 龙" en="ancient_dragon"/>
<item id="64" is_dou="1" att="12 17" cn="光 次元" en="light_dimension"/>
<item id="65" is_dou="1" att="18 16" cn="远古 圣灵" en="ancient_saint"/>
<item id="66" is_dou="1" att="2 11" cn="水 战斗" en="water_fight"/>
<item id="67" is_dou="1" att="5 15" cn="电 龙" en="electric_dragon"/>
<item id="68" is_dou="1" att="12 3" cn="光 火" en="light_fire"/>
<item id="69" is_dou="1" att="12 13" cn="光 暗影" en="light_dark"/>
<item id="70" is_dou="1" att="19 15" cn="邪灵 龙" en="demon_dragon"/>
<item id="71" is_dou="1" att="18 14" cn="远古 神秘" en="ancient_myth"/>
<item id="72" is_dou="1" att="6 17" cn="机械 次元" en="steel_dimension"/>
<item id="73" is_dou="1" att="11 15" cn="战斗 龙" en="fight_dragon"/>
<item id="74" is_dou="1" att="11 20" cn="战斗 自然" en="fight_nature"/>
<item id="75" is_dou="1" att="19 6" cn="邪灵 机械" en="demon_steel"/>
<item id="76" is_dou="1" att="5 17" cn="电 次元" en="electric_dimension"/>
<item id="77" is_dou="1" att="18 3" cn="远古 火" en="ancient_fire"/>
<item id="78" is_dou="1" att="16 11" cn="圣灵 战斗" en="saint_fight"/>
<item id="79" is_dou="1" att="16 17" cn="圣灵 次元" en="saint_dimension"/>
<item id="80" is_dou="1" att="16 5" cn="圣灵 电" en="saint_electric"/>
<item id="81" is_dou="1" att="18 7" cn="远古 地面" en="ancient_ground"/>
<item id="82" is_dou="1" att="18 1" cn="远古 草" en="ancient_grass"/>
<item id="83" is_dou="1" att="20 15" cn="自然 龙" en="nature_dragon"/>
<item id="84" is_dou="1" att="9 14" cn="冰 神秘" en="ice_myth"/>
<item id="85" is_dou="1" att="4 13" cn="飞行 暗影" en="flying_dark"/>
<item id="86" is_dou="1" att="9 3" cn="冰 火" en="ice_fire"/>
<item id="87" is_dou="1" att="9 4" cn="冰 飞行" en="ice_flying"/>
<item id="88" is_dou="1" att="20 16" cn="自然 圣灵" en="nature_saint"/>
<item id="89" is_dou="1" att="222 16" cn="混沌 圣灵" en="chaos_saint"/>
<item id="90" is_dou="1" att="18 19" cn="远古 邪灵" en="ancient_demon"/>
<item id="91" is_dou="1" att="20 9" cn="自然 冰" en="nature_ice"/>
<item id="92" is_dou="1" att="222 13" cn="混沌 暗影" en="chaos_dark"/>
<item id="93" is_dou="1" att="222 11" cn="混沌 战斗" en="chaos_fight"/>
<item id="94" is_dou="1" att="222 10" cn="混沌 超能" en="chaos_psychic"/>
<item id="95" is_dou="1" att="16 10" cn="圣灵 超能" en="saint_psychic"/>
<item id="96" is_dou="1" att="222 7" cn="混沌 地面" en="chaos_ground"/>
<item id="97" is_dou="1" att="13 19" cn="暗影 邪灵" en="dark_demon"/>
<item id="98" is_dou="1" att="222 18" cn="混沌 远古" en="chaos_ancient"/>
<item id="99" is_dou="1" att="222 19" cn="混沌 邪灵" en="chaos_demon"/>
<item id="100" is_dou="1" att="16 7" cn="圣灵 地面" en="saint_ground"/>
<item id="101" is_dou="1" att="3 13" cn="火 暗影" en="fire_dark"/>
<item id="102" is_dou="1" att="12 10" cn="光 超能" en="light_psychic"/>
<item id="103" is_dou="1" att="6 11" cn="机械 战斗" en="steel_fight"/>
<item id="104" is_dou="1" att="4 5" cn="飞行 电" en="flying_electric"/>
<item id="105" is_dou="1" att="222 4" cn="混沌 飞行" en="chaos_flying"/>
<item id="106" is_dou="1" att="222 15" cn="混沌 龙" en="chaos_dragon"/>
<item id="107" is_dou="1" att="222 3" cn="混沌 火" en="chaos_fire"/>
<item id="108" is_dou="1" att="16 3" cn="圣灵 火" en="saint_fire"/>
<item id="109" is_dou="1" att="7 14" cn="地面 神秘" en="ground_myth"/>
<item id="110" is_dou="1" att="222 17" cn="混沌 次元" en="chaos_dimension"/>
<item id="111" is_dou="1" att="222 9" cn="混沌 冰" en="chaos_ice"/>
<item id="112" is_dou="1" att="20 14" cn="自然 神秘" en="nature_myth"/>
<item id="113" is_dou="1" att="226 19" cn="虚空 邪灵" en="void_demon"/>
<item id="114" is_dou="1" att="226 222" cn="虚空 混沌" en="void_chaos"/>
<item id="115" is_dou="1" att="16 224" cn="圣灵 轮回" en="saint_samsara"/>
<item id="116" is_dou="1" att="2 17" cn="水 次元" en="water_dimension"/>
<item id="117" is_dou="1" att="16 14" cn="圣灵 神秘" en="saint_myth"/>
<item id="118" is_dou="1" att="6 14" cn="机械 神秘" en="steel_myth"/>
<item id="119" is_dou="1" att="2 14" cn="水 神秘" en="water_myth"/>
<item id="120" is_dou="1" att="17 15" cn="次元 龙" en="dimension_dragon"/>
<item id="121" is_dou="1" att="20 10" cn="自然 超能" en="nature_psychic"/>
<item id="122" is_dou="1" att="5 6" cn="电 机械" en="electric_steel"/>
<item id="123" is_dou="1" att="14 224" cn="神秘 轮回" en="myth_samsara"/>
<item id="124" is_dou="1" att="2 6" cn="水 机械" en="water_steel"/>
<item id="125" is_dou="1" att="3 6" cn="火 机械" en="fire_steel"/>
<item id="126" is_dou="1" att="1 6" cn="草 机械" en="grass_steel"/>
<item id="127" is_dou="1" att="18 5" cn="远古 电" en="ancient_electric"/>
<item id="128" is_dou="1" att="16 4" cn="圣灵 飞行" en="saint_flying"/>
<item id="221" cn="王" en="king"/>
<item id="222" cn="混沌" en="chaos"/>
<item id="223" cn="神灵" en="deity"/>
<item id="224" cn="轮回" en="samsara"/>
<item id="225" cn="虫" en="insect"/>
<item id="226" cn="虚空" en="void"/>
</root>