|
|
|
@ -38,7 +38,7 @@ map_range = function(from, to, s) { |
|
|
|
|
return to[0] + (s - from[0]) * (to[1] - to[0]) / (from[1] - from[0]); |
|
|
|
|
}; |
|
|
|
|
// Generated by CoffeeScript 1.6.3
|
|
|
|
|
var blocks, canvas, colors, config, context, current_level, enemy_layer, gamestates, inventar, level, levels, player, shadow_layer; |
|
|
|
|
var blocks, canvas, colors, config, context, current_level, enemy_layer, gamestates, inventar, level, levels, player, selected_layer, shadow_layer; |
|
|
|
|
|
|
|
|
|
canvas = document.getElementById('canvas'); |
|
|
|
|
|
|
|
|
@ -98,7 +98,11 @@ current_level = 0; |
|
|
|
|
|
|
|
|
|
level = null; |
|
|
|
|
|
|
|
|
|
shadow_layer = enemy_layer = null; |
|
|
|
|
shadow_layer = null; |
|
|
|
|
|
|
|
|
|
enemy_layer = null; |
|
|
|
|
|
|
|
|
|
selected_layer = null; |
|
|
|
|
// Generated by CoffeeScript 1.6.3
|
|
|
|
|
var add_level, draw_level, init_level, load_level, parse_levelentities, reset_layers; |
|
|
|
|
|
|
|
|
@ -136,15 +140,15 @@ draw_level = function(level) { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
reset_layers = function() { |
|
|
|
|
var enemy_layer, shadow_layer, _i, _j, _ref, _ref1, _results, _results1; |
|
|
|
|
shadow_layer = (function() { |
|
|
|
|
var _i, _j, _ref, _ref1, _results, _results1; |
|
|
|
|
window.shadow_layer = (function() { |
|
|
|
|
_results = []; |
|
|
|
|
for (var _i = 0, _ref = config.map.width * config.map.height; 0 <= _ref ? _i <= _ref : _i >= _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); } |
|
|
|
|
return _results; |
|
|
|
|
}).apply(this).map(function() { |
|
|
|
|
return 0; |
|
|
|
|
}); |
|
|
|
|
return enemy_layer = (function() { |
|
|
|
|
return window.enemy_layer = (function() { |
|
|
|
|
_results1 = []; |
|
|
|
|
for (var _j = 0, _ref1 = config.map.width * config.map.height; 0 <= _ref1 ? _j <= _ref1 : _j >= _ref1; 0 <= _ref1 ? _j++ : _j--){ _results1.push(_j); } |
|
|
|
|
return _results1; |
|
|
|
@ -166,17 +170,16 @@ init_level = function() { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
load_level = function(number) { |
|
|
|
|
var level; |
|
|
|
|
if (number === levels.length) { |
|
|
|
|
return config.gamestate = gamestates.WIN; |
|
|
|
|
} else { |
|
|
|
|
init_level(); |
|
|
|
|
level = levels[number]; |
|
|
|
|
window.level = levels[number]; |
|
|
|
|
return parse_levelentities(level); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
parse_levelentities = function() { |
|
|
|
|
parse_levelentities = function(level) { |
|
|
|
|
var block, position, _i, _len, _results; |
|
|
|
|
_results = []; |
|
|
|
|
for (position = _i = 0, _len = level.length; _i < _len; position = ++_i) { |
|
|
|
@ -282,16 +285,17 @@ break_walls = function(position) { |
|
|
|
|
}; |
|
|
|
|
// Generated by CoffeeScript 1.6.3
|
|
|
|
|
var calculate_lightray, calculate_lights, draw_lights, illuminate, |
|
|
|
|
_this = this, |
|
|
|
|
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; |
|
|
|
|
|
|
|
|
|
calculate_lightray = function(x1, y1, x2, y2, type) { |
|
|
|
|
var dx, dy, hit_wall, pixel_x1, pixel_x2, pixel_y1, pixel_y2, s, selected_layer, t, _ref, _results; |
|
|
|
|
var dx, dy, hit_wall, pixel_x1, pixel_x2, pixel_y1, pixel_y2, s, t, _ref, _results; |
|
|
|
|
switch (type) { |
|
|
|
|
case 'enemy': |
|
|
|
|
selected_layer = enemy_layer; |
|
|
|
|
window.selected_layer = enemy_layer; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
selected_layer = shadow_layer; |
|
|
|
|
window.selected_layer = shadow_layer; |
|
|
|
|
} |
|
|
|
|
pixel_x1 = x1 * config.pixelsize + (config.pixelsize / 2); |
|
|
|
|
pixel_y1 = y1 * config.pixelsize + (config.pixelsize / 2); |
|
|
|
@ -390,15 +394,15 @@ calculate_lights = function() { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
draw_lights = function(type) { |
|
|
|
|
var alpha, brightness, color, position, selected_layer, _i, _len, _ref, _results; |
|
|
|
|
var alpha, brightness, color, position, _i, _len, _ref, _results; |
|
|
|
|
switch (type) { |
|
|
|
|
case 'enemy': |
|
|
|
|
color = '255, 0, 0'; |
|
|
|
|
selected_layer = enemy_layer; |
|
|
|
|
window.selected_layer = enemy_layer; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
color = '0, 0, 0'; |
|
|
|
|
selected_layer = shadow_layer; |
|
|
|
|
window.selected_layer = shadow_layer; |
|
|
|
|
} |
|
|
|
|
_results = []; |
|
|
|
|
for (position = _i = 0, _len = selected_layer.length; _i < _len; position = ++_i) { |
|
|
|
@ -449,7 +453,8 @@ addEventListener('keyup', function(event) { |
|
|
|
|
return keymap[event.keyCode] = false; |
|
|
|
|
}); |
|
|
|
|
// Generated by CoffeeScript 1.6.3
|
|
|
|
|
var loop_gameover, loop_gamewin, loop_main, loop_run; |
|
|
|
|
var loop_gameover, loop_gamewin, loop_main, loop_run, |
|
|
|
|
_this = this; |
|
|
|
|
|
|
|
|
|
loop_run = function() { |
|
|
|
|
reset_layers(); |
|
|
|
@ -488,7 +493,7 @@ loop_main = function() { |
|
|
|
|
return setTimeout(loop_main, 50); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
update_canvas(); |
|
|
|
|
update_canvas(config.map.width * config.pixelsize, config.map.height * config.pixelsize + config.map.origin.y); |
|
|
|
|
|
|
|
|
|
load_level(current_level); |
|
|
|
|
|
|
|
|
|