diff --git a/.gitignore b/.gitignore index 622a699..bd2143d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +gm-notes/ node_modules/ out/ IDEAS.md diff --git a/package.json b/package.json index f817887..067d4a8 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "planar-vagabond", - "version": "0.9.1", + "version": "0.9.2", "description": "", "main": "index.js", "scripts": { diff --git a/src/assets/_root/android-chrome-144x144.png b/src/assets/_root/android-chrome-144x144.png new file mode 100644 index 0000000..513dca5 Binary files /dev/null and b/src/assets/_root/android-chrome-144x144.png differ diff --git a/src/assets/_root/android-chrome-192x192.png b/src/assets/_root/android-chrome-192x192.png new file mode 100644 index 0000000..dfa70b0 Binary files /dev/null and b/src/assets/_root/android-chrome-192x192.png differ diff --git a/src/assets/_root/android-chrome-256x256.png b/src/assets/_root/android-chrome-256x256.png new file mode 100644 index 0000000..92c9cc9 Binary files /dev/null and b/src/assets/_root/android-chrome-256x256.png differ diff --git a/src/assets/_root/android-chrome-36x36.png b/src/assets/_root/android-chrome-36x36.png new file mode 100644 index 0000000..90cc34a Binary files /dev/null and b/src/assets/_root/android-chrome-36x36.png differ diff --git a/src/assets/_root/android-chrome-384x384.png b/src/assets/_root/android-chrome-384x384.png new file mode 100644 index 0000000..a6d03b2 Binary files /dev/null and b/src/assets/_root/android-chrome-384x384.png differ diff --git a/src/assets/_root/android-chrome-48x48.png b/src/assets/_root/android-chrome-48x48.png new file mode 100644 index 0000000..9b29756 Binary files /dev/null and b/src/assets/_root/android-chrome-48x48.png differ diff --git a/src/assets/_root/android-chrome-512x512.png b/src/assets/_root/android-chrome-512x512.png new file mode 100644 index 0000000..30bfb9d Binary files /dev/null and b/src/assets/_root/android-chrome-512x512.png differ diff --git a/src/assets/_root/android-chrome-72x72.png b/src/assets/_root/android-chrome-72x72.png new file mode 100644 index 0000000..f012e4d Binary files /dev/null and b/src/assets/_root/android-chrome-72x72.png differ diff --git a/src/assets/_root/android-chrome-96x96.png b/src/assets/_root/android-chrome-96x96.png new file mode 100644 index 0000000..7384cf9 Binary files /dev/null and b/src/assets/_root/android-chrome-96x96.png differ diff --git a/src/assets/_root/apple-touch-icon-120x120.png b/src/assets/_root/apple-touch-icon-120x120.png new file mode 100644 index 0000000..6497c6c Binary files /dev/null and b/src/assets/_root/apple-touch-icon-120x120.png differ diff --git a/src/assets/_root/apple-touch-icon-152x152.png b/src/assets/_root/apple-touch-icon-152x152.png new file mode 100644 index 0000000..c5e64f8 Binary files /dev/null and b/src/assets/_root/apple-touch-icon-152x152.png differ diff --git a/src/assets/_root/apple-touch-icon-180x180.png b/src/assets/_root/apple-touch-icon-180x180.png new file mode 100644 index 0000000..2e83592 Binary files /dev/null and b/src/assets/_root/apple-touch-icon-180x180.png differ diff --git a/src/assets/_root/apple-touch-icon-60x60.png b/src/assets/_root/apple-touch-icon-60x60.png new file mode 100644 index 0000000..f42089c Binary files /dev/null and b/src/assets/_root/apple-touch-icon-60x60.png differ diff --git a/src/assets/_root/apple-touch-icon-76x76.png b/src/assets/_root/apple-touch-icon-76x76.png new file mode 100644 index 0000000..481f684 Binary files /dev/null and b/src/assets/_root/apple-touch-icon-76x76.png differ diff --git a/src/assets/_root/apple-touch-icon.png b/src/assets/_root/apple-touch-icon.png new file mode 100644 index 0000000..2e83592 Binary files /dev/null and b/src/assets/_root/apple-touch-icon.png differ diff --git a/src/assets/_root/browserconfig.xml b/src/assets/_root/browserconfig.xml index 989db79..2234bdb 100644 --- a/src/assets/_root/browserconfig.xml +++ b/src/assets/_root/browserconfig.xml @@ -1,2 +1,9 @@ -#0d1852 + + + + + #8fffff + + + diff --git a/src/assets/_root/chim/chim-exe.zip b/src/assets/_root/chim/chim-exe.zip deleted file mode 100644 index 6ef9b0f..0000000 Binary files a/src/assets/_root/chim/chim-exe.zip and /dev/null differ diff --git a/src/assets/_root/chim/js-dos-api.js b/src/assets/_root/chim/js-dos-api.js deleted file mode 100644 index 21331e6..0000000 --- a/src/assets/_root/chim/js-dos-api.js +++ /dev/null @@ -1,348 +0,0 @@ -/*! - * jQLite JavaScript Library v1.1.1 (http://code.google.com/p/jqlite/) - * Copyright (c) 2010 Brett Fattori (bfattori@gmail.com) - * Licensed under the MIT license - * http://www.opensource.org/licenses/mit-license.php - * - * Many thanks to the jQuery team's efforts. Some code is - * Copyright (c) 2010, John Resig. See - * http://jquery.org/license - * - * @author Brett Fattori (bfattori@gmail.com) - * @author $Author: bfattori $ - * @version $Revision: 145 $ - * - * Created: 03/29/2010 - * Modified: $Date: 2010-06-21 11:08:14 -0400 (Mon, 21 Jun 2010) $ - */ -(function(){function B(){return+new Date}var D=function(a,b){if(a===""&&b)return b;var d=a.split(" "),c=d.shift(),e;if(c.charAt(0)=="#"){var g=i.getElementById(c.substring(1));e=g?[g]:[]}else{e=c.charAt(0)!=="."?c.split(".")[0]:"*";var h=c.split("."),j=null;if(e.indexOf("[")!=-1){j=e;e=e.substr(0,e.indexOf("["))}g=function(o){var n=arguments.callee,k;if(!(k=!n.needClass)){k=n.classes;if(o.className.length==0)k=false;else{for(var r=o.className.split(" "),l=k.length,p=0;p0;g.needAttribute=j!=null;for(c=0;c0;)A.shift()()};var t="jQuery"+B(),S=0,O={};f.noData={embed:true,object:true,applet:true};f.cache={};f.data=function(a,b,d){if(!(a.nodeName&&jQuery.noData[a.nodeName.toLowerCase()])){a=a==window?O:a;var c=a[t];c||(c=a[t]=++S);if(b&&!jQuery.cache[c])jQuery.cache[c]={};if(d!==undefined)jQuery.cache[c][b]=d;return b?jQuery.cache[c][b]:c}};f.removeData= -function(a,b){a=a==window?O:a;var d=a[t];if(b){if(jQuery.cache[d]){delete jQuery.cache[d][b];b="";for(b in jQuery.cache[d])break;b||jQuery.removeData(a)}}else{try{delete a[t]}catch(c){a.removeAttribute&&a.removeAttribute(t)}delete jQuery.cache[d]}};f.ajax={status:-1,statusText:"",responseText:null,responseXML:null,send:function(a,b,d){if(f.isFunction(b)){d=b;b={}}if(a){var c=true,e=null,g=null;if(typeof b.async!=="undefined"){c=b.async;delete b.async}if(typeof b.username!=="undefined"){e=b.username; -delete b.username}if(typeof b.password!=="undefined"){g=b.password;delete b.password}b=f.param(b);if(b.length!=0)a+=(a.indexOf("?")==-1?"?":"&")+b;b=new XMLHttpRequest;b.open("GET",a,c,e,g);b.send();if(c){a=function(h){var j=arguments.callee;h.status==200?f.ajax.complete(h,j.cb):f.ajax.error(h,j.cb)};a.cb=d;d=function(){var h=arguments.callee;h.req.readyState!=4?setTimeout(h,250):h.xcb(h.req)};d.req=b;d.xcb=a;setTimeout(d,250)}}},complete:function(a,b){f.ajax.status=a.status;f.ajax.responseText=a.responseText; -f.ajax.responseXML=a.responseXML;f.isFunction(b)&&b(a.responseText,a.status)},error:function(a,b){f.ajax.status=a.status;f.ajax.statusText=a.statusText;f.isFunction(b)&&b(a.status,a.statusText)}};f.makeArray=function(a,b){var d=b||[];if(a!=null)a.length==null||typeof a==="string"||jQuery.isFunction(a)||typeof a!=="function"&&a.setInterval?L.call(d,a):f.merge(d,a);return d};f.inArray=function(a,b){for(var d=0;d")!=-1){d=f.trim(a).toLowerCase();d=d.indexOf("'); - this.canvas = $(''); - this.overlay = $('
'); - this.loaderMessage = $('
'); - this.loader = $('
').append($('
').append($(''))).append(this.loaderMessage); - this.start = $('
Click to start'); - this.div.append(this.wrapper); - this.wrapper.append(this.canvas); - this.wrapper.append(this.loader); - this.wrapper.append(this.overlay); - this.overlay.append($('
Powered by  ').append($('js-dos.com'))); - this.overlay.append(this.start); - } - - UI.prototype.onStart = function(fun) { - return this.start.click((function(_this) { - return function() { - fun(); - return _this.overlay.hide(); - }; - })(this)); - }; - - UI.prototype.appendCss = function() { - var head, style; - head = document.head || document.getElementsByTagName('head')[0]; - style = document.createElement('style'); - style.type = 'text/css'; - if (style.styleSheet) { - style.styleSheet.cssText = this.css; - } else { - style.appendChild(document.createTextNode(this.css)); - } - return head.appendChild(style); - }; - - UI.prototype.showLoader = function() { - this.loader.show(); - return this.loaderMessage.html(''); - }; - - UI.prototype.updateMessage = function(message) { - return this.loaderMessage.html(message); - }; - - UI.prototype.hideLoader = function() { - return this.loader.hide(); - }; - - UI.prototype.css = '.dosbox-container { position: relative; min-width: 320px; min-height: 200px; } .dosbox-canvas { } .dosbox-overlay, .dosbox-loader { position: absolute; left: 0; right: 0; top: 0; bottom: 0; background-color: #333; } .dosbox-start { text-align: center; position: absolute; left: 0; right: 0; bottom: 50%; color: #f80; font-size: 1.5em; text-decoration: underline; cursor: pointer; } .dosbox-overlay a { color: #f80; } .dosbox-loader { display: none; } .dosbox-powered { position: absolute; right: 1em; bottom: 1em; font-size: 0.8em; color: #9C9C9C; } .dosbox-loader-message { text-align: center; position: absolute; left: 0; right: 0; bottom: 50%; margin: 0 0 -3em 0; box-sizing: border-box; color: #f80; font-size: 1.5em; } @-moz-keyframes loading { 0% { left: 0; } 50% { left: 8.33333em; } 100% { left: 0; } } @-webkit-keyframes loading { 0% { left: 0; } 50% { left: 8.33333em; } 100% { left: 0; } } @keyframes loading { 0% { left: 0; } 50% { left: 8.33333em; } 100% { left: 0; } } .st-loader { width: 10em; height: 2.5em; position: absolute; top: 50%; left: 50%; margin: -1.25em 0 0 -5em; box-sizing: border-box; } .st-loader:before, .st-loader:after { content: ""; display: block; position: absolute; top: 0; bottom: 0; width: 1.25em; box-sizing: border-box; border: 0.25em solid #f80; } .st-loader:before { left: -0.76923em; border-right: 0; } .st-loader:after { right: -0.76923em; border-left: 0; } .st-loader .equal { display: block; position: absolute; top: 50%; margin-top: -0.5em; left: 4.16667em; height: 1em; width: 1.66667em; border: 0.25em solid #f80; box-sizing: border-box; border-width: 0.25em 0; -moz-animation: loading 1.5s infinite ease-in-out; -webkit-animation: loading 1.5s infinite ease-in-out; animation: loading 1.5s infinite ease-in-out; }'; - - return UI; - - })(); - -}).call(this); - -(function() { - Dosbox.Xhr = (function() { - function Xhr(url, options) { - var e; - this.success = options.success; - this.progress = options.progress; - if (window.ActiveXObject) { - try { - this.xhr = new ActiveXObject('Microsoft.XMLHTTP'); - } catch (error) { - e = error; - this.xhr = null; - } - } else { - this.xhr = new XMLHttpRequest(); - } - this.xhr.open('GET', url, true); - this.xhr.overrideMimeType('text/plain; charset=x-user-defined'); - this.xhr.addEventListener('progress', (function(_this) { - return function(evt) { - if (_this.progress) { - return _this.progress(evt.total, evt.loaded); - } - }; - })(this)); - this.xhr.onreadystatechange = (function(_this) { - return function() { - return _this._onReadyStateChange(); - }; - })(this); - this.xhr.send(); - } - - Xhr.prototype._onReadyStateChange = function() { - if (this.xhr.readyState === 4 && this.success) { - return this.success(this.xhr.responseText); - } - }; - - return Xhr; - - })(); - -}).call(this); diff --git a/src/assets/_root/favicon-16x16.png b/src/assets/_root/favicon-16x16.png new file mode 100644 index 0000000..d846760 Binary files /dev/null and b/src/assets/_root/favicon-16x16.png differ diff --git a/src/assets/_root/favicon-32x32.png b/src/assets/_root/favicon-32x32.png new file mode 100644 index 0000000..fc75cf5 Binary files /dev/null and b/src/assets/_root/favicon-32x32.png differ diff --git a/src/assets/_root/favicon.ico b/src/assets/_root/favicon.ico index d9f98df..65e18cd 100644 Binary files a/src/assets/_root/favicon.ico and b/src/assets/_root/favicon.ico differ diff --git a/src/assets/_root/favicon.png b/src/assets/_root/favicon.png deleted file mode 100644 index 8626f74..0000000 Binary files a/src/assets/_root/favicon.png and /dev/null differ diff --git a/src/assets/_root/manifest.json b/src/assets/_root/manifest.json deleted file mode 100644 index c81ae3e..0000000 --- a/src/assets/_root/manifest.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "Its Eric Woodward! (dotcom)", - "icons": [ - { - "src": "\/images\/favicons\/android-icon-36x36.png", - "sizes": "36x36", - "type": "image\/png", - "density": "0.75" - }, - { - "src": "\/images\/favicons\/android-icon-48x48.png", - "sizes": "48x48", - "type": "image\/png", - "density": "1.0" - }, - { - "src": "\/images\/favicons\/android-icon-72x72.png", - "sizes": "72x72", - "type": "image\/png", - "density": "1.5" - }, - { - "src": "\/images\/favicons\/android-icon-96x96.png", - "sizes": "96x96", - "type": "image\/png", - "density": "2.0" - }, - { - "src": "\/images\/favicons\/android-icon-144x144.png", - "sizes": "144x144", - "type": "image\/png", - "density": "3.0" - }, - { - "src": "\/images\/favicons\/android-icon-192x192.png", - "sizes": "192x192", - "type": "image\/png", - "density": "4.0" - } - ] -} diff --git a/src/assets/_root/mstile-150x150.png b/src/assets/_root/mstile-150x150.png new file mode 100644 index 0000000..2fa5c63 Binary files /dev/null and b/src/assets/_root/mstile-150x150.png differ diff --git a/src/assets/_root/root/favicon.ico b/src/assets/_root/root/favicon.ico deleted file mode 100644 index d9f98df..0000000 Binary files a/src/assets/_root/root/favicon.ico and /dev/null differ diff --git a/src/assets/_root/root/favicon.png b/src/assets/_root/root/favicon.png deleted file mode 100644 index 8626f74..0000000 Binary files a/src/assets/_root/root/favicon.png and /dev/null differ diff --git a/src/assets/_root/safari-pinned-tab.svg b/src/assets/_root/safari-pinned-tab.svg new file mode 100644 index 0000000..8d654ea --- /dev/null +++ b/src/assets/_root/safari-pinned-tab.svg @@ -0,0 +1,2616 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/_root/site.webmanifest b/src/assets/_root/site.webmanifest new file mode 100644 index 0000000..ab14582 --- /dev/null +++ b/src/assets/_root/site.webmanifest @@ -0,0 +1,54 @@ +{ + "name": "The Planar Vagabond's Guide to the Multiverse", + "short_name": "Planar Vagabond", + "icons": [ + { + "src": "/android-chrome-36x36.png", + "sizes": "36x36", + "type": "image/png" + }, + { + "src": "/android-chrome-48x48.png", + "sizes": "48x48", + "type": "image/png" + }, + { + "src": "/android-chrome-72x72.png", + "sizes": "72x72", + "type": "image/png" + }, + { + "src": "/android-chrome-96x96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src": "/android-chrome-144x144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-256x256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "/android-chrome-384x384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "start_url": "https://www.planarvagabond.com/" +} diff --git a/src/assets/fonts/raleway/SIL Open Font License.txt b/src/assets/fonts/raleway/SIL Open Font License.txt new file mode 100644 index 0000000..458026d --- /dev/null +++ b/src/assets/fonts/raleway/SIL Open Font License.txt @@ -0,0 +1,49 @@ +Copyright (c) 2010, Matt McInerney (matt@pixelspread.com), +Copyright (c) 2011, Pablo Impallari (www.impallari.com|impallari@gmail.com), +Copyright (c) 2011, Rodrigo Fuenzalida (www.rfuenzalida.com|hello@rfuenzalida.com), with Reserved Font Name Raleway + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the copyright statement(s). + +"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. + +5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/src/assets/fonts/raleway/raleway-bold-webfont.eot b/src/assets/fonts/raleway/raleway-bold-webfont.eot new file mode 100644 index 0000000..bd9be37 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-bold-webfont.eot differ diff --git a/src/assets/fonts/raleway/raleway-bold-webfont.ttf b/src/assets/fonts/raleway/raleway-bold-webfont.ttf new file mode 100644 index 0000000..38c099c Binary files /dev/null and b/src/assets/fonts/raleway/raleway-bold-webfont.ttf differ diff --git a/src/assets/fonts/raleway/raleway-bold-webfont.woff b/src/assets/fonts/raleway/raleway-bold-webfont.woff new file mode 100644 index 0000000..1268d34 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-bold-webfont.woff differ diff --git a/src/assets/fonts/raleway/raleway-bold-webfont.woff2 b/src/assets/fonts/raleway/raleway-bold-webfont.woff2 new file mode 100644 index 0000000..3527f51 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-bold-webfont.woff2 differ diff --git a/src/assets/fonts/raleway/raleway-bolditalic-webfont.eot b/src/assets/fonts/raleway/raleway-bolditalic-webfont.eot new file mode 100644 index 0000000..5909d08 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-bolditalic-webfont.eot differ diff --git a/src/assets/fonts/raleway/raleway-bolditalic-webfont.ttf b/src/assets/fonts/raleway/raleway-bolditalic-webfont.ttf new file mode 100644 index 0000000..eac54e7 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-bolditalic-webfont.ttf differ diff --git a/src/assets/fonts/raleway/raleway-bolditalic-webfont.woff b/src/assets/fonts/raleway/raleway-bolditalic-webfont.woff new file mode 100644 index 0000000..c6868c5 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-bolditalic-webfont.woff differ diff --git a/src/assets/fonts/raleway/raleway-bolditalic-webfont.woff2 b/src/assets/fonts/raleway/raleway-bolditalic-webfont.woff2 new file mode 100644 index 0000000..071d46b Binary files /dev/null and b/src/assets/fonts/raleway/raleway-bolditalic-webfont.woff2 differ diff --git a/src/assets/fonts/raleway/raleway-italic-webfont.eot b/src/assets/fonts/raleway/raleway-italic-webfont.eot new file mode 100644 index 0000000..7c60bae Binary files /dev/null and b/src/assets/fonts/raleway/raleway-italic-webfont.eot differ diff --git a/src/assets/fonts/raleway/raleway-italic-webfont.ttf b/src/assets/fonts/raleway/raleway-italic-webfont.ttf new file mode 100644 index 0000000..237d88d Binary files /dev/null and b/src/assets/fonts/raleway/raleway-italic-webfont.ttf differ diff --git a/src/assets/fonts/raleway/raleway-italic-webfont.woff b/src/assets/fonts/raleway/raleway-italic-webfont.woff new file mode 100644 index 0000000..5fd59d1 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-italic-webfont.woff differ diff --git a/src/assets/fonts/raleway/raleway-italic-webfont.woff2 b/src/assets/fonts/raleway/raleway-italic-webfont.woff2 new file mode 100644 index 0000000..ad9e9f8 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-italic-webfont.woff2 differ diff --git a/src/assets/fonts/raleway/raleway-regular-webfont.eot b/src/assets/fonts/raleway/raleway-regular-webfont.eot new file mode 100644 index 0000000..73198f0 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-regular-webfont.eot differ diff --git a/src/assets/fonts/raleway/raleway-regular-webfont.ttf b/src/assets/fonts/raleway/raleway-regular-webfont.ttf new file mode 100644 index 0000000..e570a2d Binary files /dev/null and b/src/assets/fonts/raleway/raleway-regular-webfont.ttf differ diff --git a/src/assets/fonts/raleway/raleway-regular-webfont.woff b/src/assets/fonts/raleway/raleway-regular-webfont.woff new file mode 100644 index 0000000..8af5865 Binary files /dev/null and b/src/assets/fonts/raleway/raleway-regular-webfont.woff differ diff --git a/src/assets/fonts/raleway/raleway-regular-webfont.woff2 b/src/assets/fonts/raleway/raleway-regular-webfont.woff2 new file mode 100644 index 0000000..3b437ef Binary files /dev/null and b/src/assets/fonts/raleway/raleway-regular-webfont.woff2 differ diff --git a/src/assets/fonts/unbounded/OFL.txt b/src/assets/fonts/unbounded/OFL.txt new file mode 100644 index 0000000..a70753e --- /dev/null +++ b/src/assets/fonts/unbounded/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2022 The Unbounded Project Authors (https://github.com/googlefonts/unbounded) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/assets/fonts/unbounded/unbounded-medium-webfont.eot b/src/assets/fonts/unbounded/unbounded-medium-webfont.eot new file mode 100644 index 0000000..e3dea80 Binary files /dev/null and b/src/assets/fonts/unbounded/unbounded-medium-webfont.eot differ diff --git a/src/assets/fonts/unbounded/unbounded-medium-webfont.ttf b/src/assets/fonts/unbounded/unbounded-medium-webfont.ttf new file mode 100644 index 0000000..7bb99ec Binary files /dev/null and b/src/assets/fonts/unbounded/unbounded-medium-webfont.ttf differ diff --git a/src/assets/fonts/unbounded/unbounded-medium-webfont.woff b/src/assets/fonts/unbounded/unbounded-medium-webfont.woff new file mode 100644 index 0000000..5208396 Binary files /dev/null and b/src/assets/fonts/unbounded/unbounded-medium-webfont.woff differ diff --git a/src/assets/fonts/unbounded/unbounded-medium-webfont.woff2 b/src/assets/fonts/unbounded/unbounded-medium-webfont.woff2 new file mode 100644 index 0000000..44495f5 Binary files /dev/null and b/src/assets/fonts/unbounded/unbounded-medium-webfont.woff2 differ diff --git a/src/assets/images/favicons/android-icon-144x144.png b/src/assets/images/favicons/android-icon-144x144.png deleted file mode 100644 index ca66e27..0000000 Binary files a/src/assets/images/favicons/android-icon-144x144.png and /dev/null differ diff --git a/src/assets/images/favicons/android-icon-192x192.png b/src/assets/images/favicons/android-icon-192x192.png deleted file mode 100644 index afd52f1..0000000 Binary files a/src/assets/images/favicons/android-icon-192x192.png and /dev/null differ diff --git a/src/assets/images/favicons/android-icon-36x36.png b/src/assets/images/favicons/android-icon-36x36.png deleted file mode 100644 index f146451..0000000 Binary files a/src/assets/images/favicons/android-icon-36x36.png and /dev/null differ diff --git a/src/assets/images/favicons/android-icon-48x48.png b/src/assets/images/favicons/android-icon-48x48.png deleted file mode 100644 index 9ef4111..0000000 Binary files a/src/assets/images/favicons/android-icon-48x48.png and /dev/null differ diff --git a/src/assets/images/favicons/android-icon-72x72.png b/src/assets/images/favicons/android-icon-72x72.png deleted file mode 100644 index bd5dec5..0000000 Binary files a/src/assets/images/favicons/android-icon-72x72.png and /dev/null differ diff --git a/src/assets/images/favicons/android-icon-96x96.png b/src/assets/images/favicons/android-icon-96x96.png deleted file mode 100644 index 4de3aef..0000000 Binary files a/src/assets/images/favicons/android-icon-96x96.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-114x114.png b/src/assets/images/favicons/apple-icon-114x114.png deleted file mode 100644 index 7334212..0000000 Binary files a/src/assets/images/favicons/apple-icon-114x114.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-120x120.png b/src/assets/images/favicons/apple-icon-120x120.png deleted file mode 100644 index 4d6e989..0000000 Binary files a/src/assets/images/favicons/apple-icon-120x120.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-144x144.png b/src/assets/images/favicons/apple-icon-144x144.png deleted file mode 100644 index ca66e27..0000000 Binary files a/src/assets/images/favicons/apple-icon-144x144.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-152x152.png b/src/assets/images/favicons/apple-icon-152x152.png deleted file mode 100644 index 3f437ad..0000000 Binary files a/src/assets/images/favicons/apple-icon-152x152.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-180x180.png b/src/assets/images/favicons/apple-icon-180x180.png deleted file mode 100644 index 1649c4b..0000000 Binary files a/src/assets/images/favicons/apple-icon-180x180.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-57x57.png b/src/assets/images/favicons/apple-icon-57x57.png deleted file mode 100644 index 45cf0fd..0000000 Binary files a/src/assets/images/favicons/apple-icon-57x57.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-60x60.png b/src/assets/images/favicons/apple-icon-60x60.png deleted file mode 100644 index f14bdce..0000000 Binary files a/src/assets/images/favicons/apple-icon-60x60.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-72x72.png b/src/assets/images/favicons/apple-icon-72x72.png deleted file mode 100644 index bd5dec5..0000000 Binary files a/src/assets/images/favicons/apple-icon-72x72.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-76x76.png b/src/assets/images/favicons/apple-icon-76x76.png deleted file mode 100644 index 2ad500b..0000000 Binary files a/src/assets/images/favicons/apple-icon-76x76.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon-precomposed.png b/src/assets/images/favicons/apple-icon-precomposed.png deleted file mode 100644 index bd7b484..0000000 Binary files a/src/assets/images/favicons/apple-icon-precomposed.png and /dev/null differ diff --git a/src/assets/images/favicons/apple-icon.png b/src/assets/images/favicons/apple-icon.png deleted file mode 100644 index bd7b484..0000000 Binary files a/src/assets/images/favicons/apple-icon.png and /dev/null differ diff --git a/src/assets/images/favicons/favicon-32x32.png b/src/assets/images/favicons/favicon-32x32.png deleted file mode 100644 index 69d3259..0000000 Binary files a/src/assets/images/favicons/favicon-32x32.png and /dev/null differ diff --git a/src/assets/images/favicons/favicon-96x96.png b/src/assets/images/favicons/favicon-96x96.png deleted file mode 100644 index 4de3aef..0000000 Binary files a/src/assets/images/favicons/favicon-96x96.png and /dev/null differ diff --git a/src/assets/images/favicons/favicon.ico b/src/assets/images/favicons/favicon.ico deleted file mode 100644 index d9f98df..0000000 Binary files a/src/assets/images/favicons/favicon.ico and /dev/null differ diff --git a/src/assets/images/favicons/favicon.png b/src/assets/images/favicons/favicon.png deleted file mode 100644 index 8626f74..0000000 Binary files a/src/assets/images/favicons/favicon.png and /dev/null differ diff --git a/src/assets/images/favicons/ms-icon-144x144.png b/src/assets/images/favicons/ms-icon-144x144.png deleted file mode 100644 index ca66e27..0000000 Binary files a/src/assets/images/favicons/ms-icon-144x144.png and /dev/null differ diff --git a/src/assets/images/favicons/ms-icon-150x150.png b/src/assets/images/favicons/ms-icon-150x150.png deleted file mode 100644 index 7bbc031..0000000 Binary files a/src/assets/images/favicons/ms-icon-150x150.png and /dev/null differ diff --git a/src/assets/images/favicons/ms-icon-310x310.png b/src/assets/images/favicons/ms-icon-310x310.png deleted file mode 100644 index df6a674..0000000 Binary files a/src/assets/images/favicons/ms-icon-310x310.png and /dev/null differ diff --git a/src/assets/images/favicons/ms-icon-70x70.png b/src/assets/images/favicons/ms-icon-70x70.png deleted file mode 100644 index d926644..0000000 Binary files a/src/assets/images/favicons/ms-icon-70x70.png and /dev/null differ diff --git a/src/assets/images/galleon-ship-silhouette-red.svg b/src/assets/images/galleon-ship-silhouette-red.svg new file mode 100644 index 0000000..1a8036c --- /dev/null +++ b/src/assets/images/galleon-ship-silhouette-red.svg @@ -0,0 +1,47 @@ + +image/svg+xml + + \ No newline at end of file diff --git a/src/assets/images/ship-favicon-1.png b/src/assets/images/ship-favicon-1.png new file mode 100644 index 0000000..c1a696c Binary files /dev/null and b/src/assets/images/ship-favicon-1.png differ diff --git a/src/assets/images/ship-favicon-2.png b/src/assets/images/ship-favicon-2.png new file mode 100644 index 0000000..24066cd Binary files /dev/null and b/src/assets/images/ship-favicon-2.png differ diff --git a/src/assets/scripts/6-classlist.min.js b/src/assets/scripts/6-classlist.min.js index 1af33f4..65c214f 100644 --- a/src/assets/scripts/6-classlist.min.js +++ b/src/assets/scripts/6-classlist.min.js @@ -4,6 +4,5 @@ https://github.com/eligrey/classList.js The Unlicense */ -"document"in self&&(("classList"in document.createElement("_")&&(!document.createElementNS||"classList"in document.createElementNS("http://www.w3.org/2000/svg","g")))||!(function(t){"use strict";if("Element"in t){var e="classList",n="prototype",i=t.Element[n],s=Object,r=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},o=Array[n].indexOf||function(t){for(var e=0,n=this.length;n>e;e+=1){if(e in this&&this[e]===t){return e}}return -1},c=function(t,e){(this.name=t),(this.code=DOMException[t]),(this.message=e)},a=function(t,e){if(""===e){throw new c("SYNTAX_ERR","The token must not be empty.")}if(/\s/.test(e)){throw new c("INVALID_CHARACTER_ERR","The token must not contain space characters.")}return o.call(t,e)},l=function(t){for(var e=r.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],i=0,s=n.length;s>i;i+=1){this.push(n[i])}this._updateClassName=function(){t.setAttribute("class",this.toString())}},u=(l[n]=[]),h=function(){return new l(this)};if(((c[n]=Error[n]),(u.item=function(t){return this[t]||null}),(u.contains=function(t){return~a(this,t+"")}),(u.add=function(){var t,e=arguments,n=0,i=e.length,s=!1;do{(t=e[n]+""),~a(this,t)||(this.push(t),(s=!0))}while(++nn;n+=1){(t=arguments[n]),e.call(this,t)};;};e("add"),e("remove")}if((t.classList.toggle("c3",!1),t.classList.contains("c3"))){var n=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:n.call(this,t)}}"replace"in document.createElement("_").classList||(DOMTokenList.prototype.replace=function(t,e){var n=this.toString().split(" "),i=n.indexOf(t+"");~i&&((n=n.slice(i)),this.remove.apply(this,n),this.add(e),this.add.apply(this,n.slice(1)))}),(t=null)})()); - +"document"in self&&("classList"in document.createElement("_")&&(!document.createElementNS||"classList"in document.createElementNS("http://www.w3.org/2000/svg","g"))||!function(t){"use strict";if("Element"in t){var e="classList",n="prototype",i=t.Element[n],s=Object,r=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},o=Array[n].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},c=function(t,e){this.name=t,this.code=DOMException[t],this.message=e},a=function(t,e){if(""===e)throw new c("SYNTAX_ERR","The token must not be empty.");if(/\s/.test(e))throw new c("INVALID_CHARACTER_ERR","The token must not contain space characters.");return o.call(t,e)},l=function(t){for(var e=r.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],i=0,s=n.length;s>i;i++)this.push(n[i]);this._updateClassName=function(){t.setAttribute("class",this.toString())}},u=l[n]=[],h=function(){return new l(this)};if(c[n]=Error[n],u.item=function(t){return this[t]||null},u.contains=function(t){return~a(this,t+"")},u.add=function(){var t,e=arguments,n=0,i=e.length,s=!1;do t=e[n]+"",~a(this,t)||(this.push(t),s=!0);while(++nn;n++)t=arguments[n],e.call(this,t)}};e("add"),e("remove")}if(t.classList.toggle("c3",!1),t.classList.contains("c3")){var n=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:n.call(this,t)}}"replace"in document.createElement("_").classList||(DOMTokenList.prototype.replace=function(t,e){var n=this.toString().split(" "),i=n.indexOf(t+"");~i&&(n=n.slice(i),this.remove.apply(this,n),this.add(e),this.add.apply(this,n.slice(1)))}),t=null}()); // @license-end diff --git a/src/assets/scripts/scripts.js b/src/assets/scripts/scripts.js index 2c8888c..c33e643 100644 --- a/src/assets/scripts/scripts.js +++ b/src/assets/scripts/scripts.js @@ -2,16 +2,12 @@ /**************************************************************************** * It's Eric Woodward's Site * - * Copyright 2014-2022 Eric Woodward + * Copyright 2014-2023 Eric Woodward * Source released under CC0 Public Domain License v1.0 * http://creativecommons.org/publicdomain/zero/1.0/ ****************************************************************************/ -(function () { - "use strict"; - - // Checking if browser "cuts the mustard" - https://gomakethings.com/ditching-jquery/ - if (!(!!document.querySelector && !!window.addEventListener)) return; +export const onLoad = () => { if (window.dayjs) dayjs.extend(window.dayjs_plugin_relativeTime); // Indicate JS is loaded @@ -23,23 +19,31 @@ document.documentElement.className += " js-hasFontsLoaded"; } - docReady(function () { - setTimeout(function () { + docReady(() => { + setTimeout(() => { if (!window.Cookies || !window.FontFaceObserver) return; // Handle Fonts - const font_ls = new FontFaceObserver("liberation_serif"), - font_msc = new FontFaceObserver("marcellus_sc"); - Promise.all([font_ls.load(), font_msc.load()]).then(function () { - if ( - document.documentElement.className.indexOf( - "js-hasFontsLoaded" - ) == -1 - ) { - document.documentElement.className += " js-hasFontsLoaded"; - } - Cookies.set("fonts_loaded", true); - }); + const fontRaleway = new FontFaceObserver("raleway"), + fontUnbounded = new FontFaceObserver("unbounded"); + Promise.all([ + fontRaleway.load(null, 5000), + fontUnbounded.load(null, 6000), + ]) + .then(() => { + if ( + document.documentElement.className.indexOf( + "js-hasFontsLoaded" + ) == -1 + ) { + document.documentElement.className += + " js-hasFontsLoaded"; + } + Cookies.set("fonts_loaded", true); + }) + .catch((err) => { + console.log("Error!", err); + }); // Lazy-Load Media if (typeof loadMedia === "function") { @@ -76,5 +80,5 @@ }); }, 1); }); -})(); +}; // @license-end diff --git a/src/assets/styles/fonts.css b/src/assets/styles/fonts.css index f1035bc..82dde8d 100644 --- a/src/assets/styles/fonts.css +++ b/src/assets/styles/fonts.css @@ -1,43 +1,49 @@ @font-face { - font-family: 'exo_2'; - src: url('/files/fonts/Exo2-Regular-webfont.eot'); - src: url('/files/fonts/Exo2-Regular-webfont.eot?#iefix') format('embedded-opentype'), - url('/files/fonts/Exo2-Regular-webfont.woff') format('woff'), - url('/files/fonts/Exo2-Regular-webfont.ttf') format('truetype'), - url('/files/fonts/Exo2-Regular-webfont.svg#exo_2') format('svg'); - font-weight: 400; - font-style: normal; + font-family: "raleway"; + src: url("/fonts/raleway/raleway-regular-webfont.woff2") format("woff2"), + url("/fonts/raleway/raleway-regular-webfont.woff") format("woff"), + url("/fonts/raleway/raleway-regular-webfont.ttf") format("truetype"), + url("/fonts/raleway/raleway-regular-webfont.eot"); + font-weight: 400; + font-style: normal; } @font-face { - font-family: 'exo_2'; - src: url('/files/fonts/Exo2-Italic-webfont.eot'); - src: url('/files/fonts/Exo2-Italic-webfont.eot?#iefix') format('embedded-opentype'), - url('/files/fonts/Exo2-Italic-webfont.woff') format('woff'), - url('/files/fonts/Exo2-Italic-webfont.ttf') format('truetype'), - url('/files/fonts/Exo2-Italic-webfont.svg#exo_2') format('svg'); - font-weight: 400; - font-style: italic; + font-family: "raleway"; + src: url("/fonts/raleway/raleway-italic-webfont.woff2") format("woff2"), + url("/fonts/raleway/raleway-italic-webfont.woff") format("woff"), + url("/fonts/raleway/raleway-italic-webfont.ttf") format("truetype"), + url("/fonts/raleway/raleway-italic-webfont.eot"); + font-weight: 400; + font-style: italic; } @font-face { - font-family: 'exo_2'; - src: url('Exo2-Bold-webfont.eot'); - src: url('Exo2-Bold-webfont.eot?#iefix') format('embedded-opentype'), - url('Exo2-Bold-webfont.woff') format('woff'), - url('Exo2-Bold-webfont.ttf') format('truetype'), - url('Exo2-Bold-webfont.svg#exo_2') format('svg'); - font-weight: 600; - font-style: normal; + font-family: "raleway"; + src: url("/fonts/raleway/raleway-bold-webfont.woff2") format("woff2"), + url("/fonts/raleway/raleway-bold-webfont.woff") format("woff"), + url("/fonts/raleway/raleway-bold-webfont.ttf") format("truetype"), + url("/fonts/raleway/raleway-bold-webfont.eot"); + font-weight: 700; + font-style: normal; } @font-face { - font-family: 'exo_2'; - src: url('Exo2-BoldItalic-webfont.eot'); - src: url('Exo2-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), - url('Exo2-BoldItalic-webfont.woff') format('woff'), - url('Exo2-BoldItalic-webfont.ttf') format('truetype'), - url('Exo2-BoldItalic-webfont.svg#exo_2') format('svg'); - font-weight: 600; - font-style: italic; + font-family: "raleway"; + src: url("/fonts/raleway/raleway-bolditalic-webfont.woff2") format("woff2"), + url("/fonts/raleway/raleway-bolditalic-webfont.woff") format("woff"), + url("/fonts/raleway/raleway-bolditalic-webfont.ttf") format("truetype"), + url("/fonts/raleway/raleway-bolditalic-webfont.eot"); + font-weight: 700; + font-style: italic; +} + +@font-face { + font-family: "unbounded"; + src: url("/fonts/unbounded/unbounded-medium-webfont.woff2") format("woff2"), + url("/fonts/unbounded/unbounded-medium-webfont.woff") format("woff"), + url("/fonts/unbounded/unbounded-medium-webfont.ttf") format("truetype"), + url("/fonts/unbounded/unbounded-medium-webfont.eot"); + font-weight: 500; + font-style: normal; } diff --git a/src/assets/styles/styles.css b/src/assets/styles/styles.css index bbd2c99..9d0f07f 100644 --- a/src/assets/styles/styles.css +++ b/src/assets/styles/styles.css @@ -28,6 +28,9 @@ other: #E8A384 */ +html { + font-size: 16px; +} body { background: #252837; /* Old browsers */ background: url("/images/portal-header.jpg") top fixed; @@ -156,10 +159,6 @@ li ul { margin-top: 0.6em; } -main { - font-size: 0.95em; -} - main img { max-width: 100%; } @@ -247,7 +246,7 @@ table th { border-bottom: none; display: block; margin: 0 auto; - max-width: 60em; + max-width: 100%; min-height: 100vh; padding: 0; position: relative; @@ -295,79 +294,6 @@ table th { font-weight: bold; } -.anaCardImg { - height: auto; - margin: 0; - vertical-align: middle; - width: 100%; -} - -.anaCardLink { - display: block; - margin: 0 auto; - max-width: 15em; - padding: 0.5em; -} - -.anaLink-billy { - background: url("/images/anachronism/links/billy_the_kid.jpg") no-repeat - center; - background-size: cover; -} - -.anaLink-constitution { - background: url("/images/anachronism/links/the_us_constitution.jpg") - no-repeat center; - background-size: cover; -} - -.anaLink-dictator { - background: url("/images/anachronism/links/the_dictator.jpg") no-repeat - center; - background-size: cover; -} - -.anaLink-earp { - background: url("/images/anachronism/links/wyatt_earp.jpg") no-repeat center; - background-size: cover; -} - -.anaLink-grant { - background: url("/images/anachronism/links/ulysses_s_grant.jpg") no-repeat - center; - background-size: cover; -} - -.anaLink-lee { - background: url("/images/anachronism/links/robert_e_lee.jpg") no-repeat - center; - background-size: cover; -} - -.anaLink-lincoln { - background: url("/images/anachronism/links/abraham_lincoln.jpg") no-repeat - center; - background-size: cover; -} - -.anaLink-stetson { - background: url("/images/anachronism/links/stetson_hat.jpg") no-repeat - center; - background-size: cover; -} - -.anaLink-washington { - background: url("/images/anachronism/links/george_washington.jpg") no-repeat - center; - background-size: cover; -} - -.anaLogo { - display: block; - margin: 0 auto 1em; - width: 100%; -} - .asideBio { line-height: 1.35em; padding: 0.5em; @@ -738,6 +664,7 @@ table th { position: relative; text-decoration: none; transition-duration: 0.5s; + white-space: nowrap; } .navMenu li.hasSubMenu:hover, @@ -782,7 +709,6 @@ table th { align-items: stretch; opacity: 1; visibility: visible; - white-space: nowrap; } .navMenu ul li ul li { @@ -1025,18 +951,41 @@ table th { font-size: 1.75em; } +/* .searchBox { margin-left: auto; white-space: nowrap; } +*/ +.searchBox { + position: absolute; + top: 0; + right: 0; + padding: 1rem; + width: 100%; + text-align: right; +} .searchBox-query { background-color: #3d81a5; border-radius: 0.3rem; - color: #000; + color: #fff; width: 10em; } +.sectionBackLink { + border: 1px solid #726f6a; + border-radius: 0.3em; + display: inline-block; + margin: 1em auto; + padding: 0.25em; + text-align: center; +} + +.sectionBackLink-wrapper { + text-align: center; +} + .siteTitle { text-align: center; width: 100%; @@ -1072,7 +1021,6 @@ table th { .siteTitle-text { max-width: 48rem; - text-align: left; } .spellTable { @@ -1241,10 +1189,6 @@ a.pageTitle-link:visited { display: none; } -.asideUpdates .reacji { - float: left; -} - .feature hr { border: 1px 0 0 0; border-color: #7c4c52; @@ -1253,8 +1197,24 @@ a.pageTitle-link:visited { max-width: 90%; } -.js-hasFontsLoaded body { - font-family: "Exo 2", sans-serif; +body { + font-family: "raleway", "Optima", arial, helvetica, sans-serif; +} + +h1, +h1 a, +h2, +h2 a, +h3, +h3 a, +h4, +h4 a, +h5, +h5 a, +h6, +h6 a { + font-family: "unbounded", "Luminari", impact, arial, helvetica, sans-serif; + font-weight: 500; } .pageMenu-link.isCurrent .pageMenu-text { @@ -1305,8 +1265,31 @@ a.pageTitle-link:visited { * Media Queries ****************************************************************************/ -/* Mobile */ -@media all and (max-width: 1000px) { +@media all and (min-width: 960px) { + html { + font-size: 18px; + } + + .page { + max-width: 960px; + } +} +ampaign/shazz-journals @media all and (max-width: 960px) { + h1 { + font-size: 1.5em; + } + h2 { + font-size: 1.3em; + } + + h3 { + font-size: 1.2em; + } + + h1 svg { + scale: 0.75; + } + .menubar { max-height: 1px; } @@ -1361,6 +1344,12 @@ a.pageTitle-link:visited { top: 8px; } + /* Prevents close toggle from scrolling offscreen */ + #menu__toggle:checked + .menu__btn { + position: fixed; + top: 1rem; + } + .navMenu { background: #252837; display: flex; @@ -1369,17 +1358,19 @@ a.pageTitle-link:visited { left: -100%; height: 100%; margin: 0; - padding: 0 2rem 0 4rem; + padding: 0; box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.4); transition-duration: 0.25s; flex-direction: column; - overflow-y: auto; } .navMenu ul { flex-direction: column; } + .navMenu > ul { + padding: 1rem 2rem 1rem 4rem; + overflow-y: auto; + } .navMenu > ul > li { - margin-left: -1rem; margin-top: 1rem; } .navMenu > ul > li > a { @@ -1400,84 +1391,58 @@ a.pageTitle-link:visited { position: relative; visibility: visible; } - .searchBox { - margin: 1rem 0 2rem; + .siteTitle-text { + max-width: 60%; + } +} + +/* +@media all and (max-width: 900px) { + html { + font-size: 14px; + } + h1 { + font-size: 1.5em; + } + h2 { + font-size: 1.3em; } - .siteTitle { + h3 { + font-size: 1.2em; + } + + h1 svg { + scale: 0.75; + } + + .siteTitle-text { + max-width: 60%; + } +} +*/ + +@media all and (max-width: 600px) { + h1 { margin-top: 3rem; } -} -@media all and (min-width: 38em) { - .navMenu { - padding: 0 0.25rem; - } - - .navMenu-list { - float: left; + .siteTitle-text { text-align: left; } +} - .navMenu-list-item { - margin-left: 0.75em; +@media all and (max-width: 320px) { + nav { + max-width: 90%; } +} +@media all and (min-width: 1000px) { + .menubar { + position: relative; + } .searchBox { - float: right; - margin-right: 0.75em; - } -} - -@media all and (min-width: 34em) { - .magic-commander-img { - float: right; - } -} - -@media all and (min-width: 52em) { - body { - font-size: 1.1em; - } -} - -@media all and (min-width: 70em) { - .asideContent { - background: #1a0608; - background: rgba(4, 3, 8, 0.9); - border: 1px solid #252837; - font-size: 0.8em; - position: absolute; - top: 5em; - } - - .asideLeft { - left: -14em; - width: 14em; - } - - .asideMenu-divider { - display: none; - } - - .asideRight { - right: -15em; - width: 15em; - } - - .asideRight .asideMenu-link { - max-width: 13em; - } - - .postMainIndex .feedLine:last-child { - display: block; - } - - .postMenu { - max-height: none; - } - - .socialList-item { - display: inherit; + top: -3rem; } } diff --git a/src/layouts/default.ejs b/src/layouts/default.ejs index 5cd4831..412bc98 100644 --- a/src/layouts/default.ejs +++ b/src/layouts/default.ejs @@ -28,6 +28,8 @@ <%- content %> + <%- include('partials/backLink') %> + <% } -%>
diff --git a/src/layouts/partials/backLink.ejs b/src/layouts/partials/backLink.ejs new file mode 100644 index 0000000..3acad6e --- /dev/null +++ b/src/layouts/partials/backLink.ejs @@ -0,0 +1,33 @@ +<% +var titlesBySection = { + // top-level + astral: "Astral Info", + campaign: "Campaign Info", + classes: "Character Classes", + "magic-items": "Magic Items", + planes: "Other Planes", + races: "Character Races", + rules: "House Rules", + + // planes + elemental: "Elemental Planes", + material: "Material Planes", + transcendental: "Transcendental Planes", + +}; +%> + +<% if (page.subsection && page.path && !page.path.endsWith(`${page.subsection}/index.html`)) { %> + +<% } else if (page.section && page.path && !page.path.endsWith(`${page.section}/index.html`)) { -%> + +<% } -%> + diff --git a/src/layouts/partials/bottom.ejs b/src/layouts/partials/bottom.ejs index 4a6f143..a38b2ac 100644 --- a/src/layouts/partials/bottom.ejs +++ b/src/layouts/partials/bottom.ejs @@ -9,7 +9,11 @@ - + diff --git a/src/layouts/partials/footer.ejs b/src/layouts/partials/footer.ejs index 56e928a..82e803d 100644 --- a/src/layouts/partials/footer.ejs +++ b/src/layouts/partials/footer.ejs @@ -39,8 +39,11 @@ - - +

+ Fonts: Unbounded by NaN and + Raleway by Matt McInerney, Pablo Impallari, and Rodrigo Fuenzalida; + both used under the SIL Open Font License, Version 1.1. +

Background image by AlanFrijns / Pixabay, used under the Pixabay License.

diff --git a/src/layouts/partials/navmain.ejs b/src/layouts/partials/navmain.ejs index 318423c..9fc254a 100644 --- a/src/layouts/partials/navmain.ejs +++ b/src/layouts/partials/navmain.ejs @@ -7,6 +7,18 @@ + +
diff --git a/src/layouts/partials/top.ejs b/src/layouts/partials/top.ejs index 1c9c59d..ffd4d18 100644 --- a/src/layouts/partials/top.ejs +++ b/src/layouts/partials/top.ejs @@ -21,26 +21,26 @@ <%= page.title ? page.title + ' | ' : ''%><%= page.sub_title ? page.sub_title + ' | ' : ''%><%= site.title %> - + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/src/pages/classes/bloodmage.md b/src/pages/classes/bloodmage.md new file mode 100644 index 0000000..ddeb1c5 --- /dev/null +++ b/src/pages/classes/bloodmage.md @@ -0,0 +1,87 @@ +--- +title: Bloodmage +description: The Bloodmage class for Old School Essentials. +date_pub: 2023-02-26T17:46:00-05:00 +section: classes +content_type: feature +short_code: cw1 +--- + +
+ +| | | +| ------------------- | --------------------------------------------- | +| **Requirements** | None | +| **Prime requisite** | INT | +| **Hit Dice** | 1d6 | +| **Maximum Level** | 14 | +| **Armour** | Leather, no shields | +| **Weapons** | One-handed melee weapons, all missile weapons | +| **Languages** | Alignment, Common | + +
+ +Bloodmages are arcane spellcasters that use their own life force, rather than their memories, to cast spells. + +[[toc]] + +### Arcane Magic + +See [Spells](https://oldschoolessentials.necroticgnome.com/srd/index.php/Spells) for full details on arcane magic. + +**Magical research**: A bloodmage of any level may spend time and money on magical research. This allows them to add new spells to their spell book and to research other magical effects. When a bloodmage reaches 9th level, they are also able to create magic items. + +**Spell books**: Bloodmages carry spell books containing the formulae for arcane spells. The number of spells in a bloodmage’s spell book is equal to the character’s experience level, and the spell casting chart (below) shows the maximum spell level a bloodmage can have in their spellbook Thus, a 1st level bloodmage has one spell in their spell book, selected by the referee (who may allow the player to choose). The list of spells available to bloodmages is found in [Magic-User Spells](https://oldschoolessentials.necroticgnome.com/srd/index.php/Magic-User_Spells). + +**Spell casting**: Bloodmages cast spells by shedding blood, rather than by memorizing. To cast a spell, a bloodmage must sacrifice one of their own HP per level of the spell being cast. + +**Using magic items**: As spell casters, bloodmages are able to use magic scrolls of spells on their spell list. They can also use items that may only be used by arcane spell casters (e.g. magic wands). + +### Combat + +Bloodmages are capable warriors as well as spellcasters, but they need freedom of movement for spellcasting. For this reason, they can use any melee weapon that can be wielded one handed, and can use all missile weapons, but can only wear leather armour, and are unable use shields. + +### Healing + +Bloodmages can make animal sacrifices to heal. The victims should be intelligent or magical creatures (although mundane animals can be used at the referee's discretion). To heal, the bloodmage must slay the intended sacrifice with a dagger or other bladed weapon. A sacrifice will restore a number of HP equal to the victim's HD. Creatures that are particularly innocent, powerful, or dear to the caster will produce increasingly better results (details to be left to the referee). + +Alternatively, the referee may roll 1d6 for each fallen enemy, with a roll of 1 indicating that they are still alive and thus eligible to be sacrificed by the bloodmage. + +### After Reaching 11th Level + +A bloodmage may establish a stronghold, often in a cave or similar structure. 1d6 apprentices of levels 1–3 will then arrive to study under the bloodmage. + +### Bloodmage Level Progression + +
+ +| |||| Saving Throws |||||| +| Level | XP | HD | THAC0 | D[^1] | W[^1] | P[^1] | B[^1] | S[^1] | Max Spell Level | +| :---: | :-------: | :-------: | :-----: | :---: | :---: | :---: | :---: | :---: | :-: | +| 1 | 0 | 1d6 | 19 [0] | 13 | 14 | 13 | 16 | 15 | 1 | +| 2 | 2,500 | 2d6 | 19 [0] | 13 | 14 | 13 | 16 | 15 | 1 | +| 3 | 5,000 | 3d6 | 19 [0] | 13 | 14 | 13 | 16 | 15 | 2 | +| 4 | 10,000 | 4d6 | 19 [0] | 13 | 14 | 13 | 16 | 15 | 2 | +| 5 | 20,000 | 5d6 | 17 [+2] | 13 | 14 | 13 | 16 | 15 | 3 | +| 6 | 40,000 | 6d6 | 17 [+2] | 11 | 12 | 11 | 14 | 12 | 3 | +| 7 | 80,000 | 7d6 | 17 [+2] | 11 | 12 | 11 | 14 | 12 | 4 | +| 8 | 150,000 | 8d6 | 17 [+2] | 11 | 12 | 11 | 14 | 12 | 4 | +| 9 | 300,000 | 9d6 | 14 [+5] | 11 | 12 | 11 | 14 | 12 | 5 | +| 10 | 450,000 | 9d6+1[^2] | 14 [+5] | 11 | 12 | 11 | 14 | 12 | 5 | +| 11 | 600,000 | 9d6+2[^2] | 14 [+5] | 8 | 9 | 8 | 11 | 8 | 6 | +| 12 | 750,000 | 9d6+3[^2] | 14 [+5] | 8 | 9 | 8 | 11 | 8 | 6 | +| 13 | 900,000 | 9d6+4[^2] | 12 [+7] | 8 | 9 | 8 | 11 | 8 | 6 | +| 14 | 1,050,000 | 9d6+5[^2] | 12 [+7] | 8 | 9 | 8 | 11 | 8 | 6 | + +[Bloodmage Level Progression] + +
+ +[^1]: D: Death / poison; W: Wands; P: Paralysis / petrify; B: Breath attacks; S: Spells / rods / staves. +[^2]: [Modifiers from CON](https://oldschoolessentials.necroticgnome.com/srd/index.php/Ability_Scores#Constitution_.28CON.29) no longer apply. + +### Available Races and Max Level + +When using the optional Character races rule, any race that may be a magic-user may also be a Bloodmage, and may advance to the same maximum level listed for the magic-user class (unless otherwise noted). + +Adapted from _[Alternate Magic](https://www.drivethrurpg.com/product/397412/Alternate-Magic-OSR)_ by [Eric Diaz](http://methodsetmadness.blogspot.com/) diff --git a/src/pages/classes/index.md b/src/pages/classes/index.md index ff25a10..4cb2974 100644 --- a/src/pages/classes/index.md +++ b/src/pages/classes/index.md @@ -1,23 +1,26 @@ --- title: Custom Character Classes -description: TBD +description: Some unofficial characters classes for OSE. date_pub: 2023-02-17T00:15:00-05:00 section: classes content_type: feature short_code: c1 --- -- [Automaton](./automaton.html) -- [Corsair](./corsair.html) -- [Corsair, Astral](./astral-corsair.html) -- [Dracokin](./dracokin.html) -- [Felinar](./felinar.html) -- [Firfolk](./firfolk.html) -- [Mimikin](./mimikin.html) -- [Tortokin](./tortokin.html) -- [Warlock](./warlock.html) +Below, you'll find some unofficial character classes for Old School Essentials. Most are only minimally tested (if at all), and some may need a bit of tweaking, but you can't beat the price! + +- [Automaton](./automaton.html) - Mechanical beings powered by ancient, arcane magicks. +- [Corsair](./corsair.html) - A sailor living a life of adventure on the high seas. +- [Corsair, Astral](./astral-corsair.html) - A sailor living a life of adventure on the [astral plane](/astral) +- [Dracokin](./dracokin.html) - Lizardfolk with distant relations dragons. +- [Felinar](./felinar.html) - A race of anthropomorphic, catlike beings. +- [Firfolk](./firfolk.html) - Magical, gray half-giants that live in harmony with nature. +- [Mimikin](./mimikin.html) - A race of demihumans able to shift their physical forms at will. +- [Tortokin](./tortokin.html) - Anthropomorphic, upright turtles. +- [Warlock](./warlock.html) - Spellcasters that gain access to magic by making pacts with powerful, otherworldly beings diff --git a/src/pages/classes/kineticist-powers.md b/src/pages/classes/kineticist-powers.md new file mode 100644 index 0000000..dcb2a85 --- /dev/null +++ b/src/pages/classes/kineticist-powers.md @@ -0,0 +1,147 @@ +## Additional Kineticist Mental Powers + +_The Kineticist_ class by Gavin Norman (as presented in issue #1 of [Carcass Crawler](https://www.drivethrurpg.com/product/367602/Carcass-Crawler-Issue-One)) offers a unique take on the classic "monk" or "mystic" class. I particularly like the way their "mental powers" work - although the ones in the zine seem to be designed to replicate the abilities of the classic class (as is the OSE way), there's nothing to prevent one from adding new powers to increase the build possibilities for that class. In my mind, based on the powers learned, a Kineticist could be anything from a powerful psychic to a supernatural tournament fighter, or even a superhero. + +### Enlargement + +**Duration: Focus, up to 1 round per level** +**Range: The kineticist** + +The kineticist’s body, clothing, and armour (but not other equipment) double in size for the duration. +**Focus**: This power requires the kineticist to concentrate for one round to activate. Being distracted (e.g. attacked) or performing any other action (except moving) during this focus round causes the power to end. +**Melee**: While enlarged, the kineticist’s melee attacks inflict double damage. + + + +### Freeze + +**Duration: Up to 1 round per level** +**Range: 30’** + +The kineticist subjects a creature or object within sight to an icy cold, literally freezing them in place. +**Stun**: The target is unable to move or act unless they **save versus paralysis**. They may make a save each round that they are paralyzed, and once a save has been made, the effect ends. + + + +### Healing Trance + +**Duration: 1 turn** +**Range: The kineticist** + +The kineticist can enter a meditative state for the duration, during which time they are completely unaware of their surroundings and can neither attack nor defend themselves. +**Healing**: The trance heals 1d6+1 hit points per use (2d6+2 hit points per use at 6th level or higher). + +### Heat + +**Duration: Focus, up to 1 round per level** +**Range: Sight** + +The kineticist subjects a creature or object within sight to a scorching heat. +**Targetted creatures**: May **save versus spells** to prevent damages. +**Envrionmental Effect**: Paper or cloth ignite, liquids boil, and metals glow. +**Damage**: Applied to flesh or to metal in contact with a creature (e.g. armour), the heat inflicts 1d4 damage per round. +--> + +### Invisibility + +**Duration: Concentration, up to 1 round per level** +**Range: The kineticist** + +The kineticist disappears from the sight of one or more creatures (selected when the power is activated) for the duration. +**Effect**: Up to 1HD of creatures per level of the kineticist are affected. +**Combat**: Affected creatures may attack the kineticist with a –4 penalty. +**Concentration**: Being distracted (e.g. attacked) or performing any other action (except moving) causes the power to end. + +### Kinetic Blast + +**Duration: Instant** +**Range: 10’ per level** + +A blast of kinetic energy surges from the kineticist’s hand at a single target in range. +**Hit**: The target must **save vs spells** to avoid being hit. +**If the save fails**: The target suffers 2d4 damage. + +### Kinetic Pull + +**Duration: Instant** +**Range: 10’ per level** + +A wave of kinetic force surges from the kineticist’s hand at a single target in range, grabbing them, and pulling them towards the kineticist. +**Pull**: The target must save vs paralysis or be grabbed by the kinetic force. +**If the save fails**: The target suffers 1d6 damage and is pulled towards the kineticist, stopping at any space of the kineticist's choosing in between. + +### Kinetic Transmission + +**Duration: Instant** +**Range: 30'** + +The kineticist instantly teleports to any location they can see within range. + +### Life Drain + +**Duration: Concentration, 1 round** +**Range: Touch** + +The kineticist draws vital energy out of a living target that they are in physical contact with, absorbing the target's life force. This dark ability is usually forbidden for lawful kineticists. +**Damage**: The target must **save vs spells** or suffer 1d4 points of damage. +**Absorb**: The kineticist gains a number of hit points equal to the damage inflicted. +**Concentration**: Being distracted (e.g. attacked) or performing any other action (except moving) causes the power to end. + +### Mind Shield + +**Duration: Focus, 2 turns** +**Range: The kineticist** + +The kineticist can shield their mind for a period of time up to the duration. +**Focus**: This power requires the kineticist to concentrate for one round to activate. Being distracted (e.g. attacked) or performing any other action (except moving) during this focus round causes the power to end. +**Protection**: The kineticist gets a +4 bonus to any saving throws to resist the effects of mental powers and mind-affecting spells and magic items. + +### Psychic Blast + +**Duration: Instant** +**Range: 10’ per level** + +A blast of psychic energy surges from the kineticist at a single target in range. +**Hit**: The target must save vs spells to avoid being hit. +**If the save fails**: The target suffers 2d4 damage. + +### Shrinking + +**Duration: Focus, up to 2 turns** +**Range: The kineticist** + +The kineticist and all equipment shrinks to 6” tall for the duration. +**Focus**: This power requires the kinetcist to concentrate for one round to activate. Being distracted (e.g. attacked) or performing any other action (except moving) during this focus round causes the power to end. +**Tiny Size**: While shrunk, the kineticist can slip through narrow spaces and, when remaining motionless, has a 90% chance of going unnoticed. A shrunk kineticist cannot harm creatures larger than 1’ tall. + +### Telepathy + +**Duration: Focus, 1 turn** +**Range: Sight** + +The kineticist can establish bidirectional mental communication with one other willing, living, intelligent creature within range for the duration. +**Focus**: This power requires the kineticist to concentrate for one round to activate. Being distracted (e.g. attacked) or performing any other action (except moving) during this focus round causes the power to end. +**Language**: The creature need not share a language with the kineticist. + + diff --git a/src/pages/classes/mimikin.md b/src/pages/classes/mimikin.md index 044aeb0..0ec3f42 100644 --- a/src/pages/classes/mimikin.md +++ b/src/pages/classes/mimikin.md @@ -17,7 +17,7 @@ short_code: cm1 | **Weapons** | Any | | **Languages** | Alignment, Common, any 2 other languages | -Mimikin are a rarely-seen type of demihuman, able to shift their physical forms at will. Human-like in stature, their true forms usually have naturally pale, grey skin, unnervingly blank facial features, and silvery hair. However, because of their shapeshifting nature, they usuallly pass as humans or other similarly-sized demihumans, only returning to their true forms on death. +Mimikin are a rarely-seen type of demihuman, able to shift their physical forms at will. Usually human-like in stature, their true forms usually have naturally pale, grey skin, unnervingly blank facial features, and silvery hair. However, because of their shapeshifting nature, they usuallly pass as humans or other similarly-sized demihumans, only returning to their true forms on death. Many mimikin use their gifts as a form of artistic or emotional expression, but some see them as invaluable tools for grifting, spying, and general deception, leading to their distrust by the other races. diff --git a/src/pages/index.md b/src/pages/index.md index fa08ebd..70db869 100644 --- a/src/pages/index.md +++ b/src/pages/index.md @@ -1,5 +1,5 @@ --- -title: Welcome to the Multiverse! +title: description: TBD date_pub: 2023-02-15T00:26:00-05:00 section: main @@ -9,7 +9,7 @@ short_code: m1 My name is Drogo Wanderfoot, but most know me as the Planar Vagabond. -I've spent decades wandering around the vast multiverse, collecting stories, ... +I've spent decades wandering around the vast multiverse, collecting stories and hearing about others adventures... And now, I'm presenting them to you! diff --git a/src/pages/magic-items/astral-compass.md b/src/pages/magic-items/astral-compass.md index 9c271e0..85e0632 100644 --- a/src/pages/magic-items/astral-compass.md +++ b/src/pages/magic-items/astral-compass.md @@ -1,6 +1,6 @@ --- title: Astral Compass -description: +description: A magical device for navigating to a desired location on the astral plane. date_pub: 2023-02-19T18:46:00-05:00 section: magic items content_type: feature @@ -18,4 +18,5 @@ A 1.5" diameter, golden medallion, etched with 4 lines (marking the 4 cardinal d diff --git a/src/pages/magic-items/crystal-skull-of-jund.md b/src/pages/magic-items/crystal-skull-of-jund.md index 686cf3a..2e342e0 100644 --- a/src/pages/magic-items/crystal-skull-of-jund.md +++ b/src/pages/magic-items/crystal-skull-of-jund.md @@ -1,6 +1,6 @@ --- title: The Crystal Skull of Jund -description: +description: A magical, elongated, and (apparently) nearly omniscient crystal skull. date_pub: 2023-02-19T20:59:00-05:00 section: magic items content_type: feature diff --git a/src/pages/magic-items/index.md b/src/pages/magic-items/index.md index f0dfe71..1c6d1fd 100644 --- a/src/pages/magic-items/index.md +++ b/src/pages/magic-items/index.md @@ -9,8 +9,11 @@ short_code: mi1 Below you'll find a small sampling of the magic items that can be encountered in the astral plane. -- [Astral Compass](./astral-compass.html) -- [The Crystal Skull of Jund](./crystal-skull-of-jund.html) +- [Astral Compass](./astral-compass.html) - A magical device for navigating to a desired location on the astral plane. +- [The Crystal Skull of Jund](./crystal-skull-of-jund.html) - A magical, elongated, and (apparently) nearly omniscient crystal skull. +- [Pet Rock](./pet-rock.html) - A magical rock that obeys its owner's commands. +- [Ring of Eldritch Blasting](./ring-of-eldritch-blasting.html) - A magical ring that grants the wearer the ability to fire eldritch blasts. +- [Tyrhung, Wolf Hunter](./tyrhung-wolf-hunter.html) - A magical sword that specializes in identifying and killing lycanthropes. diff --git a/src/pages/planes/infernus.md b/src/pages/planes/transcendental/infernus.md similarity index 99% rename from src/pages/planes/infernus.md rename to src/pages/planes/transcendental/infernus.md index e7c29a7..af6a1fd 100644 --- a/src/pages/planes/infernus.md +++ b/src/pages/planes/transcendental/infernus.md @@ -3,6 +3,7 @@ title: Infernus description: A brief description of Infernus, the plane of Unwanted Dead. date_pub: 2023-02-19T17:17:00-05:00 section: planes +subsection: transcendental content_type: feature short_code: pi1 ---