fix glass blocks vs mines and pseudo-items (fixes #63, 59)
This commit is contained in:
parent
4037cdf86b
commit
7c35782079
@ -1603,7 +1603,7 @@ export class Tileset {
|
|||||||
_draw_encased_item(drawspec, name, tile, packet) {
|
_draw_encased_item(drawspec, name, tile, packet) {
|
||||||
//draw the encased item
|
//draw the encased item
|
||||||
if (tile !== null && tile.encased_item !== undefined && tile.encased_item !== null) {
|
if (tile !== null && tile.encased_item !== undefined && tile.encased_item !== null) {
|
||||||
this._draw_standard(this.layout[tile.encased_item], tile.encased_item, TILE_TYPES[tile.encased_item], packet);
|
this._draw_standard(this.layout[tile.encased_item], tile.encased_item, null, packet);
|
||||||
}
|
}
|
||||||
//then draw the glass block
|
//then draw the glass block
|
||||||
this._draw_standard(drawspec.base, name, tile, packet);
|
this._draw_standard(drawspec.base, name, tile, packet);
|
||||||
|
|||||||
@ -1324,29 +1324,18 @@ const TILE_TYPES = {
|
|||||||
can_reverse_on_railroad: true,
|
can_reverse_on_railroad: true,
|
||||||
movement_speed: 4,
|
movement_speed: 4,
|
||||||
try_pickup_item(me, level) {
|
try_pickup_item(me, level) {
|
||||||
|
//suck up any item that ever CAN be picked up off of the floor (except hearts!) and put it in our encased_item slot (not an inventory since e.g. a glass block with red key can't unlock red doors)
|
||||||
if (me.encased_item === null) {
|
if (me.encased_item === null) {
|
||||||
let item = me.cell.get_item();
|
let item = me.cell.get_item();
|
||||||
if (item && !item.type.is_chip) {
|
let mod = me.cell.get_item_mod();
|
||||||
level.attempt_take(me, item);
|
if (mod && mod.type.item_modifier === 'ignore') {
|
||||||
//then if we picked it up, encase it (so we have max one item at a time and so we can't 'use' the item)
|
return;
|
||||||
if (me.keyring !== undefined && me.keyring !== null && Object.keys(me.keyring).length > 0) {
|
}
|
||||||
level._set_tile_prop(me, 'encased_item', Object.keys(me.keyring)[0]);
|
if (item && !item.type.is_chip && item.type.item_priority !== undefined) {
|
||||||
level.take_all_keys_from_actor(me);
|
level._set_tile_prop(me, 'encased_item', item.type.name);
|
||||||
}
|
level.remove_tile(item);
|
||||||
else if (me.toolbelt !== undefined && me.toolbelt !== null && me.toolbelt.length > 0)
|
|
||||||
{
|
|
||||||
level._set_tile_prop(me, 'encased_item', me.toolbelt[0]);
|
|
||||||
level.take_all_tools_from_actor(me);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*if ((me.keyring === undefined || Object.keys(me.keyring).length == 0) &&
|
|
||||||
(me.toolbelt === undefined || me.toolbelt.length == 0)) {
|
|
||||||
let item = me.cell.get_item();
|
|
||||||
if (item) {
|
|
||||||
level.attempt_take(me, item);
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
},
|
},
|
||||||
on_ready(me, level) {
|
on_ready(me, level) {
|
||||||
level._set_tile_prop(me, 'encased_item', null);
|
level._set_tile_prop(me, 'encased_item', null);
|
||||||
@ -1354,13 +1343,6 @@ const TILE_TYPES = {
|
|||||||
},
|
},
|
||||||
on_clone(me, original) {
|
on_clone(me, original) {
|
||||||
me.encased_item = original.encased_item;
|
me.encased_item = original.encased_item;
|
||||||
/*if (original.keyring !== undefined) {
|
|
||||||
me.keyring = {};
|
|
||||||
Object.assign(me.keyring, original.keyring);
|
|
||||||
}
|
|
||||||
if (original.toolbelt !== undefined) {
|
|
||||||
me.toolbelt = original.toolbelt.map((x) => x);
|
|
||||||
}*/
|
|
||||||
},
|
},
|
||||||
on_finishing_move(me, level) {
|
on_finishing_move(me, level) {
|
||||||
this.try_pickup_item(me, level);
|
this.try_pickup_item(me, level);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user