diff --git a/js/tileset.js b/js/tileset.js index f1fa164..b37d6b5 100644 --- a/js/tileset.js +++ b/js/tileset.js @@ -133,7 +133,14 @@ export const CC2_TILESET_LAYOUT = { ball: [[10, 10], [11, 10], [12, 10], [13, 10], [14, 10]], steel: [15, 10], - // TODO teeth, seem to be missing north??? + teeth: { + // NOTE: CC2 inexplicably dropped north teeth and just uses the south + // sprites instead + north: [[0, 11], [1, 11], [2, 11]], + east: [[3, 11], [4, 11], [5, 11]], + south: [[0, 11], [1, 11], [2, 11]], + west: [[6, 11], [7, 11], [8, 11]], + }, swivel_sw: [9, 11], swivel_nw: [10, 11], swivel_ne: [11, 11], diff --git a/js/tiletypes.js b/js/tiletypes.js index 72931b7..df68c94 100644 --- a/js/tiletypes.js +++ b/js/tiletypes.js @@ -132,7 +132,7 @@ const TILE_TYPES = { water: { on_arrive(me, level, other) { // TODO cc1 allows items under water, i think; water was on the upper layer - if (other.type.name == 'dirt_block') { + if (other.type.name == 'dirt_block' || other.type.name == 'clone_block') { other.destroy(); me.become('dirt'); } @@ -266,6 +266,13 @@ const TILE_TYPES = { is_block: true, ignores: new Set(['fire']), }, + clone_block: { + // TODO is this in any way distinct from dirt block + blocks: true, + is_object: true, + is_block: true, + ignores: new Set(['fire']), + }, green_floor: {}, green_wall: { blocks: true, @@ -457,6 +464,7 @@ const TILE_TYPES = { movement_speed: 4, pushes: { dirt_block: true, + clone_block: true, }, // FIXME this prevents thief from taking green key infinite_items: {