diff --git a/EngineHeart/README.md b/EngineHeart/README.md index 4ea9d8564e..b1c96198f6 100644 --- a/EngineHeart/README.md +++ b/EngineHeart/README.md @@ -6,4 +6,6 @@ that were left behind fend for themselves, doing the best they can. Engine Heart official web site: http://www.viralgamespublishing.com/2.html +Icon graphics used with permission from Viral Games. + Please enjoy! diff --git a/EngineHeart/less/index.less b/EngineHeart/less/index.less index 4fdf78c9a5..3a3ec38053 100644 --- a/EngineHeart/less/index.less +++ b/EngineHeart/less/index.less @@ -16,6 +16,7 @@ } .attributes { + margin-bottom: 32px; width: 100%; .attribute { @@ -52,7 +53,51 @@ } } + .attrsHeader { + margin-bottom: 10px; + + h2 { + display: inline-block; + line-height: 1em; + max-width: 2in; + vertical-align: middle; + } + + .boxedIcon { + display: inline-block; + height: 60px; + vertical-align: middle; + width: 60px; + + &.iconChassis { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconChassis.png"); + } + + &.iconCrux { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconCrux.png"); + } + + &.iconIntelligence { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconIntelligence.png"); + } + + &.iconMovement { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconMovement.png"); + } + + &.iconPhysicalInteraction { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconPhysicalInteraction.png"); + } + + &.iconThresholds { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconThresholds.png"); + } + } + } + .featuresDefects { + margin-bottom: 32px; + table { font-size: 10px; margin-left: 8px; @@ -97,6 +142,7 @@ } .secondaryAttrs { + margin-bottom: 32px; width: 100%; .attribute { diff --git a/EngineHeart/pug/attributes.pug b/EngineHeart/pug/attributes.pug index 3a6df25d21..8883838125 100644 --- a/EngineHeart/pug/attributes.pug +++ b/EngineHeart/pug/attributes.pug @@ -10,18 +10,18 @@ mixin attribute(label, attr, title) +bubble('MODIFIER'): +input('number', attr + '_mod') .attributes - .column.attrsIntelligence + .column .attrsHeader - .boxedIcon + .boxedIcon.iconIntelligence h2 INTELLIGENCE .attrsInner +attribute('RealityCom', 'rcom', 'Defines how well a robot understands cause and effect in the physical world.') +attribute('HumanCom', 'hcom', 'Defines how well a robot understands human minds or organic actions.') +attribute('DigiCon', 'dcon', 'Defines how adept a robot is at interacting with non-physical systems like computers.') +attribute('MechaniCon', 'mcon', 'Defines how adept a robot is at interacting with mechanical systems.') - .column.attrsChassis + .column .attrsHeader - .boxedIcon + .boxedIcon.iconChassis h2 CHASSIS .attrsInner +attribute('Dexterity', 'dex', 'Measures the degree of fine motor control ncessary for interaction with the outside world.') @@ -29,9 +29,9 @@ mixin attribute(label, attr, title) +attribute('Perception', 'per', 'Determines the variety and quality of sensors mounted, as well as information relayed back.') +attribute('Reflexes', 'ref', 'Determines response lag and overall speed of animation.') +attribute('Strength', 'str', 'Determines the robot\'s maximum load capacity and ability to inflict brute-force damage on other objects.') - .column.attrsCrux + .column .attrsHeader - .boxedIcon + .boxedIcon.iconCrux h2 CRUX .attrsInner +attribute('Durability', 'dur', 'Measures how much damage a robot can withstand before ceasing operation or being destroyed.') diff --git a/EngineHeart/pug/index.pug b/EngineHeart/pug/index.pug index 764d601f10..89aca38785 100644 --- a/EngineHeart/pug/index.pug +++ b/EngineHeart/pug/index.pug @@ -11,7 +11,7 @@ include fields.pug div +labelledLeft('ORIGINAL PURPOSE')(style='width: 100%;'): +input('text', 'originalPurpose') .column.points - +bubble('POINTS'): +input() + +bubble('POINTS'): +input('number', 'points') include attributes.pug include secondaryAttributes.pug diff --git a/EngineHeart/pug/secondaryAttributes.pug b/EngineHeart/pug/secondaryAttributes.pug index 078476d133..7cf75e812a 100644 --- a/EngineHeart/pug/secondaryAttributes.pug +++ b/EngineHeart/pug/secondaryAttributes.pug @@ -17,29 +17,29 @@ mixin threshold(label, attr, title) +bubble('CURRENT')(title=title): +input('number', attr) .secondaryAttrs - .column.attrsPhysicalInteraction + .column .attrsHeader - .boxedIcon - label Physical interaction + .boxedIcon.iconPhysicalInteraction + h2 Physical interaction .attrsInner .intPool.rollable +secAttr('Interaction Pool', 'intPool', '(Dex + Ref) This is the dice pool a robot has to strike, grab, or otherwise manually interact with an unwilling robot or other mobile object.') +rollButton('intPool_calc') +secAttr('TN to be struck', 'tn2bStruck', '(Mobil + Ref) A robot\'s TN to be struck may not be higher than 10.') +secAttr('Damage from Strike', 'dmgFromStrike', '(Str/2, round down) This is how much damage a robot can inflict by simply smashing its body or limbs into another object.') - .column.attrsMovement + .column .attrsHeader - .boxedIcon - label Movement + .boxedIcon.iconMovement + h2 Movement .attrsInner .initiative.rollable +secAttr('Initiative', 'initiative', '(1d10 + Ref) This measures which robots will act first in a conflict or other event where multiple robots attempt to act before each other.') +rollButton('initiative_calc') +secAttr('Speed', 'speed', '(Mobil + Ref) This determines how fast a robot can move from one place to another. A robot\'s speed is equal to its speed in kilometers per hour during long journeys, or meters per round during conflict situations.') - .column.attrsThresholds + .column .attrsHeader - .boxedIcon - label Thresholds + .boxedIcon.iconThresholds + h2 Thresholds .attrsInner +threshold('OS Threshold', 'osThreshold', '(DigiCon + Buffer) This is a measure of how resilient and self-sustaining the robot\'s "brain" is.') +threshold('Damage Threshold', 'dmgThreshold', '(Durability + Size) This is a measure of how hardy and resilient the robot\'s physical body is.') diff --git a/EngineHeart/sheet.css b/EngineHeart/sheet.css index b21cb5c64b..914aad87c2 100644 --- a/EngineHeart/sheet.css +++ b/EngineHeart/sheet.css @@ -260,6 +260,7 @@ display: inline-block; } .charsheet .sheet-attributes { + margin-bottom: 32px; width: 100%; } .charsheet .sheet-attributes .sheet-attribute { @@ -290,6 +291,42 @@ vertical-align: top; width: 33%; } +.charsheet .sheet-attrsHeader { + margin-bottom: 10px; +} +.charsheet .sheet-attrsHeader h2 { + display: inline-block; + line-height: 1em; + max-width: 2in; + vertical-align: middle; +} +.charsheet .sheet-attrsHeader .sheet-boxedIcon { + display: inline-block; + height: 60px; + vertical-align: middle; + width: 60px; +} +.charsheet .sheet-attrsHeader .sheet-boxedIcon.sheet-iconChassis { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconChassis.png"); +} +.charsheet .sheet-attrsHeader .sheet-boxedIcon.sheet-iconCrux { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconCrux.png"); +} +.charsheet .sheet-attrsHeader .sheet-boxedIcon.sheet-iconIntelligence { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconIntelligence.png"); +} +.charsheet .sheet-attrsHeader .sheet-boxedIcon.sheet-iconMovement { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconMovement.png"); +} +.charsheet .sheet-attrsHeader .sheet-boxedIcon.sheet-iconPhysicalInteraction { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconPhysicalInteraction.png"); +} +.charsheet .sheet-attrsHeader .sheet-boxedIcon.sheet-iconThresholds { + background: url("https://raw.githubusercontent.com/Cazra/roll20-character-sheets/engineHeart/EngineHeart/img/iconThresholds.png"); +} +.charsheet .sheet-featuresDefects { + margin-bottom: 32px; +} .charsheet .sheet-featuresDefects table { font-size: 10px; margin-left: 8px; @@ -323,6 +360,7 @@ width: 55%; } .charsheet .sheet-secondaryAttrs { + margin-bottom: 32px; width: 100%; } .charsheet .sheet-secondaryAttrs .sheet-attribute { diff --git a/EngineHeart/sheet.html b/EngineHeart/sheet.html index 6d90f8f1e7..1a6060dee8 100644 --- a/EngineHeart/sheet.html +++ b/EngineHeart/sheet.html @@ -30,15 +30,15 @@
- +
-
+
-
+

INTELLIGENCE

@@ -136,9 +136,9 @@
-
+
-
+

CHASSIS

@@ -259,9 +259,9 @@
-
+
-
+

CRUX

@@ -363,10 +363,10 @@
-
+
-
- +
+

Physical interaction

@@ -440,10 +440,10 @@
-
+
-
- +
+

Movement

@@ -495,10 +495,10 @@
-
+
-
- +
+

Thresholds

diff --git a/EngineHeart/sheet.json b/EngineHeart/sheet.json index 47d8fb486d..cdc6adb732 100644 --- a/EngineHeart/sheet.json +++ b/EngineHeart/sheet.json @@ -4,5 +4,5 @@ "authors": "Stephen Lindberg", "preview": "sheet.png", "roll20userid": "46544", - "instructions": "# Engine Heart\r\rThis is a character sheet for the Kickstarter-funded system Engine Heart, a\rpost-apocalyptic game where humans left Earth. Now the little appliance robots \rthat were left behind fend for themselves, doing the best they can.\r\rEngine Heart official web site: http://www.viralgamespublishing.com/2.html\r\rPlease enjoy!\r" + "instructions": "# Engine Heart\r\rThis is a character sheet for the Kickstarter-funded system Engine Heart, a\rpost-apocalyptic game where humans left Earth. Now the little appliance robots\rthat were left behind fend for themselves, doing the best they can.\r\rEngine Heart official web site: http://www.viralgamespublishing.com/2.html\r\rIcon graphics used with permission from Viral Games.\r\rPlease enjoy!\r" } diff --git a/EngineHeart/sheet.png b/EngineHeart/sheet.png new file mode 100644 index 0000000000..6c60da8eff Binary files /dev/null and b/EngineHeart/sheet.png differ