doc: add query to get skill condition types
This commit is contained in:
@@ -228,6 +228,63 @@ tag_id is a slash-separated list of numeric IDs that roughly describe all effect
|
|||||||
- 614 base stat threshold passive
|
- 614 base stat threshold passive
|
||||||
- 615 mood passive
|
- 615 mood passive
|
||||||
|
|
||||||
|
unrelated, query to get all condition types:
|
||||||
|
```sql
|
||||||
|
WITH RECURSIVE condition AS (
|
||||||
|
SELECT DISTINCT precondition_1 AS c FROM skill_data
|
||||||
|
UNION
|
||||||
|
SELECT DISTINCT condition_1 AS c FROM skill_data
|
||||||
|
UNION
|
||||||
|
SELECT DISTINCT precondition_2 AS c FROM skill_data
|
||||||
|
UNION
|
||||||
|
SELECT DISTINCT condition_2 AS c FROM skill_data
|
||||||
|
), disj AS (
|
||||||
|
SELECT
|
||||||
|
IIF(INSTR(c, '@') != 0, SUBSTR(c, 1, INSTR(c, '@')-1), c) AS c,
|
||||||
|
IIF(INSTR(c, '@') != 0, SUBSTR(c, 1 + INSTR(c, '@')), '') AS rest
|
||||||
|
FROM condition
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
IIF(INSTR(rest, '@') != 0, SUBSTR(rest, 1, INSTR(rest, '@')-1), rest) AS c,
|
||||||
|
IIF(INSTR(rest, '@') != 0, SUBSTR(rest, 1 + INSTR(rest, '@')), '') AS rest
|
||||||
|
FROM disj
|
||||||
|
WHERE rest != ''
|
||||||
|
), term AS (
|
||||||
|
SELECT
|
||||||
|
IIF(INSTR(c, '&') != 0, SUBSTR(c, 1, INSTR(c, '&')-1), c) AS term,
|
||||||
|
IIF(INSTR(c, '&') != 0, SUBSTR(c, 1 + INSTR(c, '&')), '') AS rest
|
||||||
|
FROM disj
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
IIF(INSTR(rest, '&') != 0, SUBSTR(rest, 1, INSTR(rest, '&')-1), rest) AS term,
|
||||||
|
IIF(INSTR(rest, '&') != 0, SUBSTR(rest, 1 + INSTR(rest, '&')), '') AS rest
|
||||||
|
FROM term
|
||||||
|
WHERE rest != ''
|
||||||
|
), op AS (
|
||||||
|
SELECT
|
||||||
|
term,
|
||||||
|
CASE
|
||||||
|
WHEN INSTR(term, '==') != 0 THEN '=='
|
||||||
|
WHEN INSTR(term, '!=') != 0 THEN '!='
|
||||||
|
WHEN INSTR(term, '<=') != 0 THEN '<='
|
||||||
|
WHEN INSTR(term, '>=') != 0 THEN '>='
|
||||||
|
WHEN INSTR(term, '<') != 0 THEN '<'
|
||||||
|
WHEN INSTR(term, '>') != 0 THEN '>'
|
||||||
|
END AS op
|
||||||
|
FROM term WHERE term != ''
|
||||||
|
), type_op_arg AS (
|
||||||
|
SELECT DISTINCT
|
||||||
|
term,
|
||||||
|
SUBSTR(term, 1, INSTR(term, op) - 1) AS "type",
|
||||||
|
op,
|
||||||
|
CAST(SUBSTR(term, INSTR(term, op) + LENGTH(op)) AS INTEGER) AS arg
|
||||||
|
FROM op
|
||||||
|
)
|
||||||
|
SELECT DISTINCT CONCAT(type, op), arg FROM type_op_arg
|
||||||
|
```
|
||||||
|
|
||||||
|
final select can be adjusted to get different info, but type+op together seems most useful
|
||||||
|
|
||||||
# races
|
# races
|
||||||
|
|
||||||
- group 1, grade: g1 100, g2 200, g3 300, op 400, pre-op 700
|
- group 1, grade: g1 100, g2 200, g3 300, op 400, pre-op 700
|
||||||
|
|||||||
Reference in New Issue
Block a user