Последняя активность 1738868695

Версия 1e83d3d85645d4c6aae81f2aadc0d21b75e4a92e

compiled_query.js Исходник Playground
1/*
2|
3lightning struck $x $y
4, $something is at $x $y?
5, $something has inventory $inventory?
6, $inventory has item $item?
7, $item is $class?
8, $class is conductive?
9|
10 $something is struck by lightning
11
12*/
13
14plans._lightning_struck_x_y = function (match, patterns) {
15 for(let [_x, _y] of patterns._lightning_struck_x_y) {
16 match.state._lightning_struck_x_y = true;
17 match.vars._x = _x;
18 match.vars._y = _y;
19 if (
20 match.state._something_is_at_x_y || plans._something_is_at_x_y(match, patterns) &&
21
22 ) {
23 return true;
24 } else { return false; }
25}
26
27
28
29
30plans._something_is_at_x_y = function (match, patterns) {
31 for(let [_something, _x, _y] of patterns._something_is_at_x_y) {
32 match.state._something_is_at_x_y = true;
33 match.vars._something = _something;
34 match.vars._x = _x;
35 match.vars._y = _y;
36 if (
37 match.state._something_has_inventory_inventory || plans._something_has_inventory_inventory(match, patterns) &&
38 match.state._lightning_struck_x_y || plans._lightning_struck_x_y(match, patterns) &&
39
40 ) {
41 return true;
42 } else { return false; }
43}
44
45
46
47
48plans._something_has_inventory_inventory = function (match, patterns) {
49 for(let [_something, _inventory] of patterns._something_has_inventory_inventory) {
50 match.state._something_has_inventory_inventory = true;
51 match.vars._something = _something;
52 match.vars._inventory = _inventory;
53 if (
54 match.state._something_is_at_x_y || plans._something_is_at_x_y(match, patterns) &&
55 match.state._inventory_has_item_item || plans._inventory_has_item_item(match, patterns) &&
56
57 ) {
58 return true;
59 } else { return false; }
60}
61
62
63
64
65plans._inventory_has_item_item = function (match, patterns) {
66 for(let [_inventory, _item] of patterns._inventory_has_item_item) {
67 match.state._inventory_has_item_item = true;
68 match.vars._inventory = _inventory;
69 match.vars._item = _item;
70 if (
71 match.state._something_has_inventory_inventory || plans._something_has_inventory_inventory(match, patterns) &&
72 match.state._item_is_class || plans._item_is_class(match, patterns) &&
73
74 ) {
75 return true;
76 } else { return false; }
77}
78
79
80
81
82plans._item_is_class = function (match, patterns) {
83 for(let [_item, _class] of patterns._item_is_class) {
84 match.state._item_is_class = true;
85 match.vars._item = _item;
86 match.vars._class = _class;
87 if (
88 match.state._inventory_has_item_item || plans._inventory_has_item_item(match, patterns) &&
89 match.state._class_is_conductive || plans._class_is_conductive(match, patterns) &&
90
91 ) {
92 return true;
93 } else { return false; }
94}
95
96
97
98
99plans._class_is_conductive = function (match, patterns) {
100 for(let [_class] of patterns._class_is_conductive) {
101 match.state._class_is_conductive = true;
102 match.vars._class = _class;
103 if (
104 match.state._item_is_class || plans._item_is_class(match, patterns) &&
105
106 ) {
107 return true;
108 } else { return false; }
109}
110