Merge branch 'Roll20:master' into master
@@ -1,245 +1,245 @@
|
||||
{
|
||||
"info-ability": "Info & Abilities",
|
||||
"intrigue-combat": "Intrigue & Combat",
|
||||
"info-ability": "Info & Fähigkeiten",
|
||||
"intrigue-combat": "Intrige & Kampf",
|
||||
"character-details": "Charakter Details",
|
||||
"npcs": "NSCs",
|
||||
"armies": "Armies",
|
||||
"armies": "Armeen",
|
||||
"journal": "Notizbuch",
|
||||
"name": "Name :",
|
||||
"player-name": "Player Name",
|
||||
"house": "House:",
|
||||
"player-name": "Spielername:",
|
||||
"house": "Haus:",
|
||||
"motto": "Motto",
|
||||
"age": "Alter",
|
||||
"gender": "Geschlecht",
|
||||
"height": "Höhe",
|
||||
"weight": "Gewicht",
|
||||
"hair-color": "Hair Color",
|
||||
"eye-color": "Eye Color",
|
||||
"hair-color": "Haarfarbe",
|
||||
"eye-color": "Augenfarbe",
|
||||
"custom-roll": "Benutzerdef. Wurf",
|
||||
"agility": "Agility",
|
||||
"agility": "Gewandtheit",
|
||||
"acrobatics": "Akrobatik",
|
||||
"balance": "Balance",
|
||||
"contortions": "Contortions",
|
||||
"dodge": "Dodge",
|
||||
"quickness": "Quickness",
|
||||
"animal-handling": "Mit Tieren umgehen",
|
||||
"charm": "Charm",
|
||||
"drive": "Drive",
|
||||
"ride": "Ride",
|
||||
"train": "Train",
|
||||
"balance": "Gleichgewicht",
|
||||
"contortions": "Verrenkung",
|
||||
"dodge": "Ausweichen",
|
||||
"quickness": "Schnelligkeit",
|
||||
"animal-handling": "Umgang mit Tieren",
|
||||
"charm": "Beruhigen",
|
||||
"drive": "Lenken",
|
||||
"ride": "Reiten",
|
||||
"train": "Abrichten",
|
||||
"athletics": "Athletik",
|
||||
"climb": "Klettern",
|
||||
"jump": "Jump",
|
||||
"run": "Run",
|
||||
"jump": "Springen",
|
||||
"run": "Rennen",
|
||||
"strength": "Stärke",
|
||||
"swim": "Schwimmen",
|
||||
"Throw": "Werfen",
|
||||
"awareness": "Awareness",
|
||||
"empathy": "Empathy",
|
||||
"notice": "Notice",
|
||||
"cunning": "Cunning",
|
||||
"decipher": "Decipher",
|
||||
"logic": "Logic",
|
||||
"memory": "Memory",
|
||||
"deception": "Täuschen",
|
||||
"act": "Act",
|
||||
"bluff": "Bluff",
|
||||
"cheat": "Cheat",
|
||||
"disguise": "Disguise",
|
||||
"endurance": "Endurance",
|
||||
"resilience": "Widerstandskraft",
|
||||
"stamina": "Stamina",
|
||||
"fighting": "Kämpfen",
|
||||
"axes": "Axes",
|
||||
"bluggeons": "Bludgeons",
|
||||
"brawling": "Brawling",
|
||||
"fencing": "Fencing",
|
||||
"long-blade": "Long Blades",
|
||||
"awareness": "Wahrnehmung",
|
||||
"empathy": "Empathie",
|
||||
"notice": "Aufmerksamkeit",
|
||||
"cunning": "Scharfsinn",
|
||||
"decipher": "Entschlüsseln",
|
||||
"logic": "Logik",
|
||||
"memory": "Erinnerung",
|
||||
"deception": "Täuschung",
|
||||
"act": "Schauspielern",
|
||||
"bluff": "Bluffen",
|
||||
"cheat": "Betrügen",
|
||||
"disguise": "Verkleiden",
|
||||
"endurance": "Ausdauer",
|
||||
"resilience": "Widerstandsfähigkeit",
|
||||
"stamina": "Kondition",
|
||||
"fighting": "Kampf",
|
||||
"axes": "Äxte",
|
||||
"bluggeons": "Schlagwaffen",
|
||||
"brawling": "Prügeln",
|
||||
"fencing": "Fechten",
|
||||
"long-blade": "Langklinge",
|
||||
"polearms": "Stangenwaffen",
|
||||
"shields": "Schilde",
|
||||
"short-blade": "Short Blades",
|
||||
"short-blade": "Kurzklinge",
|
||||
"spears": "Speere",
|
||||
"healing": "Heilung",
|
||||
"healing": "Heilkunst",
|
||||
"diagnose": "Diagnose",
|
||||
"treat-ailment": "Treat Ailment",
|
||||
"treat-injury": "Treat Injury",
|
||||
"laguage": "Language",
|
||||
"treat-ailment": "Leiden Behandeln",
|
||||
"treat-injury": "Verletzung Behandeln",
|
||||
"laguage": "Sprache",
|
||||
"roll": "Wurf",
|
||||
"knowledge": "Knowledge",
|
||||
"education": "Allgemeinbildung",
|
||||
"research": "Forschung",
|
||||
"streetwise": "Straßenwissen",
|
||||
"marksmanship": "Fernkampf",
|
||||
"knowledge": "Wissen",
|
||||
"education": "Bildung",
|
||||
"research": "Recherche",
|
||||
"streetwise": "Gassenwissen",
|
||||
"marksmanship": "Schiesskunst",
|
||||
"bows": "Bögen",
|
||||
"crossbows": "Crossbows",
|
||||
"siege": "Siege",
|
||||
"thrown": "Thrown",
|
||||
"persuasuion": "Überzeugen",
|
||||
"bargain": "Bargain",
|
||||
"crossbows": "Armbrüste",
|
||||
"siege": "Belagerung",
|
||||
"thrown": "Wurfwaffen",
|
||||
"persuasuion": "Überredung",
|
||||
"bargain": "Feilschen",
|
||||
"convince": "Überzeugen",
|
||||
"incite": "Incite",
|
||||
"intimidate": "Intimidate",
|
||||
"seduce": "Seduce",
|
||||
"taunt": "Provozieren",
|
||||
"incite": "Aufstacheln",
|
||||
"intimidate": "Einschüchtern",
|
||||
"seduce": "Verführen",
|
||||
"taunt": "Verspotten",
|
||||
"status": "Status",
|
||||
"breeding": "Breeding",
|
||||
"reputation": "Reputation",
|
||||
"stewardship": "Stewardship",
|
||||
"tournaments": "Tournaments",
|
||||
"stealth": "Heimlichkeit",
|
||||
"blend-in": "Blend In",
|
||||
"breeding": "Erziehung",
|
||||
"reputation": "Ansehen",
|
||||
"stewardship": "Verwaltung",
|
||||
"tournaments": "Turniere",
|
||||
"stealth": "Verstohlenheit",
|
||||
"blend-in": "Untertauchen",
|
||||
"sneak": "Schleichen",
|
||||
"survival": "Überlebenskunst",
|
||||
"forage": "Forage",
|
||||
"hunt": "Hunt",
|
||||
"orientation": "Orientation",
|
||||
"track": "Titel",
|
||||
"survival": "Überleben",
|
||||
"forage": "Nahrungssuche",
|
||||
"hunt": "Jagen",
|
||||
"orientation": "Orientierung",
|
||||
"track": "Verfolgen",
|
||||
"thievery": "Diebeskunst",
|
||||
"pick-lock": "Schlösser öffnen",
|
||||
"sleight-of-hand": "Fingerfertigkeit",
|
||||
"steal": "Steal",
|
||||
"warfare": "Warfare",
|
||||
"command": "Kommando",
|
||||
"strategy": "Strategy",
|
||||
"tactics": "Tactics",
|
||||
"steal": "Stehlen",
|
||||
"warfare": "Kriegsführung",
|
||||
"command": "Befehligen",
|
||||
"strategy": "Strategie",
|
||||
"tactics": "Taktik",
|
||||
"will": "Willen",
|
||||
"courage": "Mut",
|
||||
"coordonate": "Coordinate",
|
||||
"dedication": "Dedication",
|
||||
"coordonate": "Koordinierung",
|
||||
"dedication": "Hingabe",
|
||||
"initiative": "Inititative",
|
||||
"defense": "Defense",
|
||||
"defense-bonus": "Defense Bonus",
|
||||
"composure": "Composure Bonus",
|
||||
"defense": "Verteidigung",
|
||||
"defense-bonus": "Abwehrbonus",
|
||||
"composure": "Gelassenheit",
|
||||
"current": "Aktuell",
|
||||
"max": "Max",
|
||||
"frustration": "Frustration:",
|
||||
"d-malus-deception-persuation": "–1D on Deception and Persuasion",
|
||||
"health": "Health",
|
||||
"1-on-all-tests": "–1 on all tests",
|
||||
"d-malus-deception-persuation": "-1W auf Täuschung und Überredung",
|
||||
"health": "Gesundheit",
|
||||
"1-on-all-tests": "-1 bei allen Proben",
|
||||
"armor": "Rüstung",
|
||||
"armor-rating": "Panzerungswert",
|
||||
"armor-penalty": "Armor Penalty",
|
||||
"armor-bulk": "Armor Bulk",
|
||||
"injuries-wounds": "Injuries & Wounds",
|
||||
"injuries": "Injuries",
|
||||
"injuries-impose": "Injuries impose -1 to all tests.",
|
||||
"wounds": "Wounds:",
|
||||
"wounds-impose": "Wounds impose -1D to all tests.",
|
||||
"destiny-point": "Destiny Points",
|
||||
"avaible": "Available:",
|
||||
"armor-rating": "Rüstungswert",
|
||||
"armor-penalty": "Rüstimgsabzug",
|
||||
"armor-bulk": "Rüstungslast",
|
||||
"injuries-wounds": "Verletzungen & Wunden",
|
||||
"injuries": "Verletzungen",
|
||||
"injuries-impose": "-1 auf Ergebnisse aller Proben",
|
||||
"wounds": "Wunden:",
|
||||
"wounds-impose": "-1W für alle deine Proben",
|
||||
"destiny-point": "Schicksalspunkte",
|
||||
"avaible": "Verfügbar:",
|
||||
"maximum": "Maximum",
|
||||
"base": "Basis",
|
||||
"invested": "Invested",
|
||||
"invested": "Verbrannte",
|
||||
"bonus": "Bonus",
|
||||
"yds": "yds",
|
||||
"move-speed": "Move Speed",
|
||||
"sprint-multi": "Sprint Multi",
|
||||
"sprint-speed": "Sprint Speed",
|
||||
"bulk": "Bulk",
|
||||
"equiped-weapons": "Equipped Weapons",
|
||||
"type": "Type: ",
|
||||
"intrigue": "Intrigue",
|
||||
"yds": "m",
|
||||
"move-speed": "Bewegung",
|
||||
"sprint-multi": "Rennen Multi",
|
||||
"sprint-speed": "Rennen",
|
||||
"bulk": "Last",
|
||||
"equiped-weapons": "Ausgerüstete Waffen",
|
||||
"type": "Art:",
|
||||
"intrigue": "Intrige",
|
||||
"combat": "Kampf",
|
||||
"fatigue": "Fatigue:",
|
||||
"fatigue": "Erschöpfung:",
|
||||
"movement": "Bewegung",
|
||||
"melee": "Nahkampf",
|
||||
"ranged": "Fernkampf",
|
||||
"specialty": "Specialty:",
|
||||
"axe": "Axes",
|
||||
"bludgeons": "Bludgeons",
|
||||
"long-blades": "Long Blades",
|
||||
"short-blades": "Short Blades",
|
||||
"training": "Training :",
|
||||
"specialty": "Spezialisierung:",
|
||||
"axe": "Axt",
|
||||
"bludgeons": "Schlagwaffen",
|
||||
"long-blades": "Langklingen",
|
||||
"short-blades": "Kurzklingen",
|
||||
"training": "Ausbildung :",
|
||||
"damage": "Schaden",
|
||||
"damage-mod": "Schadens-Mod.:",
|
||||
"qualities": "Qualities",
|
||||
"qualities": "Eigenschaften",
|
||||
"hit": "Treffer",
|
||||
"possessions": "Possessions",
|
||||
"equipment-gear": "Equipment & Gear",
|
||||
"possessions": "Besitztümer",
|
||||
"equipment-gear": "Ausrüstung & Gegenstände",
|
||||
"item-name": "Name des Gegenstands",
|
||||
"value": "Value",
|
||||
"mount-livestock": "Mounts & Livestock",
|
||||
"animal": "Animal",
|
||||
"value": "Wert",
|
||||
"mount-livestock": "Reit- & Haustiere",
|
||||
"animal": "Tier",
|
||||
"currency": "Währung",
|
||||
"copper-pennies": "Copper Pennies:",
|
||||
"silver-stags": "Silver Stags:",
|
||||
"gold-dragons": "Gold Dragons:",
|
||||
"silver-stags-to-pennies": "Silver Stag = 56 Pennies",
|
||||
"gold-dragon-to-stags": "Gold Dragon = 210 Stags (11,760 Pennies)",
|
||||
"character-information": "Character Information",
|
||||
"copper-pennies": "Kupferstücke:",
|
||||
"silver-stags": "Silberhirsche:",
|
||||
"gold-dragons": "Golddrachen:",
|
||||
"silver-stags-to-pennies": "Silberhirschen = 56 Kupferstücke",
|
||||
"gold-dragon-to-stags": "Golddrachen = 210 Hirsche (11.760 Kupfer)",
|
||||
"character-information": "Charakter Informationen",
|
||||
"experience": "Erfahrungspunkte",
|
||||
"total": "Total:",
|
||||
"spent": "Spent:",
|
||||
"total": "Gesamt:",
|
||||
"spent": "Ausgegeben:",
|
||||
"expenditures": "Expenditures",
|
||||
"glory": "Ruhm",
|
||||
"benefits": "Benefits",
|
||||
"benefits": "Vorteile",
|
||||
"effect": "Effekt",
|
||||
"drawbacks": "Drawbacks",
|
||||
"drawbacks": "Nachteile",
|
||||
"virtues": "Tugenden",
|
||||
"vices": "Vices",
|
||||
"goals": "Goals",
|
||||
"vices": "Laster",
|
||||
"goals": "Ziele",
|
||||
"motivations": "Motivationen",
|
||||
"mannerisms": "Mannerisms",
|
||||
"distinguishing-features": "Distinguishing Features",
|
||||
"retainers": "Retainers",
|
||||
"allies": "Allies",
|
||||
"enemies": "Enemies",
|
||||
"Oaths": "Oaths",
|
||||
"personnal-history": "Personal History",
|
||||
"notable-npc": "Notable NPCs",
|
||||
"realm": "Realm:",
|
||||
"mannerisms": "Angewohnheiten",
|
||||
"distinguishing-features": "Besondere Merkmale",
|
||||
"retainers": "Gefolgsleute",
|
||||
"allies": "Verbündete",
|
||||
"enemies": "Feinde",
|
||||
"Oaths": "Eide",
|
||||
"personnal-history": "Persönliche Geschichte",
|
||||
"notable-npc": "Bedeutende NPCs",
|
||||
"realm": "Reich:",
|
||||
"liege": "Liege:",
|
||||
"appearance": "Appearance:",
|
||||
"disposition": "Disposition (Deceive/Persuade):",
|
||||
"mine": "Mine:",
|
||||
"affectionate": "Affectionate (-2/+5)",
|
||||
"friendly": "Friendly (-1/+3)",
|
||||
"amiable": "Amiable (0/+1)",
|
||||
"indifferent": "Indifferent (0/0)",
|
||||
"dislike": "Dislike (+1/-2)",
|
||||
"unfriendly": "Unfriendly (+2/-4)",
|
||||
"malicious": "Malicious (+3/-6)",
|
||||
"theirs": "Theirs:",
|
||||
"appearance": "Aussehen:",
|
||||
"disposition": "Gesinnung (Täuschung/Überredung)",
|
||||
"mine": "Meine:",
|
||||
"affectionate": "Zugeneigt (-2/+5)",
|
||||
"friendly": "Freundlich (-1/+3)",
|
||||
"amiable": "Wohlgesinnt (0/+1)",
|
||||
"indifferent": "Gleichgültig (0/0)",
|
||||
"dislike": "Ablehnend (+1/-2)",
|
||||
"unfriendly": "Unfreundlich (+2/-4)",
|
||||
"malicious": "Bösartig (+3/-6)",
|
||||
"theirs": "Deren:",
|
||||
"notes": "Notizen:",
|
||||
"unit-type": "Unit Type:",
|
||||
"archers": "Archers",
|
||||
"cavalery": "Cavalery",
|
||||
"criminals": "Criminals",
|
||||
"crusaders": "Crusaders",
|
||||
"engineers": "Engineers",
|
||||
"garrison": "Garrison",
|
||||
"guerillas": "Guerillas",
|
||||
"infantry": "Infantry",
|
||||
"mercenaries": "Mercenaries",
|
||||
"peasant-levies": "Peasant Levies",
|
||||
"personal-guards": "Personal Guards",
|
||||
"raiders": "Raiders",
|
||||
"sailors": "Sailors",
|
||||
"scouts": "Scouts",
|
||||
"special": "Speziell",
|
||||
"support": "Support",
|
||||
"warship": "Warship",
|
||||
"green": "Green",
|
||||
"trained": "Gelernt",
|
||||
"veteran": "Veteran",
|
||||
"unit-type": "Einheitstyp:",
|
||||
"archers": "Bogenschützen",
|
||||
"cavalery": "Kavallerie",
|
||||
"criminals": "Verbrecher",
|
||||
"crusaders": "Kreuzzügler",
|
||||
"engineers": "Ingenieure",
|
||||
"garrison": "Garnison",
|
||||
"guerillas": "Guerillakämpfer",
|
||||
"infantry": "Infanterie",
|
||||
"mercenaries": "Söldner",
|
||||
"peasant-levies": "Bauern",
|
||||
"personal-guards": "Leibgarde",
|
||||
"raiders": "Plünderer",
|
||||
"sailors": "Seeleute ",
|
||||
"scouts": "Späher",
|
||||
"special": "Spezialeinheit",
|
||||
"support": "Unterstützungstrupp",
|
||||
"warship": "Kriegsschiffe",
|
||||
"green": "Unerfahren",
|
||||
"trained": "Geübt",
|
||||
"veteran": "Erfahren",
|
||||
"elite": "Elite",
|
||||
"armystatus": "Status :",
|
||||
"organize": "Organize",
|
||||
"disorganize": "Disorganize",
|
||||
"rally": "Rally",
|
||||
"routed": "Routed",
|
||||
"abilities": "Abilities",
|
||||
"discipline": "Discipline",
|
||||
"fight-damage": "Fight Damage",
|
||||
"marksmanship-damage": "Marksman Dam.",
|
||||
"organize": "Organisiert",
|
||||
"disorganize": "Desorganisiert",
|
||||
"rally": "Sammeln",
|
||||
"routed": "Zerstreut",
|
||||
"abilities": "Fähigkeiten",
|
||||
"discipline": "Disziplin",
|
||||
"fight-damage": "Kampf Schaden",
|
||||
"marksmanship-damage": "Schiesskunst Schaden",
|
||||
"mvt": "Mvt",
|
||||
"fight-dam-mod": "Fight Dam. Mod.",
|
||||
"marksmanship-dam-mod": "Marksman Dam. Mod.",
|
||||
"defense-mod": "Defense Mod.",
|
||||
"available": "Available:",
|
||||
"defense-sante": "DEFENSE & HEALTH",
|
||||
"malus-disorganize": "Malus Disorganized",
|
||||
"armyhero": "Hero :",
|
||||
"nohero": "Without Hero",
|
||||
"hero": "With Hero"
|
||||
"fight-dam-mod": "Kampf Schadens Mod",
|
||||
"marksmanship-dam-mod": "Schiesskunst Schadens Mod",
|
||||
"defense-mod": "Verteidigungs Mod.",
|
||||
"available": "Verfügbar:",
|
||||
"defense-sante": "Verteidiegung & Gesundheit",
|
||||
"malus-disorganize": "Desorganisiert Mali",
|
||||
"armyhero": "Held :",
|
||||
"nohero": "Ohne Held",
|
||||
"hero": "Mit Held"
|
||||
}
|
||||
@@ -239,30 +239,6 @@ input[type="number"].sheet-nobut::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
.charsheet input.sheet-invisible,
|
||||
.charsheet input.sheet-version-large,
|
||||
.charsheet input.sheet-version-right {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background-color: transparent;
|
||||
display: inline;
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
.charsheet input.sheet-version-right {
|
||||
float: right;
|
||||
text-align: right;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.charsheet input.sheet-version-large {
|
||||
font-size:24px;
|
||||
font-weight: 800;
|
||||
color: black;
|
||||
padding: 0;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
input.sheet-arrow
|
||||
{
|
||||
float: left;
|
||||
@@ -911,7 +887,7 @@ button {
|
||||
.sheet-rolltemplate-2Esave .sheet-ignore-inlineroll .inlinerollresult,
|
||||
.sheet-rolltemplate-2Epsionic .sheet-ignore-inlineroll .inlinerollresult {
|
||||
background-color: inherit;
|
||||
border: inherit;
|
||||
border: none;
|
||||
color: #000000;
|
||||
padding: 0;
|
||||
font-weight: inherit;
|
||||
@@ -1304,22 +1280,6 @@ button {
|
||||
background: #512E5F;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-2Esave .sheet-template-body td,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-body td,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-body td,
|
||||
.sheet-rolltemplate-2Egrenademiss .sheet-template-body td {
|
||||
font-size: 10pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border: none;
|
||||
}
|
||||
.sheet-rolltemplate-2Esave td.sheet-check-c1,
|
||||
.sheet-rolltemplate-2Echeck td.sheet-check-c1,
|
||||
.sheet-rolltemplate-2Einversecheck td.sheet-check-c1,
|
||||
.sheet-rolltemplate-2Egrenademiss td.sheet-check-c1 {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
/*#endregion*/
|
||||
/*#region Styles for the 2Egrenade Template /*/
|
||||
.sheet-rolltemplate-2Egrenademiss .sheet-template-head {
|
||||
@@ -1327,6 +1287,8 @@ button {
|
||||
}
|
||||
.sheet-rolltemplate-2Egrenademiss td.sheet-grenade-c1 {
|
||||
font-size: 9pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
.sheet-rolltemplate-2Egrenademiss .sheet-hit-text {
|
||||
font-size: 10pt;
|
||||
@@ -1361,21 +1323,47 @@ button {
|
||||
}
|
||||
|
||||
/*#endregion*/
|
||||
/*#region Styles for the 2Epsionic Template*/
|
||||
.sheet-rolltemplate-2Epsionic td.sheet-check-c1 {
|
||||
width: 50%;
|
||||
/*#region Roll checks Template*/
|
||||
.sheet-rolltemplate-2Espell tr.sheet-check,
|
||||
.sheet-rolltemplate-2Esave tr.sheet-check,
|
||||
.sheet-rolltemplate-2Echeck tr.sheet-check,
|
||||
.sheet-rolltemplate-2Einversecheck tr.sheet-check,
|
||||
.sheet-rolltemplate-2Egrenademiss tr.sheet-check,
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-check {
|
||||
border: none;
|
||||
}
|
||||
.sheet-rolltemplate-2Espell tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Esave tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Echeck tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Einversecheck tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Egrenademiss tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-check td {
|
||||
font-size: 10pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border: none;
|
||||
}
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-border-none td {
|
||||
border: none;
|
||||
.sheet-rolltemplate-2Espell tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Esave tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Echeck tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Einversecheck tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Egrenademiss tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-check td:nth-child(odd) {
|
||||
width: 50%;
|
||||
}
|
||||
.sheet-rolltemplate-2Espell tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Esave tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Echeck tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Einversecheck tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Egrenademiss tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-check td:nth-child(even) {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
/*#endregion*/
|
||||
/*#region Success, Failure, Info sections*/
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-body .sheet-template-result,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-body .sheet-template-result,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-body .sheet-template-result,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-body .sheet-template-result,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-body .sheet-template-result,
|
||||
@@ -1388,6 +1376,7 @@ button {
|
||||
color: #ffffff;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
@@ -1397,6 +1386,7 @@ button {
|
||||
border: none;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
@@ -1407,6 +1397,7 @@ button {
|
||||
padding: 2px;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-success,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-success,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-success,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-success,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-success,
|
||||
@@ -1415,6 +1406,7 @@ button {
|
||||
background-color: #093a01;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-failure,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-failure,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-failure,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-failure,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-failure,
|
||||
@@ -1423,6 +1415,7 @@ button {
|
||||
background-color: #a01616;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-info,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-info,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-info,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-info,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-info,
|
||||
@@ -1672,6 +1665,15 @@ table.sheet-padding-right-column2 td:nth-child(2) {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.sheet-table-slim-first-column td:first-child {
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.sheet-table-sub-ability-score tr:nth-child(3n) button:first-child,
|
||||
.sheet-table-sub-ability-score tr:nth-child(3n-1) button:first-child {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.sheet-note {
|
||||
line-height:1em;
|
||||
font-family: Arial, sans-serif;
|
||||
@@ -1784,7 +1786,7 @@ input.sheet-show-spell-details:checked ~ div.sheet-spell-details {
|
||||
|
||||
/* Overwrite Roll20 base styling */
|
||||
details > summary:first-of-type {
|
||||
display: revert;
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
/* Show hide styling */
|
||||
|
||||
@@ -7,30 +7,32 @@ const pugFolder = path.join(sourceFolder, 'pug');
|
||||
const htmlFolder = path.join(sourceFolder, 'html', 'components');
|
||||
const miscFolder = path.join(sourceFolder, 'misc');
|
||||
const booksPriority = [
|
||||
'PHB',
|
||||
'The Complete Fighter\'s Handbook',
|
||||
'The Complete Thief\'s Handbook',
|
||||
'The Complete Priest\'s Handbook',
|
||||
'The Complete Wizard\'s Handbook',
|
||||
'The Complete Psionics Handbook',
|
||||
'Tome of Magic',
|
||||
'Arms and Equipment Guide',
|
||||
'The Complete Book of Dwarves',
|
||||
'The Complete Bard\'s Handbook',
|
||||
'The Complete Book of Elves',
|
||||
'The Complete Book of Humanoids',
|
||||
'The Complete Ranger\'s Handbook',
|
||||
'The Complete Paladin\'s Handbook',
|
||||
'The Complete Druid\'s Handbook',
|
||||
'The Complete Barbarian\'s Handbook',
|
||||
'The Complete Book of Necromancers',
|
||||
'The Complete Ninja\'s Handbook',
|
||||
'Player\'s Option: Combat & Tactics',
|
||||
'Player\'s Option: Skills & Powers',
|
||||
'Player\'s Option: Spells & Magic',
|
||||
{book: 'PHB', print: 'First Printing May 2013'},
|
||||
{book: 'The Complete Fighter\'s Handbook', print: '11th Printing, May 1996'},
|
||||
{book: 'The Complete Thief\'s Handbook', print: 'November 1993'},
|
||||
{book: 'The Complete Priest\'s Handbook', print: 'Seventh printing, October 1996'},
|
||||
{book: 'The Complete Wizard\'s Handbook', print: '10th printing, March 1996'},
|
||||
{book: 'The Complete Psionics Handbook', print: 'Ninth printing: October 1996'},
|
||||
{book: 'Tome of Magic', print: 'Seventh Printing: March, 1996'},
|
||||
{book: 'Arms and Equipment Guide', print: 'Fifth Printing: January 1994'},
|
||||
{book: 'The Complete Book of Dwarves', print: 'November 1993'},
|
||||
{book: 'The Complete Bard\'s Handbook', print: 'Fourth printing, November 1994'},
|
||||
{book: 'The Complete Book of Elves', print: ''},
|
||||
{book: 'The Complete Book of Humanoids', print: 'Sixth printing, March 1999'},
|
||||
{book: 'The Complete Ranger\'s Handbook', print: 'Fifth printing, July 1995'},
|
||||
{book: 'The Complete Paladin\'s Handbook', print: ''},
|
||||
{book: 'The Complete Druid\'s Handbook', print: ''},
|
||||
{book: 'The Complete Barbarian\'s Handbook', print: ''},
|
||||
{book: 'The Complete Book of Necromancers', print: ''},
|
||||
{book: 'The Complete Ninja\'s Handbook', print: '2nd printing, March 1996'},
|
||||
{book: 'Player\'s Option: Combat & Tactics', print: ''},
|
||||
{book: 'Player\'s Option: Skills & Powers', print: ''},
|
||||
{book: 'Player\'s Option: Spells & Magic', print: ''},
|
||||
];
|
||||
let sortOrder = booksPriority.map(bookPriority => bookPriority.book)
|
||||
function bookShorthand(books) {
|
||||
return books.map(b => b.replace('The Complete', '')
|
||||
return books.sort((x,y) => sortOrder.indexOf(x) - sortOrder.indexOf(y))
|
||||
.map(b => b.replace('The Complete', '')
|
||||
.replace('Book of', '')
|
||||
.replace('Handbook', '')
|
||||
.replace('Player\'s Option:','')
|
||||
@@ -54,15 +56,19 @@ spellsJs.forEach(jsFile => {
|
||||
html += pug.renderFile(path.join(pugFolder, 'spellsDatalists.pug'), {pretty: true, data: spells});
|
||||
|
||||
if (jsFile === 'wizardSpells.js') {
|
||||
let schoolTable = pug.renderFile(path.join(pugFolder, 'schoolsOverview.pug'), {pretty: true, data: spells});
|
||||
let schoolTable = pug.renderFile(path.join(pugFolder, 'schoolsOverview.pug'), {pretty: true, data: spells, booksPriority});
|
||||
fs.writeFileSync(path.join(miscFolder, 'schools-overview.html'), schoolTable);
|
||||
}
|
||||
if (jsFile === 'priestSpells.js') {
|
||||
let sphereTable = pug.renderFile(path.join(pugFolder, 'spheresOverview.pug'), {pretty: true, data: spells});
|
||||
let sphereTable = pug.renderFile(path.join(pugFolder, 'spheresOverview.pug'), {pretty: true, data: spells, booksPriority});
|
||||
fs.writeFileSync(path.join(miscFolder, 'spheres-overview.html'), sphereTable);
|
||||
}
|
||||
});
|
||||
|
||||
const wizardSpells = require(path.join(jsFolder, 'wizardSpells.js'));
|
||||
const priestSpells = require(path.join(jsFolder, 'priestSpells.js'));
|
||||
html += pug.renderFile(path.join(pugFolder, 'spellScrollsDatalists.pug'), {pretty: true, wizardSpells, priestSpells});
|
||||
|
||||
const psionicCorePowers = require(path.join(jsFolder, 'psionicPowers.js'));
|
||||
html += pug.renderFile(path.join(pugFolder, 'psionicCorePowerDatalists.pug'), {pretty: true, data: psionicCorePowers});
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ function CombineRecursive([String[]] $inputContent) {
|
||||
$fileName = $split[1]
|
||||
$arguments = $split[2]
|
||||
$file = Get-ChildItem -Path $sourceFolder -Filter $fileName -Recurse
|
||||
$fileContent = Get-Content -Path $file.FullName
|
||||
$fileContent = @(Get-Content -Path $file.FullName)
|
||||
|
||||
$replaceDic = CreateReplaceDictionary($arguments)
|
||||
|
||||
|
||||
@@ -239,30 +239,6 @@ input[type="number"].sheet-nobut::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
.charsheet input.sheet-invisible,
|
||||
.charsheet input.sheet-version-large,
|
||||
.charsheet input.sheet-version-right {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background-color: transparent;
|
||||
display: inline;
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
.charsheet input.sheet-version-right {
|
||||
float: right;
|
||||
text-align: right;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.charsheet input.sheet-version-large {
|
||||
font-size:24px;
|
||||
font-weight: 800;
|
||||
color: black;
|
||||
padding: 0;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
input.sheet-arrow
|
||||
{
|
||||
float: left;
|
||||
@@ -995,6 +971,15 @@ table.sheet-padding-right-column2 td:nth-child(2) {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.sheet-table-slim-first-column td:first-child {
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.sheet-table-sub-ability-score tr:nth-child(3n) button:first-child,
|
||||
.sheet-table-sub-ability-score tr:nth-child(3n-1) button:first-child {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.sheet-note {
|
||||
line-height:1em;
|
||||
font-family: Arial, sans-serif;
|
||||
@@ -1107,7 +1092,7 @@ input.sheet-show-spell-details:checked ~ div.sheet-spell-details {
|
||||
|
||||
/* Overwrite Roll20 base styling */
|
||||
details > summary:first-of-type {
|
||||
display: revert;
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
/* Show hide styling */
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
.sheet-rolltemplate-2Esave .sheet-ignore-inlineroll .inlinerollresult,
|
||||
.sheet-rolltemplate-2Epsionic .sheet-ignore-inlineroll .inlinerollresult {
|
||||
background-color: inherit;
|
||||
border: inherit;
|
||||
border: none;
|
||||
color: #000000;
|
||||
padding: 0;
|
||||
font-weight: inherit;
|
||||
@@ -407,22 +407,6 @@
|
||||
background: #512E5F;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-2Esave .sheet-template-body td,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-body td,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-body td,
|
||||
.sheet-rolltemplate-2Egrenademiss .sheet-template-body td {
|
||||
font-size: 10pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border: none;
|
||||
}
|
||||
.sheet-rolltemplate-2Esave td.sheet-check-c1,
|
||||
.sheet-rolltemplate-2Echeck td.sheet-check-c1,
|
||||
.sheet-rolltemplate-2Einversecheck td.sheet-check-c1,
|
||||
.sheet-rolltemplate-2Egrenademiss td.sheet-check-c1 {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
/*#endregion*/
|
||||
/*#region Styles for the 2Egrenade Template /*/
|
||||
.sheet-rolltemplate-2Egrenademiss .sheet-template-head {
|
||||
@@ -430,6 +414,8 @@
|
||||
}
|
||||
.sheet-rolltemplate-2Egrenademiss td.sheet-grenade-c1 {
|
||||
font-size: 9pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
.sheet-rolltemplate-2Egrenademiss .sheet-hit-text {
|
||||
font-size: 10pt;
|
||||
@@ -464,21 +450,47 @@
|
||||
}
|
||||
|
||||
/*#endregion*/
|
||||
/*#region Styles for the 2Epsionic Template*/
|
||||
.sheet-rolltemplate-2Epsionic td.sheet-check-c1 {
|
||||
width: 50%;
|
||||
/*#region Roll checks Template*/
|
||||
.sheet-rolltemplate-2Espell tr.sheet-check,
|
||||
.sheet-rolltemplate-2Esave tr.sheet-check,
|
||||
.sheet-rolltemplate-2Echeck tr.sheet-check,
|
||||
.sheet-rolltemplate-2Einversecheck tr.sheet-check,
|
||||
.sheet-rolltemplate-2Egrenademiss tr.sheet-check,
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-check {
|
||||
border: none;
|
||||
}
|
||||
.sheet-rolltemplate-2Espell tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Esave tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Echeck tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Einversecheck tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Egrenademiss tr.sheet-check td,
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-check td {
|
||||
font-size: 10pt;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border: none;
|
||||
}
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-border-none td {
|
||||
border: none;
|
||||
.sheet-rolltemplate-2Espell tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Esave tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Echeck tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Einversecheck tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Egrenademiss tr.sheet-check td:nth-child(odd),
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-check td:nth-child(odd) {
|
||||
width: 50%;
|
||||
}
|
||||
.sheet-rolltemplate-2Espell tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Esave tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Echeck tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Einversecheck tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Egrenademiss tr.sheet-check td:nth-child(even),
|
||||
.sheet-rolltemplate-2Epsionic tr.sheet-check td:nth-child(even) {
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
/*#endregion*/
|
||||
/*#region Success, Failure, Info sections*/
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-body .sheet-template-result,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-body .sheet-template-result,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-body .sheet-template-result,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-body .sheet-template-result,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-body .sheet-template-result,
|
||||
@@ -491,6 +503,7 @@
|
||||
color: #ffffff;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-body .sheet-template-result .inlinerollresult,
|
||||
@@ -500,6 +513,7 @@
|
||||
border: none;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-body .sheet-template-result span.sheet-template-result-description,
|
||||
@@ -510,6 +524,7 @@
|
||||
padding: 2px;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-success,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-success,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-success,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-success,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-success,
|
||||
@@ -518,6 +533,7 @@
|
||||
background-color: #093a01;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-failure,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-failure,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-failure,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-failure,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-failure,
|
||||
@@ -526,6 +542,7 @@
|
||||
background-color: #a01616;
|
||||
}
|
||||
.sheet-rolltemplate-2Eattack .sheet-template-info,
|
||||
.sheet-rolltemplate-2Espell .sheet-template-info,
|
||||
.sheet-rolltemplate-2Esave .sheet-template-info,
|
||||
.sheet-rolltemplate-2Echeck .sheet-template-info,
|
||||
.sheet-rolltemplate-2Einversecheck .sheet-template-info,
|
||||
|
||||
@@ -100,56 +100,175 @@ Priests. DMG p. 121
|
||||
Druids
|
||||
- Druids with 3 proficiency slots in the Herbalism Nonweapon proficiency can create magical herbal brews. The Complete Druid's Handbook p. 103
|
||||
|
||||
// minimum double devotions compared to sciences
|
||||
// same ability can be relearned instead of a new ability (maybe track "slots" put into single ability)
|
||||
Player's Handbook (First Printing May 2013)
|
||||
Wizard
|
||||
Sepia Snake Sigil - Fixed broken tab character
|
||||
Spectral Force - Fixed broken area of effect calculation
|
||||
Water Breathing - Fixed broken calculation preventing the spell from printing
|
||||
Wind Wall - Fixed broken calculation preventing the spell from printing
|
||||
Wraithform - Fixed broken calculation preventing the spell from printing
|
||||
Fire Shield - Fixed broken calculation preventing the spell from printing
|
||||
Monster Summoning II - Fixed broken calculation preventing the spell from printing
|
||||
Wall of Fire - Fixed area of effect calculation to calculate the number of sheets. This reduces the overall area of effect by an order of magnitude
|
||||
Summon shadow - Fixed broken calculation preventing the spell from printing
|
||||
Chaos - Fixed broken tab character
|
||||
Seeming - Fixed broken calculation preventing the spell from printing
|
||||
|
||||
// base PSP: 20 + (wiz-15*2) + (int-15) + (con-15) (only positive numbers, kh1)
|
||||
// PSP Advancement: level-1 * (10 + (wiz-15)kl1)
|
||||
Priest
|
||||
Wall of Fire - Fixed area of effect calculation to calculate the number of sheets. This reduces the overall area of effect by an order of magnitude
|
||||
|
||||
// defense modes does not require Telepathic disciplines, learned at 1,3,5,7,9. 1 + (level-1/2) round down
|
||||
// defense modes do not count towards the max number of powers
|
||||
// defense modes are counted towards the number of disciplines in Telepathic... maybe?
|
||||
Complete Fighter's Handbook (11th Printing, May 1996)
|
||||
One / two handed javelin changed to medium size - Book update
|
||||
One / two handed stone javelin changed to medium size - Book update
|
||||
|
||||
// Thac0 as rogues
|
||||
// saving throws unique, +2 vs enchantment/charm spells
|
||||
Complete Wizard's Handbook (10th printing, March 1996)
|
||||
Jitte change size to small - typo
|
||||
Shuriken changed ROF to 2/1 - book update
|
||||
Detect Disease - scaling no longer goes above 100% chance
|
||||
Choke - fixed whitespace
|
||||
Detect life - fixed range scaling and missing material components - typo
|
||||
Hovering skull - added M for material component - book update
|
||||
Pain Touch - changed school to Necromancy - book update
|
||||
Force Shaprechange - changed damage when save is made - book update
|
||||
Bone club - Updated effect about clubs not being available to wizards - Book update
|
||||
Wind breath - Updated how damage is displayed
|
||||
Force Shapechange - Updated casting speed to 5 - Book update
|
||||
Force Shapechange - Updated damage to always be 3d10 - Book update
|
||||
|
||||
// Psionic power options: Reduce power score based on armor
|
||||
Complete Psionics Handbook (Ninth printing: October 1996)
|
||||
Added the Power Score as written in the book to the template output
|
||||
Fixed whitespace when a power has 1 round of prep to say "1 round" instead of "1round"
|
||||
All-round vision - Fixed linebreak mid-sentence
|
||||
Clairvoyance - Fixed linebreak mid-sentence
|
||||
Precognition - Added 20 effect to be displayed by the template
|
||||
Danger Sense - Added 1 effect to be displayed by the template
|
||||
Know Direction - Fixed linebreak mid-sentence
|
||||
Spirit Sense - Corrected description to state that it sense noncorporeal undead - Book update
|
||||
Create Object - Fixed table in effect text
|
||||
Detonate - Fixed linebreak mid-sentence
|
||||
Animate Object - Fixed table header - Book update
|
||||
Create Sound - Power Score modifier changed to -2 from -7 - Book update
|
||||
Inertial Barrier - Fixed linebreak mid-sentence
|
||||
Molecular Agitation - Added that only magical items gets a +10 modifier - Book update
|
||||
Molecular Agitation - Corrected the displayed damage to match the effect text - typo
|
||||
Animal Affinity - Added missing linebreak - typo
|
||||
Flesh Armor - Added clarification that the armor is nonmagical - Book Update
|
||||
Flesh Armor - Added clarification that this power works with rings of protection - Book Update
|
||||
Probability Travel - changed reference to the Planescape accessory - Book update
|
||||
Probability Travel - Fixed linebreak mid-sentence
|
||||
Summon Planar Creature - Updated book references - Book update
|
||||
Teleport - Fixed table so that PSP cost starts at 10 PSP - Book update
|
||||
Astral Projection - changed reference to the Planescape accessory - Book update
|
||||
Dream Travel - Calculate the aount of PSP used based on passengers
|
||||
Probe - Removed Mindlink as a prerequisite
|
||||
Contact - Added missing bold styling to text
|
||||
Empathy - Added missing Power Score effect
|
||||
Appraise - Fixed linebreak mid-sentence
|
||||
Ultrablast - Fixed linebreak mid-sentence
|
||||
Intensify - Made popup options more readable
|
||||
Psychic Drain - Updated psionic potential description - Book update
|
||||
Wrench - Fixed page number - typo
|
||||
|
||||
// weapon Proficiencies: 2 (5, 10, 15, ...) -4 penalty
|
||||
// nonweapon prof: 3 (3,6,9, ...)
|
||||
Tome of Magic (Seventh Printing: March, 1996)
|
||||
Maximilian's Earthen Grasp - School changed to Alteration - Book update
|
||||
There/Not There - Fixed page number
|
||||
Turn Pebble to Boulder - Fixed reverse spell calculation
|
||||
Khazid's Procurement - Fixed presentation of table
|
||||
Lower Resistance - Fixed spelling error in turn
|
||||
Waveform - Fixed area of effect calculations
|
||||
Bloodstone's Spectral Steed - Added number of passengers calculation
|
||||
Acid Storm - Added how acid damage can be healed - Typo
|
||||
Airboat - Changed movement rate from mile per hour calculation to movement rate 21 - Book update
|
||||
Gunther's Kaleidoscopic Strike - Fixed broken calculation
|
||||
Homunculus Shield - Fixed hp calculations - Typo
|
||||
Elemental Aura - Greatly improve the presentation of the table data
|
||||
Estate Transference - Updated area of effect from 1000 square feet to 1 square mile per level - Book update
|
||||
Wail of the Banshee - Fixed linebreak mid-sentence and fixed missing description text
|
||||
Wildfire - Fixed page number - type
|
||||
Analyze Balance - Fixed calculation to no longer go above 100%
|
||||
Personal Reading - Greatly improve the presentation of the table data
|
||||
Emotion Perception - Added level scaling for area of effect. Minimum 1 unit as the spell would do nothing before level 5 which would make no sense.
|
||||
Emotion Control - Added level scaling for saving throw bonus
|
||||
Random Causality - Corrected Duration and Casting time as per - Sage Advice #247 update
|
||||
Rigid Thinking - Corrected "in capable" to "incapable"
|
||||
Unearthly Choir - Added damage for quick reference
|
||||
Defensive Harmony - Fixed area of effect calculation
|
||||
Probability Control - Fixed modification calculation from 5% per level to 5% per 5 levels.
|
||||
Age Object - Fixed broken level scaling calculation
|
||||
Barrier of Retention - Corrected area of effect calculation
|
||||
Time Pool - Improve presentation of bullet point list
|
||||
Crushing Walls - Fixed area of effect from square feet to foot square. This increases the area of effect by an order of magnitude
|
||||
The Great Circle - Added damage overview
|
||||
Spiritual Wrath - Added self damage to the caster, to the damage overview
|
||||
Mind Tracker - Added material components
|
||||
Uncontrolled Weather - No longer rolls area of effect, as it should be done by the DM
|
||||
Circle of Sunmotes - Added damage type
|
||||
Revelation - Fixed linebreak mid-sentence
|
||||
Sphere of Security - Fixed calculation that prevented spell from printing
|
||||
Spiral of Degeneration - Added missing bullet point in effect description - Typo
|
||||
Undead Plague - Removed calculated level scaling as it is unclear how it should be calculated
|
||||
|
||||
// defense modes are available, does not require telepathic to all and is learned at
|
||||
// attack modes are learned like any other power
|
||||
// attack vs defense mode table
|
||||
Complete Book of Dwarves (November 1993)
|
||||
Lip Reading (Dwarf) - Modifier changed from 0 to -2 - Typo
|
||||
|
||||
// dark sun campaign box set (1991) says above 20 removes 20 negative effect and power score effect.
|
||||
// dark sun Will and the Way (1994) if power score is 20 or above -> reduce to 19, and 20 is normal failure
|
||||
// enhanced powers have a range for power scores, and remove the minimum effect of 1
|
||||
Complete Book of Humanoids (Sixth printing, March 1999)
|
||||
Crowd Working - Version added from this book with modifier of +2
|
||||
Naginata - S/M damage changed to 1d8. L damage changed to 1d10 - Typo
|
||||
Finhead broadsword - Added new weapon - Book update
|
||||
|
||||
Complete Ranger's Handbook (Fifth printing, July 1995)
|
||||
Cartography - Changed ability to score to Int and modifier to -2 - Typo
|
||||
|
||||
// Telepathic defense modes have no prerequisites: intellect fortress, mental barrier, mind blank, thought shield, tower of iron will
|
||||
//
|
||||
// Ego Whip has contact as a prerequisite
|
||||
//
|
||||
// p. 75 The heading for the "Fate Link" power is missing
|
||||
//
|
||||
// Mindlink
|
||||
//
|
||||
// Mindlink is not a prerequisite for the following telepathic devotions: empathy, ESP, identity penetration, incarnation awareness, psychic impersonation, send thoughts.
|
||||
//
|
||||
// Mindlink has never been a prerequisite for: ejection, conceal thoughts, contact, life detection, mind bar, psionic blast, and psychic messenger
|
||||
//
|
||||
// Mindlink is a prerequisite for all other telepathic powers.
|
||||
//
|
||||
// All references to the "telepathy" power should be to the "mindlink" power.
|
||||
//
|
||||
// Mind thrust has contact as a prerequisite.
|
||||
//
|
||||
// Psionic blast is a science.
|
||||
//
|
||||
// Psychic crush is a devotion.
|
||||
//
|
||||
// Psychokinesis: The following PK devotions do not require telekinesis as a prerequisite: animate shadow, control light, control sound, molecular agitation, soften, telekinesis.
|
||||
Complete Druid's Handbook
|
||||
Beastmask - Fixed page number - Typo
|
||||
Animal Spy - Clarified that only wizard familiars can save vs. spell - Typo
|
||||
Fortifying Stew - Added calculation for ounces of stew enchanted
|
||||
Fortifying Stew - Added sheet authors's note to tell that calculations have been changed
|
||||
Shape Wood - Fixed calculation for area of effect, adding together static and scaling part
|
||||
Earthmaw - Added calculation for what hit dice the monster attacks as, and what its THAC0 is
|
||||
|
||||
Complete Barbarian's Handbook
|
||||
Sign Language - Corrected ability score from Charisma to Dexterity - Typo
|
||||
Jumping - Added Barbarian specific version
|
||||
Tightrope Walking - Added Barbarian specific version
|
||||
Tumbling - Added Barbarian specific version
|
||||
Horde Summoning - Changed modifier from 0 to -2
|
||||
|
||||
Check: probe, psionic sense,
|
||||
Complete Book of Necromancers
|
||||
Animate Dead Animals - Fixed animated skeletons Hit dice from 1-4 to ¼ - Typo
|
||||
Living Link - Limited number of senses calculation to 5.
|
||||
Empathic Wound Transfer - Set amount of healing / self damage leave the caster at 1 hp, instead of 0, because at 0 you would be dead (if not using deaths door rule)
|
||||
Transmute Bone to Steel - Fixed linebreak mid-sentence
|
||||
Death Ward - Fixed page number
|
||||
Spectral Senses - Change level scaling to follow priest levels instead of wizard levels
|
||||
Resist Turning - Full of errors. More research needed
|
||||
Death's Door - Fixed page number
|
||||
Undead Alacrity - Change level scaling to follow priest levels instead of wizard levels
|
||||
Plague Curse - Added calculation for how many lives the plague kills
|
||||
Asphyxiate - Corrected damage to depend on Constitution check instead of saving throw
|
||||
|
||||
Complete Ninjas Handbook (2nd printing, March 1996)
|
||||
Featherfoot - Swapped duration and casting time as increasing casting time with level did not make sense. This is highlighted with a sheet authors note
|
||||
Fixed sling, Stone long range to 160 from 1600 yards - Typo
|
||||
Fixed staff sling, stone long range to 90 yards from 200 yards - Typo
|
||||
Improved Mirror Image - Removed incorrect quote character - typo
|
||||
Chu-ko-nu - Change ammo size to medium - Typo
|
||||
Light crossbow - Change ammo size to medium, and weapon size to small - Typo
|
||||
Metsubishi (blinding powders) - Rate of fire changed to 1/3 - Typo
|
||||
Bokken, Two-handed (wooden sword) - Changed S/M damage to 1d6 - Typo
|
||||
Bokken, Two-handed (wooden sword) - Changed L damage to 1d3 - Typo
|
||||
|
||||
Default casting level for items:
|
||||
Scrolls - typically one level higher than that required to cast the spell, never below 6th level - DMG p. 196 and Clarified in Dragon Magazine #248 Sage Advice
|
||||
Rings - 12th level unless the power requires a higher level. In that case it functions at minimum level to use the magic. DMG p. 198
|
||||
Rods - DMG: Not mentioned. 12th level or minimum level. FGaG p. 230
|
||||
Staves - 8th level unless otherwise stated. DMG p. 207
|
||||
Wands - 6th level unless otherwise stated. DMG p. 210
|
||||
|
||||
AD&D 2E Errata wayback machine
|
||||
http://www.wizards.com/dnd/DnDPlayersHandbook2ndEditionErrata.asp
|
||||
http://www.wizards.com/dnd/DnDDMGErrata.asp
|
||||
http://www.wizards.com/dnd/DnDPlayersOptionSkillsPowersErrata.asp
|
||||
http://www.wizards.com/dnd/DnDPlayersOptionSkillsPowers2ndErrata.asp
|
||||
http://www.wizards.com/dnd/DnDPlayersOptionSkillsPowers3rdErrata.asp
|
||||
http://www.wizards.com/dnd/DnDPlayersOptionCombatTacticsErrata.asp
|
||||
@@ -1,6 +1,6 @@
|
||||
<div>
|
||||
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ADnD_2E_Revised/img/sheet-logo.png" style="max-height: 70px;" alt="AD&D Logo"/>
|
||||
<input type="text" name="attr_version" class="sheet-version-right" readonly/>
|
||||
<span style="float: right;" name="attr_version"></span>
|
||||
</div>
|
||||
<br>
|
||||
insert_changelog.html
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
<div aria-label="Announces changes to sheet">
|
||||
<input type="checkbox" class="sheet-show-announcement" value="1" title="Show Announcements" name="attr_announcement"/><span></span><b style="color:red;" title="Show Announcements">Announcements</b>
|
||||
<div class="sheet-announcement">
|
||||
<h2 style="color: black;">Changes in <input type="text" name="attr_version" class="sheet-version-large" readonly/></h2>
|
||||
<h2 style="color: black;">Changes in <span name="attr_version"></span></h2>
|
||||
<div class="sheet-announce-items">
|
||||
<ul style="font-style:italic">
|
||||
<li>Fixed Magic resistance calculations for players and monsters so that a positive modifier makes the check easier to make</li>
|
||||
<li>Fixed autofill for simple magic weapons where the bonus is inserted in a spot without a whitespace. Here are some examples that have been fixed:
|
||||
<ul>
|
||||
<li>"Short bow, Flight Arrow" -> "Short bow +1, Flight Arrow"</li>
|
||||
<li>"Bastard sword, One-handed" -> "Bastard sword +2, One-handed"</li>
|
||||
<li>"Katana, One-handed (samurai long sword)" -> "Katana +1, One-handed (samurai long sword)"</li>
|
||||
<li>"Sling, Bullet" -> "Sling +1, Bullet"</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<p>
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<tr>
|
||||
<td colspan="100" class="sheet-template-result sheet-template-#REPLACE0#">
|
||||
#REPLACE1#
|
||||
{{##REPLACE2#}}
|
||||
<br>
|
||||
<span class="sheet-template-result-description">{{#REPLACE2#}}</span>
|
||||
{{/#REPLACE2#}}
|
||||
</td>
|
||||
</tr>
|
||||
@@ -207,6 +207,10 @@
|
||||
<option value="Kobold">Dwarf/Gnome</option>
|
||||
<option value="Orc">Dwarf/Elf//Half-Elf/Halfling</option>
|
||||
<option value="Common Burrowing mammals">Gnome</option>
|
||||
<option value="Deep tongue (under-common)">Dwarf</option>
|
||||
<option value="Drow">Dwarf</option>
|
||||
<option value="Troll">Dwarf</option>
|
||||
<option value="Ogre">Dwarf</option>
|
||||
<option value="Druidic">Druid</option>
|
||||
<option value="Centaurs">Druid</option>
|
||||
<option value="Dryads">Druid</option>
|
||||
@@ -233,6 +237,10 @@
|
||||
<option value="Kobold"></option>
|
||||
<option value="Orc"></option>
|
||||
<option value="Common Burrowing mammals"></option>
|
||||
<option value="Deep tongue (under-common)"></option>
|
||||
<option value="Drow"></option>
|
||||
<option value="Troll"></option>
|
||||
<option value="Ogre"></option>
|
||||
<option value="Druidic"></option>
|
||||
<option value="Centaurs"></option>
|
||||
<option value="Dryads"></option>
|
||||
|
||||
@@ -86,26 +86,11 @@
|
||||
<td><b>AC Hit</b></td>
|
||||
</tr>
|
||||
{{#rollWasCrit() ac_hit}}
|
||||
<tr>
|
||||
<td colspan="3" class="sheet-template-result sheet-template-success">
|
||||
CRITICAL HIT!
|
||||
<br>
|
||||
{{#crit}}
|
||||
<span class='sheet-template-result-description'>{{crit}}</span>
|
||||
{{/crit}}
|
||||
</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,CRITICAL HIT!,crit)
|
||||
{{/rollWasCrit() ac_hit}}
|
||||
|
||||
{{#rollWasFumble() ac_hit}}
|
||||
<tr>
|
||||
<td colspan="3" class="sheet-template-result sheet-template-failure">
|
||||
FUMBLE!
|
||||
<br>
|
||||
{{#fumble}}
|
||||
<span class='sheet-template-result-description'>{{fumble}}</span>
|
||||
{{/fumble}}
|
||||
</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,FUMBLE!,fumble)
|
||||
{{/rollWasFumble() ac_hit}}
|
||||
</table>
|
||||
</div>
|
||||
@@ -132,64 +117,73 @@
|
||||
<div class="sheet-template-body">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Range</span><br>{{range}}</td>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Components</span><br>{{components}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3"><span class="sheet-spell-prop">Range</span><br>{{range}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3"><span class="sheet-spell-prop">Components</span><br>{{components}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Duration</span><br>{{duration}}</td>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Casting Time</span><br>{{time}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3"><span class="sheet-spell-prop">Duration</span><br>{{duration}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3">
|
||||
{{#scroll}}
|
||||
<span class="sheet-spell-prop">Reading Time</span>
|
||||
{{/scroll}}
|
||||
{{^scroll}}
|
||||
<span class="sheet-spell-prop">Casting Time</span>
|
||||
{{/scroll}}
|
||||
<br>
|
||||
{{time}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Area of Effect</span><br>{{aoe}}</td>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Saving Throw</span><br>{{save}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3"><span class="sheet-spell-prop">Area of Effect</span><br>{{aoe}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3"><span class="sheet-spell-prop">Saving Throw</span><br>{{save}}</td>
|
||||
</tr>
|
||||
{{#subtlety}}
|
||||
{{#sensory}}
|
||||
<tr>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Casting Subtlety</span><br>{{subtlety}}</td>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Sensory Signature</span><br>{{sensory}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3"><span class="sheet-spell-prop">Casting Subtlety</span><br>{{subtlety}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3"><span class="sheet-spell-prop">Sensory Signature</span><br>{{sensory}}</td>
|
||||
</tr>
|
||||
{{/sensory}}
|
||||
{{/subtlety}}
|
||||
{{#subtlety}}
|
||||
{{^sensory}}
|
||||
<tr>
|
||||
<td class="sheet-spell-c1" colspan="2"><span class="sheet-spell-prop">Casting Subtlety</span><br>{{subtlety}}</td>
|
||||
<td class="sheet-spell-c1" colspan="6"><span class="sheet-spell-prop">Casting Subtlety</span><br>{{subtlety}}</td>
|
||||
</tr>
|
||||
{{/sensory}}
|
||||
{{/subtlety}}
|
||||
{{^subtlety}}
|
||||
{{#sensory}}
|
||||
<tr>
|
||||
<td class="sheet-spell-c1" colspan="2"><span class="sheet-spell-prop">Sensory Signature</span><br>{{sensory}}</td>
|
||||
<td class="sheet-spell-c1" colspan="6"><span class="sheet-spell-prop">Sensory Signature</span><br>{{sensory}}</td>
|
||||
</tr>
|
||||
{{/sensory}}
|
||||
{{/subtlety}}
|
||||
{{#knockdown}}
|
||||
{{#crit}}
|
||||
<tr>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Knockdown</span><br>{{knockdown}}</td>
|
||||
<td class="sheet-spell-c1"><span class="sheet-spell-prop">Critical Strikes</span><br>{{crit}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3"><span class="sheet-spell-prop">Knockdown</span><br>{{knockdown}}</td>
|
||||
<td class="sheet-spell-c1" colspan="3"><span class="sheet-spell-prop">Critical Strikes</span><br>{{crit}}</td>
|
||||
</tr>
|
||||
{{/crit}}
|
||||
{{/knockdown}}
|
||||
{{#knockdown}}
|
||||
{{^crit}}
|
||||
<tr>
|
||||
<td class="sheet-spell-c1" colspan="2"><span class="sheet-spell-prop">Knockdown</span><br>{{knockdown}}</td>
|
||||
<td class="sheet-spell-c1" colspan="6"><span class="sheet-spell-prop">Knockdown</span><br>{{knockdown}}</td>
|
||||
</tr>
|
||||
{{/crit}}
|
||||
{{/knockdown}}
|
||||
{{^knockdown}}
|
||||
{{#crit}}
|
||||
<tr>
|
||||
<td class="sheet-spell-c1" colspan="2"><span class="sheet-spell-prop">Critical Strikes</span><br>{{crit}}</td>
|
||||
<td class="sheet-spell-c1" colspan="6"><span class="sheet-spell-prop">Critical Strikes</span><br>{{crit}}</td>
|
||||
</tr>
|
||||
{{/crit}}
|
||||
{{/knockdown}}
|
||||
{{#damage}}
|
||||
<tr>
|
||||
<td colspan="2" class="sheet-spell-c1"><span class="sheet-spell-prop">Damage: </span>
|
||||
<td colspan="6" class="sheet-spell-c1"><span class="sheet-spell-prop">Damage: </span>
|
||||
{{damage}}
|
||||
{{#rollGreater() d2t 0}}{{d2}}{{/rollGreater() d2t 0}}
|
||||
{{#rollGreater() d3t 0}}{{d3}}{{/rollGreater() d3t 0}}
|
||||
@@ -208,19 +202,42 @@
|
||||
{{/damage}}
|
||||
{{#healing}}
|
||||
<tr>
|
||||
<td colspan="2" class="sheet-spell-c1"><span class="sheet-spell-prop">Healing: </span>{{healing}}</td>
|
||||
<td colspan="6" class="sheet-spell-c1"><span class="sheet-spell-prop">Healing: </span>{{healing}}</td>
|
||||
</tr>
|
||||
{{/healing}}
|
||||
{{#reference}}
|
||||
<tr>
|
||||
<td colspan="2" class="sheet-spell-c1"><span class="sheet-spell-prop">Reference: </span>{{reference}}</td>
|
||||
<td colspan="6" class="sheet-spell-c1"><span class="sheet-spell-prop">Reference: </span>{{reference}}</td>
|
||||
</tr>
|
||||
{{/reference}}
|
||||
{{#materials}}
|
||||
<tr>
|
||||
<td colspan="2" class="sheet-spell-c1"><span class="sheet-spell-prop">Spell Materials: </span>{{materials}}</td>
|
||||
<td colspan="6" class="sheet-spell-c1"><span class="sheet-spell-prop">Spell Materials: </span>{{materials}}</td>
|
||||
</tr>
|
||||
{{/materials}}
|
||||
{{#rollGreater() checktarget 0}}
|
||||
<tr class="sheet-check">
|
||||
<td colspan="2">Roll</td>
|
||||
<td colspan="2"></td>
|
||||
<td colspan="2">Failure Target</td>
|
||||
</tr>
|
||||
<tr class="sheet-check">
|
||||
<td colspan="2">{{checkroll}}</td>
|
||||
<td colspan="2">></td>
|
||||
<td colspan="2">{{checktarget}}</td>
|
||||
</tr>
|
||||
{{#rollTotal() checkroll checktarget}}
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/rollTotal() checkroll checktarget}}
|
||||
|
||||
{{#rollLess() checkroll checktarget}}
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/rollLess() checkroll checktarget}}
|
||||
|
||||
{{#rollGreater() checkroll checktarget}}
|
||||
insert_check-result.html_(success,Success!,success)
|
||||
{{/rollGreater() checkroll checktarget}}
|
||||
{{/rollGreater() checktarget 0}}
|
||||
{{#effects}}
|
||||
insert_rolltemplate-effects.html
|
||||
{{/effects}}
|
||||
@@ -273,30 +290,26 @@
|
||||
</div>
|
||||
<div class="sheet-template-body">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="sheet-check-c1">Roll</td>
|
||||
<tr class="sheet-check">
|
||||
<td>Roll</td>
|
||||
<td></td>
|
||||
<td class="sheet-check-c1">Target</td>
|
||||
<td>Target</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="sheet-check">
|
||||
<td>{{saveroll}}</td>
|
||||
<td>≥</td>
|
||||
<td>{{savetarget}}</td>
|
||||
</tr>
|
||||
{{#rollTotal() saveroll savetarget}}
|
||||
<tr>
|
||||
<td class="sheet-template-result sheet-template-success" colspan="3">Success!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Success!,success)
|
||||
{{/rollTotal() saveroll savetarget}}
|
||||
|
||||
{{#rollGreater() saveroll savetarget}}
|
||||
<tr>
|
||||
<td class="sheet-template-result sheet-template-success" colspan="3">Success!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Success!,success)
|
||||
{{/rollGreater() saveroll savetarget}}
|
||||
|
||||
{{#rollLess() saveroll savetarget}}
|
||||
<tr>
|
||||
<td class="sheet-template-result sheet-template-failure" colspan="3">Failed!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/rollLess() saveroll savetarget}}
|
||||
</table>
|
||||
</div>
|
||||
@@ -317,30 +330,26 @@
|
||||
</div>
|
||||
<div class="sheet-template-body">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="sheet-check-c1">Roll</td>
|
||||
<tr class="sheet-check">
|
||||
<td>Roll</td>
|
||||
<td></td>
|
||||
<td class="sheet-check-c1">Target</td>
|
||||
<td>Target</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="sheet-check">
|
||||
<td>{{checkroll}}</td>
|
||||
<td>≤</td>
|
||||
<td>{{checktarget}}</td>
|
||||
</tr>
|
||||
{{#rollTotal() checkroll checktarget}}
|
||||
<tr>
|
||||
<td class="sheet-template-result sheet-template-success" colspan="3">Success!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Success!,success)
|
||||
{{/rollTotal() checkroll checktarget}}
|
||||
|
||||
{{#rollLess() checkroll checktarget}}
|
||||
<tr>
|
||||
<td class="sheet-template-result sheet-template-success" colspan="3">Success!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Success!,success)
|
||||
{{/rollLess() checkroll checktarget}}
|
||||
|
||||
{{#rollGreater() checkroll checktarget}}
|
||||
<tr>
|
||||
<td class="sheet-template-result sheet-template-failure" colspan="3">Failed!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/rollGreater() checkroll checktarget}}
|
||||
</table>
|
||||
</div>
|
||||
@@ -361,30 +370,26 @@
|
||||
</div>
|
||||
<div class="sheet-template-body">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="sheet-check-c1">Roll</td>
|
||||
<tr class="sheet-check">
|
||||
<td>Roll</td>
|
||||
<td></td>
|
||||
<td class="sheet-check-c1">Target</td>
|
||||
<td>Target</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr class="sheet-check">
|
||||
<td>{{checkroll}}</td>
|
||||
<td>></td>
|
||||
<td>{{checktarget}}</td>
|
||||
</tr>
|
||||
{{#rollTotal() checkroll checktarget}}
|
||||
<tr>
|
||||
<td class="sheet-template-result sheet-template-failure" colspan="3">Fail!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/rollTotal() checkroll checktarget}}
|
||||
|
||||
{{#rollLess() checkroll checktarget}}
|
||||
<tr>
|
||||
<td class="sheet-template-result sheet-template-failure" colspan="3">Fail!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/rollLess() checkroll checktarget}}
|
||||
|
||||
{{#rollGreater() checkroll checktarget}}
|
||||
<tr>
|
||||
<td class="sheet-template-result sheet-template-success" colspan="3">Success!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Success!,success)
|
||||
{{/rollGreater() checkroll checktarget}}
|
||||
</table>
|
||||
</div>
|
||||
@@ -396,7 +401,7 @@
|
||||
<div class="sheet-template-head {{color}}">
|
||||
<table>
|
||||
<tr>
|
||||
<th>Grenadelike miss for {{name}}</th>
|
||||
<th>Grenade-like miss for {{name}}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
@@ -421,15 +426,9 @@
|
||||
{{#rollTotal() direction 7}}
|
||||
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ADnD_2E_Revised/img/rolltemplate/scatter-diagram-7.png" style="width: 100%;" alt="scatter diagram"/>
|
||||
{{/rollTotal() direction 7}}
|
||||
{{#rollTotal() direction 8}}
|
||||
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ADnD_2E_Revised/img/rolltemplate/scatter-diagram-8.png" style="width: 100%;" alt="scatter diagram"/>
|
||||
{{/rollTotal() direction 8}}
|
||||
{{#rollTotal() direction 9}}
|
||||
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ADnD_2E_Revised/img/rolltemplate/scatter-diagram-9.png" style="width: 100%;" alt="scatter diagram"/>
|
||||
{{/rollTotal() direction 9}}
|
||||
{{#rollTotal() direction 10}}
|
||||
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ADnD_2E_Revised/img/rolltemplate/scatter-diagram-10.png" style="width: 100%;" alt="scatter diagram"/>
|
||||
{{/rollTotal() direction 10}}
|
||||
{{#rollBetween() direction 8 10}}
|
||||
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ADnD_2E_Revised/img/rolltemplate/scatter-diagram-8-10.png" style="width: 100%;" alt="scatter diagram"/>
|
||||
{{/rollBetween() direction 8 10}}
|
||||
{{#^rollBetween() direction 1 10}}
|
||||
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/ADnD_2E_Revised/img/rolltemplate/scatter-diagram.png" style="width: 100%;" alt="scatter diagram"/>
|
||||
{{/^rollBetween() direction 1 10}}
|
||||
@@ -441,37 +440,37 @@
|
||||
<table>
|
||||
<tr>
|
||||
<td class="sheet-grenade-c1">Direction:</td>
|
||||
<td>{{direction}}</td>
|
||||
<td class="sheet-grenade-c1">{{direction}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="sheet-grenade-c1">Distance ({{distancename}}):</td>
|
||||
<td>{{distance}} feet</td>
|
||||
<td class="sheet-grenade-c1">{{distance}} Feet</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="sheet-grenade-c1 sheet-ignore-inlineroll">Direct Hit:<br>({{aoe}} Feet Diameter)</td>
|
||||
{{#^rollBetween() computed::hit 0 0}}
|
||||
{{#rollTotal() computed::hit 1}}
|
||||
<td class="sheet-template-result sheet-template-success sheet-ignore-inlineroll">Hit!<br><span class="sheet-hit-text">{{hitdmg}}</span></td>
|
||||
{{/^rollBetween() computed::hit 0 0}}
|
||||
{{#rollBetween() computed::hit 0 0}}
|
||||
{{/rollTotal() computed::hit 1}}
|
||||
{{#rollTotal() computed::hit 0}}
|
||||
<td class="sheet-template-result sheet-template-failure sheet-ignore-inlineroll">Miss!<br><span class="sheet-miss-text">{{hitdmg}}</span></td>
|
||||
{{/rollBetween() computed::hit 0 0}}
|
||||
{{/rollTotal() computed::hit 0}}
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="sheet-grenade-c1 sheet-ignore-inlineroll">Splash Hit:<br>({{aoesplash}} Feet Diameter)</td>
|
||||
<!-- Direct hit is true -->
|
||||
{{#^rollBetween() computed::hit 0 0}}
|
||||
{{#rollTotal() computed::hit 1}}
|
||||
<td class="sheet-template-result sheet-template-info sheet-ignore-inlineroll sheet-hit-text">Info<br><span class="sheet-miss-text">{{splashdmg}}</span></td>
|
||||
{{/^rollBetween() computed::hit 0 0}}
|
||||
{{/rollTotal() computed::hit 1}}
|
||||
|
||||
<!-- Direct hit is false -->
|
||||
{{#rollBetween() computed::hit 0 0}}
|
||||
{{#^rollBetween() computed::splash 0 0}}
|
||||
{{#rollTotal() computed::hit 0}}
|
||||
{{#rollTotal() computed::splash 1}}
|
||||
<td class="sheet-template-result sheet-template-success sheet-ignore-inlineroll">Hit!<br><span class="sheet-hit-text">{{splashdmg}}</span></td>
|
||||
{{/^rollBetween() computed::splash 0 0}}
|
||||
{{#rollBetween() computed::splash 0 0}}
|
||||
{{/rollTotal() computed::splash 1}}
|
||||
{{#rollTotal() computed::splash 0}}
|
||||
<td class="sheet-template-result sheet-template-failure sheet-ignore-inlineroll">Miss!<br><span class="sheet-miss-text">{{splashdmg}}</span></td>
|
||||
{{/rollBetween() computed::splash 0 0}}
|
||||
{{/rollBetween() computed::hit 0 0}}
|
||||
{{/rollTotal() computed::splash 0}}
|
||||
{{/rollTotal() computed::hit 0}}
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
@@ -684,6 +683,11 @@
|
||||
</div>
|
||||
<div class="sheet-template-body">
|
||||
<table>
|
||||
{{#powerscoretext}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-spell-c1"><span class="sheet-spell-prop">Power Score:</span> {{powerscoretext}}</td>
|
||||
</tr>
|
||||
{{/powerscoretext}}
|
||||
{{#initial}}
|
||||
{{#maintenance}}
|
||||
<tr>
|
||||
@@ -737,15 +741,15 @@
|
||||
<td colspan="6" class="sheet-spell-c1"><span class="sheet-spell-prop">Reference: </span>{{reference}}</td>
|
||||
</tr>
|
||||
{{/reference}}
|
||||
<tr class="sheet-border-none">
|
||||
<td colspan="2" class="sheet-check-c1">Roll</td>
|
||||
<td colspan="2" style="width: 1%;"></td>
|
||||
<td colspan="2" class="sheet-check-c1">Power Score</td>
|
||||
<tr class="sheet-check">
|
||||
<td colspan="2">Roll</td>
|
||||
<td colspan="2"></td>
|
||||
<td colspan="2">Power Score</td>
|
||||
</tr>
|
||||
<tr class="sheet-border-none">
|
||||
<td colspan="2" class="sheet-check-c1">{{powerroll}}</td>
|
||||
<tr class="sheet-check">
|
||||
<td colspan="2">{{powerroll}}</td>
|
||||
<td colspan="2">≤</td>
|
||||
<td colspan="2" class="sheet-check-c1">
|
||||
<td colspan="2">
|
||||
{{computed::powerscore}}{{#^rollTotal() powerscore computed::powerscore}}*{{/^rollTotal() powerscore computed::powerscore}}
|
||||
{{#rollGreater() powerscoreenhanced powerscore}}
|
||||
-
|
||||
@@ -755,129 +759,75 @@
|
||||
</tr>
|
||||
{{#rollGreater() powerscoreenhanced powerscore}}
|
||||
{{#rollBetween() powerroll computed::powerscore computed::powerscoreenhanced}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-success">
|
||||
Power Score!
|
||||
<br>
|
||||
{{#powerscoreeffect}}
|
||||
<span class='sheet-template-result-description'>{{powerscoreeffect}}</span>
|
||||
{{/powerscoreeffect}}
|
||||
</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Power Score!,powerscoreeffect)
|
||||
{{/rollBetween() powerroll computed::powerscore computed::powerscoreenhanced}}
|
||||
|
||||
{{#rollGreater() powerroll computed::powerscoreenhanced}}
|
||||
{{#rollLess() powerscoreenhanced 20}}
|
||||
{{#^rollTotal() powerroll 20}}
|
||||
{{#^rollTotal() powerroll 1}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-failure">Failure!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/^rollTotal() powerroll 1}}
|
||||
{{/^rollTotal() powerroll 20}}
|
||||
{{/rollLess() powerscoreenhanced 20}}
|
||||
|
||||
{{#rollGreater() powerscoreenhanced 19}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-failure">Failure!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/rollGreater() powerscoreenhanced 19}}
|
||||
{{/rollGreater() powerroll computed::powerscoreenhanced}}
|
||||
|
||||
{{#rollLess() powerscoreenhanced 20}}
|
||||
{{#rollTotal() powerroll 20}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-failure">
|
||||
20 Negative effect!
|
||||
<br>
|
||||
{{#20effect}}
|
||||
<span class='sheet-template-result-description'>{{20effect}}</span>
|
||||
{{/20effect}}
|
||||
</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,20 Negative effect!,20effect)
|
||||
{{/rollTotal() powerroll 20}}
|
||||
{{/rollLess() powerscoreenhanced 20}}
|
||||
|
||||
{{#rollTotal() powerroll 1}}
|
||||
{{#rollLess() powerscoreenhanced 1}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-success">Success!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Success!,success)
|
||||
{{/rollLess() powerscoreenhanced 1}}
|
||||
{{/rollTotal() powerroll 1}}
|
||||
|
||||
{{#rollLess() powerroll computed::powerscore}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-success">Success!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Success!,success)
|
||||
{{/rollLess() powerroll computed::powerscore}}
|
||||
{{/rollGreater() powerscoreenhanced powerscore}}
|
||||
|
||||
<!--#region Regular Powers-->
|
||||
{{#^rollGreater() powerscoreenhanced powerscore}}
|
||||
{{#rollTotal() powerroll computed::powerscore}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-success">
|
||||
Power Score!
|
||||
<br>
|
||||
{{#powerscoreeffect}}
|
||||
<span class='sheet-template-result-description'>{{powerscoreeffect}}</span>
|
||||
{{/powerscoreeffect}}
|
||||
</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Power Score!,powerscoreeffect)
|
||||
{{/rollTotal() powerroll computed::powerscore}}
|
||||
|
||||
{{#rollGreater() powerroll computed::powerscore}}
|
||||
{{#rollLess() powerscore 20}}
|
||||
{{#^rollTotal() powerroll 20}}
|
||||
{{#^rollTotal() powerroll 1}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-failure">Failure!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/^rollTotal() powerroll 1}}
|
||||
{{/^rollTotal() powerroll 20}}
|
||||
{{/rollLess() powerscore 20}}
|
||||
|
||||
{{#rollGreater() powerscore 19}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-failure">Failure!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,Failed!,fail)
|
||||
{{/rollGreater() powerscore 19}}
|
||||
{{/rollGreater() powerroll computed::powerscore}}
|
||||
|
||||
{{#rollTotal() powerroll 20}}
|
||||
{{#rollLess() powerscore 20}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-failure">
|
||||
20 Negative effect!
|
||||
<br>
|
||||
{{#20effect}}
|
||||
<span class='sheet-template-result-description'>{{20effect}}</span>
|
||||
{{/20effect}}
|
||||
</td>
|
||||
</tr>
|
||||
insert_check-result.html_(failure,20 Negative effect!,20effect)
|
||||
{{/rollLess() powerscore 20}}
|
||||
{{/rollTotal() powerroll 20}}
|
||||
|
||||
{{#rollTotal() powerroll 1}}
|
||||
{{#^rollTotal() powerscore 1}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-success">
|
||||
Minimum Success!
|
||||
<br>
|
||||
{{#1effect}}
|
||||
<span class='sheet-template-result-description'>{{1effect}}</span>
|
||||
{{/1effect}}
|
||||
</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Minimum Success!,1effect)
|
||||
{{/^rollTotal() powerscore 1}}
|
||||
{{/rollTotal() powerroll 1}}
|
||||
|
||||
{{#rollLess() powerroll computed::powerscore}}
|
||||
{{#^rollTotal() powerroll 1}}
|
||||
<tr>
|
||||
<td colspan="6" class="sheet-template-result sheet-template-success">Success!</td>
|
||||
</tr>
|
||||
insert_check-result.html_(success,Success!,success)
|
||||
{{/^rollTotal() powerroll 1}}
|
||||
{{/rollLess() powerroll computed::powerscore}}
|
||||
{{/^rollGreater() powerscoreenhanced powerscore}}
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
</td>
|
||||
<td>School:</td>
|
||||
<td><input type="text" name="attr_spell-school" title="@{repeating_spells-#REPLACE0#_$X_spell-school}" class="sheet-spell-half" placeholder="School"></td>
|
||||
<td>Compoenets:</td>
|
||||
<td>Components:</td>
|
||||
<td><input type="text" name="attr_spell-components" title="@{repeating_spells-#REPLACE0#_$X_spell-components}" class="sheet-spell-half" placeholder="Components"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -58,7 +58,7 @@
|
||||
<td>Healing:</td>
|
||||
<td><textarea type="text" name="attr_spell-healing" title="@{repeating_spells-#REPLACE0#_$X_spell-healing}" class="sheet-spell-half sheet-input-like" placeholder="[[Healing]]"></textarea></td>
|
||||
<td>Materials:</td>
|
||||
<td><input type="text" name="attr_spell-materials" title="@{repeating_spells-#REPLACE0#_$X_spell-materials}" class="sheet-spell-half" placeholder="Materials"></td>
|
||||
<td><textarea type="text" name="attr_spell-materials" title="@{repeating_spells-#REPLACE0#_$X_spell-materials}" class="sheet-spell-half sheet-input-like" placeholder="Materials"></textarea></td>
|
||||
<td>Book reference:</td>
|
||||
<td><input type="text" name="attr_spell-reference" title="@{repeating_spells-#REPLACE0#_$X_spell-reference}" class="sheet-spell-half" placeholder="Book Reference"></td>
|
||||
</tr>
|
||||
@@ -82,7 +82,7 @@
|
||||
<td>
|
||||
<button type="roll" name="roll_spell-cast" title="%{repeating_spells-#REPLACE0#_$X_spell-cast}" value="#REPLACE1#@{spell-effect}" style="margin-bottom: 5px">Roll Spell Effects</button>
|
||||
<br>
|
||||
<button type="roll" name="roll_spell-template" title="%{repeating_spells-#REPLACE0#_$X_spell-template}" value="#REPLACE1#&{template:2Espell}{{title=@{spell-name}}}{{splevel=@{spell-level}}}{{school=@{spell-school}}}{{sphere=@{spell-sphere}}}{{components=@{spell-components}}}{{time=@{spell-cast-time}}}{{range=@{spell-range}}}{{duration=@{spell-duration}}}{{aoe=@{spell-aoe}}}{{save=@{spell-saving-throw}}}{{subtlety=@{spell-subtlety}}}{{sensory=@{spell-sensory}}}{{knockdown=@{spell-knockdown}}}{{crit=@{spell-crit-size}}}{{damage=@{spell-damage}}}{{damagetype=@{spell-damage-type}}}{{healing=@{spell-healing}}}{{reference=@{spell-reference}}}{{materials=@{spell-materials}}}{{effects=@{spell-effect}}}">Roll Template</button>
|
||||
<button type="roll" name="roll_spell-template" title="%{repeating_spells-#REPLACE0#_$X_spell-template}" value="#REPLACE1#&{template:2Espell}{{title=@{spell-name}}}{{splevel=@{spell-level}}}{{school=@{spell-school}}}{{sphere=@{spell-sphere}}}{{components=@{spell-components}}}{{time=@{spell-cast-time}}}{{range=@{spell-range}}}{{duration=@{spell-duration}}}{{aoe=@{spell-aoe}}}{{save=@{spell-saving-throw}}}{{subtlety=@{spell-subtlety}}}{{sensory=@{spell-sensory}}}{{knockdown=@{spell-knockdown}}}{{crit=@{spell-crit-size}}}{{damage=@{spell-damage}}}{{damagetype=@{spell-damage-type}}}{{healing=@{spell-healing}}}{{reference=@{spell-reference}}}{{materials=@{spell-materials}}}{{checkroll=[[1d100]]%}}{{checktarget=#REPLACE2#}}{{fail=The spell is expended with absolutely no effect whatsoever.}}{{effects=@{spell-effect}}}">Roll Template</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<td><input type="text" name="attr_spell-level" title="@{repeating_spells-#REPLACE0#_$X_spell-level}" class="sheet-spell-half" placeholder="Spell level"></td>
|
||||
<td>School:</td>
|
||||
<td><input type="text" name="attr_spell-school" title="@{repeating_spells-#REPLACE0#_$X_spell-school}" class="sheet-spell-half" placeholder="School"></td>
|
||||
<td>Compoenets:</td>
|
||||
<td>Components:</td>
|
||||
<td><input type="text" name="attr_spell-components" title="@{repeating_spells-#REPLACE0#_$X_spell-components}" class="sheet-spell-half" placeholder="Components"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -55,7 +55,7 @@
|
||||
<td>Healing:</td>
|
||||
<td><textarea type="text" name="attr_spell-healing" title="@{repeating_spells-#REPLACE0#_$X_spell-healing}" class="sheet-spell-half sheet-input-like" placeholder="[[Healing]]"></textarea></td>
|
||||
<td>Materials:</td>
|
||||
<td><input type="text" name="attr_spell-materials" title="@{repeating_spells-#REPLACE0#_$X_spell-materials}" class="sheet-spell-half" placeholder="Materials"></td>
|
||||
<td><textarea type="text" name="attr_spell-materials" title="@{repeating_spells-#REPLACE0#_$X_spell-materials}" class="sheet-spell-half sheet-input-like" placeholder="Materials"></textarea></td>
|
||||
<td>Book reference:</td>
|
||||
<td><input type="text" name="attr_spell-reference" title="@{repeating_spells-#REPLACE0#_$X_spell-reference}" class="sheet-spell-half" placeholder="Book Reference"></td>
|
||||
</tr>
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<td><button type="roll" name="roll_#REPLACE0#-check" title="%{#REPLACE0#-check}" value="&{template:2Echeck} {{checkvs=#REPLACE0# Check}} {{character=@{character_name}}} {{success=You made your check by [[ abs([[@{#REPLACE0#}]] - [[1d20cs1cf20-(@{misc-mod})]]) ]]}} {{fail=You missed your check by $[[2]]}} {{checktarget=[[@{#REPLACE0#}]]}} {{checkroll=$[[1]]}} {{color=blue}}">#REPLACE0#</button></td>
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="sheet-tab-content sheet-section-attributes-player-option">
|
||||
<table class="sheet-default-header-first-column sheet-default-header-every-third-row sheet-table-white" style='width:100%;'>
|
||||
<table class="sheet-default-header-first-column sheet-default-header-every-third-row sheet-table-white sheet-table-slim-first-column sheet-table-sub-ability-score" style='width:100%;'>
|
||||
<tr>
|
||||
<td style="width: 1px;"><button type="roll" name="roll_Strength-check" title="%{Strength-check}" value="&{template:2Echeck} {{checkvs=Strength Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Strength}]]}} {{color=blue}}">Strength</button></td>
|
||||
insert_attribute-button.html_(Strength)
|
||||
<td><input type="text" name="attr_Strength" title="@{Strength}" class="sheet-shortish" placeholder="18[67]"></td>
|
||||
<td>Hit<br>Probability</td>
|
||||
<td>Damage<br>Adjustment</td>
|
||||
@@ -12,7 +12,7 @@
|
||||
<td style="width: 1px;">Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Stamina-check" title="%{Stamina-check}" value="&{template:2Echeck} {{checkvs=Stamina Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Stamina}]]}} {{color=blue}}"><em>Stamina</em></button></td>
|
||||
insert_attribute-button.html_(Stamina)
|
||||
<td><input type="text" name="attr_Stamina" title="@{Stamina}" class="sheet-shortish" placeholder="18[67]"/></td>
|
||||
<td colspan="2"></td>
|
||||
<td><input type="text" name="attr_carryweight" title="@{carryweight}" class="sheet-shortish" value="0"/></td>
|
||||
@@ -20,18 +20,18 @@
|
||||
<td><input type="text" name="attr_strnotes" title="@{strnotes}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Muscle-check" title="%{Muscle-check}" value="&{template:2Echeck} {{checkvs=Muscle Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Muscle}]]}} {{color=blue}}"><em>Muscle</em></button></td>
|
||||
insert_attribute-button.html_(Muscle)
|
||||
<td><input type="text" name="attr_Muscle" title="@{Muscle}" class="sheet-shortish" placeholder="18[67]"/></td>
|
||||
<td><input type="text" name="attr_strengthhit" title="@{strengthhit}" class="sheet-shortish" value="0"/></td>
|
||||
<td><input type="text" name="attr_strengthdmg" title="@{strengthdmg}" class="sheet-shortish" value="0"/></td>
|
||||
<td></td>
|
||||
<td><input type="text" name="attr_maxpress" title="@{maxpress}" class="sheet-shortish" value="0"/></td>
|
||||
<td><input type="text" name="attr_opendoor" title="@{opendoor}" class="sheet-shortish" value="0[0]"/><button type="action" name="act_opendoor-check" title="%{opendoor-check}" class="btn sheet-action-button-roll"></button></td>
|
||||
<td><input type="text" name="attr_bendbar" title="@{bendbar}" class="sheet-shortish" value="0"/>%<button type="roll" name="roll_bendbar-check" title="%{bendbar-check}" value="&{template:2Echeck} {{checkvs=Bend Bars / Lift Gate Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{bendbar}]]%}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_bendbar" title="@{bendbar}" class="sheet-shortish" value="0"/>%<button type="roll" name="roll_bendbar-check" title="%{bendbar-check}" value="&{template:2Echeck} {{checkvs=Bend Bars / Lift Gate Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{bendbar}]]%}} {{success=You bend the bars / lift the gate}} {{fail=You failed the attempt and will never succeed at it.}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_str2notes" title="@{str2notes}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Dexterity-check" title="%{Dexterity-check}" value="&{template:2Echeck} {{checkvs=Dexterity Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Dexterity}]]}} {{color=blue}}">Dexterity</button></td>
|
||||
insert_attribute-button.html_(Dexterity)
|
||||
<td><input type="text" name="attr_Dexterity" title="@{Dexterity}" class="sheet-shortish" placeholder="18"></td>
|
||||
<td colspan="2">Reaction<br>Adjustment</td>
|
||||
<td colspan="2">Missile Attack<br>Adjustment</td>
|
||||
@@ -39,7 +39,7 @@
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Aim-check" title="%{Aim-check}" value="&{template:2Echeck} {{checkvs=Aim Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Aim}]]}} {{color=blue}}"><em>Aim</em></button></td>
|
||||
insert_attribute-button.html_(Aim)
|
||||
<td><input type="text" name="attr_Aim" title="@{Aim}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td colspan="2"></td>
|
||||
<td colspan="2"><input type="text" name="attr_dexmissile" title="@{dexmissile}" class="sheet-shortish" value="0"/></td>
|
||||
@@ -47,7 +47,7 @@
|
||||
<td><input type="text" name="attr_dexnotes" title="@{dexnotes}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Balance-check" title="%{Balance-check}" value="&{template:2Echeck} {{checkvs=Balance Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Balance}]]}} {{color=blue}}"><em>Balance</em></button></td>
|
||||
insert_attribute-button.html_(Balance)
|
||||
<td><input type="text" name="attr_Balance" title="@{Balance}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_dexreact" title="@{dexreact}" class="sheet-shortish" value="0"/></td>
|
||||
<td colspan="2"></td>
|
||||
@@ -55,7 +55,7 @@
|
||||
<td><input type="text" name="attr_dex2notes" title="@{dex2notes}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Constitution-check" title="%{Constitution-check}" value="&{template:2Echeck} {{checkvs=Constitution Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Constitution}]]}} {{color=blue}}">Constitution</button></td>
|
||||
insert_attribute-button.html_(Constitution)
|
||||
<td><input type="text" name="attr_Constitution" title="@{Constitution}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td>Hit Point<br>Adjustment</td>
|
||||
<td>System<br>Shock</td>
|
||||
@@ -65,7 +65,7 @@
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Health-check" title="%{Health-check}" value="&{template:2Echeck} {{checkvs=Health Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Health}]]}} {{color=blue}}">Health</button></td>
|
||||
insert_attribute-button.html_(Health)
|
||||
<td><input type="text" name="attr_Health" title="@{Health}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td></td>
|
||||
<td><input type="text" name="attr_conshock" title="@{conshock}" class="sheet-shortish" value="0"/>%<button type="roll" name="roll_conshock-check" title="%{conshock-check}" value="/w gm &{template:2Echeck} {{checkvs=System Shock Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{conshock}]]%}} {{color=blue}}"></button></td>
|
||||
@@ -75,7 +75,7 @@
|
||||
<td><input type="text" name="attr_connotes" title="@{connotes}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Fitness-check" title="%{Fitness-check}" value="&{template:2Echeck} {{checkvs=Fitness Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Fitness}]]}} {{color=blue}}">Fitness</button></td>
|
||||
insert_attribute-button.html_(Fitness)
|
||||
<td><input type="text" name="attr_Fitness" title="@{Fitness}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td><input type="text" name="attr_conadj" title="@{conadj}" class="sheet-shortish" value="0"/></td>
|
||||
<td></td>
|
||||
@@ -84,7 +84,7 @@
|
||||
<td><input type="text" name="attr_con2notes" title="@{con2notes}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Intelligence-check" title="%{Intelligence-check}" value="&{template:2Echeck} {{checkvs=Intelligence Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Intelligence}]]}} {{color=blue}}">Intelligence</button></td>
|
||||
insert_attribute-button.html_(Intelligence)
|
||||
<td><input type="text" name="attr_Intelligence" title="@{Intelligence}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td>Number of<br>Languages</td>
|
||||
<td>Maximum<br>Spell Level</td>
|
||||
@@ -94,7 +94,7 @@
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Reason-check" title="%{Reason-check}" value="&{template:2Echeck} {{checkvs=Reason Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Reason}]]}} {{color=blue}}">Reason</button></td>
|
||||
insert_attribute-button.html_(Reason)
|
||||
<td><input type="text" name="attr_Reason" title="@{Reason}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td></td>
|
||||
<td><input type="text" name="attr_intlvl" title="@{intlvl}" class="sheet-shortish" value="0"/></td>
|
||||
@@ -104,35 +104,35 @@
|
||||
<td><input type="text" name="attr_intnotes" title="@{intnotes}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Knowledge-check" title="%{Knowledge-check}" value="&{template:2Echeck} {{checkvs=Knowledge Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Knowledge}]]}} {{color=blue}}">Knowledge</button></td>
|
||||
insert_attribute-button.html_(Knowledge)
|
||||
<td><input type="text" name="attr_Knowledge" title="@{Knowledge}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td><input type="text" name="attr_intlang" title="@{intlang}" class="sheet-shortish" value="0"/></td>
|
||||
<td></td>
|
||||
<td><input type="text" name="attr_intchance" title="@{intchance}" class="sheet-shortish" value="0">%<button type="roll" name="roll_learnspell" title="%{learnspell}" value="/w gm &{template:2Echeck} {{checkvs=Learn *?{Name of Spell?|Spell name}* Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{intchance}]]%}} {{color=blue}}"></button>
|
||||
<td><input type="text" name="attr_intchance" title="@{intchance}" class="sheet-shortish" value="0">%<button type="roll" name="roll_learnspell" title="%{learnspell}" value="/w gm &{template:2Echeck} {{checkvs=Learn *?{Name of Spell?|Spell name}* Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{intchance}]]%}} {{success=You learned **?{Name of Spell?}**}} {{fail=You can try again at next level (provided you still have access to the spell)}} {{color=blue}}"></button>
|
||||
<td></td>
|
||||
<td colspan="2"></td>
|
||||
<td><input type="text" name="attr_int2notes" title="@{int2notes}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Wisdom-check" title="%{Wisdom-check}" value="&{template:2Echeck} {{checkvs=Wisdom Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Wisdom}]]}} {{color=blue}}">Wisdom</button></td>
|
||||
insert_attribute-button.html_(Wisdom)
|
||||
<td><input type="text" name="attr_Wisdom" title="@{Wisdom}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td>Magical Def<br>Adjustment</td>
|
||||
<td colspan="2">Bonus<br>Priest Spells</td>
|
||||
<td>Clerical<br>Spell Failure</td>
|
||||
<td>Priestly<br>Spell Failure</td>
|
||||
<td colspan="2">Spell<br>Immunity</td>
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Intuition-check" title="%{Intuition-check}" value="&{template:2Echeck} {{checkvs=Intuition Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Intuition}]]}} {{color=blue}}">Intuition</button></td>
|
||||
insert_attribute-button.html_(Intuition)
|
||||
<td><input type="text" name="attr_Intuition" title="@{Intuition}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td></td>
|
||||
<td colspan="2"><input type="text" name="attr_wisbonus-prime" title="@{wisbonus-prime}"/></td>
|
||||
<td><input type="text" name="attr_wisfail" title="@{wisfail}" class="sheet-shortish" value="0">%<button type="roll" name="roll_spellfail" title="%{spellfail}" value="&{template:2Einversecheck} {{checkvs=Spell Failure Check}} {{character=@{character_name}}} {{checkroll=[[1d100+(@{misc-mod})]]%}} {{checktarget=[[@{wisfail}]]%}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_wisfail" title="@{wisfail}" class="sheet-shortish" value="0">%<button type="roll" name="roll_spellfail" title="%{spellfail}" value="&{template:2Einversecheck} {{checkvs=Spell Failure Check}} {{character=@{character_name}}} {{checkroll=[[1d100+(@{misc-mod})]]%}} {{checktarget=[[@{wisfail}]]%}} {{fail=The spell is expended with absolutely no effect whatsoever.}} {{color=blue}}"></button></td>
|
||||
<td colspan="2"><input type="text" name="attr_wisimm1" title="@{wisimm1}" class="sheet-spell-immune"/></td>
|
||||
<td><input type="text" name="attr_wisnotes" title="@{wisnotes}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Willpower-check" title="%{Willpower-check}" value="&{template:2Echeck} {{checkvs=Willpower Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Willpower}]]}} {{color=blue}}">Willpower</button></td>
|
||||
insert_attribute-button.html_(Willpower)
|
||||
<td><input type="text" name="attr_Willpower" title="@{Willpower}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td><input type="text" name="attr_wisdef" title="@{wisdef}" class="sheet-shortish" value="0"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_wisbonus-extra" title="@{wisbonus-extra}"/></td>
|
||||
@@ -141,7 +141,7 @@
|
||||
<td><input type="text" name="attr_wis2notes" title="@{wis2notes}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Charisma-check" title="%{Charisma-check}" value="&{template:2Echeck} {{checkvs=Charisma Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Charisma}]]}} {{color=blue}}">Charisma</button></td>
|
||||
insert_attribute-button.html_(Charisma)
|
||||
<td><input type="text" name="attr_Charisma" title="@{Charisma}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td colspan="2">Maximum Number<br>of Henchmen</td>
|
||||
<td colspan="2">Loyalty<br>Base</td>
|
||||
@@ -149,7 +149,7 @@
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Leadership-check" title="%{Leadership-check}" value="&{template:2Echeck} {{checkvs=Leadership Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Leadership}]]}} {{color=blue}}">Leadership</button></td>
|
||||
insert_attribute-button.html_(Leadership)
|
||||
<td><input type="text" name="attr_Leadership" title="@{Leadership}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_chamax" title="@{chamax}" class="sheet-shortish" value="0"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_chaloy" title="@{chaloy}" class="sheet-shortish" value="0"/></td>
|
||||
@@ -157,7 +157,7 @@
|
||||
<td><input type="text" name="attr_chanotes" title="@{chanotes}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button style="margin-left: 10px;" type="roll" name="roll_Appearance-check" title="%{Appearance-check}" value="&{template:2Echeck} {{checkvs=Appearance Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Appearance}]]}} {{color=blue}}">Appearance</button></td>
|
||||
insert_attribute-button.html_(Appearance)
|
||||
<td><input type="text" name="attr_Appearance" title="@{Appearance}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td colspan="2"></td>
|
||||
<td colspan="2"></td>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="sheet-tab-content sheet-section-attributes-standard">
|
||||
<table class="sheet-default-header-first-column sheet-default-header-odd-row sheet-table-white" style='width:100%;'>
|
||||
<table class="sheet-default-header-first-column sheet-default-header-odd-row sheet-table-white sheet-table-slim-first-column" style='width:100%;'>
|
||||
<tr>
|
||||
<td style="width: 1px;"></td>
|
||||
<td></td>
|
||||
<td>Ability<br>Score</td>
|
||||
<td>Hit<br>Probability</td>
|
||||
<td>Damage<br>Adjustment</td>
|
||||
@@ -12,14 +12,14 @@
|
||||
<td style="width: 1px;">Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Strength-check" title="%{Strength-check}" value="&{template:2Echeck} {{checkvs=Strength Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Strength}]]}} {{color=blue}}">Strength</button></td>
|
||||
insert_attribute-button.html_(Strength)
|
||||
<td><input type="text" name="attr_Strength" title="@{Strength}" class="sheet-shortish" placeholder="18[67]"/></td>
|
||||
<td><input type="text" name="attr_strengthhit" title="@{strengthhit}" class="sheet-shortish" value="0"/></td>
|
||||
<td><input type="text" name="attr_strengthdmg" title="@{strengthdmg}" class="sheet-shortish" value="0"/></td>
|
||||
<td><input type="text" name="attr_carryweight" title="@{carryweight}" class="sheet-shortish" value="0"/></td>
|
||||
<td><input type="text" name="attr_maxpress" title="@{maxpress}" class="sheet-shortish" value="0"/></td>
|
||||
<td><input type="text" name="attr_opendoor" title="@{opendoor}" class="sheet-shortish" value="0(0)"><button type="action" name="act_opendoor-check" title="%{opendoor-check}" class="btn sheet-action-button-roll"></button></td>
|
||||
<td><input type="text" name="attr_bendbar" title="@{bendbar}" class="sheet-shortish" value="0">%<button type="roll" name="roll_bendbar-check" title="%{bendbar-check}" value="&{template:2Echeck} {{checkvs=Bend Bars / Lift Gate Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{bendbar}]]%}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_bendbar" title="@{bendbar}" class="sheet-shortish" value="0">%<button type="roll" name="roll_bendbar-check" title="%{bendbar-check}" value="&{template:2Echeck} {{checkvs=Bend Bars / Lift Gate Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{bendbar}]]%}} {{success=You bend the bars / lift the gate}} {{fail=You failed the attempt and will never succeed at it.}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_strnotes" title="@{strnotes}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -31,7 +31,7 @@
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Dexterity-check" title="%{Dexterity-check}" value="&{template:2Echeck} {{checkvs=Dexterity Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Dexterity}]]}} {{color=blue}}">Dexterity</button></td>
|
||||
insert_attribute-button.html_(Dexterity)
|
||||
<td><input type="text" name="attr_Dexterity" title="@{Dexterity}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_dexreact" title="@{dexreact}" class="sheet-shortish" value="0"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_dexmissile" title="@{dexmissile}" class="sheet-shortish" value="0"/></td>
|
||||
@@ -49,7 +49,7 @@
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Constitution-check" title="%{Constitution-check}" value="&{template:2Echeck} {{checkvs=Constitution Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Constitution}]]}} {{color=blue}}">Constitution</button></td>
|
||||
insert_attribute-button.html_(Constitution)
|
||||
<td><input type="text" name="attr_Constitution" title="@{Constitution}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td><input type="text" name="attr_conadj" title="@{conadj}" class="sheet-shortish" value="0"/></td>
|
||||
<td><input type="text" name="attr_conshock" title="@{conshock}" class="sheet-shortish" value="0">%<button type="roll" name="roll_conshock-check" title="%{conshock-check}" value="/w gm &{template:2Echeck} {{checkvs=System Shock Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{conshock}]]%}} {{color=blue}}"></button></td>
|
||||
@@ -69,11 +69,11 @@
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Intelligence-check" title="%{Intelligence-check}" value="&{template:2Echeck} {{checkvs=Intelligence Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Intelligence}]]}} {{color=blue}}">Intelligence</button></td>
|
||||
insert_attribute-button.html_(Intelligence)
|
||||
<td><input type="text" name="attr_Intelligence" title="@{Intelligence}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td><input type="text" name="attr_intlang" title="@{intlang}" class="sheet-shortish" value="0"/></td>
|
||||
<td><input type="text" name="attr_intlvl" title="@{intlvl}" class="sheet-shortish" value="0"/></td>
|
||||
<td><input type="text" name="attr_intchance" title="@{intchance}" class="sheet-shortish" value="0">%<button type="roll" name="roll_learnspell" title="%{learnspell}" value="/w gm &{template:2Echeck} {{checkvs=Learn *?{Name of Spell?|Spell name}* Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{intchance}]]%}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_intchance" title="@{intchance}" class="sheet-shortish" value="0">%<button type="roll" name="roll_learnspell" title="%{learnspell}" value="/w gm &{template:2Echeck} {{checkvs=Learn *?{Name of Spell?|Spell name}* Check}} {{character=@{character_name}}} {{checkroll=[[1d100cs1cf100-(@{misc-mod})]]%}} {{checktarget=[[@{intchance}]]%}} {{success=You learned **?{Name of Spell?}**}} {{fail=You can try again at next level (provided you still have access to the spell)}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_intmax" title="@{intmax}" class="sheet-shortish" value="0"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_intimm1st" title="@{intimm1st}" placeholder="1" class="sheet-small"><input type="text" name="attr_intimm2nd" title="@{intimm2nd}" placeholder="2" class="sheet-small"><input type="text" name="attr_intimm3rd" title="@{intimm3rd}" placeholder="3" class="sheet-small"><input type="text" name="attr_intimm4th" title="@{intimm4th}" placeholder="4" class="sheet-small"><input type="text" name="attr_intimm5th" title="@{intimm5th}" placeholder="5" class="sheet-small"><input type="text" name="attr_intimm6th" title="@{intimm6th}" placeholder="6" class="sheet-small"><input type="text" name="attr_intimm7th" title="@{intimm7th}" placeholder="7" class="sheet-small"></td>
|
||||
<td><input type="text" name="attr_intnotes" title="@{intnotes}"></td>
|
||||
@@ -83,16 +83,16 @@
|
||||
<td>Ability<br>Score</td>
|
||||
<td>Magical Def<br>Adjustment</td>
|
||||
<td colspan="2">Bonus<br>Priest Spells</td>
|
||||
<td>Clerical<br>Spell Failure</td>
|
||||
<td>Priestly<br>Spell Failure</td>
|
||||
<td colspan="2">Spell<br>Immunity</td>
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Wisdom-check" title="%{Wisdom-check}" value="&{template:2Echeck} {{checkvs=Wisdom Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Wisdom}]]}} {{color=blue}}">Wisdom</button></td>
|
||||
insert_attribute-button.html_(Wisdom)
|
||||
<td><input type="text" name="attr_Wisdom" title="@{Wisdom}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td><input type="text" name="attr_wisdef" title="@{wisdef}" class="sheet-shortish" value="0"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_wisbonus" title="@{wisbonus}"/></td>
|
||||
<td><input type="text" name="attr_wisfail" title="@{wisfail}" class="sheet-shortish" value="0">%<button type="roll" name="roll_spellfail" title="%{spellfail}" value="&{template:2Einversecheck} {{checkvs=Spell Failure Check}} {{character=@{character_name}}} {{checkroll=[[1d100+(@{misc-mod})]]%}} {{checktarget=[[@{wisfail}]]%}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_wisfail" title="@{wisfail}" class="sheet-shortish" value="0">%<button type="roll" name="roll_spellfail" title="%{spellfail}" value="&{template:2Einversecheck} {{checkvs=Spell Failure Check}} {{character=@{character_name}}} {{checkroll=[[1d100+(@{misc-mod})]]%}} {{checktarget=[[@{wisfail}]]%}} {{fail=The spell is expended with absolutely no effect whatsoever.}} {{color=blue}}"></button></td>
|
||||
<td colspan="2"><input type="text" name="attr_wisimm" title="@{wisimm}" class="sheet-spell-immune"/></td>
|
||||
<td><input type="text" name="attr_wisnotes" title="@{wisnotes}"/></td>
|
||||
</tr>
|
||||
@@ -105,7 +105,7 @@
|
||||
<td>Notes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="roll" name="roll_Charisma-check" title="%{Charisma-check}" value="&{template:2Echeck} {{checkvs=Charisma Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{Charisma}]]}} {{color=blue}}">Charisma</button></td>
|
||||
insert_attribute-button.html_(Charisma)
|
||||
<td><input type="text" name="attr_Charisma" title="@{Charisma}" class="sheet-shortish" placeholder="18"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_chamax" title="@{chamax}" class="sheet-shortish" value="0"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_chaloy" title="@{chaloy}" class="sheet-shortish" value="0"/></td>
|
||||
@@ -126,9 +126,9 @@
|
||||
</tr>
|
||||
</table>
|
||||
<fieldset name="repeating_customattr" class="repeating_customattr">
|
||||
<table class="sheet-default-header-first-column sheet-default-header-odd-row" style='width:100%;'>
|
||||
<table class="sheet-default-header-first-column sheet-default-header-odd-row sheet-table-slim-first-column" style='width:100%;'>
|
||||
<tr>
|
||||
<td style="width: 1px;"><button style="visibility: hidden" type="roll">Constitution</button></td>
|
||||
<td><button style="visibility: hidden" type="roll">Constitution</button></td>
|
||||
<td>Ability<br>Score</td>
|
||||
<td><input type="text" name="attr_metric1" title="@{repeating_customattr_$X_metric1}" class="sheet-attr" placeholder="18"/></td>
|
||||
<td colspan="2"><input type="text" name="attr_metric2" title="@{repeating_customattr_$X_metric2}" class="sheet-attr"/></td>
|
||||
@@ -138,7 +138,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="attr_customname" title="@{repeating_customattr_$X_customname}" placeholder="Attribute" class="sheet-table-dynamic90"></td>
|
||||
<td><input type="text" name="attr_customscore" title="@{repeating_customattr_$X_customscore}" class="sheet-shortish"/><button type="roll" name="roll_customstat" title="%{repeating_customattr_$X_customstat}" value="&{template:2Echeck} {{checkvs=@{customname} Check}} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20-(@{misc-mod})]]}} {{checktarget=[[@{customscore}]]}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_customscore" title="@{repeating_customattr_$X_customscore}" class="sheet-shortish"/><button type="roll" name="roll_customstat" title="%{repeating_customattr_$X_customstat}" value="&{template:2Echeck} {{checkvs=@{customname} Check}} {{character=@{character_name}}} {{success=You made your check by [[ [[@{customscore}]] - [[1d20cs1cf20-(@{misc-mod})]] ]]}} {{checktarget=$[[0]]}} {{checkroll=$[[1]]}} {{color=blue}}"></button></td>
|
||||
<td><input type="text" name="attr_custommetric1" title="@{repeating_customattr_$X_custommetric1}" class="sheet-attr"/><button type="roll" name="roll_custom-metric1" title="%{repeating_customattr_$X_custom-metric1}" value="@{custommetric1}"></button></td>
|
||||
<td colspan="2"><input type="text" name="attr_custommetric2" title="@{repeating_customattr_$X_custommetric2}" class="sheet-attr"/><button type="roll" name="roll_custom-metric2" title="%{repeating_customattr_$X_custom-metric2}" value="@{custommetric2}"></button></td>
|
||||
<td><input type="text" name="attr_custommetric3" title="@{repeating_customattr_$X_custommetric3}" class="sheet-attr"/><button type="roll" name="roll_custom-metric3" title="%{repeating_customattr_$X_custom-metric3}" value="@{custommetric3}"></button></td>
|
||||
|
||||
@@ -433,24 +433,40 @@
|
||||
<br>
|
||||
<h4>Scrolls</h4>
|
||||
<fieldset name="repeating_scrolls" title="@{scrolls}" class="repeating_scrolls">
|
||||
<table class="sheet-default-header-first-row" style="margin-bottom: 5px;">
|
||||
<table class="sheet-default-header-first-row">
|
||||
<tr class="sheet-collapse sheet-show-first">
|
||||
<td>Name</td>
|
||||
<td>Level</td>
|
||||
<td>Qty</td>
|
||||
<td colspan="2">Speed</td>
|
||||
<td colspan="2">Macro</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" name="attr_scroll" title="@{repeating_scrolls_$X_scroll}" placeholder="Name of Scroll/Spell."></td>
|
||||
<td><input type="text" name="attr_scrollqty" title="@{repeating_scrolls_$X_scrollqty}" class="sheet-small" placeholder="#"></td>
|
||||
<td class="sheet-td-dynamic100">
|
||||
<input type="text" name="attr_scroll" class="sheet-rogue-min sheet-chrome" title="@{repeating_scrolls_$X_scroll}" placeholder="Name of Scroll/Spell." list="scroll-spells">
|
||||
<input type="text" name="attr_scroll" class="sheet-rogue-min sheet-firefox" title="@{repeating_scrolls_$X_scroll}" placeholder="Name of Scroll/Spell." list="scroll-spells-ff">
|
||||
</td>
|
||||
<td><input type="number" name="attr_scroll-level" title="@{repeating_scrolls_$X_scroll-level}" class="sheet-minish" value="6"></td>
|
||||
<td><input type="number" name="attr_scrollqty" title="@{repeating_scrolls_$X_scrollqty}" class="sheet-minish" placeholder="#"></td>
|
||||
<td><input type="text" name="attr_scroll-speed" title="@{repeating_scrolls_$X_scroll-speed}" class="sheet-small" value="3"></td>
|
||||
<td><button type="roll" name="attr_scroll-initiative" title="%{repeating_scrolls_$X_scroll-initiative}" value="/gmroll [[{([[1d10]]+[[@{scroll-speed}-(@{misc-mod})]]), 1}kh1]] [Initiative (@{scroll})]&{tracker}">Initiative</button></td>
|
||||
<td><button type="roll" name="attr_scroll-roll" title="%{repeating_scrolls_$X_scroll-roll}" value="@{scroll-macro}">T</button></td>
|
||||
<td><button type="action" name="act_show" class="btn sheet-hidden sheet-show">▼</button><button type="action" name="act_hide" class="btn sheet-hidden">▲</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3"><input type="text" name="attr_scroll-macro" title="@{repeating_scrolls_$X_scroll-macro}" class="sheet-table-dynamic" placeholder="Enter Macro text."></td>
|
||||
<td><button type="roll" name="attr_scroll-roll" title="%{repeating_scrolls_$X_scroll-roll}" value="@{scroll-macro}">Scroll</button></td>
|
||||
<tr class="sheet-hidden">
|
||||
<td class="sheet-default-header">Spell failure:</td>
|
||||
<td><input type="number" name="attr_scroll-failure" title="@{repeating_scrolls_$X_scroll-failure}" class="sheet-minish" value="0"></td>
|
||||
<td style="font-weight: bold">%</td>
|
||||
</tr>
|
||||
<tr class="sheet-hidden">
|
||||
<td colspan="7"><textarea type="text" name="attr_scroll-macro" title="@{repeating_scrolls_$X_scroll-macro}" class="sheet-table-dynamic" placeholder="Enter Macro text."></textarea></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
<details>
|
||||
<summary>Casting from Scrolls</summary>
|
||||
insert_casting-from-scrolls.html
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
</table>
|
||||
<input type="hidden" name="attr_action-check" value="">
|
||||
<button type="action" name="act_action-check" style="display: none"></button>
|
||||
<button type="action" name="act_action-check-dm" style="display: none"></button>
|
||||
<input type="hidden" name="attr_action-macro" value="">
|
||||
<button type="action" name="act_action-macro" style="display: none"></button>
|
||||
</fieldset>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<li>10 minutes of study/prayer per level of the spell. Ie. 1st-level: 10 minutes, 2nd-level: 20 minutes, and so on. (PHB p. 107)</li>
|
||||
<li>Spells stay memorized until cast or wiped from the mind. A spellcaster cannot choose to forget a memorized spell to replace it. (PHB p. 107)</li>
|
||||
<li>Reversible spells must be memorized as the desired version (PHB p. 113-114)</li>
|
||||
<li>Scrolls require no memorization or material components to cast (PHB p. 144 / DMG p. 118)</li>
|
||||
<li>Scrolls require no memorization (PHB p. 144 / DMG p. 118)</li>
|
||||
</ul>
|
||||
<b>Casting</b>
|
||||
<ul>
|
||||
@@ -27,23 +27,7 @@
|
||||
<li>Material spell components are consumed/destroyed/expended when the spell is cast, unless specifically noted otherwise (PHB p. 113-114)</li>
|
||||
<li>Priest holy symbols are not lost when a spell is cast (PHB p. 114)</li>
|
||||
<li>Casting from Scrolls
|
||||
<ul>
|
||||
<li>Wizards can use (read and cast from) wizard scrolls (PHB p. 42 / DMG p. 196)</li>
|
||||
<li>Priest can use (read and cast from) priest scrolls (PHB p. 48 / DMG p. 196)
|
||||
<ul>
|
||||
<li>Paladins cannot cast spells from clerical or druidical scrolls (PHB p. 39 / DMG p. 196)</li>
|
||||
<li>Rangers cannot use priest scrolls (PHB p. 39 / DMG p. 196)</li>
|
||||
<li>Druids cannot use priest scrolls unless specifically allowed for druids (PHB p. 52)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>10th level Thieves can cast spells from scrolls with a 25% failure rate (PHB p. 57-58)</li>
|
||||
<li>10th level Bards can cast spells from scrolls with a 15% failure rate (PHB p. 61)</li>
|
||||
<li>All classes can read and cast <em>Protection Scrolls</em> (DMG p. 196)</li>
|
||||
<li>Scrolls have a read time equal to the inscribed spell's cast time (PHB p. 125 / DMG p. 196)</li>
|
||||
<li>Scrolls are cast at the level at which they were inscribed (DMG p. 196)</li>
|
||||
<li>Casting scrolls containing spells of a higher level than spell-user can cast incurs a 5% failure rate per level between the character's present level and the level at which the spell could be cast (DMG p. 196)</li>
|
||||
<li>No adverse effects associated with casting the spell are suffered by the reader. These requirements or penalties have already been fulfilled or suffered by the creator of the scroll (DMG p. 196)</li>
|
||||
</ul>
|
||||
insert_casting-from-scrolls.html
|
||||
</li>
|
||||
</ul>
|
||||
</details>
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<ul>
|
||||
<li>Wizards can use (read and cast from) wizard scrolls (PHB p. 42 / DMG p. 196)</li>
|
||||
<li>Priest can use (read and cast from) priest scrolls (PHB p. 48 / DMG p. 196)
|
||||
<ul>
|
||||
<li>Paladins cannot cast spells from clerical or druidical scrolls (PHB p. 39 / DMG p. 196)</li>
|
||||
<li>Rangers cannot use priest scrolls (PHB p. 39 / DMG p. 196)</li>
|
||||
<li>Druids cannot use priest scrolls unless specifically allowed for druids (PHB p. 52)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>10th level Thieves can cast spells from scrolls with a 25% failure rate (PHB p. 57-58)</li>
|
||||
<li>10th level Bards can cast spells from scrolls with a 15% failure rate (PHB p. 61)</li>
|
||||
<li>All classes can read and cast <em>Protection Scrolls</em> (DMG p. 196)</li>
|
||||
<li>Scrolls have a read time equal to the inscribed spell's cast time (PHB p. 125 / DMG p. 196)</li>
|
||||
<li>Scrolls are cast at the level at which they were inscribed (DMG p. 196)</li>
|
||||
<li>Casting scrolls containing spells of a higher level than spell-user can cast incurs a 5% failure rate per level between the character's present level and the level at which the spell could be cast (DMG p. 196)</li>
|
||||
<li>Scrolls require no material components to cast (PHB p. 144 / DMG p. 118)</li>
|
||||
<li>No adverse effects associated with casting the spell are suffered by the reader. These requirements or penalties have already been fulfilled or suffered by the creator of the scroll (DMG p. 196)</li>
|
||||
</ul>
|
||||
@@ -114,7 +114,7 @@
|
||||
<h4>Spells Memorized and Spell Book</h4>
|
||||
<br>
|
||||
<h4>Spells Memorized</h4>
|
||||
insert_priest-spell-template.html_(pri1)
|
||||
insert_priest-spell-template.html_(pri1,,[[@{wisfail}]]%)
|
||||
<div class="sheet-3colrow">
|
||||
insert_spells-old.html_(28,Wind,wind,-priest)
|
||||
insert_spells-old.html_(29,Wind,wind,-priest)
|
||||
@@ -169,7 +169,7 @@
|
||||
<h4>Spells Memorized and Spell Book</h4>
|
||||
<br>
|
||||
<h4>Spells Memorized</h4>
|
||||
insert_priest-spell-template.html_(pri2)
|
||||
insert_priest-spell-template.html_(pri2,,[[@{wisfail}]]%)
|
||||
<div class="sheet-3colrow">
|
||||
insert_spells-old.html_(31,Wind,wind,-priest)
|
||||
insert_spells-old.html_(32,Wind,wind,-priest)
|
||||
@@ -224,7 +224,7 @@
|
||||
<h4>Spells Memorized and Spell Book</h4>
|
||||
<br>
|
||||
<h4>Spells Memorized</h4>
|
||||
insert_priest-spell-template.html_(pri3)
|
||||
insert_priest-spell-template.html_(pri3,,[[@{wisfail}]]%)
|
||||
<div class="sheet-3colrow">
|
||||
insert_spells-old.html_(34,Wind,wind,-priest)
|
||||
insert_spells-old.html_(35,Wind,wind,-priest)
|
||||
@@ -279,7 +279,7 @@
|
||||
<h4>Spells Memorized and Spell Book</h4>
|
||||
<br>
|
||||
<h4>Spells Memorized</h4>
|
||||
insert_priest-spell-template.html_(pri4)
|
||||
insert_priest-spell-template.html_(pri4,,[[@{wisfail}]]%)
|
||||
<div class="sheet-3colrow">
|
||||
insert_spells-old.html_(37,Wind,wind,-priest)
|
||||
insert_spells-old.html_(38,Wind,wind,-priest)
|
||||
@@ -334,7 +334,7 @@
|
||||
<h4>Spells Memorized and Spell Book</h4>
|
||||
<br>
|
||||
<h4>Spells Memorized</h4>
|
||||
insert_priest-spell-template.html_(pri5)
|
||||
insert_priest-spell-template.html_(pri5,,[[@{wisfail}]]%)
|
||||
<div class="sheet-3colrow">
|
||||
insert_spells-old.html_(40,Wind,wind,-priest)
|
||||
insert_spells-old.html_(41,Wind,wind,-priest)
|
||||
@@ -389,7 +389,7 @@
|
||||
<h4>Spells Memorized and Spell Book</h4>
|
||||
<br>
|
||||
<h4>Spells Memorized</h4>
|
||||
insert_priest-spell-template.html_(pri6)
|
||||
insert_priest-spell-template.html_(pri6,,[[@{wisfail}]]%)
|
||||
<div class="sheet-3colrow">
|
||||
insert_spells-old.html_(43,Wind,wind,-priest)
|
||||
insert_spells-old.html_(44,Wind,wind,-priest)
|
||||
@@ -444,7 +444,7 @@
|
||||
<h4>Spells Memorized and Spell Book</h4>
|
||||
<br>
|
||||
<h4>Spells Memorized</h4>
|
||||
insert_priest-spell-template.html_(pri7)
|
||||
insert_priest-spell-template.html_(pri7,,[[@{wisfail}]]%)
|
||||
<div class="sheet-3colrow">
|
||||
insert_spells-old.html_(46,Wind,wind,-priest)
|
||||
insert_spells-old.html_(47,Wind,wind,-priest)
|
||||
@@ -498,7 +498,7 @@
|
||||
<h4>Spells Memorized and Spell Book</h4>
|
||||
<br>
|
||||
<h4>Spells Memorized</h4>
|
||||
insert_priest-spell-template.html_(priq)
|
||||
insert_priest-spell-template.html_(priq,,[[@{wisfail}]]%)
|
||||
<div class="sheet-3colrow">
|
||||
insert_spells-old.html_(49,Wind,wind,-priest)
|
||||
insert_spells-old.html_(50,Wind,wind,-priest)
|
||||
|
||||
@@ -339,6 +339,6 @@
|
||||
<h4>Special Abilities and Attacks</h4>
|
||||
<textarea name="attr_abilitiesnotesranged" title="@{abilitiesnotesranged}" placeholder=""></textarea>
|
||||
<h4>Weapon Notes</h4>
|
||||
<textarea name="attr_rangedweaponnotes" title="@{rangedweaponnotes}" placeholder="Specializing in any ranged weapon, except Bows, gives extra attacks. Specializing in Bows or Crossbows gives an additional range category, Point-blank: +2/+0"></textarea>
|
||||
<textarea name="attr_rangedweaponnotes" title="@{rangedweaponnotes}" placeholder="* Specializing in any ranged weapon, except Bows, gives extra attacks. (PHB p. 71) * Specializing in Bows or Crossbows gives an additional range category, Point-blank: +2/+0. (PHB p. 73) * A nonmagical arrow fired from a magical bow is a nonmagical missile. (DMG p. 242)"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
@@ -139,7 +139,7 @@
|
||||
<br>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="sheet-padding-right"><button type="roll" name="roll_monthac0" title="%{monthac0}" value="@{wtype} strikes AC [[(@{monsterthac0})-(1d20+(@{misc-mod}))]]">ThAC0</button></td>
|
||||
<td class="sheet-padding-right"><button type="roll" name="roll_monthac0" title="%{monthac0}" value="@{wtype} strikes AC [[(@{monsterthac0})-(1d20+(@{misc-mod}))]]">THAC0</button></td>
|
||||
<td class="sheet-padding-right"><button type="roll" name="roll_mondmg" title="%{mondmg}" value="@{wtype} inflicts [[@{monsterdmg}]] damage!">Attack 1</button></td>
|
||||
<td class="sheet-padding-right"><button type="roll" name="roll_mondmg2" title="%{mondmg2}" value="@{wtype} inflicts [[@{monsterdmg2}]] damage!">Attack 2</button></td>
|
||||
<td class="sheet-padding-right"><button type="roll" name="roll_mondmg3" title="%{mondmg3}" value="@{wtype} inflicts [[@{monsterdmg3}]] damage!">Attack 3</button></td>
|
||||
|
||||
|
Before Width: | Height: | Size: 254 KiB |
|
Before Width: | Height: | Size: 254 KiB After Width: | Height: | Size: 254 KiB |
|
Before Width: | Height: | Size: 254 KiB |
@@ -571,7 +571,7 @@ NONWEAPON_PROFICIENCIES_TABLE['Begging'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Begging'].push({
|
||||
'slots': 1,
|
||||
'abilityScore': '@{Charisma}',
|
||||
'modifier': '?{Current Locale?|Uninhabited/Wilderness,-99|Countryside,-7|Hamlet/Village,-5|Town,-0,City,0}',
|
||||
'modifier': '?{Locale modifier?|-99 [Uninhabited/Wilderness]|-7 [Countryside]|-5 [Hamlet/Village]|-2 [Town]|0 [City]}',
|
||||
'classes': '',
|
||||
'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids']
|
||||
});
|
||||
@@ -610,8 +610,8 @@ NONWEAPON_PROFICIENCIES_TABLE['Information Gathering'].push({
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Intimidation'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Intimidation'].push({
|
||||
'slots': 1,
|
||||
'abilityScore': '?{Intimidation with?|@{Strength}|@{Charisma}}',
|
||||
'modifier': '',
|
||||
'abilityScore': '?{Intimidation with?|Strength,@{Strength}|Charisma,@{Charisma}}',
|
||||
'modifier': 0,
|
||||
'classes': '',
|
||||
'book': ['The Complete Thief\'s Handbook','The Complete Book of Dwarves','The Complete Book of Humanoids']
|
||||
});
|
||||
@@ -977,7 +977,7 @@ NONWEAPON_PROFICIENCIES_TABLE['Lip Reading (Dwarf)'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Lip Reading (Dwarf)'].push({
|
||||
'slots': 1,
|
||||
'abilityScore': '@{Intelligence}',
|
||||
'modifier': 0,
|
||||
'modifier': -2,
|
||||
'classes': 'Thief',
|
||||
'book': ['The Complete Book of Dwarves']
|
||||
});
|
||||
@@ -1139,6 +1139,13 @@ NONWEAPON_PROFICIENCIES_TABLE['Cheesemaking'].push({
|
||||
'classes': '',
|
||||
'book': ['The Complete Book of Humanoids']
|
||||
});
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Crowd Working'].push({
|
||||
'slots': 1,
|
||||
'abilityScore': '@{Charisma}',
|
||||
'modifier': +2,
|
||||
'classes': '',
|
||||
'book': ['The Complete Book of Humanoids']
|
||||
});
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Danger Sense'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Danger Sense'].push({
|
||||
'slots': 2,
|
||||
@@ -1209,8 +1216,8 @@ NONWEAPON_PROFICIENCIES_TABLE['Wild Fighting'].push({
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Cartography'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Cartography'].push({
|
||||
'slots': 1,
|
||||
'abilityScore': '@{Wisdom}',
|
||||
'modifier': 0,
|
||||
'abilityScore': '@{Intelligence}',
|
||||
'modifier': -2,
|
||||
'classes': '',
|
||||
'book': ['The Complete Ranger\'s Handbook']
|
||||
});
|
||||
@@ -1364,6 +1371,30 @@ NONWEAPON_PROFICIENCIES_TABLE['Clothesmaking, Crude'].push({
|
||||
'classes': '',
|
||||
'book': ['The Complete Barbarian\'s Handbook']
|
||||
});
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Jumping (Barbarian)'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Jumping (Barbarian)'].push({
|
||||
'slots': "-",
|
||||
'abilityScore': '@{Strength}',
|
||||
'modifier': 0,
|
||||
'classes': 'Rogue',
|
||||
'book': ['PHB']
|
||||
});
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Tightrope Walking (Barbarian)'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Tightrope Walking (Barbarian)'].push({
|
||||
'slots': 2,
|
||||
'abilityScore': '@{Dexterity}',
|
||||
'modifier': 0,
|
||||
'classes': '',
|
||||
'book': ['The Complete Barbarian\'s Handbook']
|
||||
});
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Tumbling (Barbarian)'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Tumbling (Barbarian)'].push({
|
||||
'slots': 2,
|
||||
'abilityScore': '@{Dexterity}',
|
||||
'modifier': 0,
|
||||
'classes': '',
|
||||
'book': ['The Complete Barbarian\'s Handbook']
|
||||
});
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Animal Rending'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Animal Rending'].push({
|
||||
'slots': 1,
|
||||
@@ -1400,7 +1431,7 @@ NONWEAPON_PROFICIENCIES_TABLE['Horde Summoning'] = [];
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Horde Summoning'].push({
|
||||
'slots': 2,
|
||||
'abilityScore': '@{Charisma}',
|
||||
'modifier': 0,
|
||||
'modifier': -2,
|
||||
'classes': 'Warrior',
|
||||
'book': ['The Complete Barbarian\'s Handbook']
|
||||
});
|
||||
@@ -1422,7 +1453,7 @@ NONWEAPON_PROFICIENCIES_TABLE['Light Sleeping'].push({
|
||||
});
|
||||
NONWEAPON_PROFICIENCIES_TABLE['Sign Language'].push({
|
||||
'slots': 1,
|
||||
'abilityScore': '@{Charisma}',
|
||||
'abilityScore': '@{Dexterity}',
|
||||
'modifier': 0,
|
||||
'classes': '',
|
||||
'book': ['The Complete Barbarian\'s Handbook']
|
||||
|
||||
@@ -29,6 +29,27 @@ const SCHOOL_FIELDS = [SCHOOL_SPELLS_AND_MAGIC];
|
||||
const SPHERE_SPELLS_AND_MAGIC = 'sphere-spells-and-magic';
|
||||
const SPHERE_FIELDS = ['sphere-druids', 'sphere-necromancers', SPHERE_SPELLS_AND_MAGIC];
|
||||
|
||||
class RollTemplateBuilder {
|
||||
constructor(template) {
|
||||
this.template = template;
|
||||
this.builder = [];
|
||||
}
|
||||
|
||||
push(args) {
|
||||
if (Array.isArray(args)) {
|
||||
this.builder = this.builder.concat(args);
|
||||
} else {
|
||||
for (let i = 0; i < arguments.length; i++) {
|
||||
this.builder.push(arguments[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string() {
|
||||
return `&{template:${this.template}} ${this.builder.map(s => `{{${s}}}`).join(' ')}`;
|
||||
}
|
||||
}
|
||||
|
||||
//#region Helper function
|
||||
const isSheetWorkerUpdate = function (eventInfo) {
|
||||
return eventInfo.sourceType === SHEET_WORKER;
|
||||
@@ -409,8 +430,7 @@ on('clicked:hide-toast', function(eventInfo) {
|
||||
|
||||
//#region Ability Scores logic
|
||||
// Ability Score Parser function
|
||||
const squareBracketsRegex = /18\[([0-9]{1,3})]/; // Ie. 18[65]
|
||||
const parenthesisRegex = /18\(([0-9]{1,3})\)/; // Ie. 18(65)
|
||||
const EXCEPTIONAL_STRENGHT_REGEX = /18[\[(]([0-9]{1,3})[\])]/; // Ie. 18[65], 18(65)
|
||||
function getLookupValue(abilityScoreString, defaultValue, isStrength = false) {
|
||||
if (abilityScoreString === '') {
|
||||
return defaultValue;
|
||||
@@ -422,7 +442,7 @@ function getLookupValue(abilityScoreString, defaultValue, isStrength = false) {
|
||||
}
|
||||
|
||||
if (isStrength) {
|
||||
let exceptionalMatch = abilityScoreString.match(squareBracketsRegex) || abilityScoreString.match(parenthesisRegex);
|
||||
let exceptionalMatch = abilityScoreString.match(EXCEPTIONAL_STRENGHT_REGEX);
|
||||
if (exceptionalMatch !== null) {
|
||||
let exceptionalStrNumber = parseInt(exceptionalMatch[1]);
|
||||
if (1 <= exceptionalStrNumber && exceptionalStrNumber <= 50) {
|
||||
@@ -701,7 +721,7 @@ on('change:wisdom change:intuition change:willpower', function() {
|
||||
|
||||
let bonusSpells;
|
||||
if (wisdom === 0) {
|
||||
bonusSpell = parseWisBonus(0);
|
||||
bonusSpells = parseWisBonus(0);
|
||||
assignAttributes(0, 0, 0, bonusSpells, wisdomTable['wisimmune'][0], wisdomTable['wisimmune'][0], wisdomTable['wisnotes'][0], wisdomTable['wisnotes'][0]);
|
||||
return;
|
||||
}
|
||||
@@ -808,16 +828,20 @@ on('change:charisma change:leadership change:appearance', function() {
|
||||
on('clicked:opendoor-check', function (eventInfo){
|
||||
getAttrs(['opendoor'], async function (values){
|
||||
let match = values.opendoor.match(/(\d+)\((\d+)\)/);
|
||||
let rollTemplate = "&{template:2Echeck} {{character=@{character_name}}} {{checkroll=[[1d20cs1cf20]]}} {{color=blue}}"
|
||||
let rollBuilder = new RollTemplateBuilder('2Echeck');
|
||||
rollBuilder.push('character=@{character_name}','checkroll=[[1d20cs1cf20]]','color=blue','success=The door swings open!');
|
||||
if (!match) {
|
||||
return printRoll(rollTemplate + "{{checkvs=Open Doors Check}} {{checktarget=[[@{opendoor}]]}}");
|
||||
rollBuilder.push('checkvs=Open Doors Check','checktarget=[[@{opendoor}]]','fail=The door stays shut, but you can try again.');
|
||||
return printRoll(rollBuilder.string());
|
||||
}
|
||||
let target = await extractQueryResult(`?{What kind of door?|Normal door,${match[1]}|Locked / Barred / Magical door,${match[2]}}`);
|
||||
rollTemplate += ` {{checktarget=[[${target}]]}}`;
|
||||
rollTemplate += target === match[1]
|
||||
? ` {{checkvs=Open Normal Doors Check}}`
|
||||
: ` {{checkvs=Open Locked/Barred/Magically Held Doors Check}}`;
|
||||
return printRoll(rollTemplate);
|
||||
rollBuilder.push(`checktarget=[[${target}]]`);
|
||||
if (target === match[1]) {
|
||||
rollBuilder.push('checkvs=Open Normal Doors Check','fail=The door stays shut, but you can try again.');
|
||||
} else {
|
||||
rollBuilder.push('checkvs=Open Locked/Barred/Magically Held Doors Check','fail=The door stays shut. No further attempts can be made by @{character_name}.');
|
||||
}
|
||||
return printRoll(rollBuilder.string());
|
||||
});
|
||||
});
|
||||
//#endregion
|
||||
@@ -949,6 +973,13 @@ function parseSpheres(spheresStrings, regex) {
|
||||
return spheres;
|
||||
}
|
||||
|
||||
const getSpellSchools = function (spell, books) {
|
||||
let schoolRules = getActiveSettings(SCHOOL_FIELDS, books);
|
||||
return schoolRules.has(SCHOOL_SPELLS_AND_MAGIC)
|
||||
? spell[SCHOOL_SPELLS_AND_MAGIC] || spell['school']
|
||||
: spell['school'];
|
||||
}
|
||||
|
||||
const getSpellSpheres = function (spell, sphereRules) {
|
||||
if (sphereRules.has(SPHERE_SPELLS_AND_MAGIC))
|
||||
return spell[SPHERE_SPELLS_AND_MAGIC] || spell['sphere'];
|
||||
@@ -1142,13 +1173,9 @@ function setupAutoFillSpellInfo(section, spellsTable, levelFunc, optionalRulesFi
|
||||
if (!spell)
|
||||
return;
|
||||
|
||||
let isWizard = section.startsWith('wiz');
|
||||
let isPriest = section.startsWith('pri');
|
||||
let levelField;
|
||||
if (isWizard)
|
||||
levelField = 'level-wizard';
|
||||
if (isPriest)
|
||||
levelField = 'level-priest';
|
||||
let levelField = isPriest ? 'level-priest' : 'level-wizard';
|
||||
let className = isPriest ? 'Priest' : 'Wizard';
|
||||
|
||||
getAttrs([...BOOK_FIELDS, ...optionalRulesFields, levelField], function(books) {
|
||||
if (bookInactiveShowToast(books, spell))
|
||||
@@ -1156,8 +1183,8 @@ function setupAutoFillSpellInfo(section, spellsTable, levelFunc, optionalRulesFi
|
||||
|
||||
let spellInfo = {
|
||||
[`repeating_spells-${section}_spell-cast-time`] : spell['cast-time'],
|
||||
[`repeating_spells-${section}_spell-level`] : levelFunc(spell['level']),
|
||||
[`repeating_spells-${section}_spell-school`] : spell['school'],
|
||||
[`repeating_spells-${section}_spell-level`] : levelFunc(spell['level'], className),
|
||||
[`repeating_spells-${section}_spell-school`] : getSpellSchools(spell, books),
|
||||
[`repeating_spells-${section}_spell-components`] : spell['components'],
|
||||
[`repeating_spells-${section}_spell-range`] : spell['range'],
|
||||
[`repeating_spells-${section}_spell-aoe`] : spell['aoe'],
|
||||
@@ -1175,12 +1202,7 @@ function setupAutoFillSpellInfo(section, spellsTable, levelFunc, optionalRulesFi
|
||||
[`repeating_spells-${section}_spell-crit-size`] : spell['crit-size'] || '',
|
||||
[`repeating_spells-${section}_spell-effect`] : spell['effect']
|
||||
};
|
||||
if (isWizard) {
|
||||
let schoolRules = getActiveSettings(SCHOOL_FIELDS, books);
|
||||
spellInfo[`repeating_spells-${section}_spell-school`] = schoolRules.has(SCHOOL_SPELLS_AND_MAGIC)
|
||||
? spell[SCHOOL_SPELLS_AND_MAGIC] || spell['school']
|
||||
: spell['school'];
|
||||
}
|
||||
|
||||
if (isPriest) {
|
||||
let sphereRules = getActiveSettings(SPHERE_FIELDS, books);
|
||||
spellInfo[`repeating_spells-${section}_spell-sphere`] = getSpellSpheres(spell, sphereRules);
|
||||
@@ -1226,11 +1248,10 @@ let priestSpellLevelsSections = [
|
||||
{level: 'q', sections: ['49', '50', '51', 'priq']},
|
||||
];
|
||||
|
||||
function wizardDisplayLevel(s) {
|
||||
return `Level ${s} Wizard`;
|
||||
}
|
||||
function priestDisplayLevel(s) {
|
||||
return s === 'q' ? 'Quest Spell Priest' : `Level ${s} Priest`;
|
||||
const displaySpellLevel = function(level, className) {
|
||||
return level === 'q'
|
||||
? 'Quest Spell Priest'
|
||||
: `Level ${level} ${className}`;
|
||||
}
|
||||
|
||||
// --- Start setup Spell Slots --- //
|
||||
@@ -1245,11 +1266,11 @@ wizardSpellLevelsSections.forEach(spellLevel => {
|
||||
// Auto set spell info function
|
||||
let lastSection = spellLevel.sections[spellLevel.sections.length - 1];
|
||||
if (isNewSpellSection(lastSection)) {
|
||||
setupAutoFillSpellInfo(lastSection, wizardSpells, wizardDisplayLevel, SCHOOL_FIELDS);
|
||||
setupAutoFillSpellInfo(lastSection, wizardSpells, displaySpellLevel, SCHOOL_FIELDS);
|
||||
setupSpellCrit(lastSection);
|
||||
}
|
||||
});
|
||||
setupAutoFillSpellInfo('wizmonster', wizardSpells, wizardDisplayLevel, SCHOOL_FIELDS);
|
||||
setupAutoFillSpellInfo('wizmonster', wizardSpells, displaySpellLevel, SCHOOL_FIELDS);
|
||||
setupSpellCrit('wizmonster');
|
||||
|
||||
priestSpellLevelsSections.forEach(spellLevel => {
|
||||
@@ -1263,14 +1284,14 @@ priestSpellLevelsSections.forEach(spellLevel => {
|
||||
// Auto set spell info function
|
||||
let lastSection = spellLevel.sections[spellLevel.sections.length - 1];
|
||||
if (isNewSpellSection(lastSection)) {
|
||||
setupAutoFillSpellInfo(lastSection, priestSpells, priestDisplayLevel, SPHERE_FIELDS);
|
||||
setupAutoFillSpellInfo(lastSection, priestSpells, displaySpellLevel, SPHERE_FIELDS);
|
||||
setupSpellCrit(lastSection);
|
||||
if (lastSection !== 'priq') {
|
||||
setupAddPriestSpell(lastSection);
|
||||
}
|
||||
}
|
||||
});
|
||||
setupAutoFillSpellInfo('primonster', priestSpells, priestDisplayLevel, SPHERE_FIELDS);
|
||||
setupAutoFillSpellInfo('primonster', priestSpells, displaySpellLevel, SPHERE_FIELDS);
|
||||
setupSpellCrit('primonster');
|
||||
// --- End setup Spell Slots --- //
|
||||
|
||||
@@ -1463,8 +1484,9 @@ function setWeaponWithBonus(weaponName, setWeaponFunc, comparer, thac0Field, cat
|
||||
if (!match)
|
||||
return;
|
||||
|
||||
let baseWeaponName = weaponName.replace(match[0], ' ').trim();
|
||||
baseWeapons = WEAPONS_TABLE[baseWeaponName];
|
||||
let baseWeaponName1 = weaponName.replace(match[0], '');
|
||||
let baseWeaponName2 = weaponName.replace(match[0], ' ').trim();
|
||||
baseWeapons = WEAPONS_TABLE[baseWeaponName1] || WEAPONS_TABLE[baseWeaponName2];
|
||||
if (!baseWeapons)
|
||||
return;
|
||||
|
||||
@@ -1691,36 +1713,37 @@ on('change:repeating_monsterweapons:weaponname', function(eventInfo) {
|
||||
on('clicked:grenade-miss', async function (eventInfo) {
|
||||
getAttrs(['character_name'], async function(values) {
|
||||
let characterName = values['character_name'];
|
||||
let finalRollText = '&{template:2Egrenademiss} ';
|
||||
let rollBuilder = new RollTemplateBuilder('2Egrenademiss');
|
||||
let grenade = await extractQueryResult('?{What grenade have been thrown?|Acid|Holy water|Oil (lit)|Poison|Other}');
|
||||
switch (grenade) {
|
||||
case 'Acid': finalRollText += `{{name=Acid}} {{aoe=[[1]]}} {{aoesplash=[[1+6]]}} {{hitdmg=[Damage](~${characterName}|acid-hit)}} {{splashdmg=[Damage](~${characterName}|acid-splash)}}`; break;
|
||||
case 'Holy water': finalRollText += `{{name=Holy water}} {{aoe=[[1]]}} {{aoesplash=[[1+6]]}} {{hitdmg=[Damage](~${characterName}|holy-water-hit)}} {{splashdmg=[Damage](~${characterName}|holy-water-splash)}}`; break;
|
||||
case 'Oil (lit)': finalRollText += `{{name=Oil (lit)}} {{aoe=[[3]]}} {{aoesplash=[[3+6]]}} {{hitdmg=[Round 1](~${characterName}|oil-lit-hit1) [Round 2](~${characterName}|oil-lit-hit2)}} {{splashdmg=[Damage](~${characterName}|oil-lit-splash)}}`; break;
|
||||
case 'Poison': finalRollText += `{{name=Poison}} {{aoe=[[1]]}} {{aoesplash=[[1+6]]}} {{hitdmg=Special}} {{splashdmg=Special}}`; break;
|
||||
case 'Acid': rollBuilder.push('name=Acid','aoe=[[1]]','aoesplash=[[1+6]]',`hitdmg=[Damage](~${characterName}|acid-hit)`,`splashdmg=[Damage](~${characterName}|acid-splash)`); break;
|
||||
case 'Holy water': rollBuilder.push('name=Holy water','aoe=[[1]]','aoesplash=[[1+6]]',`hitdmg=[Damage](~${characterName}|holy-water-hit)`,`splashdmg=[Damage](~${characterName}|holy-water-splash)`); break;
|
||||
case 'Oil (lit)': rollBuilder.push('name=Oil (lit)','aoe=[[3]]','aoesplash=[[3+6]]',`hitdmg=[Round 1](~${characterName}|oil-lit-hit1) [Round 2](~${characterName}|oil-lit-hit2)`,`splashdmg=[Damage](~${characterName}|oil-lit-splash)`); break;
|
||||
case 'Poison': rollBuilder.push('name=Poison','aoe=[[1]]','aoesplash=[[1+6]]','hitdmg=Special','splashdmg=Special'); break;
|
||||
case 'Other': {
|
||||
let name = await extractQueryResult('?{Grenade name}');
|
||||
let aoe = await extractQueryResult('?{Area of effect (Diameter in feet)|1}');
|
||||
let damage = await extractQueryResult('?{Direct damage|1d6}');
|
||||
let splash = await extractQueryResult('?{Splash damage|1d3}');
|
||||
|
||||
var customGrenade = {}
|
||||
let customGrenade = {}
|
||||
customGrenade['custom-grenade-name'] = name;
|
||||
customGrenade['custom-grenade-hit'] = damage;
|
||||
customGrenade['custom-grenade-splash'] = splash;
|
||||
setAttrs(customGrenade);
|
||||
|
||||
finalRollText += `{{name=${name}}} {{aoe=[[${aoe}]]}} {{aoesplash=[[${aoe}+6]]}} {{hitdmg=[Damage](~${characterName}|custom-grenade-hit)}} {{splashdmg=[Damage](~${characterName}|custom-grenade-splash)}}`;
|
||||
rollBuilder.push(`name=${name}`,`aoe=[[${aoe}]]`,`aoesplash=[[${aoe}+6]]`,`hitdmg=[Damage](~${characterName}|custom-grenade-hit)`,`splashdmg=[Damage](~${characterName}|custom-grenade-splash)`);
|
||||
}
|
||||
}
|
||||
let distanceName = await extractQueryResult('?{How far was it thrown?|Short|Medium|Long}');
|
||||
finalRollText += `{{direction=[[1d10]]}} {{distancename=${distanceName}}} `;
|
||||
rollBuilder.push('direction=[[1d10]]', `distancename=${distanceName}`);
|
||||
switch (distanceName) {
|
||||
case 'Short': finalRollText += '{{distance=[[1d6]]}} '; break;
|
||||
case 'Medium': finalRollText += '{{distance=[[1d10]]}} '; break;
|
||||
case 'Long': finalRollText += '{{distance=[[2d10]]}} '; break;
|
||||
case 'Short': rollBuilder.push('distance=[[1d6cs1cf6]]'); break;
|
||||
case 'Medium': rollBuilder.push('distance=[[1d10cs1cf10]]'); break;
|
||||
case 'Long': rollBuilder.push('distance=[[2d10cs1cf10]]'); break;
|
||||
}
|
||||
finalRollText += '{{hit=[[0]]}} {{splash=[[0]]}} ';
|
||||
rollBuilder.push('hit=[[0]]','splash=[[0]]');
|
||||
let finalRollText = rollBuilder.string();
|
||||
console.log(finalRollText);
|
||||
startRoll(finalRollText, function (roll) {
|
||||
console.log(roll);
|
||||
@@ -1863,8 +1886,8 @@ function setupSpellCrit(section) {
|
||||
console.log(eventInfo);
|
||||
let attrFields = fields.map(s => prefix+s);
|
||||
getAttrs(attrFields, async function (values) {
|
||||
let rollBuilder = ['character=@{character_name}'];
|
||||
rollBuilder.push(`name=${values[prefix+'spell-name']}`);
|
||||
let rollBuilder = new RollTemplateBuilder('2Epocrit');
|
||||
rollBuilder.push('character=@{character_name}',`name=${values[prefix+'spell-name']}`);
|
||||
|
||||
let errors = [];
|
||||
|
||||
@@ -2071,9 +2094,8 @@ function setupSpellCrit(section) {
|
||||
}
|
||||
}
|
||||
|
||||
let displayHits = rollBuilder.map(s => `{{${s}}}`).join(' ');
|
||||
let displayInjuries = Array.from(set).map(s => `{{${s}}}`).join(' ');
|
||||
let finalRollText = `&{template:2Epocrit} ${displayHits} ${displayInjuries}`;
|
||||
rollBuilder.push(Array.from(set));
|
||||
let finalRollText = rollBuilder.string();
|
||||
if (section.includes('monster'))
|
||||
finalRollText = `@{wtype} ${finalRollText}`;
|
||||
|
||||
@@ -2145,7 +2167,9 @@ function critEffectExplanations(critEffect, set) {
|
||||
|
||||
function weaponPoCritTemplate(prefix, fields, nameFunc, baseDamageFunc, damageAdjFunc) {
|
||||
getAttrs(fields, async function (values) {
|
||||
let rollBuilder = ['character=@{character_name}'];
|
||||
let rollBuilder = new RollTemplateBuilder('2Epocrit');
|
||||
rollBuilder.push('character=@{character_name}');
|
||||
|
||||
let errors = [];
|
||||
|
||||
let weaponName = nameFunc(values);
|
||||
@@ -2267,9 +2291,8 @@ function weaponPoCritTemplate(prefix, fields, nameFunc, baseDamageFunc, damageAd
|
||||
if (errors.length > 0)
|
||||
rollBuilder.push(`hits=Cannot show effects due to missing fields: ${errors.join(', ')}`);
|
||||
|
||||
let displayHits = rollBuilder.map(s => `{{${s}}}`).join(' ');
|
||||
let displayInjuries = Array.from(set).map(s => `{{${s}}}`).join(' ');
|
||||
let finalRollText = `&{template:2Epocrit} ${displayHits} ${displayInjuries}`;
|
||||
rollBuilder.push(Array.from(set));
|
||||
let finalRollText = rollBuilder.string();
|
||||
|
||||
console.log(finalRollText);
|
||||
|
||||
@@ -2506,6 +2529,97 @@ on('change:repeating_gear-stored:gear-stored-weight change:repeating_gear-stored
|
||||
})
|
||||
.execute();
|
||||
})
|
||||
|
||||
on('change:repeating_scrolls:scroll', async function (eventInfo) {
|
||||
if (!eventInfo.newValue)
|
||||
return;
|
||||
|
||||
let spellName = eventInfo.newValue.replace('Scroll of ', '');
|
||||
let wizardSpell = wizardSpells['wizmonster'][spellName];
|
||||
let priestSpell = priestSpells['primonster'][spellName];
|
||||
if (!wizardSpell && !priestSpell)
|
||||
return
|
||||
|
||||
let spell;
|
||||
let spellClass;
|
||||
if (wizardSpell && priestSpell) {
|
||||
spellClass = await extractQueryResult(`?{Is ${eventInfo.newValue} a Wizard or Priest scroll?|Wizard|Priest}`);
|
||||
spell = spellClass === 'Wizard' ? wizardSpell : priestSpell;
|
||||
} else if (wizardSpell) {
|
||||
spell = wizardSpell;
|
||||
spellClass = 'Wizard';
|
||||
} else {
|
||||
spell = priestSpell;
|
||||
spellClass = 'Priest';
|
||||
}
|
||||
|
||||
getAttrs([...BOOK_FIELDS, ...SCHOOL_FIELDS, ...SPHERE_FIELDS], async function(books) {
|
||||
if (bookInactiveShowToast(books, spell))
|
||||
return
|
||||
|
||||
let parse = parseSourceAttribute(eventInfo);
|
||||
|
||||
let rollBuilder = new RollTemplateBuilder('2Espell');
|
||||
rollBuilder.push(`title=@{scroll}\n(Casting level @{scroll-level})`);
|
||||
rollBuilder.push(`splevel=${displaySpellLevel(spell.level, spellClass)}`);
|
||||
rollBuilder.push(`school=${getSpellSchools(spell, books)}`);
|
||||
if (spellClass === 'Priest') {
|
||||
let sphereRules = getActiveSettings(SPHERE_FIELDS, books);
|
||||
rollBuilder.push(`sphere=${getSpellSpheres(spell, sphereRules)}`);
|
||||
}
|
||||
rollBuilder.push(`range=${spell['range']}`);
|
||||
rollBuilder.push(`components=V`);
|
||||
rollBuilder.push(`duration=${spell['duration']}`);
|
||||
rollBuilder.push(`time=@{scroll-speed}`);
|
||||
rollBuilder.push('scroll=true');
|
||||
rollBuilder.push(`aoe=${spell['aoe']}`);
|
||||
rollBuilder.push(`save=${spell['saving-throw']}`);
|
||||
rollBuilder.push(`subtlety=${spell['subtlety'] || ''}`);
|
||||
rollBuilder.push(`sensory=${spell['sensory'] || ''}`);
|
||||
rollBuilder.push(`knockdown=${spell['knockdown'] || ''}`);
|
||||
rollBuilder.push(`crit=${spell['crit-size'] || ''}`);
|
||||
rollBuilder.push(`damage=${spell['damage']}`);
|
||||
rollBuilder.push(`damagetype=${spell['damage-type']}`);
|
||||
rollBuilder.push(`reference=${spell['reference']}, ${spell['book']}`);
|
||||
rollBuilder.push(`materials=${spell['materials'] ? 'Included in the scroll.' : ''}`);
|
||||
rollBuilder.push('checkroll=[[1d100]]%');
|
||||
rollBuilder.push('checktarget=[[@{scroll-failure}]]%');
|
||||
rollBuilder.push('fail=DM roll for Magical Spell Failure');
|
||||
rollBuilder.push(`effects=${spell['effect']}`);
|
||||
|
||||
let scrollMacro = rollBuilder.string();
|
||||
scrollMacro = scrollMacro.replaceAll('[[@{level-wizard}]]','[[@{scroll-level}]]')
|
||||
.replaceAll('[[@{level-priest}]]', '[[@{scroll-level}]]');
|
||||
|
||||
let recommendedMinimumLevel;
|
||||
|
||||
let spellLevel = parseInt(spell.level);
|
||||
if (isNaN(spellLevel)) {
|
||||
recommendedMinimumLevel = 6;
|
||||
} else if (spellLevel <= 3) {
|
||||
recommendedMinimumLevel = 6;
|
||||
} else if (spellLevel === 4 || spellLevel === 5) {
|
||||
recommendedMinimumLevel = spellLevel*2;
|
||||
} else if (spellLevel === 6 && spellClass === 'Priest') {
|
||||
recommendedMinimumLevel = spellLevel*2;
|
||||
} else if (spellLevel >= 6) {
|
||||
recommendedMinimumLevel = spellLevel*2+1
|
||||
}
|
||||
|
||||
let scribeLevel = await extractQueryResult(`?{At what level is ${eventInfo.newValue} scribed? (Recommended minimum is ${recommendedMinimumLevel}th level)|${recommendedMinimumLevel}}`);
|
||||
|
||||
let spellFailure = await extractQueryResult(`?{What is the risk of spell failure for ${eventInfo.newValue}? (If you do not use this rule, set the value to 0)|0}`);
|
||||
|
||||
let scrollInfo = {
|
||||
[`repeating_scrolls_${parse.rowId}_scroll-speed`]: spell['cast-time'],
|
||||
[`repeating_scrolls_${parse.rowId}_scroll-level`]: scribeLevel,
|
||||
[`repeating_scrolls_${parse.rowId}_scroll-failure`]: spellFailure,
|
||||
[`repeating_scrolls_${parse.rowId}_scroll-macro`]: scrollMacro,
|
||||
}
|
||||
|
||||
setAttrs(scrollInfo);
|
||||
});
|
||||
});
|
||||
//#endregion
|
||||
|
||||
on(`change:repeating_gem:gemvalue change:repeating_gem:gemqty remove:repeating_gem`, function(eventInfo) {
|
||||
@@ -2603,10 +2717,14 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
|
||||
powerInfo[`repeating_${section}_PSP-cost${cost_number}`] = power['initial-cost'];
|
||||
powerInfo[`repeating_${section}_PSP-cost-maintenance`] = power['maintenance-cost'];
|
||||
|
||||
let macroBuilder = [];
|
||||
let macroBuilder = new RollTemplateBuilder('2Epsionic');
|
||||
macroBuilder.push(`title=@{${name}}`);
|
||||
macroBuilder.push(`discipline=${displayDiscipline}`);
|
||||
macroBuilder.push(`tier=${tier}`);
|
||||
let attribute = power['attribute'];
|
||||
attribute = attribute.startsWith("@") ? attribute.substring(2,attribute.length-1) : 'Affected'
|
||||
let modifier = power['modifier'] === '0' ? '' : power['modifier'];
|
||||
macroBuilder.push(`powerscoretext=${attribute} ${modifier}`.trim());
|
||||
macroBuilder.push(`initial=@{PSP-cost${cost_number}}`);
|
||||
macroBuilder.push(`maintenance=@{PSP-cost-maintenance}`);
|
||||
macroBuilder.push(`range=${power['range']}`);
|
||||
@@ -2614,12 +2732,15 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
|
||||
let prep = power['prep'];
|
||||
let prepMatch = prep.match(/^[1-9]\d*$/);
|
||||
if (prepMatch) {
|
||||
prep += parseInt(prepMatch[0]) > 1 ? ' rounds' : 'round';
|
||||
prep += parseInt(prepMatch[0]) > 1 ? ' rounds' : ' round';
|
||||
}
|
||||
macroBuilder.push(`prep=${prep}`);
|
||||
macroBuilder.push(`prereq=${power['prerequisites']}`);
|
||||
macroBuilder.push(`reference=${power['reference']}, ${power['book']}`)
|
||||
let powerRoll = power['roll-override'] || `[[1d20cf20-(@{psionic-mod${number}})]]`;
|
||||
let powerRoll = `[[1d20cf20-(@{psionic-mod${number}})]]`;
|
||||
if (power['roll-override']) {
|
||||
powerRoll = `[${power['roll-override']}](~${values.character_name}|repeating_${section}_${parse.rowId}_action-check-dm)`;
|
||||
}
|
||||
macroBuilder.push(`powerroll=${powerRoll}`);
|
||||
let powerScore = `@{powerscore-nomod${number}}+(@{powerscore-mod${number}})+(@{psion-armor-penalty})`;
|
||||
if (power['context-modifier']) {
|
||||
@@ -2637,16 +2758,17 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
|
||||
if (power['healing']) {
|
||||
macroBuilder.push(`healing=${power['healing']}`);
|
||||
}
|
||||
macroBuilder.push('fail=Half of PSP cost (rounded up) is lost.');
|
||||
macroBuilder.push(`effects=${power['effect']}`);
|
||||
|
||||
let macroValue = macroBuilder.map(s => `{{${s}}}`).join(' ');
|
||||
powerInfo[`repeating_${section}_${macro}`] = `&{template:2Epsionic} ${macroValue}`;
|
||||
let macroValue = macroBuilder.string();
|
||||
powerInfo[`repeating_${section}_${macro}`] = macroValue;
|
||||
|
||||
setAttrs(powerInfo,{silent:true});
|
||||
});
|
||||
});
|
||||
|
||||
on(`clicked:repeating_${section}:action-check`, function (eventInfo) {
|
||||
on(`clicked:repeating_${section}:action-check clicked:repeating_${section}:action-check-dm`, function (eventInfo) {
|
||||
let parse = parseSourceAttribute(eventInfo);
|
||||
getAttrs([`repeating_${section}_${macro}`, 'psion-armor-penalty'], function (values) {
|
||||
let displayDiscipline = discipline;
|
||||
@@ -2659,10 +2781,9 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
|
||||
tier = match ? match[1] : '';
|
||||
}
|
||||
|
||||
let macroBuilder = [];
|
||||
let macroBuilder = new RollTemplateBuilder('2Epsionic');
|
||||
|
||||
match = fullMacro.match(/\{\{(title=.*?)}} *\{\{/);
|
||||
console.log(match);
|
||||
if (match) macroBuilder.push(match[1]);
|
||||
else macroBuilder.push(`title=@{${name}}`);
|
||||
|
||||
@@ -2696,8 +2817,17 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
|
||||
match = fullMacro.match(/\{\{(1effect=.*?)}} *\{\{/);
|
||||
if (match) macroBuilder.push(match[1]);
|
||||
|
||||
let macroValue = macroBuilder.map(s => `{{${s}}}`).join(' ');
|
||||
macroValue = `&{template:2Epsionic} ${macroValue}`;
|
||||
match = fullMacro.match(/\{\{(success=.*?)}} *\{\{/)
|
||||
if (match) macroBuilder.push(match[1]);
|
||||
|
||||
match = fullMacro.match(/\{\{(fail=.*?)}} *\{\{/)
|
||||
if (match) macroBuilder.push(match[1]);
|
||||
|
||||
let macroValue = macroBuilder.string();
|
||||
|
||||
if (parse.attribute.endsWith('dm')) {
|
||||
macroValue = `/w gm ${macroValue}`;
|
||||
}
|
||||
|
||||
rollPsionicTemplate(macroValue, parse.rowId, values);
|
||||
});
|
||||
@@ -2753,6 +2883,7 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
|
||||
// Show / Hide buttons for various repeating sections
|
||||
const REPEATING_SECTIONS = [
|
||||
...PSIONIC_CORE_SECTIONS.map(e => e.section),
|
||||
'scrolls',
|
||||
];
|
||||
REPEATING_SECTIONS.forEach(section => {
|
||||
on(`clicked:repeating_${section}:show clicked:repeating_${section}:hide`, function (eventInfo) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// --- Version change start --- //
|
||||
|
||||
const SHEET_NAME = 'AD&D 2E Revised';
|
||||
const SHEET_VERSION = '4.13.1';
|
||||
const SHEET_VERSION = '4.14.2';
|
||||
|
||||
on('sheet:opened', function(){
|
||||
getAttrs(['character_sheet'],function(attrs){
|
||||
|
||||
@@ -412,250 +412,250 @@ weaponProficiencies['Special Maneuver: Levitation (7)'] = {
|
||||
};
|
||||
//#endregion
|
||||
|
||||
//#region Player's Options: Combat & Tactics
|
||||
//#region Player's Option: Combat & Tactics
|
||||
weaponProficiencies['Tight Group, Hammers'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Maces'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Daggers & Knives'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Spear-like polearms'] = {
|
||||
'slots': 2,
|
||||
'category': 'Polearms',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Poleaxes'] = {
|
||||
'slots': 2,
|
||||
'category': 'Polearms',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Bills'] = {
|
||||
'slots': 2,
|
||||
'category': 'Polearms',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Glaives'] = {
|
||||
'slots': 2,
|
||||
'category': 'Polearms',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Beaked'] = {
|
||||
'slots': 2,
|
||||
'category': 'Polearms',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Javelins'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Ancient Swords'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Roman Swords'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Middle Eastern Swords'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Oriental Swords'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Short Swords'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Medium Swords'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Large Swords'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Chain & Rope Weapons'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Martial Arts Weapons'] = {
|
||||
'slots': 2,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Hand match weapons'] = {
|
||||
'slots': 2,
|
||||
'category': 'Firearms',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Matchlocks'] = {
|
||||
'slots': 2,
|
||||
'category': 'Firearms',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Wheellocks'] = {
|
||||
'slots': 2,
|
||||
'category': 'Firearms',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Tight Group, Snaplocks and Flintlocks'] = {
|
||||
'slots': 2,
|
||||
'category': 'Firearms',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Broad Group, Axes, Picks, and Hammers'] = {
|
||||
'slots': 3,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Broad Group, Clubs, Maces, and Flails'] = {
|
||||
'slots': 3,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Broad Group, Axes, Picks, and Hammers'] = {
|
||||
'slots': 3,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Broad Group, Polearms'] = {
|
||||
'slots': 3,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Broad Group, Spears & Javelins'] = {
|
||||
'slots': 3,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Broad Group, Swords'] = {
|
||||
'slots': 3,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Broad Group, Firearms'] = {
|
||||
'slots': 3,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Missile or Thrown Weapon Style Specialization'] = {
|
||||
'slots': 1,
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Buckler'] = {
|
||||
'slots': 1,
|
||||
'category': 'Shield Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Small shield'] = {
|
||||
'slots': 1,
|
||||
'category': 'Shield Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Medium shield'] = {
|
||||
'slots': 1,
|
||||
'category': 'Shield Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Body shield'] = {
|
||||
'slots': 1,
|
||||
'category': 'Shield Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Banded mail'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Brigandine'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Bronze plate'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Chain mail'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Cord armor'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Field plate'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Full plate'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Hide armor'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Improved mail'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Leather armor'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Light scale'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Metal lamellar'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Padded armor'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Plate mail'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Ring mail'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Scale armor'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Splint mail'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Studded leather'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
weaponProficiencies['Wood/bone armor'] = {
|
||||
'slots': 1,
|
||||
'category': 'Armor Proficiency',
|
||||
'book': 'Player\'s Options: Combat & Tactics'
|
||||
'book': 'Player\'s Option: Combat & Tactics'
|
||||
};
|
||||
//#endregion
|
||||
module.exports = weaponProficiencies;
|
||||
@@ -157,7 +157,7 @@ WEAPONS_TABLE['club'].push({
|
||||
'strength': true,
|
||||
'small-medium': '1d6',
|
||||
'large': '1d3',
|
||||
'book': ['PHB', 'Arms and Equipment Guide','The Complete Ninja\'s Handbook'],
|
||||
'book': ['PHB','Arms and Equipment Guide','The Complete Ninja\'s Handbook'],
|
||||
'category': ['Melee','Range']
|
||||
});
|
||||
|
||||
@@ -187,7 +187,7 @@ WEAPONS_TABLE['light crossbow, light quarrel'].push({
|
||||
'range': '60/120/180',
|
||||
'small-medium': '1d4',
|
||||
'large': '1d4',
|
||||
'book': ['PHB','The Complete Ninja\'s Handbook'],
|
||||
'book': ['PHB'],
|
||||
'category': ['Range']
|
||||
});
|
||||
|
||||
@@ -247,7 +247,7 @@ WEAPONS_TABLE['dart'].push({
|
||||
'strength': true,
|
||||
'small-medium': '1d3',
|
||||
'large': '1d2',
|
||||
'book': ['PHB', 'Arms and Equipment Guide','The Complete Ninja\'s Handbook'],
|
||||
'book': ['PHB','Arms and Equipment Guide','The Complete Ninja\'s Handbook'],
|
||||
'category': ['Range']
|
||||
});
|
||||
|
||||
@@ -751,7 +751,7 @@ WEAPONS_TABLE['sling, stone'].push({
|
||||
'strength': true,
|
||||
'small-medium': '1d4',
|
||||
'large': '1d4',
|
||||
'book': ['PHB','Arms and Equipment Guide'],
|
||||
'book': ['PHB','Arms and Equipment Guide','The Complete Ninja\'s Handbook'],
|
||||
'category': ['Range']
|
||||
});
|
||||
|
||||
@@ -1020,7 +1020,7 @@ WEAPONS_TABLE['whip'].push({
|
||||
'speed': 8,
|
||||
'small-medium': '1d2',
|
||||
'large': '1',
|
||||
'book': ['PHB','Arms and Equipment Guide'],
|
||||
'book': ['PHB','Arms and Equipment Guide','The Complete Ninja\'s Handbook'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
@@ -1172,7 +1172,7 @@ WEAPONS_TABLE['cestus'].push({
|
||||
'speed': 2,
|
||||
'small-medium': '1d4',
|
||||
'large': '1d3',
|
||||
'book': ['The Complete Fighter\'s Handbook', 'Arms and Equipment Guide'],
|
||||
'book': ['The Complete Fighter\'s Handbook','Arms and Equipment Guide'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
@@ -1187,7 +1187,7 @@ WEAPONS_TABLE['chain'].push({
|
||||
'strength': true,
|
||||
'small-medium': '1d4+1',
|
||||
'large': '1d4',
|
||||
'book': ['The Complete Fighter\'s Handbook', 'Arms and Equipment Guide'],
|
||||
'book': ['The Complete Fighter\'s Handbook','Arms and Equipment Guide'],
|
||||
'category': ['Melee','Range']
|
||||
});
|
||||
|
||||
@@ -1246,7 +1246,7 @@ WEAPONS_TABLE['gaff/hook'].push({
|
||||
'speed': 2,
|
||||
'small-medium': '1d4',
|
||||
'large': '1d3',
|
||||
'book': ['The Complete Fighter\'s Handbook', 'Arms and Equipment Guide'],
|
||||
'book': ['The Complete Fighter\'s Handbook','Arms and Equipment Guide'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
@@ -1280,7 +1280,7 @@ WEAPONS_TABLE['harpoon, two-handed'].push({
|
||||
WEAPONS_TABLE['javelin, one-handed'] = [];
|
||||
WEAPONS_TABLE['javelin, one-handed'].push({
|
||||
'name': 'Javelin, One-handed',
|
||||
'size': 'L',
|
||||
'size': 'M',
|
||||
'type': 'P',
|
||||
'speed': 4,
|
||||
'rof': '1',
|
||||
@@ -1288,19 +1288,19 @@ WEAPONS_TABLE['javelin, one-handed'].push({
|
||||
'strength': true,
|
||||
'small-medium': '1d4',
|
||||
'large': '1d4',
|
||||
'book': ['The Complete Fighter\'s Handbook','Arms and Equipment Guide'],
|
||||
'book': ['The Complete Fighter\'s Handbook'],
|
||||
'category': ['Melee','Range']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['javelin, two-handed'] = [];
|
||||
WEAPONS_TABLE['javelin, two-handed'].push({
|
||||
'name': 'Javelin, Two-handed',
|
||||
'size': 'L',
|
||||
'size': 'M',
|
||||
'type': 'P',
|
||||
'speed': 4,
|
||||
'small-medium': '1d6',
|
||||
'large': '1d6',
|
||||
'book': ['The Complete Fighter\'s Handbook','Arms and Equipment Guide'],
|
||||
'book': ['The Complete Fighter\'s Handbook'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
@@ -1308,7 +1308,7 @@ WEAPONS_TABLE['stone javelin, one-handed'] = [];
|
||||
WEAPONS_TABLE['stone javelin, one-handed'].push({
|
||||
'name': 'Stone javelin, One-handed',
|
||||
'noProf': true,
|
||||
'size': 'L',
|
||||
'size': 'M',
|
||||
'type': 'P',
|
||||
'speed': 4,
|
||||
'rof': '1',
|
||||
@@ -1316,7 +1316,7 @@ WEAPONS_TABLE['stone javelin, one-handed'].push({
|
||||
'strength': true,
|
||||
'small-medium': '1d4',
|
||||
'large': '1d4',
|
||||
'book': ['The Complete Fighter\'s Handbook'],
|
||||
'book': ['The Complete Fighter\'s Handbook','Arms and Equipment Guide'],
|
||||
'category': ['Melee','Range']
|
||||
});
|
||||
|
||||
@@ -1324,12 +1324,12 @@ WEAPONS_TABLE['stone javelin, two-handed'] = [];
|
||||
WEAPONS_TABLE['stone javelin, two-handed'].push({
|
||||
'name': 'Stone javelin, Two-handed',
|
||||
'noProf': true,
|
||||
'size': 'L',
|
||||
'size': 'M',
|
||||
'type': 'P',
|
||||
'speed': 4,
|
||||
'small-medium': '1d4+1',
|
||||
'large': '1d6',
|
||||
'book': ['The Complete Fighter\'s Handbook'],
|
||||
'book': ['The Complete Fighter\'s Handbook','Arms and Equipment Guide'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
@@ -1376,7 +1376,7 @@ WEAPONS_TABLE['lasso'].push({
|
||||
'strength': true,
|
||||
'small-medium': '',
|
||||
'large': '',
|
||||
'book': ['The Complete Fighter\'s Handbook', 'The Complete Priest\'s Handbook', 'Arms and Equipment Guide'],
|
||||
'book': ['The Complete Fighter\'s Handbook','The Complete Priest\'s Handbook','Arms and Equipment Guide'],
|
||||
'category': ['Range']
|
||||
});
|
||||
|
||||
@@ -1793,7 +1793,7 @@ WEAPONS_TABLE['boku-toh'].push({
|
||||
WEAPONS_TABLE['jitte'] = [];
|
||||
WEAPONS_TABLE['jitte'].push({
|
||||
'name': 'Jitte',
|
||||
'size': 'M',
|
||||
'size': 'S',
|
||||
'type': 'B',
|
||||
'speed': 2,
|
||||
'small-medium': '1d4',
|
||||
@@ -1807,7 +1807,7 @@ WEAPONS_TABLE['shuriken'].push({
|
||||
'size': 'S',
|
||||
'type': 'P',
|
||||
'speed': 2,
|
||||
'rof': '3/1',
|
||||
'rof': '2/1',
|
||||
'range': '5/10/20',
|
||||
'strength': true,
|
||||
'small-medium': '1d6',
|
||||
@@ -1912,10 +1912,35 @@ WEAPONS_TABLE['light crossbow, light quarrel'].push({
|
||||
'range': '60/120/180',
|
||||
'small-medium': '1d4',
|
||||
'large': '1d4',
|
||||
'book': ['Arms and Equipment Guide'],
|
||||
'book': ['Arms and Equipment Guide','The Complete Ninja\'s Handbook'],
|
||||
'category': ['Range']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['javelin, one-handed'].push({
|
||||
'name': 'Javelin, One-handed',
|
||||
'size': 'L',
|
||||
'type': 'P',
|
||||
'speed': 4,
|
||||
'rof': '1',
|
||||
'range': '20/40/60',
|
||||
'strength': true,
|
||||
'small-medium': '1d4',
|
||||
'large': '1d4',
|
||||
'book': ['Arms and Equipment Guide'],
|
||||
'category': ['Melee','Range']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['javelin, two-handed'].push({
|
||||
'name': 'Javelin, Two-handed',
|
||||
'size': 'L',
|
||||
'type': 'P',
|
||||
'speed': 4,
|
||||
'small-medium': '1d6',
|
||||
'large': '1d6',
|
||||
'book': ['Arms and Equipment Guide'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['parrying dagger'] = [];
|
||||
WEAPONS_TABLE['parrying dagger'].push({
|
||||
'name': 'Parrying dagger',
|
||||
@@ -1929,33 +1954,6 @@ WEAPONS_TABLE['parrying dagger'].push({
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['stone javelin, one-handed'].push({
|
||||
'name': 'Stone javelin, One-handed',
|
||||
'noProf': true,
|
||||
'size': 'M',
|
||||
'type': 'P',
|
||||
'speed': 4,
|
||||
'rof': '1',
|
||||
'range': '20/40/60',
|
||||
'strength': true,
|
||||
'small-medium': '1d4',
|
||||
'large': '1d4',
|
||||
'book': ['Arms and Equipment Guide'],
|
||||
'category': ['Melee','Range']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['stone javelin, two-handed'].push({
|
||||
'name': 'Stone javelin, Two-handed',
|
||||
'noProf': true,
|
||||
'size': 'M',
|
||||
'type': 'P',
|
||||
'speed': 4,
|
||||
'small-medium': '1d4+1',
|
||||
'large': '1d6',
|
||||
'book': ['Arms and Equipment Guide'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['sap'] = [];
|
||||
WEAPONS_TABLE['sap'].push({
|
||||
'name': 'Sap',
|
||||
@@ -2333,12 +2331,13 @@ WEAPONS_TABLE['katana'].push({
|
||||
|
||||
WEAPONS_TABLE['naginata'].push({
|
||||
'name': 'Naginata',
|
||||
'group': 'Polearm',
|
||||
'size': 'L',
|
||||
'type': 'S',
|
||||
'speed': 7,
|
||||
'small-medium': '1d10',
|
||||
'large': '1d12',
|
||||
'book': ['The Complete Book of Humanoids'],
|
||||
'small-medium': '1d8',
|
||||
'large': '1d10',
|
||||
'book': ['The Complete Book of Humanoids','Player\'s Option: Skills & Powers'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
@@ -2445,6 +2444,18 @@ WEAPONS_TABLE['hornhead staff'].push({
|
||||
'book': ['The Complete Book of Humanoids'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
WEAPONS_TABLE['finhead broadsword'] = [];
|
||||
WEAPONS_TABLE['finhead broadsword'].push({
|
||||
'name': 'Finhead broadsword',
|
||||
'group': 'Saurial Weapon',
|
||||
'size': 'M',
|
||||
'type': 'S',
|
||||
'speed': 6,
|
||||
'small-medium': '1d8',
|
||||
'large': '1d10',
|
||||
'book': ['The Complete Book of Humanoids'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
//#endregion
|
||||
|
||||
//#region The Complete Ranger's Handbook
|
||||
@@ -2959,7 +2970,7 @@ WEAPONS_TABLE['chu-ko-nu (repeater), light quarrel'].push({
|
||||
'name': 'Chu-ko-nu (repeater), Light quarrel',
|
||||
'group': 'Crossbow',
|
||||
'size': 'M',
|
||||
'ammo-size': 'S',
|
||||
'ammo-size': 'M',
|
||||
'type': 'P',
|
||||
'speed': 10,
|
||||
'rof': '3/2',
|
||||
@@ -2985,11 +2996,11 @@ WEAPONS_TABLE['fang'].push({
|
||||
WEAPONS_TABLE['fukimi-bari (mouth darts)'] = [];
|
||||
WEAPONS_TABLE['fukimi-bari (mouth darts)'].push({
|
||||
'name': 'Fukimi-bari (mouth darts)',
|
||||
'rof': '1',
|
||||
'range': '3’/—/—',
|
||||
'size': 'S',
|
||||
'type': 'P',
|
||||
'speed': 1,
|
||||
'rof': '1',
|
||||
'range': '3’/—/—',
|
||||
'small-medium': '1d2',
|
||||
'large': '1d2',
|
||||
'book': ['The Complete Ninja\'s Handbook'],
|
||||
@@ -3061,10 +3072,12 @@ WEAPONS_TABLE['kau sin ke (whipping chain)'].push({
|
||||
'size': 'L',
|
||||
'type': 'B',
|
||||
'speed': 7,
|
||||
'rof': '',
|
||||
'range': '',
|
||||
'small-medium': '1d8',
|
||||
'large': '1d6',
|
||||
'book': ['The Complete Ninja\'s Handbook'],
|
||||
'category': ['Melee']
|
||||
'category': ['Melee','Range']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['kawanaga (grapnel)'] = [];
|
||||
@@ -3129,13 +3142,10 @@ WEAPONS_TABLE['lasso'].push({
|
||||
'size': 'L',
|
||||
'type': '—',
|
||||
'speed': 7,
|
||||
'rof': '',
|
||||
'range': '',
|
||||
'strength': true,
|
||||
'small-medium': '',
|
||||
'large': '',
|
||||
'book': ['The Complete Ninja\'s Handbook'],
|
||||
'category': ['Range']
|
||||
'category': ['Melee']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['manriki-gusari (chain)'] = [];
|
||||
@@ -3150,7 +3160,7 @@ WEAPONS_TABLE['manriki-gusari (chain)'].push({
|
||||
'small-medium': '1d4+1',
|
||||
'large': '1d4',
|
||||
'book': ['The Complete Ninja\'s Handbook'],
|
||||
'category': ['Melee', 'Range']
|
||||
'category': ['Melee','Range']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['metsubishi (blinding powders)'] = [];
|
||||
@@ -3159,7 +3169,7 @@ WEAPONS_TABLE['metsubishi (blinding powders)'].push({
|
||||
'size': 'S',
|
||||
'type': '—',
|
||||
'speed': 3,
|
||||
'rof': '1/2',
|
||||
'rof': '1/3',
|
||||
'range': '3’/—/—',
|
||||
'small-medium': '—',
|
||||
'large': '—',
|
||||
@@ -3170,7 +3180,7 @@ WEAPONS_TABLE['metsubishi (blinding powders)'].push({
|
||||
WEAPONS_TABLE['nage teppo (grenades)'] = [];
|
||||
WEAPONS_TABLE['nage teppo (grenades)'].push({
|
||||
'name': 'Nage teppo (grenades)',
|
||||
'size': '—',
|
||||
'size': '',
|
||||
'type': 'B',
|
||||
'speed': 9,
|
||||
'rof': '1',
|
||||
@@ -3371,20 +3381,6 @@ WEAPONS_TABLE['sling, bullet'].push({
|
||||
'category': ['Range']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['sling, stone'].push({
|
||||
'name': 'Sling, Stone',
|
||||
'size': 'S',
|
||||
'type': 'B',
|
||||
'speed': 6,
|
||||
'rof': '1',
|
||||
'range': '40/80/1600',
|
||||
'strength': true,
|
||||
'small-medium': '1d4',
|
||||
'large': '1d4',
|
||||
'book': ['The Complete Ninja\'s Handbook'],
|
||||
'category': ['Range']
|
||||
});
|
||||
|
||||
WEAPONS_TABLE['staff sling, bullet'].push({
|
||||
'name': 'Staff sling, Bullet',
|
||||
'size': 'M',
|
||||
@@ -3407,7 +3403,7 @@ WEAPONS_TABLE['staff sling, stone'].push({
|
||||
'type': 'B',
|
||||
'speed': 11,
|
||||
'rof': '1/2',
|
||||
'range': '—/30-60/200',
|
||||
'range': '—/30-60/90',
|
||||
'strength': true,
|
||||
'small-medium': '1d8',
|
||||
'large': '2d4',
|
||||
@@ -3577,8 +3573,8 @@ WEAPONS_TABLE['bokken, two-handed (wooden sword)'].push({
|
||||
'size': 'M',
|
||||
'type': 'B',
|
||||
'speed': 4,
|
||||
'small-medium': '2d6',
|
||||
'large': '1d6',
|
||||
'small-medium': '1d6',
|
||||
'large': '1d3',
|
||||
'book': ['The Complete Ninja\'s Handbook'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
@@ -6485,7 +6481,7 @@ WEAPONS_TABLE['torch'].push({
|
||||
'name': 'Torch',
|
||||
'noProf': true,
|
||||
'size': 'M',
|
||||
'type': 'Bd',
|
||||
'type': 'B',
|
||||
'speed': 4,
|
||||
'reach': '1',
|
||||
'rof': '1',
|
||||
@@ -7647,17 +7643,6 @@ WEAPONS_TABLE['nagimaki'].push({
|
||||
'book': ['Player\'s Option: Skills & Powers'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
WEAPONS_TABLE['naginata'].push({
|
||||
'name': 'Naginata',
|
||||
'group': 'Polearm',
|
||||
'size': 'L',
|
||||
'type': 'S',
|
||||
'speed': 7,
|
||||
'small-medium': '1d8',
|
||||
'large': '1d10',
|
||||
'book': ['Player\'s Option: Skills & Powers'],
|
||||
'category': ['Melee']
|
||||
});
|
||||
WEAPONS_TABLE['rock'].push({
|
||||
'name': 'Rock',
|
||||
'noProf': true,
|
||||
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,474 @@
|
||||
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3.0
|
||||
/* eslint-disable no-var, semi, prefer-arrow-callback, prefer-template */
|
||||
|
||||
/**
|
||||
* Collection of methods for sending analytics events to Archive.org's analytics server.
|
||||
*
|
||||
* These events are used for internal stats and sent (in anonymized form) to Google Analytics.
|
||||
*
|
||||
* @see analytics.md
|
||||
*
|
||||
* @type {Object}
|
||||
*/
|
||||
window.archive_analytics = (function defineArchiveAnalytics() {
|
||||
// keep orignal Date object so as not to be affected by wayback's
|
||||
// hijacking global Date object
|
||||
var Date = window.Date;
|
||||
var ARCHIVE_ANALYTICS_VERSION = 2;
|
||||
var DEFAULT_SERVICE = 'ao_2';
|
||||
var NO_SAMPLING_SERVICE = 'ao_no_sampling'; // sends every event instead of a percentage
|
||||
|
||||
var startTime = new Date();
|
||||
|
||||
/**
|
||||
* @return {Boolean}
|
||||
*/
|
||||
function isPerformanceTimingApiSupported() {
|
||||
return 'performance' in window && 'timing' in window.performance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines how many milliseconds elapsed between the browser starting to parse the DOM and
|
||||
* the current time.
|
||||
*
|
||||
* Uses the Performance API or a fallback value if it's not available.
|
||||
*
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
|
||||
*
|
||||
* @return {Number}
|
||||
*/
|
||||
function getLoadTime() {
|
||||
var start;
|
||||
|
||||
if (isPerformanceTimingApiSupported())
|
||||
start = window.performance.timing.domLoading;
|
||||
else
|
||||
start = startTime.getTime();
|
||||
|
||||
return new Date().getTime() - start;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines how many milliseconds elapsed between the user navigating to the page and
|
||||
* the current time.
|
||||
*
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
|
||||
*
|
||||
* @return {Number|null} null if the browser doesn't support the Performance API
|
||||
*/
|
||||
function getNavToDoneTime() {
|
||||
if (!isPerformanceTimingApiSupported())
|
||||
return null;
|
||||
|
||||
return new Date().getTime() - window.performance.timing.navigationStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs an arithmetic calculation on a string with a number and unit, while maintaining
|
||||
* the unit.
|
||||
*
|
||||
* @param {String} original value to modify, with a unit
|
||||
* @param {Function} doOperation accepts one Number parameter, returns a Number
|
||||
* @returns {String}
|
||||
*/
|
||||
function computeWithUnit(original, doOperation) {
|
||||
var number = parseFloat(original, 10);
|
||||
var unit = original.replace(/(\d*\.\d+)|\d+/, '');
|
||||
|
||||
return doOperation(number) + unit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes the default font size of the browser.
|
||||
*
|
||||
* @returns {String|null} computed font-size with units (typically pixels), null if it cannot be computed
|
||||
*/
|
||||
function getDefaultFontSize() {
|
||||
var fontSizeStr;
|
||||
|
||||
if (!('getComputedStyle' in window))
|
||||
return null;
|
||||
|
||||
var style = window.getComputedStyle(document.documentElement);
|
||||
if (!style)
|
||||
return null;
|
||||
|
||||
fontSizeStr = style.fontSize;
|
||||
|
||||
// Don't modify the value if tracking book reader.
|
||||
if (document.querySelector('#BookReader'))
|
||||
return fontSizeStr;
|
||||
|
||||
return computeWithUnit(fontSizeStr, function reverseBootstrapFontSize(number) {
|
||||
// Undo the 62.5% size applied in the Bootstrap CSS.
|
||||
return number * 1.6;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the URL parameters for a given Location
|
||||
* @param {Location}
|
||||
* @return {Object} The URL parameters
|
||||
*/
|
||||
function getParams(location) {
|
||||
if (!location) location = window.location;
|
||||
var vars;
|
||||
var i;
|
||||
var pair;
|
||||
var params = {};
|
||||
var query = location.search;
|
||||
if (!query) return params;
|
||||
vars = query.substring(1).split('&');
|
||||
for (i = 0; i < vars.length; i++) {
|
||||
pair = vars[i].split('=');
|
||||
params[pair[0]] = decodeURIComponent(pair[1]);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
function getMetaProp(name) {
|
||||
var metaTag = document.querySelector('meta[property=' + name + ']');
|
||||
return metaTag ? metaTag.getAttribute('content') || null : null;
|
||||
}
|
||||
|
||||
var ArchiveAnalytics = {
|
||||
/**
|
||||
* @type {String|null}
|
||||
*/
|
||||
service: getMetaProp('service'),
|
||||
mediaType: getMetaProp('mediatype'),
|
||||
primaryCollection: getMetaProp('primary_collection'),
|
||||
|
||||
/**
|
||||
* Key-value pairs to send in pageviews (you can read this after a pageview to see what was
|
||||
* sent).
|
||||
*
|
||||
* @type {Object}
|
||||
*/
|
||||
values: {},
|
||||
|
||||
/**
|
||||
* Sends an analytics ping, preferably using navigator.sendBeacon()
|
||||
* @param {Object} values
|
||||
* @param {Function} [onload_callback] (deprecated) callback to invoke once ping to analytics server is done
|
||||
* @param {Boolean} [augment_for_ao_site] (deprecated) if true, add some archive.org site-specific values
|
||||
*/
|
||||
send_ping: function send_ping(values, onload_callback, augment_for_ao_site) {
|
||||
if (typeof window.navigator !== 'undefined' && typeof window.navigator.sendBeacon !== 'undefined')
|
||||
this.send_ping_via_beacon(values);
|
||||
else
|
||||
this.send_ping_via_image(values);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a ping via Beacon API
|
||||
* NOTE: Assumes window.navigator.sendBeacon exists
|
||||
* @param {Object} values Tracking parameters to pass
|
||||
*/
|
||||
send_ping_via_beacon: function send_ping_via_beacon(values) {
|
||||
var url = this.generate_tracking_url(values || {});
|
||||
window.navigator.sendBeacon(url);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a ping via Image object
|
||||
* @param {Object} values Tracking parameters to pass
|
||||
*/
|
||||
send_ping_via_image: function send_ping_via_image(values) {
|
||||
var url = this.generate_tracking_url(values || {});
|
||||
var loadtime_img = new Image(1, 1);
|
||||
loadtime_img.src = url;
|
||||
loadtime_img.alt = '';
|
||||
},
|
||||
|
||||
/**
|
||||
* Construct complete tracking URL containing payload
|
||||
* @param {Object} params Tracking parameters to pass
|
||||
* @return {String} URL to use for tracking call
|
||||
*/
|
||||
generate_tracking_url: function generate_tracking_url(params) {
|
||||
var baseUrl = '//analytics.archive.org/0.gif';
|
||||
var keys;
|
||||
var outputParams = params;
|
||||
var outputParamsArray = [];
|
||||
|
||||
outputParams.service = outputParams.service || this.service || DEFAULT_SERVICE;
|
||||
|
||||
// Build array of querystring parameters
|
||||
keys = Object.keys(outputParams);
|
||||
keys.forEach(function keyIteration(key) {
|
||||
outputParamsArray.push(encodeURIComponent(key) + '=' + encodeURIComponent(outputParams[key]));
|
||||
});
|
||||
outputParamsArray.push('version=' + ARCHIVE_ANALYTICS_VERSION);
|
||||
outputParamsArray.push('count=' + (keys.length + 2)); // Include `version` and `count` in count
|
||||
|
||||
return baseUrl + '?' + outputParamsArray.join('&');
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {int} page Page number
|
||||
*/
|
||||
send_scroll_fetch_event: function send_scroll_fetch_event(page) {
|
||||
var additionalValues = { ev: page };
|
||||
var loadTime = getLoadTime();
|
||||
var navToDoneTime = getNavToDoneTime();
|
||||
if (loadTime) additionalValues.loadtime = loadTime;
|
||||
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
|
||||
this.send_event('page_action', 'scroll_fetch', location.pathname, additionalValues);
|
||||
},
|
||||
|
||||
send_scroll_fetch_base_event: function send_scroll_fetch_base_event() {
|
||||
var additionalValues = {};
|
||||
var loadTime = getLoadTime();
|
||||
var navToDoneTime = getNavToDoneTime();
|
||||
if (loadTime) additionalValues.loadtime = loadTime;
|
||||
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
|
||||
this.send_event('page_action', 'scroll_fetch_base', location.pathname, additionalValues);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Object} [options]
|
||||
* @param {String} [options.mediaType]
|
||||
* @param {String} [options.mediaLanguage]
|
||||
* @param {String} [options.page] The path portion of the page URL
|
||||
*/
|
||||
send_pageview: function send_pageview(options) {
|
||||
var settings = options || {};
|
||||
|
||||
var defaultFontSize;
|
||||
var loadTime = getLoadTime();
|
||||
var mediaType = settings.mediaType;
|
||||
var primaryCollection = settings.primaryCollection;
|
||||
var page = settings.page;
|
||||
var navToDoneTime = getNavToDoneTime();
|
||||
|
||||
/**
|
||||
* @return {String}
|
||||
*/
|
||||
function get_locale() {
|
||||
if (navigator) {
|
||||
if (navigator.language)
|
||||
return navigator.language;
|
||||
|
||||
else if (navigator.browserLanguage)
|
||||
return navigator.browserLanguage;
|
||||
|
||||
else if (navigator.systemLanguage)
|
||||
return navigator.systemLanguage;
|
||||
|
||||
else if (navigator.userLanguage)
|
||||
return navigator.userLanguage;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
defaultFontSize = getDefaultFontSize();
|
||||
|
||||
// Set field values
|
||||
this.values.kind = 'pageview';
|
||||
this.values.timediff = (new Date().getTimezoneOffset()/60)*(-1); // *timezone* diff from UTC
|
||||
this.values.locale = get_locale();
|
||||
this.values.referrer = (document.referrer == '' ? '-' : document.referrer);
|
||||
|
||||
if (loadTime)
|
||||
this.values.loadtime = loadTime;
|
||||
|
||||
if (navToDoneTime)
|
||||
this.values.nav_to_done_ms = navToDoneTime;
|
||||
|
||||
if (settings.trackingId) {
|
||||
this.values.ga_tid = settings.trackingId;
|
||||
}
|
||||
|
||||
/* START CUSTOM DIMENSIONS */
|
||||
if (defaultFontSize)
|
||||
this.values.ga_cd1 = defaultFontSize;
|
||||
|
||||
if ('devicePixelRatio' in window)
|
||||
this.values.ga_cd2 = window.devicePixelRatio;
|
||||
|
||||
if (mediaType)
|
||||
this.values.ga_cd3 = mediaType;
|
||||
|
||||
if (settings.mediaLanguage) {
|
||||
this.values.ga_cd4 = settings.mediaLanguage;
|
||||
}
|
||||
|
||||
if (primaryCollection) {
|
||||
this.values.ga_cd5 = primaryCollection;
|
||||
}
|
||||
/* END CUSTOM DIMENSIONS */
|
||||
|
||||
if (page)
|
||||
this.values.page = page;
|
||||
|
||||
this.send_ping(this.values);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a tracking "Event".
|
||||
* @param {string} category
|
||||
* @param {string} action
|
||||
* @param {string} label
|
||||
* @param {Object} additionalEventParams
|
||||
*/
|
||||
send_event: function send_event(
|
||||
category,
|
||||
action,
|
||||
label,
|
||||
additionalEventParams
|
||||
) {
|
||||
if (!label) label = window.location.pathname;
|
||||
if (!additionalEventParams) additionalEventParams = {};
|
||||
if (additionalEventParams.mediaLanguage) {
|
||||
additionalEventParams.ga_cd4 = additionalEventParams.mediaLanguage;
|
||||
delete additionalEventParams.mediaLanguage;
|
||||
}
|
||||
var eventParams = Object.assign(
|
||||
{
|
||||
kind: 'event',
|
||||
ec: category,
|
||||
ea: action,
|
||||
el: label,
|
||||
cache_bust: Math.random(),
|
||||
},
|
||||
additionalEventParams
|
||||
);
|
||||
this.send_ping(eventParams);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends every event instead of a small percentage.
|
||||
*
|
||||
* Use this sparingly as it can generate a lot of events.
|
||||
*
|
||||
* @param {string} category
|
||||
* @param {string} action
|
||||
* @param {string} label
|
||||
* @param {Object} additionalEventParams
|
||||
*/
|
||||
send_event_no_sampling: function send_event_no_sampling(
|
||||
category,
|
||||
action,
|
||||
label,
|
||||
additionalEventParams
|
||||
) {
|
||||
var extraParams = additionalEventParams || {};
|
||||
extraParams.service = NO_SAMPLING_SERVICE;
|
||||
this.send_event(category, action, label, extraParams);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Object} options see this.send_pageview options
|
||||
*/
|
||||
send_pageview_on_load: function send_pageview_on_load(options) {
|
||||
var self = this;
|
||||
window.addEventListener('load', function send_pageview_with_options() {
|
||||
self.send_pageview(options);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Handles tracking events passed in URL.
|
||||
* Assumes category and action values are separated by a "|" character.
|
||||
* NOTE: Uses the unsampled analytics property. Watch out for future high click links!
|
||||
* @param {Location}
|
||||
*/
|
||||
process_url_events: function process_url_events(location) {
|
||||
var eventValues;
|
||||
var actionValue;
|
||||
var eventValue = getParams(location).iax;
|
||||
if (!eventValue) return;
|
||||
eventValues = eventValue.split('|');
|
||||
actionValue = eventValues.length >= 1 ? eventValues[1] : '';
|
||||
this.send_event_no_sampling(
|
||||
eventValues[0],
|
||||
actionValue,
|
||||
window.location.pathname
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* Attaches handlers for event tracking.
|
||||
*
|
||||
* To enable click tracking for a link, add a `data-event-click-tracking`
|
||||
* attribute containing the Google Analytics Event Category and Action, separated
|
||||
* by a vertical pipe (|).
|
||||
* e.g. `<a href="foobar" data-event-click-tracking="TopNav|FooBar">`
|
||||
*
|
||||
* To enable form submit tracking, add a `data-event-form-tracking` attribute
|
||||
* to the `form` tag.
|
||||
* e.g. `<form data-event-form-tracking="TopNav|SearchForm" method="GET">`
|
||||
*
|
||||
* Additional tracking options can be added via a `data-event-tracking-options`
|
||||
* parameter. This parameter, if included, should be a JSON string of the parameters.
|
||||
* Valid parameters are:
|
||||
* - service {string}: Corresponds to the Google Analytics property data values flow into
|
||||
*/
|
||||
set_up_event_tracking: function set_up_event_tracking() {
|
||||
var self = this;
|
||||
var clickTrackingAttributeName = 'event-click-tracking';
|
||||
var formTrackingAttributeName = 'event-form-tracking';
|
||||
var trackingOptionsAttributeName = 'event-tracking-options';
|
||||
|
||||
function handleAction(event, attributeName) {
|
||||
var selector = '[data-' + attributeName + ']';
|
||||
var eventTarget = event.target;
|
||||
if (!eventTarget) return;
|
||||
var target = eventTarget.closest(selector);
|
||||
if (!target) return;
|
||||
var categoryAction;
|
||||
var categoryActionParts;
|
||||
var options;
|
||||
categoryAction = target.dataset[toCamelCase(attributeName)];
|
||||
if (!categoryAction) return;
|
||||
categoryActionParts = categoryAction.split('|');
|
||||
options = target.dataset[toCamelCase(trackingOptionsAttributeName)];
|
||||
options = options ? JSON.parse(options) : {};
|
||||
self.send_event(
|
||||
categoryActionParts[0],
|
||||
categoryActionParts[1],
|
||||
categoryActionParts[2] || window.location.pathname,
|
||||
options.service ? { service: options.service } : {}
|
||||
);
|
||||
}
|
||||
|
||||
function toCamelCase(str) {
|
||||
return str.replace(/\W+(.)/g, function (match, chr) {
|
||||
return chr.toUpperCase();
|
||||
});
|
||||
};
|
||||
|
||||
document.addEventListener('click', function(e) {
|
||||
handleAction(e, clickTrackingAttributeName);
|
||||
});
|
||||
|
||||
document.addEventListener('submit', function(e) {
|
||||
handleAction(e, formTrackingAttributeName);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {Object[]}
|
||||
*/
|
||||
get_data_packets: function get_data_packets() {
|
||||
return [this.values];
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a tracking image for tracking JS compatibility.
|
||||
*
|
||||
* @param {string} type The type value for track_js_case in query params for 0.gif
|
||||
*/
|
||||
create_tracking_image: function create_tracking_image(type) {
|
||||
this.send_ping_via_image({
|
||||
cache_bust: Math.random(),
|
||||
kind: 'track_js',
|
||||
track_js_case: type,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return ArchiveAnalytics;
|
||||
}());
|
||||
// @license-end
|
||||
@@ -0,0 +1,507 @@
|
||||
@import 'record.css'; /* for SPN1 */
|
||||
|
||||
#wm-ipp-base {
|
||||
height:65px;/* initial height just in case js code fails */
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:none;
|
||||
background:none transparent;
|
||||
}
|
||||
#wm-ipp {
|
||||
z-index: 2147483647;
|
||||
}
|
||||
#wm-ipp, #wm-ipp * {
|
||||
font-family:Lucida Grande, Helvetica, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
line-height:1.2;
|
||||
letter-spacing:0;
|
||||
width:auto;
|
||||
height:auto;
|
||||
max-width:none;
|
||||
max-height:none;
|
||||
min-width:0 !important;
|
||||
min-height:0;
|
||||
outline:none;
|
||||
float:none;
|
||||
text-align:left;
|
||||
border:none;
|
||||
color: #000;
|
||||
text-indent: 0;
|
||||
position: initial;
|
||||
background: none;
|
||||
}
|
||||
#wm-ipp div, #wm-ipp canvas {
|
||||
display: block;
|
||||
}
|
||||
#wm-ipp div, #wm-ipp tr, #wm-ipp td, #wm-ipp a, #wm-ipp form {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:none;
|
||||
border-radius:0;
|
||||
background-color:transparent;
|
||||
background-image:none;
|
||||
/*z-index:2147483640;*/
|
||||
height:auto;
|
||||
}
|
||||
#wm-ipp table {
|
||||
border:none;
|
||||
border-collapse:collapse;
|
||||
margin:0;
|
||||
padding:0;
|
||||
width:auto;
|
||||
font-size:inherit;
|
||||
}
|
||||
#wm-ipp form input {
|
||||
padding:1px !important;
|
||||
height:auto;
|
||||
display:inline;
|
||||
margin:0;
|
||||
color: #000;
|
||||
background: none #fff;
|
||||
border: 1px solid #666;
|
||||
}
|
||||
#wm-ipp form input[type=submit] {
|
||||
padding:0 8px !important;
|
||||
margin:1px 0 1px 5px !important;
|
||||
width:auto !important;
|
||||
border: 1px solid #000 !important;
|
||||
background: #fff !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
#wm-ipp form input[type=submit]:hover {
|
||||
background: #eee !important;
|
||||
cursor: pointer !important;
|
||||
}
|
||||
#wm-ipp form input[type=submit]:active {
|
||||
transform: translateY(1px);
|
||||
}
|
||||
#wm-ipp a {
|
||||
display: inline;
|
||||
}
|
||||
#wm-ipp a:hover{
|
||||
text-decoration:underline;
|
||||
}
|
||||
#wm-ipp a.wm-btn:hover {
|
||||
text-decoration:none;
|
||||
color:#ff0 !important;
|
||||
}
|
||||
#wm-ipp a.wm-btn:hover span {
|
||||
color:#ff0 !important;
|
||||
}
|
||||
#wm-ipp #wm-ipp-inside {
|
||||
margin: 0 6px;
|
||||
border:5px solid #000;
|
||||
border-top:none;
|
||||
background-color:rgba(255,255,255,0.9);
|
||||
-moz-box-shadow:1px 1px 4px #333;
|
||||
-webkit-box-shadow:1px 1px 4px #333;
|
||||
box-shadow:1px 1px 4px #333;
|
||||
border-radius:0 0 8px 8px;
|
||||
}
|
||||
/* selectors are intentionally verbose to ensure priority */
|
||||
#wm-ipp #wm-logo {
|
||||
padding:0 10px;
|
||||
vertical-align:middle;
|
||||
min-width:100px;
|
||||
flex: 0 0 100px;
|
||||
}
|
||||
#wm-ipp .c {
|
||||
padding-left: 4px;
|
||||
}
|
||||
#wm-ipp .c .u {
|
||||
margin-top: 4px !important;
|
||||
}
|
||||
#wm-ipp .n {
|
||||
padding:0 0 0 5px !important;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
#wm-ipp .n a {
|
||||
text-decoration:none;
|
||||
color:#33f;
|
||||
font-weight:bold;
|
||||
}
|
||||
#wm-ipp .n .b {
|
||||
padding:0 6px 0 0 !important;
|
||||
text-align:right !important;
|
||||
overflow:visible;
|
||||
white-space:nowrap;
|
||||
color:#99a;
|
||||
vertical-align:middle;
|
||||
}
|
||||
#wm-ipp .n .y .b {
|
||||
padding:0 6px 2px 0 !important;
|
||||
}
|
||||
#wm-ipp .n .c {
|
||||
background:#000;
|
||||
color:#ff0;
|
||||
font-weight:bold;
|
||||
padding:0 !important;
|
||||
text-align:center;
|
||||
}
|
||||
#wm-ipp.hi .n td.c {
|
||||
color:#ec008c;
|
||||
}
|
||||
#wm-ipp .n td.f {
|
||||
padding:0 0 0 6px !important;
|
||||
text-align:left !important;
|
||||
overflow:visible;
|
||||
white-space:nowrap;
|
||||
color:#99a;
|
||||
vertical-align:middle;
|
||||
}
|
||||
#wm-ipp .n tr.m td {
|
||||
text-transform:uppercase;
|
||||
white-space:nowrap;
|
||||
padding:2px 0;
|
||||
}
|
||||
#wm-ipp .c .s {
|
||||
padding:0 5px 0 0 !important;
|
||||
vertical-align:bottom;
|
||||
}
|
||||
#wm-ipp #wm-nav-captures {
|
||||
white-space: nowrap;
|
||||
}
|
||||
#wm-ipp .c .s a.t {
|
||||
color:#33f;
|
||||
font-weight:bold;
|
||||
line-height: 1.8;
|
||||
}
|
||||
#wm-ipp .c .s div.r {
|
||||
color: #666;
|
||||
font-size:9px;
|
||||
white-space:nowrap;
|
||||
}
|
||||
#wm-ipp .c .k {
|
||||
padding-bottom:1px;
|
||||
}
|
||||
#wm-ipp .c .s {
|
||||
padding:0 5px 2px 0 !important;
|
||||
}
|
||||
#wm-ipp td#displayMonthEl {
|
||||
padding: 2px 0 !important;
|
||||
}
|
||||
#wm-ipp td#displayYearEl {
|
||||
padding: 0 0 2px 0 !important;
|
||||
}
|
||||
|
||||
div#wm-ipp-sparkline {
|
||||
position:relative;/* for positioning markers */
|
||||
white-space:nowrap;
|
||||
background-color:#fff;
|
||||
cursor:pointer;
|
||||
line-height:0.9;
|
||||
}
|
||||
#sparklineImgId, #wm-sparkline-canvas {
|
||||
position:relative;
|
||||
z-index:9012;
|
||||
max-width:none;
|
||||
}
|
||||
#wm-ipp-sparkline div.yt {
|
||||
position:absolute;
|
||||
z-index:9010 !important;
|
||||
background-color:#ff0 !important;
|
||||
top: 0;
|
||||
}
|
||||
#wm-ipp-sparkline div.mt {
|
||||
position:absolute;
|
||||
z-index:9013 !important;
|
||||
background-color:#ec008c !important;
|
||||
top: 0;
|
||||
}
|
||||
#wm-ipp .r {
|
||||
margin-left: 4px;
|
||||
}
|
||||
#wm-ipp .r a {
|
||||
color:#33f;
|
||||
border:none;
|
||||
position:relative;
|
||||
background-color:transparent;
|
||||
background-repeat:no-repeat !important;
|
||||
background-position:100% 100% !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
#wm-ipp #wm-capinfo {
|
||||
/* prevents notice div background from sticking into round corners of
|
||||
#wm-ipp-inside */
|
||||
border-radius: 0 0 4px 4px;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .c-logo {
|
||||
display:block;
|
||||
float:left;
|
||||
margin-right:3px;
|
||||
width:90px;
|
||||
min-height:90px;
|
||||
max-height: 290px;
|
||||
border-radius:45px;
|
||||
overflow:hidden;
|
||||
background-position:50%;
|
||||
background-size:auto 90px;
|
||||
box-shadow: 0 0 2px 2px rgba(208,208,208,128) inset;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .c-logo span {
|
||||
display:inline-block;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .c-logo img {
|
||||
height:90px;
|
||||
position:relative;
|
||||
left:-50%;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .wm-title {
|
||||
font-size:130%;
|
||||
}
|
||||
#wm-ipp #wm-capinfo a.wm-selector {
|
||||
display:inline-block;
|
||||
color: #aaa;
|
||||
text-decoration:none !important;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
#wm-ipp #wm-capinfo a.wm-selector.selected {
|
||||
background-color:#666;
|
||||
}
|
||||
#wm-ipp #wm-capinfo a.wm-selector:hover {
|
||||
color: #fff;
|
||||
}
|
||||
#wm-ipp #wm-capinfo.notice-only #wm-capinfo-collected-by,
|
||||
#wm-ipp #wm-capinfo.notice-only #wm-capinfo-timestamps {
|
||||
display: none;
|
||||
}
|
||||
#wm-ipp #wm-capinfo #wm-capinfo-notice .wm-capinfo-content {
|
||||
background-color:#ff0;
|
||||
padding:5px;
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
}
|
||||
#wm-ipp #wm-capinfo #wm-capinfo-notice .wm-capinfo-content * {
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
}
|
||||
#wm-ipp #wm-expand {
|
||||
right: 1px;
|
||||
bottom: -1px;
|
||||
color: #ffffff;
|
||||
background-color: #666 !important;
|
||||
padding:0 5px 0 3px !important;
|
||||
border-radius: 3px 3px 0 0 !important;
|
||||
}
|
||||
#wm-ipp #wm-expand span {
|
||||
color: #ffffff;
|
||||
}
|
||||
#wm-ipp #wm-expand #wm-expand-icon {
|
||||
display: inline-block;
|
||||
transition: transform 0.5s;
|
||||
transform-origin: 50% 45%;
|
||||
}
|
||||
#wm-ipp #wm-expand.wm-open #wm-expand-icon {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
#wm-ipp #wmtb {
|
||||
text-align:right;
|
||||
}
|
||||
#wm-ipp #wmtb #wmtbURL {
|
||||
width: calc(100% - 45px);
|
||||
}
|
||||
#wm-ipp #wm-graph-anchor {
|
||||
border-right:1px solid #ccc;
|
||||
}
|
||||
/* time coherence */
|
||||
html.wb-highlight {
|
||||
box-shadow: inset 0 0 0 3px #a50e3a !important;
|
||||
}
|
||||
.wb-highlight {
|
||||
outline: 3px solid #a50e3a !important;
|
||||
}
|
||||
#wm-ipp-print {
|
||||
display:none !important;
|
||||
}
|
||||
@media print {
|
||||
#wm-ipp-base {
|
||||
display:none !important;
|
||||
}
|
||||
#wm-ipp-print {
|
||||
display:block !important;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
@media (max-width:414px) {
|
||||
#wm-ipp .xxs {
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
@media (min-width:1055px) {
|
||||
#wm-ipp #wm-graph-anchor {
|
||||
display:block !important;
|
||||
}
|
||||
}
|
||||
@media (max-width:1054px) {
|
||||
#wm-ipp #wm-graph-anchor {
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
@media (max-width:1163px) {
|
||||
#wm-logo {
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
|
||||
#wm-btns {
|
||||
white-space: nowrap;
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-open {
|
||||
margin-right: 7px;
|
||||
top: -6px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-sign-in {
|
||||
box-sizing: content-box;
|
||||
display: none;
|
||||
margin-right: 7px;
|
||||
top: -8px;
|
||||
|
||||
/*
|
||||
round border around sign in button
|
||||
*/
|
||||
border: 2px #000 solid;
|
||||
border-radius: 14px;
|
||||
padding-right: 2px;
|
||||
padding-bottom: 2px;
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-sign-in>.iconochive-person {
|
||||
font-size: 12.5px;
|
||||
}
|
||||
|
||||
#wm-save-snapshot-open > .iconochive-web {
|
||||
color:#000;
|
||||
font-size:160%;
|
||||
}
|
||||
|
||||
#wm-ipp #wm-share {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#wm-share > #wm-screenshot {
|
||||
display: inline-block;
|
||||
margin-right: 3px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#wm-screenshot > .iconochive-image {
|
||||
color:#000;
|
||||
font-size:160%;
|
||||
}
|
||||
|
||||
#wm-share > #wm-video {
|
||||
display: inline-block;
|
||||
margin-right: 3px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#wm-video > .iconochive-movies {
|
||||
color: #000;
|
||||
display: inline-block;
|
||||
font-size: 150%;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-in-progress {
|
||||
display: none;
|
||||
font-size:160%;
|
||||
opacity: 0.5;
|
||||
position: relative;
|
||||
margin-right: 7px;
|
||||
top: -5px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-success {
|
||||
display: none;
|
||||
color: green;
|
||||
position: relative;
|
||||
top: -7px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-fail {
|
||||
display: none;
|
||||
color: red;
|
||||
position: relative;
|
||||
top: -7px;
|
||||
}
|
||||
|
||||
.wm-icon-screen-shot {
|
||||
background: url("../images/web-screenshot.svg") no-repeat !important;
|
||||
background-size: contain !important;
|
||||
width: 22px !important;
|
||||
height: 19px !important;
|
||||
|
||||
display: inline-block;
|
||||
}
|
||||
#donato {
|
||||
/* transition effect is disable so as to simplify height adjustment */
|
||||
/*transition: height 0.5s;*/
|
||||
height: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-bottom: 1px solid #999 !important;
|
||||
}
|
||||
body.wm-modal {
|
||||
height: auto !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
#donato #donato-base {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
/*bottom: 0;*/
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
z-index: 2147483639;
|
||||
}
|
||||
body.wm-modal #donato #donato-base {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 2147483640;
|
||||
}
|
||||
|
||||
.wb-autocomplete-suggestions {
|
||||
font-family: Lucida Grande, Helvetica, Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
text-align: left;
|
||||
cursor: default;
|
||||
border: 1px solid #ccc;
|
||||
border-top: 0;
|
||||
background: #fff;
|
||||
box-shadow: -1px 1px 3px rgba(0,0,0,.1);
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 2147483647;
|
||||
max-height: 254px;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.wb-autocomplete-suggestion {
|
||||
position: relative;
|
||||
padding: 0 .6em;
|
||||
line-height: 23px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-size: 1.02em;
|
||||
color: #333;
|
||||
}
|
||||
.wb-autocomplete-suggestion b {
|
||||
font-weight: bold;
|
||||
}
|
||||
.wb-autocomplete-suggestion.selected {
|
||||
background: #f0f0f0;
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };
|
||||
if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }
|
||||
{
|
||||
let window = _____WB$wombat$assign$function_____("window");
|
||||
let self = _____WB$wombat$assign$function_____("self");
|
||||
let document = _____WB$wombat$assign$function_____("document");
|
||||
let location = _____WB$wombat$assign$function_____("location");
|
||||
let top = _____WB$wombat$assign$function_____("top");
|
||||
let parent = _____WB$wombat$assign$function_____("parent");
|
||||
let frames = _____WB$wombat$assign$function_____("frames");
|
||||
let opener = _____WB$wombat$assign$function_____("opener");
|
||||
|
||||
|
||||
<!--
|
||||
// Image Swap Restore
|
||||
function MM_swapImgRestore() { //v2.0
|
||||
if (document.MM_swapImgData != null)
|
||||
for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
|
||||
document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
|
||||
}
|
||||
// Image Swap
|
||||
function MM_swapImage() { //v2.0
|
||||
var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.MM_swapImgData;
|
||||
for (i=0; i < (MM_swapImage.arguments.length-2); i+=3) {
|
||||
objStr = MM_swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
|
||||
if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
|
||||
(objStr.indexOf('document.all[') ==0 && document.all ==null))
|
||||
objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
|
||||
obj = eval(objStr);
|
||||
if (obj != null) {
|
||||
swapArray[j++] = obj;
|
||||
swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];
|
||||
obj.src = MM_swapImage.arguments[i+2];
|
||||
} }
|
||||
document.MM_swapImgData = swapArray; //used for restore
|
||||
}
|
||||
function MM_showHideLayers() { //v2.0
|
||||
var i, visStr, args, theObj;
|
||||
args = MM_showHideLayers.arguments;
|
||||
for (i=0; i<(args.length-2); i+=3) { //with arg triples (objNS,objIE,visStr)
|
||||
visStr = args[i+2];
|
||||
if (navigator.appName == 'Netscape' && document.layers != null) {
|
||||
theObj = eval(args[i]);
|
||||
if (theObj) theObj.visibility = visStr;
|
||||
} else if (document.all != null) { //IE
|
||||
if (visStr == 'show') visStr = 'visible'; //convert vals
|
||||
if (visStr == 'hide') visStr = 'hidden';
|
||||
theObj = eval(args[i+1]);
|
||||
if (theObj) theObj.style.visibility = visStr;
|
||||
} }
|
||||
}
|
||||
|
||||
|
||||
function pulldown(formObj)
|
||||
{
|
||||
url = formObj.options[formObj.options.selectedIndex].value;
|
||||
if(url != "empty")
|
||||
{
|
||||
window.location = url;
|
||||
url = "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// This checks to see if the window's dimensions have actually changed
|
||||
// (because Netscape often fires a false onResize event when it forms scrollbars);
|
||||
// if they have, the document is reloaded.
|
||||
// Note that document.location is not supposed to be settable, but here's another
|
||||
// case where the implementation does not match the specs.
|
||||
|
||||
function resizeFix(){
|
||||
if(document.resizeFix.initWidth!=window.innerWidth
|
||||
||document.resizeFix.initHeight!=window.innerHeight)
|
||||
document.location=document.location;
|
||||
}
|
||||
|
||||
// This function checks to see if the browser supports the Layer object (i.e., Netscape 4.X);
|
||||
// if it does, then it creates a new object with properties to hold the current window width & height
|
||||
// and assigns the resizeFix() function to the window's onResize event
|
||||
|
||||
function checkBrowser(){
|
||||
if(document.layers){
|
||||
if(typeof document.fix == "undefined"){
|
||||
document.resizeFix=new Object();
|
||||
document.resizeFix.initWidth=window.innerWidth;
|
||||
document.resizeFix.initHeight=window.innerHeight;
|
||||
}
|
||||
window.onresize=resizeFix;
|
||||
}
|
||||
}
|
||||
|
||||
// This calls the browser check function above
|
||||
|
||||
checkBrowser();
|
||||
|
||||
|
||||
|
||||
|
||||
//-->
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
FILE ARCHIVED ON 00:27:23 Jul 15, 2019 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 13:34:01 Dec 04, 2022.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
*/
|
||||
/*
|
||||
playback timings (ms):
|
||||
captures_list: 247.578
|
||||
exclusion.robots: 0.081
|
||||
exclusion.robots.policy: 0.073
|
||||
cdx.remote: 0.069
|
||||
esindex: 0.011
|
||||
LoadShardBlock: 149.267 (3)
|
||||
PetaboxLoader3.datanode: 90.991 (4)
|
||||
CDXLines.iter: 18.401 (3)
|
||||
PetaboxLoader3.resolve: 75.892 (2)
|
||||
load_resource: 51.672
|
||||
*/
|
||||
|
After Width: | Height: | Size: 631 B |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 1018 B |
|
After Width: | Height: | Size: 818 B |
|
After Width: | Height: | Size: 833 B |
@@ -0,0 +1,116 @@
|
||||
@font-face{font-family:'Iconochive-Regular';src:url('https://archive.org/includes/fonts/Iconochive-Regular.eot?-ccsheb');src:url('https://archive.org/includes/fonts/Iconochive-Regular.eot?#iefix-ccsheb') format('embedded-opentype'),url('https://archive.org/includes/fonts/Iconochive-Regular.woff?-ccsheb') format('woff'),url('https://archive.org/includes/fonts/Iconochive-Regular.ttf?-ccsheb') format('truetype'),url('https://archive.org/includes/fonts/Iconochive-Regular.svg?-ccsheb#Iconochive-Regular') format('svg');font-weight:normal;font-style:normal}
|
||||
[class^="iconochive-"],[class*=" iconochive-"]{font-family:'Iconochive-Regular'!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
|
||||
.iconochive-Uplevel:before{content:"\21b5"}
|
||||
.iconochive-exit:before{content:"\1f6a3"}
|
||||
.iconochive-beta:before{content:"\3b2"}
|
||||
.iconochive-logo:before{content:"\1f3db"}
|
||||
.iconochive-audio:before{content:"\1f568"}
|
||||
.iconochive-movies:before{content:"\1f39e"}
|
||||
.iconochive-software:before{content:"\1f4be"}
|
||||
.iconochive-texts:before{content:"\1f56e"}
|
||||
.iconochive-etree:before{content:"\1f3a4"}
|
||||
.iconochive-image:before{content:"\1f5bc"}
|
||||
.iconochive-web:before{content:"\1f5d4"}
|
||||
.iconochive-collection:before{content:"\2211"}
|
||||
.iconochive-folder:before{content:"\1f4c2"}
|
||||
.iconochive-data:before{content:"\1f5c3"}
|
||||
.iconochive-tv:before{content:"\1f4fa"}
|
||||
.iconochive-article:before{content:"\1f5cf"}
|
||||
.iconochive-question:before{content:"\2370"}
|
||||
.iconochive-question-dark:before{content:"\3f"}
|
||||
.iconochive-info:before{content:"\69"}
|
||||
.iconochive-info-small:before{content:"\24d8"}
|
||||
.iconochive-comment:before{content:"\1f5e9"}
|
||||
.iconochive-comments:before{content:"\1f5ea"}
|
||||
.iconochive-person:before{content:"\1f464"}
|
||||
.iconochive-people:before{content:"\1f465"}
|
||||
.iconochive-eye:before{content:"\1f441"}
|
||||
.iconochive-rss:before{content:"\221e"}
|
||||
.iconochive-time:before{content:"\1f551"}
|
||||
.iconochive-quote:before{content:"\275d"}
|
||||
.iconochive-disc:before{content:"\1f4bf"}
|
||||
.iconochive-tv-commercial:before{content:"\1f4b0"}
|
||||
.iconochive-search:before{content:"\1f50d"}
|
||||
.iconochive-search-star:before{content:"\273d"}
|
||||
.iconochive-tiles:before{content:"\229e"}
|
||||
.iconochive-list:before{content:"\21f6"}
|
||||
.iconochive-list-bulleted:before{content:"\2317"}
|
||||
.iconochive-latest:before{content:"\2208"}
|
||||
.iconochive-left:before{content:"\2c2"}
|
||||
.iconochive-right:before{content:"\2c3"}
|
||||
.iconochive-left-solid:before{content:"\25c2"}
|
||||
.iconochive-right-solid:before{content:"\25b8"}
|
||||
.iconochive-up-solid:before{content:"\25b4"}
|
||||
.iconochive-down-solid:before{content:"\25be"}
|
||||
.iconochive-dot:before{content:"\23e4"}
|
||||
.iconochive-dots:before{content:"\25a6"}
|
||||
.iconochive-columns:before{content:"\25af"}
|
||||
.iconochive-sort:before{content:"\21d5"}
|
||||
.iconochive-atoz:before{content:"\1f524"}
|
||||
.iconochive-ztoa:before{content:"\1f525"}
|
||||
.iconochive-upload:before{content:"\1f4e4"}
|
||||
.iconochive-download:before{content:"\1f4e5"}
|
||||
.iconochive-favorite:before{content:"\2605"}
|
||||
.iconochive-heart:before{content:"\2665"}
|
||||
.iconochive-play:before{content:"\25b6"}
|
||||
.iconochive-play-framed:before{content:"\1f3ac"}
|
||||
.iconochive-fullscreen:before{content:"\26f6"}
|
||||
.iconochive-mute:before{content:"\1f507"}
|
||||
.iconochive-unmute:before{content:"\1f50a"}
|
||||
.iconochive-share:before{content:"\1f381"}
|
||||
.iconochive-edit:before{content:"\270e"}
|
||||
.iconochive-reedit:before{content:"\2710"}
|
||||
.iconochive-gear:before{content:"\2699"}
|
||||
.iconochive-remove-circle:before{content:"\274e"}
|
||||
.iconochive-plus-circle:before{content:"\1f5d6"}
|
||||
.iconochive-minus-circle:before{content:"\1f5d5"}
|
||||
.iconochive-x:before{content:"\1f5d9"}
|
||||
.iconochive-fork:before{content:"\22d4"}
|
||||
.iconochive-trash:before{content:"\1f5d1"}
|
||||
.iconochive-warning:before{content:"\26a0"}
|
||||
.iconochive-flash:before{content:"\1f5f2"}
|
||||
.iconochive-world:before{content:"\1f5fa"}
|
||||
.iconochive-lock:before{content:"\1f512"}
|
||||
.iconochive-unlock:before{content:"\1f513"}
|
||||
.iconochive-twitter:before{content:"\1f426"}
|
||||
.iconochive-facebook:before{content:"\66"}
|
||||
.iconochive-googleplus:before{content:"\67"}
|
||||
.iconochive-reddit:before{content:"\1f47d"}
|
||||
.iconochive-tumblr:before{content:"\54"}
|
||||
.iconochive-pinterest:before{content:"\1d4df"}
|
||||
.iconochive-popcorn:before{content:"\1f4a5"}
|
||||
.iconochive-email:before{content:"\1f4e7"}
|
||||
.iconochive-embed:before{content:"\1f517"}
|
||||
.iconochive-gamepad:before{content:"\1f579"}
|
||||
.iconochive-Zoom_In:before{content:"\2b"}
|
||||
.iconochive-Zoom_Out:before{content:"\2d"}
|
||||
.iconochive-RSS:before{content:"\1f4e8"}
|
||||
.iconochive-Light_Bulb:before{content:"\1f4a1"}
|
||||
.iconochive-Add:before{content:"\2295"}
|
||||
.iconochive-Tab_Activity:before{content:"\2318"}
|
||||
.iconochive-Forward:before{content:"\23e9"}
|
||||
.iconochive-Backward:before{content:"\23ea"}
|
||||
.iconochive-No_Audio:before{content:"\1f508"}
|
||||
.iconochive-Pause:before{content:"\23f8"}
|
||||
.iconochive-No_Favorite:before{content:"\2606"}
|
||||
.iconochive-Unike:before{content:"\2661"}
|
||||
.iconochive-Song:before{content:"\266b"}
|
||||
.iconochive-No_Flag:before{content:"\2690"}
|
||||
.iconochive-Flag:before{content:"\2691"}
|
||||
.iconochive-Done:before{content:"\2713"}
|
||||
.iconochive-Check:before{content:"\2714"}
|
||||
.iconochive-Refresh:before{content:"\27f3"}
|
||||
.iconochive-Headphones:before{content:"\1f3a7"}
|
||||
.iconochive-Chart:before{content:"\1f4c8"}
|
||||
.iconochive-Bookmark:before{content:"\1f4d1"}
|
||||
.iconochive-Documents:before{content:"\1f4da"}
|
||||
.iconochive-Newspaper:before{content:"\1f4f0"}
|
||||
.iconochive-Podcast:before{content:"\1f4f6"}
|
||||
.iconochive-Radio:before{content:"\1f4fb"}
|
||||
.iconochive-Cassette:before{content:"\1f4fc"}
|
||||
.iconochive-Shuffle:before{content:"\1f500"}
|
||||
.iconochive-Loop:before{content:"\1f501"}
|
||||
.iconochive-Low_Audio:before{content:"\1f509"}
|
||||
.iconochive-First:before{content:"\1f396"}
|
||||
.iconochive-Invisible:before{content:"\1f576"}
|
||||
.iconochive-Computer:before{content:"\1f5b3"}
|
||||
@@ -0,0 +1,357 @@
|
||||
var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };
|
||||
if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }
|
||||
{
|
||||
let window = _____WB$wombat$assign$function_____("window");
|
||||
let self = _____WB$wombat$assign$function_____("self");
|
||||
let document = _____WB$wombat$assign$function_____("document");
|
||||
let location = _____WB$wombat$assign$function_____("location");
|
||||
let top = _____WB$wombat$assign$function_____("top");
|
||||
let parent = _____WB$wombat$assign$function_____("parent");
|
||||
let frames = _____WB$wombat$assign$function_____("frames");
|
||||
let opener = _____WB$wombat$assign$function_____("opener");
|
||||
|
||||
|
||||
|
||||
var menuDisplayHolder, menuKillHolder;
|
||||
var flagMenuSwitch,menuTimeout, iloop, jloop,counter,strMatchOnMenu;
|
||||
flagMenuSwitch="new";
|
||||
counter = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------
|
||||
//menuHandler() function, here is the main function, called from the mouseover event.
|
||||
//we check for which elements are lit and work our two array's appropriately
|
||||
//first kill the killMenu function call.
|
||||
//
|
||||
//it receives three parameters parentLIO, currentMenu, and childMenu.
|
||||
//----------------------------------------------------------------------------------------------------------
|
||||
function menuHandler(parentLIO,currentMenu,childMenu)
|
||||
{
|
||||
|
||||
|
||||
var matchFlag;
|
||||
matchFlag=false;
|
||||
|
||||
//kill menu killing function, we will check list and kill again soon.
|
||||
if(flagMenuSwitch=="off")
|
||||
{
|
||||
clearTimeout(menuTimeout);
|
||||
}
|
||||
|
||||
|
||||
//if flagMenuSwitch is "new" then assign base level stuff
|
||||
if(flagMenuSwitch=="new")
|
||||
{
|
||||
//assign base here
|
||||
menuDisplayHolder=currentMenu+","+childMenu;
|
||||
|
||||
menuKillHolder=menuDisplayArray;
|
||||
|
||||
}//end flagMenuSwitch "new" check
|
||||
|
||||
|
||||
|
||||
|
||||
//if flagMenuSwitch is "off" then we got a hit (might be "on") depends on how good the handler is
|
||||
//here we do build the correct array's
|
||||
if(flagMenuSwitch == "off"||flagMenuSwitch=="on")
|
||||
{
|
||||
|
||||
//menuDisplayHolder equals
|
||||
var menuDisplayArray,matchFlag;
|
||||
matchFlag=false;
|
||||
|
||||
menuDisplayArray = menuDisplayHolder.split(",");
|
||||
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
//fill menuKillHolder
|
||||
|
||||
//loop and look for match
|
||||
for(iloop=0;iloop<menuDisplayArray.length-1;iloop++)
|
||||
{
|
||||
|
||||
//match on current menu
|
||||
if(menuDisplayArray[iloop]==currentMenu)
|
||||
{
|
||||
|
||||
|
||||
|
||||
//clear out menuKillHolder
|
||||
menuKillHolder="";
|
||||
|
||||
|
||||
//-----------------------------------------------
|
||||
//match on child menu
|
||||
if(menuDisplayArray[iloop+1]==childMenu)
|
||||
{
|
||||
//back fill menuKillHolder
|
||||
for(jloop = menuDisplayArray.length-1;jloop>(iloop+1);jloop--)
|
||||
{
|
||||
|
||||
|
||||
menuKillHolder = menuKillHolder +","+ menuDisplayArray[jloop]
|
||||
}//end back fill
|
||||
|
||||
|
||||
}//end found child menu match
|
||||
|
||||
|
||||
//--------------------------------------------
|
||||
//no match on child menu
|
||||
else
|
||||
{
|
||||
//back fill menuKillHolder
|
||||
for(jloop = menuDisplayArray.length-1;jloop>iloop;jloop--)
|
||||
{
|
||||
|
||||
|
||||
menuKillHolder = menuKillHolder +","+ menuDisplayArray[jloop];
|
||||
}//end back fill
|
||||
|
||||
}//end no child menu match found
|
||||
|
||||
}//end found match on current menu
|
||||
|
||||
|
||||
//if there is no match on the current menu then we don't need to touch the
|
||||
//menuKillHolder as it means we are killing the whole shabang.
|
||||
|
||||
}//end loop
|
||||
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//refill menuDisplayHolder
|
||||
|
||||
//loop and look for match
|
||||
for(iloop=0;iloop<menuDisplayArray.length;iloop++)
|
||||
{
|
||||
|
||||
|
||||
//>>>>>>got match will travel
|
||||
if(menuDisplayArray[iloop]==currentMenu)
|
||||
{
|
||||
|
||||
|
||||
|
||||
menuDisplayHolder="";
|
||||
matchFlag=true;
|
||||
|
||||
//>>>>>match on current and child menu
|
||||
if(menuDisplayArray[iloop+1]==childMenu)
|
||||
{
|
||||
for(jloop = 0;jloop<=iloop+1;jloop++)
|
||||
{
|
||||
//add a coma if necessary
|
||||
if(menuDisplayHolder!="")menuDisplayHolder=menuDisplayHolder+",";
|
||||
|
||||
menuDisplayHolder = menuDisplayHolder + menuDisplayArray[jloop];
|
||||
}//end build menuDisplayHolder with only current menu match
|
||||
}//end check for child menu match
|
||||
|
||||
|
||||
//>>>>>>match on only current menu
|
||||
else
|
||||
{
|
||||
for(jloop = 0;jloop<=iloop;jloop++)
|
||||
{
|
||||
//add a coma if necessary
|
||||
if(menuDisplayHolder!="")menuDisplayHolder=menuDisplayHolder+",";
|
||||
|
||||
menuDisplayHolder = menuDisplayHolder + menuDisplayArray[jloop];
|
||||
}//end build menuDisplayHolder with only current menu match
|
||||
|
||||
//add child menu
|
||||
if(childMenu!=""||childMenu!="null")
|
||||
{
|
||||
//add a coma if necessary
|
||||
if(menuDisplayHolder!="")menuDisplayHolder=menuDisplayHolder+",";
|
||||
|
||||
menuDisplayHolder=menuDisplayHolder+childMenu;
|
||||
}//end add new child menu
|
||||
|
||||
|
||||
}//end no match on child leg
|
||||
}//end if check for current menu match
|
||||
}//loop end menuDisplayHolder building
|
||||
|
||||
|
||||
|
||||
//>>>>>>check if we found a match
|
||||
//>>>>>>if not then fill with base and don't touch killMenuHolder
|
||||
if(matchFlag==false)
|
||||
{
|
||||
//assign base here
|
||||
menuDisplayHolder=currentMenu+","+childMenu;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}//end flagMenuSwitch "on/off" check
|
||||
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------
|
||||
//finish out the routines: kill, light, set var's
|
||||
|
||||
//kill it if we need to
|
||||
if(flagMenuSwitch!="new")
|
||||
{
|
||||
killMenu("notAll");
|
||||
|
||||
}
|
||||
|
||||
//send the light order
|
||||
lightMenu();
|
||||
|
||||
//set flag
|
||||
flagMenuSwitch="on";
|
||||
|
||||
menuKillHolder=menuDisplayHolder;
|
||||
|
||||
}//end menuHandler() function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//lightMenu() function fires up the correct menu's depending on
|
||||
//the two elements passed. Light up the whole array
|
||||
//-----------------------------------------------------------------------------
|
||||
function lightMenu()
|
||||
{
|
||||
|
||||
var menuDisplayArray;
|
||||
|
||||
menuDisplayArray=menuDisplayHolder.split(",");
|
||||
|
||||
//we start at 1 because the zero'th element should be the root
|
||||
for(iloop = 1;iloop<menuDisplayArray.length;iloop++)
|
||||
{
|
||||
//check for null child
|
||||
if(menuDisplayArray[iloop]!="null")
|
||||
{
|
||||
if(eval("document."+menuDisplayArray[iloop])){
|
||||
eval("document."+menuDisplayArray[iloop]+".visibility='show';");
|
||||
}
|
||||
}//end check for "null" child menu
|
||||
|
||||
}//end loop
|
||||
}//end lightMenu() function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
//this function initiallizes the kill menu function, if there are no mouseover events then it kills all menus
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
function hideMenu()
|
||||
{
|
||||
|
||||
//set a timeout and then kill all the menu's
|
||||
//we will check in menuHandler() to see if some stay lit.
|
||||
menuTimeout= setTimeout("killMenu('all');",800);
|
||||
|
||||
flagMenuSwitch="off";
|
||||
|
||||
}//end hideMenu() function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
//kill appropriate menu's, if we are getting here via the hideMenu() funciton
|
||||
//then kill all the menu's this is known from the passed value 'apocolypse'
|
||||
//----------------------------------------------------------------------------------------------
|
||||
function killMenu(apocolypse)
|
||||
{
|
||||
if(apocolypse=="all")menuKillHolder=menuDisplayHolder;
|
||||
|
||||
|
||||
var menuKillArray = menuKillHolder.split(",");
|
||||
|
||||
//loop and kill
|
||||
//we start at 1 because the zero'th element should be the root
|
||||
for(iloop=1;iloop<menuKillArray.length;iloop++)
|
||||
{
|
||||
if(menuKillArray[iloop]!="null")
|
||||
{
|
||||
if(eval("document."+menuKillArray[iloop])){
|
||||
eval("document."+menuKillArray[iloop]+".visibility='hide';");
|
||||
}
|
||||
}
|
||||
}//end loop
|
||||
|
||||
//if we are completely out, clear both array's and set flag to new
|
||||
if(apocolypse=="all")
|
||||
{
|
||||
menuDisplayHolder = "";
|
||||
menuKillHolder = "";
|
||||
flagMenuSwitch = "new";
|
||||
}
|
||||
|
||||
}//end kill menu function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//capture the click method and navigate to location
|
||||
function goBabyGo(goString)
|
||||
{
|
||||
window.location.href= goString;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
FILE ARCHIVED ON 00:27:23 Jul 15, 2019 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 13:34:01 Dec 04, 2022.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
*/
|
||||
/*
|
||||
playback timings (ms):
|
||||
captures_list: 131.167
|
||||
exclusion.robots: 0.063
|
||||
exclusion.robots.policy: 0.056
|
||||
RedisCDXSource: 2.283
|
||||
esindex: 0.005
|
||||
LoadShardBlock: 110.923 (3)
|
||||
PetaboxLoader3.datanode: 88.298 (4)
|
||||
CDXLines.iter: 13.202 (3)
|
||||
load_resource: 134.626
|
||||
PetaboxLoader3.resolve: 107.478
|
||||
*/
|
||||
@@ -0,0 +1,37 @@
|
||||
<style type="text/css">
|
||||
|
||||
.headerRed{color:#CC0000;font-size:22px;font-family:trebuchet ms, arial, verdana}
|
||||
.headerBlack{color:#000000;font-size:22px;font-family:trebuchet ms, arial, verdana}
|
||||
.midBlack{color:#000000;font-size:18px;font-family:trebuchet ms, arial, verdana}
|
||||
.midRed{color:#CC0000;font-size:18px;font-family:trebuchet ms, arial, verdana}
|
||||
.maintext{color:black;font-size:15px;font-family:trebuchet ms, arial, verdana}
|
||||
.smalltext{color:black;font-size:11px;font-family : verdana, arial, helvetica, sans serif}
|
||||
|
||||
.headTopic{font-size : 12px;font-weight:bold;font-family : verdana, arial, helvetica, sans serif;color : #000066;text-decoration:none}
|
||||
|
||||
.topicTitle {font-size : 18px; font-family : verdana, arial, helvetica,sans serif; font-weight : bold; color : #ffffff}
|
||||
|
||||
.newsText{color:#000033;font-size:11px;text-decoration:none;font-family : verdana, arial, helvetica, sans serif}
|
||||
.newsDate{color:black;font-size:11px;font-family : verdana, arial, helvetica, sans serif}
|
||||
|
||||
</style><!--
|
||||
FILE ARCHIVED ON 21:18:28 Aug 21, 2019 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 13:34:01 Dec 04, 2022.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
-->
|
||||
<!--
|
||||
playback timings (ms):
|
||||
captures_list: 96.352
|
||||
exclusion.robots: 0.069
|
||||
exclusion.robots.policy: 0.061
|
||||
cdx.remote: 0.062
|
||||
esindex: 0.009
|
||||
LoadShardBlock: 49.34 (3)
|
||||
PetaboxLoader3.datanode: 72.663 (5)
|
||||
CDXLines.iter: 17.352 (3)
|
||||
load_resource: 131.138 (2)
|
||||
PetaboxLoader3.resolve: 62.075 (2)
|
||||
-->
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 646 B |
@@ -0,0 +1,304 @@
|
||||
<style type="text/css">
|
||||
|
||||
.headerRed{color:#CC0000;font-size:22px;font-family:trebuchet ms, arial, verdana}
|
||||
.headerBlack{color:#000000;font-size:22px;font-family:trebuchet ms, arial, verdana}
|
||||
.midBlack{color:#000000;font-size:18px;font-family:trebuchet ms, arial, verdana}
|
||||
.midRed{color:#CC0000;font-size:18px;font-family:trebuchet ms, arial, verdana}
|
||||
.maintext{color:black;font-size:15px;font-family:trebuchet ms, arial, verdana}
|
||||
.smalltext{color:black;font-size:11px;font-family : verdana, arial, helvetica, sans serif}
|
||||
|
||||
.headTopic{font-size : 12px;font-weight:bold;font-family : verdana, arial, helvetica, sans serif;color : #000066;text-decoration:none}
|
||||
|
||||
.topicTitle {font-size : 18px; font-family : verdana, arial, helvetica,sans serif; font-weight : bold; color : #ffffff}
|
||||
|
||||
.navTopBullet{color: #CC0033;font-size:18px;font-weight:bold;line-height:15px;font-family : arial, helvetica, sans serif}
|
||||
.menuItem{color: #000000;font-size:11px;text-decoration:none;font-family : verdana, arial, helvetica, sans serif}
|
||||
A.menuitem:hover {color: #CC0033}
|
||||
|
||||
.navTop{color: #000000;font-size:14px;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
a.navTop { font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #FFFFFF; text-decoration:none}
|
||||
a.navTop:link{color:#ffffff}
|
||||
a.navTop:visited{color:#ffffff}
|
||||
A.navTop:hover {color: #FF0000}
|
||||
A.navTop:active {}
|
||||
|
||||
.navSide{color: #000000;font-size:14px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide:hover {color: #CC0000}
|
||||
A.navSide:active {}
|
||||
|
||||
.navSideW{color: #F8F8F8;font-size:15px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSideW:hover {color: #FFCC00}
|
||||
A.navSideW:active {}
|
||||
|
||||
.navSide1{color: #4D4D4D;font-size:11px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide1:hover {color: #CC0000}
|
||||
A.navSide1:active {}
|
||||
|
||||
.navSide1a{color: #272727;font-size:11px;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide1a:hover {color: #CC0000}
|
||||
A.navSide1a:active {}
|
||||
|
||||
.navSide2{color: #000000;font-size:13px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide2:hover {color: #CC0000}
|
||||
A.navSide2:active {}
|
||||
|
||||
|
||||
|
||||
.navSide4{color: #000000;font-size:13px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide4:hover {color: #CC0000}
|
||||
A.navSide4:active {}
|
||||
|
||||
.navSide5{color: #000000;font-size:12px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide5:hover {color: #CC0000}
|
||||
A.navSide5:active {}
|
||||
|
||||
.navSide6{color: #000000;font-size:11px;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide6:hover {color: #CC0000}
|
||||
A.navSide6:active {}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.newsText{color:#000033;font-size:11px;text-decoration:none;font-family : verdana, arial, helvetica, sans serif}
|
||||
.newsDate{color:black;font-size:11px;font-family : verdana, arial, helvetica, sans serif}
|
||||
|
||||
.sidelink {font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #000000; text-decoration: none}
|
||||
A.sidelink:hover {color: #FF3333}
|
||||
|
||||
.sidelink_brand {font-family: Arial, Helvetica, sans-serif; font-size: 10pt; color: #000000; text-decoration: none}
|
||||
A.sidelink_brand:hover {color: #FF3333}
|
||||
|
||||
.sidelink2 {font-family: Arial, Helvetica, sans-serif; font-size: 15px; color: #CC0000; text-decoration: none; font-weight: bold}
|
||||
A.sidelink2:hover {color: #000000}
|
||||
|
||||
.sidelink3 {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #CC0000; text-decoration: none}
|
||||
A.sidelink3:hover {color: #000000}
|
||||
|
||||
.header1 {font-family: Arial, Helvetica, sans-serif; font-size: 18px; color: #000000; text-decoration: none}
|
||||
|
||||
.sublink1 {font-family: Arial, Helvetica, sans-serif; font-size: 11pt; color: #000000; text-decoration: none}
|
||||
A.sublink1:hover {color: #FF3333}
|
||||
|
||||
|
||||
.rightheadline {font-family: Arial, Helvetica, sans-serif; font-size: 15px; color: #CC0000; text-decoration: none}
|
||||
.rightlink {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #000000; text-decoration: none}
|
||||
A.rightlink:hover {color: #CC0000}
|
||||
|
||||
.righttext {font-family: Arial, Helvetica, sans-serif; font-size: 11px;font-weight:normal; color: #000000; text-decoration: none}
|
||||
.righttext1 {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; text-decoration: none}
|
||||
.righttext2 {font-family: Arial, Helvetica, sans-serif; font-size: 9px; color: #000000; text-decoration: none}
|
||||
.righttext3 {font-family: Arial, Helvetica, sans-serif; font-size: 15px;font-weight:bold; color: #CC0000; text-decoration: none}
|
||||
.righttext4 {font-family: Arial, Helvetica, sans-serif; font-size: 12px;font-weight:bold; color: #000000; text-decoration: none}
|
||||
|
||||
.printerfriendly {font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #000000; text-decoration: none}
|
||||
a.printerfriendly:hover {color: #CC0000}
|
||||
|
||||
.boxlinks {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #000000; text-decoration: none}
|
||||
a.boxlinks:hover {color: #CC0000}
|
||||
|
||||
.boxlinksgrey {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #666666; text-decoration: none}
|
||||
.boxlinksred {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #790000; text-decoration: none}
|
||||
|
||||
.boxlinks2 {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; text-decoration: none}
|
||||
a.boxlinks2:hover {color: #CC0000}
|
||||
|
||||
.archivelink {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #CC0000; text-decoration: none}
|
||||
a.archivelink:hover {color: #000000}
|
||||
|
||||
.chatlink {font-family: Arial, Helvetica, sans-serif; font-size: 11px;font-weight:bold; color: #000000; text-decoration: none}
|
||||
.chattext {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; text-decoration: none}
|
||||
a.chatlink:hover {color: #CC0000}
|
||||
.chatlink2 {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #000000; text-decoration: none}
|
||||
a.chatlink2:hover {color: #CC0000}
|
||||
|
||||
.footerlink {font-family: Arial, Helvetica, sans-serif; font-size: 12px;font-weight:normal; color: #000000; text-decoration: none}
|
||||
a.footerlink:hover {color: #CC0000}
|
||||
|
||||
.templeft{color: #000000;font-size:12px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.templeft:hover {color: #CC0000}
|
||||
A.templeft:active {}
|
||||
|
||||
p {color: #000000;font-size:12px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
p, td, ul, ol, body {font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #000000}
|
||||
|
||||
.red { color: #CC0000; }
|
||||
|
||||
.featureheading {color: #000000;font-size:17px;font-family : arial, helvetica, sans serif; text-align: center;font-weight:bold}
|
||||
.headline {color: #CC0000;font-size:30px;font-family : arial, helvetica, sans serif; text-align: center;font-weight:bold}
|
||||
.subheading {color: #000000;font-size:18px;font-family : arial, helvetica, sans serif; text-align: center;font-weight:bold}
|
||||
.byline {color: #000000;font-size:11px;font-family : arial, helvetica, sans serif; text-align: center}
|
||||
|
||||
.linecolor {color : #f0f0f0}
|
||||
.redheader {color: #cc0000;font-size:15px;font-family : arial, helvetica, sans serif;font-weight:bold}
|
||||
.smallredheader {color: #993300;font-size:11px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
|
||||
.h1 {color: #000000;font-size:31px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h2 {color: #000000;font-size:25px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h3 {color: #000000;font-size:21px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h4 {color: #000000;font-size:17px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h5 {color: #000000;font-size:12px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h6 {color: #000000;font-size:9px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.h1red {color: #CC0000;font-size:31px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h2red {color: #CC0000;font-size:25px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h3red {color: #CC0000;font-size:21px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h4red {color: #CC0000;font-size:17px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h5red {color: #CC0000;font-size:12px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h6red {color: #CC0000;font-size:9px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.size0 {color: #000000;font-size:9px;font-family : arial, helvetica, sans serif}
|
||||
.size1 {color: #000000;font-size:10px;font-family : arial, helvetica, sans serif}
|
||||
.size2 {color: #000000;font-size:12px;font-family : arial, helvetica, sans serif}
|
||||
.size3 {color: #000000;font-size:15px;font-family : arial, helvetica, sans serif}
|
||||
.size4 {color: #000000;font-size:19px;font-family : arial, helvetica, sans serif}
|
||||
.size5 {color: #000000;font-size:23px;font-family : arial, helvetica, sans serif}
|
||||
.size6 {color: #000000;font-size:30px;font-family : arial, helvetica, sans serif}
|
||||
.size7 {color: #000000;font-size:42px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.size0red {color: #CC0000;font-size:9px;font-family : arial, helvetica, sans serif}
|
||||
.size1red {color: #CC0000;font-size:10px;font-family : arial, helvetica, sans serif}
|
||||
.size2red {color: #CC0000;font-size:12px;font-family : arial, helvetica, sans serif}
|
||||
.size3red {color: #CC0000;font-size:15px;font-family : arial, helvetica, sans serif}
|
||||
.size4red {color: #CC0000;font-size:19px;font-family : arial, helvetica, sans serif}
|
||||
.size5red {color: #CC0000;font-size:23px;font-family : arial, helvetica, sans serif}
|
||||
.size6red {color: #CC0000;font-size:30px;font-family : arial, helvetica, sans serif}
|
||||
.size7red {color: #CC0000;font-size:42px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.link4 {color: #CC0000;font-size:17px; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
a.link4:hover {color: #000000;font-size:17px; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.cboxhead {font-size: 15px; color: #CC0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
a.cboxhead:hover {color: #000000}
|
||||
|
||||
.cboxsubhead {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.cboxbody {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.fiftyrecent {font-family: Arial, Helvetica, sans-serif; font-size: 13px; color: #CC0000; text-decoration: none}
|
||||
A.fiftyrecent:hover {color: #000000}
|
||||
|
||||
.search {font-family: Arial, Helvetica, sans-serif; font-size: 9px; color: #000000; text-decoration: none; font-weight: bold}
|
||||
A.search:hover {color: #CC0000}
|
||||
|
||||
|
||||
|
||||
.prodhead {color: #ffffff;font-size:15px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.breadcrumb {font-size: 11px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
a.breadcrumb:hover {color: #CC0000}
|
||||
|
||||
.search2 {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #ffffff; text-decoration: none}
|
||||
A.search2:hover {color: #ffff80}
|
||||
|
||||
.nboxhead {font-size: 12px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.nboxdate {font-size: 10px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.nboxarchive {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.nboxarchive:hover {color: #CC0000}
|
||||
|
||||
.footerlinknew {font-family: Arial, Helvetica, sans-serif; font-size: 11px;font-weight:normal; color: #ffffff; text-decoration: none}
|
||||
a.footerlinknew:hover {color: #ffff80}
|
||||
|
||||
.prodlisthead {font-size: 11px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.prodlistlink {font-size: 11px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.prodlistlink:hover {color: #CC0000}
|
||||
|
||||
.serieslink {font-size: 10px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.serieslink:hover {color: #CC0000}
|
||||
.seriesmore {font-size: 10px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.seriesmore:hover {color: #CC0000}
|
||||
|
||||
.articlehead {font-size: 12px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.articlehead:hover {color: #ffffae}
|
||||
|
||||
.cxboxhead {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.cxboxhead:hover {font-size: 12px; color: #8a0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.cxboxbody {font-size: 10px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.cxboxbody:hover {color: #8a0000}
|
||||
|
||||
.cxboxsub {font-size: 11px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
|
||||
.cnboxhead {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.cnboxhead:hover {font-size: 12px; color: #8a0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.cnboxbody {font-size: 10px; color: #000000; line-height : 11px ; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.cnboxbody:hover {color: #8a0000}
|
||||
|
||||
|
||||
.aaboxheadline {font-size: 11px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.aaboxheadline:hover {font-size: 11px; color: #8a0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.aaboxsubcat {font-size: 11px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.aaboxdate {font-size: 10px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.aaboxbyline {font-size: 10px; color: #000000; font-style: italic; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.bxboxheadline {font-size: 12px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.bxboxheadline:hover {font-size: 12px; color: #ffffae; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.bxboxfrheadline {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.bxboxfrheadline:hover {font-size: 12px; color: #8a0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.bxboxbody {font-size: 11px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.bxboxbody:hover {font-size: 11px; color: #8a0000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.pflink {font-size: 10px; color: #4a4a4a; font-family : arial, helvetica, sans serif; text-decoration: none;}
|
||||
A.pflink:hover {font-size: 10px; color: #CC0000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.listlink {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.listlink:hover {font-size: 12px; color: #8a0000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.glosslink {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.glosslink:hover {color: #CC0000}
|
||||
|
||||
.glossalphalink {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif}
|
||||
A.glossalphalink:hover {color: #CC0000}
|
||||
|
||||
.glossterm {font-size: 16px; color: #CC0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.glosssource {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
DIV.boxscroll {
|
||||
height: 77px;
|
||||
overflow: auto;
|
||||
width: 282px;
|
||||
|
||||
}
|
||||
|
||||
DIV.boxscroll2 {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
width: 300px;
|
||||
border-width: 1px;
|
||||
border-color: #b9b9b9;
|
||||
border-style: solid;
|
||||
|
||||
}
|
||||
|
||||
BODY {SCROLLBAR-ARROW-COLOR: #f9f1d2; SCROLLBAR-BASE-COLOR: #b7a783}
|
||||
|
||||
|
||||
</style><!--
|
||||
FILE ARCHIVED ON 06:44:48 Aug 21, 2019 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 13:34:01 Dec 04, 2022.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
-->
|
||||
<!--
|
||||
playback timings (ms):
|
||||
captures_list: 92.144
|
||||
exclusion.robots: 0.064
|
||||
exclusion.robots.policy: 0.057
|
||||
RedisCDXSource: 0.576
|
||||
esindex: 0.008
|
||||
LoadShardBlock: 74.392 (3)
|
||||
PetaboxLoader3.datanode: 96.465 (5)
|
||||
CDXLines.iter: 13.703 (3)
|
||||
load_resource: 136.157 (2)
|
||||
PetaboxLoader3.resolve: 80.396 (2)
|
||||
-->
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,474 @@
|
||||
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3.0
|
||||
/* eslint-disable no-var, semi, prefer-arrow-callback, prefer-template */
|
||||
|
||||
/**
|
||||
* Collection of methods for sending analytics events to Archive.org's analytics server.
|
||||
*
|
||||
* These events are used for internal stats and sent (in anonymized form) to Google Analytics.
|
||||
*
|
||||
* @see analytics.md
|
||||
*
|
||||
* @type {Object}
|
||||
*/
|
||||
window.archive_analytics = (function defineArchiveAnalytics() {
|
||||
// keep orignal Date object so as not to be affected by wayback's
|
||||
// hijacking global Date object
|
||||
var Date = window.Date;
|
||||
var ARCHIVE_ANALYTICS_VERSION = 2;
|
||||
var DEFAULT_SERVICE = 'ao_2';
|
||||
var NO_SAMPLING_SERVICE = 'ao_no_sampling'; // sends every event instead of a percentage
|
||||
|
||||
var startTime = new Date();
|
||||
|
||||
/**
|
||||
* @return {Boolean}
|
||||
*/
|
||||
function isPerformanceTimingApiSupported() {
|
||||
return 'performance' in window && 'timing' in window.performance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines how many milliseconds elapsed between the browser starting to parse the DOM and
|
||||
* the current time.
|
||||
*
|
||||
* Uses the Performance API or a fallback value if it's not available.
|
||||
*
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
|
||||
*
|
||||
* @return {Number}
|
||||
*/
|
||||
function getLoadTime() {
|
||||
var start;
|
||||
|
||||
if (isPerformanceTimingApiSupported())
|
||||
start = window.performance.timing.domLoading;
|
||||
else
|
||||
start = startTime.getTime();
|
||||
|
||||
return new Date().getTime() - start;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines how many milliseconds elapsed between the user navigating to the page and
|
||||
* the current time.
|
||||
*
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
|
||||
*
|
||||
* @return {Number|null} null if the browser doesn't support the Performance API
|
||||
*/
|
||||
function getNavToDoneTime() {
|
||||
if (!isPerformanceTimingApiSupported())
|
||||
return null;
|
||||
|
||||
return new Date().getTime() - window.performance.timing.navigationStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs an arithmetic calculation on a string with a number and unit, while maintaining
|
||||
* the unit.
|
||||
*
|
||||
* @param {String} original value to modify, with a unit
|
||||
* @param {Function} doOperation accepts one Number parameter, returns a Number
|
||||
* @returns {String}
|
||||
*/
|
||||
function computeWithUnit(original, doOperation) {
|
||||
var number = parseFloat(original, 10);
|
||||
var unit = original.replace(/(\d*\.\d+)|\d+/, '');
|
||||
|
||||
return doOperation(number) + unit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes the default font size of the browser.
|
||||
*
|
||||
* @returns {String|null} computed font-size with units (typically pixels), null if it cannot be computed
|
||||
*/
|
||||
function getDefaultFontSize() {
|
||||
var fontSizeStr;
|
||||
|
||||
if (!('getComputedStyle' in window))
|
||||
return null;
|
||||
|
||||
var style = window.getComputedStyle(document.documentElement);
|
||||
if (!style)
|
||||
return null;
|
||||
|
||||
fontSizeStr = style.fontSize;
|
||||
|
||||
// Don't modify the value if tracking book reader.
|
||||
if (document.querySelector('#BookReader'))
|
||||
return fontSizeStr;
|
||||
|
||||
return computeWithUnit(fontSizeStr, function reverseBootstrapFontSize(number) {
|
||||
// Undo the 62.5% size applied in the Bootstrap CSS.
|
||||
return number * 1.6;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the URL parameters for a given Location
|
||||
* @param {Location}
|
||||
* @return {Object} The URL parameters
|
||||
*/
|
||||
function getParams(location) {
|
||||
if (!location) location = window.location;
|
||||
var vars;
|
||||
var i;
|
||||
var pair;
|
||||
var params = {};
|
||||
var query = location.search;
|
||||
if (!query) return params;
|
||||
vars = query.substring(1).split('&');
|
||||
for (i = 0; i < vars.length; i++) {
|
||||
pair = vars[i].split('=');
|
||||
params[pair[0]] = decodeURIComponent(pair[1]);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
function getMetaProp(name) {
|
||||
var metaTag = document.querySelector('meta[property=' + name + ']');
|
||||
return metaTag ? metaTag.getAttribute('content') || null : null;
|
||||
}
|
||||
|
||||
var ArchiveAnalytics = {
|
||||
/**
|
||||
* @type {String|null}
|
||||
*/
|
||||
service: getMetaProp('service'),
|
||||
mediaType: getMetaProp('mediatype'),
|
||||
primaryCollection: getMetaProp('primary_collection'),
|
||||
|
||||
/**
|
||||
* Key-value pairs to send in pageviews (you can read this after a pageview to see what was
|
||||
* sent).
|
||||
*
|
||||
* @type {Object}
|
||||
*/
|
||||
values: {},
|
||||
|
||||
/**
|
||||
* Sends an analytics ping, preferably using navigator.sendBeacon()
|
||||
* @param {Object} values
|
||||
* @param {Function} [onload_callback] (deprecated) callback to invoke once ping to analytics server is done
|
||||
* @param {Boolean} [augment_for_ao_site] (deprecated) if true, add some archive.org site-specific values
|
||||
*/
|
||||
send_ping: function send_ping(values, onload_callback, augment_for_ao_site) {
|
||||
if (typeof window.navigator !== 'undefined' && typeof window.navigator.sendBeacon !== 'undefined')
|
||||
this.send_ping_via_beacon(values);
|
||||
else
|
||||
this.send_ping_via_image(values);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a ping via Beacon API
|
||||
* NOTE: Assumes window.navigator.sendBeacon exists
|
||||
* @param {Object} values Tracking parameters to pass
|
||||
*/
|
||||
send_ping_via_beacon: function send_ping_via_beacon(values) {
|
||||
var url = this.generate_tracking_url(values || {});
|
||||
window.navigator.sendBeacon(url);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a ping via Image object
|
||||
* @param {Object} values Tracking parameters to pass
|
||||
*/
|
||||
send_ping_via_image: function send_ping_via_image(values) {
|
||||
var url = this.generate_tracking_url(values || {});
|
||||
var loadtime_img = new Image(1, 1);
|
||||
loadtime_img.src = url;
|
||||
loadtime_img.alt = '';
|
||||
},
|
||||
|
||||
/**
|
||||
* Construct complete tracking URL containing payload
|
||||
* @param {Object} params Tracking parameters to pass
|
||||
* @return {String} URL to use for tracking call
|
||||
*/
|
||||
generate_tracking_url: function generate_tracking_url(params) {
|
||||
var baseUrl = '//analytics.archive.org/0.gif';
|
||||
var keys;
|
||||
var outputParams = params;
|
||||
var outputParamsArray = [];
|
||||
|
||||
outputParams.service = outputParams.service || this.service || DEFAULT_SERVICE;
|
||||
|
||||
// Build array of querystring parameters
|
||||
keys = Object.keys(outputParams);
|
||||
keys.forEach(function keyIteration(key) {
|
||||
outputParamsArray.push(encodeURIComponent(key) + '=' + encodeURIComponent(outputParams[key]));
|
||||
});
|
||||
outputParamsArray.push('version=' + ARCHIVE_ANALYTICS_VERSION);
|
||||
outputParamsArray.push('count=' + (keys.length + 2)); // Include `version` and `count` in count
|
||||
|
||||
return baseUrl + '?' + outputParamsArray.join('&');
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {int} page Page number
|
||||
*/
|
||||
send_scroll_fetch_event: function send_scroll_fetch_event(page) {
|
||||
var additionalValues = { ev: page };
|
||||
var loadTime = getLoadTime();
|
||||
var navToDoneTime = getNavToDoneTime();
|
||||
if (loadTime) additionalValues.loadtime = loadTime;
|
||||
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
|
||||
this.send_event('page_action', 'scroll_fetch', location.pathname, additionalValues);
|
||||
},
|
||||
|
||||
send_scroll_fetch_base_event: function send_scroll_fetch_base_event() {
|
||||
var additionalValues = {};
|
||||
var loadTime = getLoadTime();
|
||||
var navToDoneTime = getNavToDoneTime();
|
||||
if (loadTime) additionalValues.loadtime = loadTime;
|
||||
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
|
||||
this.send_event('page_action', 'scroll_fetch_base', location.pathname, additionalValues);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Object} [options]
|
||||
* @param {String} [options.mediaType]
|
||||
* @param {String} [options.mediaLanguage]
|
||||
* @param {String} [options.page] The path portion of the page URL
|
||||
*/
|
||||
send_pageview: function send_pageview(options) {
|
||||
var settings = options || {};
|
||||
|
||||
var defaultFontSize;
|
||||
var loadTime = getLoadTime();
|
||||
var mediaType = settings.mediaType;
|
||||
var primaryCollection = settings.primaryCollection;
|
||||
var page = settings.page;
|
||||
var navToDoneTime = getNavToDoneTime();
|
||||
|
||||
/**
|
||||
* @return {String}
|
||||
*/
|
||||
function get_locale() {
|
||||
if (navigator) {
|
||||
if (navigator.language)
|
||||
return navigator.language;
|
||||
|
||||
else if (navigator.browserLanguage)
|
||||
return navigator.browserLanguage;
|
||||
|
||||
else if (navigator.systemLanguage)
|
||||
return navigator.systemLanguage;
|
||||
|
||||
else if (navigator.userLanguage)
|
||||
return navigator.userLanguage;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
defaultFontSize = getDefaultFontSize();
|
||||
|
||||
// Set field values
|
||||
this.values.kind = 'pageview';
|
||||
this.values.timediff = (new Date().getTimezoneOffset()/60)*(-1); // *timezone* diff from UTC
|
||||
this.values.locale = get_locale();
|
||||
this.values.referrer = (document.referrer == '' ? '-' : document.referrer);
|
||||
|
||||
if (loadTime)
|
||||
this.values.loadtime = loadTime;
|
||||
|
||||
if (navToDoneTime)
|
||||
this.values.nav_to_done_ms = navToDoneTime;
|
||||
|
||||
if (settings.trackingId) {
|
||||
this.values.ga_tid = settings.trackingId;
|
||||
}
|
||||
|
||||
/* START CUSTOM DIMENSIONS */
|
||||
if (defaultFontSize)
|
||||
this.values.ga_cd1 = defaultFontSize;
|
||||
|
||||
if ('devicePixelRatio' in window)
|
||||
this.values.ga_cd2 = window.devicePixelRatio;
|
||||
|
||||
if (mediaType)
|
||||
this.values.ga_cd3 = mediaType;
|
||||
|
||||
if (settings.mediaLanguage) {
|
||||
this.values.ga_cd4 = settings.mediaLanguage;
|
||||
}
|
||||
|
||||
if (primaryCollection) {
|
||||
this.values.ga_cd5 = primaryCollection;
|
||||
}
|
||||
/* END CUSTOM DIMENSIONS */
|
||||
|
||||
if (page)
|
||||
this.values.page = page;
|
||||
|
||||
this.send_ping(this.values);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a tracking "Event".
|
||||
* @param {string} category
|
||||
* @param {string} action
|
||||
* @param {string} label
|
||||
* @param {Object} additionalEventParams
|
||||
*/
|
||||
send_event: function send_event(
|
||||
category,
|
||||
action,
|
||||
label,
|
||||
additionalEventParams
|
||||
) {
|
||||
if (!label) label = window.location.pathname;
|
||||
if (!additionalEventParams) additionalEventParams = {};
|
||||
if (additionalEventParams.mediaLanguage) {
|
||||
additionalEventParams.ga_cd4 = additionalEventParams.mediaLanguage;
|
||||
delete additionalEventParams.mediaLanguage;
|
||||
}
|
||||
var eventParams = Object.assign(
|
||||
{
|
||||
kind: 'event',
|
||||
ec: category,
|
||||
ea: action,
|
||||
el: label,
|
||||
cache_bust: Math.random(),
|
||||
},
|
||||
additionalEventParams
|
||||
);
|
||||
this.send_ping(eventParams);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends every event instead of a small percentage.
|
||||
*
|
||||
* Use this sparingly as it can generate a lot of events.
|
||||
*
|
||||
* @param {string} category
|
||||
* @param {string} action
|
||||
* @param {string} label
|
||||
* @param {Object} additionalEventParams
|
||||
*/
|
||||
send_event_no_sampling: function send_event_no_sampling(
|
||||
category,
|
||||
action,
|
||||
label,
|
||||
additionalEventParams
|
||||
) {
|
||||
var extraParams = additionalEventParams || {};
|
||||
extraParams.service = NO_SAMPLING_SERVICE;
|
||||
this.send_event(category, action, label, extraParams);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Object} options see this.send_pageview options
|
||||
*/
|
||||
send_pageview_on_load: function send_pageview_on_load(options) {
|
||||
var self = this;
|
||||
window.addEventListener('load', function send_pageview_with_options() {
|
||||
self.send_pageview(options);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Handles tracking events passed in URL.
|
||||
* Assumes category and action values are separated by a "|" character.
|
||||
* NOTE: Uses the unsampled analytics property. Watch out for future high click links!
|
||||
* @param {Location}
|
||||
*/
|
||||
process_url_events: function process_url_events(location) {
|
||||
var eventValues;
|
||||
var actionValue;
|
||||
var eventValue = getParams(location).iax;
|
||||
if (!eventValue) return;
|
||||
eventValues = eventValue.split('|');
|
||||
actionValue = eventValues.length >= 1 ? eventValues[1] : '';
|
||||
this.send_event_no_sampling(
|
||||
eventValues[0],
|
||||
actionValue,
|
||||
window.location.pathname
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* Attaches handlers for event tracking.
|
||||
*
|
||||
* To enable click tracking for a link, add a `data-event-click-tracking`
|
||||
* attribute containing the Google Analytics Event Category and Action, separated
|
||||
* by a vertical pipe (|).
|
||||
* e.g. `<a href="foobar" data-event-click-tracking="TopNav|FooBar">`
|
||||
*
|
||||
* To enable form submit tracking, add a `data-event-form-tracking` attribute
|
||||
* to the `form` tag.
|
||||
* e.g. `<form data-event-form-tracking="TopNav|SearchForm" method="GET">`
|
||||
*
|
||||
* Additional tracking options can be added via a `data-event-tracking-options`
|
||||
* parameter. This parameter, if included, should be a JSON string of the parameters.
|
||||
* Valid parameters are:
|
||||
* - service {string}: Corresponds to the Google Analytics property data values flow into
|
||||
*/
|
||||
set_up_event_tracking: function set_up_event_tracking() {
|
||||
var self = this;
|
||||
var clickTrackingAttributeName = 'event-click-tracking';
|
||||
var formTrackingAttributeName = 'event-form-tracking';
|
||||
var trackingOptionsAttributeName = 'event-tracking-options';
|
||||
|
||||
function handleAction(event, attributeName) {
|
||||
var selector = '[data-' + attributeName + ']';
|
||||
var eventTarget = event.target;
|
||||
if (!eventTarget) return;
|
||||
var target = eventTarget.closest(selector);
|
||||
if (!target) return;
|
||||
var categoryAction;
|
||||
var categoryActionParts;
|
||||
var options;
|
||||
categoryAction = target.dataset[toCamelCase(attributeName)];
|
||||
if (!categoryAction) return;
|
||||
categoryActionParts = categoryAction.split('|');
|
||||
options = target.dataset[toCamelCase(trackingOptionsAttributeName)];
|
||||
options = options ? JSON.parse(options) : {};
|
||||
self.send_event(
|
||||
categoryActionParts[0],
|
||||
categoryActionParts[1],
|
||||
categoryActionParts[2] || window.location.pathname,
|
||||
options.service ? { service: options.service } : {}
|
||||
);
|
||||
}
|
||||
|
||||
function toCamelCase(str) {
|
||||
return str.replace(/\W+(.)/g, function (match, chr) {
|
||||
return chr.toUpperCase();
|
||||
});
|
||||
};
|
||||
|
||||
document.addEventListener('click', function(e) {
|
||||
handleAction(e, clickTrackingAttributeName);
|
||||
});
|
||||
|
||||
document.addEventListener('submit', function(e) {
|
||||
handleAction(e, formTrackingAttributeName);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {Object[]}
|
||||
*/
|
||||
get_data_packets: function get_data_packets() {
|
||||
return [this.values];
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a tracking image for tracking JS compatibility.
|
||||
*
|
||||
* @param {string} type The type value for track_js_case in query params for 0.gif
|
||||
*/
|
||||
create_tracking_image: function create_tracking_image(type) {
|
||||
this.send_ping_via_image({
|
||||
cache_bust: Math.random(),
|
||||
kind: 'track_js',
|
||||
track_js_case: type,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return ArchiveAnalytics;
|
||||
}());
|
||||
// @license-end
|
||||
@@ -0,0 +1,507 @@
|
||||
@import 'record.css'; /* for SPN1 */
|
||||
|
||||
#wm-ipp-base {
|
||||
height:65px;/* initial height just in case js code fails */
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:none;
|
||||
background:none transparent;
|
||||
}
|
||||
#wm-ipp {
|
||||
z-index: 2147483647;
|
||||
}
|
||||
#wm-ipp, #wm-ipp * {
|
||||
font-family:Lucida Grande, Helvetica, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
line-height:1.2;
|
||||
letter-spacing:0;
|
||||
width:auto;
|
||||
height:auto;
|
||||
max-width:none;
|
||||
max-height:none;
|
||||
min-width:0 !important;
|
||||
min-height:0;
|
||||
outline:none;
|
||||
float:none;
|
||||
text-align:left;
|
||||
border:none;
|
||||
color: #000;
|
||||
text-indent: 0;
|
||||
position: initial;
|
||||
background: none;
|
||||
}
|
||||
#wm-ipp div, #wm-ipp canvas {
|
||||
display: block;
|
||||
}
|
||||
#wm-ipp div, #wm-ipp tr, #wm-ipp td, #wm-ipp a, #wm-ipp form {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:none;
|
||||
border-radius:0;
|
||||
background-color:transparent;
|
||||
background-image:none;
|
||||
/*z-index:2147483640;*/
|
||||
height:auto;
|
||||
}
|
||||
#wm-ipp table {
|
||||
border:none;
|
||||
border-collapse:collapse;
|
||||
margin:0;
|
||||
padding:0;
|
||||
width:auto;
|
||||
font-size:inherit;
|
||||
}
|
||||
#wm-ipp form input {
|
||||
padding:1px !important;
|
||||
height:auto;
|
||||
display:inline;
|
||||
margin:0;
|
||||
color: #000;
|
||||
background: none #fff;
|
||||
border: 1px solid #666;
|
||||
}
|
||||
#wm-ipp form input[type=submit] {
|
||||
padding:0 8px !important;
|
||||
margin:1px 0 1px 5px !important;
|
||||
width:auto !important;
|
||||
border: 1px solid #000 !important;
|
||||
background: #fff !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
#wm-ipp form input[type=submit]:hover {
|
||||
background: #eee !important;
|
||||
cursor: pointer !important;
|
||||
}
|
||||
#wm-ipp form input[type=submit]:active {
|
||||
transform: translateY(1px);
|
||||
}
|
||||
#wm-ipp a {
|
||||
display: inline;
|
||||
}
|
||||
#wm-ipp a:hover{
|
||||
text-decoration:underline;
|
||||
}
|
||||
#wm-ipp a.wm-btn:hover {
|
||||
text-decoration:none;
|
||||
color:#ff0 !important;
|
||||
}
|
||||
#wm-ipp a.wm-btn:hover span {
|
||||
color:#ff0 !important;
|
||||
}
|
||||
#wm-ipp #wm-ipp-inside {
|
||||
margin: 0 6px;
|
||||
border:5px solid #000;
|
||||
border-top:none;
|
||||
background-color:rgba(255,255,255,0.9);
|
||||
-moz-box-shadow:1px 1px 4px #333;
|
||||
-webkit-box-shadow:1px 1px 4px #333;
|
||||
box-shadow:1px 1px 4px #333;
|
||||
border-radius:0 0 8px 8px;
|
||||
}
|
||||
/* selectors are intentionally verbose to ensure priority */
|
||||
#wm-ipp #wm-logo {
|
||||
padding:0 10px;
|
||||
vertical-align:middle;
|
||||
min-width:100px;
|
||||
flex: 0 0 100px;
|
||||
}
|
||||
#wm-ipp .c {
|
||||
padding-left: 4px;
|
||||
}
|
||||
#wm-ipp .c .u {
|
||||
margin-top: 4px !important;
|
||||
}
|
||||
#wm-ipp .n {
|
||||
padding:0 0 0 5px !important;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
#wm-ipp .n a {
|
||||
text-decoration:none;
|
||||
color:#33f;
|
||||
font-weight:bold;
|
||||
}
|
||||
#wm-ipp .n .b {
|
||||
padding:0 6px 0 0 !important;
|
||||
text-align:right !important;
|
||||
overflow:visible;
|
||||
white-space:nowrap;
|
||||
color:#99a;
|
||||
vertical-align:middle;
|
||||
}
|
||||
#wm-ipp .n .y .b {
|
||||
padding:0 6px 2px 0 !important;
|
||||
}
|
||||
#wm-ipp .n .c {
|
||||
background:#000;
|
||||
color:#ff0;
|
||||
font-weight:bold;
|
||||
padding:0 !important;
|
||||
text-align:center;
|
||||
}
|
||||
#wm-ipp.hi .n td.c {
|
||||
color:#ec008c;
|
||||
}
|
||||
#wm-ipp .n td.f {
|
||||
padding:0 0 0 6px !important;
|
||||
text-align:left !important;
|
||||
overflow:visible;
|
||||
white-space:nowrap;
|
||||
color:#99a;
|
||||
vertical-align:middle;
|
||||
}
|
||||
#wm-ipp .n tr.m td {
|
||||
text-transform:uppercase;
|
||||
white-space:nowrap;
|
||||
padding:2px 0;
|
||||
}
|
||||
#wm-ipp .c .s {
|
||||
padding:0 5px 0 0 !important;
|
||||
vertical-align:bottom;
|
||||
}
|
||||
#wm-ipp #wm-nav-captures {
|
||||
white-space: nowrap;
|
||||
}
|
||||
#wm-ipp .c .s a.t {
|
||||
color:#33f;
|
||||
font-weight:bold;
|
||||
line-height: 1.8;
|
||||
}
|
||||
#wm-ipp .c .s div.r {
|
||||
color: #666;
|
||||
font-size:9px;
|
||||
white-space:nowrap;
|
||||
}
|
||||
#wm-ipp .c .k {
|
||||
padding-bottom:1px;
|
||||
}
|
||||
#wm-ipp .c .s {
|
||||
padding:0 5px 2px 0 !important;
|
||||
}
|
||||
#wm-ipp td#displayMonthEl {
|
||||
padding: 2px 0 !important;
|
||||
}
|
||||
#wm-ipp td#displayYearEl {
|
||||
padding: 0 0 2px 0 !important;
|
||||
}
|
||||
|
||||
div#wm-ipp-sparkline {
|
||||
position:relative;/* for positioning markers */
|
||||
white-space:nowrap;
|
||||
background-color:#fff;
|
||||
cursor:pointer;
|
||||
line-height:0.9;
|
||||
}
|
||||
#sparklineImgId, #wm-sparkline-canvas {
|
||||
position:relative;
|
||||
z-index:9012;
|
||||
max-width:none;
|
||||
}
|
||||
#wm-ipp-sparkline div.yt {
|
||||
position:absolute;
|
||||
z-index:9010 !important;
|
||||
background-color:#ff0 !important;
|
||||
top: 0;
|
||||
}
|
||||
#wm-ipp-sparkline div.mt {
|
||||
position:absolute;
|
||||
z-index:9013 !important;
|
||||
background-color:#ec008c !important;
|
||||
top: 0;
|
||||
}
|
||||
#wm-ipp .r {
|
||||
margin-left: 4px;
|
||||
}
|
||||
#wm-ipp .r a {
|
||||
color:#33f;
|
||||
border:none;
|
||||
position:relative;
|
||||
background-color:transparent;
|
||||
background-repeat:no-repeat !important;
|
||||
background-position:100% 100% !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
#wm-ipp #wm-capinfo {
|
||||
/* prevents notice div background from sticking into round corners of
|
||||
#wm-ipp-inside */
|
||||
border-radius: 0 0 4px 4px;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .c-logo {
|
||||
display:block;
|
||||
float:left;
|
||||
margin-right:3px;
|
||||
width:90px;
|
||||
min-height:90px;
|
||||
max-height: 290px;
|
||||
border-radius:45px;
|
||||
overflow:hidden;
|
||||
background-position:50%;
|
||||
background-size:auto 90px;
|
||||
box-shadow: 0 0 2px 2px rgba(208,208,208,128) inset;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .c-logo span {
|
||||
display:inline-block;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .c-logo img {
|
||||
height:90px;
|
||||
position:relative;
|
||||
left:-50%;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .wm-title {
|
||||
font-size:130%;
|
||||
}
|
||||
#wm-ipp #wm-capinfo a.wm-selector {
|
||||
display:inline-block;
|
||||
color: #aaa;
|
||||
text-decoration:none !important;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
#wm-ipp #wm-capinfo a.wm-selector.selected {
|
||||
background-color:#666;
|
||||
}
|
||||
#wm-ipp #wm-capinfo a.wm-selector:hover {
|
||||
color: #fff;
|
||||
}
|
||||
#wm-ipp #wm-capinfo.notice-only #wm-capinfo-collected-by,
|
||||
#wm-ipp #wm-capinfo.notice-only #wm-capinfo-timestamps {
|
||||
display: none;
|
||||
}
|
||||
#wm-ipp #wm-capinfo #wm-capinfo-notice .wm-capinfo-content {
|
||||
background-color:#ff0;
|
||||
padding:5px;
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
}
|
||||
#wm-ipp #wm-capinfo #wm-capinfo-notice .wm-capinfo-content * {
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
}
|
||||
#wm-ipp #wm-expand {
|
||||
right: 1px;
|
||||
bottom: -1px;
|
||||
color: #ffffff;
|
||||
background-color: #666 !important;
|
||||
padding:0 5px 0 3px !important;
|
||||
border-radius: 3px 3px 0 0 !important;
|
||||
}
|
||||
#wm-ipp #wm-expand span {
|
||||
color: #ffffff;
|
||||
}
|
||||
#wm-ipp #wm-expand #wm-expand-icon {
|
||||
display: inline-block;
|
||||
transition: transform 0.5s;
|
||||
transform-origin: 50% 45%;
|
||||
}
|
||||
#wm-ipp #wm-expand.wm-open #wm-expand-icon {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
#wm-ipp #wmtb {
|
||||
text-align:right;
|
||||
}
|
||||
#wm-ipp #wmtb #wmtbURL {
|
||||
width: calc(100% - 45px);
|
||||
}
|
||||
#wm-ipp #wm-graph-anchor {
|
||||
border-right:1px solid #ccc;
|
||||
}
|
||||
/* time coherence */
|
||||
html.wb-highlight {
|
||||
box-shadow: inset 0 0 0 3px #a50e3a !important;
|
||||
}
|
||||
.wb-highlight {
|
||||
outline: 3px solid #a50e3a !important;
|
||||
}
|
||||
#wm-ipp-print {
|
||||
display:none !important;
|
||||
}
|
||||
@media print {
|
||||
#wm-ipp-base {
|
||||
display:none !important;
|
||||
}
|
||||
#wm-ipp-print {
|
||||
display:block !important;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
@media (max-width:414px) {
|
||||
#wm-ipp .xxs {
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
@media (min-width:1055px) {
|
||||
#wm-ipp #wm-graph-anchor {
|
||||
display:block !important;
|
||||
}
|
||||
}
|
||||
@media (max-width:1054px) {
|
||||
#wm-ipp #wm-graph-anchor {
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
@media (max-width:1163px) {
|
||||
#wm-logo {
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
|
||||
#wm-btns {
|
||||
white-space: nowrap;
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-open {
|
||||
margin-right: 7px;
|
||||
top: -6px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-sign-in {
|
||||
box-sizing: content-box;
|
||||
display: none;
|
||||
margin-right: 7px;
|
||||
top: -8px;
|
||||
|
||||
/*
|
||||
round border around sign in button
|
||||
*/
|
||||
border: 2px #000 solid;
|
||||
border-radius: 14px;
|
||||
padding-right: 2px;
|
||||
padding-bottom: 2px;
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-sign-in>.iconochive-person {
|
||||
font-size: 12.5px;
|
||||
}
|
||||
|
||||
#wm-save-snapshot-open > .iconochive-web {
|
||||
color:#000;
|
||||
font-size:160%;
|
||||
}
|
||||
|
||||
#wm-ipp #wm-share {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#wm-share > #wm-screenshot {
|
||||
display: inline-block;
|
||||
margin-right: 3px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#wm-screenshot > .iconochive-image {
|
||||
color:#000;
|
||||
font-size:160%;
|
||||
}
|
||||
|
||||
#wm-share > #wm-video {
|
||||
display: inline-block;
|
||||
margin-right: 3px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#wm-video > .iconochive-movies {
|
||||
color: #000;
|
||||
display: inline-block;
|
||||
font-size: 150%;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-in-progress {
|
||||
display: none;
|
||||
font-size:160%;
|
||||
opacity: 0.5;
|
||||
position: relative;
|
||||
margin-right: 7px;
|
||||
top: -5px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-success {
|
||||
display: none;
|
||||
color: green;
|
||||
position: relative;
|
||||
top: -7px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-fail {
|
||||
display: none;
|
||||
color: red;
|
||||
position: relative;
|
||||
top: -7px;
|
||||
}
|
||||
|
||||
.wm-icon-screen-shot {
|
||||
background: url("../images/web-screenshot.svg") no-repeat !important;
|
||||
background-size: contain !important;
|
||||
width: 22px !important;
|
||||
height: 19px !important;
|
||||
|
||||
display: inline-block;
|
||||
}
|
||||
#donato {
|
||||
/* transition effect is disable so as to simplify height adjustment */
|
||||
/*transition: height 0.5s;*/
|
||||
height: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-bottom: 1px solid #999 !important;
|
||||
}
|
||||
body.wm-modal {
|
||||
height: auto !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
#donato #donato-base {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
/*bottom: 0;*/
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
z-index: 2147483639;
|
||||
}
|
||||
body.wm-modal #donato #donato-base {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 2147483640;
|
||||
}
|
||||
|
||||
.wb-autocomplete-suggestions {
|
||||
font-family: Lucida Grande, Helvetica, Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
text-align: left;
|
||||
cursor: default;
|
||||
border: 1px solid #ccc;
|
||||
border-top: 0;
|
||||
background: #fff;
|
||||
box-shadow: -1px 1px 3px rgba(0,0,0,.1);
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 2147483647;
|
||||
max-height: 254px;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.wb-autocomplete-suggestion {
|
||||
position: relative;
|
||||
padding: 0 .6em;
|
||||
line-height: 23px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-size: 1.02em;
|
||||
color: #333;
|
||||
}
|
||||
.wb-autocomplete-suggestion b {
|
||||
font-weight: bold;
|
||||
}
|
||||
.wb-autocomplete-suggestion.selected {
|
||||
background: #f0f0f0;
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };
|
||||
if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }
|
||||
{
|
||||
let window = _____WB$wombat$assign$function_____("window");
|
||||
let self = _____WB$wombat$assign$function_____("self");
|
||||
let document = _____WB$wombat$assign$function_____("document");
|
||||
let location = _____WB$wombat$assign$function_____("location");
|
||||
let top = _____WB$wombat$assign$function_____("top");
|
||||
let parent = _____WB$wombat$assign$function_____("parent");
|
||||
let frames = _____WB$wombat$assign$function_____("frames");
|
||||
let opener = _____WB$wombat$assign$function_____("opener");
|
||||
|
||||
|
||||
<!--
|
||||
// Image Swap Restore
|
||||
function MM_swapImgRestore() { //v2.0
|
||||
if (document.MM_swapImgData != null)
|
||||
for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
|
||||
document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
|
||||
}
|
||||
// Image Swap
|
||||
function MM_swapImage() { //v2.0
|
||||
var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.MM_swapImgData;
|
||||
for (i=0; i < (MM_swapImage.arguments.length-2); i+=3) {
|
||||
objStr = MM_swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
|
||||
if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
|
||||
(objStr.indexOf('document.all[') ==0 && document.all ==null))
|
||||
objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
|
||||
obj = eval(objStr);
|
||||
if (obj != null) {
|
||||
swapArray[j++] = obj;
|
||||
swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];
|
||||
obj.src = MM_swapImage.arguments[i+2];
|
||||
} }
|
||||
document.MM_swapImgData = swapArray; //used for restore
|
||||
}
|
||||
function MM_showHideLayers() { //v2.0
|
||||
var i, visStr, args, theObj;
|
||||
args = MM_showHideLayers.arguments;
|
||||
for (i=0; i<(args.length-2); i+=3) { //with arg triples (objNS,objIE,visStr)
|
||||
visStr = args[i+2];
|
||||
if (navigator.appName == 'Netscape' && document.layers != null) {
|
||||
theObj = eval(args[i]);
|
||||
if (theObj) theObj.visibility = visStr;
|
||||
} else if (document.all != null) { //IE
|
||||
if (visStr == 'show') visStr = 'visible'; //convert vals
|
||||
if (visStr == 'hide') visStr = 'hidden';
|
||||
theObj = eval(args[i+1]);
|
||||
if (theObj) theObj.style.visibility = visStr;
|
||||
} }
|
||||
}
|
||||
|
||||
|
||||
function pulldown(formObj)
|
||||
{
|
||||
url = formObj.options[formObj.options.selectedIndex].value;
|
||||
if(url != "empty")
|
||||
{
|
||||
window.location = url;
|
||||
url = "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// This checks to see if the window's dimensions have actually changed
|
||||
// (because Netscape often fires a false onResize event when it forms scrollbars);
|
||||
// if they have, the document is reloaded.
|
||||
// Note that document.location is not supposed to be settable, but here's another
|
||||
// case where the implementation does not match the specs.
|
||||
|
||||
function resizeFix(){
|
||||
if(document.resizeFix.initWidth!=window.innerWidth
|
||||
||document.resizeFix.initHeight!=window.innerHeight)
|
||||
document.location=document.location;
|
||||
}
|
||||
|
||||
// This function checks to see if the browser supports the Layer object (i.e., Netscape 4.X);
|
||||
// if it does, then it creates a new object with properties to hold the current window width & height
|
||||
// and assigns the resizeFix() function to the window's onResize event
|
||||
|
||||
function checkBrowser(){
|
||||
if(document.layers){
|
||||
if(typeof document.fix == "undefined"){
|
||||
document.resizeFix=new Object();
|
||||
document.resizeFix.initWidth=window.innerWidth;
|
||||
document.resizeFix.initHeight=window.innerHeight;
|
||||
}
|
||||
window.onresize=resizeFix;
|
||||
}
|
||||
}
|
||||
|
||||
// This calls the browser check function above
|
||||
|
||||
checkBrowser();
|
||||
|
||||
|
||||
|
||||
|
||||
//-->
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
FILE ARCHIVED ON 00:27:23 Jul 15, 2019 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 13:34:01 Dec 04, 2022.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
*/
|
||||
/*
|
||||
playback timings (ms):
|
||||
captures_list: 247.578
|
||||
exclusion.robots: 0.081
|
||||
exclusion.robots.policy: 0.073
|
||||
cdx.remote: 0.069
|
||||
esindex: 0.011
|
||||
LoadShardBlock: 149.267 (3)
|
||||
PetaboxLoader3.datanode: 90.991 (4)
|
||||
CDXLines.iter: 18.401 (3)
|
||||
PetaboxLoader3.resolve: 75.892 (2)
|
||||
load_resource: 51.672
|
||||
*/
|
||||
|
After Width: | Height: | Size: 631 B |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 1018 B |
|
After Width: | Height: | Size: 818 B |
|
After Width: | Height: | Size: 833 B |
@@ -0,0 +1,116 @@
|
||||
@font-face{font-family:'Iconochive-Regular';src:url('https://archive.org/includes/fonts/Iconochive-Regular.eot?-ccsheb');src:url('https://archive.org/includes/fonts/Iconochive-Regular.eot?#iefix-ccsheb') format('embedded-opentype'),url('https://archive.org/includes/fonts/Iconochive-Regular.woff?-ccsheb') format('woff'),url('https://archive.org/includes/fonts/Iconochive-Regular.ttf?-ccsheb') format('truetype'),url('https://archive.org/includes/fonts/Iconochive-Regular.svg?-ccsheb#Iconochive-Regular') format('svg');font-weight:normal;font-style:normal}
|
||||
[class^="iconochive-"],[class*=" iconochive-"]{font-family:'Iconochive-Regular'!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
|
||||
.iconochive-Uplevel:before{content:"\21b5"}
|
||||
.iconochive-exit:before{content:"\1f6a3"}
|
||||
.iconochive-beta:before{content:"\3b2"}
|
||||
.iconochive-logo:before{content:"\1f3db"}
|
||||
.iconochive-audio:before{content:"\1f568"}
|
||||
.iconochive-movies:before{content:"\1f39e"}
|
||||
.iconochive-software:before{content:"\1f4be"}
|
||||
.iconochive-texts:before{content:"\1f56e"}
|
||||
.iconochive-etree:before{content:"\1f3a4"}
|
||||
.iconochive-image:before{content:"\1f5bc"}
|
||||
.iconochive-web:before{content:"\1f5d4"}
|
||||
.iconochive-collection:before{content:"\2211"}
|
||||
.iconochive-folder:before{content:"\1f4c2"}
|
||||
.iconochive-data:before{content:"\1f5c3"}
|
||||
.iconochive-tv:before{content:"\1f4fa"}
|
||||
.iconochive-article:before{content:"\1f5cf"}
|
||||
.iconochive-question:before{content:"\2370"}
|
||||
.iconochive-question-dark:before{content:"\3f"}
|
||||
.iconochive-info:before{content:"\69"}
|
||||
.iconochive-info-small:before{content:"\24d8"}
|
||||
.iconochive-comment:before{content:"\1f5e9"}
|
||||
.iconochive-comments:before{content:"\1f5ea"}
|
||||
.iconochive-person:before{content:"\1f464"}
|
||||
.iconochive-people:before{content:"\1f465"}
|
||||
.iconochive-eye:before{content:"\1f441"}
|
||||
.iconochive-rss:before{content:"\221e"}
|
||||
.iconochive-time:before{content:"\1f551"}
|
||||
.iconochive-quote:before{content:"\275d"}
|
||||
.iconochive-disc:before{content:"\1f4bf"}
|
||||
.iconochive-tv-commercial:before{content:"\1f4b0"}
|
||||
.iconochive-search:before{content:"\1f50d"}
|
||||
.iconochive-search-star:before{content:"\273d"}
|
||||
.iconochive-tiles:before{content:"\229e"}
|
||||
.iconochive-list:before{content:"\21f6"}
|
||||
.iconochive-list-bulleted:before{content:"\2317"}
|
||||
.iconochive-latest:before{content:"\2208"}
|
||||
.iconochive-left:before{content:"\2c2"}
|
||||
.iconochive-right:before{content:"\2c3"}
|
||||
.iconochive-left-solid:before{content:"\25c2"}
|
||||
.iconochive-right-solid:before{content:"\25b8"}
|
||||
.iconochive-up-solid:before{content:"\25b4"}
|
||||
.iconochive-down-solid:before{content:"\25be"}
|
||||
.iconochive-dot:before{content:"\23e4"}
|
||||
.iconochive-dots:before{content:"\25a6"}
|
||||
.iconochive-columns:before{content:"\25af"}
|
||||
.iconochive-sort:before{content:"\21d5"}
|
||||
.iconochive-atoz:before{content:"\1f524"}
|
||||
.iconochive-ztoa:before{content:"\1f525"}
|
||||
.iconochive-upload:before{content:"\1f4e4"}
|
||||
.iconochive-download:before{content:"\1f4e5"}
|
||||
.iconochive-favorite:before{content:"\2605"}
|
||||
.iconochive-heart:before{content:"\2665"}
|
||||
.iconochive-play:before{content:"\25b6"}
|
||||
.iconochive-play-framed:before{content:"\1f3ac"}
|
||||
.iconochive-fullscreen:before{content:"\26f6"}
|
||||
.iconochive-mute:before{content:"\1f507"}
|
||||
.iconochive-unmute:before{content:"\1f50a"}
|
||||
.iconochive-share:before{content:"\1f381"}
|
||||
.iconochive-edit:before{content:"\270e"}
|
||||
.iconochive-reedit:before{content:"\2710"}
|
||||
.iconochive-gear:before{content:"\2699"}
|
||||
.iconochive-remove-circle:before{content:"\274e"}
|
||||
.iconochive-plus-circle:before{content:"\1f5d6"}
|
||||
.iconochive-minus-circle:before{content:"\1f5d5"}
|
||||
.iconochive-x:before{content:"\1f5d9"}
|
||||
.iconochive-fork:before{content:"\22d4"}
|
||||
.iconochive-trash:before{content:"\1f5d1"}
|
||||
.iconochive-warning:before{content:"\26a0"}
|
||||
.iconochive-flash:before{content:"\1f5f2"}
|
||||
.iconochive-world:before{content:"\1f5fa"}
|
||||
.iconochive-lock:before{content:"\1f512"}
|
||||
.iconochive-unlock:before{content:"\1f513"}
|
||||
.iconochive-twitter:before{content:"\1f426"}
|
||||
.iconochive-facebook:before{content:"\66"}
|
||||
.iconochive-googleplus:before{content:"\67"}
|
||||
.iconochive-reddit:before{content:"\1f47d"}
|
||||
.iconochive-tumblr:before{content:"\54"}
|
||||
.iconochive-pinterest:before{content:"\1d4df"}
|
||||
.iconochive-popcorn:before{content:"\1f4a5"}
|
||||
.iconochive-email:before{content:"\1f4e7"}
|
||||
.iconochive-embed:before{content:"\1f517"}
|
||||
.iconochive-gamepad:before{content:"\1f579"}
|
||||
.iconochive-Zoom_In:before{content:"\2b"}
|
||||
.iconochive-Zoom_Out:before{content:"\2d"}
|
||||
.iconochive-RSS:before{content:"\1f4e8"}
|
||||
.iconochive-Light_Bulb:before{content:"\1f4a1"}
|
||||
.iconochive-Add:before{content:"\2295"}
|
||||
.iconochive-Tab_Activity:before{content:"\2318"}
|
||||
.iconochive-Forward:before{content:"\23e9"}
|
||||
.iconochive-Backward:before{content:"\23ea"}
|
||||
.iconochive-No_Audio:before{content:"\1f508"}
|
||||
.iconochive-Pause:before{content:"\23f8"}
|
||||
.iconochive-No_Favorite:before{content:"\2606"}
|
||||
.iconochive-Unike:before{content:"\2661"}
|
||||
.iconochive-Song:before{content:"\266b"}
|
||||
.iconochive-No_Flag:before{content:"\2690"}
|
||||
.iconochive-Flag:before{content:"\2691"}
|
||||
.iconochive-Done:before{content:"\2713"}
|
||||
.iconochive-Check:before{content:"\2714"}
|
||||
.iconochive-Refresh:before{content:"\27f3"}
|
||||
.iconochive-Headphones:before{content:"\1f3a7"}
|
||||
.iconochive-Chart:before{content:"\1f4c8"}
|
||||
.iconochive-Bookmark:before{content:"\1f4d1"}
|
||||
.iconochive-Documents:before{content:"\1f4da"}
|
||||
.iconochive-Newspaper:before{content:"\1f4f0"}
|
||||
.iconochive-Podcast:before{content:"\1f4f6"}
|
||||
.iconochive-Radio:before{content:"\1f4fb"}
|
||||
.iconochive-Cassette:before{content:"\1f4fc"}
|
||||
.iconochive-Shuffle:before{content:"\1f500"}
|
||||
.iconochive-Loop:before{content:"\1f501"}
|
||||
.iconochive-Low_Audio:before{content:"\1f509"}
|
||||
.iconochive-First:before{content:"\1f396"}
|
||||
.iconochive-Invisible:before{content:"\1f576"}
|
||||
.iconochive-Computer:before{content:"\1f5b3"}
|
||||
@@ -0,0 +1,357 @@
|
||||
var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };
|
||||
if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }
|
||||
{
|
||||
let window = _____WB$wombat$assign$function_____("window");
|
||||
let self = _____WB$wombat$assign$function_____("self");
|
||||
let document = _____WB$wombat$assign$function_____("document");
|
||||
let location = _____WB$wombat$assign$function_____("location");
|
||||
let top = _____WB$wombat$assign$function_____("top");
|
||||
let parent = _____WB$wombat$assign$function_____("parent");
|
||||
let frames = _____WB$wombat$assign$function_____("frames");
|
||||
let opener = _____WB$wombat$assign$function_____("opener");
|
||||
|
||||
|
||||
|
||||
var menuDisplayHolder, menuKillHolder;
|
||||
var flagMenuSwitch,menuTimeout, iloop, jloop,counter,strMatchOnMenu;
|
||||
flagMenuSwitch="new";
|
||||
counter = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------
|
||||
//menuHandler() function, here is the main function, called from the mouseover event.
|
||||
//we check for which elements are lit and work our two array's appropriately
|
||||
//first kill the killMenu function call.
|
||||
//
|
||||
//it receives three parameters parentLIO, currentMenu, and childMenu.
|
||||
//----------------------------------------------------------------------------------------------------------
|
||||
function menuHandler(parentLIO,currentMenu,childMenu)
|
||||
{
|
||||
|
||||
|
||||
var matchFlag;
|
||||
matchFlag=false;
|
||||
|
||||
//kill menu killing function, we will check list and kill again soon.
|
||||
if(flagMenuSwitch=="off")
|
||||
{
|
||||
clearTimeout(menuTimeout);
|
||||
}
|
||||
|
||||
|
||||
//if flagMenuSwitch is "new" then assign base level stuff
|
||||
if(flagMenuSwitch=="new")
|
||||
{
|
||||
//assign base here
|
||||
menuDisplayHolder=currentMenu+","+childMenu;
|
||||
|
||||
menuKillHolder=menuDisplayArray;
|
||||
|
||||
}//end flagMenuSwitch "new" check
|
||||
|
||||
|
||||
|
||||
|
||||
//if flagMenuSwitch is "off" then we got a hit (might be "on") depends on how good the handler is
|
||||
//here we do build the correct array's
|
||||
if(flagMenuSwitch == "off"||flagMenuSwitch=="on")
|
||||
{
|
||||
|
||||
//menuDisplayHolder equals
|
||||
var menuDisplayArray,matchFlag;
|
||||
matchFlag=false;
|
||||
|
||||
menuDisplayArray = menuDisplayHolder.split(",");
|
||||
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
//fill menuKillHolder
|
||||
|
||||
//loop and look for match
|
||||
for(iloop=0;iloop<menuDisplayArray.length-1;iloop++)
|
||||
{
|
||||
|
||||
//match on current menu
|
||||
if(menuDisplayArray[iloop]==currentMenu)
|
||||
{
|
||||
|
||||
|
||||
|
||||
//clear out menuKillHolder
|
||||
menuKillHolder="";
|
||||
|
||||
|
||||
//-----------------------------------------------
|
||||
//match on child menu
|
||||
if(menuDisplayArray[iloop+1]==childMenu)
|
||||
{
|
||||
//back fill menuKillHolder
|
||||
for(jloop = menuDisplayArray.length-1;jloop>(iloop+1);jloop--)
|
||||
{
|
||||
|
||||
|
||||
menuKillHolder = menuKillHolder +","+ menuDisplayArray[jloop]
|
||||
}//end back fill
|
||||
|
||||
|
||||
}//end found child menu match
|
||||
|
||||
|
||||
//--------------------------------------------
|
||||
//no match on child menu
|
||||
else
|
||||
{
|
||||
//back fill menuKillHolder
|
||||
for(jloop = menuDisplayArray.length-1;jloop>iloop;jloop--)
|
||||
{
|
||||
|
||||
|
||||
menuKillHolder = menuKillHolder +","+ menuDisplayArray[jloop];
|
||||
}//end back fill
|
||||
|
||||
}//end no child menu match found
|
||||
|
||||
}//end found match on current menu
|
||||
|
||||
|
||||
//if there is no match on the current menu then we don't need to touch the
|
||||
//menuKillHolder as it means we are killing the whole shabang.
|
||||
|
||||
}//end loop
|
||||
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//refill menuDisplayHolder
|
||||
|
||||
//loop and look for match
|
||||
for(iloop=0;iloop<menuDisplayArray.length;iloop++)
|
||||
{
|
||||
|
||||
|
||||
//>>>>>>got match will travel
|
||||
if(menuDisplayArray[iloop]==currentMenu)
|
||||
{
|
||||
|
||||
|
||||
|
||||
menuDisplayHolder="";
|
||||
matchFlag=true;
|
||||
|
||||
//>>>>>match on current and child menu
|
||||
if(menuDisplayArray[iloop+1]==childMenu)
|
||||
{
|
||||
for(jloop = 0;jloop<=iloop+1;jloop++)
|
||||
{
|
||||
//add a coma if necessary
|
||||
if(menuDisplayHolder!="")menuDisplayHolder=menuDisplayHolder+",";
|
||||
|
||||
menuDisplayHolder = menuDisplayHolder + menuDisplayArray[jloop];
|
||||
}//end build menuDisplayHolder with only current menu match
|
||||
}//end check for child menu match
|
||||
|
||||
|
||||
//>>>>>>match on only current menu
|
||||
else
|
||||
{
|
||||
for(jloop = 0;jloop<=iloop;jloop++)
|
||||
{
|
||||
//add a coma if necessary
|
||||
if(menuDisplayHolder!="")menuDisplayHolder=menuDisplayHolder+",";
|
||||
|
||||
menuDisplayHolder = menuDisplayHolder + menuDisplayArray[jloop];
|
||||
}//end build menuDisplayHolder with only current menu match
|
||||
|
||||
//add child menu
|
||||
if(childMenu!=""||childMenu!="null")
|
||||
{
|
||||
//add a coma if necessary
|
||||
if(menuDisplayHolder!="")menuDisplayHolder=menuDisplayHolder+",";
|
||||
|
||||
menuDisplayHolder=menuDisplayHolder+childMenu;
|
||||
}//end add new child menu
|
||||
|
||||
|
||||
}//end no match on child leg
|
||||
}//end if check for current menu match
|
||||
}//loop end menuDisplayHolder building
|
||||
|
||||
|
||||
|
||||
//>>>>>>check if we found a match
|
||||
//>>>>>>if not then fill with base and don't touch killMenuHolder
|
||||
if(matchFlag==false)
|
||||
{
|
||||
//assign base here
|
||||
menuDisplayHolder=currentMenu+","+childMenu;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}//end flagMenuSwitch "on/off" check
|
||||
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------
|
||||
//finish out the routines: kill, light, set var's
|
||||
|
||||
//kill it if we need to
|
||||
if(flagMenuSwitch!="new")
|
||||
{
|
||||
killMenu("notAll");
|
||||
|
||||
}
|
||||
|
||||
//send the light order
|
||||
lightMenu();
|
||||
|
||||
//set flag
|
||||
flagMenuSwitch="on";
|
||||
|
||||
menuKillHolder=menuDisplayHolder;
|
||||
|
||||
}//end menuHandler() function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//lightMenu() function fires up the correct menu's depending on
|
||||
//the two elements passed. Light up the whole array
|
||||
//-----------------------------------------------------------------------------
|
||||
function lightMenu()
|
||||
{
|
||||
|
||||
var menuDisplayArray;
|
||||
|
||||
menuDisplayArray=menuDisplayHolder.split(",");
|
||||
|
||||
//we start at 1 because the zero'th element should be the root
|
||||
for(iloop = 1;iloop<menuDisplayArray.length;iloop++)
|
||||
{
|
||||
//check for null child
|
||||
if(menuDisplayArray[iloop]!="null")
|
||||
{
|
||||
if(eval("document."+menuDisplayArray[iloop])){
|
||||
eval("document."+menuDisplayArray[iloop]+".visibility='show';");
|
||||
}
|
||||
}//end check for "null" child menu
|
||||
|
||||
}//end loop
|
||||
}//end lightMenu() function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
//this function initiallizes the kill menu function, if there are no mouseover events then it kills all menus
|
||||
//-------------------------------------------------------------------------------------------------------------------------------
|
||||
function hideMenu()
|
||||
{
|
||||
|
||||
//set a timeout and then kill all the menu's
|
||||
//we will check in menuHandler() to see if some stay lit.
|
||||
menuTimeout= setTimeout("killMenu('all');",800);
|
||||
|
||||
flagMenuSwitch="off";
|
||||
|
||||
}//end hideMenu() function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------
|
||||
//kill appropriate menu's, if we are getting here via the hideMenu() funciton
|
||||
//then kill all the menu's this is known from the passed value 'apocolypse'
|
||||
//----------------------------------------------------------------------------------------------
|
||||
function killMenu(apocolypse)
|
||||
{
|
||||
if(apocolypse=="all")menuKillHolder=menuDisplayHolder;
|
||||
|
||||
|
||||
var menuKillArray = menuKillHolder.split(",");
|
||||
|
||||
//loop and kill
|
||||
//we start at 1 because the zero'th element should be the root
|
||||
for(iloop=1;iloop<menuKillArray.length;iloop++)
|
||||
{
|
||||
if(menuKillArray[iloop]!="null")
|
||||
{
|
||||
if(eval("document."+menuKillArray[iloop])){
|
||||
eval("document."+menuKillArray[iloop]+".visibility='hide';");
|
||||
}
|
||||
}
|
||||
}//end loop
|
||||
|
||||
//if we are completely out, clear both array's and set flag to new
|
||||
if(apocolypse=="all")
|
||||
{
|
||||
menuDisplayHolder = "";
|
||||
menuKillHolder = "";
|
||||
flagMenuSwitch = "new";
|
||||
}
|
||||
|
||||
}//end kill menu function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//capture the click method and navigate to location
|
||||
function goBabyGo(goString)
|
||||
{
|
||||
window.location.href= goString;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
FILE ARCHIVED ON 00:27:23 Jul 15, 2019 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 13:34:01 Dec 04, 2022.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
*/
|
||||
/*
|
||||
playback timings (ms):
|
||||
captures_list: 131.167
|
||||
exclusion.robots: 0.063
|
||||
exclusion.robots.policy: 0.056
|
||||
RedisCDXSource: 2.283
|
||||
esindex: 0.005
|
||||
LoadShardBlock: 110.923 (3)
|
||||
PetaboxLoader3.datanode: 88.298 (4)
|
||||
CDXLines.iter: 13.202 (3)
|
||||
load_resource: 134.626
|
||||
PetaboxLoader3.resolve: 107.478
|
||||
*/
|
||||
@@ -0,0 +1,37 @@
|
||||
<style type="text/css">
|
||||
|
||||
.headerRed{color:#CC0000;font-size:22px;font-family:trebuchet ms, arial, verdana}
|
||||
.headerBlack{color:#000000;font-size:22px;font-family:trebuchet ms, arial, verdana}
|
||||
.midBlack{color:#000000;font-size:18px;font-family:trebuchet ms, arial, verdana}
|
||||
.midRed{color:#CC0000;font-size:18px;font-family:trebuchet ms, arial, verdana}
|
||||
.maintext{color:black;font-size:15px;font-family:trebuchet ms, arial, verdana}
|
||||
.smalltext{color:black;font-size:11px;font-family : verdana, arial, helvetica, sans serif}
|
||||
|
||||
.headTopic{font-size : 12px;font-weight:bold;font-family : verdana, arial, helvetica, sans serif;color : #000066;text-decoration:none}
|
||||
|
||||
.topicTitle {font-size : 18px; font-family : verdana, arial, helvetica,sans serif; font-weight : bold; color : #ffffff}
|
||||
|
||||
.newsText{color:#000033;font-size:11px;text-decoration:none;font-family : verdana, arial, helvetica, sans serif}
|
||||
.newsDate{color:black;font-size:11px;font-family : verdana, arial, helvetica, sans serif}
|
||||
|
||||
</style><!--
|
||||
FILE ARCHIVED ON 21:18:28 Aug 21, 2019 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 13:34:01 Dec 04, 2022.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
-->
|
||||
<!--
|
||||
playback timings (ms):
|
||||
captures_list: 96.352
|
||||
exclusion.robots: 0.069
|
||||
exclusion.robots.policy: 0.061
|
||||
cdx.remote: 0.062
|
||||
esindex: 0.009
|
||||
LoadShardBlock: 49.34 (3)
|
||||
PetaboxLoader3.datanode: 72.663 (5)
|
||||
CDXLines.iter: 17.352 (3)
|
||||
load_resource: 131.138 (2)
|
||||
PetaboxLoader3.resolve: 62.075 (2)
|
||||
-->
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 646 B |
@@ -0,0 +1,304 @@
|
||||
<style type="text/css">
|
||||
|
||||
.headerRed{color:#CC0000;font-size:22px;font-family:trebuchet ms, arial, verdana}
|
||||
.headerBlack{color:#000000;font-size:22px;font-family:trebuchet ms, arial, verdana}
|
||||
.midBlack{color:#000000;font-size:18px;font-family:trebuchet ms, arial, verdana}
|
||||
.midRed{color:#CC0000;font-size:18px;font-family:trebuchet ms, arial, verdana}
|
||||
.maintext{color:black;font-size:15px;font-family:trebuchet ms, arial, verdana}
|
||||
.smalltext{color:black;font-size:11px;font-family : verdana, arial, helvetica, sans serif}
|
||||
|
||||
.headTopic{font-size : 12px;font-weight:bold;font-family : verdana, arial, helvetica, sans serif;color : #000066;text-decoration:none}
|
||||
|
||||
.topicTitle {font-size : 18px; font-family : verdana, arial, helvetica,sans serif; font-weight : bold; color : #ffffff}
|
||||
|
||||
.navTopBullet{color: #CC0033;font-size:18px;font-weight:bold;line-height:15px;font-family : arial, helvetica, sans serif}
|
||||
.menuItem{color: #000000;font-size:11px;text-decoration:none;font-family : verdana, arial, helvetica, sans serif}
|
||||
A.menuitem:hover {color: #CC0033}
|
||||
|
||||
.navTop{color: #000000;font-size:14px;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
a.navTop { font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #FFFFFF; text-decoration:none}
|
||||
a.navTop:link{color:#ffffff}
|
||||
a.navTop:visited{color:#ffffff}
|
||||
A.navTop:hover {color: #FF0000}
|
||||
A.navTop:active {}
|
||||
|
||||
.navSide{color: #000000;font-size:14px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide:hover {color: #CC0000}
|
||||
A.navSide:active {}
|
||||
|
||||
.navSideW{color: #F8F8F8;font-size:15px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSideW:hover {color: #FFCC00}
|
||||
A.navSideW:active {}
|
||||
|
||||
.navSide1{color: #4D4D4D;font-size:11px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide1:hover {color: #CC0000}
|
||||
A.navSide1:active {}
|
||||
|
||||
.navSide1a{color: #272727;font-size:11px;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide1a:hover {color: #CC0000}
|
||||
A.navSide1a:active {}
|
||||
|
||||
.navSide2{color: #000000;font-size:13px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide2:hover {color: #CC0000}
|
||||
A.navSide2:active {}
|
||||
|
||||
|
||||
|
||||
.navSide4{color: #000000;font-size:13px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide4:hover {color: #CC0000}
|
||||
A.navSide4:active {}
|
||||
|
||||
.navSide5{color: #000000;font-size:12px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide5:hover {color: #CC0000}
|
||||
A.navSide5:active {}
|
||||
|
||||
.navSide6{color: #000000;font-size:11px;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.navSide6:hover {color: #CC0000}
|
||||
A.navSide6:active {}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.newsText{color:#000033;font-size:11px;text-decoration:none;font-family : verdana, arial, helvetica, sans serif}
|
||||
.newsDate{color:black;font-size:11px;font-family : verdana, arial, helvetica, sans serif}
|
||||
|
||||
.sidelink {font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #000000; text-decoration: none}
|
||||
A.sidelink:hover {color: #FF3333}
|
||||
|
||||
.sidelink_brand {font-family: Arial, Helvetica, sans-serif; font-size: 10pt; color: #000000; text-decoration: none}
|
||||
A.sidelink_brand:hover {color: #FF3333}
|
||||
|
||||
.sidelink2 {font-family: Arial, Helvetica, sans-serif; font-size: 15px; color: #CC0000; text-decoration: none; font-weight: bold}
|
||||
A.sidelink2:hover {color: #000000}
|
||||
|
||||
.sidelink3 {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #CC0000; text-decoration: none}
|
||||
A.sidelink3:hover {color: #000000}
|
||||
|
||||
.header1 {font-family: Arial, Helvetica, sans-serif; font-size: 18px; color: #000000; text-decoration: none}
|
||||
|
||||
.sublink1 {font-family: Arial, Helvetica, sans-serif; font-size: 11pt; color: #000000; text-decoration: none}
|
||||
A.sublink1:hover {color: #FF3333}
|
||||
|
||||
|
||||
.rightheadline {font-family: Arial, Helvetica, sans-serif; font-size: 15px; color: #CC0000; text-decoration: none}
|
||||
.rightlink {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #000000; text-decoration: none}
|
||||
A.rightlink:hover {color: #CC0000}
|
||||
|
||||
.righttext {font-family: Arial, Helvetica, sans-serif; font-size: 11px;font-weight:normal; color: #000000; text-decoration: none}
|
||||
.righttext1 {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; text-decoration: none}
|
||||
.righttext2 {font-family: Arial, Helvetica, sans-serif; font-size: 9px; color: #000000; text-decoration: none}
|
||||
.righttext3 {font-family: Arial, Helvetica, sans-serif; font-size: 15px;font-weight:bold; color: #CC0000; text-decoration: none}
|
||||
.righttext4 {font-family: Arial, Helvetica, sans-serif; font-size: 12px;font-weight:bold; color: #000000; text-decoration: none}
|
||||
|
||||
.printerfriendly {font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #000000; text-decoration: none}
|
||||
a.printerfriendly:hover {color: #CC0000}
|
||||
|
||||
.boxlinks {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #000000; text-decoration: none}
|
||||
a.boxlinks:hover {color: #CC0000}
|
||||
|
||||
.boxlinksgrey {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #666666; text-decoration: none}
|
||||
.boxlinksred {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #790000; text-decoration: none}
|
||||
|
||||
.boxlinks2 {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; text-decoration: none}
|
||||
a.boxlinks2:hover {color: #CC0000}
|
||||
|
||||
.archivelink {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #CC0000; text-decoration: none}
|
||||
a.archivelink:hover {color: #000000}
|
||||
|
||||
.chatlink {font-family: Arial, Helvetica, sans-serif; font-size: 11px;font-weight:bold; color: #000000; text-decoration: none}
|
||||
.chattext {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; text-decoration: none}
|
||||
a.chatlink:hover {color: #CC0000}
|
||||
.chatlink2 {font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #000000; text-decoration: none}
|
||||
a.chatlink2:hover {color: #CC0000}
|
||||
|
||||
.footerlink {font-family: Arial, Helvetica, sans-serif; font-size: 12px;font-weight:normal; color: #000000; text-decoration: none}
|
||||
a.footerlink:hover {color: #CC0000}
|
||||
|
||||
.templeft{color: #000000;font-size:12px;font-weight:bold;text-decoration:none;font-family : arial, helvetica, sans serif}
|
||||
A.templeft:hover {color: #CC0000}
|
||||
A.templeft:active {}
|
||||
|
||||
p {color: #000000;font-size:12px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
p, td, ul, ol, body {font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #000000}
|
||||
|
||||
.red { color: #CC0000; }
|
||||
|
||||
.featureheading {color: #000000;font-size:17px;font-family : arial, helvetica, sans serif; text-align: center;font-weight:bold}
|
||||
.headline {color: #CC0000;font-size:30px;font-family : arial, helvetica, sans serif; text-align: center;font-weight:bold}
|
||||
.subheading {color: #000000;font-size:18px;font-family : arial, helvetica, sans serif; text-align: center;font-weight:bold}
|
||||
.byline {color: #000000;font-size:11px;font-family : arial, helvetica, sans serif; text-align: center}
|
||||
|
||||
.linecolor {color : #f0f0f0}
|
||||
.redheader {color: #cc0000;font-size:15px;font-family : arial, helvetica, sans serif;font-weight:bold}
|
||||
.smallredheader {color: #993300;font-size:11px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
|
||||
.h1 {color: #000000;font-size:31px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h2 {color: #000000;font-size:25px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h3 {color: #000000;font-size:21px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h4 {color: #000000;font-size:17px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h5 {color: #000000;font-size:12px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h6 {color: #000000;font-size:9px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.h1red {color: #CC0000;font-size:31px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h2red {color: #CC0000;font-size:25px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h3red {color: #CC0000;font-size:21px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h4red {color: #CC0000;font-size:17px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h5red {color: #CC0000;font-size:12px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
.h6red {color: #CC0000;font-size:9px;font-weight:bold;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.size0 {color: #000000;font-size:9px;font-family : arial, helvetica, sans serif}
|
||||
.size1 {color: #000000;font-size:10px;font-family : arial, helvetica, sans serif}
|
||||
.size2 {color: #000000;font-size:12px;font-family : arial, helvetica, sans serif}
|
||||
.size3 {color: #000000;font-size:15px;font-family : arial, helvetica, sans serif}
|
||||
.size4 {color: #000000;font-size:19px;font-family : arial, helvetica, sans serif}
|
||||
.size5 {color: #000000;font-size:23px;font-family : arial, helvetica, sans serif}
|
||||
.size6 {color: #000000;font-size:30px;font-family : arial, helvetica, sans serif}
|
||||
.size7 {color: #000000;font-size:42px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.size0red {color: #CC0000;font-size:9px;font-family : arial, helvetica, sans serif}
|
||||
.size1red {color: #CC0000;font-size:10px;font-family : arial, helvetica, sans serif}
|
||||
.size2red {color: #CC0000;font-size:12px;font-family : arial, helvetica, sans serif}
|
||||
.size3red {color: #CC0000;font-size:15px;font-family : arial, helvetica, sans serif}
|
||||
.size4red {color: #CC0000;font-size:19px;font-family : arial, helvetica, sans serif}
|
||||
.size5red {color: #CC0000;font-size:23px;font-family : arial, helvetica, sans serif}
|
||||
.size6red {color: #CC0000;font-size:30px;font-family : arial, helvetica, sans serif}
|
||||
.size7red {color: #CC0000;font-size:42px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.link4 {color: #CC0000;font-size:17px; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
a.link4:hover {color: #000000;font-size:17px; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.cboxhead {font-size: 15px; color: #CC0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
a.cboxhead:hover {color: #000000}
|
||||
|
||||
.cboxsubhead {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.cboxbody {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.fiftyrecent {font-family: Arial, Helvetica, sans-serif; font-size: 13px; color: #CC0000; text-decoration: none}
|
||||
A.fiftyrecent:hover {color: #000000}
|
||||
|
||||
.search {font-family: Arial, Helvetica, sans-serif; font-size: 9px; color: #000000; text-decoration: none; font-weight: bold}
|
||||
A.search:hover {color: #CC0000}
|
||||
|
||||
|
||||
|
||||
.prodhead {color: #ffffff;font-size:15px;font-family : arial, helvetica, sans serif}
|
||||
|
||||
.breadcrumb {font-size: 11px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
a.breadcrumb:hover {color: #CC0000}
|
||||
|
||||
.search2 {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #ffffff; text-decoration: none}
|
||||
A.search2:hover {color: #ffff80}
|
||||
|
||||
.nboxhead {font-size: 12px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.nboxdate {font-size: 10px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.nboxarchive {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.nboxarchive:hover {color: #CC0000}
|
||||
|
||||
.footerlinknew {font-family: Arial, Helvetica, sans-serif; font-size: 11px;font-weight:normal; color: #ffffff; text-decoration: none}
|
||||
a.footerlinknew:hover {color: #ffff80}
|
||||
|
||||
.prodlisthead {font-size: 11px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.prodlistlink {font-size: 11px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.prodlistlink:hover {color: #CC0000}
|
||||
|
||||
.serieslink {font-size: 10px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.serieslink:hover {color: #CC0000}
|
||||
.seriesmore {font-size: 10px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.seriesmore:hover {color: #CC0000}
|
||||
|
||||
.articlehead {font-size: 12px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.articlehead:hover {color: #ffffae}
|
||||
|
||||
.cxboxhead {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.cxboxhead:hover {font-size: 12px; color: #8a0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.cxboxbody {font-size: 10px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.cxboxbody:hover {color: #8a0000}
|
||||
|
||||
.cxboxsub {font-size: 11px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
|
||||
.cnboxhead {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.cnboxhead:hover {font-size: 12px; color: #8a0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.cnboxbody {font-size: 10px; color: #000000; line-height : 11px ; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.cnboxbody:hover {color: #8a0000}
|
||||
|
||||
|
||||
.aaboxheadline {font-size: 11px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.aaboxheadline:hover {font-size: 11px; color: #8a0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.aaboxsubcat {font-size: 11px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.aaboxdate {font-size: 10px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.aaboxbyline {font-size: 10px; color: #000000; font-style: italic; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.bxboxheadline {font-size: 12px; color: #ffffff; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.bxboxheadline:hover {font-size: 12px; color: #ffffae; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.bxboxfrheadline {font-size: 12px; color: #000000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.bxboxfrheadline:hover {font-size: 12px; color: #8a0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.bxboxbody {font-size: 11px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.bxboxbody:hover {font-size: 11px; color: #8a0000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.pflink {font-size: 10px; color: #4a4a4a; font-family : arial, helvetica, sans serif; text-decoration: none;}
|
||||
A.pflink:hover {font-size: 10px; color: #CC0000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.listlink {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.listlink:hover {font-size: 12px; color: #8a0000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
.glosslink {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
A.glosslink:hover {color: #CC0000}
|
||||
|
||||
.glossalphalink {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif}
|
||||
A.glossalphalink:hover {color: #CC0000}
|
||||
|
||||
.glossterm {font-size: 16px; color: #CC0000; font-weight:bold; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
.glosssource {font-size: 12px; color: #000000; font-family : arial, helvetica, sans serif; text-decoration: none}
|
||||
|
||||
DIV.boxscroll {
|
||||
height: 77px;
|
||||
overflow: auto;
|
||||
width: 282px;
|
||||
|
||||
}
|
||||
|
||||
DIV.boxscroll2 {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
width: 300px;
|
||||
border-width: 1px;
|
||||
border-color: #b9b9b9;
|
||||
border-style: solid;
|
||||
|
||||
}
|
||||
|
||||
BODY {SCROLLBAR-ARROW-COLOR: #f9f1d2; SCROLLBAR-BASE-COLOR: #b7a783}
|
||||
|
||||
|
||||
</style><!--
|
||||
FILE ARCHIVED ON 06:44:48 Aug 21, 2019 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 13:34:01 Dec 04, 2022.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
-->
|
||||
<!--
|
||||
playback timings (ms):
|
||||
captures_list: 92.144
|
||||
exclusion.robots: 0.064
|
||||
exclusion.robots.policy: 0.057
|
||||
RedisCDXSource: 0.576
|
||||
esindex: 0.008
|
||||
LoadShardBlock: 74.392 (3)
|
||||
PetaboxLoader3.datanode: 96.465 (5)
|
||||
CDXLines.iter: 13.703 (3)
|
||||
load_resource: 136.157 (2)
|
||||
PetaboxLoader3.resolve: 80.396 (2)
|
||||
-->
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,474 @@
|
||||
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3.0
|
||||
/* eslint-disable no-var, semi, prefer-arrow-callback, prefer-template */
|
||||
|
||||
/**
|
||||
* Collection of methods for sending analytics events to Archive.org's analytics server.
|
||||
*
|
||||
* These events are used for internal stats and sent (in anonymized form) to Google Analytics.
|
||||
*
|
||||
* @see analytics.md
|
||||
*
|
||||
* @type {Object}
|
||||
*/
|
||||
window.archive_analytics = (function defineArchiveAnalytics() {
|
||||
// keep orignal Date object so as not to be affected by wayback's
|
||||
// hijacking global Date object
|
||||
var Date = window.Date;
|
||||
var ARCHIVE_ANALYTICS_VERSION = 2;
|
||||
var DEFAULT_SERVICE = 'ao_2';
|
||||
var NO_SAMPLING_SERVICE = 'ao_no_sampling'; // sends every event instead of a percentage
|
||||
|
||||
var startTime = new Date();
|
||||
|
||||
/**
|
||||
* @return {Boolean}
|
||||
*/
|
||||
function isPerformanceTimingApiSupported() {
|
||||
return 'performance' in window && 'timing' in window.performance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines how many milliseconds elapsed between the browser starting to parse the DOM and
|
||||
* the current time.
|
||||
*
|
||||
* Uses the Performance API or a fallback value if it's not available.
|
||||
*
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
|
||||
*
|
||||
* @return {Number}
|
||||
*/
|
||||
function getLoadTime() {
|
||||
var start;
|
||||
|
||||
if (isPerformanceTimingApiSupported())
|
||||
start = window.performance.timing.domLoading;
|
||||
else
|
||||
start = startTime.getTime();
|
||||
|
||||
return new Date().getTime() - start;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines how many milliseconds elapsed between the user navigating to the page and
|
||||
* the current time.
|
||||
*
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
|
||||
*
|
||||
* @return {Number|null} null if the browser doesn't support the Performance API
|
||||
*/
|
||||
function getNavToDoneTime() {
|
||||
if (!isPerformanceTimingApiSupported())
|
||||
return null;
|
||||
|
||||
return new Date().getTime() - window.performance.timing.navigationStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs an arithmetic calculation on a string with a number and unit, while maintaining
|
||||
* the unit.
|
||||
*
|
||||
* @param {String} original value to modify, with a unit
|
||||
* @param {Function} doOperation accepts one Number parameter, returns a Number
|
||||
* @returns {String}
|
||||
*/
|
||||
function computeWithUnit(original, doOperation) {
|
||||
var number = parseFloat(original, 10);
|
||||
var unit = original.replace(/(\d*\.\d+)|\d+/, '');
|
||||
|
||||
return doOperation(number) + unit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes the default font size of the browser.
|
||||
*
|
||||
* @returns {String|null} computed font-size with units (typically pixels), null if it cannot be computed
|
||||
*/
|
||||
function getDefaultFontSize() {
|
||||
var fontSizeStr;
|
||||
|
||||
if (!('getComputedStyle' in window))
|
||||
return null;
|
||||
|
||||
var style = window.getComputedStyle(document.documentElement);
|
||||
if (!style)
|
||||
return null;
|
||||
|
||||
fontSizeStr = style.fontSize;
|
||||
|
||||
// Don't modify the value if tracking book reader.
|
||||
if (document.querySelector('#BookReader'))
|
||||
return fontSizeStr;
|
||||
|
||||
return computeWithUnit(fontSizeStr, function reverseBootstrapFontSize(number) {
|
||||
// Undo the 62.5% size applied in the Bootstrap CSS.
|
||||
return number * 1.6;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the URL parameters for a given Location
|
||||
* @param {Location}
|
||||
* @return {Object} The URL parameters
|
||||
*/
|
||||
function getParams(location) {
|
||||
if (!location) location = window.location;
|
||||
var vars;
|
||||
var i;
|
||||
var pair;
|
||||
var params = {};
|
||||
var query = location.search;
|
||||
if (!query) return params;
|
||||
vars = query.substring(1).split('&');
|
||||
for (i = 0; i < vars.length; i++) {
|
||||
pair = vars[i].split('=');
|
||||
params[pair[0]] = decodeURIComponent(pair[1]);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
function getMetaProp(name) {
|
||||
var metaTag = document.querySelector('meta[property=' + name + ']');
|
||||
return metaTag ? metaTag.getAttribute('content') || null : null;
|
||||
}
|
||||
|
||||
var ArchiveAnalytics = {
|
||||
/**
|
||||
* @type {String|null}
|
||||
*/
|
||||
service: getMetaProp('service'),
|
||||
mediaType: getMetaProp('mediatype'),
|
||||
primaryCollection: getMetaProp('primary_collection'),
|
||||
|
||||
/**
|
||||
* Key-value pairs to send in pageviews (you can read this after a pageview to see what was
|
||||
* sent).
|
||||
*
|
||||
* @type {Object}
|
||||
*/
|
||||
values: {},
|
||||
|
||||
/**
|
||||
* Sends an analytics ping, preferably using navigator.sendBeacon()
|
||||
* @param {Object} values
|
||||
* @param {Function} [onload_callback] (deprecated) callback to invoke once ping to analytics server is done
|
||||
* @param {Boolean} [augment_for_ao_site] (deprecated) if true, add some archive.org site-specific values
|
||||
*/
|
||||
send_ping: function send_ping(values, onload_callback, augment_for_ao_site) {
|
||||
if (typeof window.navigator !== 'undefined' && typeof window.navigator.sendBeacon !== 'undefined')
|
||||
this.send_ping_via_beacon(values);
|
||||
else
|
||||
this.send_ping_via_image(values);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a ping via Beacon API
|
||||
* NOTE: Assumes window.navigator.sendBeacon exists
|
||||
* @param {Object} values Tracking parameters to pass
|
||||
*/
|
||||
send_ping_via_beacon: function send_ping_via_beacon(values) {
|
||||
var url = this.generate_tracking_url(values || {});
|
||||
window.navigator.sendBeacon(url);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a ping via Image object
|
||||
* @param {Object} values Tracking parameters to pass
|
||||
*/
|
||||
send_ping_via_image: function send_ping_via_image(values) {
|
||||
var url = this.generate_tracking_url(values || {});
|
||||
var loadtime_img = new Image(1, 1);
|
||||
loadtime_img.src = url;
|
||||
loadtime_img.alt = '';
|
||||
},
|
||||
|
||||
/**
|
||||
* Construct complete tracking URL containing payload
|
||||
* @param {Object} params Tracking parameters to pass
|
||||
* @return {String} URL to use for tracking call
|
||||
*/
|
||||
generate_tracking_url: function generate_tracking_url(params) {
|
||||
var baseUrl = '//analytics.archive.org/0.gif';
|
||||
var keys;
|
||||
var outputParams = params;
|
||||
var outputParamsArray = [];
|
||||
|
||||
outputParams.service = outputParams.service || this.service || DEFAULT_SERVICE;
|
||||
|
||||
// Build array of querystring parameters
|
||||
keys = Object.keys(outputParams);
|
||||
keys.forEach(function keyIteration(key) {
|
||||
outputParamsArray.push(encodeURIComponent(key) + '=' + encodeURIComponent(outputParams[key]));
|
||||
});
|
||||
outputParamsArray.push('version=' + ARCHIVE_ANALYTICS_VERSION);
|
||||
outputParamsArray.push('count=' + (keys.length + 2)); // Include `version` and `count` in count
|
||||
|
||||
return baseUrl + '?' + outputParamsArray.join('&');
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {int} page Page number
|
||||
*/
|
||||
send_scroll_fetch_event: function send_scroll_fetch_event(page) {
|
||||
var additionalValues = { ev: page };
|
||||
var loadTime = getLoadTime();
|
||||
var navToDoneTime = getNavToDoneTime();
|
||||
if (loadTime) additionalValues.loadtime = loadTime;
|
||||
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
|
||||
this.send_event('page_action', 'scroll_fetch', location.pathname, additionalValues);
|
||||
},
|
||||
|
||||
send_scroll_fetch_base_event: function send_scroll_fetch_base_event() {
|
||||
var additionalValues = {};
|
||||
var loadTime = getLoadTime();
|
||||
var navToDoneTime = getNavToDoneTime();
|
||||
if (loadTime) additionalValues.loadtime = loadTime;
|
||||
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
|
||||
this.send_event('page_action', 'scroll_fetch_base', location.pathname, additionalValues);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Object} [options]
|
||||
* @param {String} [options.mediaType]
|
||||
* @param {String} [options.mediaLanguage]
|
||||
* @param {String} [options.page] The path portion of the page URL
|
||||
*/
|
||||
send_pageview: function send_pageview(options) {
|
||||
var settings = options || {};
|
||||
|
||||
var defaultFontSize;
|
||||
var loadTime = getLoadTime();
|
||||
var mediaType = settings.mediaType;
|
||||
var primaryCollection = settings.primaryCollection;
|
||||
var page = settings.page;
|
||||
var navToDoneTime = getNavToDoneTime();
|
||||
|
||||
/**
|
||||
* @return {String}
|
||||
*/
|
||||
function get_locale() {
|
||||
if (navigator) {
|
||||
if (navigator.language)
|
||||
return navigator.language;
|
||||
|
||||
else if (navigator.browserLanguage)
|
||||
return navigator.browserLanguage;
|
||||
|
||||
else if (navigator.systemLanguage)
|
||||
return navigator.systemLanguage;
|
||||
|
||||
else if (navigator.userLanguage)
|
||||
return navigator.userLanguage;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
defaultFontSize = getDefaultFontSize();
|
||||
|
||||
// Set field values
|
||||
this.values.kind = 'pageview';
|
||||
this.values.timediff = (new Date().getTimezoneOffset()/60)*(-1); // *timezone* diff from UTC
|
||||
this.values.locale = get_locale();
|
||||
this.values.referrer = (document.referrer == '' ? '-' : document.referrer);
|
||||
|
||||
if (loadTime)
|
||||
this.values.loadtime = loadTime;
|
||||
|
||||
if (navToDoneTime)
|
||||
this.values.nav_to_done_ms = navToDoneTime;
|
||||
|
||||
if (settings.trackingId) {
|
||||
this.values.ga_tid = settings.trackingId;
|
||||
}
|
||||
|
||||
/* START CUSTOM DIMENSIONS */
|
||||
if (defaultFontSize)
|
||||
this.values.ga_cd1 = defaultFontSize;
|
||||
|
||||
if ('devicePixelRatio' in window)
|
||||
this.values.ga_cd2 = window.devicePixelRatio;
|
||||
|
||||
if (mediaType)
|
||||
this.values.ga_cd3 = mediaType;
|
||||
|
||||
if (settings.mediaLanguage) {
|
||||
this.values.ga_cd4 = settings.mediaLanguage;
|
||||
}
|
||||
|
||||
if (primaryCollection) {
|
||||
this.values.ga_cd5 = primaryCollection;
|
||||
}
|
||||
/* END CUSTOM DIMENSIONS */
|
||||
|
||||
if (page)
|
||||
this.values.page = page;
|
||||
|
||||
this.send_ping(this.values);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a tracking "Event".
|
||||
* @param {string} category
|
||||
* @param {string} action
|
||||
* @param {string} label
|
||||
* @param {Object} additionalEventParams
|
||||
*/
|
||||
send_event: function send_event(
|
||||
category,
|
||||
action,
|
||||
label,
|
||||
additionalEventParams
|
||||
) {
|
||||
if (!label) label = window.location.pathname;
|
||||
if (!additionalEventParams) additionalEventParams = {};
|
||||
if (additionalEventParams.mediaLanguage) {
|
||||
additionalEventParams.ga_cd4 = additionalEventParams.mediaLanguage;
|
||||
delete additionalEventParams.mediaLanguage;
|
||||
}
|
||||
var eventParams = Object.assign(
|
||||
{
|
||||
kind: 'event',
|
||||
ec: category,
|
||||
ea: action,
|
||||
el: label,
|
||||
cache_bust: Math.random(),
|
||||
},
|
||||
additionalEventParams
|
||||
);
|
||||
this.send_ping(eventParams);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends every event instead of a small percentage.
|
||||
*
|
||||
* Use this sparingly as it can generate a lot of events.
|
||||
*
|
||||
* @param {string} category
|
||||
* @param {string} action
|
||||
* @param {string} label
|
||||
* @param {Object} additionalEventParams
|
||||
*/
|
||||
send_event_no_sampling: function send_event_no_sampling(
|
||||
category,
|
||||
action,
|
||||
label,
|
||||
additionalEventParams
|
||||
) {
|
||||
var extraParams = additionalEventParams || {};
|
||||
extraParams.service = NO_SAMPLING_SERVICE;
|
||||
this.send_event(category, action, label, extraParams);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Object} options see this.send_pageview options
|
||||
*/
|
||||
send_pageview_on_load: function send_pageview_on_load(options) {
|
||||
var self = this;
|
||||
window.addEventListener('load', function send_pageview_with_options() {
|
||||
self.send_pageview(options);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Handles tracking events passed in URL.
|
||||
* Assumes category and action values are separated by a "|" character.
|
||||
* NOTE: Uses the unsampled analytics property. Watch out for future high click links!
|
||||
* @param {Location}
|
||||
*/
|
||||
process_url_events: function process_url_events(location) {
|
||||
var eventValues;
|
||||
var actionValue;
|
||||
var eventValue = getParams(location).iax;
|
||||
if (!eventValue) return;
|
||||
eventValues = eventValue.split('|');
|
||||
actionValue = eventValues.length >= 1 ? eventValues[1] : '';
|
||||
this.send_event_no_sampling(
|
||||
eventValues[0],
|
||||
actionValue,
|
||||
window.location.pathname
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* Attaches handlers for event tracking.
|
||||
*
|
||||
* To enable click tracking for a link, add a `data-event-click-tracking`
|
||||
* attribute containing the Google Analytics Event Category and Action, separated
|
||||
* by a vertical pipe (|).
|
||||
* e.g. `<a href="foobar" data-event-click-tracking="TopNav|FooBar">`
|
||||
*
|
||||
* To enable form submit tracking, add a `data-event-form-tracking` attribute
|
||||
* to the `form` tag.
|
||||
* e.g. `<form data-event-form-tracking="TopNav|SearchForm" method="GET">`
|
||||
*
|
||||
* Additional tracking options can be added via a `data-event-tracking-options`
|
||||
* parameter. This parameter, if included, should be a JSON string of the parameters.
|
||||
* Valid parameters are:
|
||||
* - service {string}: Corresponds to the Google Analytics property data values flow into
|
||||
*/
|
||||
set_up_event_tracking: function set_up_event_tracking() {
|
||||
var self = this;
|
||||
var clickTrackingAttributeName = 'event-click-tracking';
|
||||
var formTrackingAttributeName = 'event-form-tracking';
|
||||
var trackingOptionsAttributeName = 'event-tracking-options';
|
||||
|
||||
function handleAction(event, attributeName) {
|
||||
var selector = '[data-' + attributeName + ']';
|
||||
var eventTarget = event.target;
|
||||
if (!eventTarget) return;
|
||||
var target = eventTarget.closest(selector);
|
||||
if (!target) return;
|
||||
var categoryAction;
|
||||
var categoryActionParts;
|
||||
var options;
|
||||
categoryAction = target.dataset[toCamelCase(attributeName)];
|
||||
if (!categoryAction) return;
|
||||
categoryActionParts = categoryAction.split('|');
|
||||
options = target.dataset[toCamelCase(trackingOptionsAttributeName)];
|
||||
options = options ? JSON.parse(options) : {};
|
||||
self.send_event(
|
||||
categoryActionParts[0],
|
||||
categoryActionParts[1],
|
||||
categoryActionParts[2] || window.location.pathname,
|
||||
options.service ? { service: options.service } : {}
|
||||
);
|
||||
}
|
||||
|
||||
function toCamelCase(str) {
|
||||
return str.replace(/\W+(.)/g, function (match, chr) {
|
||||
return chr.toUpperCase();
|
||||
});
|
||||
};
|
||||
|
||||
document.addEventListener('click', function(e) {
|
||||
handleAction(e, clickTrackingAttributeName);
|
||||
});
|
||||
|
||||
document.addEventListener('submit', function(e) {
|
||||
handleAction(e, formTrackingAttributeName);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {Object[]}
|
||||
*/
|
||||
get_data_packets: function get_data_packets() {
|
||||
return [this.values];
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a tracking image for tracking JS compatibility.
|
||||
*
|
||||
* @param {string} type The type value for track_js_case in query params for 0.gif
|
||||
*/
|
||||
create_tracking_image: function create_tracking_image(type) {
|
||||
this.send_ping_via_image({
|
||||
cache_bust: Math.random(),
|
||||
kind: 'track_js',
|
||||
track_js_case: type,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return ArchiveAnalytics;
|
||||
}());
|
||||
// @license-end
|
||||
@@ -0,0 +1,507 @@
|
||||
@import 'record.css'; /* for SPN1 */
|
||||
|
||||
#wm-ipp-base {
|
||||
height:65px;/* initial height just in case js code fails */
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:none;
|
||||
background:none transparent;
|
||||
}
|
||||
#wm-ipp {
|
||||
z-index: 2147483647;
|
||||
}
|
||||
#wm-ipp, #wm-ipp * {
|
||||
font-family:Lucida Grande, Helvetica, Arial, sans-serif;
|
||||
font-size:12px;
|
||||
line-height:1.2;
|
||||
letter-spacing:0;
|
||||
width:auto;
|
||||
height:auto;
|
||||
max-width:none;
|
||||
max-height:none;
|
||||
min-width:0 !important;
|
||||
min-height:0;
|
||||
outline:none;
|
||||
float:none;
|
||||
text-align:left;
|
||||
border:none;
|
||||
color: #000;
|
||||
text-indent: 0;
|
||||
position: initial;
|
||||
background: none;
|
||||
}
|
||||
#wm-ipp div, #wm-ipp canvas {
|
||||
display: block;
|
||||
}
|
||||
#wm-ipp div, #wm-ipp tr, #wm-ipp td, #wm-ipp a, #wm-ipp form {
|
||||
padding:0;
|
||||
margin:0;
|
||||
border:none;
|
||||
border-radius:0;
|
||||
background-color:transparent;
|
||||
background-image:none;
|
||||
/*z-index:2147483640;*/
|
||||
height:auto;
|
||||
}
|
||||
#wm-ipp table {
|
||||
border:none;
|
||||
border-collapse:collapse;
|
||||
margin:0;
|
||||
padding:0;
|
||||
width:auto;
|
||||
font-size:inherit;
|
||||
}
|
||||
#wm-ipp form input {
|
||||
padding:1px !important;
|
||||
height:auto;
|
||||
display:inline;
|
||||
margin:0;
|
||||
color: #000;
|
||||
background: none #fff;
|
||||
border: 1px solid #666;
|
||||
}
|
||||
#wm-ipp form input[type=submit] {
|
||||
padding:0 8px !important;
|
||||
margin:1px 0 1px 5px !important;
|
||||
width:auto !important;
|
||||
border: 1px solid #000 !important;
|
||||
background: #fff !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
#wm-ipp form input[type=submit]:hover {
|
||||
background: #eee !important;
|
||||
cursor: pointer !important;
|
||||
}
|
||||
#wm-ipp form input[type=submit]:active {
|
||||
transform: translateY(1px);
|
||||
}
|
||||
#wm-ipp a {
|
||||
display: inline;
|
||||
}
|
||||
#wm-ipp a:hover{
|
||||
text-decoration:underline;
|
||||
}
|
||||
#wm-ipp a.wm-btn:hover {
|
||||
text-decoration:none;
|
||||
color:#ff0 !important;
|
||||
}
|
||||
#wm-ipp a.wm-btn:hover span {
|
||||
color:#ff0 !important;
|
||||
}
|
||||
#wm-ipp #wm-ipp-inside {
|
||||
margin: 0 6px;
|
||||
border:5px solid #000;
|
||||
border-top:none;
|
||||
background-color:rgba(255,255,255,0.9);
|
||||
-moz-box-shadow:1px 1px 4px #333;
|
||||
-webkit-box-shadow:1px 1px 4px #333;
|
||||
box-shadow:1px 1px 4px #333;
|
||||
border-radius:0 0 8px 8px;
|
||||
}
|
||||
/* selectors are intentionally verbose to ensure priority */
|
||||
#wm-ipp #wm-logo {
|
||||
padding:0 10px;
|
||||
vertical-align:middle;
|
||||
min-width:100px;
|
||||
flex: 0 0 100px;
|
||||
}
|
||||
#wm-ipp .c {
|
||||
padding-left: 4px;
|
||||
}
|
||||
#wm-ipp .c .u {
|
||||
margin-top: 4px !important;
|
||||
}
|
||||
#wm-ipp .n {
|
||||
padding:0 0 0 5px !important;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
#wm-ipp .n a {
|
||||
text-decoration:none;
|
||||
color:#33f;
|
||||
font-weight:bold;
|
||||
}
|
||||
#wm-ipp .n .b {
|
||||
padding:0 6px 0 0 !important;
|
||||
text-align:right !important;
|
||||
overflow:visible;
|
||||
white-space:nowrap;
|
||||
color:#99a;
|
||||
vertical-align:middle;
|
||||
}
|
||||
#wm-ipp .n .y .b {
|
||||
padding:0 6px 2px 0 !important;
|
||||
}
|
||||
#wm-ipp .n .c {
|
||||
background:#000;
|
||||
color:#ff0;
|
||||
font-weight:bold;
|
||||
padding:0 !important;
|
||||
text-align:center;
|
||||
}
|
||||
#wm-ipp.hi .n td.c {
|
||||
color:#ec008c;
|
||||
}
|
||||
#wm-ipp .n td.f {
|
||||
padding:0 0 0 6px !important;
|
||||
text-align:left !important;
|
||||
overflow:visible;
|
||||
white-space:nowrap;
|
||||
color:#99a;
|
||||
vertical-align:middle;
|
||||
}
|
||||
#wm-ipp .n tr.m td {
|
||||
text-transform:uppercase;
|
||||
white-space:nowrap;
|
||||
padding:2px 0;
|
||||
}
|
||||
#wm-ipp .c .s {
|
||||
padding:0 5px 0 0 !important;
|
||||
vertical-align:bottom;
|
||||
}
|
||||
#wm-ipp #wm-nav-captures {
|
||||
white-space: nowrap;
|
||||
}
|
||||
#wm-ipp .c .s a.t {
|
||||
color:#33f;
|
||||
font-weight:bold;
|
||||
line-height: 1.8;
|
||||
}
|
||||
#wm-ipp .c .s div.r {
|
||||
color: #666;
|
||||
font-size:9px;
|
||||
white-space:nowrap;
|
||||
}
|
||||
#wm-ipp .c .k {
|
||||
padding-bottom:1px;
|
||||
}
|
||||
#wm-ipp .c .s {
|
||||
padding:0 5px 2px 0 !important;
|
||||
}
|
||||
#wm-ipp td#displayMonthEl {
|
||||
padding: 2px 0 !important;
|
||||
}
|
||||
#wm-ipp td#displayYearEl {
|
||||
padding: 0 0 2px 0 !important;
|
||||
}
|
||||
|
||||
div#wm-ipp-sparkline {
|
||||
position:relative;/* for positioning markers */
|
||||
white-space:nowrap;
|
||||
background-color:#fff;
|
||||
cursor:pointer;
|
||||
line-height:0.9;
|
||||
}
|
||||
#sparklineImgId, #wm-sparkline-canvas {
|
||||
position:relative;
|
||||
z-index:9012;
|
||||
max-width:none;
|
||||
}
|
||||
#wm-ipp-sparkline div.yt {
|
||||
position:absolute;
|
||||
z-index:9010 !important;
|
||||
background-color:#ff0 !important;
|
||||
top: 0;
|
||||
}
|
||||
#wm-ipp-sparkline div.mt {
|
||||
position:absolute;
|
||||
z-index:9013 !important;
|
||||
background-color:#ec008c !important;
|
||||
top: 0;
|
||||
}
|
||||
#wm-ipp .r {
|
||||
margin-left: 4px;
|
||||
}
|
||||
#wm-ipp .r a {
|
||||
color:#33f;
|
||||
border:none;
|
||||
position:relative;
|
||||
background-color:transparent;
|
||||
background-repeat:no-repeat !important;
|
||||
background-position:100% 100% !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
#wm-ipp #wm-capinfo {
|
||||
/* prevents notice div background from sticking into round corners of
|
||||
#wm-ipp-inside */
|
||||
border-radius: 0 0 4px 4px;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .c-logo {
|
||||
display:block;
|
||||
float:left;
|
||||
margin-right:3px;
|
||||
width:90px;
|
||||
min-height:90px;
|
||||
max-height: 290px;
|
||||
border-radius:45px;
|
||||
overflow:hidden;
|
||||
background-position:50%;
|
||||
background-size:auto 90px;
|
||||
box-shadow: 0 0 2px 2px rgba(208,208,208,128) inset;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .c-logo span {
|
||||
display:inline-block;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .c-logo img {
|
||||
height:90px;
|
||||
position:relative;
|
||||
left:-50%;
|
||||
}
|
||||
#wm-ipp #wm-capinfo .wm-title {
|
||||
font-size:130%;
|
||||
}
|
||||
#wm-ipp #wm-capinfo a.wm-selector {
|
||||
display:inline-block;
|
||||
color: #aaa;
|
||||
text-decoration:none !important;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
#wm-ipp #wm-capinfo a.wm-selector.selected {
|
||||
background-color:#666;
|
||||
}
|
||||
#wm-ipp #wm-capinfo a.wm-selector:hover {
|
||||
color: #fff;
|
||||
}
|
||||
#wm-ipp #wm-capinfo.notice-only #wm-capinfo-collected-by,
|
||||
#wm-ipp #wm-capinfo.notice-only #wm-capinfo-timestamps {
|
||||
display: none;
|
||||
}
|
||||
#wm-ipp #wm-capinfo #wm-capinfo-notice .wm-capinfo-content {
|
||||
background-color:#ff0;
|
||||
padding:5px;
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
}
|
||||
#wm-ipp #wm-capinfo #wm-capinfo-notice .wm-capinfo-content * {
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
}
|
||||
#wm-ipp #wm-expand {
|
||||
right: 1px;
|
||||
bottom: -1px;
|
||||
color: #ffffff;
|
||||
background-color: #666 !important;
|
||||
padding:0 5px 0 3px !important;
|
||||
border-radius: 3px 3px 0 0 !important;
|
||||
}
|
||||
#wm-ipp #wm-expand span {
|
||||
color: #ffffff;
|
||||
}
|
||||
#wm-ipp #wm-expand #wm-expand-icon {
|
||||
display: inline-block;
|
||||
transition: transform 0.5s;
|
||||
transform-origin: 50% 45%;
|
||||
}
|
||||
#wm-ipp #wm-expand.wm-open #wm-expand-icon {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
#wm-ipp #wmtb {
|
||||
text-align:right;
|
||||
}
|
||||
#wm-ipp #wmtb #wmtbURL {
|
||||
width: calc(100% - 45px);
|
||||
}
|
||||
#wm-ipp #wm-graph-anchor {
|
||||
border-right:1px solid #ccc;
|
||||
}
|
||||
/* time coherence */
|
||||
html.wb-highlight {
|
||||
box-shadow: inset 0 0 0 3px #a50e3a !important;
|
||||
}
|
||||
.wb-highlight {
|
||||
outline: 3px solid #a50e3a !important;
|
||||
}
|
||||
#wm-ipp-print {
|
||||
display:none !important;
|
||||
}
|
||||
@media print {
|
||||
#wm-ipp-base {
|
||||
display:none !important;
|
||||
}
|
||||
#wm-ipp-print {
|
||||
display:block !important;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
@media (max-width:414px) {
|
||||
#wm-ipp .xxs {
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
@media (min-width:1055px) {
|
||||
#wm-ipp #wm-graph-anchor {
|
||||
display:block !important;
|
||||
}
|
||||
}
|
||||
@media (max-width:1054px) {
|
||||
#wm-ipp #wm-graph-anchor {
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
@media (max-width:1163px) {
|
||||
#wm-logo {
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
|
||||
#wm-btns {
|
||||
white-space: nowrap;
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-open {
|
||||
margin-right: 7px;
|
||||
top: -6px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-sign-in {
|
||||
box-sizing: content-box;
|
||||
display: none;
|
||||
margin-right: 7px;
|
||||
top: -8px;
|
||||
|
||||
/*
|
||||
round border around sign in button
|
||||
*/
|
||||
border: 2px #000 solid;
|
||||
border-radius: 14px;
|
||||
padding-right: 2px;
|
||||
padding-bottom: 2px;
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-sign-in>.iconochive-person {
|
||||
font-size: 12.5px;
|
||||
}
|
||||
|
||||
#wm-save-snapshot-open > .iconochive-web {
|
||||
color:#000;
|
||||
font-size:160%;
|
||||
}
|
||||
|
||||
#wm-ipp #wm-share {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#wm-share > #wm-screenshot {
|
||||
display: inline-block;
|
||||
margin-right: 3px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#wm-screenshot > .iconochive-image {
|
||||
color:#000;
|
||||
font-size:160%;
|
||||
}
|
||||
|
||||
#wm-share > #wm-video {
|
||||
display: inline-block;
|
||||
margin-right: 3px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#wm-video > .iconochive-movies {
|
||||
color: #000;
|
||||
display: inline-block;
|
||||
font-size: 150%;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-in-progress {
|
||||
display: none;
|
||||
font-size:160%;
|
||||
opacity: 0.5;
|
||||
position: relative;
|
||||
margin-right: 7px;
|
||||
top: -5px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-success {
|
||||
display: none;
|
||||
color: green;
|
||||
position: relative;
|
||||
top: -7px;
|
||||
}
|
||||
|
||||
#wm-btns #wm-save-snapshot-fail {
|
||||
display: none;
|
||||
color: red;
|
||||
position: relative;
|
||||
top: -7px;
|
||||
}
|
||||
|
||||
.wm-icon-screen-shot {
|
||||
background: url("../images/web-screenshot.svg") no-repeat !important;
|
||||
background-size: contain !important;
|
||||
width: 22px !important;
|
||||
height: 19px !important;
|
||||
|
||||
display: inline-block;
|
||||
}
|
||||
#donato {
|
||||
/* transition effect is disable so as to simplify height adjustment */
|
||||
/*transition: height 0.5s;*/
|
||||
height: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-bottom: 1px solid #999 !important;
|
||||
}
|
||||
body.wm-modal {
|
||||
height: auto !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
#donato #donato-base {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
/*bottom: 0;*/
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
z-index: 2147483639;
|
||||
}
|
||||
body.wm-modal #donato #donato-base {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 2147483640;
|
||||
}
|
||||
|
||||
.wb-autocomplete-suggestions {
|
||||
font-family: Lucida Grande, Helvetica, Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
text-align: left;
|
||||
cursor: default;
|
||||
border: 1px solid #ccc;
|
||||
border-top: 0;
|
||||
background: #fff;
|
||||
box-shadow: -1px 1px 3px rgba(0,0,0,.1);
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 2147483647;
|
||||
max-height: 254px;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.wb-autocomplete-suggestion {
|
||||
position: relative;
|
||||
padding: 0 .6em;
|
||||
line-height: 23px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-size: 1.02em;
|
||||
color: #333;
|
||||
}
|
||||
.wb-autocomplete-suggestion b {
|
||||
font-weight: bold;
|
||||
}
|
||||
.wb-autocomplete-suggestion.selected {
|
||||
background: #f0f0f0;
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };
|
||||
if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }
|
||||
{
|
||||
let window = _____WB$wombat$assign$function_____("window");
|
||||
let self = _____WB$wombat$assign$function_____("self");
|
||||
let document = _____WB$wombat$assign$function_____("document");
|
||||
let location = _____WB$wombat$assign$function_____("location");
|
||||
let top = _____WB$wombat$assign$function_____("top");
|
||||
let parent = _____WB$wombat$assign$function_____("parent");
|
||||
let frames = _____WB$wombat$assign$function_____("frames");
|
||||
let opener = _____WB$wombat$assign$function_____("opener");
|
||||
|
||||
|
||||
<!--
|
||||
// Image Swap Restore
|
||||
function MM_swapImgRestore() { //v2.0
|
||||
if (document.MM_swapImgData != null)
|
||||
for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
|
||||
document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
|
||||
}
|
||||
// Image Swap
|
||||
function MM_swapImage() { //v2.0
|
||||
var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.MM_swapImgData;
|
||||
for (i=0; i < (MM_swapImage.arguments.length-2); i+=3) {
|
||||
objStr = MM_swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
|
||||
if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
|
||||
(objStr.indexOf('document.all[') ==0 && document.all ==null))
|
||||
objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
|
||||
obj = eval(objStr);
|
||||
if (obj != null) {
|
||||
swapArray[j++] = obj;
|
||||
swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];
|
||||
obj.src = MM_swapImage.arguments[i+2];
|
||||
} }
|
||||
document.MM_swapImgData = swapArray; //used for restore
|
||||
}
|
||||
function MM_showHideLayers() { //v2.0
|
||||
var i, visStr, args, theObj;
|
||||
args = MM_showHideLayers.arguments;
|
||||
for (i=0; i<(args.length-2); i+=3) { //with arg triples (objNS,objIE,visStr)
|
||||
visStr = args[i+2];
|
||||
if (navigator.appName == 'Netscape' && document.layers != null) {
|
||||
theObj = eval(args[i]);
|
||||
if (theObj) theObj.visibility = visStr;
|
||||
} else if (document.all != null) { //IE
|
||||
if (visStr == 'show') visStr = 'visible'; //convert vals
|
||||
if (visStr == 'hide') visStr = 'hidden';
|
||||
theObj = eval(args[i+1]);
|
||||
if (theObj) theObj.style.visibility = visStr;
|
||||
} }
|
||||
}
|
||||
|
||||
|
||||
function pulldown(formObj)
|
||||
{
|
||||
url = formObj.options[formObj.options.selectedIndex].value;
|
||||
if(url != "empty")
|
||||
{
|
||||
window.location = url;
|
||||
url = "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// This checks to see if the window's dimensions have actually changed
|
||||
// (because Netscape often fires a false onResize event when it forms scrollbars);
|
||||
// if they have, the document is reloaded.
|
||||
// Note that document.location is not supposed to be settable, but here's another
|
||||
// case where the implementation does not match the specs.
|
||||
|
||||
function resizeFix(){
|
||||
if(document.resizeFix.initWidth!=window.innerWidth
|
||||
||document.resizeFix.initHeight!=window.innerHeight)
|
||||
document.location=document.location;
|
||||
}
|
||||
|
||||
// This function checks to see if the browser supports the Layer object (i.e., Netscape 4.X);
|
||||
// if it does, then it creates a new object with properties to hold the current window width & height
|
||||
// and assigns the resizeFix() function to the window's onResize event
|
||||
|
||||
function checkBrowser(){
|
||||
if(document.layers){
|
||||
if(typeof document.fix == "undefined"){
|
||||
document.resizeFix=new Object();
|
||||
document.resizeFix.initWidth=window.innerWidth;
|
||||
document.resizeFix.initHeight=window.innerHeight;
|
||||
}
|
||||
window.onresize=resizeFix;
|
||||
}
|
||||
}
|
||||
|
||||
// This calls the browser check function above
|
||||
|
||||
checkBrowser();
|
||||
|
||||
|
||||
|
||||
|
||||
//-->
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
FILE ARCHIVED ON 00:27:23 Jul 15, 2019 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 13:34:01 Dec 04, 2022.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
*/
|
||||
/*
|
||||
playback timings (ms):
|
||||
captures_list: 247.578
|
||||
exclusion.robots: 0.081
|
||||
exclusion.robots.policy: 0.073
|
||||
cdx.remote: 0.069
|
||||
esindex: 0.011
|
||||
LoadShardBlock: 149.267 (3)
|
||||
PetaboxLoader3.datanode: 90.991 (4)
|
||||
CDXLines.iter: 18.401 (3)
|
||||
PetaboxLoader3.resolve: 75.892 (2)
|
||||
load_resource: 51.672
|
||||
*/
|
||||
|
After Width: | Height: | Size: 631 B |