adaptation stuff and reorg

This commit is contained in:
The Last Scrub
2020-07-12 22:50:53 -07:00
parent 5dc1e65072
commit f746bc81b3
5 changed files with 221 additions and 160 deletions
+36 -5
View File
@@ -130,6 +130,13 @@
flex-direction: column;
}
.flex-left {
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
text-align: left;
}
/* Styles limited to delta green sheets */
.deltagreen {
font-family: "Didact Gothic", "Roboto", sans-serif;
@@ -293,11 +300,7 @@ a.btn-tiny{
text-align: center;
}
span.breaking-point-label{
justify-content: right;
margin-right: 10px;
width: 100px;
}
span.left-aligned-label{
justify-content: left;
@@ -380,6 +383,34 @@ div span.bio-grid-label{
align-items: center;
}
.breaking-point-grid-3col{
display: grid;
grid-template-columns: 100px 70px 65px;
margin-top: 10px;
margin-bottom: 10px;
align-content: center;
justify-content: left;
align-items: center;
padding-bottom: 5px;
border-bottom: 1px solid #AAA;
}
.adaptation-grid-5col{
display: grid;
grid-template-columns: 100px 50px 50px 50px 100px;
margin-top: 10px;
margin-bottom: 10px;
align-content: center;
justify-content: left;
align-items: center;
padding-bottom: 5px;
border-bottom: 1px solid #AAA;
}
.bolded-label{
font-weight: bold;
}
.resource .labeled-resource-checkbox{
vertical-align: middle;
}
+1 -1
View File
@@ -312,7 +312,7 @@ export class DeltaGreenActorSheet extends ActorSheet {
// In this situation, the lethality threshold doubles (e.g. 20% would become 40%),
// and if the lethality roll fails, the damage is doubled per normal. However right now
// the attack roll and damage roll are completely separate... Perhaps in the future, use a
// hotkey to allow the doubling logic?
// button in the skill check roll to allow doubling this logic?
// try to determine what the d100 result would be as if it was two d10's being rolled
let damageDie1 = Math.floor(skillCheckTotal / 10);
+19 -11
View File
@@ -310,16 +310,16 @@
"value": 100,
"currentBreakingPoint": 101,
"adaptations": {
"violence": [
false,
false,
false
],
"helplessness": [
false,
false,
false
]
"violence": {
"incident1": false,
"incident2": false,
"incident3": false
},
"helplessness": {
"incident1": false,
"incident2": false,
"incident3": false
}
}
},
"physical":{
@@ -342,7 +342,8 @@
"weapon",
"armor",
"motivation",
"bond"
"bond",
"typedSkill"
],
"templates": {
"base": {
@@ -387,6 +388,13 @@
"base"
],
"score": 10
},
"typedSkill":{
"group": "Art",
"label": "New Skill",
"proficiency": 20,
"failure": false,
"cannotBeImprovedByFailure": false
}
}
}
+160 -138
View File
@@ -3,91 +3,70 @@
{{!-- Sheet Header --}}
<header class="sheet-header">
<div class="header-fields">
<div class="flexrow">
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="150" width="100"/>
<div class="horizontal-flex-column">
<div>
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="LAST NAME, FIRST NAME (AND ALIAS IF APPLICABLE)"/></h1>
</div>
<div>
<h2 class="profession"><input name="data.biography.profession" type="text" value="{{data.biography.profession}}" placeholder="PROFESSION (RANK IF APPLICABLE)"/></h1>
</div>
</div>
</div>
<div class="header-fields">
<div class="resources grid grid-2col">
{{!-- "flex-group-center" is also defined in the _grid.scss file
and it will add a small amount of padding, a border, and will
center all of its child elements content and text. --}}
<div class="resource flex-group-center">
<label for="data.health.value" class="resource-label">Health</label>
<div class="resource-content flexrow flex-center flex-between">
<input type="text" name="data.health.value" value="{{data.health.value}}" data-dtype="Number"/>
<span> / </span>
<span title="Maximum health is the average of STR + CON, rounded UP." class="max-attribute-value-label">{{numberFormat data.health.max decimals=0 sign=false}}</span>
</div>
{{!-- Name, Profession, Portrait --}}
<div class="flexrow">
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="150" width="100"/>
<div class="horizontal-flex-column">
<div>
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="LAST NAME, FIRST NAME (AND ALIAS IF APPLICABLE)"/></h1>
</div>
<div class="resource flex-group-center">
<label for="data.wp.value" class="resource-label">WP</label>
<div class="resource-content flexrow flex-center flex-between">
<input type="text" name="data.wp.value" value="{{data.wp.value}}" data-dtype="Number"/>
<span> / </span>
<span class="max-attribute-value-label" title="Maximum WP is equal to POW.">{{numberFormat data.wp.max decimals=0 sign=false}}</span>
</div>
<div>
<h2 class="profession"><input name="data.biography.profession" type="text" value="{{data.biography.profession}}" placeholder="PROFESSION (RANK IF APPLICABLE)"/></h1>
</div>
</div>
<div class="resources">
{{!-- "flex-group-center" is also defined in the _grid.scss file
and it will add a small amount of padding, a border, and will
center all of its child elements content and text. --}}
<div class="resource flex-group-center">
<label for="data.sanity.value" class="resource-label">SANITY</label>
<div class="resource-content flexrow flex-center flex-between">
<span class="rollable" data-rolltype="sanity" data-roll="d100" data-target="sanity" data-label="SAN" title="Click to roll a sanity check...">SAN</span>
<input title="Starting sanity is equal to POW x 5." type="text" name="data.sanity.value" value="{{data.sanity.value}}" data-dtype="Number"/>
<span> / </span>
<span title="Maximum sanity is equal to 99 - the Unnatural skill." class="max-attribute-value-label">{{numberFormat data.sanity.max decimals=0 sign=false}}</span>
<!-- <span class="statistic-mod rollable left-aligned-label" data-roll="d100" data-target="sanity" data-label="SAN">(SAN Test)</span> -->
<!-- <button id="btnSanityTest" class="btn-tiny sanity-test-btn" data-roll="d100" data-target="sanity" data-label="SAN" title="Click to roll a sanity check...">TEST</button> -->
<span> </span>
<span class="breaking-point-label"> Breaking Point: </span>
<!-- <span title="The current breaking point, resent when current sanity falls to or below this value." class="max-attribute-value-label">{{numberFormat data.sanity.currentBreakingPoint decimals=0 sign=false}}</span> -->
<input title="The current breaking point, reset when current sanity falls to or below this value." type="text" name="data.sanity.currentBreakingPoint" value="{{data.sanity.currentBreakingPoint}}" data-dtype="Number"/>
<a class="btn-tiny btn-reset-breaking-point" title="Reset breaking point to be current SAN - WP.">Reset</a>
</div>
</div>
</div>
{{!-- The grid classes are defined in scss/global/_grid.scss. To use,
use both the "grid" and "grid-Ncol" class where "N" can be any number
from 1 to 12 and will create that number of columns. --}}
<div class="grid grid-3col">
{{#each data.statistics as |statistic key|}}
<div class="flex-group-center">
<div class="horizontal-flex-column">
<div class="flexrow" style="padding: 5px;">
<label class="rollable" data-rolltype="statistic.x5" data-roll="d100" data-target="statistic.x5" data-label="{{key}}" title="Click to roll a x5 check." for="data.statistics.{{key}}.value" class="resource-label">{{toUpperCase key}}</label>
<input type="text" name="data.statistics.{{key}}.value" value="{{statistic.value}}" data-dtype="Number"/>
<span >({{numberFormat statistic.x5 decimals=0 sign=false}}%)</span>
</div>
<div >
<input type="text" name="data.statistics.{{key}}.distinguishing_feature" value="{{statistic.distinguishing_feature}}" data-dtype="String" />
</div>
</div>
</div>
{{/each}}
</div>
</div>
<div class="resources grid grid-3col">
{{!-- HP --}}
<div class="resource flex-group-center">
<label for="data.health.value" class="resource-label" title="Hit points, a character becomes unconsious at 2 HP, and dies at 0 HP.">HP</label>
<div class="resource-content flexrow flex-center flex-between">
<input type="text" name="data.health.value" value="{{data.health.value}}" data-dtype="Number"/>
<span> / </span>
<span title="Maximum health is the average of STR + CON, rounded UP." class="max-attribute-value-label">{{numberFormat data.health.max decimals=0 sign=false}}</span>
</div>
</div>
{{!-- WP --}}
<div class="resource flex-group-center">
<label for="data.wp.value" class="resource-label"
title="Willpower Points are mental fuel. Agents require Willpower Points to keep going despite exhaustion or mentally taxing situations. See page 47 of the Agent's Handbook for more detail."
>WP</label>
<div class="resource-content flexrow flex-center flex-between">
<input type="text" name="data.wp.value" value="{{data.wp.value}}" data-dtype="Number"/>
<span> / </span>
<span class="max-attribute-value-label" title="Maximum WP is equal to POW.">{{numberFormat data.wp.max decimals=0 sign=false}}</span>
</div>
</div>
{{!-- Sanity --}}
<div class="resource flex-group-center">
<label for="data.wp.value" class="resource-label rollable"
data-rolltype="sanity" data-roll="d100" data-target="sanity" data-label="SAN" title="Click to roll a sanity check..."
>SAN</label>
<div class="resource-content flexrow flex-center flex-between">
<input type="text" name="data.sanity.value" value="{{data.sanity.value}}" data-dtype="Number"
title="Current sanity, current breaking point is {{data.sanity.currentBreakingPoint}}, click the SAN label above to roll a sanity check."
/>
<span> / </span>
<span title="Maximum sanity is equal to 99 - the Unnatural skill." class="max-attribute-value-label">{{numberFormat data.sanity.max decimals=0 sign=false}}</span>
</div>
</div>
</div>
</div>
</header>
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="skills">Skills</a>
<a class="item" data-tab="physical">Physical</a>
<a class="item" data-tab="motivations">Mental</a>
<a class="item" data-tab="gear">Gear</a>
<a class="item" data-tab="bio">Biography</a>
<a class="item" data-tab="bonds">Bonds</a>
<a class="item" data-tab="motivations">Motivations</a>
<a class="item" data-tab="bio">C.V.</a>
<a class="item" data-tab="bonds">Contacts</a>
<a class="item fas fa-question-circle" data-tab="about"></a>
</nav>
@@ -106,34 +85,116 @@
{{/each}}
</div>
<div class="grid">
{{#each data.type_skills as |typeskill key|}}
<!-- <div class="statistic flexrow flex-group-left"></div> -->
<div class="flexrow flex-group-center">
<div>
<label class="skill-type-label" title="{{typeskill.examples}}">{{typeskill.label}}</label>
<a class="btn-tiny btn-add-typed-skill" title="Add another skill." data-typeskill="{{key}}">+</a>
<div>
<div class="item-controls">
<a class="item-control item-create" title="Create item" data-type="typedSkill"><i class="fas fa-plus"></i>Add Typed or Custom Skill</a>
</div>
<div class="grid-2col">
{{#each actor.items as |item id|}}
{{#if_eq item.type 'typedSkill'}}
<div class="item flexrow flex-group-center" data-item-id="{{item._id}}">
<label class="rollable skill-label" data-rolltype="skill" data-roll="d100" data-target="{{item.data.proficiency}}" data-label="{{item.data.label}}" title="Click to roll a skill check." >{{item.data.group}} ({{item.name}})</label>
<input class="percentile-skill-input" type="text" name="item.data.proficiency" value="{{item.data.proficiency}}" data-dtype="Number"/>
<input type="checkbox" name="item.data.failure" {{checked item.data.failure}} data-dtype="Boolean" {{#if item.data.cannotBeImprovedByFailure}} disabled {{/if}} />
<div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
<div>
{{#each typeskill.subskills as |subskill index|}}
<!-- <div class="flexrow flex-group-center"> -->
<div class="typed-skill-flexrow">
</div>
{{/if_eq}}
{{/each}}
</div>
</div>
</div>
{{!-- Subtyped Skills take the form: data.type_skills.art.types[0].proficiency where 'types' is an array of object. --}}
<a class="btn-tiny btn-remove-typed-skill" title="Add another skill." data-typeskill="{{key}}" data-index="{{@index}}">-</a>
<span class="rollable" data-rolltype="typeskill" data-roll="d100" data-target="{{this.proficiency}}" data-label="{{this.specialization}}" title="Click to roll a skill check." name="data.type_skills.{{key}}.subskills.{{@index}}.specialization" >{{this.specialization}}</span>
<input class="percentile-skill-input" type="text" name="data.type_skills.{{key}}.subskills.{{@index}}.proficiency" value="{{this.proficiency}}" data-dtype="Number"/>
<input type="checkbox" name="data.type_skills.{{key}}.subskills.{{@index}}.failure" {{checked this.failure}} data-dtype="Boolean" />
</div>
{{/each}}
{{!-- Physical Statistics like STR, CON, etc. --}}
<div class="tab physical" data-group="primary" data-tab="physical">
<div class="grid grid-3col">
{{#each data.statistics as |statistic key|}}
<div class="flex-group-center">
<div class="horizontal-flex-column">
<div class="flexrow" style="padding: 5px;">
<label class="rollable" data-rolltype="statistic.x5" data-roll="d100" data-target="statistic.x5" data-label="{{key}}" title="Click to roll a x5 check." for="data.statistics.{{key}}.value" class="resource-label">{{toUpperCase key}}</label>
<input type="text" name="data.statistics.{{key}}.value" value="{{statistic.value}}" data-dtype="Number"/>
<span >({{numberFormat statistic.x5 decimals=0 sign=false}}%)</span>
</div>
<div >
<input type="text" name="data.statistics.{{key}}.distinguishing_feature" value="{{statistic.distinguishing_feature}}" data-dtype="String" />
</div>
</div>
</div>
{{/each}}
</div>
</div>
{{!-- Motivations Tab --}}
<div class="tab motivations" data-group="primary" data-tab="motivations">
<div class="">
<div class="breaking-point-grid-3col">
<label class="bolded-label"> Breaking Point: </label>
<input title="The current breaking point, reset when current sanity falls to or below this value. The starting breaking point is SAN - POW." type="text" name="data.sanity.currentBreakingPoint" value="{{data.sanity.currentBreakingPoint}}" data-dtype="Number"/>
<a class="btn-tiny btn-reset-breaking-point" title="Reset breaking point to be current SAN - WP.">Reset</a>
</div>
<div class="">
<h4 class="bolded-label">Incidents of SAN Loss Without Going Insane</h4>
<div class="adaptation-grid-5col">
<Label>Violence</Label>
<input class="labeled-resource-checkbox" type="checkbox" name="data.sanity.adaptations.violence.incident1" {{checked data.sanity.adaptations.violence.incident1}} data-dtype="Boolean" />
<input class="labeled-resource-checkbox" type="checkbox" name="data.sanity.adaptations.violence.incident2" {{checked data.sanity.adaptations.violence.incident2}} data-dtype="Boolean" />
<input class="labeled-resource-checkbox" type="checkbox" name="data.sanity.adaptations.violence.incident3" {{checked data.sanity.adaptations.violence.incident3}} data-dtype="Boolean" />
<label>Adapted</label>
<label>Helplessness</label>
<input class="labeled-resource-checkbox" type="checkbox" name="data.sanity.adaptations.helplessness.incident1" {{checked data.sanity.adaptations.helplessness.incident1}} data-dtype="Boolean" />
<input class="labeled-resource-checkbox" type="checkbox" name="data.sanity.adaptations.helplessness.incident2" {{checked data.sanity.adaptations.helplessness.incident2}} data-dtype="Boolean" />
<input class="labeled-resource-checkbox" type="checkbox" name="data.sanity.adaptations.helplessness.incident3" {{checked data.sanity.adaptations.helplessness.incident3}} data-dtype="Boolean" />
<label>Adapted</label>
</div>
</div>
</div>
<div>
<ol class="items-list">
<li class="item flexrow item-header">
<div class="item-name">Motivations</div>
<div class="item-name">Disorders</div>
<div class="item-controls">
<a class="item-control item-create" title="Create item" data-type="motivation"><i class="fas fa-plus"></i> Add</a>
</div>
</li>
{{#each actor.items as |item id|}}
{{#if_eq item.type 'motivation'}}
<li class="item flexrow" data-item-id="{{item._id}}">
<h4 class="item-name"
{{#if item.data.crossedOut}}
style="text-decoration: line-through;"
{{/if}}
>
{{item.name}}
</h4>
{{#if item.data.crossedOut}}
<h4 class="item-name">{{item.data.disorder}}</h4>
{{/if}}
<div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/if_eq}}
{{/each}}
</ol>
</div>
</div>
{{!-- GEAR Tab --}}
<div class="tab items" data-group="primary" data-tab="gear">
<div>
@@ -147,7 +208,7 @@
<div class="item-name">Damage/Lethality</div>
<div class="item-name">Armor Piercing</div>
<div class="item-controls">
<a class="item-control item-create" title="Create item" data-type="weapon"><i class="fas fa-plus"></i> Add item</a>
<a class="item-control item-create" title="Create item" data-type="weapon"><i class="fas fa-plus"></i> Add</a>
</div>
</li>
@@ -170,7 +231,7 @@
</h4>
{{#unless item.data.isLethal}}
<span class="rollable" data-rolltype="damage" data-target="damage" data-label="{{toUpperCase item.data.damage}}" data-roll="{{toUpperCase item.data.damage}}">
<span class="rollable" data-rolltype="damage" data-target="damage" data-label="{{toUpperCase item.name}}" data-roll="{{toUpperCase item.data.damage}}">
{{toUpperCase item.data.damage}}
</span>
{{/unless}}
@@ -203,7 +264,7 @@
<div class="item-name">Armor Rating</div>
<div class="item-name"></div> <!-- This is for whether it's equipped or not, probably doesn't need a label. -->
<div class="item-controls">
<a class="item-control item-create" title="Create item" data-type="armor"><i class="fas fa-plus"></i> Add item</a>
<a class="item-control item-create" title="Create item" data-type="armor"><i class="fas fa-plus"></i> Add</a>
</div>
</li>
@@ -272,7 +333,7 @@
<div class="item-name">Name</div>
<div class="item-name">Score</div>
<div class="item-controls">
<a class="item-control item-create" title="Create item" data-type="bond"><i class="fas fa-plus"></i> Add item</a>
<a class="item-control item-create" title="Create item" data-type="bond"><i class="fas fa-plus"></i> Add</a>
</div>
</li>
@@ -294,46 +355,7 @@
</div>
</div>
{{!-- Motivations Tab --}}
<div class="tab motivations" data-group="primary" data-tab="motivations">
<div>
<ol class="items-list">
<li class="item flexrow item-header">
<div class="item-name">Motivation</div>
<div class="item-name">Disorder</div>
<div class="item-controls">
<a class="item-control item-create" title="Create item" data-type="motivation"><i class="fas fa-plus"></i> Add item</a>
</div>
</li>
{{#each actor.items as |item id|}}
{{#if_eq item.type 'motivation'}}
<li class="item flexrow" data-item-id="{{item._id}}">
<h4 class="item-name"
{{#if item.data.crossedOut}}
style="text-decoration: line-through;"
{{/if}}
>
{{item.name}}
</h4>
{{#if item.data.crossedOut}}
<h4 class="item-name">{{item.data.disorder}}</h4>
{{/if}}
<div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/if_eq}}
{{/each}}
</ol>
</div>
</div>
{{!-- About Tab --}}
<div class="tab items" data-group="primary" data-tab="about">
@@ -8,10 +8,7 @@
<label class="resource-label">Quantity</label>
<input type="text" name="data.quantity" value="{{data.quantity}}" data-dtype="Number"/>
</div>
<div class="resource">
<label class="resource-label">Weight</label>
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
</div>
</div>
</div>
</header>
@@ -32,7 +29,10 @@
{{!-- Attributes Tab --}}
<div class="tab attributes" data-group="primary" data-tab="attributes">
{{!-- As you add new fields, add them in here! --}}
<div class="resource">
<label class="resource-label">Group</label>
<input type="text" name="data.group" value="{{data.group}}" data-dtype="String"/>
</div>
</div>
</section>
</form>