Add directed blob + walker sprites and a custom slime splash (btw slime now destroys stuff)
This commit is contained in:
parent
3a454d77f5
commit
50c81c5c96
@ -115,6 +115,7 @@ export const CC2_TILESET_LAYOUT = {
|
|||||||
wall_custom_blue: [15, 4],
|
wall_custom_blue: [15, 4],
|
||||||
|
|
||||||
explosion: [[0, 5], [1, 5], [2, 5], [3, 5]],
|
explosion: [[0, 5], [1, 5], [2, 5], [3, 5]],
|
||||||
|
splash_slime: [[0, 5], [1, 5], [2, 5], [3, 5]],
|
||||||
splash: [[4, 5], [5, 5], [6, 5], [7, 5]],
|
splash: [[4, 5], [5, 5], [6, 5], [7, 5]],
|
||||||
flame_jet_off: [8, 5],
|
flame_jet_off: [8, 5],
|
||||||
flame_jet_on: [[9, 5], [10, 5], [11, 5]],
|
flame_jet_on: [[9, 5], [10, 5], [11, 5]],
|
||||||
@ -263,13 +264,13 @@ export const CC2_TILESET_LAYOUT = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
walker: [0, 13],
|
walker: [0, 13],
|
||||||
// TODO walker animations span multiple tiles, rgh
|
// FIXME walker animations span multiple tiles
|
||||||
helmet: [0, 14],
|
helmet: [0, 14],
|
||||||
stopwatch_toggle: [14, 14],
|
stopwatch_toggle: [14, 14],
|
||||||
stopwatch_bonus: [15, 14],
|
stopwatch_bonus: [15, 14],
|
||||||
|
|
||||||
blob: [0, 15],
|
blob: [0, 15],
|
||||||
// TODO blob animations also span multiple tiles
|
// FIXME blob animations span multiple tiles
|
||||||
// TODO [0, 16] some kinda red/blue outline
|
// TODO [0, 16] some kinda red/blue outline
|
||||||
floor_mimic: [0, 2], // TODO [14, 16] with xray
|
floor_mimic: [0, 2], // TODO [14, 16] with xray
|
||||||
// TODO [15, 16] some kinda yellow/black outline
|
// TODO [15, 16] some kinda yellow/black outline
|
||||||
@ -367,6 +368,7 @@ export const CC2_TILESET_LAYOUT = {
|
|||||||
},
|
},
|
||||||
// These are frames from the splash/explosion animations
|
// These are frames from the splash/explosion animations
|
||||||
drowned: [5, 5],
|
drowned: [5, 5],
|
||||||
|
slimed: [5, 5],
|
||||||
burned: [1, 5],
|
burned: [1, 5],
|
||||||
exploded: [1, 5],
|
exploded: [1, 5],
|
||||||
failed: [1, 5],
|
failed: [1, 5],
|
||||||
@ -489,6 +491,7 @@ export const CC2_TILESET_LAYOUT = {
|
|||||||
},
|
},
|
||||||
// These are frames from the splash/explosion animations
|
// These are frames from the splash/explosion animations
|
||||||
drowned: [5, 5],
|
drowned: [5, 5],
|
||||||
|
slimed: [5, 5],
|
||||||
burned: [1, 5],
|
burned: [1, 5],
|
||||||
exploded: [1, 5],
|
exploded: [1, 5],
|
||||||
failed: [1, 5],
|
failed: [1, 5],
|
||||||
@ -696,8 +699,12 @@ export const LL_TILESET_LAYOUT = Object.assign({}, CC2_TILESET_LAYOUT, {
|
|||||||
south: [6, 33],
|
south: [6, 33],
|
||||||
west: [7, 33],
|
west: [7, 33],
|
||||||
},
|
},
|
||||||
|
slimed: [1, 38],
|
||||||
}),
|
}),
|
||||||
// TODO player2 equivalents
|
// TODO player2 equivalents
|
||||||
|
player2: Object.assign({}, CC2_TILESET_LAYOUT.player2, {
|
||||||
|
slimed: [1, 38],
|
||||||
|
}),
|
||||||
bogus_player_burned_fire: {
|
bogus_player_burned_fire: {
|
||||||
overlay: [6, 33],
|
overlay: [6, 33],
|
||||||
base: 'fire',
|
base: 'fire',
|
||||||
@ -710,6 +717,24 @@ export const LL_TILESET_LAYOUT = Object.assign({}, CC2_TILESET_LAYOUT, {
|
|||||||
// Custom tiles
|
// Custom tiles
|
||||||
popwall2: [9, 32],
|
popwall2: [9, 32],
|
||||||
bestowal_bow: [10, 32],
|
bestowal_bow: [10, 32],
|
||||||
|
|
||||||
|
// Blob and walker in all four directions
|
||||||
|
blob: {
|
||||||
|
north: [[0, 35], [1, 35], [2, 35], [3, 35], [4, 35], [5, 35], [6, 35], [7, 35]],
|
||||||
|
east: [[8, 35], [9, 35], [10, 35], [11, 35], [12, 35], [13, 35], [14, 35], [15, 35]],
|
||||||
|
south: [[0, 36], [1, 36], [2, 36], [3, 36], [4, 36], [5, 36], [6, 36], [7, 36]],
|
||||||
|
west: [[8, 36], [9, 36], [10, 36], [11, 36], [12, 36], [13, 36], [14, 36], [15, 36]],
|
||||||
|
},
|
||||||
|
walker: {
|
||||||
|
north: [[0, 37], [1, 37], [2, 37], [3, 37]],
|
||||||
|
east: [[4, 37], [5, 37], [6, 37], [7, 37]],
|
||||||
|
// Same animations but played backwards
|
||||||
|
south: [[2, 37], [1, 37], [0, 37], [3, 37]],
|
||||||
|
west: [[6, 37], [5, 37], [4, 37], [7, 37]],
|
||||||
|
},
|
||||||
|
|
||||||
|
// Custom VFX
|
||||||
|
splash_slime: [[0, 38], [1, 38], [2, 38], [3, 38]],
|
||||||
});
|
});
|
||||||
|
|
||||||
export class Tileset {
|
export class Tileset {
|
||||||
|
|||||||
@ -53,6 +53,9 @@ function player_visual_state(me) {
|
|||||||
else if (me.fail_reason === 'exploded') {
|
else if (me.fail_reason === 'exploded') {
|
||||||
return 'exploded';
|
return 'exploded';
|
||||||
}
|
}
|
||||||
|
else if (me.fail_reason === 'slimed') {
|
||||||
|
return 'slimed';
|
||||||
|
}
|
||||||
else if (me.fail_reason) {
|
else if (me.fail_reason) {
|
||||||
return 'failed';
|
return 'failed';
|
||||||
}
|
}
|
||||||
@ -548,6 +551,17 @@ const TILE_TYPES = {
|
|||||||
if (other.type.name === 'dirt_block' || other.type.name === 'ice_block') {
|
if (other.type.name === 'dirt_block' || other.type.name === 'ice_block') {
|
||||||
level.transmute_tile(me, 'floor');
|
level.transmute_tile(me, 'floor');
|
||||||
}
|
}
|
||||||
|
else if (other.type.name === 'ghost') {
|
||||||
|
// No effect
|
||||||
|
}
|
||||||
|
else if (other.type.is_player) {
|
||||||
|
level.fail('slimed');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// FIXME needs a sound effect
|
||||||
|
level.sfx.play_once('splash', me.cell);
|
||||||
|
level.transmute_tile(other, 'splash_slime');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
bomb: {
|
bomb: {
|
||||||
@ -1712,6 +1726,14 @@ const TILE_TYPES = {
|
|||||||
blocks_collision: COLLISION.player,
|
blocks_collision: COLLISION.player,
|
||||||
ttl: 6,
|
ttl: 6,
|
||||||
},
|
},
|
||||||
|
// Custom VFX (identical function, but different aesthetic)
|
||||||
|
splash_slime: {
|
||||||
|
draw_layer: DRAW_LAYERS.overlay,
|
||||||
|
is_actor: true,
|
||||||
|
collision_mask: 0,
|
||||||
|
blocks_collision: COLLISION.player,
|
||||||
|
ttl: 6,
|
||||||
|
},
|
||||||
|
|
||||||
// Invalid tiles that appear in some CCL levels because community level
|
// Invalid tiles that appear in some CCL levels because community level
|
||||||
// designers love to make nonsense
|
// designers love to make nonsense
|
||||||
|
|||||||
BIN
tileset-lexy.png
BIN
tileset-lexy.png
Binary file not shown.
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 61 KiB |
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user