diff --git a/FloatingSpace/FloatingLayer.js b/FloatingSpace/FloatingLayer.js index 95f18f03f..9f3cab8a1 100644 --- a/FloatingSpace/FloatingLayer.js +++ b/FloatingSpace/FloatingLayer.js @@ -130,18 +130,12 @@ function newFloatingLayer () { at each of the arrays until we find it. Once found, we remove it and is sent to the dying floating objects array. */ - if (INFO_LOG === true) { logger.write('[INFO] killFloatingObject -> Entering function.') } - for (let i = 0; i < invisibleFloatingObjects.length; i++) { let floatingObject = invisibleFloatingObjects[i] if (floatingObject.handle === pFloatingObjectHandle) { invisibleFloatingObjects.splice(i, 1) // Delete item from array. - if (INFO_LOG === true) { logger.write('[INFO] killFloatingObject -> floatingObject.handle = ' + floatingObject.handle) } - if (INFO_LOG === true) { logger.write('[INFO] killFloatingObject -> Removing floatingObject from invisibleFloatingObjects.') } - if (INFO_LOG === true) { logger.write('[INFO] killFloatingObject -> invisibleFloatingObjects.length = ' + invisibleFloatingObjects.length) } - sendToDie(floatingObject) return } @@ -153,10 +147,6 @@ function newFloatingLayer () { if (floatingObject.handle === pFloatingObjectHandle) { visibleFloatingObjects.splice(i, 1) // Delete item from array. - if (INFO_LOG === true) { logger.write('[INFO] killFloatingObject -> floatingObject.handle = ' + floatingObject.handle) } - if (INFO_LOG === true) { logger.write('[INFO] killFloatingObject -> Removing floatingObject from visibleFloatingObjects.') } - if (INFO_LOG === true) { logger.write('[INFO] killFloatingObject -> visibleFloatingObjects.length = ' + visibleFloatingObjects.length) } - sendToDie(floatingObject) return } @@ -223,15 +213,15 @@ function newFloatingLayer () { break } case 'Strategy Part': { - if (pFloatingObject.payload.profile.visible === false) { return } + if (pFloatingObject.payload.visible === false) { return } payload.profile = { position: { x: pFloatingObject.payload.position.x, y: pFloatingObject.payload.position.y }, - visible: pFloatingObject.payload.profile.visible, - botAvatar: pFloatingObject.payload.profile.botAvatar + visible: pFloatingObject.payload.visible, + botAvatar: pFloatingObject.payload.botAvatar } pFloatingObject.payload = payload @@ -921,3 +911,4 @@ function newFloatingLayer () { } } } + diff --git a/StrategySpace/Strategy.js b/StrategySpace/Strategy.js index be7a830b4..156c2bed3 100644 --- a/StrategySpace/Strategy.js +++ b/StrategySpace/Strategy.js @@ -58,6 +58,7 @@ function newStrategy () { payload.onMenuItemClick = onMenuItemClick node.handle = canvas.floatingSpace.strategyParts.createNewStrategyPart(partType, payload) + node.payload = payload } function destroyPart (node) { @@ -242,20 +243,46 @@ function newStrategy () { case 'Delete Phase': break - case 'Delete Situation': - for (let i = 0; i < payload.parentNode.situations.length; i++) { - let situation = payload.parentNode.situations[i] - if (situation.name === payload.node.name) { - payload.parentNode.situations.splice(i) - return - } - } + case 'Delete Situation': { + deleteSituation(payload.node) break - case 'Delete Condition': - + } break + case 'Delete Condition': { + deleteCondition(payload.node) + break + } default: } } + + function deleteSituation (node) { + let payload = node.payload + for (let j = 0; j < payload.parentNode.situations.length; j++) { + let situation = payload.parentNode.situations[j] + if (situation.name === node.name) { + for (let i = 0; i < situation.conditions.length; i++) { + let condition = situation.conditions[i] + destroyPart(condition) + } + payload.parentNode.situations.splice(j) + destroyPart(node) + return + } + } + } + + function deleteCondition (node) { + let payload = node.payload + for (let i = 0; i < payload.parentNode.conditions.length; i++) { + let condition = payload.parentNode.conditions[i] + if (condition.name === node.name) { + payload.parentNode.conditions.splice(i) + destroyPart(node) + return + } + } + } } +