compiled_query.js
· 3.7 KiB · JavaScript
Surowy
Playground
/*
|
lightning struck $x $y
, $something is at $x $y?
, $something has inventory $inventory?
, $inventory has item $item?
, $item is $class?
, $class is conductive?
|
$something is struck by lightning
*/
plans._lightning_struck_x_y = function (match, patterns) {
for(let [_x, _y] of patterns._lightning_struck_x_y) {
match.state._lightning_struck_x_y = true;
match.vars._x = _x;
match.vars._y = _y;
if (
match.state._something_is_at_x_y || plans._something_is_at_x_y(match, patterns) &&
) {
return true;
} else { return false; }
}
plans._something_is_at_x_y = function (match, patterns) {
for(let [_something, _x, _y] of patterns._something_is_at_x_y) {
match.state._something_is_at_x_y = true;
match.vars._something = _something;
match.vars._x = _x;
match.vars._y = _y;
if (
match.state._something_has_inventory_inventory || plans._something_has_inventory_inventory(match, patterns) &&
match.state._lightning_struck_x_y || plans._lightning_struck_x_y(match, patterns) &&
) {
return true;
} else { return false; }
}
plans._something_has_inventory_inventory = function (match, patterns) {
for(let [_something, _inventory] of patterns._something_has_inventory_inventory) {
match.state._something_has_inventory_inventory = true;
match.vars._something = _something;
match.vars._inventory = _inventory;
if (
match.state._something_is_at_x_y || plans._something_is_at_x_y(match, patterns) &&
match.state._inventory_has_item_item || plans._inventory_has_item_item(match, patterns) &&
) {
return true;
} else { return false; }
}
plans._inventory_has_item_item = function (match, patterns) {
for(let [_inventory, _item] of patterns._inventory_has_item_item) {
match.state._inventory_has_item_item = true;
match.vars._inventory = _inventory;
match.vars._item = _item;
if (
match.state._something_has_inventory_inventory || plans._something_has_inventory_inventory(match, patterns) &&
match.state._item_is_class || plans._item_is_class(match, patterns) &&
) {
return true;
} else { return false; }
}
plans._item_is_class = function (match, patterns) {
for(let [_item, _class] of patterns._item_is_class) {
match.state._item_is_class = true;
match.vars._item = _item;
match.vars._class = _class;
if (
match.state._inventory_has_item_item || plans._inventory_has_item_item(match, patterns) &&
match.state._class_is_conductive || plans._class_is_conductive(match, patterns) &&
) {
return true;
} else { return false; }
}
plans._class_is_conductive = function (match, patterns) {
for(let [_class] of patterns._class_is_conductive) {
match.state._class_is_conductive = true;
match.vars._class = _class;
if (
match.state._item_is_class || plans._item_is_class(match, patterns) &&
) {
return true;
} else { return false; }
}
1 | /* |
2 | | |
3 | lightning 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 | |
14 | plans._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 | plans._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 | |
48 | plans._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 | |
65 | plans._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 | |
82 | plans._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 | |
99 | plans._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 |