// getExtendedExitName.js
(function () {
/* global AdventureJS A */
var p = AdventureJS.Game.prototype;
/**
*
* @method AdventureJS.Game#getExtendedExitName
* @memberOf AdventureJS.Game
* @param {Object} exit
* @param {Object} destination
* @returns {String}
*/
p.getExtendedExitName = function Game_getExtendedExitName(exit, destination) {
if ("string" === typeof exit) {
exit = this.game.getAsset(exit);
}
if ("string" === typeof destination) {
destination = this.game.getAsset(destination);
}
if (!destination) {
destination = this.game.getAsset(exit.destination);
}
if (!exit || !destination) return "";
// add the direction
var output = `<span class="ajs-exit-direction">${exit.direction}</span>`;
var player = this.game.getPlayer();
var preposition = " to ";
var definite_article = destination.definite_article;
var destName = destination.name; //destination.name;
var addDest = true;
var input = this.game.getInput();
var subject = input.getSubject();
var room = subject.getRoom();
var settings = this.settings;
// test conditions that may prevent printing destination
if (
false === settings.print_room_names_in_exits ||
false === room.print_room_names_in_exits
) {
addDest = false;
}
if (
!player.knowsAbout(destination) &&
(settings.print_room_names_in_exits_if_known ||
room.print_room_names_in_exits_if_known)
) {
addDest = false;
}
if (
!exit.is.used &&
(settings.print_room_names_in_exits_if_used ||
room.print_room_names_in_exits_if_used)
) {
addDest = false;
}
if (addDest) {
output += `
<span class="ajs-exit-preposition">${preposition}</span>
${definite_article ? definite_article + " " : ""}
<span class="ajs-exit-destination">${destName}</span>
`;
}
return output.trim();
};
})();