// renderAssetIsOr.js
(function () {
/* global AdventureJS A */
var p = AdventureJS.Game.prototype;
/**
*
* @method AdventureJS.Game#renderAssetIsOr
* @memberOf AdventureJS.Game
* @param {String} token
*/
p.renderAssetIsOr = function Game_renderAssetIsOr(token) {
let token_array = token.split("[is]").map((e) => e.trim());
let token_id = token_array[0];
let token_state = token_array[1]; // everything after 'is'
let new_string = "in an unknown state";
let asset = this.renderAssetFromTokenId(token_id);
let verb_states = token_state.split("[or]").map((e) => e.trim());
if (verb_states.length) {
// we expect something like verb_states=[ "plugged", "unplugged" ]
// but we can handle one or more than two
let found = false;
for (let i = 0; i < verb_states.length; i++) {
let state = verb_states[i];
let state_string;
if (state) {
// state_string = getVerbState(asset, state);
state_string = this.renderVerbState(asset, state);
}
if (state_string) {
new_string = state_string;
found = true;
break;
}
}
if (!found) {
// we didn't find a clear verb state
// is there a state property we can get?
for (let i = 0; i < verb_states.length; i++) {
if (asset.is[verb_states[i]]) {
new_string = verb_states[i];
break;
}
}
}
} // verb_states
return new_string;
}; // renderAssetIsOr
})();