//log.js
(function () {
/*global adventurejs A*/
var p = adventurejs.Game.prototype;
/**
* Custom logging function.
* @method adventurejs.Game#log
* @memberOf adventurejs.Game
* @param {String|Number} method 0=log, 1=warn, 2=error
* @param {String|Number} level 0=critical, 1=high, 2=medium, 3=low
* @param {*} msg Message for console.
*/
p.log = function Game_log(code, method, level, msg, keyword) {
// no logging below 0
if (0 > this.game.settings.log_level) {
return;
}
if ("string" !== typeof keyword) keyword = "";
// exclude keywords that haven't been included
if (
method === "log" &&
true !== this.game.settings.log_keywords[keyword.toLowerCase()]
) {
return;
}
// don't log above current level
var levels = ["critical", "high", "medium", "low"];
if ("string" === typeof level) {
level = levels.indexOf(level);
}
if (level > this.game.settings.log_level) {
return;
}
var methods = ["log", "warn", "error"];
if ("undefined" === typeof method || null === method) {
method = "log";
}
if ("number" === typeof method) {
method = methods[method];
}
if (Array.isArray(msg)) {
msg = msg.join(" ");
}
let green = "#36e400";
let yellow = "#e5d254";
let red = "#ef866d";
let orange = "#ff9700";
var codecolor = green;
var warnOrErr = "";
if (method === "warn") {
warnOrErr = "warning";
codecolor = yellow;
} else if (method === "error") {
warnOrErr = "error";
codecolor = red;
} else if (keyword.toLowerCase() === "debug") {
codecolor = orange;
}
let fontcolor = codecolor === green ? "#FFF" : codecolor;
let tagcolor = codecolor === green ? "#ffffff99" : codecolor;
let codestyle = `background: ${codecolor}; font-weight:bold; color: #4a3532;padding:1px 3px;margin-right:0px;`;
let tagstyle = `background: ${tagcolor}; font-weight:bold; color: #4a3532;padding:1px 3px;margin-right:0px;`;
let fontstyle = `color: ${fontcolor}`;
if (method !== "error") method = "log";
if ("undefined" !== typeof console[method]) {
console[method](
`%c${code}%c %c${keyword.toLowerCase()}%c %c${msg}%c`,
codestyle,
"",
tagstyle,
"",
fontstyle,
""
);
// if (level <= this.game.settings.log_trace_level && method === "log") {
// console.groupCollapsed("Trace...");
// console.trace();
// console.groupEnd();
// }
}
return;
};
})();