Template:CorruptionsTable/doc: Difference between revisions

From Melvor Idle
(Created doc)
 
m (Removed the unnecessary array of strings; Change all const to let)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The insides of this table was created using the following script. To use, open the game and paste the below into the [[In-game_Functions#Using_In-game_Functions|console]]. The outputs will be copied to your clipboard automatically. Links to the effects have to be added manually.
A script is used to generate the following table. To use, open the game and paste the below into the [[In-game_Functions#Using_In-game_Functions|console]]. The outputs will be copied to your clipboard automatically. After running the script, 'edit source' on [[Template:CorruptionsTable]] then Ctrl+A and Ctrl+V. Look over the contents to ensure everything looks fine.


<syntaxhighlight lang="javascript" line>
<syntaxhighlight lang="javascript" line>
let results = [];
let EFFECT_ICON_MODIFICATIONS = [ { effect: 'Bleed' }, { effect: 'Slow' }, { effect: 'Laceration' }, { effect: 'Ablaze' }, { effect: 'Blight' }, { effect: 'Fear' }, { effect: 'Silence' } ];
game.corruption.corruptionEffects.allRows.sort((a,b) => a.minMonsterLevel - b.minMonsterLevel).forEach(row => {
let LINKS_MODIFICATIONS = [ { effect: 'Attack Interval' },  { effect: 'Lifesteal' },  { effect: 'Accuracy Rating' },  { effect: 'Global Evasion' } ];
results.push(`|${numberWithCommas(row.minMonsterLevel)} || <span style="color:green">${row.customDescription}</span>`);
let ICON_MODIFICATIONS = [ { effect: 'Unholy Prayers' }, { effect: 'Barrier' }, { effect: 'Abyssal Resistance' } ];
[...EFFECT_ICON_MODIFICATIONS, ...LINKS_MODIFICATIONS, ...ICON_MODIFICATIONS].forEach(x => x["regex"] = new RegExp("\\b" + x.effect + "\\b", "ig"));
 
let modifyDescription = (text) => {
EFFECT_ICON_MODIFICATIONS.forEach((x, i) => { text = text.replace(x.regex, `{{EffectIcon|${x.effect}}}`); });
LINKS_MODIFICATIONS.forEach((x, i) => { text = text.replace(x.regex, `[[${x.effect}]]`); });
ICON_MODIFICATIONS.forEach((x, i) => { text = text.replace(x.regex, `{{Icon|${x.effect}}}`); });
text = text.replace('Global Accuracy', '[[Accuracy Rating|Global Accuracy]]');
return text
}
 
let results = `<noinclude>{{/doc}}[[Category:Manual Tables]]</noinclude>\n{| class="wikitable sortable"\n|-\n! Min Monster Lvl\n! Effect\n|-`;
game.corruption.corruptionEffects.allRows.sort((a,b) => a.minMonsterLevel - b.minMonsterLevel).forEach((row, i) => {
let description = modifyDescription(row.langStringID !== '' ? getLangString(row.langStringID) : row.customDescription),
monsterLevelReq = row.minMonsterLevel ? numberWithCommas(row.minMonsterLevel) : 'Starts Unlocked';
results += `\n|data-sort-value="${row.minMonsterLevel}"| ${monsterLevelReq}`;
results += `\n| <span class="text-positive">${description}</span>`;
if (i < game.corruption.corruptionEffects.allRows.length - 1) results += '\n|-';
});
});
let output = ``;results.forEach(alias => output += alias + '\n|-\n');console.log(output);
results += '\n|}';console.log(results);
self.nw?.Clipboard.get().set ? self.nw?.Clipboard?.get().set(outputString, 'text') : copy(outputString);
self.nw?.Clipboard.get().set ? self.nw?.Clipboard?.get().set(results, 'text') : copy(results);
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 16:37, 9 October 2024

A script is used to generate the following table. To use, open the game and paste the below into the console. The outputs will be copied to your clipboard automatically. After running the script, 'edit source' on Template:CorruptionsTable then Ctrl+A and Ctrl+V. Look over the contents to ensure everything looks fine.

let EFFECT_ICON_MODIFICATIONS = [ { effect: 'Bleed' }, { effect: 'Slow' }, { effect: 'Laceration' }, { effect: 'Ablaze' }, { effect: 'Blight' }, { effect: 'Fear' }, { effect: 'Silence' } ];
let LINKS_MODIFICATIONS = [ { effect: 'Attack Interval' },  { effect: 'Lifesteal' },  { effect: 'Accuracy Rating' },  { effect: 'Global Evasion' } ];
let ICON_MODIFICATIONS = [ { effect: 'Unholy Prayers' }, { effect: 'Barrier' }, { effect: 'Abyssal Resistance' } ];
[...EFFECT_ICON_MODIFICATIONS, ...LINKS_MODIFICATIONS, ...ICON_MODIFICATIONS].forEach(x => x["regex"] = new RegExp("\\b" + x.effect + "\\b", "ig"));

let modifyDescription = (text) => {
	EFFECT_ICON_MODIFICATIONS.forEach((x, i) => { text = text.replace(x.regex, `{{EffectIcon|${x.effect}}}`); });
	LINKS_MODIFICATIONS.forEach((x, i) => { text = text.replace(x.regex, `[[${x.effect}]]`); });
	ICON_MODIFICATIONS.forEach((x, i) => { text = text.replace(x.regex, `{{Icon|${x.effect}}}`); });
	text = text.replace('Global Accuracy', '[[Accuracy Rating|Global Accuracy]]');
	return text
}

let results = `<noinclude>{{/doc}}[[Category:Manual Tables]]</noinclude>\n{| class="wikitable sortable"\n|-\n! Min Monster Lvl\n! Effect\n|-`;
game.corruption.corruptionEffects.allRows.sort((a,b) => a.minMonsterLevel - b.minMonsterLevel).forEach((row, i) => {
	let description = modifyDescription(row.langStringID !== '' ? getLangString(row.langStringID) : row.customDescription),
		monsterLevelReq = row.minMonsterLevel ? numberWithCommas(row.minMonsterLevel) : 'Starts Unlocked';
	results += `\n|data-sort-value="${row.minMonsterLevel}"| ${monsterLevelReq}`;
	results += `\n| <span class="text-positive">${description}</span>`;
	if (i < game.corruption.corruptionEffects.allRows.length - 1) results += '\n|-';
});
results += '\n|}';console.log(results);
self.nw?.Clipboard.get().set ? self.nw?.Clipboard?.get().set(results, 'text') : copy(results);