// onMoveThisFromThat.js
(function () {
/* global AdventureJS A */
var p = AdventureJS.Assets.Entity.prototype;
/**
* Called when this asset is removed from another asset.
* Provides opportunities to override default behavior
* through the use of
* <a href="/doc/Verbs_ReactionHooks.html">verb reactions</a>
* doMoveThisFromThat and doMoveThatFromThis.
* @memberOf AdventureJS.Assets.Entity
* @method AdventureJS.Assets.Entity#onMoveThisFromThat
* @param {Object} asset
* @returns {Boolean}
*/
p.onMoveThisFromThat = p.moveFrom = function Entity_onMoveThisFromThat(
asset,
quantity = 1
) {
if ("string" === typeof asset) asset = this.game.getAsset(asset);
if (!asset) return;
this.game.log(
"L1485",
"log",
"high",
`[onMoveThisFromThat.js] remove ${this.id} from ${asset.id}`,
"Entity"
);
var results;
let destroyed = this.is.destroyed;
// this may also have an ovveride when removed from that
results = this.doVerbAction({
action: "doMoveThisFromThat",
target: asset,
type: "VerbReaction",
});
if ("undefined" !== typeof results) return results;
if (!destroyed && this.is.destroyed) return;
// asset may have an override when this is removed
// check receiving asset for verb hook
results = asset.onMoveThatFromThis(asset, quantity);
if ("undefined" !== typeof results) return results;
if (!destroyed && this.is.destroyed) return;
// bedrock - perform the removal - no overrides or qualifiers
this.moveThisFromThat(asset);
this.setPlace();
return;
};
})(); // onMoveThisFromThat.js