mirror of
https://github.com/cliffe/BreakEscape.git
synced 2026-02-20 13:50:46 +00:00
fix: enhance inventory management by properly destroying proximity ghosts on item addition
This commit is contained in:
@@ -340,6 +340,11 @@ export async function addToInventory(sprite) {
|
||||
roomObj.setVisible(false);
|
||||
}
|
||||
roomObj.active = false;
|
||||
// Destroy proximity ghost immediately (interaction system stores it on roomObj)
|
||||
if (roomObj.proximityGhost) {
|
||||
roomObj.proximityGhost.destroy();
|
||||
delete roomObj.proximityGhost;
|
||||
}
|
||||
console.log(`Removed duplicate object ${sprite.objectId} from room`);
|
||||
}
|
||||
}
|
||||
@@ -348,6 +353,11 @@ export async function addToInventory(sprite) {
|
||||
if (sprite.setVisible && typeof sprite.setVisible === 'function') {
|
||||
sprite.setVisible(false);
|
||||
}
|
||||
// Destroy proximity ghost on the sprite itself in case it differs from roomObj
|
||||
if (sprite.proximityGhost) {
|
||||
sprite.proximityGhost.destroy();
|
||||
delete sprite.proximityGhost;
|
||||
}
|
||||
|
||||
// Show notification to player
|
||||
if (window.gameAlert) {
|
||||
@@ -409,6 +419,11 @@ export async function addToInventory(sprite) {
|
||||
roomObj.setVisible(false);
|
||||
}
|
||||
roomObj.active = false;
|
||||
// Destroy proximity ghost immediately (interaction system stores it on roomObj)
|
||||
if (roomObj.proximityGhost) {
|
||||
roomObj.proximityGhost.destroy();
|
||||
delete roomObj.proximityGhost;
|
||||
}
|
||||
console.log(`Removed object ${sprite.objectId} from room`);
|
||||
|
||||
// Sync object removal with server's canonical room JSON
|
||||
@@ -425,6 +440,11 @@ export async function addToInventory(sprite) {
|
||||
if (sprite.setVisible && typeof sprite.setVisible === 'function') {
|
||||
sprite.setVisible(false);
|
||||
}
|
||||
// Destroy proximity ghost on the sprite itself in case it differs from roomObj
|
||||
if (sprite.proximityGhost) {
|
||||
sprite.proximityGhost.destroy();
|
||||
delete sprite.proximityGhost;
|
||||
}
|
||||
|
||||
// Special handling for keys - group them together
|
||||
if (sprite.scenarioData.type === 'key') {
|
||||
|
||||
Reference in New Issue
Block a user