tilde-projects/ttitt/macros.twee

245 lines
6.4 KiB
Plaintext

:: Inventory
<br>
<strong>Inventory:</strong>
<<Inventory>>
:: ShowInventory [script]
try {
version.extensions['Inventory'] = {
major:0, minor:1, revision:0
};
macros['Inventory'] =
{
handler: function(place, macroName, params, parser)
{
var msg = "";
var items = state.history[0].variables.items;
if (items == undefined) {
new Wikifier(place, "nothing");
return;
}
for(var name in items) {
if(!isNaN(parseFloat(items[name])) && isFinite(items[name])) {
if(tale.passages[name+"-itemDescription"]) {
msg += "[["+name+"|"+name+"-itemDescription]](" + items[name] + "), ";
}
else {
msg += name + "(" + items[name] + "), ";
}
}
else if(items[name] != false) {
if(tale.passages[name+"-itemDescription"]) {
msg += "[["+name+"|"+name+"-itemDescription]], ";
}
else {
msg += name + ", ";
}
}
};
new Wikifier(place, msg.slice(0,-2));
},
init: function() { },
};
} catch(e) {
throwError(place,"Inventory Setup Error: " + e.message);
}
:: PlayerStats
<br>
<strong>Player Stats:</strong>
<<PlayerStats>>
:: ShowPlayerStats [script]
try {
version.extensions['PlayerStats'] = {
major:0, minor:1, revision:0
};
macros['PlayerStats'] =
{
handler: function(place, macroName, params, parser)
{
var msg = "";
var stats = state.history[0].variables.stats;
if (stats == undefined) {
new Wikifier(place, "no stats");
return;
}
for(var stat in stats) {
if(stat.slice(-4) == "_max") {
continue;
}
msg += stat + ": " + stats[stat];
if(stats[stat+"_max"] != undefined) {
msg += " / " + stats[stat+"_max"];
}
msg += "<br>";
}
new Wikifier(place, msg);
},
init: function() { },
};
} catch(e) {
throwError(place,"PlayerStats Setup Error: " + e.message);
}
:: PlayerSkills
<br>
<strong>Player Skills:</strong>
<<PlayerSkills>>
:: ShowPlayerSkills [script]
try {
version.extensions['PlayerSkills'] = {
major:0, minor:1, revision:0
};
macros['PlayerSkills'] =
{
handler: function(place, macroName, params, parser)
{
var msg = "";
var stats = state.history[0].variables.skills;
if (stats == undefined) {
new Wikifier(place, "no skills");
return;
}
for(var stat in stats) {
msg += stat + ": " + stats[stat]+"<br>";
}
new Wikifier(place, msg);
},
init: function() { },
};
} catch(e) {
throwError(place,"PlayerSkills Setup Error: " + e.message);
}
:: GetPreviousNonItem [script]
try {
version.extensions['PreviousNonItem'] = {
major:0, minor:1, revision:0
};
macros['PreviousNonItem'] =
{
handler: function(place, macroName, params, parser)
{
var msg = "";
for(var h in state.history) {
if(state.history[h].passage.title == "PlayerProfile" ||
state.history[h].passage.title.slice(-16) == "-itemDescription")
continue; //skip all the inventory items
msg += state.history[h].passage.title;
break; //we only want the first instance of a non-item passage
}
new Wikifier(place, "[[Return|" + msg + "]]");
},
init: function() { },
};
} catch(e) {
throwError(place,"PreviousNonItem Setup Error: " + e.message);
}
:: PlayerProfile
<<PreviousNonItem>>
-~-~-~-~-~-
<<display PlayerStats>>
<<display PlayerSkills>>
<<display Inventory>>
:: postrender [script]
postrender.tagInventory = function(place) {
var inv = tale.get("Inventory");
if (inv.id !== undefined && ~this.tags.indexOf("inv")) {
new Wikifier(place, inv.processText());
};
var stats = tale.get("PlayerStats");
if(stats.id !== undefined && ~this.tags.indexOf("stats")) {
new Wikifier(place, stats.processText());
};
var skills = tale.get("PlayerSkills");
if(skills.id !== undefined && ~this.tags.indexOf("skills")) {
new Wikifier(place, skills.processText());
};
if(~this.tags.indexOf("item")) {
new Wikifier(place, "\n[[Return|previous()]]");
};
}
:: core-init
<<nobr>>
<<set $items = {} >>
<<set $events = {} >>
<<set $stats = {} >>
<<set $stats['health'] to 10 >>
<<set $stats['health_max'] to 10 >>
<<set $stats['mana'] to 5 >>
<<set $stats['mana_max'] to 5 >>
<<set $skills = {} >>
<<set $items['gold'] to 0 >>
<<endnobr>>
:: GetInit [script]
try {
version.extensions['GetInit'] = {
major:0, minor:1, revision:0
};
macros['Init'] =
{
handler: function(place, macroName, params, parser)
{
var msg = "<<nobr>><<if visited(passage()) eq 1>>";
msg += "<<display \"core-init\">>"; //manually add core-init first
console.log("Initializing core-init");
for(var p in tale.passages) {
/%if(~tale.passages[p].tags.indexOf("init")) {%/
if(p.slice(-5) == "-init" && p != "core-init") {
msg += "<<display \"" + p + "\">>";
console.log("Initializing " + p);
}
}
msg += "<<endif>><<endnobr>>";
new Wikifier(place, msg);
console.log("$items contains " + Object.keys(state.history[0].variables.items).length + " object(s)");
console.log("$events contains " + Object.keys(state.history[0].variables.events).length + " object(s)");
console.log("$stats contains " + Object.keys(state.history[0].variables.stats).length + " object(s)");
console.log("$skills contains " + Object.keys(state.history[0].variables.skills).length + " object(s)");
},
init: function() { },
};
} catch(e) {
throwError(place,"GetInit Setup Error: " + e.message);
}
:: GetStarts [script]
try {
version.extensions['GetStarts'] = {
major:0, minor:1, revision:0
};
macros['Starts'] =
{
handler: function(place, macroName, params, parser)
{
var msg = "";
for(var p in tale.passages) {
/%if(~tale.passages[p].tags.indexOf("init")) {%/
if(p.slice(-6) == "-start") {
if(tale.passages[p+"Description"]) {
console.log("Found " + p + "Description");
msg += "<<display \"" + p + "Description\">>";
}
else {
console.log("Found " + p);
msg += "[[" + p + "]]"
}
msg += "\n\n";
}
}
new Wikifier(place, msg);
},
init: function() { },
};
} catch(e) {
throwError(place,"GetInit Setup Error: " + e.message);
}