Остання активність 1738868695

Версія ef8eb99c48eee83571b89c57c5f2dc3c128a5a61

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
30
31plans._something_is_at_x_y = function (match, patterns) {
32 for(let [_something, _x, _y] of patterns._something_is_at_x_y) {
33 match.state._something_is_at_x_y = true;
34 match.vars._something = _something;
35 match.vars._x = _x;
36 match.vars._y = _y;
37 if (
38 match.state._something_has_inventory_inventory || plans._something_has_inventory_inventory(match, patterns) &&
39 match.state._lightning_struck_x_y || plans._lightning_struck_x_y(match, patterns) &&
40
41 ) {
42 return true;
43 } else { return false; }
44 }
45}
46
47
48
49
50plans._something_has_inventory_inventory = function (match, patterns) {
51 for(let [_something, _inventory] of patterns._something_has_inventory_inventory) {
52 match.state._something_has_inventory_inventory = true;
53 match.vars._something = _something;
54 match.vars._inventory = _inventory;
55 if (
56 match.state._something_is_at_x_y || plans._something_is_at_x_y(match, patterns) &&
57 match.state._inventory_has_item_item || plans._inventory_has_item_item(match, patterns) &&
58
59 ) {
60 return true;
61 } else { return false; }
62 }
63}
64
65
66
67
68plans._inventory_has_item_item = function (match, patterns) {
69 for(let [_inventory, _item] of patterns._inventory_has_item_item) {
70 match.state._inventory_has_item_item = true;
71 match.vars._inventory = _inventory;
72 match.vars._item = _item;
73 if (
74 match.state._something_has_inventory_inventory || plans._something_has_inventory_inventory(match, patterns) &&
75 match.state._item_is_class || plans._item_is_class(match, patterns) &&
76
77 ) {
78 return true;
79 } else { return false; }
80 }
81}
82
83
84
85
86plans._item_is_class = function (match, patterns) {
87 for(let [_item, _class] of patterns._item_is_class) {
88 match.state._item_is_class = true;
89 match.vars._item = _item;
90 match.vars._class = _class;
91 if (
92 match.state._inventory_has_item_item || plans._inventory_has_item_item(match, patterns) &&
93 match.state._class_is_conductive || plans._class_is_conductive(match, patterns) &&
94
95 ) {
96 return true;
97 } else { return false; }
98 }
99}
100
101
102
103
104plans._class_is_conductive = function (match, patterns) {
105 for(let [_class] of patterns._class_is_conductive) {
106 match.state._class_is_conductive = true;
107 match.vars._class = _class;
108 if (
109 match.state._item_is_class || plans._item_is_class(match, patterns) &&
110
111 ) {
112 return true;
113 } else { return false; }
114 }
115}
116
117