Basic character generator with all races, archetypes, careers, and adventuring companies from the FMF Core Rules.

This commit is contained in:
Yord 2015-09-25 14:47:23 +02:00
parent 69ef1c4b7b
commit 212898aa5f
11 changed files with 3088 additions and 3259 deletions

3
.gitignore vendored
View file

@ -30,6 +30,7 @@ _site
Makefile
_posts/0000-01-01-Todo.html
_posts/0000-01-01-Example-Markup.html
_posts/0000-01-01-Old-Character-Sheets.html
README.md
_posts/Careers
_posts/Combat-Tool
@ -37,4 +38,4 @@ _posts/Adventures
_posts/Adventure-Generator
_posts/Character-Bootstrap
static/javascripts/combat.js
static/javascripts/character-bootstrap.js
static/javascripts/character-bootstrap.js

View file

@ -2,11 +2,11 @@
<html manifest="/ikrpg.appcache">
<head>
<meta charset="UTF-8" />
<!--meta name="viewport" content="width=device-width;" /-->
<title>{{ page.title }}</title>
<meta name="description" content="Unofficial Iron Kingdoms Role Playing Game (IKRPG) Resources: IKRPG content index and character sheets." />
<link rel="stylesheet" href="/static/stylesheets/index.css" />
<link rel="stylesheet" href="/static/stylesheets/content/datatables.css" />
<!--script src="/static/javascripts/expandable.js"></script>
<script src="/static/javascripts/opaquable.js"></script>
<script src="/static/javascripts/resizable.js"></script-->
@ -15,13 +15,47 @@
<script type="text/javascript" src="//cdn.datatables.net/1.10.0/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="//cdn.datatables.net/fixedheader/2.1.1/js/dataTables.fixedHeader.min.js"></script>
<script type="text/javascript" src="/static/javascripts/lz-string-1.3.3-min.js"></script>
<!--script src="//cdn.jsdelivr.net/pouchdb/3.3.1/pouchdb.min.js"></script-->
<script type="text/javascript" src="/static/javascripts/pouchdb-3.3.1.min.js"></script>
<script type="text/javascript">
var db = new PouchDB('ikrpg');
</script>
</head>
<body>
<script type="text/javascript">
function changeBackground(imageName, topX) {
$("body").css('background-image', 'url('+imageName+')');
$("body").css('background-position', '50% '+topX+'px');
$("#head").css('background-image', 'url('+imageName+')');
$("#head").css('background-position', '50% '+(topX-66)+'px');
$("#foot > div.banner").css('background-image', 'url('+imageName+')');
}
function setBackground(imageName, topX) {
changeBackground(imageName, topX);
db.get("bg", function(error, bg) {
if(!error) {
bg.name = imageName;
bg.topX = topX;
db.put(bg);
}
});
}
$(function() {
db.get("bg", function(error, bg) {
if(error) {
bg = {
_id: "bg",
name: "/static/images/bg-FMF.jpg",
topX: -370
};
db.put(bg);
}
changeBackground(bg.name, bg.topX);
});
});
</script>
<article itemscope itemtype="http://schema.org/Article">
<nav id="menu">
<ol>
@ -59,43 +93,8 @@
}
})();
</script>
<script type="text/javascript">
function changeBackground(imageName, topX) {
$("body").css('background-image', 'url('+imageName+')');
$("body").css('background-position', '50% '+topX+'px');
$("#head").css('background-image', 'url('+imageName+')');
$("#head").css('background-position', '50% '+(topX-66)+'px');
$("#foot > div.banner").css('background-image', 'url('+imageName+')');
}
function setBackground(imageName, topX) {
changeBackground(imageName, topX);
db.get("bg", function(error, bg) {
if(!error) {
bg.name = imageName;
bg.topX = topX;
db.put(bg);
}
});
}
$(function() {
db.get("bg", function(error, bg) {
if(error) {
bg = {
_id: "bg",
name: "/static/images/bg-FMF.jpg",
topX: -370
};
db.put(bg);
}
changeBackground(bg.name, bg.topX);
});
});
</script>
<script type="text/disabled">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

204
ikrpg.appcache Normal file
View file

@ -0,0 +1,204 @@
CACHE MANIFEST
# 2015-09-20 13:01
CACHE:
# Front site
/
# Character Cards
/Character/
/Characters/
/Character-Cards/
# Character Sheets
/Character-Sheets/
# Character Generator
/Character-Generator/
# Moons of Caen Tool
/Constellations/
# Index
/Index/
/index/Ability-Index/
/index/Adventure-and-Encounter-Index/
/index/Adventuring-Company-Index/
/index/Alchemy-Index/
/index/Archetype-Index/
/index/Career-Index/
/index/Disease-Index/
/index/Equipment-Index/
/index/Individuals-Index/
/index/Mechanika-Index/
/index/Monster-Index/
/index/Monsternomicon-Index/
/index/Organization-Index/
/index/Race-Index/
/index/Skill-Index/
/index/Spell-Index/
/index/Steamjack-Index/
/index/Thrall-Index/
# Index by Category
/index/category/Ability/
/index/category/Adventure/
/index/category/Alchemy/
/index/category/Armory/
/index/category/Character-Creation/
/index/category/Disease/
/index/category/Equipment/
/index/category/Geography/
/index/category/Individual/
/index/category/Mechanika/
/index/category/Monster/
/index/category/Monsternomicon/
/index/category/Organization/
/index/category/Orgoth-Relic/
/index/category/Skill/
/index/category/Spell/
/index/category/Steamjack/
/index/category/Survival/
/index/category/Thrall/
/index/category/Vehicle/
/index/category/Warbeast/
# Index by Publication
/index/publication/Bad-Moon-Rising/
/index/publication/Bitter-Medicine/
/index/publication/Core-Rules/
/index/publication/Core-Rules-Bestiary-Expanded/
/index/publication/Errata/
/index/publication/Fools-Rush-In/
/index/publication/Full-Metal-Fridays-1-1-1/
/index/publication/Full-Metal-Fridays-1-1-2/
/index/publication/Full-Metal-Fridays-1-1-3/
/index/publication/Full-Metal-Fridays-1-1-4/
/index/publication/Full-Metal-Fridays-1-2-1/
/index/publication/Full-Metal-Fridays-1-2-2/
/index/publication/Full-Metal-Fridays-1-2-3/
/index/publication/Full-Metal-Fridays-1-2-4/
/index/publication/Full-Metal-Fridays-1-3-1/
/index/publication/Full-Metal-Fridays-1-3-2/
/index/publication/Full-Metal-Fridays-1-3-3/
/index/publication/Full-Metal-Fridays-1-3-4/
/index/publication/Full-Metal-Fridays-1-4-1/
/index/publication/Full-Metal-Fridays-1-4-2/
/index/publication/Full-Metal-Fridays-1-4-3/
/index/publication/Full-Metal-Fridays-1-4-4/
/index/publication/Full-Metal-Fridays-1-5-1/
/index/publication/Full-Metal-Fridays-1-5-2/
/index/publication/Full-Metal-Fridays-1-5-3/
/index/publication/Full-Metal-Fridays-1-5-4/
/index/publication/Fridays-Unleashed-1-9-2105/
/index/publication/Fridays-Unleashed-1-16-2014/
/index/publication/Fridays-Unleashed-1-23-2105/
/index/publication/Fridays-Unleashed-1-30-2015/
/index/publication/Fridays-Unleashed-2-13-2015/
/index/publication/Fridays-Unleashed-2-20-2015/
/index/publication/Fridays-Unleashed-3-6-2015/
/index/publication/Fridays-Unleashed-3-20-2015/
/index/publication/Fridays-Unleashed-3-27-2015/
/index/publication/Kings,-Nations,-and-Gods/
/index/publication/Monsternomicon/
/index/publication/No-Quarter-43/
/index/publication/No-Quarter-44/
/index/publication/No-Quarter-45/
/index/publication/No-Quarter-46/
/index/publication/No-Quarter-47/
/index/publication/No-Quarter-48/
/index/publication/No-Quarter-48-Plus/
/index/publication/No-Quarter-49/
/index/publication/No-Quarter-50/
/index/publication/No-Quarter-51/
/index/publication/No-Quarter-52/
/index/publication/No-Quarter-53/
/index/publication/No-Quarter-54/
/index/publication/No-Quarter-55/
/index/publication/No-Quarter-56/
/index/publication/No-Quarter-57/
/index/publication/No-Quarter-58/
/index/publication/No-Quarter-59/
/index/publication/No-Quarter-60/
/index/publication/No-Quarter-61/
/index/publication/Path-of-Devastation-Season-1/
/index/publication/Path-of-Devastation-Season-2/
/index/publication/Path-of-Devastation-Season-3/
/index/publication/Skorne-Empire/
/index/publication/Urban-Adventure/
/index/publication/Unleashed-Core-Rules/
/index/publication/Unleashed-Adventure-Kit-Rulebook/
/index/publication/Unleashed-Adventure-Kit-Scenario/
# fonts
/static/fonts/typicons.eot
/static/fonts/typicons.svg
/static/fonts/typicons.ttf
/static/fonts/typicons.woff
# images
/static/images/bg-FMF.jpg
/static/images/bg-Unleashed.jpg
/static/images/progress/cygnar.png
/static/images/progress/khador.png
/static/images/progress/mercenaries.png
/static/images/sheet/Abilities.png
/static/images/sheet/Colbie.jpg
/static/images/sheet/Details.png
/static/images/sheet/Feats.png
/static/images/sheet/Gear.png
/static/images/sheet/M+M.png
/static/images/sheet/R+M+M.png
/static/images/sheet/R+R+M.png
/static/images/sheet/R+R.png
/static/images/sheet/reload.png
/static/images/sheet/Skills.png
/static/images/sheet/Spells.png
/static/images/sheet/Stats.png
/static/images/sort_asc.png
/static/images/sort_both.png
/static/images/sort_desc.png
# javascripts
/static/javascripts/datatables-filters.js
/static/javascripts/foo.js
/static/javascripts/heroic-old.js
/static/javascripts/heroic.js
/static/javascripts/index.js
/static/javascripts/jquery-ui-1.10.4.min.js
/static/javascripts/lz-string-1.3.3-min.js
/static/javascripts/setup-datatables.js
/static/javascripts/pouchdb-3.3.1.min.js
# stylesheets
/static/stylesheets/content/character-sheet.css
/static/stylesheets/content/datatables.css
/static/stylesheets/content/lists.css
/static/stylesheets/content/progress-bar.css
/static/stylesheets/content/tables.css
/static/stylesheets/content.css
/static/stylesheets/fonts.css
/static/stylesheets/foot.css
/static/stylesheets/global.css
/static/stylesheets/head.css
/static/stylesheets/index.css
/static/stylesheets/ipad.css
/static/stylesheets/iphone.css
/static/stylesheets/menu.css
/static/stylesheets/reset.css
# Other page resources
http://fonts.googleapis.com/css?family=Cabin:700
https://fonts.googleapis.com/css?family=Cabin:700
http://fonts.gstatic.com/s/cabin/v7/nHiQo1BypvYzt95zlPq1TnYhjbSpvc47ee6xR_80Hnw.ttf
https://fonts.gstatic.com/s/cabin/v7/nHiQo1BypvYzt95zlPq1TnYhjbSpvc47ee6xR_80Hnw.ttf
http://code.jquery.com/jquery-2.1.1.min.js
https://code.jquery.com/jquery-2.1.1.min.js
http://cdn.datatables.net/1.10.0/js/jquery.dataTables.min.js
https://cdn.datatables.net/1.10.0/js/jquery.dataTables.min.js
http://cdn.datatables.net/fixedheader/2.1.1/js/dataTables.fixedHeader.min.js
https://cdn.datatables.net/fixedheader/2.1.1/js/dataTables.fixedHeader.min.js
NETWORK:
*

View file

@ -16,7 +16,7 @@ tags: [ Version 4 ]
<h3>Tools</h3>
<ul>
<li><a href="#publication-index">Publication Index</a> (an index of all official Iron Kingdom resources)</li>
<li><a href="#character-sheets">Character Sheets</a> (fillable online Full Metal Fantasy and Unleashed character sheets)</li>
<li><a href="#character-sheets">Character Generator</a> (fillable online Full Metal Fantasy and Unleashed character sheets and character generator)</li>
<li><a href="#character-cards">Character Cards</a> (fillable online character sheets in warmahordes cards format)</li>
<li><a href="#moons-of-caen-constellations">Moons of Caen Constellations</a> (simulation of caen's three moon phases)</li>
<li><a href="#Unleashed-Heroes">Unleashed Heroes for Warmahordes</a> (play Zocha, Longchops, Lurk, Gullin, Knor, and Morrg in your Warmahordes games)</li>
@ -141,10 +141,10 @@ tags: [ Version 4 ]
<h2 id="character-sheets">Fillable Character Sheets v. 1.0</h2>
<h2 id="character-sheets">Fillable Character Sheets and Character Generator v. 1.0</h2>
<p>
Who does not want to have a digital version of his or her IKRPG hero?
We provide you with online <a href="/Character-Sheets/">character sheets</a> that can be filled out in your browser!
We provide you with online <a href="/Character-Generator/">character sheets</a> that can be filled out in your browser!
You can choose between the Full Metal Fantasy and the Unleashed character sheet layout.
After you created your hero, you can use your browser's build-in print function to get a paper version of your sheet.
But do not forget to save your hero so you can come back later and add xp to your heroes!
@ -153,6 +153,11 @@ tags: [ Version 4 ]
We use a slightly modified version of the official Privateer Press character sheets that can be downloaded
<a href="http://privateerpress.com/iron-kingdoms/downloads">here<a>.
</p>
<p>
Additionally, we offer a <a href="/Character-Generator/">character generator</a> for the character sheets that you can use to quickly test your character ideas!
It is still in beta but already includes a lot of features and all character data from the Full Metal Fantasy Core Rules.
Have fun creating your IK characters!
</p>
<h3>Changelog</h3>
@ -161,6 +166,9 @@ tags: [ Version 4 ]
<li>Full Metal Fantasy and Unleashed character sheets.</li>
<li>Fill out all values online.</li>
<li>Save and load your heroes in your browser (until you clear the cache).</li>
<li>Basic character generator that includes all data from the FMF Core Rules.</li>
<li>Automatically fill out spells and skills.</li>
<li>Automatically recompute a lot of values on changes (but not all yet).</li>
</ul>

File diff suppressed because it is too large Load diff

View file

@ -87,7 +87,7 @@ var ikrpg = ikrpg || {};
"r1m2": false,
"r2": false,
"m2": false,
"ability1": { "title": "ability/benefit", "description": "description", "page": "" },
"ability1": { "title": "ability/benefit", "description": "", "page": "" },
"ability2": { "title": "", "description": "", "page": "" },
"ability3": { "title": "", "description": "", "page": "" },
"ability4": { "title": "", "description": "", "page": "" },
@ -139,7 +139,7 @@ var ikrpg = ikrpg || {};
"benefit9": { "title": "", "description": "", "page": "" },
"benefit10": { "title": "", "description": "", "page": "" },
"benefit11": { "title": "", "description": "", "page": "" },
"spell1": { "title": "spell", "cost": 0, "rng": 0, "aoe": "-", "pow": 0, "up": "NO", "off": "YES", "description": "description" },
"spell1": { "title": "spell", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
"spell2": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
"spell3": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
"spell4": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
@ -150,7 +150,7 @@ var ikrpg = ikrpg || {};
"spell9": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
"spell10": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
"spell11": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
"gear1": { "title": "gear", "benefit": "benefit" },
"gear1": { "title": "gear", "benefit": "" },
"gear2": { "title": "", "benefit": "" },
"gear3": { "title": "", "benefit": "" },
"gear4": { "title": "", "benefit": "" },
@ -195,11 +195,11 @@ var ikrpg = ikrpg || {};
"capacitor2": { "title": "", "charges": "" }, // sheet
"capacitor3": { "title": "", "charges": "" }, // sheet
"capacitor4": { "title": "", "charges": "" }, // sheet
"note1": { "title": "Permanent Injuries", "text": "None" },
"note1": { "title": "Permanent Injuries", "text": "" },
"note2": { "title": "Spoken Languages", "text": "" },
"note3": { "title": "Religious Beliefs", "text": "" },
"note4": { "title": "Connections", "text": "None" },
"note5": { "title": "Gold", "text": "0 gc" },
"note4": { "title": "Connections", "text": "" },
"note5": { "title": "Gold", "text": "" },
"note6": { "title": "", "text": "" },
"note7": { "title": "", "text": "" },
"note8": { "title": "", "text": "" },

View file

@ -8606,14 +8606,6 @@ var ikrpg = ikrpg || {};
subcategory: "Armor",
game: "FMF"
},
{
name: "Naval Warcaster Armor",
publication: "Kings, Nations, and Gods",
page: "307",
category: "Armory",
subcategory: "Armor",
game: "FMF"
},
{
name: "Nyss Leather Armor",
publication: "Unleashed Core Rules",
@ -15378,6 +15370,14 @@ var ikrpg = ikrpg || {};
game: "FMF"
},
// ##### Mechanika > Mechanikal Armor ##### \\
{
name: "Naval Warcaster Armor",
publication: "Kings, Nations, and Gods",
page: "307",
category: "Mechanika",
subcategory: "Mechanikal Armor",
game: "FMF"
},
{
name: "Opifex Armor",
publication: "No Quarter #48",
@ -15386,6 +15386,14 @@ var ikrpg = ikrpg || {};
subcategory: "Mechanikal Armor",
game: "FMF"
},
{
name: "Warcaster Armor, heavy",
publication: "Core Rules",
page: "290",
category: "Mechanika",
subcategory: "Mechanikal Armor",
game: "FMF"
},
{
name: "Warcaster Armor, light",
publication: "Core Rules",
@ -15402,14 +15410,6 @@ var ikrpg = ikrpg || {};
subcategory: "Mechanikal Armor",
game: "FMF"
},
{
name: "Warcaster Armor, heavy",
publication: "Core Rules",
page: "290",
category: "Mechanika",
subcategory: "Mechanikal Armor",
game: "FMF"
},
// ##### Mechanika > Ironhead Armor ##### \\
{
name: "Ablative Armor",
@ -20595,7 +20595,7 @@ var ikrpg = ikrpg || {};
{
name: "Chymistry",
publication: "Skorne Empire",
page: "69",
page: "68",
category: "Skill",
subcategory: "Occupational Skill",
game: "IKU"

114
static/javascripts/sheet.js Normal file
View file

@ -0,0 +1,114 @@
// global
// var ikrpg
var ikrpg = ikrpg || {};
(function() {
ikrpg.sheet = ikrpg.sheet || {};
var sheet = ikrpg.sheet;
ikrpg.cards.init();
// # Manage characters # \\
(function() {
var db2 = new PouchDB('characters.ikrpg');
var hero = ikrpg.cards.data;
listCharacters();
function saveHero() {
ikrpg.cards.updateData();
hero = ikrpg.cards.data;
var _id = hero["hero-name"].replace(/["']/g, "");
db2.get(_id, function(error, doc) {
if(error) { // hero not in db yet
doc = hero;
doc["_id"] = _id;
db2.put(doc);
} else { // hero already in db
hero["_id"] = doc["_id"];
hero["_rev"] = doc["_rev"];
db2.put(hero);
}
listCharacters();
});
}
function listCharacters() {
$("#characters > tbody").remove();
$("#characters").append("<tbody>");
db2.allDocs({include_docs: true}, function(error, results) {
var rows = results.rows;
$.each(rows, function(index, row) {
var character = row.doc;
function appendTr() {
$("#characters > tbody").append("<tr>");
}
function appendTd() {
$("#characters > tbody > tr:last-of-type").append("<td>");
}
function lastTd() {
return $("#characters > tbody > tr:last-of-type > td:last-of-type");
}
appendTr();
appendTd();
lastTd().text(character["hero-name"]);
appendTd();
lastTd().text(character["archetype"]);
appendTd();
lastTd().text(character["race"]);
appendTd();
lastTd().text(character["careers"]);
appendTd();
lastTd().html("<a href=\"javascript:ikrpg.sheet.showCharacter('"+character["_id"]+"')\">Load</a>");
appendTd();
lastTd().html("<a href=\"javascript:ikrpg.sheet.deleteCharacter('"+character["_id"]+"', '"+character["_rev"]+"')\"><strong>Delete</strong></a>");
});
});
}
function fill(error, character) {
if(!error) {
ikrpg.cards.data = $.extend(ikrpg.cards.data, character);
ikrpg.cards.init();
ikrpg.cards.switchWeapons();
ikrpg.cards.heroNameHack();
ikrpg.cards.setPortrait();
}
}
function showCharacter(characterId) {
db2.get(characterId, sheet.fill);
}
function deleteCharacter(characterId, characterRev) {
db2.remove(characterId, characterRev, function(error, code) {
listCharacters();
});
}
// ## Initialize variables ## \\
sheet.saveHero = saveHero;
sheet.fill = fill;
sheet.showCharacter = showCharacter;
sheet.deleteCharacter = deleteCharacter;
})();
})();

View file

@ -0,0 +1,402 @@
/*div.data label { display: block; }*/
.character-generator-table tbody td:nth-of-type(2) { text-align: left; }
form#import-export { display: none; }
form#import-export:target { display: block; }
#seed { display: block; width: 100%; max-height: 26px; overflow: none; }
.character-sheet {
margin-top: 3em;
width: 980px; }
.fmf.page1 {
height: 711px;
background: url(/static/images/sheet/FMF-1.jpeg) no-repeat;
background-size: 980px 711px; }
.fmf.page2 {
height: 688px;
background: url(/static/images/sheet/FMF-2.jpeg) no-repeat;
background-size: 980px 688px; }
.iku.page1 {
height: 713px;
background: url(/static/images/sheet/IKU-1.jpeg) no-repeat;
background-size: 980px 713px; }
.iku.page2 {
height: 689px;
background: url(/static/images/sheet/IKU-2.jpeg) no-repeat;
background-size: 980px 689px; }
.character-sheet input { position: absolute; font-size: 13px; padding: 2px 1px; font-family: Arial; border: 0; background-color: transparent; }
.character-sheet .hero-name { margin: 20px 0 0 4px; width: 236px; }
.character-sheet #sex { margin: 20px 0 0 250px; width: 39px; }
.character-sheet #definingcharacteristics { margin: 20px 0 0 300px; width: 304px; }
.character-sheet #weight { margin: 20px 0 0 619px; width: 82px; }
.character-sheet #archetype { margin: 48px 0 0 4px; width: 86px; }
/*
.character-sheet #archetype-div { position: absolute; margin: 45px 0 0 4px; max-width: 500px; overflow: hidden; }
.character-sheet #archetype { display: inline-block; min-width: 86px; font-size: 13px; height: 15px; padding: 2px 1px; font-family: Arial; color: black;
border-style: solid;
border-width: 3px;
border-color: transparent;
border-radius: 4px;
}
.character-sheet #archetype:focus { border-color: rgba(59, 153, 252, 0.35); outline: none; }
*/
.character-sheet #race { margin: 48px 0 0 105px; width: 78px; }
.character-sheet #careers { margin: 48px 0 0 198px; width: 221px; }
.character-sheet #faith { margin: 48px 0 0 333px; width: 86px; }
.character-sheet #playername { margin: 48px 0 0 433px; width: 172px; }
.character-sheet #height { margin: 48px 0 0 619px; width: 82px; }
.character-sheet #level { margin: 20px 0 0 720px; width: 79px; text-align: center; }
.character-sheet #xp { margin: 48px 0 0 720px; width: 79px; text-align: center; }
.character-sheet div#portrait {}
.character-sheet #phy { margin: 330px 0 0 10px; width: 42px; font-size: 30px; text-align: center; }
.character-sheet #phymax { margin: 352px 0 0 60px; width: 18px; text-align: center; }
.character-sheet #agl { margin: 443px 0 0 10px; width: 42px; font-size: 30px; text-align: center; }
.character-sheet #aglmax { margin: 465px 0 0 60px; width: 18px; text-align: center; }
.character-sheet #str { margin: 363px 0 0 92px; width: 32px; font-size: 20px; text-align: center; }
.character-sheet #strmax { margin: 376px 0 0 129px; width: 13px; text-align: center; }
.character-sheet #int { margin: 556px 0 0 10px; width: 42px; font-size: 30px; text-align: center; }
.character-sheet #intmax { margin: 578px 0 0 60px; width: 18px; text-align: center; }
.character-sheet #prw { margin: 428px 0 0 92px; width: 32px; font-size: 20px; text-align: center; }
.character-sheet #prwmax { margin: 441px 0 0 129px; width: 13px; text-align: center; }
.character-sheet #poi { margin: 476px 0 0 92px; width: 32px; font-size: 20px; text-align: center; }
.character-sheet #poimax { margin: 489px 0 0 129px; width: 13px; text-align: center; }
.character-sheet #spd { margin: 315px 0 0 92px; width: 32px; font-size: 20px; text-align: center; }
.character-sheet #spdmax { margin: 328px 0 0 129px; width: 13px; text-align: center; }
.character-sheet #arc { margin: 541px 0 0 92px; width: 32px; font-size: 20px; text-align: center; }
.character-sheet #arcmax { margin: 554px 0 0 129px; width: 13px; text-align: center; }
.character-sheet #per { margin: 589px 0 0 92px; width: 32px; font-size: 20px; text-align: center; }
.character-sheet #permax { margin: 602px 0 0 129px; width: 13px; text-align: center; }
.character-sheet #wil { margin: 648px 0 0 50px; width: 48px; font-size: 30px; text-align: center; }
.character-sheet #rat1 { display: block !important; }
.character-sheet #rat1 .name { margin: 114px 0 0 224px; width: 103px; }
.character-sheet #rat1 .rng { margin: 106px 0 0 341px; width: 25px; text-align: center; }
.character-sheet #rat1 .rat { margin: 106px 0 0 375px; width: 25px; text-align: center; }
.character-sheet #rat1 .aoe {}
.character-sheet #rat1 .pow { margin: 106px 0 0 409px; width: 25px; text-align: center; }
.character-sheet #rat1 .notes { margin: 138px 0 0 224px; width: 216px; }
.character-sheet #rat1 .ammo { margin: 138px 0 0 341px; width: 99px; }
.character-sheet #rat2 { display: block !important; }
.character-sheet #rat2 .name { margin: 182px 0 0 224px; width: 103px; }
.character-sheet #rat2 .rng { margin: 174px 0 0 341px; width: 25px; text-align: center; }
.character-sheet #rat2 .rat { margin: 174px 0 0 375px; width: 25px; text-align: center; }
.character-sheet #rat2 .aoe {}
.character-sheet #rat2 .pow { margin: 174px 0 0 409px; width: 25px; text-align: center; }
.character-sheet #rat2 .notes { margin: 206px 0 0 224px; width: 216px; }
.character-sheet #rat2 .ammo { margin: 206px 0 0 341px; width: 99px; }
.character-sheet #mat1 { display: block !important; }
.character-sheet #mat1 .name { margin: 265px 0 0 224px; width: 140px; }
.character-sheet #mat1 .mat { margin: 277px 0 0 375px; width: 25px; text-align: center; }
.character-sheet #mat1 .pow {}
.character-sheet #mat1 .ps { margin: 277px 0 0 409px; width: 25px; text-align: center; }
.character-sheet #mat1 .notes { margin: 289px 0 0 224px; width: 140px; }
.character-sheet #mat2 { display: block !important; }
.character-sheet #mat2 .name { margin: 327px 0 0 224px; width: 140px; }
.character-sheet #mat2 .mat { margin: 339px 0 0 375px; width: 25px; text-align: center; }
.character-sheet #mat2 .pow {}
.character-sheet #mat2 .ps { margin: 339px 0 0 409px; width: 25px; text-align: center; }
.character-sheet #mat2 .notes { margin: 351px 0 0 224px; width: 140px; }
.character-sheet #mat3 { display: block !important; }
.character-sheet #mat3 .name { margin: 415px 0 0 171px; width: 160px; }
.character-sheet #mat3 .mat { margin: 429px 0 0 375px; width: 25px; text-align: center; }
.character-sheet #mat3 .pow {}
.character-sheet #mat3 .ps { margin: 429px 0 0 409px; width: 25px; text-align: center; }
.character-sheet #mat3 .notes { margin: 439px 0 0 171px; width: 160px; }
.character-sheet #mat3 .free { margin: 429px 0 0 341px; width: 25px; text-align: center; }
.character-sheet #defracialmodifier { margin: 496px 0 0 289px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #defequipmentmodifiers { margin: 496px 0 0 344px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #def { margin: 496px 0 0 399px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #armshieldmodifier { margin: 554px 0 0 231px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #armarmormodifiers { margin: 554px 0 0 288px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #armothermodifiers { margin: 554px 0 0 344px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #arm { margin: 554px 0 0 399px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #iniequipmentmodifiers { margin: 611px 0 0 289px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #iniadditionalmodifiers { margin: 611px 0 0 344px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #ini { margin: 611px 0 0 399px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #cmdcommandskill { margin: 668px 0 0 289px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #cmdabilitymodifier { margin: 668px 0 0 344px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet #cmd { margin: 668px 0 0 399px; width: 34px; font-size: 20px; text-align: center; }
.character-sheet .skill .title { margin: 2px 0 0 460px; width: 105px; }
.character-sheet .skill .base { margin: 2px 0 0 570px; width: 15px; text-align: center; }
.character-sheet .skill .lvl { margin: 2px 0 0 609px; width: 15px; text-align: center; }
.character-sheet .skill .sum { margin: 2px 0 0 643px; width: 15px; text-align: center; }
.character-sheet .skill { position: absolute; }
.character-sheet #s1 { margin-top: 120px; }
.character-sheet #s2 { margin-top: 141px; }
.character-sheet #s3 { margin-top: 162px; }
.character-sheet #s4 { margin-top: 184px; }
.character-sheet #s5 { margin-top: 205px; }
.character-sheet #s6 { margin-top: 226px; }
.character-sheet #s7 { margin-top: 247px; }
.character-sheet #s8 { margin-top: 269px; }
.character-sheet #s9 { margin-top: 290px; }
.character-sheet #s10 { margin-top: 311px; }
.character-sheet #s11 { margin-top: 332px; }
.character-sheet #s12 { margin-top: 353px; }
.character-sheet #s13 { margin-top: 374px; }
.character-sheet #s14 { margin-top: 396px; }
.character-sheet #s15 { margin-top: 417px; }
.character-sheet #s16 { margin-top: 438px; }
.character-sheet #s17 { margin-top: 459px; }
.character-sheet #s18 {}
.character-sheet #s19 {}
.character-sheet #s20 {}
.character-sheet #s21 {}
.character-sheet .ability { position: absolute; }
.character-sheet .ability .title { margin-left: 689px; width: 285px; }
.character-sheet .ability .description { margin-left: 796px; width: 178px; }
.character-sheet .ability .page { margin-left: 946px; width: 28px; text-align: right; }
.character-sheet #ability1 { margin-top: 135px; }
.character-sheet #ability2 { margin-top: 156px; }
.character-sheet #ability3 { margin-top: 177px; }
.character-sheet #ability4 { margin-top: 198px; }
.character-sheet #ability5 { margin-top: 219px; }
.character-sheet #ability6 { margin-top: 240px; }
.character-sheet #ability7 { margin-top: 261px; }
.character-sheet #ability8 { margin-top: 282px; }
.character-sheet #ability9 { margin-top: 303px; }
.character-sheet #ability10 { margin-top: 324px; }
.character-sheet #ability11 { margin-top: 345px; }
.character-sheet #ability12 { margin-top: 366px; }
.character-sheet #ability13 { margin-top: 387px; }
.character-sheet #ability14 { margin-top: 408px; }
.character-sheet #ability15 { margin-top: 429px; }
.character-sheet #ability16 { margin-top: 450px; }
.character-sheet #ability17 { margin-top: 471px; }
.character-sheet #ability18 { margin-top: 492px; }
.character-sheet #ability19 { margin-top: 513px; }
.character-sheet #ability20 { margin-top: 534px; }
.character-sheet #feats { font-size: 40px; margin: 606px 0 0 698px; width: 51px; text-align: center; }
.character-sheet .gear { position: absolute; margin-left: 5px; }
.character-sheet .gear .title { width: 285px; }
.character-sheet .gear .benefit { margin-left: 125px; width: 160px; }
.character-sheet #gear1 { margin-top: 35px; }
.character-sheet #gear2 { margin-top: 55px; }
.character-sheet #gear3 { margin-top: 75px; }
.character-sheet #gear4 { margin-top: 94px; }
.character-sheet #gear5 { margin-top: 114px; }
.character-sheet #gear6 { margin-top: 134px; }
.character-sheet #gear7 { margin-top: 154px; }
.character-sheet #gear8 { margin-top: 174px; }
.character-sheet #gear9 { margin-top: 194px; }
.character-sheet #gear10 { margin-top: 214px; }
.character-sheet #gear11 { margin-top: 234px; }
.character-sheet #gear12 { margin-top: 254px; }
.character-sheet #gear13 { margin-top: 273px; }
.character-sheet #gear14 { margin-top: 293px; }
.character-sheet #gear15 { margin-top: 313px; }
.character-sheet #gear16 { margin-top: 333px; }
.character-sheet #gear17 { margin-top: 353px; }
.character-sheet #gear18 { margin-top: 373px; }
.character-sheet #gear19 { margin-top: 393px; }
.character-sheet .wornarmor { position: absolute; margin-left: 5px; }
.character-sheet .wornarmor .name { width: 70px; }
.character-sheet .wornarmor .notes { margin-left: 75px; width: 108px; }
.character-sheet .wornarmor .spd { margin-left: 186px; width: 17px; text-align: center; }
.character-sheet .wornarmor .def { margin-left: 225px; width: 17px; text-align: center; }
.character-sheet .wornarmor .arm { margin-left: 260px; width: 17px; text-align: center; }
.character-sheet #wornarmor1 { margin-top: 465px; }
.character-sheet #wornarmor2 { margin-top: 485px; }
.character-sheet #wornarmor3 { margin-top: 505px; }
.character-sheet #wornarmor4 { margin-top: 525px; }
.character-sheet .connection { position: absolute; margin-left: 5px; }
.character-sheet .connection .name { width: 286px; }
.character-sheet .connection .notes { margin-left: 98px; width: 188px; }
.character-sheet .connection .page { margin-left: 238px; width: 48px; text-align: right; }
.character-sheet #connection1 { margin-top: 597px; }
.character-sheet #connection2 { margin-top: 617px; }
.character-sheet #connection3 { margin-top: 637px; }
.character-sheet #connection4 { margin-top: 657px; }
.character-sheet #arcanetradition { position: absolute; margin: 9px 0 0 398px; width: 256px; }
.character-sheet .spell { position: absolute; margin-left: 312px; }
.character-sheet .spell .title { width: 134px; }
.character-sheet .spell .cost { margin-left: 140px; width: 33px; text-align: center; }
.character-sheet .spell .rng { margin-left: 178px; width: 32px; text-align: center; }
.character-sheet .spell .aoe { margin-left: 215px; width: 32px; text-align: center; }
.character-sheet .spell .pow { margin-left: 252px; width: 33px; text-align: center; }
.character-sheet .spell .up { margin-left: 290px; width: 32px; text-align: center; }
.character-sheet .spell .off { margin-left: 327px; width: 28px; text-align: center; }
.character-sheet .spell .description { margin-top: 23px; width: 355px; }
.character-sheet #spell1 { margin-top: 47px; }
.character-sheet #spell2 { margin-top: 97px; }
.character-sheet #spell3 { margin-top: 147px; }
.character-sheet #spell4 { margin-top: 197px; }
.character-sheet #spell5 { margin-top: 247px; }
.character-sheet #spell6 { margin-top: 296px; }
.character-sheet #spell7 { margin-top: 345px; }
.character-sheet #spell8 { margin-top: 395px; }
.character-sheet .iku .mechanika { display: none; }
.character-sheet .mechanika { position: absolute; margin-left: 312px; }
.character-sheet .mechanika .housing { width: 84px; }
.character-sheet .mechanika .runeplate { margin-left: 90px; width: 84px; }
.character-sheet .mechanika .capacitor { margin-left: 180px; width: 84px; }
.character-sheet .mechanika .notes { margin-left: 270px; width: 84px; }
.character-sheet #mechanika1 { margin-top: 483px; }
.character-sheet #mechanika2 { margin-top: 503px; }
.character-sheet #mechanika3 { margin-top: 523px; }
.character-sheet #mechanika4 { margin-top: 543px; }
.character-sheet #mechanika5 { margin-top: 563px; }
.character-sheet .iku .runeplate { display: none; }
.character-sheet .runeplate { position: absolute; margin-left: 312px; }
.character-sheet .runeplate .title { width: 84px; }
.character-sheet .runeplate .benefit { margin-left: 90px; width: 78px; }
.character-sheet #runeplate1 { margin-top: 599px; }
.character-sheet #runeplate2 { margin-top: 619px; }
.character-sheet #runeplate3 { margin-top: 639px; }
.character-sheet #runeplate4 { margin-top: 659px; }
.character-sheet .iku .capacitor { display: none; }
.character-sheet .capacitor { position: absolute; margin-left: 498px; }
.character-sheet .capacitor .title { width: 78px; }
.character-sheet .capacitor .charges { margin-left: 84px; width: 84px; }
.character-sheet #capacitor1 { margin-top: 599px; }
.character-sheet #capacitor2 { margin-top: 619px; }
.character-sheet #capacitor3 { margin-top: 639px; }
.character-sheet #capacitor4 { margin-top: 659px; }
.character-sheet .note { position: absolute; margin-left: 698px; }
.character-sheet .note .text { width: 265px; }
.character-sheet #note1 { margin-top: 35px; }
.character-sheet #note2 { margin-top: 54px; }
.character-sheet #note3 { margin-top: 73px; }
.character-sheet #note4 { margin-top: 92px; }
.character-sheet #note5 { margin-top: 110px; }
.character-sheet #note6 { margin-top: 129px; }
.character-sheet #note7 { margin-top: 148px; }
.character-sheet #note8 { margin-top: 166px; }
.character-sheet #note9 { margin-top: 185px; }
.character-sheet #note10 { margin-top: 204px; }
.character-sheet #note11 { margin-top: 223px; }
.character-sheet #note12 { margin-top: 242px; }
.character-sheet #permanentinjury1 { position: absolute; margin-top: 307px; margin-left: 698px; width: 265px; }
.character-sheet #permanentinjury2 { position: absolute; margin-top: 327px; margin-left: 698px; width: 265px; }
.character-sheet #permanentinjury3 { position: absolute; margin-top: 347px; margin-left: 698px; width: 265px; }
.character-sheet #spokenlanguage1 { position: absolute; margin-top: 408px; margin-left: 698px; width: 265px; }
.character-sheet #spokenlanguage2 { position: absolute; margin-top: 428px; margin-left: 698px; width: 265px; }
.character-sheet #spokenlanguage3 { position: absolute; margin-top: 448px; margin-left: 698px; width: 265px; }
.character-sheet #religiousbelief1 { position: absolute; margin-top: 509px; margin-left: 698px; width: 265px; }
.character-sheet #religiousbelief2 { position: absolute; margin-top: 529px; margin-left: 698px; width: 265px; }
.character-sheet #religiousbelief3 { position: absolute; margin-top: 549px; margin-left: 698px; width: 265px; }
.character-sheet #gold { position: absolute; margin-top: 610px; margin-left: 698px; font-size: 50px; width: 100px; text-align: right; }
/*
.character-sheet .gear { position: absolute; margin-left: 5px; }
.character-sheet .gear .title { width: 285px; }
.character-sheet .gear .benefit { margin-left: 125px; width: 160px; }
.character-sheet #gear1 { margin-top: 38px; }
.character-sheet #gear2 { margin-top: 58px; }
.character-sheet #gear3 { margin-top: 78px; }
.character-sheet #gear4 { margin-top: 97px; }
.character-sheet #gear5 { margin-top: 117px; }
.character-sheet #gear6 { margin-top: 137px; }
.character-sheet #gear7 { margin-top: 157px; }
.character-sheet #gear8 { margin-top: 177px; }
.character-sheet #gear9 { margin-top: 197px; }
.character-sheet #gear10 { margin-top: 217px; }
.character-sheet #gear11 { margin-top: 237px; }
.character-sheet #gear12 { margin-top: 257px; }
.character-sheet #gear13 { margin-top: 276px; }
.character-sheet #gear14 { margin-top: 296px; }
.character-sheet #gear15 { margin-top: 316px; }
.character-sheet #gear16 { margin-top: 336px; }
.character-sheet #gear17 { margin-top: 356px; }
.character-sheet #gear18 { margin-top: 376px; }
.character-sheet #gear19 { margin-top: 396px; }
.character-sheet .wornarmor { position: absolute; margin-left: 5px; }
.character-sheet .wornarmor .name { width: 70px; }
.character-sheet .wornarmor .notes { margin-left: 75px; width: 108px; }
.character-sheet .wornarmor .spd { margin-left: 186px; width: 17px; text-align: center; }
.character-sheet .wornarmor .def { margin-left: 225px; width: 17px; text-align: center; }
.character-sheet .wornarmor .arm { margin-left: 260px; width: 17px; text-align: center; }
.character-sheet #wornarmor1 { margin-top: 468px; }
.character-sheet #wornarmor2 { margin-top: 488px; }
.character-sheet #wornarmor3 { margin-top: 508px; }
.character-sheet #wornarmor4 { margin-top: 528px; }
.character-sheet .connection { position: absolute; margin-left: 5px; }
.character-sheet .connection .name { width: 98px; }
.character-sheet .connection .notes { margin-left: 98px; width: 140px; }
.character-sheet .connection .page { margin-left: 238px; width: 48px; text-align: right; }
.character-sheet #connection1 { margin-top: 600px; }
.character-sheet #connection2 { margin-top: 620px; }
.character-sheet #connection3 { margin-top: 640px; }
.character-sheet #connection4 { margin-top: 660px; }
.character-sheet #arcanetradition { position: absolute; margin: 12px 0 0 398px; width: 256px; }
.character-sheet .spell { position: absolute; margin-left: 312px; }
.character-sheet .spell .title { width: 134px; }
.character-sheet .spell .cost { margin-left: 140px; width: 33px; text-align: center; }
.character-sheet .spell .rng { margin-left: 178px; width: 32px; text-align: center; }
.character-sheet .spell .aoe { margin-left: 215px; width: 32px; text-align: center; }
.character-sheet .spell .pow { margin-left: 252px; width: 33px; text-align: center; }
.character-sheet .spell .up { margin-left: 290px; width: 32px; text-align: center; }
.character-sheet .spell .off { margin-left: 327px; width: 28px; text-align: center; }
.character-sheet .spell .description { margin-top: 23px; width: 355px; }
.character-sheet .iku .mechanika { display: none; }
.character-sheet .mechanika { position: absolute; margin-left: 312px; }
.character-sheet .mechanika .housing { width: 84px; }
.character-sheet .mechanika .runeplate { margin-left: 90px; width: 84px; }
.character-sheet .mechanika .capacitor { margin-left: 180px; width: 84px; }
.character-sheet .mechanika .notes { margin-left: 270px; width: 84px; }
.character-sheet #mechanika1 { margin-top: 486px; }
.character-sheet #mechanika2 { margin-top: 506px; }
.character-sheet #mechanika3 { margin-top: 526px; }
.character-sheet #mechanika4 { margin-top: 546px; }
.character-sheet #mechanika5 { margin-top: 566px; }
.character-sheet .iku .runeplate { display: none; }
.character-sheet .runeplate { position: absolute; margin-left: 312px; }
.character-sheet .runeplate .title { width: 84px; }
.character-sheet .runeplate .benefit { margin-left: 90px; width: 78px; }
.character-sheet #runeplate1 { margin-top: 602px; }
.character-sheet #runeplate2 { margin-top: 622px; }
.character-sheet #runeplate3 { margin-top: 642px; }
.character-sheet #runeplate4 { margin-top: 662px; }
.character-sheet .iku .capacitor { display: none; }
.character-sheet .capacitor { position: absolute; margin-left: 498px; }
.character-sheet .capacitor .title { width: 78px; }
.character-sheet .capacitor .charges { margin-left: 84px; width: 84px; }
.character-sheet #capacitor1 { margin-top: 602px; }
.character-sheet #capacitor2 { margin-top: 622px; }
.character-sheet #capacitor3 { margin-top: 642px; }
.character-sheet #capacitor4 { margin-top: 662px; }
.character-sheet #spell1 { margin-top: 50px; }
.character-sheet #spell2 { margin-top: 100px; }
.character-sheet #spell3 { margin-top: 150px; }
.character-sheet #spell4 { margin-top: 200px; }
.character-sheet #spell5 { margin-top: 250px; }
.character-sheet #spell6 { margin-top: 299px; }
.character-sheet #spell7 { margin-top: 348px; }
.character-sheet #spell8 { margin-top: 398px; }
.character-sheet .note { position: absolute; margin-left: 698px; }
.character-sheet .note .text { width: 265px; }
.character-sheet #note1 { margin-top: 37px; }
.character-sheet #note2 { margin-top: 56px; }
.character-sheet #note3 { margin-top: 75px; }
.character-sheet #note4 { margin-top: 94px; }
.character-sheet #note5 { margin-top: 112px; }
.character-sheet #note6 { margin-top: 131px; }
.character-sheet #note7 { margin-top: 150px; }
.character-sheet #note8 { margin-top: 168px; }
.character-sheet #note9 { margin-top: 187px; }
.character-sheet #note10 { margin-top: 206px; }
.character-sheet #note11 { margin-top: 225px; }
.character-sheet #note12 { margin-top: 244px; }
.character-sheet #permanentinjury1 { position: absolute; margin-top: 310px; margin-left: 698px; width: 265px; }
.character-sheet #permanentinjury2 { position: absolute; margin-top: 330px; margin-left: 698px; width: 265px; }
.character-sheet #permanentinjury3 { position: absolute; margin-top: 350px; margin-left: 698px; width: 265px; }
.character-sheet #spokenlanguage1 { position: absolute; margin-top: 411px; margin-left: 698px; width: 265px; }
.character-sheet #spokenlanguage2 { position: absolute; margin-top: 431px; margin-left: 698px; width: 265px; }
.character-sheet #spokenlanguage3 { position: absolute; margin-top: 451px; margin-left: 698px; width: 265px; }
.character-sheet #religiousbelief1 { position: absolute; margin-top: 512px; margin-left: 698px; width: 265px; }
.character-sheet #religiousbelief2 { position: absolute; margin-top: 532px; margin-left: 698px; width: 265px; }
.character-sheet #religiousbelief3 { position: absolute; margin-top: 552px; margin-left: 698px; width: 265px; }
.character-sheet #gold { position: absolute; margin-top: 613px; margin-left: 698px; font-size: 50px; width: 100px; text-align: right; }
*/
@media print {
html { zoom: 140%; }
form.character-sheet {
margin: 200px 0 0 -130px;
display: inline-block;
-webkit-transform: rotate(-90deg);
-moz-transform:rotate(-90deg);
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3); }
form.character-sheet.page2 {
margin-top: 228px; }
}