diff --git a/data/backups.json b/data/backups.json index 4153cad8..76b8e976 100644 --- a/data/backups.json +++ b/data/backups.json @@ -1 +1 @@ -{"units":{"char_600_cpione":{"charId":"char_600_cpione","name":"预备干员-先锋","appellation":"Reserve Operator - Vanguard","rarity":4,"profession":"PIONEER","subProfessionId":"pioneer","subProfessionName":"尖兵","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_600_cpione","avatarGolden":"char_600_cpione","portrait":"char_600_cpione_1","portraitGolden":"char_600_cpione_1","spine":"char_600_cpione","subProfIcon":"sub_pioneer_icon"},"moduleNames":{},"standsIn":["chess_char_5_01_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1225,"atk":320,"def":272,"res":0,"cost":11,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_charge_cost[1]","iconId":"skcom_charge_cost[1]","name":"冲锋号令·α型","level":4,"desc":"立即获得6点部署费用","descRaw":"立即获得<@ba.vup>6点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":27,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"cost":6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_charge_cost[2]","iconId":"skcom_charge_cost[2]","name":"冲锋号令·β型","level":4,"desc":"立即获得9点部署费用","descRaw":"立即获得<@ba.vup>9点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":36,"initSp":9,"maxChargeTime":1,"increment":1,"bb":{"cost":9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_charge_cost[3]","iconId":"skcom_charge_cost[3]","name":"冲锋号令·γ型","level":4,"desc":"立即获得12点部署费用","descRaw":"立即获得<@ba.vup>12点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":41,"initSp":12,"maxChargeTime":1,"increment":1,"bb":{"cost":12},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1674,"atk":380,"def":322,"res":0,"cost":11,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_charge_cost[1]","iconId":"skcom_charge_cost[1]","name":"冲锋号令·α型","level":7,"desc":"立即获得6点部署费用","descRaw":"立即获得<@ba.vup>6点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":25,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_charge_cost[2]","iconId":"skcom_charge_cost[2]","name":"冲锋号令·β型","level":7,"desc":"立即获得9点部署费用","descRaw":"立即获得<@ba.vup>9点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":33,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"cost":9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_charge_cost[3]","iconId":"skcom_charge_cost[3]","name":"冲锋号令·γ型","level":7,"desc":"立即获得12点部署费用","descRaw":"立即获得<@ba.vup>12点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":14,"maxChargeTime":1,"increment":1,"bb":{"cost":12},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_601_cguard":{"charId":"char_601_cguard","name":"预备干员-近卫","appellation":"Reserve Operator - Guard","rarity":4,"profession":"WARRIOR","subProfessionId":"fearless","subProfessionName":"无畏者","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_601_cguard","avatarGolden":"char_601_cguard","portrait":"char_601_cguard_1","portraitGolden":"char_601_cguard_1","spine":"char_601_cguard","subProfIcon":"sub_fearless_icon"},"moduleNames":{},"standsIn":["chess_char_3_05_a","chess_char_4_07_a","chess_char_5_07_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":2564,"atk":722,"def":124,"res":0,"cost":16,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_atk_up[1]","iconId":"skcom_atk_up[1]","name":"攻击力强化·α型","level":4,"desc":"攻击力+30%","descRaw":"攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_atk_up[2]","iconId":"skcom_atk_up[2]","name":"攻击力强化·β型","level":4,"desc":"攻击力+35%","descRaw":"攻击力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.35},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_atk_up[3]","iconId":"skcom_atk_up[3]","name":"攻击力强化·γ型","level":4,"desc":"攻击力+45%","descRaw":"攻击力<@ba.vup>+45%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":3334,"atk":849,"def":145,"res":0,"cost":16,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_atk_up[1]","iconId":"skcom_atk_up[1]","name":"攻击力强化·α型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_atk_up[2]","iconId":"skcom_atk_up[2]","name":"攻击力强化·β型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_atk_up[3]","iconId":"skcom_atk_up[3]","name":"攻击力强化·γ型","level":7,"desc":"攻击力+60%","descRaw":"攻击力<@ba.vup>+60%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_602_cdfend":{"charId":"char_602_cdfend","name":"预备干员-重装","appellation":"Reserve Operator - Defender","rarity":4,"profession":"TANK","subProfessionId":"protector","subProfessionName":"铁卫","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_602_cdfend","avatarGolden":"char_602_cdfend","portrait":"char_602_cdfend_1","portraitGolden":"char_602_cdfend_1","spine":"char_602_cdfend","subProfIcon":"sub_protector_icon"},"moduleNames":{},"standsIn":["chess_char_4_18_a","chess_char_5_05_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":2128,"atk":276,"def":408,"res":0,"cost":20,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_def_up[1]","iconId":"skcom_def_up[1]","name":"防御力强化·α型","level":4,"desc":"防御力+30%","descRaw":"防御力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"def":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_def_up[2]","iconId":"skcom_def_up[2]","name":"防御力强化·β型","level":4,"desc":"防御力+35%","descRaw":"防御力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"def":0.35},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_def_up[3]","iconId":"skcom_def_up[3]","name":"防御力强化·γ型","level":4,"desc":"防御力+45%","descRaw":"防御力<@ba.vup>+45%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"def":0.45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"防御提升","desc":"防御力+10%","descRaw":"防御力+10%","bb":{"def":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":2908,"atk":318,"def":537,"res":0,"cost":20,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_def_up[1]","iconId":"skcom_def_up[1]","name":"防御力强化·α型","level":7,"desc":"防御力+50%","descRaw":"防御力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"def":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_def_up[2]","iconId":"skcom_def_up[2]","name":"防御力强化·β型","level":7,"desc":"防御力+50%","descRaw":"防御力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"def":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_def_up[3]","iconId":"skcom_def_up[3]","name":"防御力强化·γ型","level":7,"desc":"防御力+60%","descRaw":"防御力<@ba.vup>+60%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"def":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"防御提升","desc":"防御力+10%","descRaw":"防御力+10%","bb":{"def":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_603_csnipe":{"charId":"char_603_csnipe","name":"预备干员-狙击","appellation":"Reserve Operator - Sniper","rarity":4,"profession":"SNIPER","subProfessionId":"fastshot","subProfessionName":"速射手","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_603_csnipe","avatarGolden":"char_603_csnipe","portrait":"char_603_csnipe_1","portraitGolden":"char_603_csnipe_1","spine":"char_603_csnipe","subProfIcon":"sub_fastshot_icon"},"moduleNames":{},"standsIn":["chess_char_3_01_a","chess_char_4_20_a","chess_char_5_15_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1271,"atk":369,"def":84,"res":0,"cost":11,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_atk_up[1]","iconId":"skcom_atk_up[1]","name":"攻击力强化·α型","level":4,"desc":"攻击力+30%","descRaw":"攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_atk_up[2]","iconId":"skcom_atk_up[2]","name":"攻击力强化·β型","level":4,"desc":"攻击力+35%","descRaw":"攻击力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.35},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_atk_up[3]","iconId":"skcom_atk_up[3]","name":"攻击力强化·γ型","level":4,"desc":"攻击力+45%","descRaw":"攻击力<@ba.vup>+45%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1510,"atk":439,"def":98,"res":0,"cost":11,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_atk_up[1]","iconId":"skcom_atk_up[1]","name":"攻击力强化·α型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_atk_up[2]","iconId":"skcom_atk_up[2]","name":"攻击力强化·β型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_atk_up[3]","iconId":"skcom_atk_up[3]","name":"攻击力强化·γ型","level":7,"desc":"攻击力+60%","descRaw":"攻击力<@ba.vup>+60%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_604_ccast":{"charId":"char_604_ccast","name":"预备干员-术师","appellation":"Reserve Operator - Caster","rarity":4,"profession":"CASTER","subProfessionId":"corecaster","subProfessionName":"中坚术师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_604_ccast","avatarGolden":"char_604_ccast","portrait":"char_604_ccast_1","portraitGolden":"char_604_ccast_1","spine":"char_604_ccast","subProfIcon":"sub_corecaster_icon"},"moduleNames":{},"standsIn":["chess_char_4_24_a","chess_char_5_02_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1133,"atk":467,"def":98,"res":20,"cost":18,"blockCnt":1,"bat":1.6,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-1","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害","descRaw":"攻击造成<@ba.kw>法术伤害","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_magic_rage[1]","iconId":"skcom_magic_rage[1]","name":"战术咏唱·α型","level":4,"desc":"攻击速度+30","descRaw":"攻击速度<@ba.vup>+30","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[2]","iconId":"skcom_magic_rage[2]","name":"战术咏唱·β型","level":4,"desc":"攻击速度+30","descRaw":"攻击速度<@ba.vup>+30","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[3]","iconId":"skcom_magic_rage[3]","name":"战术咏唱·γ型","level":4,"desc":"攻击速度+45","descRaw":"攻击速度<@ba.vup>+45","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"施法速度提升","desc":"攻击速度+9","descRaw":"攻击速度+9","bb":{"attack_speed":9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1360,"atk":549,"def":108,"res":20,"cost":18,"blockCnt":1,"bat":1.6,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-1","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害","descRaw":"攻击造成<@ba.kw>法术伤害","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_magic_rage[1]","iconId":"skcom_magic_rage[1]","name":"战术咏唱·α型","level":7,"desc":"攻击速度+50","descRaw":"攻击速度<@ba.vup>+50","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":50},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[2]","iconId":"skcom_magic_rage[2]","name":"战术咏唱·β型","level":7,"desc":"攻击速度+45","descRaw":"攻击速度<@ba.vup>+45","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[3]","iconId":"skcom_magic_rage[3]","name":"战术咏唱·γ型","level":7,"desc":"攻击速度+60","descRaw":"攻击速度<@ba.vup>+60","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":32,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":60},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"施法速度提升","desc":"攻击速度+9","descRaw":"攻击速度+9","bb":{"attack_speed":9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_605_cmedic":{"charId":"char_605_cmedic","name":"预备干员-医疗","appellation":"Reserve Operator - Medic","rarity":4,"profession":"MEDIC","subProfessionId":"physician","subProfessionName":"医师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_605_cmedic","avatarGolden":"char_605_cmedic","portrait":"char_605_cmedic_1","portraitGolden":"char_605_cmedic_1","spine":"char_605_cmedic","subProfIcon":"sub_physician_icon"},"moduleNames":{},"standsIn":["chess_char_3_04_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1218,"atk":340,"def":104,"res":0,"cost":17,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_heal_up[1]","iconId":"skcom_heal_up[1]","name":"治疗强化·α型","level":4,"desc":"攻击力+30%","descRaw":"攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_heal_up[2]","iconId":"skcom_heal_up[2]","name":"治疗强化·β型","level":4,"desc":"攻击力+30%","descRaw":"攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_heal_up[3]","iconId":"skcom_heal_up[3]","name":"治疗强化·γ型","level":4,"desc":"攻击力+55%","descRaw":"攻击力<@ba.vup>+55%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"atk":0.55},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1374,"atk":408,"def":126,"res":0,"cost":17,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_heal_up[1]","iconId":"skcom_heal_up[1]","name":"治疗强化·α型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":30,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_heal_up[2]","iconId":"skcom_heal_up[2]","name":"治疗强化·β型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":32,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_heal_up[3]","iconId":"skcom_heal_up[3]","name":"治疗强化·γ型","level":7,"desc":"攻击力+70%","descRaw":"攻击力<@ba.vup>+70%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":32,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"atk":0.7},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_606_csuppo":{"charId":"char_606_csuppo","name":"预备干员-辅助","appellation":"Reserve Operator - Supporter","rarity":4,"profession":"SUPPORT","subProfessionId":"slower","subProfessionName":"凝滞师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_606_csuppo","avatarGolden":"char_606_csuppo","portrait":"char_606_csuppo_1","portraitGolden":"char_606_csuppo_1","spine":"char_606_csuppo","subProfIcon":"sub_slower_icon"},"moduleNames":{},"standsIn":["chess_char_5_10_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":932,"atk":395,"def":82,"res":20,"cost":14,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_magic_rage[1]","iconId":"skcom_magic_rage[1]","name":"战术咏唱·α型","level":4,"desc":"攻击速度+30","descRaw":"攻击速度<@ba.vup>+30","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[2]","iconId":"skcom_magic_rage[2]","name":"战术咏唱·β型","level":4,"desc":"攻击速度+30","descRaw":"攻击速度<@ba.vup>+30","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[3]","iconId":"skcom_magic_rage[3]","name":"战术咏唱·γ型","level":4,"desc":"攻击速度+45","descRaw":"攻击速度<@ba.vup>+45","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"施法速度提升","desc":"攻击速度+9","descRaw":"攻击速度+9","bb":{"attack_speed":9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1131,"atk":464,"def":96,"res":20,"cost":14,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_magic_rage[1]","iconId":"skcom_magic_rage[1]","name":"战术咏唱·α型","level":7,"desc":"攻击速度+50","descRaw":"攻击速度<@ba.vup>+50","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":50},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[2]","iconId":"skcom_magic_rage[2]","name":"战术咏唱·β型","level":7,"desc":"攻击速度+45","descRaw":"攻击速度<@ba.vup>+45","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[3]","iconId":"skcom_magic_rage[3]","name":"战术咏唱·γ型","level":7,"desc":"攻击速度+60","descRaw":"攻击速度<@ba.vup>+60","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":32,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":60},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"施法速度提升","desc":"攻击速度+9","descRaw":"攻击速度+9","bb":{"attack_speed":9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_607_cspec":{"charId":"char_607_cspec","name":"预备干员-特种","appellation":"Reserve Operator - Specialist","rarity":4,"profession":"SPECIAL","subProfessionId":"executor","subProfessionName":"处决者","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_607_cspec","avatarGolden":"char_607_cspec","portrait":"char_607_cspec_1","portraitGolden":"char_607_cspec_1","spine":"char_607_cspec","subProfIcon":"sub_executor_icon"},"moduleNames":{},"standsIn":["chess_char_4_04_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":951,"atk":335,"def":247,"res":0,"cost":7,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_born_up[1]","iconId":"skcom_born_up[1]","name":"一击即退·α型","level":4,"desc":"部署后攻击力+20%,防御力+15%","descRaw":"部署后攻击力<@ba.vup>+20%,防御力<@ba.vup>+15%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.15,"atk":0.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_born_up[2]","iconId":"skcom_born_up[2]","name":"一击即退·β型","level":4,"desc":"部署后攻击力+30%,防御力+25%","descRaw":"部署后攻击力<@ba.vup>+30%,防御力<@ba.vup>+25%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.25,"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_born_up[3]","iconId":"skcom_born_up[3]","name":"一击即退·γ型","level":4,"desc":"部署后攻击力+40%,防御力+35%","descRaw":"部署后攻击力<@ba.vup>+40%,防御力<@ba.vup>+35%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.35,"atk":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1181,"atk":416,"def":288,"res":0,"cost":7,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_born_up[1]","iconId":"skcom_born_up[1]","name":"一击即退·α型","level":7,"desc":"部署后攻击力+30%,防御力+30%","descRaw":"部署后攻击力<@ba.vup>+30%,防御力<@ba.vup>+30%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.3,"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_born_up[2]","iconId":"skcom_born_up[2]","name":"一击即退·β型","level":7,"desc":"部署后攻击力+40%,防御力+30%","descRaw":"部署后攻击力<@ba.vup>+40%,防御力<@ba.vup>+30%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.3,"atk":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_born_up[3]","iconId":"skcom_born_up[3]","name":"一击即退·γ型","level":7,"desc":"部署后攻击力+50%,防御力+50%","descRaw":"部署后攻击力<@ba.vup>+50%,防御力<@ba.vup>+50%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.5,"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_608_acpion":{"charId":"char_608_acpion","name":"郁金香","appellation":"Tulip","rarity":6,"profession":"PIONEER","subProfessionId":"pioneer","subProfessionName":"尖兵","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_608_acpion","avatarGolden":"char_608_acpion","portrait":"char_608_acpion_1","portraitGolden":"char_608_acpion_1","spine":"char_608_acpion","subProfIcon":"sub_pioneer_icon"},"moduleNames":{"uniequip_001_acpion":{"name":"郁金香证章","typeName":"ORIGINAL"},"uniequip_002_acpion":{"name":"郁金香证章","typeName":"SOL-X"}},"standsIn":["chess_char_3_12_a","chess_char_4_19_a","chess_char_5_14_a","chess_char_6_02_a","chess_char_6_11_a","chess_char_6_17_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1529,"atk":410,"def":296,"res":0,"cost":13,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acpion_1","iconId":"skchr_acpion_1","name":"钻心","level":4,"desc":"立即获得6点部署费用,并对攻击范围至多2名敌人造成攻击力170%的物理伤害","descRaw":"立即获得<@ba.vup>6点部署费用,并对攻击范围至多2名敌人造成攻击力<@ba.vup>170%的物理伤害","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":21,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"cost":6,"atk_scale":1.7,"max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acpion_2","iconId":"skchr_acpion_2","name":"迅瞬","level":4,"desc":"技能持续时间内逐渐获得6点部署费用,攻击速度+95,并无视目标25%的防御力","descRaw":"技能持续时间内逐渐获得<@ba.vup>6点部署费用,攻击速度+<@ba.vup>95,并无视目标<@ba.vup>25%的防御力","skillType":"MANUAL","durationType":"NONE","duration":10,"spType":"INCREASE_WITH_TIME","spCost":24,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"cost":1,"interval":1.6,"trig_cnt":6,"attack_speed":95,"def_penetrate":0.25},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acpion_3","iconId":"skchr_acpion_3","name":"只余芬芳","level":4,"desc":"立即获得6点费用,对周围的敌人发动8次连续斩击,每次造成相当于攻击力155%的物理伤害,并无视目标50%防御力","descRaw":"立即获得<@ba.vup>6点费用,对周围的敌人发动<@ba.vup>8次连续斩击,每次造成相当于攻击力<@ba.vup>155%的物理伤害,并无视目标<@ba.vup>50%防御力","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":28,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"cost":6,"atk_scale":1.55,"def_penetrate":0.5,"times":8},"bbStr":{},"rangeId":"x-1","rangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]],"prefabId":"skchr_acpion_3","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]]},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无垠之心","desc":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","descRaw":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","bb":{"sp_recovery_per_sec":0.6,"cnt":2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"浪潮之心","desc":"攻击力+10%,击杀敌人时额外获得1点部署费用","descRaw":"攻击力+10%,击杀敌人时额外获得1点部署费用","bb":{"cost":1,"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1904,"atk":470,"def":345,"res":0,"cost":13,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acpion_1","iconId":"skchr_acpion_1","name":"钻心","level":7,"desc":"立即获得6点部署费用,并对攻击范围至多2名敌人造成攻击力200%的物理伤害","descRaw":"立即获得<@ba.vup>6点部署费用,并对攻击范围至多2名敌人造成攻击力<@ba.vup>200%的物理伤害","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":19,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":6,"atk_scale":2,"max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acpion_2","iconId":"skchr_acpion_2","name":"迅瞬","level":7,"desc":"技能持续时间内逐渐获得7点部署费用,攻击速度+110,并无视目标30%的防御力","descRaw":"技能持续时间内逐渐获得<@ba.vup>7点部署费用,攻击速度+<@ba.vup>110,并无视目标<@ba.vup>30%的防御力","skillType":"MANUAL","durationType":"NONE","duration":10,"spType":"INCREASE_WITH_TIME","spCost":23,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":1,"interval":1.4,"trig_cnt":7,"attack_speed":110,"def_penetrate":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acpion_3","iconId":"skchr_acpion_3","name":"只余芬芳","level":7,"desc":"立即获得7点费用,对周围的敌人发动8次连续斩击,每次造成相当于攻击力170%的物理伤害,并无视目标50%防御力","descRaw":"立即获得<@ba.vup>7点费用,对周围的敌人发动<@ba.vup>8次连续斩击,每次造成相当于攻击力<@ba.vup>170%的物理伤害,并无视目标<@ba.vup>50%防御力","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":27,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"cost":7,"atk_scale":1.7,"def_penetrate":0.5,"times":8},"bbStr":{},"rangeId":"x-1","rangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]],"prefabId":"skchr_acpion_3","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]]},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无垠之心","desc":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","descRaw":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","bb":{"sp_recovery_per_sec":0.6,"cnt":2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"浪潮之心","desc":"攻击力+10%,击杀敌人时额外获得1点部署费用","descRaw":"攻击力+10%,击杀敌人时额外获得1点部署费用","bb":{"cost":1,"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acpion","name":"郁金香证章","typeName":"SOL-X","typeIcon":"sol-x","icon":"uniequip_002_acpion","level":1,"attr":{"atk":44,"def":30},"traitOverride":{"desc":"能够阻挡两个敌人,阻挡敌人时攻击力和防御力各+8%","descRaw":"能够阻挡两个敌人,阻挡敌人时攻击力和防御力各+8%","bb":{"atk":0.08,"def":0.08},"bbStr":{},"rangeGrid":null},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1904,"atk":470,"def":345,"res":0,"cost":13,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acpion_1","iconId":"skchr_acpion_1","name":"钻心","level":7,"desc":"立即获得6点部署费用,并对攻击范围至多2名敌人造成攻击力200%的物理伤害","descRaw":"立即获得<@ba.vup>6点部署费用,并对攻击范围至多2名敌人造成攻击力<@ba.vup>200%的物理伤害","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":19,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":6,"atk_scale":2,"max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acpion_2","iconId":"skchr_acpion_2","name":"迅瞬","level":7,"desc":"技能持续时间内逐渐获得7点部署费用,攻击速度+110,并无视目标30%的防御力","descRaw":"技能持续时间内逐渐获得<@ba.vup>7点部署费用,攻击速度+<@ba.vup>110,并无视目标<@ba.vup>30%的防御力","skillType":"MANUAL","durationType":"NONE","duration":10,"spType":"INCREASE_WITH_TIME","spCost":23,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":1,"interval":1.4,"trig_cnt":7,"attack_speed":110,"def_penetrate":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acpion_3","iconId":"skchr_acpion_3","name":"只余芬芳","level":7,"desc":"立即获得7点费用,对周围的敌人发动8次连续斩击,每次造成相当于攻击力170%的物理伤害,并无视目标50%防御力","descRaw":"立即获得<@ba.vup>7点费用,对周围的敌人发动<@ba.vup>8次连续斩击,每次造成相当于攻击力<@ba.vup>170%的物理伤害,并无视目标<@ba.vup>50%防御力","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":27,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"cost":7,"atk_scale":1.7,"def_penetrate":0.5,"times":8},"bbStr":{},"rangeId":"x-1","rangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]],"prefabId":"skchr_acpion_3","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]]},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无垠之心","desc":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","descRaw":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","bb":{"sp_recovery_per_sec":0.6,"cnt":2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"浪潮之心","desc":"攻击力+10%,击杀敌人时额外获得1点部署费用","descRaw":"攻击力+10%,击杀敌人时额外获得1点部署费用","bb":{"cost":1,"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acpion","name":"郁金香证章","typeName":"SOL-X","typeIcon":"sol-x","icon":"uniequip_002_acpion","level":3,"attr":{"atk":65,"def":48},"traitOverride":{"desc":"能够阻挡两个敌人,阻挡敌人时攻击力和防御力各+8%","descRaw":"能够阻挡两个敌人,阻挡敌人时攻击力和防御力各+8%","bb":{"atk":0.08,"def":0.08},"bbStr":{},"rangeGrid":null},"talentChanges":[{"talentIndex":0,"name":"无垠之心","desc":"部署后第2次开启技能之前,技力自然回复速度+1/秒","descRaw":"部署后第2次开启技能之前,技力自然回复速度+1/秒","bb":{"sp_recovery_per_sec":1,"cnt":2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_609_acguad":{"charId":"char_609_acguad","name":"Sharp","appellation":"Sharp","rarity":6,"profession":"WARRIOR","subProfessionId":"fearless","subProfessionName":"无畏者","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_609_acguad","avatarGolden":"char_609_acguad","portrait":"char_609_acguad_1","portraitGolden":"char_609_acguad_1","spine":"char_609_acguad","subProfIcon":"sub_fearless_icon"},"moduleNames":{"uniequip_001_acguad":{"name":"Sharp证章","typeName":"ORIGINAL"},"uniequip_002_acguad":{"name":"Sharp证章","typeName":"DRE-X"}},"standsIn":["chess_char_3_18_a","chess_char_4_22_a","chess_char_4_23_a","chess_char_5_06_a","chess_char_5_13_a","chess_char_6_06_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":2638,"atk":792,"def":241,"res":0,"cost":20,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acguad_1","iconId":"skchr_acguad_1","name":"快刀","level":4,"desc":"攻击力+25%,每次攻击有20%概率变成二连击","descRaw":"攻击力<@ba.vup>+25%,每次攻击有20%概率变成二连击","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack@prob1":0.2,"attack@prob2":0.8,"atk":0.25},"bbStr":{},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"prefabId":"skchr_acguad_1","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[0,0],[0,1]]},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acguad_2","iconId":"skchr_acguad_2","name":"亮剑","level":4,"desc":"防御力降至0,生命上限+30%,每次攻击的攻击力提升至160%","descRaw":"防御力<@ba.vdown>降至0,生命上限<@ba.vup>+30%,每次攻击的攻击力提升至<@ba.vup>160%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"attack@atk_scale":1.6,"max_hp":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acguad_3","iconId":"skchr_acguad_3","name":"力战不竭","level":4,"desc":"攻击力+30%;每次攻击时获得可叠加的攻击力+16%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","descRaw":"攻击力<@ba.vup>+30%;每次攻击时获得可叠加的攻击力<@ba.vup>+16%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","skillType":"MANUAL","durationType":"NONE","duration":16,"spType":"INCREASE_WITH_TIME","spCost":48,"initSp":30,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3,"atk_each_stack":0.16,"max_atk_stack_cnt":8},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"隐匿刀刃","desc":"攻击力+15%,获得30%的物理闪避","descRaw":"攻击力+15%,获得30%的物理闪避","bb":{"atk":0.15,"prob":0.3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"寸步不退","desc":"在战场停留30秒后,自身攻击速度+10","descRaw":"在战场停留30秒后,自身攻击速度+10","bb":{"interval":30,"attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":3191,"atk":900,"def":271,"res":0,"cost":20,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acguad_1","iconId":"skchr_acguad_1","name":"快刀","level":7,"desc":"攻击力+40%,每次攻击有20%概率变成二连击","descRaw":"攻击力<@ba.vup>+40%,每次攻击有20%概率变成二连击","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":36,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"attack@prob1":0.2,"attack@prob2":0.8,"atk":0.4},"bbStr":{},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"prefabId":"skchr_acguad_1","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[0,0],[0,1]]},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acguad_2","iconId":"skchr_acguad_2","name":"亮剑","level":7,"desc":"防御力降至0,生命上限+40%,每次攻击的攻击力提升至180%","descRaw":"防御力<@ba.vdown>降至0,生命上限<@ba.vup>+40%,每次攻击的攻击力提升至<@ba.vup>180%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":34,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"attack@atk_scale":1.8,"max_hp":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acguad_3","iconId":"skchr_acguad_3","name":"力战不竭","level":7,"desc":"攻击力+45%;每次攻击时获得可叠加的攻击力+17%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","descRaw":"攻击力<@ba.vup>+45%;每次攻击时获得可叠加的攻击力<@ba.vup>+17%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","skillType":"MANUAL","durationType":"NONE","duration":17,"spType":"INCREASE_WITH_TIME","spCost":46,"initSp":30,"maxChargeTime":1,"increment":1,"bb":{"atk":0.45,"atk_each_stack":0.17,"max_atk_stack_cnt":8},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"隐匿刀刃","desc":"攻击力+15%,获得30%的物理闪避","descRaw":"攻击力+15%,获得30%的物理闪避","bb":{"atk":0.15,"prob":0.3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"寸步不退","desc":"在战场停留30秒后,自身攻击速度+10","descRaw":"在战场停留30秒后,自身攻击速度+10","bb":{"interval":30,"attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acguad","name":"Sharp证章","typeName":"DRE-X","typeIcon":"dre-x","icon":"uniequip_002_acguad","level":1,"attr":{"maxHp":220,"atk":72},"traitOverride":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{"atk_scale":1.15},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击被阻挡的敌人时攻击力提升至115%","moduleDescRaw":"攻击被阻挡的敌人时攻击力提升至<@ba.vup>115%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":3191,"atk":900,"def":271,"res":0,"cost":20,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acguad_1","iconId":"skchr_acguad_1","name":"快刀","level":7,"desc":"攻击力+40%,每次攻击有20%概率变成二连击","descRaw":"攻击力<@ba.vup>+40%,每次攻击有20%概率变成二连击","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":36,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"attack@prob1":0.2,"attack@prob2":0.8,"atk":0.4},"bbStr":{},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"prefabId":"skchr_acguad_1","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[0,0],[0,1]]},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acguad_2","iconId":"skchr_acguad_2","name":"亮剑","level":7,"desc":"防御力降至0,生命上限+40%,每次攻击的攻击力提升至180%","descRaw":"防御力<@ba.vdown>降至0,生命上限<@ba.vup>+40%,每次攻击的攻击力提升至<@ba.vup>180%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":34,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"attack@atk_scale":1.8,"max_hp":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acguad_3","iconId":"skchr_acguad_3","name":"力战不竭","level":7,"desc":"攻击力+45%;每次攻击时获得可叠加的攻击力+17%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","descRaw":"攻击力<@ba.vup>+45%;每次攻击时获得可叠加的攻击力<@ba.vup>+17%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","skillType":"MANUAL","durationType":"NONE","duration":17,"spType":"INCREASE_WITH_TIME","spCost":46,"initSp":30,"maxChargeTime":1,"increment":1,"bb":{"atk":0.45,"atk_each_stack":0.17,"max_atk_stack_cnt":8},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"隐匿刀刃","desc":"攻击力+15%,获得30%的物理闪避","descRaw":"攻击力+15%,获得30%的物理闪避","bb":{"atk":0.15,"prob":0.3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"寸步不退","desc":"在战场停留30秒后,自身攻击速度+10","descRaw":"在战场停留30秒后,自身攻击速度+10","bb":{"interval":30,"attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acguad","name":"Sharp证章","typeName":"DRE-X","typeIcon":"dre-x","icon":"uniequip_002_acguad","level":3,"attr":{"maxHp":340,"atk":95},"traitOverride":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{"atk_scale":1.15},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击被阻挡的敌人时攻击力提升至115%","moduleDescRaw":"攻击被阻挡的敌人时攻击力提升至<@ba.vup>115%"},"talentChanges":[{"talentIndex":0,"name":"隐匿刀刃","desc":"攻击力+20%,获得35%的物理闪避","descRaw":"攻击力+20%,获得35%的物理闪避","bb":{"atk":0.2,"prob":0.35},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_610_acfend":{"charId":"char_610_acfend","name":"Mechanist","appellation":"Mechanist","rarity":6,"profession":"TANK","subProfessionId":"protector","subProfessionName":"铁卫","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_610_acfend","avatarGolden":"char_610_acfend","portrait":"char_610_acfend_1","portraitGolden":"char_610_acfend_1","spine":"char_610_acfend","subProfIcon":"sub_protector_icon"},"moduleNames":{"uniequip_001_acfend":{"name":"Mechanist证章","typeName":"ORIGINAL"},"uniequip_002_acfend":{"name":"Mechanist证章","typeName":"PRO-X"}},"standsIn":["chess_char_4_17_a","chess_char_5_08_a","chess_char_6_03_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":2604,"atk":283,"def":474,"res":0,"cost":22,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acfend_1","iconId":"skchr_acfend_1","name":"结构稳定","level":4,"desc":"最大生命值+26%,防御力+26%","descRaw":"最大生命值<@ba.vup>+26%,防御力<@ba.vup>+26%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":60,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"max_hp":0.26,"def":0.26},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_1","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acfend_2","iconId":"skchr_acfend_2","name":"不变性原理","level":4,"desc":"防御力+50%,第二天赋的效果提升至2倍","descRaw":"防御力<@ba.vup>+50%,第二天赋的效果提升至<@ba.vup>2倍","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":42,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"def":0.5,"talent_mult":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_2","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acfend_3","iconId":"skchr_acfend_3","name":"应力倒置","level":4,"desc":"技能持续时间内防御力+50%,阻挡数+1,每秒对自身阻挡的敌人造成相当于攻击力40%的法术伤害","descRaw":"技能持续时间内防御力<@ba.vup>+50%,阻挡数<@ba.vup>+1,每秒对自身阻挡的敌人造成相当于攻击力<@ba.vup>40%的法术伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"atk_scale":0.4,"def":0.5,"block_cnt":1},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_3","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"精研材料","desc":"防御力+10%,生命值低于50%时防御力额外+10%","descRaw":"防御力+10%,生命值低于50%时防御力额外+10%","bb":{"acfend_t_1[extra].def":0.1,"def":0.1,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"反馈装甲","desc":"自身阻挡的敌人攻击速度-7","descRaw":"自身阻挡的敌人攻击速度-7","bb":{"attack_speed":-7},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":3211,"atk":322,"def":591,"res":0,"cost":22,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acfend_1","iconId":"skchr_acfend_1","name":"结构稳定","level":7,"desc":"最大生命值+40%,防御力+40%","descRaw":"最大生命值<@ba.vup>+40%,防御力<@ba.vup>+40%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":50,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"max_hp":0.4,"def":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_1","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acfend_2","iconId":"skchr_acfend_2","name":"不变性原理","level":7,"desc":"防御力+65%,第二天赋的效果提升至3倍","descRaw":"防御力<@ba.vup>+65%,第二天赋的效果提升至<@ba.vup>3倍","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"def":0.65,"talent_mult":3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_2","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acfend_3","iconId":"skchr_acfend_3","name":"应力倒置","level":7,"desc":"技能持续时间内防御力+70%,阻挡数+1,每秒对自身阻挡的敌人造成相当于攻击力55%的法术伤害","descRaw":"技能持续时间内防御力<@ba.vup>+70%,阻挡数<@ba.vup>+1,每秒对自身阻挡的敌人造成相当于攻击力<@ba.vup>55%的法术伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":64,"initSp":25,"maxChargeTime":1,"increment":1,"bb":{"atk_scale":0.55,"def":0.7,"block_cnt":1},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_3","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"精研材料","desc":"防御力+10%,生命值低于50%时防御力额外+10%","descRaw":"防御力+10%,生命值低于50%时防御力额外+10%","bb":{"acfend_t_1[extra].def":0.1,"def":0.1,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"反馈装甲","desc":"自身阻挡的敌人攻击速度-7","descRaw":"自身阻挡的敌人攻击速度-7","bb":{"attack_speed":-7},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acfend","name":"Mechanist证章","typeName":"PRO-X","typeIcon":"pro-x","icon":"uniequip_002_acfend","level":1,"attr":{"maxHp":160,"def":60},"traitOverride":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{"def":0.2},"bbStr":{},"rangeGrid":null,"moduleDesc":"阻挡敌人时防御力+20%","moduleDescRaw":"阻挡敌人时防御力<@ba.kw>+20%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":3211,"atk":322,"def":591,"res":0,"cost":22,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acfend_1","iconId":"skchr_acfend_1","name":"结构稳定","level":7,"desc":"最大生命值+40%,防御力+40%","descRaw":"最大生命值<@ba.vup>+40%,防御力<@ba.vup>+40%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":50,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"max_hp":0.4,"def":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_1","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acfend_2","iconId":"skchr_acfend_2","name":"不变性原理","level":7,"desc":"防御力+65%,第二天赋的效果提升至3倍","descRaw":"防御力<@ba.vup>+65%,第二天赋的效果提升至<@ba.vup>3倍","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"def":0.65,"talent_mult":3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_2","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acfend_3","iconId":"skchr_acfend_3","name":"应力倒置","level":7,"desc":"技能持续时间内防御力+70%,阻挡数+1,每秒对自身阻挡的敌人造成相当于攻击力55%的法术伤害","descRaw":"技能持续时间内防御力<@ba.vup>+70%,阻挡数<@ba.vup>+1,每秒对自身阻挡的敌人造成相当于攻击力<@ba.vup>55%的法术伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":64,"initSp":25,"maxChargeTime":1,"increment":1,"bb":{"atk_scale":0.55,"def":0.7,"block_cnt":1},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_3","trigger":{"rule":"TAKE_DAMAGE","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"精研材料","desc":"防御力+10%,生命值低于50%时防御力额外+10%","descRaw":"防御力+10%,生命值低于50%时防御力额外+10%","bb":{"acfend_t_1[extra].def":0.1,"def":0.1,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"反馈装甲","desc":"自身阻挡的敌人攻击速度-7","descRaw":"自身阻挡的敌人攻击速度-7","bb":{"attack_speed":-7},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acfend","name":"Mechanist证章","typeName":"PRO-X","typeIcon":"pro-x","icon":"uniequip_002_acfend","level":3,"attr":{"maxHp":220,"def":85},"traitOverride":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{"def":0.2},"bbStr":{},"rangeGrid":null,"moduleDesc":"阻挡敌人时防御力+20%","moduleDescRaw":"阻挡敌人时防御力<@ba.kw>+20%"},"talentChanges":[{"talentIndex":0,"name":"精研材料","desc":"防御力+10%,生命值低于50%时防御力额外+20%","descRaw":"防御力+10%,生命值低于50%时防御力额外+20%","bb":{"acfend_t_1[extra].def":0.2,"def":0.1,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_611_acnipe":{"charId":"char_611_acnipe","name":"Stormeye","appellation":"Stormeye","rarity":6,"profession":"SNIPER","subProfessionId":"fastshot","subProfessionName":"速射手","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_611_acnipe","avatarGolden":"char_611_acnipe","portrait":"char_611_acnipe_1","portraitGolden":"char_611_acnipe_1","spine":"char_611_acnipe","subProfIcon":"sub_fastshot_icon"},"moduleNames":{"uniequip_001_acnipe":{"name":"Stormeye证章","typeName":"ORIGINAL"},"uniequip_002_acnipe":{"name":"Stormeye证章","typeName":"MAR-X"}},"standsIn":["chess_char_3_21_a","chess_char_4_02_a","chess_char_5_18_a","chess_char_5_22_a","chess_char_6_01_a","chess_char_6_05_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1272,"atk":413,"def":136,"res":0,"cost":13,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acnipe_1","iconId":"skchr_acnipe_1","name":"破空","level":4,"desc":"攻击力+15%,攻击速度+30,无视攻击目标100防御力","descRaw":"攻击力<@ba.vup>+15%,攻击速度<@ba.vup>+30,无视攻击目标100防御力","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":44,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"atk":0.15,"attack_speed":30,"def_penetrate_fixed":100},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acnipe_2","iconId":"skchr_acnipe_2","name":"心手合一","level":4,"desc":"攻击力+5%,每次攻击额外攻击1个目标\n持续时间无限","descRaw":"攻击力<@ba.vup>+5%,每次攻击额外攻击1个目标\n<@ba.rem>持续时间无限","skillType":"AUTO","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":60,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.05,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acnipe_3","iconId":"skchr_acnipe_3","name":"旋臂","level":4,"desc":"可以同时攻击3个目标,第一天赋的触发概率提高至30%,攻击变为二连击;攻击目标生命值高于90%时额外造成1次伤害","descRaw":"可以同时攻击3个目标,第一天赋的触发概率提高至<@ba.vup>30%,攻击变为二连击;攻击目标生命值高于<@ba.vup>90%时额外造成1次伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":57,"initSp":13,"maxChargeTime":1,"increment":1,"bb":{"attack@max_target":3,"attack@times":2,"talent@prob":0.3,"attack@atk_scale_extra":1,"attack@hp_ratio":0.9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"风坠","desc":"攻击时有25%的概率攻击力提升至180%","descRaw":"攻击时有25%的概率攻击力提升至180%","bb":{"atk_scale":1.8,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"风雨欲来","desc":"自身未进行攻击时,技力回复速度+0.2/秒","descRaw":"自身未进行攻击时,技力回复速度+0.2/秒","bb":{"delay":2,"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1483,"atk":477,"def":152,"res":0,"cost":13,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acnipe_1","iconId":"skchr_acnipe_1","name":"破空","level":7,"desc":"攻击力+15%,攻击速度+50,无视攻击目标100防御力","descRaw":"攻击力<@ba.vup>+15%,攻击速度<@ba.vup>+50,无视攻击目标100防御力","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"atk":0.15,"attack_speed":50,"def_penetrate_fixed":100},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acnipe_2","iconId":"skchr_acnipe_2","name":"心手合一","level":7,"desc":"攻击力+5%,每次攻击额外攻击1个目标\n持续时间无限","descRaw":"攻击力<@ba.vup>+5%,每次攻击额外攻击1个目标\n<@ba.rem>持续时间无限","skillType":"AUTO","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":56,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.05,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acnipe_3","iconId":"skchr_acnipe_3","name":"旋臂","level":7,"desc":"可以同时攻击3个目标,第一天赋的触发概率提高至35%,攻击变为二连击;攻击目标生命值高于90%时额外造成1次伤害","descRaw":"可以同时攻击3个目标,第一天赋的触发概率提高至<@ba.vup>35%,攻击变为二连击;攻击目标生命值高于<@ba.vup>90%时额外造成1次伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":54,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"attack@max_target":3,"attack@times":2,"talent@prob":0.35,"attack@atk_scale_extra":1,"attack@hp_ratio":0.9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"风坠","desc":"攻击时有25%的概率攻击力提升至180%","descRaw":"攻击时有25%的概率攻击力提升至180%","bb":{"atk_scale":1.8,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"风雨欲来","desc":"自身未进行攻击时,技力回复速度+0.2/秒","descRaw":"自身未进行攻击时,技力回复速度+0.2/秒","bb":{"delay":2,"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acnipe","name":"Stormeye证章","typeName":"MAR-X","typeIcon":"mar-x","icon":"uniequip_002_acnipe","level":1,"attr":{"maxHp":104,"atk":38},"traitOverride":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{"atk_scale":1.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击空中单位时攻击力提升至110%","moduleDescRaw":"攻击空中单位时攻击力提升至<@ba.kw>110%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1483,"atk":477,"def":152,"res":0,"cost":13,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acnipe_1","iconId":"skchr_acnipe_1","name":"破空","level":7,"desc":"攻击力+15%,攻击速度+50,无视攻击目标100防御力","descRaw":"攻击力<@ba.vup>+15%,攻击速度<@ba.vup>+50,无视攻击目标100防御力","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"atk":0.15,"attack_speed":50,"def_penetrate_fixed":100},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acnipe_2","iconId":"skchr_acnipe_2","name":"心手合一","level":7,"desc":"攻击力+5%,每次攻击额外攻击1个目标\n持续时间无限","descRaw":"攻击力<@ba.vup>+5%,每次攻击额外攻击1个目标\n<@ba.rem>持续时间无限","skillType":"AUTO","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":56,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.05,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acnipe_3","iconId":"skchr_acnipe_3","name":"旋臂","level":7,"desc":"可以同时攻击3个目标,第一天赋的触发概率提高至35%,攻击变为二连击;攻击目标生命值高于90%时额外造成1次伤害","descRaw":"可以同时攻击3个目标,第一天赋的触发概率提高至<@ba.vup>35%,攻击变为二连击;攻击目标生命值高于<@ba.vup>90%时额外造成1次伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":54,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"attack@max_target":3,"attack@times":2,"talent@prob":0.35,"attack@atk_scale_extra":1,"attack@hp_ratio":0.9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"风坠","desc":"攻击时有25%的概率攻击力提升至180%","descRaw":"攻击时有25%的概率攻击力提升至180%","bb":{"atk_scale":1.8,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"风雨欲来","desc":"自身未进行攻击时,技力回复速度+0.2/秒","descRaw":"自身未进行攻击时,技力回复速度+0.2/秒","bb":{"delay":2,"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acnipe","name":"Stormeye证章","typeName":"MAR-X","typeIcon":"mar-x","icon":"uniequip_002_acnipe","level":3,"attr":{"maxHp":160,"atk":50},"traitOverride":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{"atk_scale":1.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击空中单位时攻击力提升至110%","moduleDescRaw":"攻击空中单位时攻击力提升至<@ba.kw>110%"},"talentChanges":[{"talentIndex":0,"name":"风坠","desc":"攻击时有25%的概率攻击力提升至190%","descRaw":"攻击时有25%的概率攻击力提升至190%","bb":{"atk_scale":1.9,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_612_accast":{"charId":"char_612_accast","name":"Pith","appellation":"Pith","rarity":6,"profession":"CASTER","subProfessionId":"splashcaster","subProfessionName":"扩散术师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_612_accast","avatarGolden":"char_612_accast","portrait":"char_612_accast_1","portraitGolden":"char_612_accast_1","spine":"char_612_accast","subProfIcon":"sub_splashcaster_icon"},"moduleNames":{"uniequip_001_accast":{"name":"Pith证章","typeName":"ORIGINAL"},"uniequip_002_accast":{"name":"Pith证章","typeName":"SPC-X"}},"standsIn":["chess_char_5_03_a","chess_char_6_08_a","chess_char_6_12_a","chess_char_6_18_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1372,"atk":756,"def":94,"res":20,"cost":33,"blockCnt":1,"bat":2.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-6","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_accast_1","iconId":"skchr_accast_1","name":"“书我所书”","level":4,"desc":"自身攻击速度+30,溅射范围扩大","descRaw":"自身攻击速度<@ba.vup>+30,溅射范围<@ba.vup>扩大","skillType":"AUTO","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":44,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30,"attack@projectile_range":1.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_accast_2","iconId":"skchr_accast_2","name":"“为我所为”","level":4,"desc":"自身攻击速度+35,所有【术师】干员攻击力+30%","descRaw":"自身攻击速度<@ba.vup>+35,所有【术师】干员攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":53,"initSp":13,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3,"attack_speed":35},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_accast_3","iconId":"skchr_accast_3","name":"“驭我所驭”","level":4,"desc":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力100%的法术伤害,之后攻击目标数+1,攻击速度+40,溅射范围略微扩大","descRaw":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力<@ba.vup>100%的法术伤害,之后攻击目标数<@ba.vup>+1,攻击速度<@ba.vup>+40,溅射范围<@ba.vup>略微扩大","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":60,"initSp":31,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":40,"atk_scale_aoe":1,"attack@max_target":2,"attack@projectile_range":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"“见我所见”","desc":"攻击无视目标12法术抗性","descRaw":"攻击无视目标12法术抗性","bb":{"magic_resist_penetrate_fixed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"“授我所授”","desc":"自身及相邻四格的【术师】干员攻击力+10%","descRaw":"自身及相邻四格的【术师】干员攻击力+10%","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1629,"atk":851,"def":106,"res":20,"cost":33,"blockCnt":1,"bat":2.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-6","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_accast_1","iconId":"skchr_accast_1","name":"“书我所书”","level":7,"desc":"自身攻击速度+40,溅射范围扩大","descRaw":"自身攻击速度<@ba.vup>+40,溅射范围<@ba.vup>扩大","skillType":"AUTO","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":40,"attack@projectile_range":1.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_accast_2","iconId":"skchr_accast_2","name":"“为我所为”","level":7,"desc":"自身攻击速度+50,所有【术师】干员攻击力+35%","descRaw":"自身攻击速度<@ba.vup>+50,所有【术师】干员攻击力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":50,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"atk":0.35,"attack_speed":50},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_accast_3","iconId":"skchr_accast_3","name":"“驭我所驭”","level":7,"desc":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力140%的法术伤害,之后攻击目标数+1,攻击速度+55,溅射范围略微扩大","descRaw":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力<@ba.vup>140%的法术伤害,之后攻击目标数<@ba.vup>+1,攻击速度<@ba.vup>+55,溅射范围<@ba.vup>略微扩大","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":55,"initSp":33,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":55,"atk_scale_aoe":1.4,"attack@max_target":2,"attack@projectile_range":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"“见我所见”","desc":"攻击无视目标12法术抗性","descRaw":"攻击无视目标12法术抗性","bb":{"magic_resist_penetrate_fixed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"“授我所授”","desc":"自身及相邻四格的【术师】干员攻击力+10%","descRaw":"自身及相邻四格的【术师】干员攻击力+10%","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_accast","name":"Pith证章","typeName":"SPC-X","typeIcon":"spc-x","icon":"uniequip_002_accast","level":1,"attr":{"maxHp":120,"atk":55},"traitOverride":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击范围扩大","moduleDescRaw":"攻击范围<@ba.kw>扩大"},"talentChanges":[{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{},"bbStr":{},"rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2]],"tokenKey":null,"hidden":true}]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1629,"atk":851,"def":106,"res":20,"cost":33,"blockCnt":1,"bat":2.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-6","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_accast_1","iconId":"skchr_accast_1","name":"“书我所书”","level":7,"desc":"自身攻击速度+40,溅射范围扩大","descRaw":"自身攻击速度<@ba.vup>+40,溅射范围<@ba.vup>扩大","skillType":"AUTO","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":40,"attack@projectile_range":1.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_accast_2","iconId":"skchr_accast_2","name":"“为我所为”","level":7,"desc":"自身攻击速度+50,所有【术师】干员攻击力+35%","descRaw":"自身攻击速度<@ba.vup>+50,所有【术师】干员攻击力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":50,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"atk":0.35,"attack_speed":50},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_accast_3","iconId":"skchr_accast_3","name":"“驭我所驭”","level":7,"desc":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力140%的法术伤害,之后攻击目标数+1,攻击速度+55,溅射范围略微扩大","descRaw":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力<@ba.vup>140%的法术伤害,之后攻击目标数<@ba.vup>+1,攻击速度<@ba.vup>+55,溅射范围<@ba.vup>略微扩大","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":55,"initSp":33,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":55,"atk_scale_aoe":1.4,"attack@max_target":2,"attack@projectile_range":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"“见我所见”","desc":"攻击无视目标12法术抗性","descRaw":"攻击无视目标12法术抗性","bb":{"magic_resist_penetrate_fixed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"“授我所授”","desc":"自身及相邻四格的【术师】干员攻击力+10%","descRaw":"自身及相邻四格的【术师】干员攻击力+10%","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_accast","name":"Pith证章","typeName":"SPC-X","typeIcon":"spc-x","icon":"uniequip_002_accast","level":3,"attr":{"maxHp":190,"atk":75},"traitOverride":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击范围扩大","moduleDescRaw":"攻击范围<@ba.kw>扩大"},"talentChanges":[{"talentIndex":1,"name":"“授我所授”","desc":"自身及相邻四格的【术师】干员攻击力+20%","descRaw":"自身及相邻四格的【术师】干员攻击力+20%","bb":{"atk":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false},{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{},"bbStr":{},"rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2]],"tokenKey":null,"hidden":true}]}]}}},"char_613_acmedc":{"charId":"char_613_acmedc","name":"Touch","appellation":"Touch","rarity":6,"profession":"MEDIC","subProfessionId":"physician","subProfessionName":"医师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_613_acmedc","avatarGolden":"char_613_acmedc","portrait":"char_613_acmedc_1","portraitGolden":"char_613_acmedc_1","spine":"char_613_acmedc","subProfIcon":"sub_physician_icon"},"moduleNames":{"uniequip_001_acmedc":{"name":"Touch证章","typeName":"ORIGINAL"},"uniequip_002_acmedc":{"name":"Touch证章","typeName":"PHY-X"}},"standsIn":["chess_char_5_11_a","chess_char_6_09_a","chess_char_6_20_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1224,"atk":420,"def":116,"res":0,"cost":19,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acmedc_1","iconId":"skchr_acmedc_1","name":"慨赠","level":4,"desc":"攻击力+40%,每次治疗有40%概率额外治疗一次","descRaw":"攻击力<@ba.vup>+40%,每次治疗有<@ba.vup>40%概率额外治疗一次","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":46,"initSp":14,"maxChargeTime":1,"increment":1,"bb":{"atk":0.4,"attack@prob":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acmedc_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acmedc_2","iconId":"skchr_acmedc_2","name":"宛如天启","level":4,"desc":"自身攻击距离+1,每次治疗2个目标,所有医疗干员攻击力+21%","descRaw":"自身攻击距离<@ba.vup>+1,每次治疗<@ba.vup>2个目标,所有医疗干员攻击力<@ba.vup>+21%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"attack@atk":0.21,"mode":2,"attack@max_target":2},"bbStr":{},"rangeId":"3-10","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[0,0],[0,1],[0,2],[0,3],[0,4],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4]],"prefabId":"skchr_acmedc_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acmedc_3","iconId":"skchr_acmedc_3","name":"恳切福音","level":4,"desc":"自身攻击距离+2,攻击力+20%,每次治疗2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的30%。对生命值不高于一半的友方单位治疗量提高为原来的135%","descRaw":"自身攻击距离<@ba.vup>+2,攻击力<@ba.vup>+20%,每次治疗<@ba.vup>2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的<@ba.vup>30%。对生命值不高于一半的友方单位治疗量提高为原来的<@ba.vup>135%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":40,"maxChargeTime":1,"increment":1,"bb":{"atk":0.2,"mode":3,"attack@max_target":2,"heal_scale":1.35,"hp_ratio":0.5,"attack@addition_heal_scale":0.3},"bbStr":{},"rangeId":"5-2","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[1,5],[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4],[-1,5]],"prefabId":"skchr_acmedc_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攫升","desc":"治疗目标时使其获得3点技力","descRaw":"治疗目标时使其获得3点技力","bb":{"sp":3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"超脱","desc":"攻击范围内的友方干员被击倒时获得5点技力","descRaw":"攻击范围内的友方干员被击倒时获得5点技力","bb":{"sp":5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1314,"atk":490,"def":135,"res":0,"cost":19,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acmedc_1","iconId":"skchr_acmedc_1","name":"慨赠","level":7,"desc":"攻击力+50%,每次治疗有50%概率额外治疗一次","descRaw":"攻击力<@ba.vup>+50%,每次治疗有<@ba.vup>50%概率额外治疗一次","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":43,"initSp":17,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5,"attack@prob":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acmedc_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acmedc_2","iconId":"skchr_acmedc_2","name":"宛如天启","level":7,"desc":"自身攻击距离+1,每次治疗2个目标,所有医疗干员攻击力+30%","descRaw":"自身攻击距离<@ba.vup>+1,每次治疗<@ba.vup>2个目标,所有医疗干员攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":34,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"attack@atk":0.3,"mode":2,"attack@max_target":2},"bbStr":{},"rangeId":"3-10","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[0,0],[0,1],[0,2],[0,3],[0,4],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4]],"prefabId":"skchr_acmedc_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acmedc_3","iconId":"skchr_acmedc_3","name":"恳切福音","level":7,"desc":"自身攻击距离+2,攻击力+30%,每次治疗2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的30%。对生命值不高于一半的友方单位治疗量提高为原来的140%","descRaw":"自身攻击距离<@ba.vup>+2,攻击力<@ba.vup>+30%,每次治疗<@ba.vup>2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的<@ba.vup>30%。对生命值不高于一半的友方单位治疗量提高为原来的<@ba.vup>140%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":45,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3,"mode":3,"attack@max_target":2,"heal_scale":1.4,"hp_ratio":0.5,"attack@addition_heal_scale":0.3},"bbStr":{},"rangeId":"5-2","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[1,5],[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4],[-1,5]],"prefabId":"skchr_acmedc_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攫升","desc":"治疗目标时使其获得3点技力","descRaw":"治疗目标时使其获得3点技力","bb":{"sp":3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"超脱","desc":"攻击范围内的友方干员被击倒时获得5点技力","descRaw":"攻击范围内的友方干员被击倒时获得5点技力","bb":{"sp":5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acmedc","name":"Touch证章","typeName":"PHY-X","typeIcon":"phy-x","icon":"uniequip_002_acmedc","level":1,"attr":{"maxHp":100,"atk":40},"traitOverride":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{"heal_scale":1.15,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"moduleDesc":"治疗生命值低于50%的友方单位时治疗量提升15%","moduleDescRaw":"治疗生命值低于50%的友方单位时治疗量提升<@ba.kw>15%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1314,"atk":490,"def":135,"res":0,"cost":19,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acmedc_1","iconId":"skchr_acmedc_1","name":"慨赠","level":7,"desc":"攻击力+50%,每次治疗有50%概率额外治疗一次","descRaw":"攻击力<@ba.vup>+50%,每次治疗有<@ba.vup>50%概率额外治疗一次","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":43,"initSp":17,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5,"attack@prob":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acmedc_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acmedc_2","iconId":"skchr_acmedc_2","name":"宛如天启","level":7,"desc":"自身攻击距离+1,每次治疗2个目标,所有医疗干员攻击力+30%","descRaw":"自身攻击距离<@ba.vup>+1,每次治疗<@ba.vup>2个目标,所有医疗干员攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":34,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"attack@atk":0.3,"mode":2,"attack@max_target":2},"bbStr":{},"rangeId":"3-10","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[0,0],[0,1],[0,2],[0,3],[0,4],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4]],"prefabId":"skchr_acmedc_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acmedc_3","iconId":"skchr_acmedc_3","name":"恳切福音","level":7,"desc":"自身攻击距离+2,攻击力+30%,每次治疗2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的30%。对生命值不高于一半的友方单位治疗量提高为原来的140%","descRaw":"自身攻击距离<@ba.vup>+2,攻击力<@ba.vup>+30%,每次治疗<@ba.vup>2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的<@ba.vup>30%。对生命值不高于一半的友方单位治疗量提高为原来的<@ba.vup>140%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":45,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3,"mode":3,"attack@max_target":2,"heal_scale":1.4,"hp_ratio":0.5,"attack@addition_heal_scale":0.3},"bbStr":{},"rangeId":"5-2","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[1,5],[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4],[-1,5]],"prefabId":"skchr_acmedc_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攫升","desc":"治疗目标时使其获得3点技力","descRaw":"治疗目标时使其获得3点技力","bb":{"sp":3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"超脱","desc":"攻击范围内的友方干员被击倒时获得5点技力","descRaw":"攻击范围内的友方干员被击倒时获得5点技力","bb":{"sp":5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acmedc","name":"Touch证章","typeName":"PHY-X","typeIcon":"phy-x","icon":"uniequip_002_acmedc","level":3,"attr":{"maxHp":150,"atk":50},"traitOverride":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{"heal_scale":1.15,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"moduleDesc":"治疗生命值低于50%的友方单位时治疗量提升15%","moduleDescRaw":"治疗生命值低于50%的友方单位时治疗量提升<@ba.kw>15%"},"talentChanges":[{"talentIndex":1,"name":"超脱","desc":"攻击范围内的友方干员被击倒时获得8点技力","descRaw":"攻击范围内的友方干员被击倒时获得8点技力","bb":{"sp":8},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_614_acsupo":{"charId":"char_614_acsupo","name":"Raidian","appellation":"Raidian","rarity":6,"profession":"SUPPORT","subProfessionId":"slower","subProfessionName":"凝滞师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_614_acsupo","avatarGolden":"char_614_acsupo","portrait":"char_614_acsupo_1","portraitGolden":"char_614_acsupo_1","spine":"char_614_acsupo","subProfIcon":"sub_slower_icon"},"moduleNames":{"uniequip_001_acsupo":{"name":"Raidian证章","typeName":"ORIGINAL"},"uniequip_002_acsupo":{"name":"Raidian证章","typeName":"DEC-X"}},"standsIn":["chess_char_4_13_a","chess_char_5_12_a","chess_char_5_20_a","chess_char_6_04_a","chess_char_6_15_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1160,"atk":415,"def":105,"res":25,"cost":16,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acsupo_1","iconId":"skchr_acsupo_1","name":"双声","level":4,"desc":"攻击力+25%,额外攻击一个目标","descRaw":"攻击力<@ba.vup>+25%,额外攻击一个目标","skillType":"MANUAL","durationType":"NONE","duration":24,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.25,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acsupo_2","iconId":"skchr_acsupo_2","name":"三形","level":4,"desc":"攻击间隔略微缩短,同时攻击三个目标,攻击造成的停顿时间延长至1.1秒","descRaw":"攻击间隔<@ba.vup>略微缩短,同时攻击三个目标,攻击造成的<$ba.sluggish>停顿时间延长至<@ba.vup>1.1秒","skillType":"MANUAL","durationType":"NONE","duration":14,"spType":"INCREASE_WITH_TIME","spCost":41,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"base_attack_time":-0.1,"attack@max_target":3,"attack@sluggish":1.1},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acsupo_3","iconId":"skchr_acsupo_3","name":"信号跃动","level":4,"desc":"攻击范围扩大,攻击力+40%,第一天赋的效果提升至2.0倍,攻击范围内所有敌人受到10%的脆弱效果和10%的虚弱效果","descRaw":"攻击范围扩大,攻击力<@ba.vup>+40%,第一天赋的效果提升至<@ba.vup>2.0倍,攻击范围内所有敌人受到<@ba.vup>10%的<$ba.fragile>脆弱效果和<@ba.vup>10%的<$ba.weaken>虚弱效果","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":45,"maxChargeTime":1,"increment":1,"bb":{"acsupo_s_3.atk":0.4,"talent_scale":2,"damage_scale":1.1,"atk":0.9},"bbStr":{},"rangeId":"y-4","rangeGrid":[[2,-1],[2,0],[2,1],[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[0,3],[-1,-1],[-1,0],[-1,1],[-1,2],[-2,-1],[-2,0],[-2,1]],"prefabId":"skchr_acsupo_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"同调","desc":"攻击速度+15,相邻的干员攻击速度+10","descRaw":"攻击速度+15,相邻的干员攻击速度+10","bb":{"attack_speed":15,"acsupo_t_1[ally].attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"诱引","desc":"攻击范围内敌人的物理和法术命中率降低10%","descRaw":"攻击范围内敌人的物理和法术命中率降低10%","bb":{"damage_hitrate_physical":-0.1,"damage_hitrate_magical":-0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1352,"atk":471,"def":118,"res":25,"cost":16,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acsupo_1","iconId":"skchr_acsupo_1","name":"双声","level":7,"desc":"攻击力+40%,额外攻击一个目标","descRaw":"攻击力<@ba.vup>+40%,额外攻击一个目标","skillType":"MANUAL","durationType":"NONE","duration":24,"spType":"INCREASE_WITH_TIME","spCost":30,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.4,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acsupo_2","iconId":"skchr_acsupo_2","name":"三形","level":7,"desc":"攻击间隔缩短,同时攻击三个目标,攻击造成的停顿时间延长至1.2秒","descRaw":"攻击间隔<@ba.vup>缩短,同时攻击三个目标,攻击造成的<$ba.sluggish>停顿时间延长至<@ba.vup>1.2秒","skillType":"MANUAL","durationType":"NONE","duration":17,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"base_attack_time":-0.2,"attack@max_target":3,"attack@sluggish":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acsupo_3","iconId":"skchr_acsupo_3","name":"信号跃动","level":7,"desc":"攻击范围扩大,攻击力+50%,第一天赋的效果提升至2.5倍,攻击范围内所有敌人受到20%的脆弱效果和20%的虚弱效果","descRaw":"攻击范围扩大,攻击力<@ba.vup>+50%,第一天赋的效果提升至<@ba.vup>2.5倍,攻击范围内所有敌人受到<@ba.vup>20%的<$ba.fragile>脆弱效果和<@ba.vup>20%的<$ba.weaken>虚弱效果","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":50,"maxChargeTime":1,"increment":1,"bb":{"acsupo_s_3.atk":0.5,"talent_scale":2.5,"damage_scale":1.2,"atk":0.8},"bbStr":{},"rangeId":"y-4","rangeGrid":[[2,-1],[2,0],[2,1],[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[0,3],[-1,-1],[-1,0],[-1,1],[-1,2],[-2,-1],[-2,0],[-2,1]],"prefabId":"skchr_acsupo_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"同调","desc":"攻击速度+15,相邻的干员攻击速度+10","descRaw":"攻击速度+15,相邻的干员攻击速度+10","bb":{"attack_speed":15,"acsupo_t_1[ally].attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"诱引","desc":"攻击范围内敌人的物理和法术命中率降低10%","descRaw":"攻击范围内敌人的物理和法术命中率降低10%","bb":{"damage_hitrate_physical":-0.1,"damage_hitrate_magical":-0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acsupo","name":"Raidian证章","typeName":"DEC-X","typeIcon":"dec-x","icon":"uniequip_002_acsupo","level":1,"attr":{"maxHp":78,"atk":34},"traitOverride":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击范围内存在敌人时技力自然恢复速度+0.2/秒","moduleDescRaw":"攻击范围内存在敌人时技力自然恢复速度+0.2/秒"},"talentChanges":[{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":true}]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1352,"atk":471,"def":118,"res":25,"cost":16,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acsupo_1","iconId":"skchr_acsupo_1","name":"双声","level":7,"desc":"攻击力+40%,额外攻击一个目标","descRaw":"攻击力<@ba.vup>+40%,额外攻击一个目标","skillType":"MANUAL","durationType":"NONE","duration":24,"spType":"INCREASE_WITH_TIME","spCost":30,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.4,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acsupo_2","iconId":"skchr_acsupo_2","name":"三形","level":7,"desc":"攻击间隔缩短,同时攻击三个目标,攻击造成的停顿时间延长至1.2秒","descRaw":"攻击间隔<@ba.vup>缩短,同时攻击三个目标,攻击造成的<$ba.sluggish>停顿时间延长至<@ba.vup>1.2秒","skillType":"MANUAL","durationType":"NONE","duration":17,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"base_attack_time":-0.2,"attack@max_target":3,"attack@sluggish":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acsupo_3","iconId":"skchr_acsupo_3","name":"信号跃动","level":7,"desc":"攻击范围扩大,攻击力+50%,第一天赋的效果提升至2.5倍,攻击范围内所有敌人受到20%的脆弱效果和20%的虚弱效果","descRaw":"攻击范围扩大,攻击力<@ba.vup>+50%,第一天赋的效果提升至<@ba.vup>2.5倍,攻击范围内所有敌人受到<@ba.vup>20%的<$ba.fragile>脆弱效果和<@ba.vup>20%的<$ba.weaken>虚弱效果","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":50,"maxChargeTime":1,"increment":1,"bb":{"acsupo_s_3.atk":0.5,"talent_scale":2.5,"damage_scale":1.2,"atk":0.8},"bbStr":{},"rangeId":"y-4","rangeGrid":[[2,-1],[2,0],[2,1],[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[0,3],[-1,-1],[-1,0],[-1,1],[-1,2],[-2,-1],[-2,0],[-2,1]],"prefabId":"skchr_acsupo_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"同调","desc":"攻击速度+15,相邻的干员攻击速度+10","descRaw":"攻击速度+15,相邻的干员攻击速度+10","bb":{"attack_speed":15,"acsupo_t_1[ally].attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"诱引","desc":"攻击范围内敌人的物理和法术命中率降低10%","descRaw":"攻击范围内敌人的物理和法术命中率降低10%","bb":{"damage_hitrate_physical":-0.1,"damage_hitrate_magical":-0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acsupo","name":"Raidian证章","typeName":"DEC-X","typeIcon":"dec-x","icon":"uniequip_002_acsupo","level":3,"attr":{"maxHp":98,"atk":52},"traitOverride":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击范围内存在敌人时技力自然恢复速度+0.2/秒","moduleDescRaw":"攻击范围内存在敌人时技力自然恢复速度+0.2/秒"},"talentChanges":[{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":true},{"talentIndex":0,"name":"同调","desc":"攻击速度+20,相邻的干员攻击速度+12","descRaw":"攻击速度+20,相邻的干员攻击速度+12","bb":{"attack_speed":20,"acsupo_t_1[ally].attack_speed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_615_acspec":{"charId":"char_615_acspec","name":"Misery","appellation":"Misery","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","subProfessionName":"处决者","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_615_acspec","avatarGolden":"char_615_acspec","portrait":"char_615_acspec_1","portraitGolden":"char_615_acspec_1","spine":"char_615_acspec","subProfIcon":"sub_executor_icon"},"moduleNames":{"uniequip_001_acspec":{"name":"Misery证章","typeName":"ORIGINAL"},"uniequip_002_acspec":{"name":"Misery证章","typeName":"EXE-X"}},"standsIn":["chess_char_4_16_a","chess_char_5_17_a","chess_char_6_13_a","chess_char_6_19_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1154,"atk":399,"def":247,"res":0,"cost":9,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acspec_1","iconId":"skchr_acspec_1","name":"物理的服从","level":4,"desc":"部署后第一天赋触发概率提升至25%,获得45%物理闪避","descRaw":"部署后第一天赋触发概率提升至<@ba.vup>25%,获得<@ba.vup>45%物理闪避","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"attack@normal_prob":0.75,"attack@prob":0.25,"prob":0.45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acspec_2","iconId":"skchr_acspec_2","name":"战争的恭顺","level":4,"desc":"部署后攻击力+30%,攻击速度+15","descRaw":"部署后攻击力<@ba.vup>+30%,攻击速度<@ba.vup>+15","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"atk":0.3,"attack_speed":15},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acspec_3","iconId":"skchr_acspec_3","name":"空间的归依","level":4,"desc":"部署后立即对周围所有敌人造成相当于攻击力210%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人小力地拖拽至面前并施加2.5秒停顿","descRaw":"部署后立即对周围所有敌人造成相当于攻击力<@ba.vup>210%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人<@ba.vup>小力地拖拽至面前并施加<@ba.vup>2.5秒<$ba.sluggish>停顿","skillType":"PASSIVE","durationType":"NONE","duration":-1,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"sluggish":2.5,"atk_scale":2.1,"force":0},"bbStr":{},"rangeId":"x-4","rangeGrid":[[1,-1],[1,0],[1,1],[0,-1],[0,0],[0,1],[-1,-1],[-1,0],[-1,1]],"prefabId":"skchr_acspec_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"二象命末","desc":"攻击时有10%概率造成二连击","descRaw":"攻击时有10%概率造成二连击","bb":{"attack@prob":0.1,"attack@normal_prob":0.9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"四维分离","desc":"周围四格内仅存在一名敌人时,攻击力+10%","descRaw":"周围四格内仅存在一名敌人时,攻击力+10%","bb":{"atk":0.1,"cnt":1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1370,"atk":474,"def":279,"res":0,"cost":9,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acspec_1","iconId":"skchr_acspec_1","name":"物理的服从","level":7,"desc":"部署后第一天赋触发概率提升至25%,获得60%物理闪避","descRaw":"部署后第一天赋触发概率提升至<@ba.vup>25%,获得<@ba.vup>60%物理闪避","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"attack@normal_prob":0.75,"attack@prob":0.25,"prob":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acspec_2","iconId":"skchr_acspec_2","name":"战争的恭顺","level":7,"desc":"部署后攻击力+45%,攻击速度+15","descRaw":"部署后攻击力<@ba.vup>+45%,攻击速度<@ba.vup>+15","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"atk":0.45,"attack_speed":15},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acspec_3","iconId":"skchr_acspec_3","name":"空间的归依","level":7,"desc":"部署后立即对周围所有敌人造成相当于攻击力240%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人小力地拖拽至面前并施加2.5秒停顿","descRaw":"部署后立即对周围所有敌人造成相当于攻击力<@ba.vup>240%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人<@ba.vup>小力地拖拽至面前并施加<@ba.vup>2.5秒<$ba.sluggish>停顿","skillType":"PASSIVE","durationType":"NONE","duration":-1,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"sluggish":2.5,"atk_scale":2.4,"force":0},"bbStr":{},"rangeId":"x-4","rangeGrid":[[1,-1],[1,0],[1,1],[0,-1],[0,0],[0,1],[-1,-1],[-1,0],[-1,1]],"prefabId":"skchr_acspec_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"二象命末","desc":"攻击时有10%概率造成二连击","descRaw":"攻击时有10%概率造成二连击","bb":{"attack@prob":0.1,"attack@normal_prob":0.9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"四维分离","desc":"周围四格内仅存在一名敌人时,攻击力+10%","descRaw":"周围四格内仅存在一名敌人时,攻击力+10%","bb":{"atk":0.1,"cnt":1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acspec","name":"Misery证章","typeName":"EXE-X","typeIcon":"exe-x","icon":"uniequip_002_acspec","level":1,"attr":{"maxHp":78,"atk":30,"def":19},"traitOverride":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"周围四格没有友方干员时攻击力+10%","moduleDescRaw":"周围四格没有友方干员时攻击力<@ba.kw>+10%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1370,"atk":474,"def":279,"res":0,"cost":9,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acspec_1","iconId":"skchr_acspec_1","name":"物理的服从","level":7,"desc":"部署后第一天赋触发概率提升至25%,获得60%物理闪避","descRaw":"部署后第一天赋触发概率提升至<@ba.vup>25%,获得<@ba.vup>60%物理闪避","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"attack@normal_prob":0.75,"attack@prob":0.25,"prob":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acspec_2","iconId":"skchr_acspec_2","name":"战争的恭顺","level":7,"desc":"部署后攻击力+45%,攻击速度+15","descRaw":"部署后攻击力<@ba.vup>+45%,攻击速度<@ba.vup>+15","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"atk":0.45,"attack_speed":15},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acspec_3","iconId":"skchr_acspec_3","name":"空间的归依","level":7,"desc":"部署后立即对周围所有敌人造成相当于攻击力240%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人小力地拖拽至面前并施加2.5秒停顿","descRaw":"部署后立即对周围所有敌人造成相当于攻击力<@ba.vup>240%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人<@ba.vup>小力地拖拽至面前并施加<@ba.vup>2.5秒<$ba.sluggish>停顿","skillType":"PASSIVE","durationType":"NONE","duration":-1,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"sluggish":2.5,"atk_scale":2.4,"force":0},"bbStr":{},"rangeId":"x-4","rangeGrid":[[1,-1],[1,0],[1,1],[0,-1],[0,0],[0,1],[-1,-1],[-1,0],[-1,1]],"prefabId":"skchr_acspec_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"二象命末","desc":"攻击时有10%概率造成二连击","descRaw":"攻击时有10%概率造成二连击","bb":{"attack@prob":0.1,"attack@normal_prob":0.9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"四维分离","desc":"周围四格内仅存在一名敌人时,攻击力+10%","descRaw":"周围四格内仅存在一名敌人时,攻击力+10%","bb":{"atk":0.1,"cnt":1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acspec","name":"Misery证章","typeName":"EXE-X","typeIcon":"exe-x","icon":"uniequip_002_acspec","level":3,"attr":{"maxHp":114,"atk":40,"def":26},"traitOverride":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"周围四格没有友方干员时攻击力+10%","moduleDescRaw":"周围四格没有友方干员时攻击力<@ba.kw>+10%"},"talentChanges":[{"talentIndex":0,"name":"二象命末","desc":"攻击力+5%,攻击时有15%概率造成二连击","descRaw":"攻击力+5%,攻击时有15%概率造成二连击","bb":{"atk":0.05,"attack@prob":0.15,"attack@normal_prob":0.85},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_617_sharp2":{"charId":"char_617_sharp2","name":"领主·Sharp","appellation":"Lord/Sharp","rarity":6,"profession":"WARRIOR","subProfessionId":"lord","subProfessionName":"领主","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_617_sharp2","avatarGolden":"char_617_sharp2_2","portrait":"char_617_sharp2_1","portraitGolden":"char_617_sharp2_2","spine":"char_617_sharp2","subProfIcon":"sub_lord_icon"},"moduleNames":{"uniequip_001_sharp2":{"name":"领主·Sharp证章","typeName":"ORIGINAL"},"uniequip_002_sharp2":{"name":"领主·Sharp证章","typeName":"LOR-X"}},"standsIn":["chess_char_4_09_a","chess_char_5_19_a","chess_char_6_07_a","chess_char_6_10_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1865,"atk":521,"def":383,"res":10,"cost":21,"blockCnt":2,"bat":1.3,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-12","rangeGrid":[[1,0],[1,1],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":null,"trait":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_sharp2_1","iconId":"skchr_sharp2_1","name":"沉默的爆发","level":4,"desc":"攻击力+130%,攻击速度+35,同时攻击2个目标,远程攻击不再降低攻击力","descRaw":"攻击力<@ba.vup>+130%,攻击速度<@ba.vup>+35,同时攻击<@ba.vup>2个目标,远程攻击不再降低攻击力","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":22,"maxChargeTime":1,"increment":1,"bb":{"atk":1.3,"attack_speed":35,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_sharp2_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无声之锋","desc":"攻击力+20%,获得25%的法术闪避","descRaw":"攻击力+20%,获得25%的法术闪避","bb":{"atk":0.2,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"陷阵勇气","desc":"攻击范围内存在2名及以上敌人时,攻击速度+12","descRaw":"攻击范围内存在2名及以上敌人时,攻击速度+12","bb":{"cnt":2,"attack_speed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":2194,"atk":603,"def":435,"res":10,"cost":21,"blockCnt":2,"bat":1.3,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-12","rangeGrid":[[1,0],[1,1],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":null,"trait":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_sharp2_1","iconId":"skchr_sharp2_1","name":"沉默的爆发","level":7,"desc":"攻击力+180%,攻击速度+50,同时攻击2个目标,远程攻击不再降低攻击力","descRaw":"攻击力<@ba.vup>+180%,攻击速度<@ba.vup>+50,同时攻击<@ba.vup>2个目标,远程攻击不再降低攻击力","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":42,"initSp":24,"maxChargeTime":1,"increment":1,"bb":{"atk":1.8,"attack_speed":50,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_sharp2_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无声之锋","desc":"攻击力+20%,获得25%的法术闪避","descRaw":"攻击力+20%,获得25%的法术闪避","bb":{"atk":0.2,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"陷阵勇气","desc":"攻击范围内存在2名及以上敌人时,攻击速度+12","descRaw":"攻击范围内存在2名及以上敌人时,攻击速度+12","bb":{"cnt":2,"attack_speed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_sharp2","name":"领主·Sharp证章","typeName":"LOR-X","typeIcon":"lor-x","icon":"uniequip_002_sharp2","level":1,"attr":{"maxHp":180,"atk":38},"traitOverride":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击附带10%攻击力的法术伤害","moduleDescRaw":"攻击附带<@ba.vup>10%攻击力的法术伤害"},"talentChanges":[{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{"magic_atk_scale":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":true}]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":2194,"atk":603,"def":435,"res":10,"cost":21,"blockCnt":2,"bat":1.3,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-12","rangeGrid":[[1,0],[1,1],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":null,"trait":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_sharp2_1","iconId":"skchr_sharp2_1","name":"沉默的爆发","level":7,"desc":"攻击力+180%,攻击速度+50,同时攻击2个目标,远程攻击不再降低攻击力","descRaw":"攻击力<@ba.vup>+180%,攻击速度<@ba.vup>+50,同时攻击<@ba.vup>2个目标,远程攻击不再降低攻击力","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":42,"initSp":24,"maxChargeTime":1,"increment":1,"bb":{"atk":1.8,"attack_speed":50,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_sharp2_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无声之锋","desc":"攻击力+20%,获得25%的法术闪避","descRaw":"攻击力+20%,获得25%的法术闪避","bb":{"atk":0.2,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"陷阵勇气","desc":"攻击范围内存在2名及以上敌人时,攻击速度+12","descRaw":"攻击范围内存在2名及以上敌人时,攻击速度+12","bb":{"cnt":2,"attack_speed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_sharp2","name":"领主·Sharp证章","typeName":"LOR-X","typeIcon":"lor-x","icon":"uniequip_002_sharp2","level":3,"attr":{"maxHp":300,"atk":63},"traitOverride":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击附带10%攻击力的法术伤害","moduleDescRaw":"攻击附带<@ba.vup>10%攻击力的法术伤害"},"talentChanges":[{"talentIndex":0,"name":"无声之锋","desc":"攻击力+25%,获得35%的法术闪避","descRaw":"攻击力+25%,获得35%的法术闪避","bb":{"atk":0.25,"prob":0.35},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false},{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{"magic_atk_scale":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":true}]}]}}}},"diy":{"slots":{"chess_char_5_diy1_a":{"tier":5,"goldenId":"chess_char_5_diy1_b","shopLevel":5,"requirement":"TIER_6"},"chess_char_5_diy2_a":{"tier":5,"goldenId":"chess_char_5_diy2_b","shopLevel":5,"requirement":"TIER_6"},"chess_char_6_diy1_a":{"tier":6,"goldenId":"chess_char_6_diy1_b","shopLevel":6,"requirement":"TIER_6"},"chess_char_6_diy2_a":{"tier":6,"goldenId":"chess_char_6_diy2_b","shopLevel":6,"requirement":"TIER_6"}},"prototypes":{"5":["char_601_cguard","char_602_cdfend","char_603_csnipe","char_604_ccast","char_605_cmedic","char_606_csuppo","char_608_acpion","char_609_acguad","char_610_acfend","char_611_acnipe","char_612_accast","char_613_acmedc","char_614_acsupo","char_615_acspec","char_617_sharp2"],"6":["char_608_acpion","char_609_acguad","char_610_acfend","char_611_acnipe","char_612_accast","char_613_acmedc","char_614_acsupo","char_615_acspec","char_617_sharp2"]},"ownedPool":["char_003_kalts","char_010_chen","char_017_huang","char_112_siege","char_113_cqbw","char_134_ifrit","char_147_shining","char_179_cgbird","char_180_amgoat","char_188_helage","char_197_poca","char_225_haak","char_248_mgllan","char_250_phatom","char_293_thorns","char_300_phenxi","char_322_lmlee","char_340_shwaz","char_362_saga","char_377_gdglow","char_400_weedy","char_416_zumama","char_450_necras","char_456_ash","char_479_sleach","char_485_pallas","char_1013_chen2","char_1015_aglna2","char_1029_yato2","char_1031_slent2","char_1034_jesca2","char_1035_wisdel","char_1042_phatm2","char_1043_leizi2","char_1044_hsgma2","char_1048_orchd2","char_1050_chen3","char_1051_headb2","char_1052_kalts2","char_1502_crosly","char_2012_typhon","char_2013_cerber","char_2014_nian","char_2023_ling","char_2024_chyue","char_2025_shu","char_2027_wang","char_4009_irene","char_4011_lessng","char_4027_heyak","char_4037_demetr","char_4046_ebnhlz","char_4048_doroth","char_4055_bgsnow","char_4065_judge","char_4072_ironmn","char_4080_lin","char_4088_hodrer","char_4098_vvana","char_4117_ray","char_4121_zuole","char_4123_ela","char_4132_ascln","char_4133_logos","char_4138_narant","char_4141_marcil","char_4179_monstr","char_4182_oblvns","char_4195_radian","char_4202_haruka","char_4204_mantra","char_4212_nasti","char_4217_makoto","char_4226_veen","char_4228_closur","char_4229_aphris","char_4230_mcnist","char_4235_thumpy"],"operators":{"char_003_kalts":{"name":"凯尔希","rarity":6,"profession":"MEDIC","subProfessionId":"physician","obtainable":true,"powers":["rhodes","babel"],"bonds":["emptyShip"]},"char_010_chen":{"name":"陈","rarity":6,"profession":"WARRIOR","subProfessionId":"sword","obtainable":true,"powers":["lungmen","lgd"],"bonds":["yanShip"]},"char_017_huang":{"name":"煌","rarity":6,"profession":"WARRIOR","subProfessionId":"centurion","obtainable":true,"powers":["rhodes","elite","yan","victoria"],"bonds":["yanShip","victoriaShip"]},"char_112_siege":{"name":"推进之王","rarity":6,"profession":"PIONEER","subProfessionId":"pioneer","obtainable":true,"powers":["victoria","glasgow"],"bonds":["victoriaShip"]},"char_113_cqbw":{"name":"W","rarity":6,"profession":"SNIPER","subProfessionId":"aoesniper","obtainable":true,"powers":["babel","rhodes"],"bonds":["emptyShip"]},"char_134_ifrit":{"name":"伊芙利特","rarity":6,"profession":"CASTER","subProfessionId":"blastcaster","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_147_shining":{"name":"闪灵","rarity":6,"profession":"MEDIC","subProfessionId":"physician","obtainable":true,"powers":["followers"],"bonds":["emptyShip"]},"char_179_cgbird":{"name":"夜莺","rarity":6,"profession":"MEDIC","subProfessionId":"ringhealer","obtainable":true,"powers":["followers"],"bonds":["emptyShip"]},"char_180_amgoat":{"name":"艾雅法拉","rarity":6,"profession":"CASTER","subProfessionId":"corecaster","obtainable":true,"powers":["leithanien"],"bonds":["emptyShip"]},"char_188_helage":{"name":"赫拉格","rarity":6,"profession":"WARRIOR","subProfessionId":"musha","obtainable":true,"powers":["ursus"],"bonds":["emptyShip"]},"char_197_poca":{"name":"早露","rarity":6,"profession":"SNIPER","subProfessionId":"siegesniper","obtainable":true,"powers":["ursus","student"],"bonds":["emptyShip"]},"char_225_haak":{"name":"阿","rarity":6,"profession":"SPECIAL","subProfessionId":"geek","obtainable":true,"powers":["lungmen","lee"],"bonds":["yanShip"]},"char_248_mgllan":{"name":"麦哲伦","rarity":6,"profession":"SUPPORT","subProfessionId":"summoner","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_250_phatom":{"name":"傀影","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_293_thorns":{"name":"棘刺","rarity":6,"profession":"WARRIOR","subProfessionId":"lord","obtainable":true,"powers":["iberia"],"bonds":["emptyShip"]},"char_300_phenxi":{"name":"菲亚梅塔","rarity":6,"profession":"SNIPER","subProfessionId":"aoesniper","obtainable":true,"powers":["laterano"],"bonds":["lateranoShip"]},"char_322_lmlee":{"name":"老鲤","rarity":6,"profession":"SPECIAL","subProfessionId":"merchant","obtainable":true,"powers":["lungmen","lee"],"bonds":["yanShip"]},"char_340_shwaz":{"name":"黑","rarity":6,"profession":"SNIPER","subProfessionId":"closerange","obtainable":true,"powers":["columbia","siesta"],"bonds":["emptyShip"]},"char_362_saga":{"name":"嵯峨","rarity":6,"profession":"PIONEER","subProfessionId":"pioneer","obtainable":true,"powers":["higashi"],"bonds":["emptyShip"]},"char_377_gdglow":{"name":"澄闪","rarity":6,"profession":"CASTER","subProfessionId":"funnel","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_400_weedy":{"name":"温蒂","rarity":6,"profession":"SPECIAL","subProfessionId":"pusher","obtainable":true,"powers":["rhodes","iberia"],"bonds":["emptyShip"]},"char_416_zumama":{"name":"森蚺","rarity":6,"profession":"TANK","subProfessionId":"duelist","obtainable":true,"powers":["sargon"],"bonds":["sargonShip"]},"char_450_necras":{"name":"死芒","rarity":6,"profession":"CASTER","subProfessionId":"soulcaster","obtainable":true,"powers":["victoria","tara"],"bonds":["victoriaShip"]},"char_456_ash":{"name":"灰烬","rarity":6,"profession":"SNIPER","subProfessionId":"fastshot","obtainable":true,"powers":["rainbow"],"bonds":["emptyShip"]},"char_479_sleach":{"name":"琴柳","rarity":6,"profession":"PIONEER","subProfessionId":"bearer","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_485_pallas":{"name":"帕拉斯","rarity":6,"profession":"WARRIOR","subProfessionId":"instructor","obtainable":true,"powers":["minos"],"bonds":["emptyShip"]},"char_601_cguard":{"name":"预备干员-近卫","rarity":4,"profession":"WARRIOR","subProfessionId":"fearless","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_602_cdfend":{"name":"预备干员-重装","rarity":4,"profession":"TANK","subProfessionId":"protector","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_603_csnipe":{"name":"预备干员-狙击","rarity":4,"profession":"SNIPER","subProfessionId":"fastshot","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_604_ccast":{"name":"预备干员-术师","rarity":4,"profession":"CASTER","subProfessionId":"corecaster","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_605_cmedic":{"name":"预备干员-医疗","rarity":4,"profession":"MEDIC","subProfessionId":"physician","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_606_csuppo":{"name":"预备干员-辅助","rarity":4,"profession":"SUPPORT","subProfessionId":"slower","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_608_acpion":{"name":"郁金香","rarity":6,"profession":"PIONEER","subProfessionId":"pioneer","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_609_acguad":{"name":"Sharp","rarity":6,"profession":"WARRIOR","subProfessionId":"fearless","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_610_acfend":{"name":"Mechanist","rarity":6,"profession":"TANK","subProfessionId":"protector","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_611_acnipe":{"name":"Stormeye","rarity":6,"profession":"SNIPER","subProfessionId":"fastshot","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_612_accast":{"name":"Pith","rarity":6,"profession":"CASTER","subProfessionId":"splashcaster","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_613_acmedc":{"name":"Touch","rarity":6,"profession":"MEDIC","subProfessionId":"physician","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_614_acsupo":{"name":"Raidian","rarity":6,"profession":"SUPPORT","subProfessionId":"slower","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_615_acspec":{"name":"Misery","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_617_sharp2":{"name":"领主·Sharp","rarity":6,"profession":"WARRIOR","subProfessionId":"lord","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_1013_chen2":{"name":"假日威龙陈","rarity":6,"profession":"SNIPER","subProfessionId":"reaperrange","obtainable":true,"powers":["rhodes","yan"],"bonds":["yanShip"]},"char_1015_aglna2":{"name":"予愿安洁莉娜","rarity":6,"profession":"SPECIAL","subProfessionId":"skywalker","obtainable":true,"powers":["rhodes","siracusa"],"bonds":["siracusaShip"]},"char_1029_yato2":{"name":"麒麟R夜刀","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","obtainable":true,"powers":["rhodes","action4","higashi"],"bonds":["emptyShip"]},"char_1031_slent2":{"name":"淬羽赫默","rarity":6,"profession":"SUPPORT","subProfessionId":"blessing","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_1034_jesca2":{"name":"涤火杰西卡","rarity":6,"profession":"TANK","subProfessionId":"shotprotector","obtainable":true,"powers":["columbia","blacksteel","victoria"],"bonds":["victoriaShip"]},"char_1035_wisdel":{"name":"维什戴尔","rarity":6,"profession":"SNIPER","subProfessionId":"bombarder","obtainable":true,"powers":["babel","rhodes"],"bonds":["emptyShip"]},"char_1042_phatm2":{"name":"酒神","rarity":6,"profession":"SUPPORT","subProfessionId":"ritualist","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_1043_leizi2":{"name":"司霆惊蛰","rarity":6,"profession":"WARRIOR","subProfessionId":"librator","obtainable":true,"powers":["yan"],"bonds":["yanShip"]},"char_1044_hsgma2":{"name":"斩业星熊","rarity":6,"profession":"TANK","subProfessionId":"artsprotector","obtainable":true,"powers":["lungmen","lgd","higashi"],"bonds":["yanShip"]},"char_1048_orchd2":{"name":"焰狐龙梓兰","rarity":6,"profession":"SNIPER","subProfessionId":"closerange","obtainable":true,"powers":["rhodes","reserve6","columbia"],"bonds":["emptyShip"]},"char_1050_chen3":{"name":"赤刃明霄陈","rarity":6,"profession":"WARRIOR","subProfessionId":"artsfghter","obtainable":true,"powers":["yan","rhodes"],"bonds":["yanShip"]},"char_1051_headb2":{"name":"怒潮凛冬","rarity":6,"profession":"WARRIOR","subProfessionId":"hammer","obtainable":true,"powers":["ursus","student"],"bonds":["emptyShip"]},"char_1052_kalts2":{"name":"凯尔希·思衡托","rarity":6,"profession":"MEDIC","subProfessionId":"watchman","obtainable":true,"powers":["rhodes"],"bonds":["emptyShip"]},"char_1502_crosly":{"name":"弑君者","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","obtainable":true,"powers":["rhodes","siracusa","ursus"],"bonds":["siracusaShip"]},"char_2012_typhon":{"name":"提丰","rarity":6,"profession":"SNIPER","subProfessionId":"siegesniper","obtainable":true,"powers":["sami"],"bonds":["emptyShip"]},"char_2013_cerber":{"name":"刻俄柏","rarity":6,"profession":"CASTER","subProfessionId":"corecaster","obtainable":true,"powers":["rhodes","bolivar"],"bonds":["emptyShip"]},"char_2014_nian":{"name":"年","rarity":6,"profession":"TANK","subProfessionId":"protector","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_2023_ling":{"name":"令","rarity":6,"profession":"SUPPORT","subProfessionId":"summoner","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_2024_chyue":{"name":"重岳","rarity":6,"profession":"WARRIOR","subProfessionId":"fighter","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_2025_shu":{"name":"黍","rarity":6,"profession":"TANK","subProfessionId":"guardian","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_2027_wang":{"name":"望","rarity":6,"profession":"SPECIAL","subProfessionId":"traper","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_4009_irene":{"name":"艾丽妮","rarity":6,"profession":"WARRIOR","subProfessionId":"sword","obtainable":true,"powers":["iberia"],"bonds":["emptyShip"]},"char_4011_lessng":{"name":"止颂","rarity":6,"profession":"WARRIOR","subProfessionId":"fearless","obtainable":true,"powers":["leithanien"],"bonds":["emptyShip"]},"char_4027_heyak":{"name":"霍尔海雅","rarity":6,"profession":"CASTER","subProfessionId":"corecaster","obtainable":true,"powers":["columbia"],"bonds":["emptyShip"]},"char_4037_demetr":{"name":"贝洛内","rarity":6,"profession":"WARRIOR","subProfessionId":"fighter","obtainable":true,"powers":["siracusa"],"bonds":["siracusaShip"]},"char_4046_ebnhlz":{"name":"黑键","rarity":6,"profession":"CASTER","subProfessionId":"mystic","obtainable":true,"powers":["leithanien"],"bonds":["emptyShip"]},"char_4048_doroth":{"name":"多萝西","rarity":6,"profession":"SPECIAL","subProfessionId":"traper","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_4055_bgsnow":{"name":"鸿雪","rarity":6,"profession":"SNIPER","subProfessionId":"closerange","obtainable":true,"powers":["rhodes","sargon"],"bonds":["sargonShip"]},"char_4065_judge":{"name":"斥罪","rarity":6,"profession":"TANK","subProfessionId":"unyield","obtainable":true,"powers":["siracusa"],"bonds":["siracusaShip"]},"char_4072_ironmn":{"name":"白铁","rarity":6,"profession":"SUPPORT","subProfessionId":"craftsman","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_4080_lin":{"name":"林","rarity":6,"profession":"CASTER","subProfessionId":"phalanx","obtainable":true,"powers":["lungmen"],"bonds":["yanShip"]},"char_4088_hodrer":{"name":"赫德雷","rarity":6,"profession":"WARRIOR","subProfessionId":"crusher","obtainable":true,"powers":["babel"],"bonds":["emptyShip"]},"char_4098_vvana":{"name":"薇薇安娜","rarity":6,"profession":"WARRIOR","subProfessionId":"artsfghter","obtainable":true,"powers":["leithanien","kazimierz"],"bonds":["kazimierzShip"]},"char_4117_ray":{"name":"莱伊","rarity":6,"profession":"SNIPER","subProfessionId":"hunter","obtainable":true,"powers":["rim"],"bonds":["emptyShip"]},"char_4121_zuole":{"name":"左乐","rarity":6,"profession":"WARRIOR","subProfessionId":"musha","obtainable":true,"powers":["yan"],"bonds":["yanShip"]},"char_4123_ela":{"name":"艾拉","rarity":6,"profession":"SPECIAL","subProfessionId":"traper","obtainable":true,"powers":["rainbow"],"bonds":["emptyShip"]},"char_4132_ascln":{"name":"阿斯卡纶","rarity":6,"profession":"SPECIAL","subProfessionId":"stalker","obtainable":true,"powers":["rhodes","sweep","babel"],"bonds":["emptyShip"]},"char_4133_logos":{"name":"逻各斯","rarity":6,"profession":"CASTER","subProfessionId":"corecaster","obtainable":true,"powers":["rhodes","elite","babel"],"bonds":["emptyShip"]},"char_4138_narant":{"name":"娜仁图亚","rarity":6,"profession":"SNIPER","subProfessionId":"loopshooter","obtainable":true,"powers":["sargon"],"bonds":["sargonShip"]},"char_4141_marcil":{"name":"玛露西尔","rarity":6,"profession":"CASTER","subProfessionId":"splashcaster","obtainable":true,"powers":["laios"],"bonds":["emptyShip"]},"char_4179_monstr":{"name":"Mon3tr","rarity":6,"profession":"MEDIC","subProfessionId":"chainhealer","obtainable":true,"powers":["rhodes"],"bonds":["emptyShip"]},"char_4182_oblvns":{"name":"丰川祥子","rarity":6,"profession":"WARRIOR","subProfessionId":"lord","obtainable":true,"powers":["mujica"],"bonds":["emptyShip"]},"char_4195_radian":{"name":"电弧","rarity":6,"profession":"SUPPORT","subProfessionId":"summoner","obtainable":true,"powers":["rhodes","elite","ursus"],"bonds":["emptyShip"]},"char_4202_haruka":{"name":"遥","rarity":6,"profession":"SUPPORT","subProfessionId":"blessing","obtainable":true,"powers":["higashi"],"bonds":["emptyShip"]},"char_4204_mantra":{"name":"真言","rarity":6,"profession":"CASTER","subProfessionId":"primcaster","obtainable":true,"powers":["rhodes","elite","babel","sargon"],"bonds":["sargonShip"]},"char_4212_nasti":{"name":"娜斯提","rarity":6,"profession":"SUPPORT","subProfessionId":"craftsman","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_4217_makoto":{"name":"结城理","rarity":6,"profession":"SPECIAL","subProfessionId":"dollkeeper","obtainable":true,"powers":["sees","laterano"],"bonds":["lateranoShip"]},"char_4226_veen":{"name":"维伊","rarity":6,"profession":"CASTER","subProfessionId":"mystic","obtainable":true,"powers":["ursus"],"bonds":["emptyShip"]},"char_4228_closur":{"name":"可露希尔","rarity":6,"profession":"PIONEER","subProfessionId":"tactician","obtainable":true,"powers":["rhodes"],"bonds":["emptyShip"]},"char_4229_aphris":{"name":"谬因","rarity":6,"profession":"CASTER","subProfessionId":"blastcaster","obtainable":true,"powers":["columbia"],"bonds":["emptyShip"]},"char_4230_mcnist":{"name":"机械师","rarity":6,"profession":"TANK","subProfessionId":"shotprotector","obtainable":true,"powers":["rhodes","elite","columbia"],"bonds":["emptyShip"]},"char_4235_thumpy":{"name":"珊比","rarity":6,"profession":"TANK","subProfessionId":"primprotector","obtainable":true,"powers":["rim"],"bonds":["emptyShip"]}}}} \ No newline at end of file +{"units":{"char_600_cpione":{"charId":"char_600_cpione","name":"预备干员-先锋","appellation":"Reserve Operator - Vanguard","rarity":4,"profession":"PIONEER","subProfessionId":"pioneer","subProfessionName":"尖兵","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_600_cpione","avatarGolden":"char_600_cpione","portrait":"char_600_cpione_1","portraitGolden":"char_600_cpione_1","spine":"char_600_cpione","subProfIcon":"sub_pioneer_icon"},"moduleNames":{},"standsIn":["chess_char_5_01_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1225,"atk":320,"def":272,"res":0,"cost":11,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_charge_cost[1]","iconId":"skcom_charge_cost[1]","name":"冲锋号令·α型","level":4,"desc":"立即获得6点部署费用","descRaw":"立即获得<@ba.vup>6点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":27,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"cost":6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_charge_cost[2]","iconId":"skcom_charge_cost[2]","name":"冲锋号令·β型","level":4,"desc":"立即获得9点部署费用","descRaw":"立即获得<@ba.vup>9点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":36,"initSp":9,"maxChargeTime":1,"increment":1,"bb":{"cost":9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_charge_cost[3]","iconId":"skcom_charge_cost[3]","name":"冲锋号令·γ型","level":4,"desc":"立即获得12点部署费用","descRaw":"立即获得<@ba.vup>12点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":41,"initSp":12,"maxChargeTime":1,"increment":1,"bb":{"cost":12},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1674,"atk":380,"def":322,"res":0,"cost":11,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_charge_cost[1]","iconId":"skcom_charge_cost[1]","name":"冲锋号令·α型","level":7,"desc":"立即获得6点部署费用","descRaw":"立即获得<@ba.vup>6点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":25,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_charge_cost[2]","iconId":"skcom_charge_cost[2]","name":"冲锋号令·β型","level":7,"desc":"立即获得9点部署费用","descRaw":"立即获得<@ba.vup>9点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":33,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"cost":9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_charge_cost[3]","iconId":"skcom_charge_cost[3]","name":"冲锋号令·γ型","level":7,"desc":"立即获得12点部署费用","descRaw":"立即获得<@ba.vup>12点部署费用","skillType":"AUTO","durationType":"NONE","duration":0,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":14,"maxChargeTime":1,"increment":1,"bb":{"cost":12},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_charge_cost","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_601_cguard":{"charId":"char_601_cguard","name":"预备干员-近卫","appellation":"Reserve Operator - Guard","rarity":4,"profession":"WARRIOR","subProfessionId":"fearless","subProfessionName":"无畏者","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_601_cguard","avatarGolden":"char_601_cguard","portrait":"char_601_cguard_1","portraitGolden":"char_601_cguard_1","spine":"char_601_cguard","subProfIcon":"sub_fearless_icon"},"moduleNames":{},"standsIn":["chess_char_3_05_a","chess_char_4_07_a","chess_char_5_07_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":2564,"atk":722,"def":124,"res":0,"cost":16,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_atk_up[1]","iconId":"skcom_atk_up[1]","name":"攻击力强化·α型","level":4,"desc":"攻击力+30%","descRaw":"攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_atk_up[2]","iconId":"skcom_atk_up[2]","name":"攻击力强化·β型","level":4,"desc":"攻击力+35%","descRaw":"攻击力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.35},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_atk_up[3]","iconId":"skcom_atk_up[3]","name":"攻击力强化·γ型","level":4,"desc":"攻击力+45%","descRaw":"攻击力<@ba.vup>+45%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":3334,"atk":849,"def":145,"res":0,"cost":16,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_atk_up[1]","iconId":"skcom_atk_up[1]","name":"攻击力强化·α型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_atk_up[2]","iconId":"skcom_atk_up[2]","name":"攻击力强化·β型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_atk_up[3]","iconId":"skcom_atk_up[3]","name":"攻击力强化·γ型","level":7,"desc":"攻击力+60%","descRaw":"攻击力<@ba.vup>+60%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_602_cdfend":{"charId":"char_602_cdfend","name":"预备干员-重装","appellation":"Reserve Operator - Defender","rarity":4,"profession":"TANK","subProfessionId":"protector","subProfessionName":"铁卫","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_602_cdfend","avatarGolden":"char_602_cdfend","portrait":"char_602_cdfend_1","portraitGolden":"char_602_cdfend_1","spine":"char_602_cdfend","subProfIcon":"sub_protector_icon"},"moduleNames":{},"standsIn":["chess_char_4_18_a","chess_char_5_05_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":2128,"atk":276,"def":408,"res":0,"cost":20,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_def_up[1]","iconId":"skcom_def_up[1]","name":"防御力强化·α型","level":4,"desc":"防御力+30%","descRaw":"防御力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"def":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_def_up[2]","iconId":"skcom_def_up[2]","name":"防御力强化·β型","level":4,"desc":"防御力+35%","descRaw":"防御力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"def":0.35},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_def_up[3]","iconId":"skcom_def_up[3]","name":"防御力强化·γ型","level":4,"desc":"防御力+45%","descRaw":"防御力<@ba.vup>+45%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"def":0.45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"防御提升","desc":"防御力+10%","descRaw":"防御力+10%","bb":{"def":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":2908,"atk":318,"def":537,"res":0,"cost":20,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_def_up[1]","iconId":"skcom_def_up[1]","name":"防御力强化·α型","level":7,"desc":"防御力+50%","descRaw":"防御力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"def":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_def_up[2]","iconId":"skcom_def_up[2]","name":"防御力强化·β型","level":7,"desc":"防御力+50%","descRaw":"防御力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"def":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_def_up[3]","iconId":"skcom_def_up[3]","name":"防御力强化·γ型","level":7,"desc":"防御力+60%","descRaw":"防御力<@ba.vup>+60%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"def":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_def_up","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"防御提升","desc":"防御力+10%","descRaw":"防御力+10%","bb":{"def":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_603_csnipe":{"charId":"char_603_csnipe","name":"预备干员-狙击","appellation":"Reserve Operator - Sniper","rarity":4,"profession":"SNIPER","subProfessionId":"fastshot","subProfessionName":"速射手","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_603_csnipe","avatarGolden":"char_603_csnipe","portrait":"char_603_csnipe_1","portraitGolden":"char_603_csnipe_1","spine":"char_603_csnipe","subProfIcon":"sub_fastshot_icon"},"moduleNames":{},"standsIn":["chess_char_3_01_a","chess_char_4_20_a","chess_char_5_15_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1271,"atk":369,"def":84,"res":0,"cost":11,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_atk_up[1]","iconId":"skcom_atk_up[1]","name":"攻击力强化·α型","level":4,"desc":"攻击力+30%","descRaw":"攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_atk_up[2]","iconId":"skcom_atk_up[2]","name":"攻击力强化·β型","level":4,"desc":"攻击力+35%","descRaw":"攻击力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.35},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_atk_up[3]","iconId":"skcom_atk_up[3]","name":"攻击力强化·γ型","level":4,"desc":"攻击力+45%","descRaw":"攻击力<@ba.vup>+45%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1510,"atk":439,"def":98,"res":0,"cost":11,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_atk_up[1]","iconId":"skcom_atk_up[1]","name":"攻击力强化·α型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_atk_up[2]","iconId":"skcom_atk_up[2]","name":"攻击力强化·β型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_atk_up[3]","iconId":"skcom_atk_up[3]","name":"攻击力强化·γ型","level":7,"desc":"攻击力+60%","descRaw":"攻击力<@ba.vup>+60%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_atk_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_604_ccast":{"charId":"char_604_ccast","name":"预备干员-术师","appellation":"Reserve Operator - Caster","rarity":4,"profession":"CASTER","subProfessionId":"corecaster","subProfessionName":"中坚术师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_604_ccast","avatarGolden":"char_604_ccast","portrait":"char_604_ccast_1","portraitGolden":"char_604_ccast_1","spine":"char_604_ccast","subProfIcon":"sub_corecaster_icon"},"moduleNames":{},"standsIn":["chess_char_4_24_a","chess_char_5_02_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1133,"atk":467,"def":98,"res":20,"cost":18,"blockCnt":1,"bat":1.6,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-1","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害","descRaw":"攻击造成<@ba.kw>法术伤害","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_magic_rage[1]","iconId":"skcom_magic_rage[1]","name":"战术咏唱·α型","level":4,"desc":"攻击速度+30","descRaw":"攻击速度<@ba.vup>+30","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[2]","iconId":"skcom_magic_rage[2]","name":"战术咏唱·β型","level":4,"desc":"攻击速度+30","descRaw":"攻击速度<@ba.vup>+30","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[3]","iconId":"skcom_magic_rage[3]","name":"战术咏唱·γ型","level":4,"desc":"攻击速度+45","descRaw":"攻击速度<@ba.vup>+45","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"施法速度提升","desc":"攻击速度+9","descRaw":"攻击速度+9","bb":{"attack_speed":9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1360,"atk":549,"def":108,"res":20,"cost":18,"blockCnt":1,"bat":1.6,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-1","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害","descRaw":"攻击造成<@ba.kw>法术伤害","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_magic_rage[1]","iconId":"skcom_magic_rage[1]","name":"战术咏唱·α型","level":7,"desc":"攻击速度+50","descRaw":"攻击速度<@ba.vup>+50","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":50},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[2]","iconId":"skcom_magic_rage[2]","name":"战术咏唱·β型","level":7,"desc":"攻击速度+45","descRaw":"攻击速度<@ba.vup>+45","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[3]","iconId":"skcom_magic_rage[3]","name":"战术咏唱·γ型","level":7,"desc":"攻击速度+60","descRaw":"攻击速度<@ba.vup>+60","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":32,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":60},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"施法速度提升","desc":"攻击速度+9","descRaw":"攻击速度+9","bb":{"attack_speed":9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_605_cmedic":{"charId":"char_605_cmedic","name":"预备干员-医疗","appellation":"Reserve Operator - Medic","rarity":4,"profession":"MEDIC","subProfessionId":"physician","subProfessionName":"医师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_605_cmedic","avatarGolden":"char_605_cmedic","portrait":"char_605_cmedic_1","portraitGolden":"char_605_cmedic_1","spine":"char_605_cmedic","subProfIcon":"sub_physician_icon"},"moduleNames":{},"standsIn":["chess_char_3_04_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1218,"atk":340,"def":104,"res":0,"cost":17,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_heal_up[1]","iconId":"skcom_heal_up[1]","name":"治疗强化·α型","level":4,"desc":"攻击力+30%","descRaw":"攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_heal_up[2]","iconId":"skcom_heal_up[2]","name":"治疗强化·β型","level":4,"desc":"攻击力+30%","descRaw":"攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_heal_up[3]","iconId":"skcom_heal_up[3]","name":"治疗强化·γ型","level":4,"desc":"攻击力+55%","descRaw":"攻击力<@ba.vup>+55%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"atk":0.55},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1374,"atk":408,"def":126,"res":0,"cost":17,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_heal_up[1]","iconId":"skcom_heal_up[1]","name":"治疗强化·α型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":30,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_heal_up[2]","iconId":"skcom_heal_up[2]","name":"治疗强化·β型","level":7,"desc":"攻击力+50%","descRaw":"攻击力<@ba.vup>+50%","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":32,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_heal_up[3]","iconId":"skcom_heal_up[3]","name":"治疗强化·γ型","level":7,"desc":"攻击力+70%","descRaw":"攻击力<@ba.vup>+70%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":32,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"atk":0.7},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_heal_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_606_csuppo":{"charId":"char_606_csuppo","name":"预备干员-辅助","appellation":"Reserve Operator - Supporter","rarity":4,"profession":"SUPPORT","subProfessionId":"slower","subProfessionName":"凝滞师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_606_csuppo","avatarGolden":"char_606_csuppo","portrait":"char_606_csuppo_1","portraitGolden":"char_606_csuppo_1","spine":"char_606_csuppo","subProfIcon":"sub_slower_icon"},"moduleNames":{},"standsIn":["chess_char_5_10_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":932,"atk":395,"def":82,"res":20,"cost":14,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_magic_rage[1]","iconId":"skcom_magic_rage[1]","name":"战术咏唱·α型","level":4,"desc":"攻击速度+30","descRaw":"攻击速度<@ba.vup>+30","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[2]","iconId":"skcom_magic_rage[2]","name":"战术咏唱·β型","level":4,"desc":"攻击速度+30","descRaw":"攻击速度<@ba.vup>+30","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[3]","iconId":"skcom_magic_rage[3]","name":"战术咏唱·γ型","level":4,"desc":"攻击速度+45","descRaw":"攻击速度<@ba.vup>+45","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"施法速度提升","desc":"攻击速度+9","descRaw":"攻击速度+9","bb":{"attack_speed":9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1131,"atk":464,"def":96,"res":20,"cost":14,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_magic_rage[1]","iconId":"skcom_magic_rage[1]","name":"战术咏唱·α型","level":7,"desc":"攻击速度+50","descRaw":"攻击速度<@ba.vup>+50","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":50},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[2]","iconId":"skcom_magic_rage[2]","name":"战术咏唱·β型","level":7,"desc":"攻击速度+45","descRaw":"攻击速度<@ba.vup>+45","skillType":"MANUAL","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_magic_rage[3]","iconId":"skcom_magic_rage[3]","name":"战术咏唱·γ型","level":7,"desc":"攻击速度+60","descRaw":"攻击速度<@ba.vup>+60","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":32,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":60},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_attack_speed_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"施法速度提升","desc":"攻击速度+9","descRaw":"攻击速度+9","bb":{"attack_speed":9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_607_cspec":{"charId":"char_607_cspec","name":"预备干员-特种","appellation":"Reserve Operator - Specialist","rarity":4,"profession":"SPECIAL","subProfessionId":"executor","subProfessionName":"处决者","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_607_cspec","avatarGolden":"char_607_cspec","portrait":"char_607_cspec_1","portraitGolden":"char_607_cspec_1","spine":"char_607_cspec","subProfIcon":"sub_executor_icon"},"moduleNames":{},"standsIn":["chess_char_4_04_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":951,"atk":335,"def":247,"res":0,"cost":7,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_born_up[1]","iconId":"skcom_born_up[1]","name":"一击即退·α型","level":4,"desc":"部署后攻击力+20%,防御力+15%","descRaw":"部署后攻击力<@ba.vup>+20%,防御力<@ba.vup>+15%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.15,"atk":0.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_born_up[2]","iconId":"skcom_born_up[2]","name":"一击即退·β型","level":4,"desc":"部署后攻击力+30%,防御力+25%","descRaw":"部署后攻击力<@ba.vup>+30%,防御力<@ba.vup>+25%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.25,"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_born_up[3]","iconId":"skcom_born_up[3]","name":"一击即退·γ型","level":4,"desc":"部署后攻击力+40%,防御力+35%","descRaw":"部署后攻击力<@ba.vup>+40%,防御力<@ba.vup>+35%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.35,"atk":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1181,"atk":416,"def":288,"res":0,"cost":7,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skcom_born_up[1]","iconId":"skcom_born_up[1]","name":"一击即退·α型","level":7,"desc":"部署后攻击力+30%,防御力+30%","descRaw":"部署后攻击力<@ba.vup>+30%,防御力<@ba.vup>+30%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.3,"atk":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skcom_born_up[2]","iconId":"skcom_born_up[2]","name":"一击即退·β型","level":7,"desc":"部署后攻击力+40%,防御力+30%","descRaw":"部署后攻击力<@ba.vup>+40%,防御力<@ba.vup>+30%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.3,"atk":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skcom_born_up[3]","iconId":"skcom_born_up[3]","name":"一击即退·γ型","level":7,"desc":"部署后攻击力+50%,防御力+50%","descRaw":"部署后攻击力<@ba.vup>+50%,防御力<@ba.vup>+50%","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"def":0.5,"atk":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skcom_born_up","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攻击提升","desc":"攻击力+8%","descRaw":"攻击力+8%","bb":{"atk":0.08},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[]}}},"char_608_acpion":{"charId":"char_608_acpion","name":"郁金香","appellation":"Tulip","rarity":6,"profession":"PIONEER","subProfessionId":"pioneer","subProfessionName":"尖兵","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_608_acpion","avatarGolden":"char_608_acpion","portrait":"char_608_acpion_1","portraitGolden":"char_608_acpion_1","spine":"char_608_acpion","subProfIcon":"sub_pioneer_icon"},"moduleNames":{"uniequip_001_acpion":{"name":"郁金香证章","typeName":"ORIGINAL"},"uniequip_002_acpion":{"name":"郁金香证章","typeName":"SOL-X"}},"standsIn":["chess_char_3_12_a","chess_char_4_19_a","chess_char_5_14_a","chess_char_6_02_a","chess_char_6_11_a","chess_char_6_17_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1529,"atk":410,"def":296,"res":0,"cost":13,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acpion_1","iconId":"skchr_acpion_1","name":"钻心","level":4,"desc":"立即获得6点部署费用,并对攻击范围至多2名敌人造成攻击力170%的物理伤害","descRaw":"立即获得<@ba.vup>6点部署费用,并对攻击范围至多2名敌人造成攻击力<@ba.vup>170%的物理伤害","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":21,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"cost":6,"atk_scale":1.7,"max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acpion_2","iconId":"skchr_acpion_2","name":"迅瞬","level":4,"desc":"技能持续时间内逐渐获得6点部署费用,攻击速度+95,并无视目标25%的防御力","descRaw":"技能持续时间内逐渐获得<@ba.vup>6点部署费用,攻击速度+<@ba.vup>95,并无视目标<@ba.vup>25%的防御力","skillType":"MANUAL","durationType":"NONE","duration":10,"spType":"INCREASE_WITH_TIME","spCost":24,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"cost":1,"interval":1.6,"trig_cnt":6,"attack_speed":95,"def_penetrate":0.25},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acpion_3","iconId":"skchr_acpion_3","name":"只余芬芳","level":4,"desc":"立即获得6点费用,对周围的敌人发动8次连续斩击,每次造成相当于攻击力155%的物理伤害,并无视目标50%防御力","descRaw":"立即获得<@ba.vup>6点费用,对周围的敌人发动<@ba.vup>8次连续斩击,每次造成相当于攻击力<@ba.vup>155%的物理伤害,并无视目标<@ba.vup>50%防御力","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":28,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"cost":6,"atk_scale":1.55,"def_penetrate":0.5,"times":8},"bbStr":{},"rangeId":"x-1","rangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]],"prefabId":"skchr_acpion_3","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]]},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无垠之心","desc":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","descRaw":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","bb":{"sp_recovery_per_sec":0.6,"cnt":2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"浪潮之心","desc":"攻击力+10%,击杀敌人时额外获得1点部署费用","descRaw":"攻击力+10%,击杀敌人时额外获得1点部署费用","bb":{"cost":1,"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1904,"atk":470,"def":345,"res":0,"cost":13,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acpion_1","iconId":"skchr_acpion_1","name":"钻心","level":7,"desc":"立即获得6点部署费用,并对攻击范围至多2名敌人造成攻击力200%的物理伤害","descRaw":"立即获得<@ba.vup>6点部署费用,并对攻击范围至多2名敌人造成攻击力<@ba.vup>200%的物理伤害","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":19,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":6,"atk_scale":2,"max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acpion_2","iconId":"skchr_acpion_2","name":"迅瞬","level":7,"desc":"技能持续时间内逐渐获得7点部署费用,攻击速度+110,并无视目标30%的防御力","descRaw":"技能持续时间内逐渐获得<@ba.vup>7点部署费用,攻击速度+<@ba.vup>110,并无视目标<@ba.vup>30%的防御力","skillType":"MANUAL","durationType":"NONE","duration":10,"spType":"INCREASE_WITH_TIME","spCost":23,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":1,"interval":1.4,"trig_cnt":7,"attack_speed":110,"def_penetrate":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acpion_3","iconId":"skchr_acpion_3","name":"只余芬芳","level":7,"desc":"立即获得7点费用,对周围的敌人发动8次连续斩击,每次造成相当于攻击力170%的物理伤害,并无视目标50%防御力","descRaw":"立即获得<@ba.vup>7点费用,对周围的敌人发动<@ba.vup>8次连续斩击,每次造成相当于攻击力<@ba.vup>170%的物理伤害,并无视目标<@ba.vup>50%防御力","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":27,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"cost":7,"atk_scale":1.7,"def_penetrate":0.5,"times":8},"bbStr":{},"rangeId":"x-1","rangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]],"prefabId":"skchr_acpion_3","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]]},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无垠之心","desc":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","descRaw":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","bb":{"sp_recovery_per_sec":0.6,"cnt":2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"浪潮之心","desc":"攻击力+10%,击杀敌人时额外获得1点部署费用","descRaw":"攻击力+10%,击杀敌人时额外获得1点部署费用","bb":{"cost":1,"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acpion","name":"郁金香证章","typeName":"SOL-X","typeIcon":"sol-x","icon":"uniequip_002_acpion","level":1,"attr":{"atk":44,"def":30},"traitOverride":{"desc":"能够阻挡两个敌人,阻挡敌人时攻击力和防御力各+8%","descRaw":"能够阻挡两个敌人,阻挡敌人时攻击力和防御力各+8%","bb":{"atk":0.08,"def":0.08},"bbStr":{},"rangeGrid":null},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1904,"atk":470,"def":345,"res":0,"cost":13,"blockCnt":2,"bat":1.05,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡两个敌人","descRaw":"能够阻挡两个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acpion_1","iconId":"skchr_acpion_1","name":"钻心","level":7,"desc":"立即获得6点部署费用,并对攻击范围至多2名敌人造成攻击力200%的物理伤害","descRaw":"立即获得<@ba.vup>6点部署费用,并对攻击范围至多2名敌人造成攻击力<@ba.vup>200%的物理伤害","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":19,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":6,"atk_scale":2,"max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acpion_2","iconId":"skchr_acpion_2","name":"迅瞬","level":7,"desc":"技能持续时间内逐渐获得7点部署费用,攻击速度+110,并无视目标30%的防御力","descRaw":"技能持续时间内逐渐获得<@ba.vup>7点部署费用,攻击速度+<@ba.vup>110,并无视目标<@ba.vup>30%的防御力","skillType":"MANUAL","durationType":"NONE","duration":10,"spType":"INCREASE_WITH_TIME","spCost":23,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"cost":1,"interval":1.4,"trig_cnt":7,"attack_speed":110,"def_penetrate":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acpion_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acpion_3","iconId":"skchr_acpion_3","name":"只余芬芳","level":7,"desc":"立即获得7点费用,对周围的敌人发动8次连续斩击,每次造成相当于攻击力170%的物理伤害,并无视目标50%防御力","descRaw":"立即获得<@ba.vup>7点费用,对周围的敌人发动<@ba.vup>8次连续斩击,每次造成相当于攻击力<@ba.vup>170%的物理伤害,并无视目标<@ba.vup>50%防御力","skillType":"MANUAL","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":27,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"cost":7,"atk_scale":1.7,"def_penetrate":0.5,"times":8},"bbStr":{},"rangeId":"x-1","rangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]],"prefabId":"skchr_acpion_3","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[2,0],[1,-1],[1,0],[1,1],[0,-2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-2,0]]},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无垠之心","desc":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","descRaw":"部署后第2次开启技能之前,技力自然回复速度+0.6/秒","bb":{"sp_recovery_per_sec":0.6,"cnt":2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"浪潮之心","desc":"攻击力+10%,击杀敌人时额外获得1点部署费用","descRaw":"攻击力+10%,击杀敌人时额外获得1点部署费用","bb":{"cost":1,"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acpion","name":"郁金香证章","typeName":"SOL-X","typeIcon":"sol-x","icon":"uniequip_002_acpion","level":3,"attr":{"atk":65,"def":48},"traitOverride":{"desc":"能够阻挡两个敌人,阻挡敌人时攻击力和防御力各+8%","descRaw":"能够阻挡两个敌人,阻挡敌人时攻击力和防御力各+8%","bb":{"atk":0.08,"def":0.08},"bbStr":{},"rangeGrid":null},"talentChanges":[{"talentIndex":0,"name":"无垠之心","desc":"部署后第2次开启技能之前,技力自然回复速度+1/秒","descRaw":"部署后第2次开启技能之前,技力自然回复速度+1/秒","bb":{"sp_recovery_per_sec":1,"cnt":2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_609_acguad":{"charId":"char_609_acguad","name":"Sharp","appellation":"Sharp","rarity":6,"profession":"WARRIOR","subProfessionId":"fearless","subProfessionName":"无畏者","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_609_acguad","avatarGolden":"char_609_acguad","portrait":"char_609_acguad_1","portraitGolden":"char_609_acguad_1","spine":"char_609_acguad","subProfIcon":"sub_fearless_icon"},"moduleNames":{"uniequip_001_acguad":{"name":"Sharp证章","typeName":"ORIGINAL"},"uniequip_002_acguad":{"name":"Sharp证章","typeName":"DRE-X"}},"standsIn":["chess_char_3_18_a","chess_char_4_22_a","chess_char_4_23_a","chess_char_5_06_a","chess_char_5_13_a","chess_char_6_06_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":2638,"atk":792,"def":241,"res":0,"cost":20,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acguad_1","iconId":"skchr_acguad_1","name":"快刀","level":4,"desc":"攻击力+25%,每次攻击有20%概率变成二连击","descRaw":"攻击力<@ba.vup>+25%,每次攻击有20%概率变成二连击","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"attack@prob1":0.2,"attack@prob2":0.8,"atk":0.25},"bbStr":{},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"prefabId":"skchr_acguad_1","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[0,0],[0,1]]},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acguad_2","iconId":"skchr_acguad_2","name":"亮剑","level":4,"desc":"防御力降至0,生命上限+30%,每次攻击的攻击力提升至160%","descRaw":"防御力<@ba.vdown>降至0,生命上限<@ba.vup>+30%,每次攻击的攻击力提升至<@ba.vup>160%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"attack@atk_scale":1.6,"max_hp":0.3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acguad_3","iconId":"skchr_acguad_3","name":"力战不竭","level":4,"desc":"攻击力+30%;每次攻击时获得可叠加的攻击力+16%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","descRaw":"攻击力<@ba.vup>+30%;每次攻击时获得可叠加的攻击力<@ba.vup>+16%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","skillType":"MANUAL","durationType":"NONE","duration":16,"spType":"INCREASE_WITH_TIME","spCost":48,"initSp":30,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3,"atk_each_stack":0.16,"max_atk_stack_cnt":8},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"隐匿刀刃","desc":"攻击力+15%,获得30%的物理闪避","descRaw":"攻击力+15%,获得30%的物理闪避","bb":{"atk":0.15,"prob":0.3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"寸步不退","desc":"在战场停留30秒后,自身攻击速度+10","descRaw":"在战场停留30秒后,自身攻击速度+10","bb":{"interval":30,"attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":3191,"atk":900,"def":271,"res":0,"cost":20,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acguad_1","iconId":"skchr_acguad_1","name":"快刀","level":7,"desc":"攻击力+40%,每次攻击有20%概率变成二连击","descRaw":"攻击力<@ba.vup>+40%,每次攻击有20%概率变成二连击","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":36,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"attack@prob1":0.2,"attack@prob2":0.8,"atk":0.4},"bbStr":{},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"prefabId":"skchr_acguad_1","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[0,0],[0,1]]},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acguad_2","iconId":"skchr_acguad_2","name":"亮剑","level":7,"desc":"防御力降至0,生命上限+40%,每次攻击的攻击力提升至180%","descRaw":"防御力<@ba.vdown>降至0,生命上限<@ba.vup>+40%,每次攻击的攻击力提升至<@ba.vup>180%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":34,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"attack@atk_scale":1.8,"max_hp":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acguad_3","iconId":"skchr_acguad_3","name":"力战不竭","level":7,"desc":"攻击力+45%;每次攻击时获得可叠加的攻击力+17%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","descRaw":"攻击力<@ba.vup>+45%;每次攻击时获得可叠加的攻击力<@ba.vup>+17%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","skillType":"MANUAL","durationType":"NONE","duration":17,"spType":"INCREASE_WITH_TIME","spCost":46,"initSp":30,"maxChargeTime":1,"increment":1,"bb":{"atk":0.45,"atk_each_stack":0.17,"max_atk_stack_cnt":8},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"隐匿刀刃","desc":"攻击力+15%,获得30%的物理闪避","descRaw":"攻击力+15%,获得30%的物理闪避","bb":{"atk":0.15,"prob":0.3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"寸步不退","desc":"在战场停留30秒后,自身攻击速度+10","descRaw":"在战场停留30秒后,自身攻击速度+10","bb":{"interval":30,"attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acguad","name":"Sharp证章","typeName":"DRE-X","typeIcon":"dre-x","icon":"uniequip_002_acguad","level":1,"attr":{"maxHp":220,"atk":72},"traitOverride":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{"atk_scale":1.15},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击被阻挡的敌人时攻击力提升至115%","moduleDescRaw":"攻击被阻挡的敌人时攻击力提升至<@ba.vup>115%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":3191,"atk":900,"def":271,"res":0,"cost":20,"blockCnt":1,"bat":1.5,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acguad_1","iconId":"skchr_acguad_1","name":"快刀","level":7,"desc":"攻击力+40%,每次攻击有20%概率变成二连击","descRaw":"攻击力<@ba.vup>+40%,每次攻击有20%概率变成二连击","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":36,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"attack@prob1":0.2,"attack@prob2":0.8,"atk":0.4},"bbStr":{},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"prefabId":"skchr_acguad_1","trigger":{"rule":"SKILL_RANGE","rawRule":"DEFAULT","customRangeGrid":[[0,0],[0,1]]},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acguad_2","iconId":"skchr_acguad_2","name":"亮剑","level":7,"desc":"防御力降至0,生命上限+40%,每次攻击的攻击力提升至180%","descRaw":"防御力<@ba.vdown>降至0,生命上限<@ba.vup>+40%,每次攻击的攻击力提升至<@ba.vup>180%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":34,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"attack@atk_scale":1.8,"max_hp":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acguad_3","iconId":"skchr_acguad_3","name":"力战不竭","level":7,"desc":"攻击力+45%;每次攻击时获得可叠加的攻击力+17%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","descRaw":"攻击力<@ba.vup>+45%;每次攻击时获得可叠加的攻击力<@ba.vup>+17%的增益(最多叠加8层),切换目标后层数清零,技能持续期间内干员的生命值始终不会低于1","skillType":"MANUAL","durationType":"NONE","duration":17,"spType":"INCREASE_WITH_TIME","spCost":46,"initSp":30,"maxChargeTime":1,"increment":1,"bb":{"atk":0.45,"atk_each_stack":0.17,"max_atk_stack_cnt":8},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acguad_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"隐匿刀刃","desc":"攻击力+15%,获得30%的物理闪避","descRaw":"攻击力+15%,获得30%的物理闪避","bb":{"atk":0.15,"prob":0.3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"寸步不退","desc":"在战场停留30秒后,自身攻击速度+10","descRaw":"在战场停留30秒后,自身攻击速度+10","bb":{"interval":30,"attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acguad","name":"Sharp证章","typeName":"DRE-X","typeIcon":"dre-x","icon":"uniequip_002_acguad","level":3,"attr":{"maxHp":340,"atk":95},"traitOverride":{"desc":"能够阻挡一个敌人","descRaw":"能够阻挡一个敌人","bb":{"atk_scale":1.15},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击被阻挡的敌人时攻击力提升至115%","moduleDescRaw":"攻击被阻挡的敌人时攻击力提升至<@ba.vup>115%"},"talentChanges":[{"talentIndex":0,"name":"隐匿刀刃","desc":"攻击力+20%,获得35%的物理闪避","descRaw":"攻击力+20%,获得35%的物理闪避","bb":{"atk":0.2,"prob":0.35},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_610_acfend":{"charId":"char_610_acfend","name":"Mechanist","appellation":"Mechanist","rarity":6,"profession":"TANK","subProfessionId":"protector","subProfessionName":"铁卫","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_610_acfend","avatarGolden":"char_610_acfend","portrait":"char_610_acfend_1","portraitGolden":"char_610_acfend_1","spine":"char_610_acfend","subProfIcon":"sub_protector_icon"},"moduleNames":{"uniequip_001_acfend":{"name":"Mechanist证章","typeName":"ORIGINAL"},"uniequip_002_acfend":{"name":"Mechanist证章","typeName":"PRO-X"}},"standsIn":["chess_char_4_17_a","chess_char_5_08_a","chess_char_6_03_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":2604,"atk":283,"def":474,"res":0,"cost":22,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acfend_1","iconId":"skchr_acfend_1","name":"结构稳定","level":4,"desc":"最大生命值+26%,防御力+26%","descRaw":"最大生命值<@ba.vup>+26%,防御力<@ba.vup>+26%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":60,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"max_hp":0.26,"def":0.26},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_1","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acfend_2","iconId":"skchr_acfend_2","name":"不变性原理","level":4,"desc":"防御力+50%,第二天赋的效果提升至2倍","descRaw":"防御力<@ba.vup>+50%,第二天赋的效果提升至<@ba.vup>2倍","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":42,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"def":0.5,"talent_mult":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_2","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acfend_3","iconId":"skchr_acfend_3","name":"应力倒置","level":4,"desc":"技能持续时间内防御力+50%,阻挡数+1,每秒对自身阻挡的敌人造成相当于攻击力40%的法术伤害","descRaw":"技能持续时间内防御力<@ba.vup>+50%,阻挡数<@ba.vup>+1,每秒对自身阻挡的敌人造成相当于攻击力<@ba.vup>40%的法术伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"atk_scale":0.4,"def":0.5,"block_cnt":1},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_3","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"精研材料","desc":"防御力+10%,生命值低于50%时防御力额外+10%","descRaw":"防御力+10%,生命值低于50%时防御力额外+10%","bb":{"acfend_t_1[extra].def":0.1,"def":0.1,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"反馈装甲","desc":"自身阻挡的敌人攻击速度-7","descRaw":"自身阻挡的敌人攻击速度-7","bb":{"attack_speed":-7},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":3211,"atk":322,"def":591,"res":0,"cost":22,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acfend_1","iconId":"skchr_acfend_1","name":"结构稳定","level":7,"desc":"最大生命值+40%,防御力+40%","descRaw":"最大生命值<@ba.vup>+40%,防御力<@ba.vup>+40%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":50,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"max_hp":0.4,"def":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_1","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acfend_2","iconId":"skchr_acfend_2","name":"不变性原理","level":7,"desc":"防御力+65%,第二天赋的效果提升至3倍","descRaw":"防御力<@ba.vup>+65%,第二天赋的效果提升至<@ba.vup>3倍","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"def":0.65,"talent_mult":3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_2","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acfend_3","iconId":"skchr_acfend_3","name":"应力倒置","level":7,"desc":"技能持续时间内防御力+70%,阻挡数+1,每秒对自身阻挡的敌人造成相当于攻击力55%的法术伤害","descRaw":"技能持续时间内防御力<@ba.vup>+70%,阻挡数<@ba.vup>+1,每秒对自身阻挡的敌人造成相当于攻击力<@ba.vup>55%的法术伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":64,"initSp":25,"maxChargeTime":1,"increment":1,"bb":{"atk_scale":0.55,"def":0.7,"block_cnt":1},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_3","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"精研材料","desc":"防御力+10%,生命值低于50%时防御力额外+10%","descRaw":"防御力+10%,生命值低于50%时防御力额外+10%","bb":{"acfend_t_1[extra].def":0.1,"def":0.1,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"反馈装甲","desc":"自身阻挡的敌人攻击速度-7","descRaw":"自身阻挡的敌人攻击速度-7","bb":{"attack_speed":-7},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acfend","name":"Mechanist证章","typeName":"PRO-X","typeIcon":"pro-x","icon":"uniequip_002_acfend","level":1,"attr":{"maxHp":160,"def":60},"traitOverride":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{"def":0.2},"bbStr":{},"rangeGrid":null,"moduleDesc":"阻挡敌人时防御力+20%","moduleDescRaw":"阻挡敌人时防御力<@ba.kw>+20%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":3211,"atk":322,"def":591,"res":0,"cost":22,"blockCnt":3,"bat":1.2,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"0-1","rangeGrid":[[0,0]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acfend_1","iconId":"skchr_acfend_1","name":"结构稳定","level":7,"desc":"最大生命值+40%,防御力+40%","descRaw":"最大生命值<@ba.vup>+40%,防御力<@ba.vup>+40%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":50,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"max_hp":0.4,"def":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_1","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acfend_2","iconId":"skchr_acfend_2","name":"不变性原理","level":7,"desc":"防御力+65%,第二天赋的效果提升至3倍","descRaw":"防御力<@ba.vup>+65%,第二天赋的效果提升至<@ba.vup>3倍","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"def":0.65,"talent_mult":3},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_2","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acfend_3","iconId":"skchr_acfend_3","name":"应力倒置","level":7,"desc":"技能持续时间内防御力+70%,阻挡数+1,每秒对自身阻挡的敌人造成相当于攻击力55%的法术伤害","descRaw":"技能持续时间内防御力<@ba.vup>+70%,阻挡数<@ba.vup>+1,每秒对自身阻挡的敌人造成相当于攻击力<@ba.vup>55%的法术伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":64,"initSp":25,"maxChargeTime":1,"increment":1,"bb":{"atk_scale":0.55,"def":0.7,"block_cnt":1},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acfend_3","trigger":{"rule":"DEFAULT","rawRule":"TAKE_DAMAGE","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"精研材料","desc":"防御力+10%,生命值低于50%时防御力额外+10%","descRaw":"防御力+10%,生命值低于50%时防御力额外+10%","bb":{"acfend_t_1[extra].def":0.1,"def":0.1,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"反馈装甲","desc":"自身阻挡的敌人攻击速度-7","descRaw":"自身阻挡的敌人攻击速度-7","bb":{"attack_speed":-7},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acfend","name":"Mechanist证章","typeName":"PRO-X","typeIcon":"pro-x","icon":"uniequip_002_acfend","level":3,"attr":{"maxHp":220,"def":85},"traitOverride":{"desc":"能够阻挡三个敌人","descRaw":"能够阻挡三个敌人","bb":{"def":0.2},"bbStr":{},"rangeGrid":null,"moduleDesc":"阻挡敌人时防御力+20%","moduleDescRaw":"阻挡敌人时防御力<@ba.kw>+20%"},"talentChanges":[{"talentIndex":0,"name":"精研材料","desc":"防御力+10%,生命值低于50%时防御力额外+20%","descRaw":"防御力+10%,生命值低于50%时防御力额外+20%","bb":{"acfend_t_1[extra].def":0.2,"def":0.1,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_611_acnipe":{"charId":"char_611_acnipe","name":"Stormeye","appellation":"Stormeye","rarity":6,"profession":"SNIPER","subProfessionId":"fastshot","subProfessionName":"速射手","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_611_acnipe","avatarGolden":"char_611_acnipe","portrait":"char_611_acnipe_1","portraitGolden":"char_611_acnipe_1","spine":"char_611_acnipe","subProfIcon":"sub_fastshot_icon"},"moduleNames":{"uniequip_001_acnipe":{"name":"Stormeye证章","typeName":"ORIGINAL"},"uniequip_002_acnipe":{"name":"Stormeye证章","typeName":"MAR-X"}},"standsIn":["chess_char_3_21_a","chess_char_4_02_a","chess_char_5_18_a","chess_char_5_22_a","chess_char_6_01_a","chess_char_6_05_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1272,"atk":413,"def":136,"res":0,"cost":13,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acnipe_1","iconId":"skchr_acnipe_1","name":"破空","level":4,"desc":"攻击力+15%,攻击速度+30,无视攻击目标100防御力","descRaw":"攻击力<@ba.vup>+15%,攻击速度<@ba.vup>+30,无视攻击目标100防御力","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":44,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"atk":0.15,"attack_speed":30,"def_penetrate_fixed":100},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acnipe_2","iconId":"skchr_acnipe_2","name":"心手合一","level":4,"desc":"攻击力+5%,每次攻击额外攻击1个目标\n持续时间无限","descRaw":"攻击力<@ba.vup>+5%,每次攻击额外攻击1个目标\n<@ba.rem>持续时间无限","skillType":"AUTO","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":60,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.05,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acnipe_3","iconId":"skchr_acnipe_3","name":"旋臂","level":4,"desc":"可以同时攻击3个目标,第一天赋的触发概率提高至30%,攻击变为二连击;攻击目标生命值高于90%时额外造成1次伤害","descRaw":"可以同时攻击3个目标,第一天赋的触发概率提高至<@ba.vup>30%,攻击变为二连击;攻击目标生命值高于<@ba.vup>90%时额外造成1次伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":57,"initSp":13,"maxChargeTime":1,"increment":1,"bb":{"attack@max_target":3,"attack@times":2,"talent@prob":0.3,"attack@atk_scale_extra":1,"attack@hp_ratio":0.9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"风坠","desc":"攻击时有25%的概率攻击力提升至180%","descRaw":"攻击时有25%的概率攻击力提升至180%","bb":{"atk_scale":1.8,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"风雨欲来","desc":"自身未进行攻击时,技力回复速度+0.2/秒","descRaw":"自身未进行攻击时,技力回复速度+0.2/秒","bb":{"delay":2,"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1483,"atk":477,"def":152,"res":0,"cost":13,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acnipe_1","iconId":"skchr_acnipe_1","name":"破空","level":7,"desc":"攻击力+15%,攻击速度+50,无视攻击目标100防御力","descRaw":"攻击力<@ba.vup>+15%,攻击速度<@ba.vup>+50,无视攻击目标100防御力","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"atk":0.15,"attack_speed":50,"def_penetrate_fixed":100},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acnipe_2","iconId":"skchr_acnipe_2","name":"心手合一","level":7,"desc":"攻击力+5%,每次攻击额外攻击1个目标\n持续时间无限","descRaw":"攻击力<@ba.vup>+5%,每次攻击额外攻击1个目标\n<@ba.rem>持续时间无限","skillType":"AUTO","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":56,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.05,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acnipe_3","iconId":"skchr_acnipe_3","name":"旋臂","level":7,"desc":"可以同时攻击3个目标,第一天赋的触发概率提高至35%,攻击变为二连击;攻击目标生命值高于90%时额外造成1次伤害","descRaw":"可以同时攻击3个目标,第一天赋的触发概率提高至<@ba.vup>35%,攻击变为二连击;攻击目标生命值高于<@ba.vup>90%时额外造成1次伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":54,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"attack@max_target":3,"attack@times":2,"talent@prob":0.35,"attack@atk_scale_extra":1,"attack@hp_ratio":0.9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"风坠","desc":"攻击时有25%的概率攻击力提升至180%","descRaw":"攻击时有25%的概率攻击力提升至180%","bb":{"atk_scale":1.8,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"风雨欲来","desc":"自身未进行攻击时,技力回复速度+0.2/秒","descRaw":"自身未进行攻击时,技力回复速度+0.2/秒","bb":{"delay":2,"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acnipe","name":"Stormeye证章","typeName":"MAR-X","typeIcon":"mar-x","icon":"uniequip_002_acnipe","level":1,"attr":{"maxHp":104,"atk":38},"traitOverride":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{"atk_scale":1.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击空中单位时攻击力提升至110%","moduleDescRaw":"攻击空中单位时攻击力提升至<@ba.kw>110%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1483,"atk":477,"def":152,"res":0,"cost":13,"blockCnt":1,"bat":1,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":"fly","trait":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acnipe_1","iconId":"skchr_acnipe_1","name":"破空","level":7,"desc":"攻击力+15%,攻击速度+50,无视攻击目标100防御力","descRaw":"攻击力<@ba.vup>+15%,攻击速度<@ba.vup>+50,无视攻击目标100防御力","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"atk":0.15,"attack_speed":50,"def_penetrate_fixed":100},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acnipe_2","iconId":"skchr_acnipe_2","name":"心手合一","level":7,"desc":"攻击力+5%,每次攻击额外攻击1个目标\n持续时间无限","descRaw":"攻击力<@ba.vup>+5%,每次攻击额外攻击1个目标\n<@ba.rem>持续时间无限","skillType":"AUTO","durationType":"NONE","duration":-1,"spType":"INCREASE_WITH_TIME","spCost":56,"initSp":0,"maxChargeTime":1,"increment":1,"bb":{"atk":0.05,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acnipe_3","iconId":"skchr_acnipe_3","name":"旋臂","level":7,"desc":"可以同时攻击3个目标,第一天赋的触发概率提高至35%,攻击变为二连击;攻击目标生命值高于90%时额外造成1次伤害","descRaw":"可以同时攻击3个目标,第一天赋的触发概率提高至<@ba.vup>35%,攻击变为二连击;攻击目标生命值高于<@ba.vup>90%时额外造成1次伤害","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":54,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"attack@max_target":3,"attack@times":2,"talent@prob":0.35,"attack@atk_scale_extra":1,"attack@hp_ratio":0.9},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acnipe_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"风坠","desc":"攻击时有25%的概率攻击力提升至180%","descRaw":"攻击时有25%的概率攻击力提升至180%","bb":{"atk_scale":1.8,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"风雨欲来","desc":"自身未进行攻击时,技力回复速度+0.2/秒","descRaw":"自身未进行攻击时,技力回复速度+0.2/秒","bb":{"delay":2,"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acnipe","name":"Stormeye证章","typeName":"MAR-X","typeIcon":"mar-x","icon":"uniequip_002_acnipe","level":3,"attr":{"maxHp":160,"atk":50},"traitOverride":{"desc":"优先攻击空中单位","descRaw":"优先攻击空中单位","bb":{"atk_scale":1.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击空中单位时攻击力提升至110%","moduleDescRaw":"攻击空中单位时攻击力提升至<@ba.kw>110%"},"talentChanges":[{"talentIndex":0,"name":"风坠","desc":"攻击时有25%的概率攻击力提升至190%","descRaw":"攻击时有25%的概率攻击力提升至190%","bb":{"atk_scale":1.9,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_612_accast":{"charId":"char_612_accast","name":"Pith","appellation":"Pith","rarity":6,"profession":"CASTER","subProfessionId":"splashcaster","subProfessionName":"扩散术师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_612_accast","avatarGolden":"char_612_accast","portrait":"char_612_accast_1","portraitGolden":"char_612_accast_1","spine":"char_612_accast","subProfIcon":"sub_splashcaster_icon"},"moduleNames":{"uniequip_001_accast":{"name":"Pith证章","typeName":"ORIGINAL"},"uniequip_002_accast":{"name":"Pith证章","typeName":"SPC-X"}},"standsIn":["chess_char_5_03_a","chess_char_6_08_a","chess_char_6_12_a","chess_char_6_18_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1372,"atk":756,"def":94,"res":20,"cost":33,"blockCnt":1,"bat":2.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-6","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_accast_1","iconId":"skchr_accast_1","name":"“书我所书”","level":4,"desc":"自身攻击速度+30,溅射范围扩大","descRaw":"自身攻击速度<@ba.vup>+30,溅射范围<@ba.vup>扩大","skillType":"AUTO","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":44,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":30,"attack@projectile_range":1.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_accast_2","iconId":"skchr_accast_2","name":"“为我所为”","level":4,"desc":"自身攻击速度+35,所有【术师】干员攻击力+30%","descRaw":"自身攻击速度<@ba.vup>+35,所有【术师】干员攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":53,"initSp":13,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3,"attack_speed":35},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_accast_3","iconId":"skchr_accast_3","name":"“驭我所驭”","level":4,"desc":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力100%的法术伤害,之后攻击目标数+1,攻击速度+40,溅射范围略微扩大","descRaw":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力<@ba.vup>100%的法术伤害,之后攻击目标数<@ba.vup>+1,攻击速度<@ba.vup>+40,溅射范围<@ba.vup>略微扩大","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":60,"initSp":31,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":40,"atk_scale_aoe":1,"attack@max_target":2,"attack@projectile_range":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"“见我所见”","desc":"攻击无视目标12法术抗性","descRaw":"攻击无视目标12法术抗性","bb":{"magic_resist_penetrate_fixed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"“授我所授”","desc":"自身及相邻四格的【术师】干员攻击力+10%","descRaw":"自身及相邻四格的【术师】干员攻击力+10%","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1629,"atk":851,"def":106,"res":20,"cost":33,"blockCnt":1,"bat":2.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-6","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_accast_1","iconId":"skchr_accast_1","name":"“书我所书”","level":7,"desc":"自身攻击速度+40,溅射范围扩大","descRaw":"自身攻击速度<@ba.vup>+40,溅射范围<@ba.vup>扩大","skillType":"AUTO","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":40,"attack@projectile_range":1.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_accast_2","iconId":"skchr_accast_2","name":"“为我所为”","level":7,"desc":"自身攻击速度+50,所有【术师】干员攻击力+35%","descRaw":"自身攻击速度<@ba.vup>+50,所有【术师】干员攻击力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":50,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"atk":0.35,"attack_speed":50},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_accast_3","iconId":"skchr_accast_3","name":"“驭我所驭”","level":7,"desc":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力140%的法术伤害,之后攻击目标数+1,攻击速度+55,溅射范围略微扩大","descRaw":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力<@ba.vup>140%的法术伤害,之后攻击目标数<@ba.vup>+1,攻击速度<@ba.vup>+55,溅射范围<@ba.vup>略微扩大","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":55,"initSp":33,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":55,"atk_scale_aoe":1.4,"attack@max_target":2,"attack@projectile_range":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"“见我所见”","desc":"攻击无视目标12法术抗性","descRaw":"攻击无视目标12法术抗性","bb":{"magic_resist_penetrate_fixed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"“授我所授”","desc":"自身及相邻四格的【术师】干员攻击力+10%","descRaw":"自身及相邻四格的【术师】干员攻击力+10%","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_accast","name":"Pith证章","typeName":"SPC-X","typeIcon":"spc-x","icon":"uniequip_002_accast","level":1,"attr":{"maxHp":120,"atk":55},"traitOverride":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击范围扩大","moduleDescRaw":"攻击范围<@ba.kw>扩大"},"talentChanges":[{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{},"bbStr":{},"rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2]],"tokenKey":null,"hidden":true}]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1629,"atk":851,"def":106,"res":20,"cost":33,"blockCnt":1,"bat":2.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-6","rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_accast_1","iconId":"skchr_accast_1","name":"“书我所书”","level":7,"desc":"自身攻击速度+40,溅射范围扩大","descRaw":"自身攻击速度<@ba.vup>+40,溅射范围<@ba.vup>扩大","skillType":"AUTO","durationType":"NONE","duration":25,"spType":"INCREASE_WITH_TIME","spCost":40,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":40,"attack@projectile_range":1.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_accast_2","iconId":"skchr_accast_2","name":"“为我所为”","level":7,"desc":"自身攻击速度+50,所有【术师】干员攻击力+35%","descRaw":"自身攻击速度<@ba.vup>+50,所有【术师】干员攻击力<@ba.vup>+35%","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":50,"initSp":16,"maxChargeTime":1,"increment":1,"bb":{"atk":0.35,"attack_speed":50},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_accast_3","iconId":"skchr_accast_3","name":"“驭我所驭”","level":7,"desc":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力140%的法术伤害,之后攻击目标数+1,攻击速度+55,溅射范围略微扩大","descRaw":"开启技能时,立即对攻击范围内的所有敌人造成一次攻击力<@ba.vup>140%的法术伤害,之后攻击目标数<@ba.vup>+1,攻击速度<@ba.vup>+55,溅射范围<@ba.vup>略微扩大","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":55,"initSp":33,"maxChargeTime":1,"increment":1,"bb":{"attack_speed":55,"atk_scale_aoe":1.4,"attack@max_target":2,"attack@projectile_range":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_accast_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"“见我所见”","desc":"攻击无视目标12法术抗性","descRaw":"攻击无视目标12法术抗性","bb":{"magic_resist_penetrate_fixed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"“授我所授”","desc":"自身及相邻四格的【术师】干员攻击力+10%","descRaw":"自身及相邻四格的【术师】干员攻击力+10%","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_accast","name":"Pith证章","typeName":"SPC-X","typeIcon":"spc-x","icon":"uniequip_002_accast","level":3,"attr":{"maxHp":190,"atk":75},"traitOverride":{"desc":"攻击造成群体法术伤害","descRaw":"攻击造成<@ba.kw>群体法术伤害","bb":{"attack@projectile_range":1.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击范围扩大","moduleDescRaw":"攻击范围<@ba.kw>扩大"},"talentChanges":[{"talentIndex":1,"name":"“授我所授”","desc":"自身及相邻四格的【术师】干员攻击力+20%","descRaw":"自身及相邻四格的【术师】干员攻击力+20%","bb":{"atk":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false},{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{},"bbStr":{},"rangeGrid":[[1,0],[1,1],[1,2],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2]],"tokenKey":null,"hidden":true}]}]}}},"char_613_acmedc":{"charId":"char_613_acmedc","name":"Touch","appellation":"Touch","rarity":6,"profession":"MEDIC","subProfessionId":"physician","subProfessionName":"医师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_613_acmedc","avatarGolden":"char_613_acmedc","portrait":"char_613_acmedc_1","portraitGolden":"char_613_acmedc_1","spine":"char_613_acmedc","subProfIcon":"sub_physician_icon"},"moduleNames":{"uniequip_001_acmedc":{"name":"Touch证章","typeName":"ORIGINAL"},"uniequip_002_acmedc":{"name":"Touch证章","typeName":"PHY-X"}},"standsIn":["chess_char_5_11_a","chess_char_6_09_a","chess_char_6_20_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1224,"atk":420,"def":116,"res":0,"cost":19,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acmedc_1","iconId":"skchr_acmedc_1","name":"慨赠","level":4,"desc":"攻击力+40%,每次治疗有40%概率额外治疗一次","descRaw":"攻击力<@ba.vup>+40%,每次治疗有<@ba.vup>40%概率额外治疗一次","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":46,"initSp":14,"maxChargeTime":1,"increment":1,"bb":{"atk":0.4,"attack@prob":0.4},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acmedc_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acmedc_2","iconId":"skchr_acmedc_2","name":"宛如天启","level":4,"desc":"自身攻击距离+1,每次治疗2个目标,所有医疗干员攻击力+21%","descRaw":"自身攻击距离<@ba.vup>+1,每次治疗<@ba.vup>2个目标,所有医疗干员攻击力<@ba.vup>+21%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":37,"initSp":3,"maxChargeTime":1,"increment":1,"bb":{"attack@atk":0.21,"mode":2,"attack@max_target":2},"bbStr":{},"rangeId":"3-10","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[0,0],[0,1],[0,2],[0,3],[0,4],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4]],"prefabId":"skchr_acmedc_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acmedc_3","iconId":"skchr_acmedc_3","name":"恳切福音","level":4,"desc":"自身攻击距离+2,攻击力+20%,每次治疗2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的30%。对生命值不高于一半的友方单位治疗量提高为原来的135%","descRaw":"自身攻击距离<@ba.vup>+2,攻击力<@ba.vup>+20%,每次治疗<@ba.vup>2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的<@ba.vup>30%。对生命值不高于一半的友方单位治疗量提高为原来的<@ba.vup>135%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":40,"maxChargeTime":1,"increment":1,"bb":{"atk":0.2,"mode":3,"attack@max_target":2,"heal_scale":1.35,"hp_ratio":0.5,"attack@addition_heal_scale":0.3},"bbStr":{},"rangeId":"5-2","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[1,5],[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4],[-1,5]],"prefabId":"skchr_acmedc_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攫升","desc":"治疗目标时使其获得3点技力","descRaw":"治疗目标时使其获得3点技力","bb":{"sp":3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"超脱","desc":"攻击范围内的友方干员被击倒时获得5点技力","descRaw":"攻击范围内的友方干员被击倒时获得5点技力","bb":{"sp":5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1314,"atk":490,"def":135,"res":0,"cost":19,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acmedc_1","iconId":"skchr_acmedc_1","name":"慨赠","level":7,"desc":"攻击力+50%,每次治疗有50%概率额外治疗一次","descRaw":"攻击力<@ba.vup>+50%,每次治疗有<@ba.vup>50%概率额外治疗一次","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":43,"initSp":17,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5,"attack@prob":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acmedc_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acmedc_2","iconId":"skchr_acmedc_2","name":"宛如天启","level":7,"desc":"自身攻击距离+1,每次治疗2个目标,所有医疗干员攻击力+30%","descRaw":"自身攻击距离<@ba.vup>+1,每次治疗<@ba.vup>2个目标,所有医疗干员攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":34,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"attack@atk":0.3,"mode":2,"attack@max_target":2},"bbStr":{},"rangeId":"3-10","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[0,0],[0,1],[0,2],[0,3],[0,4],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4]],"prefabId":"skchr_acmedc_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acmedc_3","iconId":"skchr_acmedc_3","name":"恳切福音","level":7,"desc":"自身攻击距离+2,攻击力+30%,每次治疗2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的30%。对生命值不高于一半的友方单位治疗量提高为原来的140%","descRaw":"自身攻击距离<@ba.vup>+2,攻击力<@ba.vup>+30%,每次治疗<@ba.vup>2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的<@ba.vup>30%。对生命值不高于一半的友方单位治疗量提高为原来的<@ba.vup>140%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":45,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3,"mode":3,"attack@max_target":2,"heal_scale":1.4,"hp_ratio":0.5,"attack@addition_heal_scale":0.3},"bbStr":{},"rangeId":"5-2","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[1,5],[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4],[-1,5]],"prefabId":"skchr_acmedc_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攫升","desc":"治疗目标时使其获得3点技力","descRaw":"治疗目标时使其获得3点技力","bb":{"sp":3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"超脱","desc":"攻击范围内的友方干员被击倒时获得5点技力","descRaw":"攻击范围内的友方干员被击倒时获得5点技力","bb":{"sp":5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acmedc","name":"Touch证章","typeName":"PHY-X","typeIcon":"phy-x","icon":"uniequip_002_acmedc","level":1,"attr":{"maxHp":100,"atk":40},"traitOverride":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{"heal_scale":1.15,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"moduleDesc":"治疗生命值低于50%的友方单位时治疗量提升15%","moduleDescRaw":"治疗生命值低于50%的友方单位时治疗量提升<@ba.kw>15%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1314,"atk":490,"def":135,"res":0,"cost":19,"blockCnt":1,"bat":2.85,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-3","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1],[-1,2],[-1,3]],"dmgType":"heal","attackKind":"heal","projectile":"orb","canHitFly":false,"targetPriority":null,"trait":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acmedc_1","iconId":"skchr_acmedc_1","name":"慨赠","level":7,"desc":"攻击力+50%,每次治疗有50%概率额外治疗一次","descRaw":"攻击力<@ba.vup>+50%,每次治疗有<@ba.vup>50%概率额外治疗一次","skillType":"MANUAL","durationType":"NONE","duration":20,"spType":"INCREASE_WITH_TIME","spCost":43,"initSp":17,"maxChargeTime":1,"increment":1,"bb":{"atk":0.5,"attack@prob":0.5},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acmedc_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acmedc_2","iconId":"skchr_acmedc_2","name":"宛如天启","level":7,"desc":"自身攻击距离+1,每次治疗2个目标,所有医疗干员攻击力+30%","descRaw":"自身攻击距离<@ba.vup>+1,每次治疗<@ba.vup>2个目标,所有医疗干员攻击力<@ba.vup>+30%","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":34,"initSp":6,"maxChargeTime":1,"increment":1,"bb":{"attack@atk":0.3,"mode":2,"attack@max_target":2},"bbStr":{},"rangeId":"3-10","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[0,0],[0,1],[0,2],[0,3],[0,4],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4]],"prefabId":"skchr_acmedc_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acmedc_3","iconId":"skchr_acmedc_3","name":"恳切福音","level":7,"desc":"自身攻击距离+2,攻击力+30%,每次治疗2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的30%。对生命值不高于一半的友方单位治疗量提高为原来的140%","descRaw":"自身攻击距离<@ba.vup>+2,攻击力<@ba.vup>+30%,每次治疗<@ba.vup>2个目标,并额外治疗一次目标或目标相邻1个友方单位,治疗量为主目标的<@ba.vup>30%。对生命值不高于一半的友方单位治疗量提高为原来的<@ba.vup>140%","skillType":"MANUAL","durationType":"NONE","duration":40,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":45,"maxChargeTime":1,"increment":1,"bb":{"atk":0.3,"mode":3,"attack@max_target":2,"heal_scale":1.4,"hp_ratio":0.5,"attack@addition_heal_scale":0.3},"bbStr":{},"rangeId":"5-2","rangeGrid":[[1,0],[1,1],[1,2],[1,3],[1,4],[1,5],[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[-1,0],[-1,1],[-1,2],[-1,3],[-1,4],[-1,5]],"prefabId":"skchr_acmedc_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"攫升","desc":"治疗目标时使其获得3点技力","descRaw":"治疗目标时使其获得3点技力","bb":{"sp":3},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"超脱","desc":"攻击范围内的友方干员被击倒时获得5点技力","descRaw":"攻击范围内的友方干员被击倒时获得5点技力","bb":{"sp":5},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acmedc","name":"Touch证章","typeName":"PHY-X","typeIcon":"phy-x","icon":"uniequip_002_acmedc","level":3,"attr":{"maxHp":150,"atk":50},"traitOverride":{"desc":"恢复友方单位生命","descRaw":"恢复友方单位生命","bb":{"heal_scale":1.15,"hp_ratio":0.5},"bbStr":{},"rangeGrid":null,"moduleDesc":"治疗生命值低于50%的友方单位时治疗量提升15%","moduleDescRaw":"治疗生命值低于50%的友方单位时治疗量提升<@ba.kw>15%"},"talentChanges":[{"talentIndex":1,"name":"超脱","desc":"攻击范围内的友方干员被击倒时获得8点技力","descRaw":"攻击范围内的友方干员被击倒时获得8点技力","bb":{"sp":8},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_614_acsupo":{"charId":"char_614_acsupo","name":"Raidian","appellation":"Raidian","rarity":6,"profession":"SUPPORT","subProfessionId":"slower","subProfessionName":"凝滞师","position":"RANGED","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_614_acsupo","avatarGolden":"char_614_acsupo","portrait":"char_614_acsupo_1","portraitGolden":"char_614_acsupo_1","spine":"char_614_acsupo","subProfIcon":"sub_slower_icon"},"moduleNames":{"uniequip_001_acsupo":{"name":"Raidian证章","typeName":"ORIGINAL"},"uniequip_002_acsupo":{"name":"Raidian证章","typeName":"DEC-X"}},"standsIn":["chess_char_4_13_a","chess_char_5_12_a","chess_char_5_20_a","chess_char_6_04_a","chess_char_6_15_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1160,"atk":415,"def":105,"res":25,"cost":16,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acsupo_1","iconId":"skchr_acsupo_1","name":"双声","level":4,"desc":"攻击力+25%,额外攻击一个目标","descRaw":"攻击力<@ba.vup>+25%,额外攻击一个目标","skillType":"MANUAL","durationType":"NONE","duration":24,"spType":"INCREASE_WITH_TIME","spCost":35,"initSp":5,"maxChargeTime":1,"increment":1,"bb":{"atk":0.25,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acsupo_2","iconId":"skchr_acsupo_2","name":"三形","level":4,"desc":"攻击间隔略微缩短,同时攻击三个目标,攻击造成的停顿时间延长至1.1秒","descRaw":"攻击间隔<@ba.vup>略微缩短,同时攻击三个目标,攻击造成的<$ba.sluggish>停顿时间延长至<@ba.vup>1.1秒","skillType":"MANUAL","durationType":"NONE","duration":14,"spType":"INCREASE_WITH_TIME","spCost":41,"initSp":15,"maxChargeTime":1,"increment":1,"bb":{"base_attack_time":-0.1,"attack@max_target":3,"attack@sluggish":1.1},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acsupo_3","iconId":"skchr_acsupo_3","name":"信号跃动","level":4,"desc":"攻击范围扩大,攻击力+40%,第一天赋的效果提升至2.0倍,攻击范围内所有敌人受到10%的脆弱效果和10%的虚弱效果","descRaw":"攻击范围扩大,攻击力<@ba.vup>+40%,第一天赋的效果提升至<@ba.vup>2.0倍,攻击范围内所有敌人受到<@ba.vup>10%的<$ba.fragile>脆弱效果和<@ba.vup>10%的<$ba.weaken>虚弱效果","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":45,"maxChargeTime":1,"increment":1,"bb":{"acsupo_s_3.atk":0.4,"talent_scale":2,"damage_scale":1.1,"atk":0.9},"bbStr":{},"rangeId":"y-4","rangeGrid":[[2,-1],[2,0],[2,1],[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[0,3],[-1,-1],[-1,0],[-1,1],[-1,2],[-2,-1],[-2,0],[-2,1]],"prefabId":"skchr_acsupo_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"同调","desc":"攻击速度+15,相邻的干员攻击速度+10","descRaw":"攻击速度+15,相邻的干员攻击速度+10","bb":{"attack_speed":15,"acsupo_t_1[ally].attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"诱引","desc":"攻击范围内敌人的物理和法术命中率降低10%","descRaw":"攻击范围内敌人的物理和法术命中率降低10%","bb":{"damage_hitrate_physical":-0.1,"damage_hitrate_magical":-0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1352,"atk":471,"def":118,"res":25,"cost":16,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acsupo_1","iconId":"skchr_acsupo_1","name":"双声","level":7,"desc":"攻击力+40%,额外攻击一个目标","descRaw":"攻击力<@ba.vup>+40%,额外攻击一个目标","skillType":"MANUAL","durationType":"NONE","duration":24,"spType":"INCREASE_WITH_TIME","spCost":30,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.4,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acsupo_2","iconId":"skchr_acsupo_2","name":"三形","level":7,"desc":"攻击间隔缩短,同时攻击三个目标,攻击造成的停顿时间延长至1.2秒","descRaw":"攻击间隔<@ba.vup>缩短,同时攻击三个目标,攻击造成的<$ba.sluggish>停顿时间延长至<@ba.vup>1.2秒","skillType":"MANUAL","durationType":"NONE","duration":17,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"base_attack_time":-0.2,"attack@max_target":3,"attack@sluggish":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acsupo_3","iconId":"skchr_acsupo_3","name":"信号跃动","level":7,"desc":"攻击范围扩大,攻击力+50%,第一天赋的效果提升至2.5倍,攻击范围内所有敌人受到20%的脆弱效果和20%的虚弱效果","descRaw":"攻击范围扩大,攻击力<@ba.vup>+50%,第一天赋的效果提升至<@ba.vup>2.5倍,攻击范围内所有敌人受到<@ba.vup>20%的<$ba.fragile>脆弱效果和<@ba.vup>20%的<$ba.weaken>虚弱效果","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":50,"maxChargeTime":1,"increment":1,"bb":{"acsupo_s_3.atk":0.5,"talent_scale":2.5,"damage_scale":1.2,"atk":0.8},"bbStr":{},"rangeId":"y-4","rangeGrid":[[2,-1],[2,0],[2,1],[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[0,3],[-1,-1],[-1,0],[-1,1],[-1,2],[-2,-1],[-2,0],[-2,1]],"prefabId":"skchr_acsupo_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"同调","desc":"攻击速度+15,相邻的干员攻击速度+10","descRaw":"攻击速度+15,相邻的干员攻击速度+10","bb":{"attack_speed":15,"acsupo_t_1[ally].attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"诱引","desc":"攻击范围内敌人的物理和法术命中率降低10%","descRaw":"攻击范围内敌人的物理和法术命中率降低10%","bb":{"damage_hitrate_physical":-0.1,"damage_hitrate_magical":-0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acsupo","name":"Raidian证章","typeName":"DEC-X","typeIcon":"dec-x","icon":"uniequip_002_acsupo","level":1,"attr":{"maxHp":78,"atk":34},"traitOverride":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击范围内存在敌人时技力自然恢复速度+0.2/秒","moduleDescRaw":"攻击范围内存在敌人时技力自然恢复速度+0.2/秒"},"talentChanges":[{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":true}]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1352,"atk":471,"def":118,"res":25,"cost":16,"blockCnt":1,"bat":1.9,"aspd":100,"respawnTime":70,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"y-2","rangeGrid":[[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[-1,-1],[-1,0],[-1,1],[-1,2]],"dmgType":"arts","attackKind":"ranged","projectile":"bolt","canHitFly":true,"targetPriority":null,"trait":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acsupo_1","iconId":"skchr_acsupo_1","name":"双声","level":7,"desc":"攻击力+40%,额外攻击一个目标","descRaw":"攻击力<@ba.vup>+40%,额外攻击一个目标","skillType":"MANUAL","durationType":"NONE","duration":24,"spType":"INCREASE_WITH_TIME","spCost":30,"initSp":10,"maxChargeTime":1,"increment":1,"bb":{"atk":0.4,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acsupo_2","iconId":"skchr_acsupo_2","name":"三形","level":7,"desc":"攻击间隔缩短,同时攻击三个目标,攻击造成的停顿时间延长至1.2秒","descRaw":"攻击间隔<@ba.vup>缩短,同时攻击三个目标,攻击造成的<$ba.sluggish>停顿时间延长至<@ba.vup>1.2秒","skillType":"MANUAL","durationType":"NONE","duration":17,"spType":"INCREASE_WITH_TIME","spCost":38,"initSp":20,"maxChargeTime":1,"increment":1,"bb":{"base_attack_time":-0.2,"attack@max_target":3,"attack@sluggish":1.2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acsupo_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acsupo_3","iconId":"skchr_acsupo_3","name":"信号跃动","level":7,"desc":"攻击范围扩大,攻击力+50%,第一天赋的效果提升至2.5倍,攻击范围内所有敌人受到20%的脆弱效果和20%的虚弱效果","descRaw":"攻击范围扩大,攻击力<@ba.vup>+50%,第一天赋的效果提升至<@ba.vup>2.5倍,攻击范围内所有敌人受到<@ba.vup>20%的<$ba.fragile>脆弱效果和<@ba.vup>20%的<$ba.weaken>虚弱效果","skillType":"MANUAL","durationType":"NONE","duration":35,"spType":"INCREASE_WITH_TIME","spCost":70,"initSp":50,"maxChargeTime":1,"increment":1,"bb":{"acsupo_s_3.atk":0.5,"talent_scale":2.5,"damage_scale":1.2,"atk":0.8},"bbStr":{},"rangeId":"y-4","rangeGrid":[[2,-1],[2,0],[2,1],[1,-1],[1,0],[1,1],[1,2],[0,-1],[0,0],[0,1],[0,2],[0,3],[-1,-1],[-1,0],[-1,1],[-1,2],[-2,-1],[-2,0],[-2,1]],"prefabId":"skchr_acsupo_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"同调","desc":"攻击速度+15,相邻的干员攻击速度+10","descRaw":"攻击速度+15,相邻的干员攻击速度+10","bb":{"attack_speed":15,"acsupo_t_1[ally].attack_speed":10},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"诱引","desc":"攻击范围内敌人的物理和法术命中率降低10%","descRaw":"攻击范围内敌人的物理和法术命中率降低10%","bb":{"damage_hitrate_physical":-0.1,"damage_hitrate_magical":-0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acsupo","name":"Raidian证章","typeName":"DEC-X","typeIcon":"dec-x","icon":"uniequip_002_acsupo","level":3,"attr":{"maxHp":98,"atk":52},"traitOverride":{"desc":"攻击造成法术伤害,并对敌人造成短暂的停顿","descRaw":"攻击造成<@ba.kw>法术伤害,并对敌人造成短暂的<$ba.sluggish>停顿","bb":{"sluggish":0.8},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击范围内存在敌人时技力自然恢复速度+0.2/秒","moduleDescRaw":"攻击范围内存在敌人时技力自然恢复速度+0.2/秒"},"talentChanges":[{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{"sp_recovery_per_sec":0.2},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":true},{"talentIndex":0,"name":"同调","desc":"攻击速度+20,相邻的干员攻击速度+12","descRaw":"攻击速度+20,相邻的干员攻击速度+12","bb":{"attack_speed":20,"acsupo_t_1[ally].attack_speed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_615_acspec":{"charId":"char_615_acspec","name":"Misery","appellation":"Misery","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","subProfessionName":"处决者","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_615_acspec","avatarGolden":"char_615_acspec","portrait":"char_615_acspec_1","portraitGolden":"char_615_acspec_1","spine":"char_615_acspec","subProfIcon":"sub_executor_icon"},"moduleNames":{"uniequip_001_acspec":{"name":"Misery证章","typeName":"ORIGINAL"},"uniequip_002_acspec":{"name":"Misery证章","typeName":"EXE-X"}},"standsIn":["chess_char_4_16_a","chess_char_5_17_a","chess_char_6_13_a","chess_char_6_19_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1154,"atk":399,"def":247,"res":0,"cost":9,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acspec_1","iconId":"skchr_acspec_1","name":"物理的服从","level":4,"desc":"部署后第一天赋触发概率提升至25%,获得45%物理闪避","descRaw":"部署后第一天赋触发概率提升至<@ba.vup>25%,获得<@ba.vup>45%物理闪避","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"attack@normal_prob":0.75,"attack@prob":0.25,"prob":0.45},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acspec_2","iconId":"skchr_acspec_2","name":"战争的恭顺","level":4,"desc":"部署后攻击力+30%,攻击速度+15","descRaw":"部署后攻击力<@ba.vup>+30%,攻击速度<@ba.vup>+15","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"atk":0.3,"attack_speed":15},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acspec_3","iconId":"skchr_acspec_3","name":"空间的归依","level":4,"desc":"部署后立即对周围所有敌人造成相当于攻击力210%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人小力地拖拽至面前并施加2.5秒停顿","descRaw":"部署后立即对周围所有敌人造成相当于攻击力<@ba.vup>210%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人<@ba.vup>小力地拖拽至面前并施加<@ba.vup>2.5秒<$ba.sluggish>停顿","skillType":"PASSIVE","durationType":"NONE","duration":-1,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"sluggish":2.5,"atk_scale":2.1,"force":0},"bbStr":{},"rangeId":"x-4","rangeGrid":[[1,-1],[1,0],[1,1],[0,-1],[0,0],[0,1],[-1,-1],[-1,0],[-1,1]],"prefabId":"skchr_acspec_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"二象命末","desc":"攻击时有10%概率造成二连击","descRaw":"攻击时有10%概率造成二连击","bb":{"attack@prob":0.1,"attack@normal_prob":0.9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"四维分离","desc":"周围四格内仅存在一名敌人时,攻击力+10%","descRaw":"周围四格内仅存在一名敌人时,攻击力+10%","bb":{"atk":0.1,"cnt":1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":1370,"atk":474,"def":279,"res":0,"cost":9,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acspec_1","iconId":"skchr_acspec_1","name":"物理的服从","level":7,"desc":"部署后第一天赋触发概率提升至25%,获得60%物理闪避","descRaw":"部署后第一天赋触发概率提升至<@ba.vup>25%,获得<@ba.vup>60%物理闪避","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"attack@normal_prob":0.75,"attack@prob":0.25,"prob":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acspec_2","iconId":"skchr_acspec_2","name":"战争的恭顺","level":7,"desc":"部署后攻击力+45%,攻击速度+15","descRaw":"部署后攻击力<@ba.vup>+45%,攻击速度<@ba.vup>+15","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"atk":0.45,"attack_speed":15},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acspec_3","iconId":"skchr_acspec_3","name":"空间的归依","level":7,"desc":"部署后立即对周围所有敌人造成相当于攻击力240%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人小力地拖拽至面前并施加2.5秒停顿","descRaw":"部署后立即对周围所有敌人造成相当于攻击力<@ba.vup>240%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人<@ba.vup>小力地拖拽至面前并施加<@ba.vup>2.5秒<$ba.sluggish>停顿","skillType":"PASSIVE","durationType":"NONE","duration":-1,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"sluggish":2.5,"atk_scale":2.4,"force":0},"bbStr":{},"rangeId":"x-4","rangeGrid":[[1,-1],[1,0],[1,1],[0,-1],[0,0],[0,1],[-1,-1],[-1,0],[-1,1]],"prefabId":"skchr_acspec_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"二象命末","desc":"攻击时有10%概率造成二连击","descRaw":"攻击时有10%概率造成二连击","bb":{"attack@prob":0.1,"attack@normal_prob":0.9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"四维分离","desc":"周围四格内仅存在一名敌人时,攻击力+10%","descRaw":"周围四格内仅存在一名敌人时,攻击力+10%","bb":{"atk":0.1,"cnt":1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acspec","name":"Misery证章","typeName":"EXE-X","typeIcon":"exe-x","icon":"uniequip_002_acspec","level":1,"attr":{"maxHp":78,"atk":30,"def":19},"traitOverride":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"周围四格没有友方干员时攻击力+10%","moduleDescRaw":"周围四格没有友方干员时攻击力<@ba.kw>+10%"},"talentChanges":[]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":1370,"atk":474,"def":279,"res":0,"cost":9,"blockCnt":1,"bat":0.93,"aspd":100,"respawnTime":18,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"1-1","rangeGrid":[[0,0],[0,1]],"dmgType":"phys","attackKind":"melee","projectile":"none","canHitFly":false,"targetPriority":null,"trait":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_acspec_1","iconId":"skchr_acspec_1","name":"物理的服从","level":7,"desc":"部署后第一天赋触发概率提升至25%,获得60%物理闪避","descRaw":"部署后第一天赋触发概率提升至<@ba.vup>25%,获得<@ba.vup>60%物理闪避","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"attack@normal_prob":0.75,"attack@prob":0.25,"prob":0.6},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null},{"skillId":"skchr_acspec_2","iconId":"skchr_acspec_2","name":"战争的恭顺","level":7,"desc":"部署后攻击力+45%,攻击速度+15","descRaw":"部署后攻击力<@ba.vup>+45%,攻击速度<@ba.vup>+15","skillType":"PASSIVE","durationType":"NONE","duration":10,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"atk":0.45,"attack_speed":15},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_acspec_2","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":1,"overrideTokenKey":null},{"skillId":"skchr_acspec_3","iconId":"skchr_acspec_3","name":"空间的归依","level":7,"desc":"部署后立即对周围所有敌人造成相当于攻击力240%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人小力地拖拽至面前并施加2.5秒停顿","descRaw":"部署后立即对周围所有敌人造成相当于攻击力<@ba.vup>240%的物理伤害,开启空间源石技艺将所有未被阻挡的敌人<@ba.vup>小力地拖拽至面前并施加<@ba.vup>2.5秒<$ba.sluggish>停顿","skillType":"PASSIVE","durationType":"NONE","duration":-1,"spType":"ON_DEPLOY","spCost":0,"initSp":0,"maxChargeTime":0,"increment":0,"bb":{"sluggish":2.5,"atk_scale":2.4,"force":0},"bbStr":{},"rangeId":"x-4","rangeGrid":[[1,-1],[1,0],[1,1],[0,-1],[0,0],[0,1],[-1,-1],[-1,0],[-1,1]],"prefabId":"skchr_acspec_3","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":2,"overrideTokenKey":null}],"talents":[{"index":0,"name":"二象命末","desc":"攻击时有10%概率造成二连击","descRaw":"攻击时有10%概率造成二连击","bb":{"attack@prob":0.1,"attack@normal_prob":0.9},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"四维分离","desc":"周围四格内仅存在一名敌人时,攻击力+10%","descRaw":"周围四格内仅存在一名敌人时,攻击力+10%","bb":{"atk":0.1,"cnt":1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_acspec","name":"Misery证章","typeName":"EXE-X","typeIcon":"exe-x","icon":"uniequip_002_acspec","level":3,"attr":{"maxHp":114,"atk":40,"def":26},"traitOverride":{"desc":"再部署时间大幅度减少","descRaw":"再部署时间大幅度<@ba.kw>减少","bb":{"atk":0.1},"bbStr":{},"rangeGrid":null,"moduleDesc":"周围四格没有友方干员时攻击力+10%","moduleDescRaw":"周围四格没有友方干员时攻击力<@ba.kw>+10%"},"talentChanges":[{"talentIndex":0,"name":"二象命末","desc":"攻击力+5%,攻击时有15%概率造成二连击","descRaw":"攻击力+5%,攻击时有15%概率造成二连击","bb":{"atk":0.05,"attack@prob":0.15,"attack@normal_prob":0.85},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false}]}]}}},"char_617_sharp2":{"charId":"char_617_sharp2","name":"领主·Sharp","appellation":"Lord/Sharp","rarity":6,"profession":"WARRIOR","subProfessionId":"lord","subProfessionName":"领主","position":"MELEE","nationId":null,"isNotObtainable":true,"assets":{"avatar":"char_617_sharp2","avatarGolden":"char_617_sharp2_2","portrait":"char_617_sharp2_1","portraitGolden":"char_617_sharp2_2","spine":"char_617_sharp2","subProfIcon":"sub_lord_icon"},"moduleNames":{"uniequip_001_sharp2":{"name":"领主·Sharp证章","typeName":"ORIGINAL"},"uniequip_002_sharp2":{"name":"领主·Sharp证章","typeName":"LOR-X"}},"standsIn":["chess_char_4_09_a","chess_char_5_19_a","chess_char_6_07_a","chess_char_6_10_a"],"forms":{"2/1/4/0":{"status":{"phase":2,"level":1,"skillLevel":4,"equipLevel":0},"stats":{"maxHp":1865,"atk":521,"def":383,"res":10,"cost":21,"blockCnt":2,"bat":1.3,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-12","rangeGrid":[[1,0],[1,1],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":null,"trait":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_sharp2_1","iconId":"skchr_sharp2_1","name":"沉默的爆发","level":4,"desc":"攻击力+130%,攻击速度+35,同时攻击2个目标,远程攻击不再降低攻击力","descRaw":"攻击力<@ba.vup>+130%,攻击速度<@ba.vup>+35,同时攻击<@ba.vup>2个目标,远程攻击不再降低攻击力","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":45,"initSp":22,"maxChargeTime":1,"increment":1,"bb":{"atk":1.3,"attack_speed":35,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_sharp2_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无声之锋","desc":"攻击力+20%,获得25%的法术闪避","descRaw":"攻击力+20%,获得25%的法术闪避","bb":{"atk":0.2,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"陷阵勇气","desc":"攻击范围内存在2名及以上敌人时,攻击速度+12","descRaw":"攻击范围内存在2名及以上敌人时,攻击速度+12","bb":{"cnt":2,"attack_speed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[]},"2/60/7/1":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":1},"stats":{"maxHp":2194,"atk":603,"def":435,"res":10,"cost":21,"blockCnt":2,"bat":1.3,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-12","rangeGrid":[[1,0],[1,1],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":null,"trait":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_sharp2_1","iconId":"skchr_sharp2_1","name":"沉默的爆发","level":7,"desc":"攻击力+180%,攻击速度+50,同时攻击2个目标,远程攻击不再降低攻击力","descRaw":"攻击力<@ba.vup>+180%,攻击速度<@ba.vup>+50,同时攻击<@ba.vup>2个目标,远程攻击不再降低攻击力","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":42,"initSp":24,"maxChargeTime":1,"increment":1,"bb":{"atk":1.8,"attack_speed":50,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_sharp2_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无声之锋","desc":"攻击力+20%,获得25%的法术闪避","descRaw":"攻击力+20%,获得25%的法术闪避","bb":{"atk":0.2,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"陷阵勇气","desc":"攻击范围内存在2名及以上敌人时,攻击速度+12","descRaw":"攻击范围内存在2名及以上敌人时,攻击速度+12","bb":{"cnt":2,"attack_speed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_sharp2","name":"领主·Sharp证章","typeName":"LOR-X","typeIcon":"lor-x","icon":"uniequip_002_sharp2","level":1,"attr":{"maxHp":180,"atk":38},"traitOverride":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击附带10%攻击力的法术伤害","moduleDescRaw":"攻击附带<@ba.vup>10%攻击力的法术伤害"},"talentChanges":[{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{"magic_atk_scale":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":true}]}]},"2/60/7/3":{"status":{"phase":2,"level":60,"skillLevel":7,"equipLevel":3},"stats":{"maxHp":2194,"atk":603,"def":435,"res":10,"cost":21,"blockCnt":2,"bat":1.3,"aspd":100,"respawnTime":80,"spRecovery":1,"hpRecoveryPerSec":0,"moveSpeed":1,"tauntLevel":0,"massLevel":0,"deployLimit":1,"deckStack":0},"immunities":{"stun":false,"silence":false,"sleep":false,"frozen":false,"levitate":false},"rangeId":"3-12","rangeGrid":[[1,0],[1,1],[0,0],[0,1],[0,2],[0,3],[-1,0],[-1,1]],"dmgType":"phys","attackKind":"ranged","projectile":"arrow","canHitFly":true,"targetPriority":null,"trait":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null},"skills":[{"skillId":"skchr_sharp2_1","iconId":"skchr_sharp2_1","name":"沉默的爆发","level":7,"desc":"攻击力+180%,攻击速度+50,同时攻击2个目标,远程攻击不再降低攻击力","descRaw":"攻击力<@ba.vup>+180%,攻击速度<@ba.vup>+50,同时攻击<@ba.vup>2个目标,远程攻击不再降低攻击力","skillType":"MANUAL","durationType":"NONE","duration":30,"spType":"INCREASE_WITH_TIME","spCost":42,"initSp":24,"maxChargeTime":1,"increment":1,"bb":{"atk":1.8,"attack_speed":50,"attack@max_target":2},"bbStr":{},"rangeId":null,"rangeGrid":null,"prefabId":"skchr_sharp2_1","trigger":{"rule":"DEFAULT","rawRule":"DEFAULT","customRangeGrid":null},"index":0,"overrideTokenKey":null}],"talents":[{"index":0,"name":"无声之锋","desc":"攻击力+20%,获得25%的法术闪避","descRaw":"攻击力+20%,获得25%的法术闪避","bb":{"atk":0.2,"prob":0.25},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false},{"index":1,"name":"陷阵勇气","desc":"攻击范围内存在2名及以上敌人时,攻击速度+12","descRaw":"攻击范围内存在2名及以上敌人时,攻击速度+12","bb":{"cnt":2,"attack_speed":12},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false,"fromModule":false}],"displayTokens":[],"tokens":[],"modules":[{"uniEquipId":"uniequip_002_sharp2","name":"领主·Sharp证章","typeName":"LOR-X","typeIcon":"lor-x","icon":"uniequip_002_sharp2","level":3,"attr":{"maxHp":300,"atk":63},"traitOverride":{"desc":"可以进行远程攻击,但此时攻击力降低至80%","descRaw":"可以进行<@ba.kw>远程攻击,但此时攻击力降低至80%","bb":{"atk_scale":0.8},"bbStr":{},"rangeGrid":null,"moduleDesc":"攻击附带10%攻击力的法术伤害","moduleDescRaw":"攻击附带<@ba.vup>10%攻击力的法术伤害"},"talentChanges":[{"talentIndex":0,"name":"无声之锋","desc":"攻击力+25%,获得35%的法术闪避","descRaw":"攻击力+25%,获得35%的法术闪避","bb":{"atk":0.25,"prob":0.35},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":false},{"talentIndex":-1,"name":null,"desc":null,"descRaw":null,"bb":{"magic_atk_scale":0.1},"bbStr":{},"rangeGrid":null,"tokenKey":null,"hidden":true}]}]}}}},"diy":{"slots":{"chess_char_5_diy1_a":{"tier":5,"goldenId":"chess_char_5_diy1_b","shopLevel":5,"requirement":"TIER_6"},"chess_char_5_diy2_a":{"tier":5,"goldenId":"chess_char_5_diy2_b","shopLevel":5,"requirement":"TIER_6"},"chess_char_6_diy1_a":{"tier":6,"goldenId":"chess_char_6_diy1_b","shopLevel":6,"requirement":"TIER_6"},"chess_char_6_diy2_a":{"tier":6,"goldenId":"chess_char_6_diy2_b","shopLevel":6,"requirement":"TIER_6"}},"prototypes":{"5":["char_601_cguard","char_602_cdfend","char_603_csnipe","char_604_ccast","char_605_cmedic","char_606_csuppo","char_608_acpion","char_609_acguad","char_610_acfend","char_611_acnipe","char_612_accast","char_613_acmedc","char_614_acsupo","char_615_acspec","char_617_sharp2"],"6":["char_608_acpion","char_609_acguad","char_610_acfend","char_611_acnipe","char_612_accast","char_613_acmedc","char_614_acsupo","char_615_acspec","char_617_sharp2"]},"ownedPool":["char_003_kalts","char_010_chen","char_017_huang","char_112_siege","char_113_cqbw","char_134_ifrit","char_147_shining","char_179_cgbird","char_180_amgoat","char_188_helage","char_197_poca","char_225_haak","char_248_mgllan","char_250_phatom","char_293_thorns","char_300_phenxi","char_322_lmlee","char_340_shwaz","char_362_saga","char_377_gdglow","char_400_weedy","char_416_zumama","char_450_necras","char_456_ash","char_479_sleach","char_485_pallas","char_1013_chen2","char_1015_aglna2","char_1029_yato2","char_1031_slent2","char_1034_jesca2","char_1035_wisdel","char_1042_phatm2","char_1043_leizi2","char_1044_hsgma2","char_1048_orchd2","char_1050_chen3","char_1051_headb2","char_1052_kalts2","char_1502_crosly","char_2012_typhon","char_2013_cerber","char_2014_nian","char_2023_ling","char_2024_chyue","char_2025_shu","char_2027_wang","char_4009_irene","char_4011_lessng","char_4027_heyak","char_4037_demetr","char_4046_ebnhlz","char_4048_doroth","char_4055_bgsnow","char_4065_judge","char_4072_ironmn","char_4080_lin","char_4088_hodrer","char_4098_vvana","char_4117_ray","char_4121_zuole","char_4123_ela","char_4132_ascln","char_4133_logos","char_4138_narant","char_4141_marcil","char_4179_monstr","char_4182_oblvns","char_4195_radian","char_4202_haruka","char_4204_mantra","char_4212_nasti","char_4217_makoto","char_4226_veen","char_4228_closur","char_4229_aphris","char_4230_mcnist","char_4235_thumpy"],"operators":{"char_003_kalts":{"name":"凯尔希","rarity":6,"profession":"MEDIC","subProfessionId":"physician","obtainable":true,"powers":["rhodes","babel"],"bonds":["emptyShip"]},"char_010_chen":{"name":"陈","rarity":6,"profession":"WARRIOR","subProfessionId":"sword","obtainable":true,"powers":["lungmen","lgd"],"bonds":["yanShip"]},"char_017_huang":{"name":"煌","rarity":6,"profession":"WARRIOR","subProfessionId":"centurion","obtainable":true,"powers":["rhodes","elite","yan","victoria"],"bonds":["yanShip","victoriaShip"]},"char_112_siege":{"name":"推进之王","rarity":6,"profession":"PIONEER","subProfessionId":"pioneer","obtainable":true,"powers":["victoria","glasgow"],"bonds":["victoriaShip"]},"char_113_cqbw":{"name":"W","rarity":6,"profession":"SNIPER","subProfessionId":"aoesniper","obtainable":true,"powers":["babel","rhodes"],"bonds":["emptyShip"]},"char_134_ifrit":{"name":"伊芙利特","rarity":6,"profession":"CASTER","subProfessionId":"blastcaster","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_147_shining":{"name":"闪灵","rarity":6,"profession":"MEDIC","subProfessionId":"physician","obtainable":true,"powers":["followers"],"bonds":["emptyShip"]},"char_179_cgbird":{"name":"夜莺","rarity":6,"profession":"MEDIC","subProfessionId":"ringhealer","obtainable":true,"powers":["followers"],"bonds":["emptyShip"]},"char_180_amgoat":{"name":"艾雅法拉","rarity":6,"profession":"CASTER","subProfessionId":"corecaster","obtainable":true,"powers":["leithanien"],"bonds":["emptyShip"]},"char_188_helage":{"name":"赫拉格","rarity":6,"profession":"WARRIOR","subProfessionId":"musha","obtainable":true,"powers":["ursus"],"bonds":["emptyShip"]},"char_197_poca":{"name":"早露","rarity":6,"profession":"SNIPER","subProfessionId":"siegesniper","obtainable":true,"powers":["ursus","student"],"bonds":["emptyShip"]},"char_225_haak":{"name":"阿","rarity":6,"profession":"SPECIAL","subProfessionId":"geek","obtainable":true,"powers":["lungmen","lee"],"bonds":["yanShip"]},"char_248_mgllan":{"name":"麦哲伦","rarity":6,"profession":"SUPPORT","subProfessionId":"summoner","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_250_phatom":{"name":"傀影","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_293_thorns":{"name":"棘刺","rarity":6,"profession":"WARRIOR","subProfessionId":"lord","obtainable":true,"powers":["iberia"],"bonds":["emptyShip"]},"char_300_phenxi":{"name":"菲亚梅塔","rarity":6,"profession":"SNIPER","subProfessionId":"aoesniper","obtainable":true,"powers":["laterano"],"bonds":["lateranoShip"]},"char_322_lmlee":{"name":"老鲤","rarity":6,"profession":"SPECIAL","subProfessionId":"merchant","obtainable":true,"powers":["lungmen","lee"],"bonds":["yanShip"]},"char_340_shwaz":{"name":"黑","rarity":6,"profession":"SNIPER","subProfessionId":"closerange","obtainable":true,"powers":["columbia","siesta"],"bonds":["emptyShip"]},"char_362_saga":{"name":"嵯峨","rarity":6,"profession":"PIONEER","subProfessionId":"pioneer","obtainable":true,"powers":["higashi"],"bonds":["emptyShip"]},"char_377_gdglow":{"name":"澄闪","rarity":6,"profession":"CASTER","subProfessionId":"funnel","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_400_weedy":{"name":"温蒂","rarity":6,"profession":"SPECIAL","subProfessionId":"pusher","obtainable":true,"powers":["rhodes","iberia"],"bonds":["emptyShip"]},"char_416_zumama":{"name":"森蚺","rarity":6,"profession":"TANK","subProfessionId":"duelist","obtainable":true,"powers":["sargon"],"bonds":["sargonShip"]},"char_450_necras":{"name":"死芒","rarity":6,"profession":"CASTER","subProfessionId":"soulcaster","obtainable":true,"powers":["victoria","tara"],"bonds":["victoriaShip"]},"char_456_ash":{"name":"灰烬","rarity":6,"profession":"SNIPER","subProfessionId":"fastshot","obtainable":true,"powers":["rainbow"],"bonds":["emptyShip"]},"char_479_sleach":{"name":"琴柳","rarity":6,"profession":"PIONEER","subProfessionId":"bearer","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_485_pallas":{"name":"帕拉斯","rarity":6,"profession":"WARRIOR","subProfessionId":"instructor","obtainable":true,"powers":["minos"],"bonds":["emptyShip"]},"char_601_cguard":{"name":"预备干员-近卫","rarity":4,"profession":"WARRIOR","subProfessionId":"fearless","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_602_cdfend":{"name":"预备干员-重装","rarity":4,"profession":"TANK","subProfessionId":"protector","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_603_csnipe":{"name":"预备干员-狙击","rarity":4,"profession":"SNIPER","subProfessionId":"fastshot","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_604_ccast":{"name":"预备干员-术师","rarity":4,"profession":"CASTER","subProfessionId":"corecaster","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_605_cmedic":{"name":"预备干员-医疗","rarity":4,"profession":"MEDIC","subProfessionId":"physician","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_606_csuppo":{"name":"预备干员-辅助","rarity":4,"profession":"SUPPORT","subProfessionId":"slower","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_608_acpion":{"name":"郁金香","rarity":6,"profession":"PIONEER","subProfessionId":"pioneer","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_609_acguad":{"name":"Sharp","rarity":6,"profession":"WARRIOR","subProfessionId":"fearless","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_610_acfend":{"name":"Mechanist","rarity":6,"profession":"TANK","subProfessionId":"protector","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_611_acnipe":{"name":"Stormeye","rarity":6,"profession":"SNIPER","subProfessionId":"fastshot","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_612_accast":{"name":"Pith","rarity":6,"profession":"CASTER","subProfessionId":"splashcaster","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_613_acmedc":{"name":"Touch","rarity":6,"profession":"MEDIC","subProfessionId":"physician","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_614_acsupo":{"name":"Raidian","rarity":6,"profession":"SUPPORT","subProfessionId":"slower","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_615_acspec":{"name":"Misery","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_617_sharp2":{"name":"领主·Sharp","rarity":6,"profession":"WARRIOR","subProfessionId":"lord","obtainable":false,"powers":[],"bonds":["emptyShip"]},"char_1013_chen2":{"name":"假日威龙陈","rarity":6,"profession":"SNIPER","subProfessionId":"reaperrange","obtainable":true,"powers":["rhodes","yan"],"bonds":["yanShip"]},"char_1015_aglna2":{"name":"予愿安洁莉娜","rarity":6,"profession":"SPECIAL","subProfessionId":"skywalker","obtainable":true,"powers":["rhodes","siracusa"],"bonds":["siracusaShip"]},"char_1029_yato2":{"name":"麒麟R夜刀","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","obtainable":true,"powers":["rhodes","action4","higashi"],"bonds":["emptyShip"]},"char_1031_slent2":{"name":"淬羽赫默","rarity":6,"profession":"SUPPORT","subProfessionId":"blessing","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_1034_jesca2":{"name":"涤火杰西卡","rarity":6,"profession":"TANK","subProfessionId":"shotprotector","obtainable":true,"powers":["columbia","blacksteel","victoria"],"bonds":["victoriaShip"]},"char_1035_wisdel":{"name":"维什戴尔","rarity":6,"profession":"SNIPER","subProfessionId":"bombarder","obtainable":true,"powers":["babel","rhodes"],"bonds":["emptyShip"]},"char_1042_phatm2":{"name":"酒神","rarity":6,"profession":"SUPPORT","subProfessionId":"ritualist","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_1043_leizi2":{"name":"司霆惊蛰","rarity":6,"profession":"WARRIOR","subProfessionId":"librator","obtainable":true,"powers":["yan"],"bonds":["yanShip"]},"char_1044_hsgma2":{"name":"斩业星熊","rarity":6,"profession":"TANK","subProfessionId":"artsprotector","obtainable":true,"powers":["lungmen","lgd","higashi"],"bonds":["yanShip"]},"char_1048_orchd2":{"name":"焰狐龙梓兰","rarity":6,"profession":"SNIPER","subProfessionId":"closerange","obtainable":true,"powers":["rhodes","reserve6","columbia"],"bonds":["emptyShip"]},"char_1050_chen3":{"name":"赤刃明霄陈","rarity":6,"profession":"WARRIOR","subProfessionId":"artsfghter","obtainable":true,"powers":["yan","rhodes"],"bonds":["yanShip"]},"char_1051_headb2":{"name":"怒潮凛冬","rarity":6,"profession":"WARRIOR","subProfessionId":"hammer","obtainable":true,"powers":["ursus","student"],"bonds":["emptyShip"]},"char_1052_kalts2":{"name":"凯尔希·思衡托","rarity":6,"profession":"MEDIC","subProfessionId":"watchman","obtainable":true,"powers":["rhodes"],"bonds":["emptyShip"]},"char_1502_crosly":{"name":"弑君者","rarity":6,"profession":"SPECIAL","subProfessionId":"executor","obtainable":true,"powers":["rhodes","siracusa","ursus"],"bonds":["siracusaShip"]},"char_2012_typhon":{"name":"提丰","rarity":6,"profession":"SNIPER","subProfessionId":"siegesniper","obtainable":true,"powers":["sami"],"bonds":["emptyShip"]},"char_2013_cerber":{"name":"刻俄柏","rarity":6,"profession":"CASTER","subProfessionId":"corecaster","obtainable":true,"powers":["rhodes","bolivar"],"bonds":["emptyShip"]},"char_2014_nian":{"name":"年","rarity":6,"profession":"TANK","subProfessionId":"protector","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_2023_ling":{"name":"令","rarity":6,"profession":"SUPPORT","subProfessionId":"summoner","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_2024_chyue":{"name":"重岳","rarity":6,"profession":"WARRIOR","subProfessionId":"fighter","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_2025_shu":{"name":"黍","rarity":6,"profession":"TANK","subProfessionId":"guardian","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_2027_wang":{"name":"望","rarity":6,"profession":"SPECIAL","subProfessionId":"traper","obtainable":true,"powers":["yan","sui"],"bonds":["yanShip"]},"char_4009_irene":{"name":"艾丽妮","rarity":6,"profession":"WARRIOR","subProfessionId":"sword","obtainable":true,"powers":["iberia"],"bonds":["emptyShip"]},"char_4011_lessng":{"name":"止颂","rarity":6,"profession":"WARRIOR","subProfessionId":"fearless","obtainable":true,"powers":["leithanien"],"bonds":["emptyShip"]},"char_4027_heyak":{"name":"霍尔海雅","rarity":6,"profession":"CASTER","subProfessionId":"corecaster","obtainable":true,"powers":["columbia"],"bonds":["emptyShip"]},"char_4037_demetr":{"name":"贝洛内","rarity":6,"profession":"WARRIOR","subProfessionId":"fighter","obtainable":true,"powers":["siracusa"],"bonds":["siracusaShip"]},"char_4046_ebnhlz":{"name":"黑键","rarity":6,"profession":"CASTER","subProfessionId":"mystic","obtainable":true,"powers":["leithanien"],"bonds":["emptyShip"]},"char_4048_doroth":{"name":"多萝西","rarity":6,"profession":"SPECIAL","subProfessionId":"traper","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_4055_bgsnow":{"name":"鸿雪","rarity":6,"profession":"SNIPER","subProfessionId":"closerange","obtainable":true,"powers":["rhodes","sargon"],"bonds":["sargonShip"]},"char_4065_judge":{"name":"斥罪","rarity":6,"profession":"TANK","subProfessionId":"unyield","obtainable":true,"powers":["siracusa"],"bonds":["siracusaShip"]},"char_4072_ironmn":{"name":"白铁","rarity":6,"profession":"SUPPORT","subProfessionId":"craftsman","obtainable":true,"powers":["victoria"],"bonds":["victoriaShip"]},"char_4080_lin":{"name":"林","rarity":6,"profession":"CASTER","subProfessionId":"phalanx","obtainable":true,"powers":["lungmen"],"bonds":["yanShip"]},"char_4088_hodrer":{"name":"赫德雷","rarity":6,"profession":"WARRIOR","subProfessionId":"crusher","obtainable":true,"powers":["babel"],"bonds":["emptyShip"]},"char_4098_vvana":{"name":"薇薇安娜","rarity":6,"profession":"WARRIOR","subProfessionId":"artsfghter","obtainable":true,"powers":["leithanien","kazimierz"],"bonds":["kazimierzShip"]},"char_4117_ray":{"name":"莱伊","rarity":6,"profession":"SNIPER","subProfessionId":"hunter","obtainable":true,"powers":["rim"],"bonds":["emptyShip"]},"char_4121_zuole":{"name":"左乐","rarity":6,"profession":"WARRIOR","subProfessionId":"musha","obtainable":true,"powers":["yan"],"bonds":["yanShip"]},"char_4123_ela":{"name":"艾拉","rarity":6,"profession":"SPECIAL","subProfessionId":"traper","obtainable":true,"powers":["rainbow"],"bonds":["emptyShip"]},"char_4132_ascln":{"name":"阿斯卡纶","rarity":6,"profession":"SPECIAL","subProfessionId":"stalker","obtainable":true,"powers":["rhodes","sweep","babel"],"bonds":["emptyShip"]},"char_4133_logos":{"name":"逻各斯","rarity":6,"profession":"CASTER","subProfessionId":"corecaster","obtainable":true,"powers":["rhodes","elite","babel"],"bonds":["emptyShip"]},"char_4138_narant":{"name":"娜仁图亚","rarity":6,"profession":"SNIPER","subProfessionId":"loopshooter","obtainable":true,"powers":["sargon"],"bonds":["sargonShip"]},"char_4141_marcil":{"name":"玛露西尔","rarity":6,"profession":"CASTER","subProfessionId":"splashcaster","obtainable":true,"powers":["laios"],"bonds":["emptyShip"]},"char_4179_monstr":{"name":"Mon3tr","rarity":6,"profession":"MEDIC","subProfessionId":"chainhealer","obtainable":true,"powers":["rhodes"],"bonds":["emptyShip"]},"char_4182_oblvns":{"name":"丰川祥子","rarity":6,"profession":"WARRIOR","subProfessionId":"lord","obtainable":true,"powers":["mujica"],"bonds":["emptyShip"]},"char_4195_radian":{"name":"电弧","rarity":6,"profession":"SUPPORT","subProfessionId":"summoner","obtainable":true,"powers":["rhodes","elite","ursus"],"bonds":["emptyShip"]},"char_4202_haruka":{"name":"遥","rarity":6,"profession":"SUPPORT","subProfessionId":"blessing","obtainable":true,"powers":["higashi"],"bonds":["emptyShip"]},"char_4204_mantra":{"name":"真言","rarity":6,"profession":"CASTER","subProfessionId":"primcaster","obtainable":true,"powers":["rhodes","elite","babel","sargon"],"bonds":["sargonShip"]},"char_4212_nasti":{"name":"娜斯提","rarity":6,"profession":"SUPPORT","subProfessionId":"craftsman","obtainable":true,"powers":["columbia","rhine"],"bonds":["emptyShip"]},"char_4217_makoto":{"name":"结城理","rarity":6,"profession":"SPECIAL","subProfessionId":"dollkeeper","obtainable":true,"powers":["sees","laterano"],"bonds":["lateranoShip"]},"char_4226_veen":{"name":"维伊","rarity":6,"profession":"CASTER","subProfessionId":"mystic","obtainable":true,"powers":["ursus"],"bonds":["emptyShip"]},"char_4228_closur":{"name":"可露希尔","rarity":6,"profession":"PIONEER","subProfessionId":"tactician","obtainable":true,"powers":["rhodes"],"bonds":["emptyShip"]},"char_4229_aphris":{"name":"谬因","rarity":6,"profession":"CASTER","subProfessionId":"blastcaster","obtainable":true,"powers":["columbia"],"bonds":["emptyShip"]},"char_4230_mcnist":{"name":"机械师","rarity":6,"profession":"TANK","subProfessionId":"shotprotector","obtainable":true,"powers":["rhodes","elite","columbia"],"bonds":["emptyShip"]},"char_4235_thumpy":{"name":"珊比","rarity":6,"profession":"TANK","subProfessionId":"primprotector","obtainable":true,"powers":["rim"],"bonds":["emptyShip"]}}}} \ No newline at end of file diff --git a/docs/DATA.md b/docs/DATA.md index 1f0d0abb..7e4d553a 100644 --- a/docs/DATA.md +++ b/docs/DATA.md @@ -604,8 +604,10 @@ A **form** holds the operator fields of a chess record with **nothing selected** `isDefault`; `displayTokens` / `tokens` (summons — none of the 17 has one); at `equipLevel > 0` `modules[]` (§2.2 shape without `isDefault`). `buildUnitForm` uses buildChess's helpers and rules, and the build fails when `buildUnitForm` + `composeUnitRecord` do not give back every PRESET chess field for field (each is its own backup), so a later change to -buildChess that the stand-ins would miss stops the build. No trigger deviation (§2.2, DESIGN §21.29) applies to a form — -the deviations name chess, so the 重装 stand-ins (预备干员-重装, Mechanist) keep the official `TAKE_DAMAGE` row. +buildChess that the stand-ins would miss stops the build. The chess trigger deviations (§2.2, DESIGN §21.29) name chess +and never apply to a form; the 重装 stand-ins have their own, by charId (`tools/build-data.mjs STANDIN_TRIGGER_DEVIATIONS`, +the owner's decision of 2026-10-05 in the approved 补位 plan): every skill of 预备干员-重装 and Mechanist is `DEFAULT` — +cast with an enemy in range — with `rawRule` the official `TAKE_DAMAGE`, on every form. **Composition** (`shared/standIn.js`, pure ESM for the server, the sim and the client): `standInRecord(chess, backups)` is the NORMAL chess as its stand-in — `IDENTITY_FIELDS` (ids, tier, `isHidden` / `visible`, `chessType`, `backup`, `bonds`, @@ -613,9 +615,10 @@ the NORMAL chess as its stand-in — `IDENTITY_FIELDS` (ids, tier, `isHidden` / with `backup.skillIndex` / `backup.uniEquipId` as the defaults, plus `standInFor` (the replaced charId: the official 补位 mark on the avatar). The result is shaped exactly like a chess record (`skill` = the `isDefault` entry of `skills[]`; elite `statsBase` / `traitBase` / `talentsBase` / `modules[]`), so `normalizeChess`, `resolveLoadout` (no loadout ⇒ the -backup selection) and `loadoutRecord` read it unchanged; null for a PRESET or DIY chess. **Kits are keyed by base chess -id** (`server/sim/content/index.js setupUnitKit`): a stand-in keeps the chess's ids, so its kit must be found by its -`charId`. `diyRecord(slot, charId, backups, { skillIndex, moduleId })` fills a DIY slot with a prototype (the slot's +backup selection) and `loadoutRecord` read it unchanged; null for a PRESET or DIY chess. **In battle** a PlayerBattleInput +entry with `standIn: true` is fielded as `getChess(chessId, { standIn: true })` (docs/SIM.md §12: this record, normalised), +and its kit is found by its `charId` (`server/sim/content/index.js kitOf`; kits/README.md "Stand-in kits") — never by +the chess id it keeps, which names the replaced operator's kit. `diyRecord(slot, charId, backups, { skillIndex, moduleId })` fills a DIY slot with a prototype (the slot's tier and price, no 特质, the pick's derived bonds); which skill a prototype carries in a slot is not in the data. `diy`: diff --git a/docs/SIM.md b/docs/SIM.md index 5b01b931..1160c89f 100644 --- a/docs/SIM.md +++ b/docs/SIM.md @@ -863,6 +863,11 @@ Kit = { Keys: the data `baseId` (`chess_char_1_01_a`, also used for the elite `_b`), the exact chess id, or the suffix-less id of the DESIGN §5.6 example (`chess_char_1_01`) — all three are looked up. Missing kit ⇒ `content/generic.js` builds one from the blackboard (§7.4), so every chess always fights. +补位 stand-ins (DATA.md §18; a PlayerBattleInput entry with `standIn: true` ⇒ the def of `getChess(chessId, { standIn: +true })`, §12): the def keeps the chess's ids, so `content/index.js kitOf` looks the kit up by `def.charId` only — the +stand-in's own, `kits/ops/standin-.js` registered under that charId (kits/README.md "Stand-in kits") — never +by the chess id, which names the replaced operator's kit. A stand-in has no default skill: its kit authors each skill in +`skills` (`skill` is ignored); without a kit it gets the generic kit plus `genericTalents(def)` (§7.4). Operator loadouts (DESIGN §16): the unit's def is `getChess(chessId, { skillIndex, moduleId })` of its PlayerBattleInput entry (no loadout fields = the default). The skill spec is `kit.skills[selectedSkillId]` when authored, else `kit.skill` only when the selected skill is the default one, else the GENERIC spec of the selected skill (its generic install is @@ -947,7 +952,12 @@ whose skill "恢复…友方/友军…生命" heals the most injured ally in ran displacement by the official 力度 − 重量 rules (拖拽/hookmaster: `pullToFront`; else `push`, directional for 往攻击方向 / 朝部署方向 / 向前 / 身前方向 and 推击手, radial otherwise — §6; only a fallback: hand-written kits follow the client templates `knockback[dir]` / `knockback[relative]`, e.g. 琳琅诗怀雅 S3's "向前推开" is radial). **Passive** skills only apply stat mods (timed when the text says "N秒内": -宴 +65 % ATK for 14 s) and the self/counter effects — their scales describe procs that need a kit. Instant skills with +宴 +65 % ATK for 14 s; for the skill's own `duration` from every deployment when an ON_DEPLOY passive says "部署后…" with no +`duration` key — 一击即退, 10 s) and the self/counter effects — their scales describe procs that need a kit. +"立即获得N点部署费用" + `cost` ⇒ +cost DP at the start (冲锋号令); such an AUTO skill with nothing else to do fires at full +SP (`trigger: 'SP_FULL'`, as 德克萨斯's kit casts it). `genericTalents(def)` — for 补位 stand-ins without a kit only — applies +every unconditional stat talent ("攻击力+8%", "防御力+10%", "攻击速度+9"; `statTalentMods`: only stat clauses whose numbers +are the blackboard's) as a persistent `talent:generic:` buff; any other talent is left to a kit. Instant skills with mods/targeting but no attack override apply them to the next attack (the skill range is switched in for that attack). ### 7.5 Worked examples (real operators, numbers from blackboards) @@ -1182,7 +1192,7 @@ Unknown subprofessions fall back to the profession default (test `professions.te `['fx', kind, x, y, extra]` (`hitCap` `{ id, n }`: a leader's hit cancelled by 限伤 — the renderer draws nothing; `extra.form` = the unit's model form from then on — an enemy's `content/enemies/helpers.js setForm`, a 傀儡师's 替身 — `shared/protocol.js fxForm`), `['layer', playerId, bondId, n]` (n = the layers actually added, capped at 999), `['bounty', playerId, coins]`. -- `UnitInfo = { id, kind, side, ownerId, defId, name, tier, golden, spine, avatar, x, y, facing, dir, maxHp, motion?, boss?, uid?, form?, skillIndex?, moduleId?, items? }` (`skillIndex`: an ally's equipped skill, DESIGN §16; `form`: the unit's current model form — `content/enemies/helpers.js setForm`: 掠海漂移体 `'crawl'`, 暴鸰 `'bombed'` after its drop, 转译基底·α's forms …; a 傀儡师 fighting as its 替身 `'doll'` — so a view built mid-battle from `fieldMeta()` starts on that clip set; `items`: an ally operator's equipped item ids — a 变形同构体 wearer is a member of the bond it grants on the client too, the bond popup and the detail card's chips) +- `UnitInfo = { id, kind, side, ownerId, defId, name, tier, golden, spine, avatar, x, y, facing, dir, maxHp, motion?, boss?, uid?, form?, skillIndex?, moduleId?, items?, standInFor? }` (`standInFor`: a 补位 stand-in's replaced operator charId — `spine` / `avatar` / `name` are the stand-in's, DATA.md §18; `skillIndex`: an ally's equipped skill, DESIGN §16; `form`: the unit's current model form — `content/enemies/helpers.js setForm`: 掠海漂移体 `'crawl'`, 暴鸰 `'bombed'` after its drop, 转译基底·α's forms …; a 傀儡师 fighting as its 替身 `'doll'` — so a view built mid-battle from `fieldMeta()` starts on that clip set; `items`: an ally operator's equipped item ids — a 变形同构体 wearer is a member of the bond it grants on the client too, the bond popup and the detail card's chips) (`dir` = the unit direction, allies meaningful, enemies 'RIGHT'; `facing` = its horizontal sign for sprite flipping) (`spine`/`avatar` are asset ids from data). - flags: UF bits (blocked 1, stunned 2, frozen 4, stealth 8 — 隐匿 (an enemy's only while not blocked / revealed and not within 3 s of a block's end) or an ally's 迷彩 — skill 16, shield 32, invuln 64, cold 128, sleep 256, flying 512); @@ -1218,7 +1228,10 @@ test/content/facing.test.js) or `players`; `enemies: [{ key, time, route (index | RouteSpec), pos, count, interval, mods, tag, bounty, sourcePlayerId }]` or `waveTemplate` (id or object ⇒ routes, spawns, time limit); `routes` (flat defaults: 0 walk low gate, 1 walk high gate, 2/3 fly); -`timeLimit`; `content` (`'full'|'generic'|'none'`); `kits` (inject `{ baseId: kitFn }`); `defs: { chess, enemies, tokens }` +`timeLimit`; `content` (`'full'|'generic'|'none'`); `kits` (inject `{ baseId: kitFn }`; a stand-in's by its charId); a unit's +`standIn: true` fields a NORMAL chess as its 补位 stand-in (the production path, the chess's backup skill / module; `_a` = +normal, `_b` = elite), `standIn: { skillIndex?, moduleId? }` another skill / module of it (the composed record `standInRec(chessId, +sel)` replaces that chess's record for the battle; kits/README.md "How to test a stand-in kit"); `defs: { chess, enemies, tokens }` (extra/override records; build them with `chessRec({...})` / `enemyRec({...})`); `bonds`, `bandId`, `playerEffects`, `flags`, `sharedBoss`, `setup(battle)`, `hooks` (names to capture; `captureNoisy` to keep tick/hit/damaged/heal/spGain/ attack contexts), `autoFinish` (default: true when enemies are scheduled). @@ -1227,7 +1240,7 @@ Harness API: `battle`/`b`, `step(n)`, `run(seconds)`, `runUntil(pred | seconds, `eventsOf(kind)` (client tuples), `hooks` / `hooksOf(name)` (captured ctx copies with `t`), `result()`, `snapshot()`, `invariants()`. `checkInvariants(b)` (no NaN, hp ∈ [0, maxHp], positions inside the rect, SP/charge bounds, finite skill timers, occupancy map in sync with deployed allies, block links, DP, finite projectiles and per-player result counters, -no open hook emit between steps), `hashOf(v)`, `flatStage()`, `flatRoutes(kind)` are exported too. +no open hook emit between steps), `hashOf(v)`, `flatStage()`, `flatRoutes(kind)`, `standInRec(chessId, sel)` are exported too. Soaks: `SIM_FUZZ_N=3000 SIM_FUZZ_CHECK_EVERY=3 node --test test/sim/fuzz.test.js` (random real battles) and `SIM_CHAOS_N=500 SIM_CHAOS_SEED= node --test --test-name-pattern="chaos fuzz" test/sim/robustness.test.js` (content that @@ -1270,6 +1283,13 @@ ownerLoadout)` = the summon for that owner loadout (`bySkill` / `byModule` merge per-battle view (`withUnitLoadouts`: id-only `getChess(id)` / `getToken(id, owner)` use the loadout the inputs give that chess id — the first player's when two players of one field differ, `view.loadoutConflicts`); Battle itself always passes the unit's own loadout (`_createAllyFromInput`, `tokenDef` / `spawnToken`, the dollkeeper substitute), so it is exact. +补位 (DATA.md §18): `getChess(id, { standIn: true })` = `getStandIn(id)` — shared/standIn.js `standInRecord` of the chess over +the source's `backups` (data/backups.json; `rawBackups()` follows the fallback chain), normalised: `id` / `baseId` / `golden` / +`tier` / `bonds` / `raw.garrisonIds` of the chess, every combat field of the stand-in, `charId` the stand-in's, `standInFor` +the replaced operator's, `loadout` the backup selection (`standIn: true`); its skill / module ignore the loadout's +("对于补位干员其技能不可更改", shared/standIn.js). A PRESET / DIY chess or a source without backups (a browser that did not +fetch backups.json) gives the chess's own def. A PlayerBattleInput entry carries it as `standIn: true` (spec.js keeps +nothing else); the per-battle view maps id-only lookups of that chess id to the stand-in. Assumptions taken here (documented choices): element burst numbers for necrosis/apoptosis; unspawned enemies at timeout are dropped (not leaks); geek drain is non-lethal; tactician reinforcement stats; displacement is instantaneous (the official 失衡 slide over ≈ 0.4–1.2 s is not modelled — only its distance, `push` / `pull`); pushes PRTS does not classify use the 弹道 distance column (`PUSH_TILES`); diff --git a/server/data.js b/server/data.js index 11d32d60..7beccb56 100644 --- a/server/data.js +++ b/server/data.js @@ -2,7 +2,7 @@ // // Every `*.json` file in the data directory becomes a top-level key named after its basename // (config, chess, bonds, garrisons, items, bands, effects, choices, enemies, factions, waves, stages, -// bosses, tokens, assets, …). The result is deep-frozen so no module can mutate shared data by accident. +// bosses, tokens, assets, backups, …). The result is deep-frozen so no module can mutate shared data by accident. // Missing or unparsable files are tolerated with a warning (data is generated in parallel with the // server); consumers must cope with an absent key. // @@ -26,7 +26,7 @@ export const DATA_DIR = path.join(ROOT, 'data'); /** Files the game expects (a warning lists the missing ones). */ export const DATA_FILES = Object.freeze([ 'config', 'chess', 'bonds', 'garrisons', 'items', 'bands', 'effects', 'choices', - 'enemies', 'factions', 'waves', 'stages', 'bosses', 'tokens', 'assets', + 'enemies', 'factions', 'waves', 'stages', 'bosses', 'tokens', 'assets', 'backups', ]); /** diff --git a/server/sim/battle/players.js b/server/sim/battle/players.js index 1a29aa44..dec37825 100644 --- a/server/sim/battle/players.js +++ b/server/sim/battle/players.js @@ -102,8 +102,11 @@ export class BattlePlayers { return u; } // the unit's own loadout (DESIGN §16): an entry without loadout fields is the DEFAULT — never another player's - // choice for the same chess id in a multi-player field (the per-battle data view maps id-only lookups) - const def = this.data.getChess(inp.chessId, { skillIndex: inp.skillIndex ?? null, moduleId: inp.moduleId ?? null }); + // choice for the same chess id in a multi-player field (the per-battle data view maps id-only lookups); `standIn: + // true` fields the chess as its 补位 stand-in (simdata getStandIn: the stand-in's body, the chess's identity) + const lo = { skillIndex: inp.skillIndex ?? null, moduleId: inp.moduleId ?? null }; + if (inp.standIn === true) lo.standIn = true; + const def = this.data.getChess(inp.chessId, lo); if (!def) { this.log(`unknown chess ${inp.chessId}`); return null; } const u = this._makeAlly(ps, def, 'op', r, c, { uid: inp.uid, dir }); u.items = [...(inp.items ?? [])]; diff --git a/server/sim/content/generic.js b/server/sim/content/generic.js index 50c750a2..223cf77c 100644 --- a/server/sim/content/generic.js +++ b/server/sim/content/generic.js @@ -28,8 +28,13 @@ // "附带…凋亡/灼燃/神经损伤" + ep_damage_ratio ⇒ element damage on hit (× damage dealt when the text says "伤害N%的…损伤", // else × ATK); "屏障" + shield_max_hp_ratio / hp_ratio ⇒ self shield at start decaying over its duration (砾, 新约能天使); // "立即流失N%当前生命" + hp_ratio ⇒ self HP loss at start (宴, 风丸); hp_ratio + "恢复/回复…生命" ⇒ self heal at start. -// Passive skills only apply stat mods (for bb.duration s when the text says "N秒内": 宴) and the self/counter effects -// above — their scales describe procs (bombs, sword rain, counters) that need a hand-authored kit. +// Passive skills only apply stat mods (for bb.duration s when the text says "N秒内": 宴; for the skill's own duration +// when an ON_DEPLOY passive says "部署后…" without one in its blackboard: 一击即退, duration 10 — PRTS 技能 持续 10) and +// the self/counter effects above — their scales describe procs (bombs, sword rain, counters) that need a kit. +// "立即获得N点部署费用" + cost ⇒ +cost DP for the player at the start (冲锋号令); an AUTO skill that does nothing else +// fires as soon as its SP is full (as 德克萨斯's kit casts the same skill: kits/ops/chess_char_1_08-texas.js). +// genericTalents(def): the talents a generic kit can apply exactly — an unconditional stat line ("攻击力+8%", +// "攻击速度+9") — used for 补位 stand-ins without a kit of their own (content/index.js); a pool chess always has a kit. // force→onHit displacement with the official 力度 − 重量 rules (Battle.push / pullToFront): a pull "至面前" when the text says // 拖拽 or for hookmasters, else a push — along the unit's direction when the text says 往攻击方向 (the 推击手 wording, PRTS // 推与拉 方向力) / 朝部署方向 / 向前 / 身前方向 or for 推击手 (directional), otherwise away from the unit (radial); a skill of @@ -277,14 +282,24 @@ export function genericSkillSpec(sk, bb = sk?.bb ?? {}, def = null) { ammo, }; - // passive stat buffs limited in time ("部署后…在14秒内攻击力+65%", 宴) become a timed buff at each deployment - const passiveTimed = passive && Object.keys(mods).length && num(bb.duration) > 0 && /\d+(\.\d+)?秒内/.test(desc) ? num(bb.duration) : 0; + // passive stat buffs limited in time ("部署后…在14秒内攻击力+65%", 宴) become a timed buff at each deployment; so do the + // ON_DEPLOY passives whose duration is the skill's own (一击即退 "部署后攻击力+X%,防御力+Y%", duration 10, no bb key) + const ownDuration = num(bb.duration) === undefined && sk.duration > 0 && /^部署后/.test(desc) ? sk.duration : 0; + const passiveTimed = passive && Object.keys(mods).length + ? (num(bb.duration) > 0 && /\d+(\.\d+)?秒内/.test(desc) ? num(bb.duration) : ownDuration) + : 0; if (Object.keys(mods).length && !passiveTimed) spec.mods = mods; if (Object.keys(targeting).length) spec.targeting = targeting; // instant/charges skills act on the next attack: mods/targeting without an explicit attack still need one if (!Object.keys(attack).length && (kind === 'instant' || kind === 'charges') && (spec.mods || spec.targeting)) spec.attack = {}; if (Object.keys(attack).length) spec.attack = attack; + // ---- deployment cost: "立即获得N点部署费用" (冲锋号令 `cost`) — the player gains it at the start + const dpGain = !passive && /获得\d+点部署费用/.test(desc) ? g('cost') : undefined; + const gainsDp = dpGain !== undefined && dpGain > 0; + // an AUTO skill with nothing else to do fires as soon as its SP is full (德克萨斯's kit casts 冲锋号令·γ型 so) + if (gainsDp && sk.skillType === 'AUTO' && !spec.mods && !spec.targeting && !spec.attack) spec.trigger = 'SP_FULL'; + // ---- start / end effects const starts = []; const ends = []; @@ -292,6 +307,12 @@ export function genericSkillSpec(sk, bb = sk?.bb ?? {}, def = null) { const m = { ...mods }; starts.push(({ battle, unit }) => battle.addBuff(unit, { key: `generic:passive:${sk.id ?? 'skill'}`, duration: passiveTimed, mods: m, tags: ['skill'] })); } + if (gainsDp) { + starts.push(({ battle, unit }) => { + battle.addDp(unit.ownerId, dpGain); + battle.fx('dp', { x: unit.x, y: unit.y, n: dpGain, id: unit.id }); + }); + } const hr = g('hp_ratio'); if (hr !== undefined && hr > 0 && hr <= 1 && /立即流失\d+(\.\d+)?%(的)?当前生命/.test(desc)) { starts.push(({ battle, unit }) => { const loss = unit.hp * hr; if (loss > 0 && unit.hp - loss >= 1) battle.loseHp(unit, loss, { source: unit }); }); @@ -377,6 +398,59 @@ function installGeneric(spec) { }; } +/** Stat talents genericTalents applies: the stat named in the text → [blackboard key, mod for "+N%", mod for "+N"]. */ +const TALENT_STATS = Object.freeze({ + 攻击力: ['atk', 'atkPct', 'atkFlat'], 防御力: ['def', 'defPct', 'defFlat'], 生命上限: ['max_hp', 'hpPct', 'hpFlat'], + 攻击速度: ['attack_speed', null, 'aspd'], +}); +const STAT_CLAUSE = /^(攻击力|防御力|生命上限|攻击速度)\+(\d+(?:\.\d+)?)(%?)$/; + +/** + * The mods of an unconditional stat talent — its text is only stat clauses ("攻击力+8%", "攻击速度+9", joined by "," / + * "、") and each clause's number is its blackboard key's (×100 for a percentage); every other blackboard key is 0 — + * else null. + */ +export function statTalentMods(t) { + const text = String(t?.description ?? t?.desc ?? '').trim(); + const bb = t?.bb ?? {}; + if (!text) return null; + const mods = {}; + const used = new Set(); + for (const part of text.split(/[,、,]/)) { + const m = STAT_CLAUSE.exec(part.trim()); + if (!m) return null; + const [key, pctMod, flatMod] = TALENT_STATS[m[1]]; + const v = num(bb[key]); + const pct = m[3] === '%'; + const mod = pct ? pctMod : flatMod; + if (v === undefined || !mod || used.has(key) || Math.abs((pct ? v * 100 : v) - Number(m[2])) > 1e-6) return null; + mods[mod] = v; + used.add(key); + } + if (Object.keys(bb).some((k) => !used.has(k) && num(bb[k]) !== 0)) return null; + return Object.keys(mods).length ? mods : null; +} + +/** + * Talents the generic kit can apply exactly — the 补位 stand-ins without a kit of their own (content/index.js + * setupUnitKit; 预备干员 "攻击提升 攻击力+8%", "防御提升 防御力+10%", "施法速度提升 攻击速度+9"): every unconditional stat + * talent (statTalentMods) as a persistent buff, as the operator kits write theirs (`talent:` key, persist, allowDead). + * Any other talent — a condition, a proc, a key its text does not state — needs a hand-authored kit and is left out, + * never half applied. + * @param {object} def normalised operator def + * @returns {{ install(battle: object, unit: object): void }[]} + */ +export function genericTalents(def) { + const out = []; + (def?.talents ?? []).forEach((t, i) => { + const mods = statTalentMods(t); + if (!mods) return; + const key = `talent:generic:${i}`; + out.push({ install(battle, unit) { battle.addBuff(unit, { key, mods: { ...mods }, persist: true, allowDead: true, tags: ['talent'] }); } }); + }); + return out; +} + /** * Generic kit: `(bb, chess, def?) => Kit`. `chess` is the data record; `def` the normalised def when available. */ diff --git a/server/sim/content/index.js b/server/sim/content/index.js index 69e59666..84570020 100644 --- a/server/sim/content/index.js +++ b/server/sim/content/index.js @@ -7,6 +7,10 @@ // a faulty content module is logged and skipped, never crashing the battle. // setupUnitKit(battle, unit, mode) — resolves a unit's Kit: kits[baseChessId]?.(bb, chess, def) ?? generic. // Battle opts.kits ({ [baseChessId]: kitFn }) take precedence (tests / sandboxes). +// 补位 stand-ins (isStandInDef: the def of simdata getStandIn — the chess's ids, another character's body): the kit is +// kits[def.charId] (the stand-in's own, kits/ops/standin-.js), never the chess id's — that is the replaced +// operator's kit; without one, the generic kit plus the talents it can apply exactly (generic.js genericTalents). +// A stand-in has no default skill: its kit authors every skill it supports in `skills` (selectSkillSpec). // Operator loadouts (DESIGN §16): the def is resolved for the unit's selected skill / module (simdata getChess), so // the kit receives `chess.skill` = the SELECTED skill record and `bb` = its blackboard (talents / trait / module of // the selected module). Kit contract (backward compatible): `{ skill?, skills?: { [skillId]: SkillSpec }, talents, @@ -19,7 +23,7 @@ // are resolved by Battle (getToken(id, owner.defId, owner.def.loadout)), not here. // registerAllMeta(registry) — calls each domain module's registerMeta(registry) (prep side, server boot). -import { genericKit } from './generic.js'; +import { genericKit, genericTalents } from './generic.js'; import { withUnitLoadouts } from '../simdata.js'; // Content files are loaded with guarded dynamic imports: a module that fails to load (syntax error, throwing @@ -38,12 +42,43 @@ const DOMAIN_NAMES = ['tokens', 'devices', 'enemies', 'bosses', 'bonds', 'garris const DOMAINS = await Promise.all(DOMAIN_NAMES.map((n) => safeImport(`./${n}.js`))); const tokens = DOMAINS[0]; -/** Merged kit registry: baseChessId → (bb, chess, def) => Kit (kits/index.js; each kit file is loaded guarded too) */ +/** + * Merged kit registry: baseChessId → (bb, chess, def) => Kit, then the 补位 stand-in kits: stand-in charId → builder + * (kits/index.js; each kit file is loaded guarded too) + */ export const KITS = KIT_REGISTRY.KITS ?? Object.freeze({}); /** Domain modules in install order: tokens, devices, enemies, bosses, bonds, garrisons, items, bands, choices. */ export const MODULES = Object.freeze(DOMAIN_NAMES.map((n, i) => [n, DOMAINS[i]])); +/** + * Whether `def` is a 补位 stand-in: a chess fielded with another character's body (simdata getStandIn — `standInFor` = + * the replaced operator's charId, `charId` = the stand-in's, which differ). + */ +export function isStandInDef(def) { + return !!(def && def.standInFor && def.charId && def.charId !== def.standInFor); +} + +/** + * The kit builder of an operator def in `reg` ({ [key]: (bb, chess, def) => Kit }), or undefined. A stand-in's kit is + * keyed by its charId (`char_609_acguad`) and by nothing else: the chess id it keeps names the replaced operator's kit. + * Any other def: baseId (`…_a`, data/SIM.md), the exact id, or the suffix-less id of DESIGN §5.6's example. + */ +export function kitOf(def, reg) { + if (!def || !reg) return undefined; + if (isStandInDef(def)) return Object.prototype.hasOwnProperty.call(reg, def.charId) ? reg[def.charId] : undefined; + const bare = String(def.baseId ?? def.id ?? '').replace(/_[ab]$/, ''); + return reg[def.baseId] ?? reg[def.id] ?? reg[bare]; +} + +/** The generic kit of an operator def; a stand-in's also carries the talents generic.js can apply exactly. */ +function fallbackKit(bb, raw, def) { + const k = genericKit(bb, raw, def); + if (!isStandInDef(def)) return k; + const talents = genericTalents(def); + return talents.length ? { ...k, talents: [...(k.talents ?? []), ...talents] } : k; +} + /** Resolve the Kit of an ally unit. Never throws (falls back to the generic kit). */ export function setupUnitKit(battle, unit, mode = 'full') { try { syncUnitLoadout(battle, unit); } catch (e) { battle._handlerError?.('loadout', unit, e); } @@ -61,20 +96,17 @@ export function setupUnitKit(battle, unit, mode = 'full') { if (unit.kind !== 'op') return {}; const injected = battle.opts && battle.opts.kits; if (mode === 'full' || injected) { - // DESIGN §5.6's example keys kits by the suffix-less id (`chess_char_1_01`), data/SIM.md by baseId (`…_a`): accept both - const bare = String(def.baseId ?? def.id ?? '').replace(/_[ab]$/, ''); - const pick = (reg) => reg?.[def.baseId] ?? reg?.[def.id] ?? reg?.[bare]; - const f = pick(injected) ?? (mode === 'full' ? pick(KITS) : undefined); + const f = kitOf(def, injected) ?? (mode === 'full' ? kitOf(def, KITS) : undefined); if (typeof f === 'function') { try { const k = f(bb, raw, def); if (k) return selectSkillSpec(k, bb, raw, def); } catch (e) { - battle._handlerError(`kit:${def.baseId}`, unit, e); + battle._handlerError(`kit:${isStandInDef(def) ? def.charId : def.baseId}`, unit, e); } } } - return genericKit(bb, raw, def); + return fallbackKit(bb, raw, def); } /** A unit's own PlayerBattleInput entry (operators: kind ≠ 'token'; tokens: kind 'token'), or null. */ @@ -88,13 +120,15 @@ function inputEntry(unit) { /** * The loadout `{ skillIndex, moduleId }` a unit's PlayerBattleInput entry gives; an entry without loadout fields means * the DEFAULT loadout (`{}`), never "whatever the data view maps this chess id to" (another player's choice in a - * multi-player field). Null when the unit has no input entry. + * multi-player field). `standIn: true` rides along (补位: the stand-in def whatever the skill / module fields say). + * Null when the unit has no input entry. */ function inputLoadout(unit) { const x = inputEntry(unit); if (!x) return null; - if (x.skillIndex == null && x.moduleId == null) return {}; - return { skillIndex: x.skillIndex ?? null, moduleId: x.moduleId ?? null }; + const standIn = x.standIn === true ? { standIn: true } : null; + if (x.skillIndex == null && x.moduleId == null) return standIn ?? {}; + return { skillIndex: x.skillIndex ?? null, moduleId: x.moduleId ?? null, ...standIn }; } /** Put a def on a not-yet-deployed ally (the fields Battle._makeAlly takes from the def). */ @@ -143,13 +177,16 @@ export function syncUnitLoadout(battle, unit) { /** Id of the selected skill of an operator def (null without a skill). */ const selectedSkillId = (def) => def?.skill?.id ?? def?.raw?.skill?.skillId ?? null; -/** True when the def's selected skill is the chess's default skill (no loadout info ⇒ default). */ -const skillIsDefault = (def) => !def?.loadout || def.loadout.skillIsDefault !== false; +/** + * True when the def's selected skill is the chess's default skill (no loadout info ⇒ default). Never for a stand-in: + * the skill it fields is the one its chess names (S2 on one chess, S3 on another), so its kit authors each in `skills`. + */ +const skillIsDefault = (def) => !isStandInDef(def) && (!def?.loadout || def.loadout.skillIsDefault !== false); /** - * The kit with the skill spec of the SELECTED skill (see header): `kit.skills[id]` → `kit.skill` (default skill only) - * → the generic spec. Returns the kit itself when nothing changes; `kit.skillSource` tells which one was used - * ('skills' | 'kit' | 'generic'). + * The kit with the skill spec of the SELECTED skill (see header): `kit.skills[id]` → `kit.skill` (default skill only; + * never for a stand-in) → the generic spec. Returns the kit itself when nothing changes; `kit.skillSource` tells which + * one was used ('skills' | 'kit' | 'generic'). * @param {object} kit hand-authored kit */ export function selectSkillSpec(kit, bb, raw, def) { @@ -172,8 +209,7 @@ export function selectSkillSpec(kit, bb, raw, def) { * @returns {'skills'|'kit'|'generic'|'none'} where the spec comes from ('none' = no kit function at all) */ export function skillSpecSource(def, kits = KITS) { - const bare = String(def?.baseId ?? def?.id ?? '').replace(/_[ab]$/, ''); - const f = kits?.[def?.baseId] ?? kits?.[def?.id] ?? kits?.[bare]; + const f = kitOf(def, kits); if (typeof f !== 'function') return 'none'; let k = null; try { k = f(def.skill?.bb ?? {}, def.raw ?? def, def); } catch { return 'generic'; } diff --git a/server/sim/content/kits/README.md b/server/sim/content/kits/README.md index 0ac4b7d1..3d7e4432 100644 --- a/server/sim/content/kits/README.md +++ b/server/sim/content/kits/README.md @@ -9,14 +9,17 @@ operators, the self-select 6★ operators, contributions from GitHub issue #136 | path | what | |---|---| -| `index.js` | the registry: `KIT_FILES` lists every kit file, grouped by tier; `KITS` (base chess id → kit builder) and `TIER_KITS` (one registry per tier group) are built from it | +| `index.js` | the registry: `KIT_FILES` lists every kit file, grouped by tier, and `STANDIN_KIT_FILES` the 补位 stand-in kits; `KITS` (base chess id → kit builder, then stand-in charId → kit builder), `TIER_KITS` (one registry per tier group) and `STANDIN_KITS` are built from them | | `ops/-.js` | one kit per file, with the helpers and constants only that kit uses | +| `ops/standin-.js` | one 补位 stand-in kit per file (below: "Stand-in kits") | | `shared/tier1.js` | the general kit helpers (blackboard readers, unit predicates, hit hooks, area queries, buffs, zones, free tiles, skill records) and the notes of the tier-1 kits | | `shared/tier2.js` … `tier6.js` | helpers two or more kits of that tier use, and that tier's notes (conventions, simplifications, fx kinds) | | `tier1.js` … `tier6.js` | re-export shims for the old import paths; removed after the 0.2.0 refactor | `content/index.js` takes `KITS` from `index.js`: a unit's kit is `KITS[def.baseId]` (also the exact or the suffix-less -id), else the generic kit built from the skill blackboard (`content/generic.js`, docs/SIM.md §7.4). +id), else the generic kit built from the skill blackboard (`content/generic.js`, docs/SIM.md §7.4). A 补位 stand-in's +kit is `KITS[def.charId]` and nothing else (`content/index.js kitOf`): it keeps the chess's ids, which name the replaced +operator's kit. ## Naming @@ -96,6 +99,36 @@ export default { 4. `node --test test/content/kits_layout.test.js` checks the name, the registry entry and the imports; `node tools/kit-coverage.mjs --missing` lists selectable skills that still fall back to the generic spec. +## Stand-in kits (补位) + +A NORMAL chess whose operator the player does not own fights as its official stand-in (原型干员, data/backups.json, +docs/DATA.md §18): the chess's ids, bonds, 特质, tier and price, the stand-in's body — stats, range, trait, talents, the +skill `backup.skillIndex` and the module `backup.uniEquipId` the chess names. The sim gets that def from +`battle.data.getChess(chessId, { standIn: true })` (a PlayerBattleInput entry with `standIn: true`); `def.charId` is the +stand-in's, `def.standInFor` the replaced operator's charId. + +- **File and key**: `ops/standin-.js`, the code name being the stand-in's charId without `char__` + (`standin-acguad.js` = Sharp, `char_609_acguad`); the default export has exactly one key, that charId: + `export default { char_609_acguad: (bb, chess, def) => Kit }`. Append the file name to `STANDIN_KIT_FILES` in + `index.js`. Never register a stand-in under a chess id: that is the replaced operator's kit, which the stand-in must + not run. +- **Arguments**: `bb` = the blackboard of the skill the chess names, at the chess's level (normal Lv4, elite Lv7); + `chess` = the composed record (shared/standIn.js `standInRecord`: talents, `trait.bb`, `module` of the stand-in); + `def.tier` / `def.golden` tell which chess it stands in for. +- **No default skill**: one stand-in takes S2 on one chess and S3 on another (Sharp: S2 for 银灰, S3 for 隐德来希), so the + kit authors every skill it supports in `skills: { [skillId]: SkillSpec }`; `skill` is ignored for a stand-in (a skill + missing from `skills` gets the generic spec). `talents`, `trait` and `install` apply as for any kit. +- **Without a file** the stand-in fights with the generic kit plus the talents it can apply exactly + (`generic.js genericTalents`: unconditional stat lines like "攻击力+8%"). The eight 预备干员 need no file: their skills + (攻击力 / 防御力 / 治疗强化, 战术咏唱, 冲锋号令, 一击即退) are covered by the generic spec + (`test/content/standin.test.js`). +- **Auto-cast**: the trigger comes from the data like any chess's (checklist item 5). The 重装 exception for the + stand-ins is `tools/build-data.mjs STANDIN_TRIGGER_DEVIATIONS` (预备干员-重装, Mechanist: every skill `DEFAULT`, + `rawRule` `TAKE_DAMAGE`). +- **Summons**: no stand-in has one (DATA.md §18). +- `node --test test/content/kits_layout.test.js` checks the file name, the key (a charId of data/backups.json `units`) + and the registry entry. + ## Testing a kit - The harness is `test/helpers/battleHarness.js` (`makeBattle`, `runUntil`, `hooksOf`, `eventsOf`, `checkInvariants`; @@ -112,6 +145,22 @@ export default { - Run `node --test test/content/kits_layout.test.js test/golden.test.js `, then `GOLDEN_FULL=1 node --test test/golden.test.js` before the pull request. +### How to test a stand-in kit + +- Field the chess as its stand-in: `makeBattle({ units: [{ chessId: 'chess_char_5_13_b', row: 10, col: 4, standIn: true + }] })` — the production path (data/backups.json through `getChess(id, { standIn: true })`): `_a` = the normal form + (Lv4), `_b` = the elite (Lv7, its module), with the chess's backup skill. Pick one chess per skill the stand-in + fields (data/chess.json `backup`; `backups.json units[charId].standsIn` lists them). +- Another skill or module of the stand-in (a skill no chess names, a 自选 prototype): `standIn: { skillIndex: 0 }` or + `standIn: { skillIndex: 2, moduleId: 'none' }` — the harness composes that record (`standInRec`) and puts it under the + chess id for the whole battle, so do not field the real operator of that chess in the same battle. +- Inject a kit for a quick experiment with `kits: { char_609_acguad: (bb, chess, def) => Kit }` (keyed by the charId). +- Assert that the unit is the stand-in (`u.def.charId`, `u.def.standInFor`, `u.skill.id`) and that its kit is yours, not + the generic one (`!u.kit.generic`); then the checklist below as for any operator. Examples: + `test/content/standin.test.js` (the plumbing and the eight 预备干员). +- A stand-in kit is new gameplay for stand-ins only: the golden corpus fields no stand-in, so its digests stay as they + are. + ## The fidelity rule Every official skill, talent and module is implemented exactly as the game has it — no approximation. @@ -154,7 +203,7 @@ Each item is a mistake this project already made once. Tick every one for every the rule, such as 烛煌 S3 in `feedback1e-skillrange.test.js`, are not examples of it); an AUTO skill that acts on allies or itself fires at full SP (引星棘刺 S1, `kits_alt_t5.test.js` "… fires as soon as its SP is full, no enemy needed (GitHub #124)"); the 重装 exception list (`TRIGGER_DEVIATIONS`: 深巡 S2, 雷蛇 S2, 号角 S2 / S3, 灰毫 S1 / S2, - 余 S2; the 预备干员-重装 / Mechanist stand-ins join it), DESIGN §21.29 / §22.10, + 余 S2; the 预备干员-重装 / Mechanist stand-ins: `STANDIN_TRIGGER_DEVIATIONS`, every skill), DESIGN §21.29 / §22.10, `test/sim/feedback1-tank-triggers.test.js`. - [ ] **6. Targeting** — can it hit air units (`canHitFly`), ground-only attacks, block count, target priority; can ground enemies hit it (起飞 / 对地规避, stealth, camouflage flags). Examples: `test/sim/professions.test.js` "fortress diff --git a/server/sim/content/kits/index.js b/server/sim/content/kits/index.js index d6eb9292..abd79935 100644 --- a/server/sim/content/kits/index.js +++ b/server/sim/content/kits/index.js @@ -8,6 +8,12 @@ // Each file is loaded with a guarded dynamic import, so this runs unchanged in the browser (/sim/, no Node-only // module, no directory listing): a file that fails to load (syntax error, throwing top-level code, missing file) is // logged and skipped — its chess falls back to the generic kit — instead of breaking the server or the page. +// +// 补位 stand-in kits (DATA.md §18): STANDIN_KIT_FILES lists `ops/standin-.js`, one per stand-in character +// (codename = its charId without `char__`: `standin-acguad.js` = Sharp, char_609_acguad); each registers exactly one +// key, that charId. A stand-in keeps the ids of the chess it replaces, so content/index.js kitOf finds its kit by +// `def.charId` only, never by the chess id (the replaced operator's kit). STANDIN_KITS is merged into KITS after every +// tier group: the chess keys keep their order, and `char_…` keys never meet `chess_char_…` ones. export const KIT_FILES = Object.freeze([ // tier 1 @@ -53,6 +59,13 @@ export const KIT_FILES = Object.freeze([ 'chess_char_6_20-agoat2.js'], ].map((group) => Object.freeze(group))); +/** + * The 补位 stand-in kit files (`ops/standin-.js`, registry key = the stand-in's charId; a new file is appended). + * A stand-in without a file fights with the generic kit (content/generic.js) plus its unconditional stat talents + * (genericTalents) — the eight 预备干员 need no file. + */ +export const STANDIN_KIT_FILES = Object.freeze([]); + async function loadKitFile(file) { try { return await import(`./ops/${file}`); @@ -63,10 +76,14 @@ async function loadKitFile(file) { } const MODULES = await Promise.all(KIT_FILES.map((group) => Promise.all(group.map(loadKitFile)))); +const STANDIN_MODULES = await Promise.all(STANDIN_KIT_FILES.map(loadKitFile)); const registryOf = (m) => (m && m.default && typeof m.default === 'object' ? m.default : {}); /** The registry of each tier group (index 0 = tier 1): baseChessId → kit builder, in KIT_FILES order. */ export const TIER_KITS = Object.freeze(MODULES.map((group) => Object.assign({}, ...group.map(registryOf)))); -/** The merged kit registry: baseChessId → (bb, chess, def) => Kit, tier 1 … tier 6. */ -export const KITS = Object.freeze(Object.assign({}, ...TIER_KITS)); +/** The 补位 stand-in kits: stand-in charId → kit builder, in STANDIN_KIT_FILES order. */ +export const STANDIN_KITS = Object.freeze(Object.assign({}, ...STANDIN_MODULES.map(registryOf))); + +/** The merged kit registry: baseChessId → (bb, chess, def) => Kit, tier 1 … tier 6, then the stand-ins' charIds. */ +export const KITS = Object.freeze(Object.assign({}, ...TIER_KITS, STANDIN_KITS)); diff --git a/server/sim/simdata.js b/server/sim/simdata.js index c7cfcd52..a8e467f6 100644 --- a/server/sim/simdata.js +++ b/server/sim/simdata.js @@ -16,6 +16,11 @@ // match / UI (implemented in shared/loadoutRecord.js, re-exported here): resolveLoadout, loadoutRecord (the resolved // chess record), composeStats / composeTalents. (Which choices a player may make is shared/protocol.js // loadoutOptions / checkLoadout.) +// 补位 stand-ins (DATA.md §18): `getChess(id, { standIn: true })` = the def of a NORMAL chess fielded as its official +// stand-in (shared/standIn.js standInRecord over data/backups.json: the chess's ids, bonds, 特质, tier; the stand-in's +// body, skill `backup.skillIndex` and module `backup.uniEquipId` — any other skill / module choice is ignored), with +// `def.standInFor` = the replaced operator's charId and `def.charId` = the stand-in's (content/index.js looks its kit +// up by that charId). A PRESET / DIY chess, or a source without backups.json, gives the chess's own def instead. // // This module is pure ESM shared with browsers (served at /sim/): no Node API is imported here. Under Node the default // loader (./nodeData.js) is imported dynamically at module evaluation; browsers never load it. @@ -25,6 +30,7 @@ // getSimData() the injected data (browser) or the generated data (Node), or null. import { resolveRecordLoadout, composeStats, composeTalents, loadoutRecord } from '../../shared/loadoutRecord.js'; +import { standInRecord } from '../../shared/standIn.js'; import { normHitArea } from './body.js'; // --------------------------------------------------------------------------------------------------------------- @@ -193,6 +199,8 @@ export function normalizeChess(rec) { tokens: rec.tokens ?? [], spine: rec.assets?.spine ?? rec.spine ?? rec.charId ?? null, avatar: rec.assets?.avatar ?? rec.avatar ?? rec.charId ?? null, + // a 补位 stand-in (shared/standIn.js): the replaced operator's charId — `charId` is the stand-in's (absent otherwise) + ...(rec.standInFor ? { standInFor: rec.standInFor } : null), raw: rec, }; } @@ -509,7 +517,8 @@ export function freezeDef(d) { } /** - * A DataSource resolves ids to normalised defs. `raw` is `{ chess, enemies, tokens, stages, waves }`. + * A DataSource resolves ids to normalised defs. `raw` is `{ chess, enemies, tokens, stages, waves, backups? }` + * (`backups` = data/backups.json `{ units, diy }`, the 补位 stand-ins: getChess(id, { standIn: true })). */ export class DataSource { constructor(raw = {}, fallback = null) { @@ -519,6 +528,7 @@ export class DataSource { tokens: asMap(unwrap(raw.tokens, 'tokens'), 'tokenId') ?? {}, stages: asMap(unwrap(raw.stages, 'stages'), 'id') ?? {}, waves: asMap(unwrap(raw.waves, 'waves'), 'id') ?? {}, + backups: raw.backups && typeof raw.backups === 'object' && raw.backups.units ? raw.backups : null, }; this.fallback = fallback; this._chess = new Map(); @@ -534,13 +544,22 @@ export class DataSource { rawToken(id) { return this.raw.tokens[id] ?? this.fallback?.rawToken(id) ?? null; } rawStage(id) { return this.raw.stages[id] ?? this.fallback?.rawStage(id) ?? null; } rawWave(id) { return this.raw.waves[id] ?? this.fallback?.rawWave(id) ?? null; } + /** data/backups.json (`{ units, diy }`) of this source or its fallback, or null. */ + rawBackups() { return this.raw.backups ?? (typeof this.fallback?.rawBackups === 'function' ? this.fallback.rawBackups() : null); } /** * Chess def for the default loadout, or for `loadout` `{ skillIndex, moduleId }` (DESIGN §16; resolved with * resolveLoadout — illegal choices fall back to the default). `def.loadout` = the resolved loadout (null for records * without skill choices); `def.id` is always the chess id. Defs are cached per (id, resolved loadout). + * `loadout.standIn === true`: the 补位 def of the chess (getStandIn) — its skill and module are the chess's backup + * selection whatever `skillIndex` / `moduleId` say; a chess without a stand-in (PRESET, DIY, no backups data) gives + * its own def for that loadout. */ getChess(id, loadout = null) { + if (loadout && loadout.standIn === true) { + const sd = this.getStandIn(id); + if (sd) return sd; + } if (loadout == null && this._chess.has(id)) return this._chess.get(id); const r = this.rawChess(id); const lo = r ? resolveLoadout(r, loadout) : null; @@ -555,6 +574,27 @@ export class DataSource { this._chess.set(key, d); return d; } + /** + * The 补位 def of chess `id` (DATA.md §18): shared/standIn.js standInRecord of its record over rawBackups(), normalised + * — `def.id` / `baseId` / `golden` / `tier` / `bonds` / `raw.garrisonIds` of the chess, every combat field of the + * stand-in at the chess's status, `def.charId` the stand-in's, `def.standInFor` the replaced operator's charId, + * `def.loadout` the backup selection (`isDefault`, `standIn: true`). Null for a chess without a stand-in (PRESET, + * DIY) or when the data lacks it. Cached per id. + */ + getStandIn(id) { + const key = `${id}|standIn`; + if (this._chess.has(key)) return this._chess.get(key); + const r = this.rawChess(id); + const rec = r ? standInRecord(r, this.rawBackups()) : null; + let d = null; + if (rec) { + d = normalizeChess({ ...rec, chessId: id }); + d.loadout = { ...resolveLoadout(rec, null), standIn: true }; + freezeDef(d); + } + this._chess.set(key, d); + return d; + } getEnemy(key) { if (this._enemy.has(key)) return this._enemy.get(key); const r = this.rawEnemy(key); @@ -691,7 +731,8 @@ export function toDataSource(data) { * lookups (`view.loadoutConflicts` lists them) — callers that pass the unit's own loadout (`getChess(id, { skillIndex, * moduleId })`, `getToken(id, owner, ownerDef.loadout)`) are always exact. Returns `ds` itself when no unit carries a * loadout, and an existing view unchanged (`isLoadoutView`). Used by spec.js createBattleFromSpec and by - * content/index.js installContent (every Battle, however constructed). + * content/index.js installContent (every Battle, however constructed). An entry with `standIn: true` (补位) maps its + * chess id to the stand-in def (`getChess(id, { standIn: true })`) the same way. * @param {object} ds DataSource * @param {object[]} players PlayerBattleInput[] (spec players) */ @@ -703,11 +744,12 @@ export function withUnitLoadouts(ds, players) { for (const p of Array.isArray(players) ? players : []) { for (const u of (p && Array.isArray(p.units) ? p.units : [])) { if (!u || u.kind === 'token' || typeof u.chessId !== 'string') continue; - if (u.skillIndex != null || u.moduleId != null) any = true; + if (u.skillIndex != null || u.moduleId != null || u.standIn === true) any = true; const lo = { skillIndex: u.skillIndex ?? null, moduleId: u.moduleId ?? null }; + if (u.standIn === true) lo.standIn = true; const prev = map.get(u.chessId); if (!prev) map.set(u.chessId, lo); - else if (prev.skillIndex !== lo.skillIndex || prev.moduleId !== lo.moduleId) conflicts.add(u.chessId); + else if (prev.skillIndex !== lo.skillIndex || prev.moduleId !== lo.moduleId || !!prev.standIn !== !!lo.standIn) conflicts.add(u.chessId); } } if (!any) return ds; diff --git a/server/sim/snapshot.js b/server/sim/snapshot.js index b53f6019..8d2a4052 100644 --- a/server/sim/snapshot.js +++ b/server/sim/snapshot.js @@ -2,7 +2,8 @@ // // b.snap = { fieldId, t, units: [[id, x, y, hp, maxHp, sp, spMax, flags, anim]], dp, killed, total } // UnitInfo = { id, kind, side, ownerId, defId, name, tier, golden, spine, avatar, x, y, facing, dir, maxHp, motion?, boss?, uid?, -// form?, skillIndex?, moduleId?, items? } (form = the unit's current model form — an enemy's, content/enemies/helpers.js setForm: +// form?, skillIndex?, moduleId?, items?, standInFor? } (standInFor = the replaced operator's charId of a 补位 stand-in; +// form = the unit's current model form — an enemy's, content/enemies/helpers.js setForm: // 掠海漂移体 'crawl', 暴鸰 'bombed', 转译基底·α's forms …; a 傀儡师 fighting as its 替身 'doll', professions.js — a view built // after the change, a field opened mid-battle, draws it: render/units.js FORMS) // dir = 'UP'|'RIGHT'|'DOWN'|'LEFT' (allies: the deploy direction, sim/dir.js); facing = its horizontal sign (±1). @@ -51,6 +52,9 @@ export function unitInfo(u) { // an ally operator's equipped item ids (display: a 变形同构体 wearer counts for the bond it grants — the bond popup's // member list and the detail card's bond chips of a teammate's unit) items: u.side === 'ally' && u.kind === 'op' && Array.isArray(u.items) && u.items.length ? [...u.items] : undefined, + // 补位: the replaced operator's charId when the chess fights as its stand-in (spine / avatar are the stand-in's; the + // detail card composes the stand-in record, shared/standIn.js standInRecord) + standInFor: u.side === 'ally' && u.kind === 'op' && typeof d.standInFor === 'string' ? d.standInFor : undefined, }; } diff --git a/server/sim/spec.js b/server/sim/spec.js index a9702c0c..de41b66a 100644 --- a/server/sim/spec.js +++ b/server/sim/spec.js @@ -20,6 +20,8 @@ // the default). createBattleFromSpec hands the Battle a per-battle data view (withUnitLoadouts) that resolves each // operator def — and its summons — for the loadout of its chess (simdata getChess(id, loadout) / getToken(id, owner, // ownerLoadout)); an explicit loadout argument always wins over the view's per-chess lookup. +// 补位 (DATA.md §18): an operator entry with `standIn: true` (kept only when exactly `true`) is fielded as its chess's +// stand-in (simdata getChess(id, { standIn: true }); its skill / module are the chess's backup selection). import { Battle } from './Battle.js'; import { toDataSource, withUnitLoadouts } from './simdata.js'; @@ -76,11 +78,15 @@ export function buildBattleSpec(o = {}) { const LOADOUT_ID = /^[A-Za-z0-9_\-]{1,64}$/; -/** Keep a unit's `skillIndex` / `moduleId` only when well-formed (the data layer checks legality). Mutates `u`. */ +/** + * Keep a unit's `skillIndex` / `moduleId` only when well-formed (the data layer checks legality) and `standIn` only + * when exactly `true` (补位). Mutates `u`. + */ export function sanitizeUnitLoadout(u) { if ('skillIndex' in u && !(Number.isInteger(u.skillIndex) && u.skillIndex >= 0 && u.skillIndex <= 9)) delete u.skillIndex; if ('moduleId' in u && !(typeof u.moduleId === 'string' && LOADOUT_ID.test(u.moduleId))) delete u.moduleId; - if (u.kind === 'token') { delete u.skillIndex; delete u.moduleId; } + if ('standIn' in u && u.standIn !== true) delete u.standIn; + if (u.kind === 'token') { delete u.skillIndex; delete u.moduleId; delete u.standIn; } return u; } diff --git a/test/backups.test.js b/test/backups.test.js index 09486e7b..988da192 100644 --- a/test/backups.test.js +++ b/test/backups.test.js @@ -96,9 +96,14 @@ test('backups: the 17 stand-in characters, each with a form for every status it else assert.deepEqual(f.modules.map((m) => [m.uniEquipId, m.level]), ELITES.includes(id) ? [[`uniequip_002_${id.replace(/^char_\d+_/, '')}`, f.status.equipLevel]] : [], `${label}: modules`); } } - // the official 重装 class row applies to the stand-ins' MANUAL skills (the §21.29 deviation is per chess and names - // none of them) - for (const id of ['char_602_cdfend', 'char_610_acfend']) for (const s of backups.units[id].forms['2/1/4/0'].skills) assert.equal(s.trigger.rule, 'TAKE_DAMAGE', `${id} ${s.skillId}`); + // the official 重装 class row (TAKE_DAMAGE) meets the 重装 stand-ins' MANUAL skills, and the owner's 重装 exception + // (the approved 补位 plan, 2026-10-05; tools/build-data.mjs STANDIN_TRIGGER_DEVIATIONS) makes every one of them cast + // with an enemy in range — DEFAULT — on every form + for (const id of ['char_602_cdfend', 'char_610_acfend']) { + for (const f of Object.values(backups.units[id].forms)) { + for (const s of f.skills) assert.deepEqual(s.trigger, { rule: 'DEFAULT', rawRule: 'TAKE_DAMAGE', customRangeGrid: null }, `${id}@${statusKey(f.status)} ${s.skillId}`); + } + } assert.equal(backups.units.char_608_acpion.forms['2/1/4/0'].skills[2].trigger.rule, 'SKILL_RANGE', '郁金香 S3 对周围的敌人: its own x-1'); assert.equal(backups.units.char_617_sharp2.assets.avatarGolden, 'char_617_sharp2_2', '领主·Sharp has E2 art'); }); diff --git a/test/content/kits_layout.test.js b/test/content/kits_layout.test.js index 738bfeda..c9c27ac0 100644 --- a/test/content/kits_layout.test.js +++ b/test/content/kits_layout.test.js @@ -1,27 +1,44 @@ // The operator kit layout (server/sim/content/kits/README.md): every file of kits/ops/ is listed once in kits/index.js -// KIT_FILES and nothing else is; a file `-.js` registers exactly the kit of `_a`, whose -// data record has that charId code name; the registry is the tier groups in order, and content/index.js serves that -// object; no kit file imports a Node-only or server-only module or reads the clock / Math.random (the sim is -// deterministic and also runs in the browser, /sim/). +// KIT_FILES or STANDIN_KIT_FILES and nothing else is; a file `-.js` registers exactly the kit of +// `_a`, whose data record has that charId code name; a 补位 file `standin-.js` registers exactly the +// kit of the stand-in character whose charId has that code name (data/backups.json `units`); the registry is the tier +// groups in order, then the stand-ins, and content/index.js serves that object; no kit file imports a Node-only or +// server-only module or reads the clock / Math.random (the sim is deterministic and also runs in the browser, /sim/). import { test } from 'node:test'; import assert from 'node:assert/strict'; import { readdirSync, readFileSync } from 'node:fs'; import { join, dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; -import { KIT_FILES, TIER_KITS, KITS } from '../../server/sim/content/kits/index.js'; +import { KIT_FILES, TIER_KITS, KITS, STANDIN_KIT_FILES, STANDIN_KITS } from '../../server/sim/content/kits/index.js'; import { KITS as CONTENT_KITS } from '../../server/sim/content/index.js'; const ROOT = join(dirname(fileURLToPath(import.meta.url)), '../..'); const KIT_DIR = join(ROOT, 'server/sim/content/kits'); const CHESS = JSON.parse(readFileSync(join(ROOT, 'data/chess.json'), 'utf8')); +const BACKUPS = JSON.parse(readFileSync(join(ROOT, 'data/backups.json'), 'utf8')); const jsIn = (dir) => readdirSync(join(KIT_DIR, dir)).filter((f) => f.endsWith('.js')).sort(); test('kits/index.js lists every kit file of kits/ops/ exactly once, and only those', () => { - const listed = KIT_FILES.flat(); + const listed = [...KIT_FILES.flat(), ...STANDIN_KIT_FILES]; assert.equal(new Set(listed).size, listed.length, 'a file listed twice'); assert.deepEqual([...listed].sort(), jsIn('ops')); }); +test('a stand-in kit file standin-.js registers the kit of that stand-in charId (data/backups.json units)', async () => { + const units = Object.keys(BACKUPS.units); + for (const file of STANDIN_KIT_FILES) { + const m = /^standin-([a-z0-9]+)\.js$/.exec(file); + assert.ok(m, `${file}: name`); + const charId = units.find((id) => id.replace(/^char_\d+_/, '') === m[1]); + assert.ok(charId, `${file}: no stand-in with the code name ${m[1]}`); + const mod = await import(`../../server/sim/content/kits/ops/${file}`); + assert.deepEqual(Object.keys(mod.default), [charId], `${file}: default export`); + assert.equal(typeof mod.default[charId], 'function', `${file}: kit builder`); + assert.equal(STANDIN_KITS[charId], mod.default[charId], `${file}: registered`); + assert.equal(KITS[charId], mod.default[charId], `${file}: in the merged registry`); + } +}); + test('a kit file -.js registers the kit of _a (codename: its charId without char__)', async () => { for (const file of KIT_FILES.flat()) { const m = /^(chess_char_\w+?)-([a-z0-9]+)\.js$/.exec(file); @@ -37,9 +54,9 @@ test('a kit file -.js registers the kit of _a (coden } }); -test('the registry is the tier groups in KIT_FILES order, one key per file; content/index.js serves the same object', () => { - assert.deepEqual(Object.keys(KITS), TIER_KITS.flatMap((t) => Object.keys(t))); - assert.equal(Object.keys(KITS).length, KIT_FILES.flat().length, 'one key per file, none twice'); +test('the registry is the tier groups in KIT_FILES order, then the stand-ins, one key per file; content/index.js serves the same object', () => { + assert.deepEqual(Object.keys(KITS), [...TIER_KITS.flatMap((t) => Object.keys(t)), ...Object.keys(STANDIN_KITS)]); + assert.equal(Object.keys(KITS).length, KIT_FILES.flat().length + STANDIN_KIT_FILES.length, 'one key per file, none twice'); assert.equal(CONTENT_KITS, KITS); }); diff --git a/test/content/standin.test.js b/test/content/standin.test.js new file mode 100644 index 00000000..6c149cd2 --- /dev/null +++ b/test/content/standin.test.js @@ -0,0 +1,357 @@ +// test/content/standin.test.js — 补位 stand-ins in the battle simulation (DATA.md §18; kits/README.md "Stand-in kits"). +// +// The data layer: simdata getChess(id, { standIn: true }) / getStandIn — the chess's identity (ids, bonds, 特质, tier) +// with the stand-in's body, skill and module (shared/standIn.js standInRecord over data/backups.json) —, the per-battle +// view, the BattleSpec field `standIn`; the kit lookup by the stand-in's charId, never the replaced operator's kit +// (content/index.js kitOf); the harness option `units[].standIn`; and the eight 预备干员 (char_600–607) on the generic +// path, on every chess they replace (normal + elite): the stand-in body, the skill firing with its blackboard numbers, +// the unconditional stat talent (generic.js genericTalents), 一击即退 lasting its 10 s from every deployment (PRTS +// 预备干员-特种: 被动, 持续 10), 冲锋号令's DP at full SP (as 德克萨斯's kit casts the same skill) and 预备干员-重装 casting +// with an enemy in range (the owner's 重装 exception for the stand-ins, 2026-10-05; tools/build-data.mjs +// STANDIN_TRIGGER_DEVIATIONS). +// Run: node --test test/content/standin.test.js + +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; +import { makeBattle, enemyRec, standInRec, checkInvariants } from '../helpers/battleHarness.js'; +import { DataSource, getDefaultSource, withUnitLoadouts } from '../../server/sim/simdata.js'; +import { buildBattleSpec, createBattleFromSpec, sanitizeUnitLoadout } from '../../server/sim/spec.js'; +import { KITS, kitOf, isStandInDef, skillSpecSource } from '../../server/sim/content/index.js'; +import { statTalentMods } from '../../server/sim/content/generic.js'; +import { unitInfo } from '../../server/sim/snapshot.js'; +import { standInRecord, unitForm } from '../../shared/standIn.js'; +import { bodyInKeys } from '../../server/sim/body.js'; + +const load = (f) => JSON.parse(readFileSync(new URL(`../../data/${f}.json`, import.meta.url), 'utf8')); +const CHESS = load('chess'); +const BACKUPS = load('backups'); +const ds = getDefaultSource(); +const RESERVES = ['char_600_cpione', 'char_601_cguard', 'char_602_cdfend', 'char_603_csnipe', 'char_604_ccast', 'char_605_cmedic', 'char_606_csuppo', 'char_607_cspec']; +/** Every chess record (normal + elite) a 预备干员 stands in for. */ +const RESERVE_RECORDS = Object.values(CHESS).filter((c) => c.chessType === 'NORMAL' && RESERVES.includes(c.backup.charId)) + .sort((a, b) => a.chessId.localeCompare(b.chessId)); +const DUMMY = { enemy_dummy: enemyRec({ key: 'enemy_dummy', hp: 1e9, atk: 0, speed: 1 }) }; +const close = (a, b, msg) => assert.ok(Math.abs(a - b) < 1e-6, `${msg}: ${a} vs ${b}`); + +// --------------------------------------------------------------------------------------------------------------- +// data layer + +test('data: every NORMAL chess record resolves to its stand-in def — the chess identity, the stand-in body and backup selection — cached and frozen; PRESET / DIY keep their own def', () => { + let n = 0; + for (const c of Object.values(CHESS)) { + const d = ds.getChess(c.chessId, { standIn: true }); + if (c.chessType !== 'NORMAL') { + assert.equal(d, ds.getChess(c.chessId), `${c.chessId}: a ${c.chessType} chess fights as itself`); + assert.equal(d?.standInFor, undefined); + continue; + } + const r = standInRecord(c, BACKUPS); + const where = `${c.chessId} → ${c.backup.charId}`; + assert.deepEqual([d.id, d.baseId, d.golden, d.tier, d.charId, d.standInFor, d.name], [c.chessId, c.baseId, !!c.isGolden, c.tier, c.backup.charId, c.charId, r.name], where); + assert.deepEqual([d.bonds, d.raw.garrisonIds], [c.bonds, c.garrisonIds], `${where}: bonds / 特质 of the chess`); + for (const k of ['maxHp', 'atk', 'def', 'res', 'blockCnt', 'cost', 'respawnTime']) assert.equal(d.stats[k], r.stats[k], `${where}: ${k} of the stand-in`); + assert.deepEqual([d.profession, d.subProf, d.rangeGrid], [r.profession, r.subProfessionId, r.rangeGrid], `${where}: class and range of the stand-in`); + assert.deepEqual([d.skill.id, d.skill.index, d.skill.bb], [r.skill.skillId, c.backup.skillIndex, r.skill.bb], `${where}: the chess's backup skill`); + assert.equal(d.loadout.standIn, true); + assert.equal(d.loadout.moduleId ?? null, c.status.equipLevel > 0 ? (c.backup.uniEquipId ?? 'none') : null, `${where}: the backup module`); + assert.equal(!!d.raw.module?.active, !!(c.backup.uniEquipId && c.status.equipLevel > 0), `${where}: module active`); + assert.ok(Object.isFrozen(d) && Object.isFrozen(d.skill.bb), `${where}: frozen`); + assert.equal(ds.getChess(c.chessId, { standIn: true, skillIndex: 0, moduleId: 'none' }), d, `${where}: a stand-in's skill / module cannot be changed`); + const own = ds.getChess(c.chessId); + assert.ok(own !== d && own.charId === c.charId && own.standInFor === undefined, `${where}: the chess's own def is untouched`); + assert.ok(isStandInDef(d) && !isStandInDef(own)); + n++; + } + assert.equal(n, 110); +}); + +test('data: a source without backups.json fields the chess itself (a browser that did not fetch it); with it, the stand-in', () => { + const rec = CHESS.chess_char_4_04_a; + const bare = new DataSource({ chess: { [rec.chessId]: rec } }, null); + assert.equal(bare.rawBackups(), null); + const d = bare.getChess(rec.chessId, { standIn: true }); + assert.deepEqual([d.charId, d.standInFor], [rec.charId, undefined]); + const full = new DataSource({ chess: { [rec.chessId]: rec }, backups: BACKUPS }, null); + assert.deepEqual([full.getChess(rec.chessId, { standIn: true }).charId, full.getChess(rec.chessId, { standIn: true }).standInFor], ['char_607_cspec', rec.charId]); + // a fallback chain finds the default source's backups (test DataSources over getDefaultSource) + assert.equal(new DataSource({}, ds).rawBackups(), ds.rawBackups()); +}); + +test('spec and view: buildBattleSpec keeps standIn only when exactly true (never on a token); createBattleFromSpec fields the stand-in; the view maps id-only lookups', () => { + assert.deepEqual(sanitizeUnitLoadout({ chessId: 'x', standIn: true }), { chessId: 'x', standIn: true }); + assert.deepEqual(sanitizeUnitLoadout({ chessId: 'x', standIn: 'true' }), { chessId: 'x' }); + assert.deepEqual(sanitizeUnitLoadout({ chessId: 'x', standIn: 1 }), { chessId: 'x' }); + assert.deepEqual(sanitizeUnitLoadout({ kind: 'token', tokenId: 't', standIn: true }), { kind: 'token', tokenId: 't' }); + const spec = buildBattleSpec({ + battleId: 'standin', fieldId: 'f', kind: 'normal', seed: 9, modeId: 'mode_multi_normal', round: 3, stageId: 'act2autochess_m01', timeLimit: 30, + players: [{ + playerId: 'p1', seat: 0, side: 'L', colOffset: 0, bonds: {}, bandId: null, playerEffects: [], + units: [ + { uid: 1, kind: 'chess', chessId: 'chess_char_4_04_a', row: 10, col: 4, standIn: true }, + { uid: 2, kind: 'chess', chessId: 'chess_char_4_07_a', row: 11, col: 4, standIn: 'yes' }, + ], + }], + spawns: [], routes: [], + }); + assert.deepEqual(spec.players[0].units.map((u) => u.standIn), [true, undefined]); + const b = createBattleFromSpec(spec, ds); + b.step(); + const [u1, u2] = [1, 2].map((uid) => b.allyUnits.find((u) => u.uid === uid)); + assert.deepEqual([u1.def.charId, u1.def.standInFor, u1.defId], ['char_607_cspec', CHESS.chess_char_4_04_a.charId, 'chess_char_4_04_a']); + assert.deepEqual([u2.def.charId, u2.def.standInFor], [CHESS.chess_char_4_07_a.charId, undefined]); + assert.equal(b.data.getChess('chess_char_4_04_a'), u1.def, 'the per-battle view: an id-only lookup is the stand-in'); + assert.deepEqual(b.data.loadoutConflicts, []); + assert.equal(b.errors.length, 0); + // two players of one field: one fields the chess as its stand-in, the other as itself — the first wins id-only lookups + const view = withUnitLoadouts(ds, [ + { units: [{ chessId: 'chess_char_4_04_a', standIn: true }] }, + { units: [{ chessId: 'chess_char_4_04_a' }] }, + ]); + assert.deepEqual(view.loadoutConflicts, ['chess_char_4_04_a']); + assert.equal(view.getChess('chess_char_4_04_a').charId, 'char_607_cspec'); + assert.equal(view.getChess('chess_char_4_04_a', {}).charId, CHESS.chess_char_4_04_a.charId, 'an explicit loadout is exact'); +}); + +// --------------------------------------------------------------------------------------------------------------- +// kit lookup + +test('kits: a stand-in finds its kit by its charId only — never the kit of the operator it replaces (kitOf, skillSpecSource)', () => { + const sd = ds.getChess('chess_char_4_04_a', { standIn: true }); + const od = ds.getChess('chess_char_4_04_a'); + const fChess = () => ({}), fStand = () => ({}); + assert.equal(typeof KITS.chess_char_4_04_a, 'function', '伊内丝 has a kit of her own'); + assert.equal(kitOf(sd, { chess_char_4_04_a: fChess, chess_char_4_04: fChess }), undefined); + assert.equal(kitOf(sd, { chess_char_4_04_a: fChess, char_607_cspec: fStand }), fStand); + assert.equal(kitOf(od, { chess_char_4_04_a: fChess, char_607_cspec: fStand }), fChess); + assert.equal(kitOf(ds.getChess('chess_char_4_04_b'), { chess_char_4_04_a: fChess }), fChess, 'the elite finds the base kit as before'); + assert.equal(kitOf(sd, KITS), undefined, 'no stand-in kit is registered for 预备干员-特种'); + assert.equal(skillSpecSource(sd), 'none'); + assert.equal(skillSpecSource(od), 'kit'); + assert.equal(skillSpecSource(sd, { char_607_cspec: () => ({ skills: { 'skcom_born_up[2]': { kind: 'passive' } } }) }), 'skills'); + assert.equal(skillSpecSource(sd, { char_607_cspec: () => ({ skill: { kind: 'passive' } }) }), 'generic', 'a stand-in has no default skill'); +}); + +test('kits in battle: injected kits keyed by the chess id reach the operator only, keyed by the charId the stand-in only; without one the stand-in runs the generic kit', () => { + const calls = []; + const spy = (tag) => (bb, chess, def) => { calls.push([tag, def.charId]); return { skill: null, talents: [] }; }; + const h = makeBattle({ + units: [{ chessId: 'chess_char_4_04_a', row: 10, col: 4, standIn: true }, { chessId: 'chess_char_4_04_b', row: 11, col: 4 }], + kits: { chess_char_4_04_a: spy('chess'), char_607_cspec: spy('standIn') }, + }); + h.step(); + assert.deepEqual(calls.sort(), [['chess', CHESS.chess_char_4_04_b.charId], ['standIn', 'char_607_cspec']]); + checkInvariants(h.b); + const g = makeBattle({ units: [{ chessId: 'chess_char_4_04_a', row: 10, col: 4, standIn: true }, { chessId: 'chess_char_4_04_b', row: 11, col: 4 }] }); + g.step(); + const [s, o] = [g.unit(1), g.unit(2)]; + assert.equal(s.kit.generic, true, 'the stand-in: generic kit'); + assert.equal(s.kit.talents.length, 1, 'plus its one unconditional stat talent'); + assert.ok(!o.kit.generic, 'the operator: her own kit'); + assert.equal(g.b.errors.length, 0); +}); + +test('kits: a stand-in kit has no default skill — `skills[skillId]` is its spec, `skill` is never used (the generic spec instead)', () => { + const run = (kit) => { + const h = makeBattle({ units: [{ chessId: 'chess_char_4_07_a', row: 10, col: 4, standIn: true }], kits: { char_601_cguard: () => kit } }); + h.step(); + return h.unit(1).kit; + }; + const k1 = run({ skill: { kind: 'duration', mods: { atkPct: 9 } }, talents: [] }); + assert.equal(k1.skillSource, 'generic'); + assert.deepEqual(k1.skill.mods, { atkPct: 0.35 }, '攻击力强化·β型 at Lv4: atk 0.35 from the blackboard'); + const k2 = run({ skills: { 'skcom_atk_up[2]': { kind: 'duration', mods: { atkPct: 0.123 } } }, talents: [] }); + assert.equal(k2.skillSource, 'skills'); + assert.deepEqual(k2.skill.mods, { atkPct: 0.123 }); +}); + +test('loadout sync keeps a stand-in whose entry also names a skill / module; UnitInfo carries standInFor for the client', () => { + const h = makeBattle({ units: [ + { chessId: 'chess_char_4_07_b', row: 10, col: 4, standIn: true, skillIndex: 0, moduleId: 'none' }, + { chessId: 'chess_char_4_04_a', row: 11, col: 4 }, + ] }); + h.step(); + const [s, o] = [h.unit(1), h.unit(2)]; + assert.deepEqual([s.def.charId, s.skill.id], ['char_601_cguard', 'skcom_atk_up[2]']); + assert.equal(unitInfo(s).standInFor, CHESS.chess_char_4_07_b.charId); + assert.equal(unitInfo(s).spine, 'char_601_cguard', 'the stand-in model'); + assert.equal(unitInfo(o).standInFor, undefined); + assert.equal(h.b.errors.length, 0); +}); + +test('harness: standIn: { skillIndex, moduleId } fields another skill / module of the stand-in (standInRec); a chess without a stand-in throws', () => { + const r = standInRec('chess_char_5_11_b', { skillIndex: 0 }); + assert.deepEqual([r.charId, r.skill.skillId, r.module.id, r.module.active, r.standInFor], ['char_613_acmedc', 'skchr_acmedc_1', 'uniequip_002_acmedc', true, CHESS.chess_char_5_11_b.charId]); + assert.deepEqual(standInRec('chess_char_5_11_b'), standInRecord(CHESS.chess_char_5_11_b, BACKUPS), 'no selection: the chess backup'); + const h = makeBattle({ units: [{ chessId: 'chess_char_5_11_b', row: 10, col: 4, standIn: { skillIndex: 0, moduleId: 'none' } }] }); + h.step(); + const u = h.unit(1); + assert.deepEqual([u.def.charId, u.skill.id, !!u.def.raw.module?.active, u.def.standInFor], ['char_613_acmedc', 'skchr_acmedc_1', false, CHESS.chess_char_5_11_b.charId]); + assert.equal(u.base.atk, unitForm(BACKUPS, 'char_613_acmedc', CHESS.chess_char_5_11_b.status).stats.atk, 'no module: the form ATK'); + assert.throws(() => standInRec('chess_char_1_01_a'), /no 补位 stand-in/); + assert.throws(() => standInRec('chess_char_5_11_b', { skillIndex: 7 }), /has no skill/); +}); + +// --------------------------------------------------------------------------------------------------------------- +// the eight 预备干员 on the generic path + +/** The skill buff mods the generic spec should give for a stat skill's blackboard (generic.js key map). */ +function statMods(bb) { + const m = {}; + if (bb.atk) m.atkPct = bb.atk; + if (bb.def) m.defPct = bb.def; + if (bb.attack_speed) m.aspd = bb.attack_speed; + return m; +} + +test('the eight 预备干员: every chess record they replace fields the stand-in body; the skill fires with its blackboard numbers; the stat talent applies', () => { + const seen = new Set(); + for (const c of RESERVE_RECORDS) { + const charId = c.backup.charId; + const form = unitForm(BACKUPS, charId, c.status); + const sk = form.skills.find((s) => s.index === c.backup.skillIndex); + const where = `${c.chessId} ${c.name} → ${BACKUPS.units[charId].name} ${sk.name}`; + const medic = charId === 'char_605_cmedic'; + const units = [{ chessId: c.chessId, row: 9, col: 5, dir: 'RIGHT', standIn: true, carryState: { sp: 999 } }]; + if (medic) units.push({ chessId: 'chess_char_1_02_a', row: 10, col: 6 }); + const h = makeBattle({ + defs: { enemies: DUMMY }, units, timeLimit: 60, autoFinish: false, flags: { dpPerSec: 0 }, + enemies: medic ? [] : [{ key: 'enemy_dummy', route: 0, time: 0 }], hooks: ['skillStart'], + }); + const u = h.unit(1); + if (medic) { h.step(); const a = h.unit(2); h.b.loseHp(a, a.hp * 0.6); } + // the stand-in body and the generic kit, never the replaced operator's + assert.deepEqual([u.def.charId, u.def.standInFor, u.skill.id, u.kit.generic], [charId, c.charId, sk.skillId, true], where); + for (const k of ['maxHp', 'atk', 'def']) assert.equal(u.base[k], form.stats[k], `${where}: base ${k}`); + // the unconditional stat talent (攻击力+8% / 防御力+10% / 攻击速度+9), as a persistent talent buff + const talent = form.talents[0]; + const tMods = statTalentMods({ description: talent.desc, bb: talent.bb }); + assert.ok(tMods, `${where}: ${talent.desc} is a plain stat talent`); + assert.deepEqual(u.findBuff('talent:generic:0')?.mods, tMods, `${where}: talent ${talent.name}`); + const dp0 = h.b.players[0].dp; + if (sk.skillType === 'PASSIVE') { + h.step(); + assert.deepEqual(u.findBuff(`generic:passive:${sk.skillId}`)?.mods, statMods(sk.bb), `${where}: deploy buff`); + } else { + assert.ok(h.runUntil(() => u.skill.activations > 0, 30), `${where}: the skill fires`); + h.step(); + if (sk.prefabId === 'skcom_charge_cost') { + assert.equal(u.skill.rule, 'SP_FULL', `${where}: AUTO, nothing to wait for`); + assert.equal(h.b.players[0].dp, dp0 + sk.bb.cost, `${where}: +${sk.bb.cost} DP`); + } else { + const buff = u.findBuff(`skill:${u.id}`); + assert.deepEqual(buff?.mods, statMods(sk.bb), `${where}: skill buff from the blackboard`); + assert.equal(u.skill.kind, 'duration', where); + assert.equal(u.skill.duration, sk.duration, `${where}: ${sk.duration} s`); + // the stat the skill raises, exactly: base × (1 + talent + skill) or base + talent + skill + if (sk.bb.atk) close(u.s.atk, form.stats.atk * (1 + (tMods.atkPct ?? 0) + sk.bb.atk), `${where}: ATK`); + if (sk.bb.def) close(u.s.def, form.stats.def * (1 + (tMods.defPct ?? 0) + sk.bb.def), `${where}: DEF`); + if (sk.bb.attack_speed) assert.equal(u.s.aspd, form.stats.aspd + (tMods.aspd ?? 0) + sk.bb.attack_speed, `${where}: ASPD`); + } + } + checkInvariants(h.b); + assert.equal(h.b.errors.length, 0, `${where}: ${JSON.stringify(h.b.errors[0])}`); + seen.add(charId); + } + assert.equal(RESERVE_RECORDS.length, 28); + assert.deepEqual([...seen].sort(), RESERVES); +}); + +test('一击即退 (预备干员-特种 for 伊内丝): ATK / DEF up for exactly its 10 s from every deployment, normal and elite', () => { + for (const id of ['chess_char_4_04_a', 'chess_char_4_04_b']) { + const c = CHESS[id]; + const form = unitForm(BACKUPS, 'char_607_cspec', c.status); + const sk = form.skills.find((s) => s.index === c.backup.skillIndex); + assert.deepEqual([sk.skillId, sk.skillType, sk.duration], ['skcom_born_up[2]', 'PASSIVE', 10]); + const h = makeBattle({ units: [{ chessId: id, row: 10, col: 4, standIn: true }], timeLimit: 200, autoFinish: false }); + const u = h.unit(1); + const on = () => { close(u.s.atk, form.stats.atk * (1.08 + sk.bb.atk), `${id} ATK on`); close(u.s.def, form.stats.def * (1 + sk.bb.def), `${id} DEF on`); }; + const off = () => { close(u.s.atk, form.stats.atk * 1.08, `${id} ATK off`); close(u.s.def, form.stats.def, `${id} DEF off`); }; + h.run(9.9); + on(); + h.run(0.2); + off(); + // knocked out and redeployed (再部署时间大幅度减少): the buff starts again with the new deployment + h.b.kill(u); + assert.ok(h.runUntil(() => u.alive && u.deployed, 60), `${id}: redeployed`); + const back = h.b.time; + h.step(); + on(); + h.runUntil(() => h.b.time >= back + 9.9, 20); + on(); + h.run(0.2); + off(); + checkInvariants(h.b); + assert.equal(h.b.errors.length, 0); + } +}); + +test('冲锋号令·γ型 (预备干员-先锋 for 圣约送葬人): +12 DP as soon as the SP is full — no enemy needed — then again after each refill', () => { + for (const id of ['chess_char_5_01_a', 'chess_char_5_01_b']) { + const c = CHESS[id]; + const sk = unitForm(BACKUPS, 'char_600_cpione', c.status).skills.find((s) => s.index === c.backup.skillIndex); + assert.deepEqual([sk.skillId, sk.skillType, sk.bb.cost], ['skcom_charge_cost[3]', 'AUTO', 12]); + const h = makeBattle({ units: [{ chessId: id, row: 10, col: 4, standIn: true }], timeLimit: 200, autoFinish: false, flags: { dpPerSec: 0 }, hooks: ['skillStart'] }); + const u = h.unit(1); + const dp = () => h.b.players[0].dp; + h.step(); + const dp0 = dp(); + // initial SP initSp, then +1/s: the first cast when the SP reaches the cost (41 − 12 s normal, 38 − 14 s elite) + assert.ok(h.runUntil(() => u.skill.activations === 1, 60)); + close(Math.round(h.b.time), sk.spCost - sk.initSp, `${id}: first cast at full SP`); + h.step(); + assert.equal(dp(), dp0 + 12, `${id}: +12 DP`); + assert.ok(h.runUntil(() => u.skill.activations === 2, 60)); + h.step(); + assert.equal(dp(), dp0 + 24, `${id}: +12 DP again`); + assert.equal(h.hooksOf('skillStart').length, 2); + assert.equal(h.b.enemies.length, 0, 'no enemy at all'); + checkInvariants(h.b); + } +}); + +/** + * A real battle (the 重装 trigger check of test/sim/feedback1-tank-triggers.test.js): the stand-in of `chessId` on + * (9,5) of 战场#01(下半) facing the gate with its SP full; one 萨卡兹枯朽前锋 (melee) walks the lane from 3 s. Returns the + * first cast (time, reason, an enemy on its range or blocked then) and the time the unit first took damage. + */ +function firstCast(chessId) { + const h = makeBattle({ + stageId: 'act2autochess_m01', seed: 3, timeLimit: 120, autoFinish: false, + units: [{ chessId, row: 9, col: 5, dir: 'RIGHT', standIn: true, carryState: { sp: 999 } }], + enemies: [{ key: 'enemy_1422_lrsldr', route: 0, time: 3 }], + }); + const u = h.unit(chessId); + const out = { rule: u.skill.rule, cast: null, reason: null, enemyInRange: false, blocking: false, hurt: null }; + h.b.on('damaged', (ctx) => { if (ctx.target === u && out.hurt == null) out.hurt = h.b.time; }, { priority: 1000 }); + h.b.on('skillStart', (ctx) => { + if (ctx.unit !== u || out.cast != null) return; + out.cast = h.b.time; + out.reason = ctx.reason; + const keys = new Set(u.baseRangeKeys || u.rangeKeys); + out.enemyInRange = h.b.enemies.some((e) => e.alive && e.deployed && bodyInKeys(e, keys)); + out.blocking = u.blocking.length > 0; + }, { priority: 1000 }); + h.runUntil(() => out.cast != null && out.hurt != null, 40); + checkInvariants(h.b); + assert.equal(h.b.errors.length, 0, JSON.stringify(h.b.errors[0])); + return { ...out, charId: u.def.charId, skill: u.skill.id, trigger: u.def.skill.trigger }; +} + +test('预备干员-重装 (for 泥岩 S2, 乌尔比安 S3): casts with an enemy in range before anything hits it — the owner\'s 重装 exception, rawRule TAKE_DAMAGE', () => { + for (const id of ['chess_char_4_18_a', 'chess_char_4_18_b', 'chess_char_5_05_a', 'chess_char_5_05_b']) { + const r = firstCast(id); + const where = `${id}: ${JSON.stringify(r)}`; + assert.equal(r.charId, 'char_602_cdfend', where); + assert.deepEqual(r.trigger, { rule: 'DEFAULT', grid: null }, where); + assert.equal(r.rule, 'DEFAULT', where); + assert.ok(r.cast != null && r.cast >= 3, `cast once the enemy is on the field — ${where}`); + assert.equal(r.reason, 'DEFAULT', where); + assert.ok(r.enemyInRange || r.blocking, `an enemy on its tile at the cast — ${where}`); + assert.ok(r.hurt == null || r.hurt > r.cast, `cast before the first hit — ${where}`); + } + // the data keeps the official row as rawRule, on every skill of both 重装 stand-ins (Mechanist's kit reads it as is) + for (const charId of ['char_602_cdfend', 'char_610_acfend']) { + for (const f of Object.values(BACKUPS.units[charId].forms)) for (const s of f.skills) assert.deepEqual([s.trigger.rule, s.trigger.rawRule], ['DEFAULT', 'TAKE_DAMAGE'], `${charId} ${s.skillId}`); + } +}); diff --git a/test/helpers/battleHarness.js b/test/helpers/battleHarness.js index 93107238..3340b219 100644 --- a/test/helpers/battleHarness.js +++ b/test/helpers/battleHarness.js @@ -11,15 +11,21 @@ // stage explicit stage object (overrides stageId) // kind 'normal' | 'unite' | 'boss' | 'hidden' (default 'normal') // seed uint32 (default 1) -// units [{ chessId, row, col, items?, uid?, carryState?, abs? } | { kind:'token', tokenId, row, col }] -// board coordinates (rows 9–12, cols 2–10) for player 'p1' +// units [{ chessId, row, col, items?, uid?, carryState?, abs?, standIn? } | { kind:'token', tokenId, row, col }] +// board coordinates (rows 9–12, cols 2–10) for player 'p1'. `standIn: true` fields a NORMAL chess as its +// 补位 stand-in (data/backups.json through simdata getChess(id, { standIn: true }) — the production +// path: the chess's ids / bonds / 特质 / tier, the stand-in's body, its kit by charId); the `_a` id is the +// normal form, `_b` the elite, skill / module are the chess's backup selection. `standIn: { skillIndex?, +// moduleId? }` fields it with another of the stand-in's skills / modules (a kit test of a skill no chess +// names): the composed record (standInRec) replaces that chess id's record for the whole battle // players full PlayerBattleInput[] (overrides `units`) // enemies [{ key, time=0, route=0 | RouteSpec, pos?, count?, interval?, mods?, tag?, bounty?, sourcePlayerId? }] // waveTemplate wave id (data/waves.json) or template object → routes + spawns + timeLimit // routes RouteSpec[] (default: template routes, or flat-stage routes 0..3 = walk low, walk high, fly low, fly high) // timeLimit seconds (default: template maxPlayTime, else 60; boss/hidden: Infinity) // content 'full' | 'generic' | 'none' (default 'full') -// kits { [baseChessId]: (bb, chess, def) => Kit } injected kits (take precedence over kits/index.js) +// kits { [baseChessId | standInCharId]: (bb, chess, def) => Kit } injected kits (take precedence over +// kits/index.js; a stand-in's kit is keyed by its charId only) // extraContent [{ install(battle) }] extra content modules installed after the domain modules (content tests) // defs { chess: {id: record}, enemies: {key: record}, tokens: {id: record} } extra/override data records // flags, sharedBoss, modeId, round, setup(battle), recordEvents (default true). The harness sets @@ -36,6 +42,7 @@ import { Battle } from '../../server/sim/Battle.js'; import { DataSource, getDefaultSource, spawnsFromTemplate } from '../../server/sim/simdata.js'; import { TICK } from '../../server/sim/constants.js'; +import { standInRecord, composeUnitRecord, unitForm } from '../../shared/standIn.js'; export const ALL_HOOKS = Object.freeze([ 'battleStart', 'deploy', 'tick', 'beforeAttack', 'attack', 'hit', 'damaged', 'heal', 'kill', 'death', @@ -141,15 +148,52 @@ export function enemyRec(o = {}) { }; } +/** + * The 补位 record of a NORMAL chess (data/chess.json `_a` normal / `_b` elite) fielded as its stand-in — shared/standIn.js + * standInRecord: the chess's backup skill and module — or, with `skillIndex` / `moduleId` (null / 'none' = no module), + * another selection of the same stand-in at the chess's status. Throws when the chess has no stand-in (PRESET, DIY) or + * the stand-in lacks that skill / module. + * @param {string} chessId + * @param {{ skillIndex?: number, moduleId?: string|null }} [sel] + * @param {object} [data] DataSource (default: the sim's default source) + */ +export function standInRec(chessId, sel = {}, data = getDefaultSource()) { + const chess = data.rawChess(chessId); + const backups = typeof data.rawBackups === 'function' ? data.rawBackups() : null; + const b = chess?.backup; + if (!b || !backups || chess.chessType !== 'NORMAL') throw new Error(`${chessId}: no 补位 stand-in (PRESET / DIY chess, or no backups.json)`); + const custom = sel && (sel.skillIndex != null || sel.moduleId !== undefined); + const rec = !custom ? standInRecord(chess, backups) : composeUnitRecord(chess, backups.units?.[b.charId], unitForm(backups, b.charId, chess.status), { + skillIndex: sel.skillIndex ?? b.skillIndex, + moduleId: sel.moduleId === undefined ? b.uniEquipId ?? null : (sel.moduleId === 'none' ? null : sel.moduleId), + standInFor: chess.charId, + }); + if (!rec || !rec.skill) throw new Error(`${chessId}: stand-in ${b.charId} has no skill ${sel?.skillIndex ?? b.skillIndex}`); + const mod = sel?.moduleId; + if (custom && mod && mod !== 'none' && !rec.module?.active) throw new Error(`${chessId}: stand-in ${b.charId} has no module ${mod} at ${chessId}`); + return rec; +} + function buildData(defs) { if (!defs) return getDefaultSource(); return new DataSource({ chess: defs.chess ?? {}, enemies: defs.enemies ?? {}, tokens: defs.tokens ?? {}, stages: defs.stages ?? {}, waves: defs.waves ?? {} }, getDefaultSource()); } +/** `units[].standIn` objects → the composed records for `defs.chess` (null when there are none). */ +function standInDefs(units) { + let out = null; + for (const u of units ?? []) { + if (!u || !u.standIn || typeof u.standIn !== 'object') continue; + (out ??= {})[u.chessId] = standInRec(u.chessId, u.standIn); + } + return out; +} + /** Create a battle + harness. See header for options. */ export function makeBattle(opts = {}) { const kind = opts.kind ?? 'normal'; - const data = opts.data ?? buildData(opts.defs); + const custom = opts.data ? null : standInDefs(opts.units); + const data = opts.data ?? buildData(custom ? { ...opts.defs, chess: { ...(opts.defs?.chess ?? {}), ...custom } } : opts.defs); let stage = opts.stage ?? null; if (!stage) stage = !opts.stageId || opts.stageId === 'flat' ? flatStage(opts.flat || {}) : data.getStage(opts.stageId); if (!stage) throw new Error(`unknown stage ${opts.stageId}`); @@ -181,7 +225,7 @@ export function makeBattle(opts = {}) { if (extraRoutes.length) routes = routes.concat(extraRoutes); const players = opts.players ?? [{ playerId: 'p1', seat: 0, side: 'L', colOffset: 0, - units: (opts.units ?? []).map((u, i) => ({ uid: u.uid ?? i + 1, kind: u.kind ?? 'chess', ...u })), + units: (opts.units ?? []).map((u, i) => ({ uid: u.uid ?? i + 1, kind: u.kind ?? 'chess', ...u, ...(u.standIn ? { standIn: true } : null) })), bonds: opts.bonds ?? {}, bandId: opts.bandId ?? null, playerEffects: opts.playerEffects ?? [], }]; const hookNames = opts.hooks ?? ALL_HOOKS; diff --git a/tools/build-data.mjs b/tools/build-data.mjs index 3ad7faab..90c064ea 100644 --- a/tools/build-data.mjs +++ b/tools/build-data.mjs @@ -460,6 +460,19 @@ const TRIGGER_DEVIATIONS = Object.freeze({ chess_char_6_03_a: { skchr_yu_2: 'SKILL_RANGE' }, // 余 S2 厚礼上宾 (its x-1) }); +/** + * The same deviation for the 重装 stand-ins (补位 / 自选 prototypes, data/backups.json forms): the owner's decision of + * 2026-10-05 (the approved 补位 plan, handoff 0.2.0-补位方案 §一.5): 预备干员-重装 and Mechanist cast with an enemy in + * range — DEFAULT — instead of the TANK class row's TAKE_DAMAGE. Keyed by the stand-in's charId (a form belongs to no + * chess) and the skill id, every skill of both: a stand-in fields the skill its chess names and a prototype in a 自选 + * slot follows the same rule. `rawRule` keeps TAKE_DAMAGE; validateAll fails the build when an entry no longer meets a + * TAKE_DAMAGE row on every form of its unit. + */ +const STANDIN_TRIGGER_DEVIATIONS = Object.freeze({ + char_602_cdfend: { 'skcom_def_up[1]': 'DEFAULT', 'skcom_def_up[2]': 'DEFAULT', 'skcom_def_up[3]': 'DEFAULT' }, // 预备干员-重装 防御力强化 α/β/γ + char_610_acfend: { skchr_acfend_1: 'DEFAULT', skchr_acfend_2: 'DEFAULT', skchr_acfend_3: 'DEFAULT' }, // Mechanist S1 结构稳定 / S2 不变性原理 / S3 应力倒置 +}); + /** * Resolve the auto-cast rule of a skill record (PRTS 卫戍协议/帮助 §作战阶段 技能操作 — the official skill strategies; * DESIGN §5.6): @@ -473,13 +486,15 @@ const TRIGGER_DEVIATIONS = Object.freeze({ * - else, for an operator's MANUAL skill with a 技能范围 (a rangeId that is not an attack-range change): SKILL_RANGE, * "不通过普通攻击/治疗触发技能,仅在技能范围内存在敌人(无视其不可选中)时释放技能", customRangeGrid = the skill range; * - else DEFAULT (the basic strategy: ready + about to attack / heal); - * - last, the deliberate deviations (TRIGGER_DEVIATIONS, per chess and skill): `rule` from the table, `rawRule` the - * official row (a SKILL_RANGE deviation takes the skill's own range as `customRangeGrid`). + * - last, the deliberate deviations (TRIGGER_DEVIATIONS, per chess and skill; STANDIN_TRIGGER_DEVIATIONS, per stand-in + * unit and skill): `rule` from the table, `rawRule` the official row (a SKILL_RANGE deviation takes the skill's own + * range as `customRangeGrid`). * @param {object} skill record from buildSkill (skillId, skillType, desc, rangeGrid) - * @param {{operator?: boolean, chessId?: string}} opts operator = a chess (the 技能范围 strategy is written for 干员; - * summons keep DEFAULT); chessId = the chess's NORMAL id (TRIGGER_DEVIATIONS key) + * @param {{operator?: boolean, chessId?: string, unitCharId?: string}} opts operator = a chess (the 技能范围 strategy is + * written for 干员; summons keep DEFAULT); chessId = the chess's NORMAL id (TRIGGER_DEVIATIONS key); unitCharId = the + * character of a backups.json unit form (STANDIN_TRIGGER_DEVIATIONS key) */ -function resolveTrigger(ctx, char, charId, skillIdx, skill, { operator = false, chessId = null } = {}) { +function resolveTrigger(ctx, char, charId, skillIdx, skill, { operator = false, chessId = null, unitCharId = null } = {}) { const rows = Object.values(ctx.ac.skillTriggerDataList || {}); const manual = skill.skillType === 'MANUAL'; const pick = @@ -491,7 +506,8 @@ function resolveTrigger(ctx, char, charId, skillIdx, skill, { operator = false, return { rule: 'SKILL_RANGE', rawRule: 'DEFAULT', customRangeGrid: skill.rangeGrid.map((p) => p.slice()) }; } const rawRule = pick ? pick.skillTriggerType : 'DEFAULT'; - const deviation = chessId ? TRIGGER_DEVIATIONS[chessId]?.[skill.skillId] : null; + const deviation = chessId ? TRIGGER_DEVIATIONS[chessId]?.[skill.skillId] + : unitCharId ? STANDIN_TRIGGER_DEVIATIONS[unitCharId]?.[skill.skillId] : null; if (deviation === 'SKILL_RANGE') { if (!skill.rangeGrid) warn(`trigger deviation ${chessId} ${skill.skillId}: SKILL_RANGE without a 技能范围`); return { rule: deviation, rawRule, customRangeGrid: skill.rangeGrid ? skill.rangeGrid.map((p) => p.slice()) : null }; @@ -1045,8 +1061,9 @@ function buildUnitHead(ctx, charId) { * trigger resolved per skill as for a chess), its summons, and at `equipLevel > 0` every ADVANCED module of that level. * The helpers and rules of buildChess; checkUnitFormParity proves the two agree on every PRESET chess. * @param {{ chessId?: string|null, skillIndex?: number|null }} [opts] `chessId`: the NORMAL chess id of a - * TRIGGER_DEVIATIONS entry (parity check only — a stand-in's form belongs to no chess, so no deviation applies); - * `skillIndex`: a skill listed even when locked (buildChess always lists the default) + * TRIGGER_DEVIATIONS entry (parity check only — a stand-in's form belongs to no chess: its deviations are the + * unit's, STANDIN_TRIGGER_DEVIATIONS by charId); `skillIndex`: a skill listed even when locked (buildChess always + * lists the default) */ function buildUnitForm(ctx, charId, status, { chessId = null, skillIndex = null } = {}) { const { charTable, uniequip, battleEquip } = ctx; @@ -1063,7 +1080,7 @@ function buildUnitForm(ctx, charId, status, { chessId = null, skillIndex = null if (!se?.skillId || (i !== skillIndex && !unlocked(se.unlockCond, phase, level))) return; const s = buildSkill(ctx, se.skillId, skillLevel, null, label); if (!s) return; - s.trigger = resolveTrigger(ctx, char, charId, i, s, { operator: true, chessId }); + s.trigger = resolveTrigger(ctx, char, charId, i, s, { operator: true, chessId, unitCharId: chessId ? null : charId }); s.index = i; s.overrideTokenKey = se.overrideTokenKey || null; skills.push(s); @@ -3412,6 +3429,18 @@ function validateAll(f) { for (const p of backups.diy.prototypes[s.tier] || []) for (const rec of [slot, golden]) if (!unitForm(backups, p, rec.status)) err(`DIY slot ${rec.chessId}: prototype ${p} has no form ${statusKey(rec.status)}`); } for (const [id, o] of Object.entries(backups.diy.operators)) for (const b of o.bonds) if (!bonds[b]) err(`DIY pick ${id}: bond ${b} missing`); + // the 重装 stand-ins' deviations (STANDIN_TRIGGER_DEVIATIONS) still override an official TAKE_DAMAGE row, on every form + for (const [charId, skillsOf] of Object.entries(STANDIN_TRIGGER_DEVIATIONS)) { + const forms = Object.values(backups.units[charId]?.forms || {}); + if (!forms.length) err(`stand-in trigger deviation ${charId}: no unit in backups.json`); + for (const [skillId, rule] of Object.entries(skillsOf)) { + for (const f of forms) { + const s = f.skills.find((x) => x.skillId === skillId); + if (!s) err(`stand-in trigger deviation ${charId}@${statusKey(f.status)}: no skill ${skillId}`); + else if (s.trigger.rawRule !== 'TAKE_DAMAGE' || s.trigger.rule !== rule) err(`stand-in trigger deviation ${charId}@${statusKey(f.status)} ${skillId}: ${s.trigger.rawRule} → ${s.trigger.rule}, expected TAKE_DAMAGE → ${rule}`); + } + } + } } for (const b of Object.values(bonds)) { for (const m of b.members) if (!chess[m]) err(`bond ${b.bondId}: member ${m} missing`); diff --git a/tools/setup.mjs b/tools/setup.mjs index 45dce49e..3f9c163e 100755 --- a/tools/setup.mjs +++ b/tools/setup.mjs @@ -44,7 +44,7 @@ const NODE_URL = 'https://nodejs.org/zh-cn/download'; /** Data files the server expects (server/data.js DATA_FILES) + the emote catalogue used by the client. */ export const DATA_FILES = ['config', 'chess', 'bonds', 'garrisons', 'items', 'bands', 'effects', 'choices', - 'enemies', 'factions', 'waves', 'stages', 'bosses', 'tokens', 'assets', 'emotes']; + 'enemies', 'factions', 'waves', 'stages', 'bosses', 'tokens', 'assets', 'backups', 'emotes']; /** Runtime packages that must be installed (package.json dependencies). */ export const RUNTIME_PACKAGES = ['ws', 'pixi.js', 'pixi-spine', 'preact', 'htm']; /** Vendor files the client cannot run without (tools/vendor.mjs; three.js is optional there). */