Difference between revisions of "User:Lusterless"

From Fallen Sword Wiki
Jump to: navigation, search
Line 6: Line 6:
 
* [https://fallensword.com/index.php?cmd=guild&subcmd=view&guild_id=28686 Balance Guild], 2008 - 2019
 
* [https://fallensword.com/index.php?cmd=guild&subcmd=view&guild_id=28686 Balance Guild], 2008 - 2019
 
* [https://fallensword.com/index.php?cmd=guild&subcmd=view&guild_id=22663 Sharingan Warriors], 2019 - present
 
* [https://fallensword.com/index.php?cmd=guild&subcmd=view&guild_id=22663 Sharingan Warriors], 2019 - present
 +
 +
== Javascript for the Wiki ==
 +
I've written some JS code that can be run in developer mode to generate sections of wiki-pages.
 +
 +
=== Realm Maps ===
 +
This script generates the cells of a map table. It must be run after a page refresh, and requires manual tagging and review.
 +
 +
<nowiki>
 +
realmMap = GameData.realm().tiles.map((r,i) =>
 +
  r.map((i) => `| {{tileSheet|tiles/${GameData.realm().set}|${GameData.realm().tile_lookup[i].i}}}`))
 +
GameData.realm().fixed.forEach((i) =>
 +
  realmMap[i.y][i.x] = `| {{MapNote|image={{tileSheet|realms/${GameData.realm().id}|${i.i}}}|target=${i.name}}}`)
 +
realmMap.map((r, i) => `| ${i}\n` + r.join("\n") + `\n| ${i}\n`).join("|-\n")
 +
</nowiki>
 +
 +
=== Shops ===
 +
This script creates the code for items in the [[template:Shop|Shop Template]].
 +
 +
<nowiki>
 +
var items = Array.from($(".shopInventoryItem")).map((e,i) => {
 +
  price: $(e).find(".price").text(),
 +
  imageID: $(e).find(".inventory-item").css("background-image").match(/(\d+)\.gif/)[1],
 +
  data: $(e).find(".inventory-item-slot").data("tipped"),
 +
});
 +
 +
items.reduce((promiseChain, currentTask) => {
 +
  return promiseChain.then(chainResults => 
 +
    $.ajax(currentTask.data).then((e) =>
 +
      [ ...chainResults, $(e).find('nobr').text() ]
 +
    )
 +
  );
 +
}, Promise.resolve([])).then(arrayOfResults => {
 +
  arrayOfResults.map((e,i) => `|item-name-${i+1}=${e.name}|item-image-${i+1}={{ItemPicture|${e.imageID}}}|item-price-${i+1}=${e.price}`).join("\n")
 +
});
 +
</nowiki>
  
 
== Links ==  
 
== Links ==  
 
* [https://fallensword.com/index.php?cmd=profile&player_id=1674838 Player Profile]
 
* [https://fallensword.com/index.php?cmd=profile&player_id=1674838 Player Profile]
 
* [https://wiki.fallensword.com/index.php/Special:Contributions/Lusterless Wiki Contributions]
 
* [https://wiki.fallensword.com/index.php/Special:Contributions/Lusterless Wiki Contributions]

Revision as of 18:50, 24 February 2022

Contents

Lusterless

Documentation enthusiast and Fallen Sword Helper developer.


Guilds

Javascript for the Wiki

I've written some JS code that can be run in developer mode to generate sections of wiki-pages.

Realm Maps

This script generates the cells of a map table. It must be run after a page refresh, and requires manual tagging and review.

 realmMap = GameData.realm().tiles.map((r,i) =>
   r.map((i) => `| {{tileSheet|tiles/${GameData.realm().set}|${GameData.realm().tile_lookup[i].i}}}`))
 GameData.realm().fixed.forEach((i) => 
   realmMap[i.y][i.x] = `| {{MapNote|image={{tileSheet|realms/${GameData.realm().id}|${i.i}}}|target=${i.name}}}`)
 realmMap.map((r, i) => `| ${i}\n` + r.join("\n") + `\n| ${i}\n`).join("|-\n")
 

Shops

This script creates the code for items in the Shop Template.

 var items = Array.from($(".shopInventoryItem")).map((e,i) => {
   price: $(e).find(".price").text(),
   imageID: $(e).find(".inventory-item").css("background-image").match(/(\d+)\.gif/)[1],
   data: $(e).find(".inventory-item-slot").data("tipped"),
 });
 
 items.reduce((promiseChain, currentTask) => {
   return promiseChain.then(chainResults =>   
     $.ajax(currentTask.data).then((e) =>
       [ ...chainResults, $(e).find('nobr').text() ]
     )
   );
 }, Promise.resolve([])).then(arrayOfResults => {
   arrayOfResults.map((e,i) => `|item-name-${i+1}=${e.name}|item-image-${i+1}={{ItemPicture|${e.imageID}}}|item-price-${i+1}=${e.price}`).join("\n")
 });
 

Links