Fallen London - Visible Air

Uses the Airs of London text to display the Airs range in the result summary.

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name        Fallen London - Visible Air
// @namespace   fallenlondon/airs
// @description Uses the Airs of London text to display the Airs range in the result summary.
// @author      Travers
// @include     http://*fallenlondon.com/Gap/Load*
// @include     http://fallenlondon.storynexus.com/Gap/Load*
// @version     1
// @grant       none
// ==/UserScript==

var airs = [
['0', "Out on the city's edge, zee-bats cry where black waves break on a black shore."],
['1 - 10', "A bat zips past, not far overhead."],
['11 - 13', "The softest of rains falls in the street: the cobbles glisten like fish-skin."],
['14 - 15', "In the street outside, fly-drivers squabble in a half-dozen different tongues"],
['16 - 17', "A small child meditatively pings stones off a butcher's shop-window."],
['18 - 19', "A shuttered black coach passes. The horses' hooves are muffled with sacking."],
['20', "A devil lounges against a lamp-post, picking his teeth with a needle. He eyes you speculatively."],
['21 - 30', "Shadows lie still, here where there is no sun to move them. Sometimes they shiver in candle-light."],
['31 - 32', "A raven caws, coughs, and breaks into song. Something eighteenth-century?"],
['33 - 40', "The wall here is splotched with luxuriant russet fungus, like the fur of something mythical."],
['41 - 42', "Passers-by watch you with narrow eyes. What do they see?"],
['43 - 44', "Someone speaks your name. But when you turn, there is only a mirror."],
['45 - 46', "High above, the false-stars glimmer. Did one of them - move?"],
['47 - 50', "A window glows with the amber light of tallow-candles. Voices are raised in song."],
['51 - 60', "Today, something in the air makes the gas-lamps slink low, burn marsh-green."],
['61 - 62', "On the roof-tops at day's end, urchins whistle a tune from Mahogany Hall."],
['63 - 65', "Oof! That reek is a tannery. Hold your breath a moment."],
['66 - 68', "A glove-maker passes, holding his bag at arm's-length."],
['69 - 70', "The cobbles are slippery with a thick black moss."],
['71 - 72', "A cat's eyes glint on a high window-ledge."],
['73', "Stray dogs fight over something in the gutter. A human hand?"],
['74 - 75', "A barouche passes, drawn by a pair of perfectly matched greys."],
['76 - 80', "A scuffle! A pool of blood! A wild-eyed girl with a knife in either hand!"],
['81 - 82', "The light from the false-stars clings to every surface like oil."],
['83', "A phaeton roars past! The crowd scatters, the horses roll their eyes desperately!"],
['84 - 88', "Two costermongers stagger past, roaring drunk, their neckerchiefs alive with the colours of night."],
['89', "A portly man sits weeping in the road."],
['90', "A rat runs along an iron railing, leaping each spike like an acrobat."],
['91', "Today, water has a metallic taste. It generally does. But is this a different metal? Copper? Silver?"],
['92', "A cry goes up: \"Thief!\" A pale young woman hurdles a barrel and is gone into the endless night."],
['93', "A church bell tolls."],
['94', "Drizzle is falling all around, like slow glass, or tears."],
['95', "A huddled bundle lies in the gutter. Movement squirms beneath a blanket."],
['96', "The wind toys with paper-scraps in the gutter."],
['97', "A governess passes with a child on a leash. No! No, only a young woman and a little dog."],
['98', "A beetle the size of a boot sits atop a tar-barrel, nonchalantly twiddling its antennae."],
['99', "A scowling boy distributes hand-bills."],
['100', "All shall be well, and all manner of thing shall be well."]
];
    
setUpObserver();

function setUpObserver()
{
  var target = document.querySelector('#mainContentLoading');
  var peeper = new MutationObserver(markAirs);
  peeper.observe(target, {attributes: true, childList: false, characterData: false});
}

function markAirs()
{
  //Check all span element nodes for the Airs description text
  var spans = document.getElementsByTagName('span');
  for (var i = 0; i < spans.length; i++)
  {
    if (spans[i].hasAttribute('class'))
    { 
      if (spans[i].getAttribute('class').startsWith('tt'))
      {
        if (spans[i].innerHTML.startsWith('Not every day in the Neath is the same'))
        {
          //Based on the current structure of Fallen London results, this should be the node that we need.
          var airsTextNode = spans[i].parentNode.parentNode.parentNode.nextSibling;
          
          //However, we may need to skip over non-element nodes.
          while (airsTextNode.nodeType !== 1)
          {
            airsTextNode = airsTextNode.nextSibling;
          }
          
          //Compare the text that we found to the standard Airs texts and append the Airs range if found.
          var airsText = airsTextNode.innerHTML;
          for (var j = 0; j < airs.length; j++)
          {
            if (airsText.startsWith(airs[j][1]))
            {
              airsTextNode.innerHTML = airsText + "[" + airs[j][0] + "]";
            }
          }
        }    
      }
    }
  }
}