/
monster.jsx
43 lines (37 loc) · 1.13 KB
/
monster.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
* monster.js
*
* Suddenly, Dr. Eval was besieged by a swarm of angry monsters!
*/
function startLevel(map) {
map.placePlayer(2, 2);
map.createNewObject('monster', {
'type': 'dynamic',
'symbol': 'M',
'color': 'brown',
'onCollision': function (player) {
player.killedBy('a ferocious beast');
},
'behavior': function (me) {
var target = me.findNearest(#{#'player'#}#);
var leftDist = me.getX() - target.x;
var upDist = me.getY() - target.y;
if (upDist > 0 && upDist >= leftDist) {
me.moveUp();
} else if (upDist < 0 && upDist < leftDist) {
me.moveDown();
} else if (leftDist > 0 && leftDist >= upDist) {
me.moveLeft();
} else {
me.moveRight();
}
}
});
for (var x = 5; x < 20; x += 2) {
map.placeObject(x, 25 - x, 'monster');
}
map.placeObject(map.getWidth()-2, map.getHeight()-2, 'exit');
if (!map.getPlayer().hasItem('computer')) {
map.placeObject(2, 3, 'computer');
}
}