diff options
-rw-r--r-- | rules.js | 33 |
1 files changed, 32 insertions, 1 deletions
@@ -22,7 +22,38 @@ function find_card(s, n) { // for (let c of data.cards) for (let a of c.actions) console.log(a.type, a.effect) // for (let c of data.cards) console.log(c.dice) -for (let c of data.cards) for (let a of c.actions) { if (a.type === "Counterattack") console.log(c.number, a.type, a.sequence, a.target) } +//for (let c of data.cards) for (let a of c.actions) { if (a.type === "Counterattack") console.log(c.number, a.type, a.sequence, a.target) } + +function check_attack_res(c, a) { + if (a.choice) + return + if (c.rules && c.rules["attack_reserve"]) + return + if (c.rules && c.rules["ignore_reserve"]) + return + let pc = null + let dead = [] + let last = a.target_list[a.target_list.length-1] + for (let tid of a.target_list) { + let t = data.cards[tid] + if (!t.reserve) { + // all good, targetable out of reserve + dead.push(tid) + } else if (Array.isArray(t.reserve)) { + // in reserve + for (let rid of t.reserve) + if (!dead.includes(rid) && tid !== last) + console.log("BLOCK (RES)", c.scenario, c.number, a.target, "(" + t.name + ")", "\n\t" + c.rule_text_1) + dead.push(tid) + } else { + // commanded? + if (tid !== last) + console.log("BLOCK (CMD)", c.scenario, c.number, a.target, "(" + t.name + ")", "\n\t" + c.rule_text_1) + } + } +} + +for (let c of data.cards) for (let a of c.actions) { if (a.type === "Attack") check_attack_res(c, a) } const P1 = "First" const P2 = "Second" |