{ "rules": [ { "id": "reqNationValue(gennum)>=N -> reqNationGeneralCount(N)", "noteTemplate": "gennum >= {min}", "php": { "name": "reqNationValue", "equals": [ { "index": 0, "value": "gennum", "transform": "field" }, { "index": 2, "value": ">=", "transform": "comp" } ], "numberBinds": [{ "index": 3, "bind": "min" }] }, "ts": { "name": "reqNationGeneralCount", "numberBinds": [{ "index": 0, "bind": "min" }] } }, { "id": "reqGeneralValue(officer_level==12) -> beLord/beMonarch", "noteTemplate": "officer_level == 12", "php": { "name": "reqGeneralValue", "equals": [ { "index": 0, "value": "officer_level", "transform": "field" }, { "index": 2, "value": "==", "transform": "comp" } ], "numberEquals": [{ "index": 3, "value": 12 }] }, "ts": { "nameAny": ["beLord", "beMonarch"] } }, { "id": "reqGeneralValue(officer_level!=12) -> notLord", "noteTemplate": "officer_level != 12", "php": { "name": "reqGeneralValue", "equals": [ { "index": 0, "value": "officer_level", "transform": "field" }, { "index": 2, "value": "!=", "transform": "comp" } ], "numberEquals": [{ "index": 3, "value": 12 }] }, "ts": { "name": "notLord" } }, { "id": "reqGeneralValue(nation==0) -> beNeutral", "noteTemplate": "nation == 0", "php": { "name": "reqGeneralValue", "equals": [ { "index": 0, "valueAny": ["nation", "nation_id"], "transform": "field" }, { "index": 2, "value": "==", "transform": "comp" } ], "numberEquals": [{ "index": 3, "value": 0 }] }, "ts": { "name": "beNeutral" } }, { "id": "reqGeneralValue(nation!=0) -> notBeNeutral", "noteTemplate": "nation != 0", "php": { "name": "reqGeneralValue", "equals": [ { "index": 0, "valueAny": ["nation", "nation_id"], "transform": "field" }, { "index": 2, "value": "!=", "transform": "comp" } ], "numberEquals": [{ "index": 3, "value": 0 }] }, "ts": { "name": "notBeNeutral" } }, { "id": "reqDestNationValue(nation==destGeneral.nation) -> destGeneralBelongsToDestNation", "noteTemplate": "destination general belongs to destination nation", "php": { "name": "reqDestNationValue", "equals": [ { "index": 0, "value": "nation", "transform": "field" }, { "index": 2, "value": "==", "transform": "comp" } ] }, "ts": { "name": "destGeneralBelongsToDestNation" } } ], "oneSidedRules": [ { "id": "npc-active destination loaded by legacy argTest", "command": "General/che_NPC능동", "kind": "full", "side": "ts", "name": "existsDestCity", "note": "legacy argTest loads and rejects a missing destination; core exposes the equivalent constraint" }, { "id": "recruit-accept self target checked outside legacy constraint array", "command": "General/che_등용수락", "kind": "full", "side": "ts", "name": "differentDestGeneral", "note": "legacy argTest rejects self before building constraints" }, { "id": "abdication self target checked outside legacy constraint array", "command": "General/che_선양", "kind": "full", "side": "ts", "name": "differentDestGeneral", "note": "legacy argTest rejects self before building constraints" }, { "id": "gift self target checked outside legacy constraint array", "command": "General/che_증여", "kind": "full", "side": "ts", "name": "alwaysFail", "note": "legacy argTest rejects self before building constraints" }, { "id": "assignment self target becomes legacy dynamic AlwaysFail", "command": "Nation/che_발령", "kind": "full", "side": "php", "name": "alwaysFail", "note": "core preserves the legacy completed-false action in resolve-time handling" }, { "id": "troop-kick self target becomes legacy dynamic AlwaysFail", "command": "Nation/che_부대탈퇴지시", "kind": "full", "side": "php", "name": "alwaysFail", "note": "core preserves the legacy completed-false action in resolve-time handling" } ] }