Zuletzt aktiv 1738868695

Änderung 207e49e1849255765c4ab81df71c7c8828065e38

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