BattleMoveDataReader

battle move effect.data 字段的轻量 typed reader。

设计意图:

  • 收口 battle 主流程反复读取的 accuracy / type / damageClass / target / critRatio / alwaysCriticalHit / alwaysHit 以及少量特殊命中规则字段;

  • 避免 moveEffect.data[...]?.toString()as? Number== true 在多个 phase step 中散落;

  • 让 JSON/CSV 装配边界保留宽松输入,而执行链只通过统一 reader 取值。

说明:

  • 这里只覆盖 battle move 主链当前高频字段,不扩展到所有 effect data;

  • 对数值与布尔值保持与 EventContextAttributeReader 一致的宽松解析语义。

Functions

Link copied to clipboard
fun readAccuracy(moveData: Map<String, Any?>): Int?
Link copied to clipboard
Link copied to clipboard
fun readAlwaysHit(moveData: Map<String, Any?>): Boolean?
Link copied to clipboard
Link copied to clipboard
fun readBoolean(key: String, moveData: Map<String, Any?>): Boolean?
Link copied to clipboard
fun readCritRatio(moveData: Map<String, Any?>): Int?
Link copied to clipboard
fun readDamageClass(moveData: Map<String, Any?>): String?
Link copied to clipboard
fun readInt(key: String, moveData: Map<String, Any?>): Int?
Link copied to clipboard
fun readIntMap(key: String, moveData: Map<String, Any?>): Map<String, Int>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun readString(key: String, moveData: Map<String, Any?>): String?
Link copied to clipboard
fun readStringList(key: String, moveData: Map<String, Any?>): List<String>
Link copied to clipboard
fun readTarget(moveData: Map<String, Any?>): String?
Link copied to clipboard
fun readType(moveData: Map<String, Any?>): String?
Link copied to clipboard