Make wires and gray buttons affect swivel doors

This commit is contained in:
Eevee (Evelyn Woods) 2020-12-06 16:57:07 -07:00
parent 30261a106f
commit 90b6498ff9

View File

@ -1,6 +1,10 @@
import { COLLISION, DIRECTIONS, DRAW_LAYERS } from './defs.js'; import { COLLISION, DIRECTIONS, DRAW_LAYERS } from './defs.js';
import { random_choice } from './util.js'; import { random_choice } from './util.js';
function activate_me(me, level) {
me.type.activate(me, level);
}
function on_ready_force_floor(me, level) { function on_ready_force_floor(me, level) {
// At the start of the level, if there's an actor on a force floor: // At the start of the level, if there's an actor on a force floor:
// - use on_arrive to set the actor's direction // - use on_arrive to set the actor's direction
@ -316,6 +320,11 @@ const TILE_TYPES = {
level.transmute_tile(me, 'swivel_nw'); level.transmute_tile(me, 'swivel_nw');
} }
}, },
activate(me, level) {
level.transmute_tile(me, 'swivel_se');
},
on_gray_button: activate_me,
on_power: activate_me,
}, },
swivel_se: { swivel_se: {
draw_layer: DRAW_LAYERS.overlay, draw_layer: DRAW_LAYERS.overlay,
@ -328,6 +337,11 @@ const TILE_TYPES = {
level.transmute_tile(me, 'swivel_sw'); level.transmute_tile(me, 'swivel_sw');
} }
}, },
activate(me, level) {
level.transmute_tile(me, 'swivel_sw');
},
on_gray_button: activate_me,
on_power: activate_me,
}, },
swivel_sw: { swivel_sw: {
draw_layer: DRAW_LAYERS.overlay, draw_layer: DRAW_LAYERS.overlay,
@ -340,6 +354,11 @@ const TILE_TYPES = {
level.transmute_tile(me, 'swivel_se'); level.transmute_tile(me, 'swivel_se');
} }
}, },
activate(me, level) {
level.transmute_tile(me, 'swivel_nw');
},
on_gray_button: activate_me,
on_power: activate_me,
}, },
swivel_nw: { swivel_nw: {
draw_layer: DRAW_LAYERS.overlay, draw_layer: DRAW_LAYERS.overlay,
@ -352,6 +371,11 @@ const TILE_TYPES = {
level.transmute_tile(me, 'swivel_ne'); level.transmute_tile(me, 'swivel_ne');
} }
}, },
activate(me, level) {
level.transmute_tile(me, 'swivel_ne');
},
on_gray_button: activate_me,
on_power: activate_me,
}, },
// Railroad // Railroad
@ -678,12 +702,11 @@ const TILE_TYPES = {
on_arrive(me, level, other) { on_arrive(me, level, other) {
level.set_actor_direction(other, 'north'); level.set_actor_direction(other, 'north');
}, },
on_gray_button(me, level) { activate(me, level) {
level.transmute_tile(me, 'force_floor_s');
},
on_power(me, level) {
level.transmute_tile(me, 'force_floor_s'); level.transmute_tile(me, 'force_floor_s');
}, },
on_gray_button: activate_me,
on_power: activate_me,
}, },
force_floor_e: { force_floor_e: {
draw_layer: DRAW_LAYERS.terrain, draw_layer: DRAW_LAYERS.terrain,
@ -692,12 +715,11 @@ const TILE_TYPES = {
on_arrive(me, level, other) { on_arrive(me, level, other) {
level.set_actor_direction(other, 'east'); level.set_actor_direction(other, 'east');
}, },
on_gray_button(me, level) { activate(me, level) {
level.transmute_tile(me, 'force_floor_w');
},
on_power(me, level) {
level.transmute_tile(me, 'force_floor_w'); level.transmute_tile(me, 'force_floor_w');
}, },
on_gray_button: activate_me,
on_power: activate_me,
}, },
force_floor_s: { force_floor_s: {
draw_layer: DRAW_LAYERS.terrain, draw_layer: DRAW_LAYERS.terrain,
@ -706,12 +728,11 @@ const TILE_TYPES = {
on_arrive(me, level, other) { on_arrive(me, level, other) {
level.set_actor_direction(other, 'south'); level.set_actor_direction(other, 'south');
}, },
on_gray_button(me, level) { activate(me, level) {
level.transmute_tile(me, 'force_floor_n');
},
on_power(me, level) {
level.transmute_tile(me, 'force_floor_n'); level.transmute_tile(me, 'force_floor_n');
}, },
on_gray_button: activate_me,
on_power: activate_me,
}, },
force_floor_w: { force_floor_w: {
draw_layer: DRAW_LAYERS.terrain, draw_layer: DRAW_LAYERS.terrain,
@ -720,12 +741,11 @@ const TILE_TYPES = {
on_arrive(me, level, other) { on_arrive(me, level, other) {
level.set_actor_direction(other, 'west'); level.set_actor_direction(other, 'west');
}, },
on_gray_button(me, level) { activate(me, level) {
level.transmute_tile(me, 'force_floor_e');
},
on_power(me, level) {
level.transmute_tile(me, 'force_floor_e'); level.transmute_tile(me, 'force_floor_e');
}, },
on_gray_button: activate_me,
on_power: activate_me,
}, },
force_floor_all: { force_floor_all: {
draw_layer: DRAW_LAYERS.terrain, draw_layer: DRAW_LAYERS.terrain,