Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fec95c51c6 | ||
|
|
425c42d049 | ||
|
|
ab6f0c4f5b | ||
|
|
5d6e57b896 | ||
|
|
7c0a8125f2 | ||
|
|
7481ef08a8 | ||
|
|
b578dd5fb0 | ||
|
|
5d6f934d88 | ||
|
|
337f0bfa8a | ||
|
|
c62784894b | ||
|
|
75fff43d7d | ||
|
|
a9eeeac0df | ||
|
|
c8af0ff0a9 | ||
|
|
9e200db7b9 | ||
|
|
c08cf83096 | ||
|
|
d9368b06d0 | ||
|
|
2703367681 | ||
|
|
d419442549 | ||
|
|
99df01c950 | ||
|
|
d76349b3bb | ||
|
|
39c061f4e8 | ||
|
|
6d167ddb22 | ||
|
|
037acbd459 | ||
|
|
4d3fc3bb09 | ||
|
|
4b984d4fac | ||
|
|
58843613ba | ||
|
|
39b549b24b | ||
|
|
c79177de72 | ||
|
|
11d09b1487 | ||
|
|
0e4918d57d | ||
|
|
949f313af2 | ||
|
|
85b63f152f | ||
|
|
2141d52a7a | ||
|
|
4c84235064 | ||
|
|
0e194a5408 | ||
|
|
4b60eac330 | ||
|
|
cb017c359d |
1
rpg-docs/.gitignore
vendored
1
rpg-docs/.gitignore
vendored
@@ -1,5 +1,6 @@
|
|||||||
.meteor/local
|
.meteor/local
|
||||||
.meteor/meteorite
|
.meteor/meteorite
|
||||||
|
settings.json
|
||||||
public/components
|
public/components
|
||||||
nohup.out
|
nohup.out
|
||||||
dump
|
dump
|
||||||
@@ -27,3 +27,5 @@ fourseven:scss@2.1.1
|
|||||||
wolves:bourbon
|
wolves:bourbon
|
||||||
meteorhacks:subs-manager
|
meteorhacks:subs-manager
|
||||||
meteorhacks:kadira
|
meteorhacks:kadira
|
||||||
|
chuangbo:marked
|
||||||
|
reywood:iron-router-ga
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ blaze-tools@1.0.3
|
|||||||
boilerplate-generator@1.0.3
|
boilerplate-generator@1.0.3
|
||||||
callback-hook@1.0.3
|
callback-hook@1.0.3
|
||||||
check@1.0.5
|
check@1.0.5
|
||||||
|
chuangbo:marked@0.3.5
|
||||||
coffeescript@1.0.6
|
coffeescript@1.0.6
|
||||||
dburles:collection-helpers@1.0.3
|
dburles:collection-helpers@1.0.3
|
||||||
dburles:mongo-collection-instances@0.3.3
|
dburles:mongo-collection-instances@0.3.3
|
||||||
@@ -70,6 +71,7 @@ reactive-dict@1.1.0
|
|||||||
reactive-var@1.0.5
|
reactive-var@1.0.5
|
||||||
reload@1.1.3
|
reload@1.1.3
|
||||||
retry@1.0.3
|
retry@1.0.3
|
||||||
|
reywood:iron-router-ga@0.6.0
|
||||||
routepolicy@1.0.5
|
routepolicy@1.0.5
|
||||||
service-configuration@1.0.4
|
service-configuration@1.0.4
|
||||||
session@1.1.0
|
session@1.1.0
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ Schemas.Character = new SimpleSchema({
|
|||||||
age: {type: Schemas.Attribute},
|
age: {type: Schemas.Attribute},
|
||||||
ageRate: {type: Schemas.Attribute},
|
ageRate: {type: Schemas.Attribute},
|
||||||
armor: {type: Schemas.Attribute},
|
armor: {type: Schemas.Attribute},
|
||||||
|
carryMultiplier: {type: Schemas.Attribute},
|
||||||
|
|
||||||
//resources
|
//resources
|
||||||
level1SpellSlots: {type: Schemas.Attribute},
|
level1SpellSlots: {type: Schemas.Attribute},
|
||||||
|
|||||||
@@ -107,6 +107,18 @@ if (Meteor.isServer) Characters.after.insert(function(userId, char) {
|
|||||||
group: "Inate",
|
group: "Inate",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
Effects.insert({
|
||||||
|
charId: char._id,
|
||||||
|
name: "Natural Carrying Capacity",
|
||||||
|
stat: "carryMultiplier",
|
||||||
|
operation: "base",
|
||||||
|
value: "1",
|
||||||
|
parent: {
|
||||||
|
id: char._id,
|
||||||
|
collection: "Characters",
|
||||||
|
group: "Inate",
|
||||||
|
},
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
Effects.attachBehaviour("softRemovable");
|
Effects.attachBehaviour("softRemovable");
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ Schemas.Proficiency = new SimpleSchema({
|
|||||||
Proficiencies.attachSchema(Schemas.Proficiency);
|
Proficiencies.attachSchema(Schemas.Proficiency);
|
||||||
|
|
||||||
Proficiencies.attachBehaviour("softRemovable");
|
Proficiencies.attachBehaviour("softRemovable");
|
||||||
makeChild(Proficiencies);
|
makeChild(Proficiencies, ["enabled"]);
|
||||||
|
|
||||||
Proficiencies.allow(CHARACTER_SUBSCHEMA_ALLOW);
|
Proficiencies.allow(CHARACTER_SUBSCHEMA_ALLOW);
|
||||||
Proficiencies.deny(CHARACTER_SUBSCHEMA_DENY);
|
Proficiencies.deny(CHARACTER_SUBSCHEMA_DENY);
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ TemporaryHitPoints = new Mongo.Collection("temporaryHitPoints");
|
|||||||
Schemas.TemporaryHitPoints = new SimpleSchema({
|
Schemas.TemporaryHitPoints = new SimpleSchema({
|
||||||
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
|
charId: {type: String, regEx: SimpleSchema.RegEx.Id},
|
||||||
name: {type: String, optional: true},
|
name: {type: String, optional: true},
|
||||||
maximum: {type: Number, defaultValue: 0},
|
maximum: {type: Number, defaultValue: 0, min: 0, max: 500},
|
||||||
used: {type: Number, defaultValue: 0},
|
used: {type: Number, defaultValue: 0, min: 0, max: 500},
|
||||||
deleteOnZero:{type: Boolean, defaultValue: false},
|
deleteOnZero:{type: Boolean, defaultValue: false},
|
||||||
dateAdded: {
|
dateAdded: {
|
||||||
type: Date,
|
type: Date,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
Router.configure({
|
Router.configure({
|
||||||
loadingTemplate: "loading",
|
loadingTemplate: "loading",
|
||||||
layoutTemplate: "layout",
|
layoutTemplate: "layout",
|
||||||
|
trackPageView: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
Router.plugin("ensureSignedIn", {
|
Router.plugin("ensureSignedIn", {
|
||||||
@@ -56,6 +57,12 @@ Router.map(function() {
|
|||||||
document.title = name;
|
document.title = name;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
//analytics
|
||||||
|
trackPageView: false,
|
||||||
|
onRun: function() {
|
||||||
|
window.ga && window.ga("send", "pageview", "/character");
|
||||||
|
this.next();
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
this.route("loading", {
|
this.route("loading", {
|
||||||
|
|||||||
@@ -77,10 +77,10 @@ this.GlobalUI = (function() {
|
|||||||
|
|
||||||
var throttleBack = _.throttle(function() {
|
var throttleBack = _.throttle(function() {
|
||||||
history.back();
|
history.back();
|
||||||
}, 800, {trailing: false});
|
}, 100, {trailing: false});
|
||||||
|
|
||||||
GlobalUI.closeDetail = function() {
|
GlobalUI.closeDetail = function() {
|
||||||
if (!!(window.history && window.history.pushState)) {
|
if (window.history && history.pushState && history.state.detail === "opened") {
|
||||||
throttleBack();
|
throttleBack();
|
||||||
} else {
|
} else {
|
||||||
Session.set("global.ui.detailShow", false);
|
Session.set("global.ui.detailShow", false);
|
||||||
|
|||||||
@@ -3,17 +3,24 @@
|
|||||||
$thickColumnWidth: 304px;
|
$thickColumnWidth: 304px;
|
||||||
$thinColumnWidth: 240px;
|
$thinColumnWidth: 240px;
|
||||||
|
|
||||||
//Column layouts of cards
|
//Column layout
|
||||||
.column-container {
|
.column-container {
|
||||||
@include column-fill(balance);
|
@include column-fill(balance);
|
||||||
@include column-gap(8px);
|
@include column-gap(0px);
|
||||||
@include column-width($thickColumnWidth);
|
@include column-width($thickColumnWidth);
|
||||||
padding: 8px;
|
padding: 4px;
|
||||||
|
|
||||||
&.thin-columns {
|
&.thin-columns {
|
||||||
@include column-count(4);
|
@include column-count(4);
|
||||||
@include column-width($thinColumnWidth);
|
@include column-width($thinColumnWidth);
|
||||||
}
|
}
|
||||||
|
& > div {
|
||||||
|
padding: 4px;
|
||||||
|
//stop divs breaking over multiple columns
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
page-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Cards
|
//Cards
|
||||||
@@ -21,20 +28,6 @@ $thinColumnWidth: 240px;
|
|||||||
background: white;
|
background: white;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
|
|
||||||
.column-container & {
|
|
||||||
margin-bottom: 8px;
|
|
||||||
width: 100%;
|
|
||||||
//hack to stop flickering
|
|
||||||
-webkit-backface-visibility: hidden;
|
|
||||||
-webkit-transform: translateX(0);
|
|
||||||
//stop breaking over column divide
|
|
||||||
-webkit-column-break-inside: avoid;
|
|
||||||
page-break-inside: avoid;
|
|
||||||
break-inside: avoid;
|
|
||||||
//Fixes extra margin at top of columns
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top {
|
.top {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ core-header-panel[drawer] {
|
|||||||
box-shadow: 2px 0px 5px 0px rgba(0,0,0,0.2);
|
box-shadow: 2px 0px 5px 0px rgba(0,0,0,0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Paragraphs
|
||||||
|
p {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
//Horizontal rule
|
//Horizontal rule
|
||||||
hr {
|
hr {
|
||||||
background-color: #444;
|
background-color: #444;
|
||||||
@@ -37,7 +42,7 @@ hr {
|
|||||||
color: #444;
|
color: #444;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
line-height: 0;
|
line-height: 0;
|
||||||
margin: 16px -16px;
|
margin: 16px 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
td {
|
td {
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
&:nth-child(1) {
|
|
||||||
min-width: 100px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.strengthTable{
|
.strengthTable{
|
||||||
|
|||||||
@@ -44,7 +44,8 @@
|
|||||||
label="Value"
|
label="Value"
|
||||||
floatinglabel
|
floatinglabel
|
||||||
value={{effectValue}}
|
value={{effectValue}}
|
||||||
flex>
|
flex
|
||||||
|
style="flex-basis: 100px;">
|
||||||
</paper-input>
|
</paper-input>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ var stats = [
|
|||||||
{stat: "rageDamage", name: "Rage Damage", group: "Stats"},
|
{stat: "rageDamage", name: "Rage Damage", group: "Stats"},
|
||||||
{stat: "expertiseDice", name: "Expertise Dice", group: "Stats"},
|
{stat: "expertiseDice", name: "Expertise Dice", group: "Stats"},
|
||||||
{stat: "superiorityDice", name: "Superiority Dice", group: "Stats"},
|
{stat: "superiorityDice", name: "Superiority Dice", group: "Stats"},
|
||||||
|
{stat: "carryMultiplier", name: "Carry Capacity Multiplier", group: "Stats"},
|
||||||
{stat: "level1SpellSlots", name: "level 1", group: "Spell Slots"},
|
{stat: "level1SpellSlots", name: "level 1", group: "Spell Slots"},
|
||||||
{stat: "level2SpellSlots", name: "level 2", group: "Spell Slots"},
|
{stat: "level2SpellSlots", name: "level 2", group: "Spell Slots"},
|
||||||
{stat: "level3SpellSlots", name: "level 3", group: "Spell Slots"},
|
{stat: "level3SpellSlots", name: "level 3", group: "Spell Slots"},
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ var stats = {
|
|||||||
"rageDamage":{"name":"Rage Damage"},
|
"rageDamage":{"name":"Rage Damage"},
|
||||||
"expertiseDice":{"name":"Expertise Dice"},
|
"expertiseDice":{"name":"Expertise Dice"},
|
||||||
"superiorityDice":{"name":"Superiority Dice"},
|
"superiorityDice":{"name":"Superiority Dice"},
|
||||||
|
"carryMultiplier": {"name": "Carry Capacity Multiplier"},
|
||||||
"level1SpellSlots":{"name":"level 1 Spell Slots"},
|
"level1SpellSlots":{"name":"level 1 Spell Slots"},
|
||||||
"level2SpellSlots":{"name":"level 2 Spell Slots"},
|
"level2SpellSlots":{"name":"level 2 Spell Slots"},
|
||||||
"level3SpellSlots":{"name":"level 3 Spell Slots"},
|
"level3SpellSlots":{"name":"level 3 Spell Slots"},
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if description}}
|
{{#if description}}
|
||||||
<div class="pre-wrap">{{evaluateString charId description}}</div>
|
<div>{{#markdown}}{{evaluateString charId description}}{{/markdown}}</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{> effectsViewList charId=charId parentId=_id}}
|
{{> effectsViewList charId=charId parentId=_id}}
|
||||||
|
|||||||
@@ -12,8 +12,9 @@
|
|||||||
{{>resource name="sorceryPoints" title="Sorcery Points" color="teal" char=this}}
|
{{>resource name="sorceryPoints" title="Sorcery Points" color="teal" char=this}}
|
||||||
<!--superiorityDice-->
|
<!--superiorityDice-->
|
||||||
{{>resource name="superiorityDice" title="Superiority Dice" color="teal" char=this}}
|
{{>resource name="superiorityDice" title="Superiority Dice" color="teal" char=this}}
|
||||||
|
|
||||||
<!--Attacks-->
|
<!--Attacks-->
|
||||||
|
<div>
|
||||||
<paper-shadow class="card">
|
<paper-shadow class="card">
|
||||||
<div class="top white">
|
<div class="top white">
|
||||||
Attacks
|
Attacks
|
||||||
@@ -48,8 +49,10 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!--Proficiencies-->
|
<!--Proficiencies-->
|
||||||
|
<div>
|
||||||
<paper-shadow class="card">
|
<paper-shadow class="card">
|
||||||
<div class="white top">
|
<div class="white top">
|
||||||
Proficiencies
|
Proficiencies
|
||||||
@@ -75,13 +78,15 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!--features-->
|
<!--features-->
|
||||||
{{#each features}}
|
{{#each features}}
|
||||||
|
<div>
|
||||||
<paper-shadow class="card featureCard"
|
<paper-shadow class="card featureCard"
|
||||||
hero-id="main" {{detailHero}}>
|
hero-id="main" {{detailHero}}>
|
||||||
<div class="top {{colorClass}} subhead"
|
<div class="top {{colorClass}} subhead"
|
||||||
layout horizontal
|
layout horizontal
|
||||||
hero-id="toolbar" {{detailHero}}>
|
hero-id="toolbar" {{detailHero}}>
|
||||||
<div flex hero-id="title" {{detailHero}}>
|
<div flex hero-id="title" {{detailHero}}>
|
||||||
{{name}}
|
{{name}}
|
||||||
@@ -94,7 +99,7 @@
|
|||||||
{{#if canEnable}}
|
{{#if canEnable}}
|
||||||
<core-tooltip label="Feature enabled"
|
<core-tooltip label="Feature enabled"
|
||||||
position="left">
|
position="left">
|
||||||
<paper-checkbox class="enabledCheckbox"
|
<paper-checkbox class="enabledCheckbox"
|
||||||
checked={{enabled}}
|
checked={{enabled}}
|
||||||
disabled={{#unless canEditCharacter charId}}true{{/unless}}>
|
disabled={{#unless canEditCharacter charId}}true{{/unless}}>
|
||||||
</paper-checkbox>
|
</paper-checkbox>
|
||||||
@@ -102,34 +107,36 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{#if description}}
|
{{#if description}}
|
||||||
<div flex class="bottom text"
|
<div flex class="bottom">
|
||||||
>{{evaluateString charId shortDescription}}</div>
|
{{#markdown}}{{evaluateString charId shortDescription}}{{/markdown}}
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if hasUses}}
|
{{#if hasUses}}
|
||||||
<div layout horizontal center end-justified>
|
<div layout horizontal center end-justified>
|
||||||
<paper-button class="useFeature"
|
<paper-button class="useFeature"
|
||||||
disabled={{noUsesLeft}}>
|
disabled={{noUsesLeft}}>
|
||||||
Use
|
Use
|
||||||
</paper-button>
|
</paper-button>
|
||||||
<paper-button class="resetFeature"
|
<paper-button class="resetFeature"
|
||||||
disabled={{usesFull}}>
|
disabled={{usesFull}}>
|
||||||
Reset
|
Reset
|
||||||
</paper-button>
|
</paper-button>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<div class="fab-buffer"></div>
|
<div class="fab-buffer"></div>
|
||||||
</div>
|
</div>
|
||||||
{{#if canEditCharacter _id}}
|
{{#if canEditCharacter _id}}
|
||||||
<paper-fab id="addFeature"
|
<paper-fab id="addFeature"
|
||||||
class="floatyButton"
|
class="floatyButton"
|
||||||
icon="add"
|
icon="add"
|
||||||
title="Add"
|
title="Add"
|
||||||
role="button"
|
role="button"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
aria-label="Add"
|
aria-label="Add"
|
||||||
hero-id="main"></paper-fab>
|
hero-id="main"></paper-fab>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
@@ -137,15 +144,16 @@
|
|||||||
|
|
||||||
<template name="resource">
|
<template name="resource">
|
||||||
{{#if characterCalculate "attributeBase" char._id name}}
|
{{#if characterCalculate "attributeBase" char._id name}}
|
||||||
<paper-shadow class="card"
|
<div>
|
||||||
|
<paper-shadow class="card"
|
||||||
hero-id="main" {{detailHero name char._id}}
|
hero-id="main" {{detailHero name char._id}}
|
||||||
layout horizontal>
|
layout horizontal>
|
||||||
<div class="left {{getColor}} display1 white-text"
|
<div class="left {{getColor}} display1 white-text"
|
||||||
hero-id="toolbar" {{detailHero name char._id}}
|
hero-id="toolbar" {{detailHero name char._id}}
|
||||||
layout horizontal center>
|
layout horizontal center>
|
||||||
<div style="margin-right: 8px;">
|
<div style="margin-right: 8px;">
|
||||||
<paper-icon-button class="resourceUp"
|
<paper-icon-button class="resourceUp"
|
||||||
icon="arrow-drop-up"
|
icon="arrow-drop-up"
|
||||||
disabled={{cantIncrement}}>
|
disabled={{cantIncrement}}>
|
||||||
</paper-icon-button>
|
</paper-icon-button>
|
||||||
<paper-icon-button class="resourceDown"
|
<paper-icon-button class="resourceDown"
|
||||||
@@ -156,10 +164,11 @@
|
|||||||
<div>{{characterCalculate "attributeValue" char._id name}}</div>
|
<div>{{characterCalculate "attributeValue" char._id name}}</div>
|
||||||
<!--<div>/{{char.attributeBase name}}</div>-->
|
<!--<div>/{{char.attributeBase name}}</div>-->
|
||||||
</div>
|
</div>
|
||||||
<div class="right clickable"
|
<div class="right clickable"
|
||||||
flex layout horizontal center>
|
flex layout horizontal center>
|
||||||
{{title}}
|
{{title}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Template.features.helpers({
|
|||||||
},
|
},
|
||||||
shortDescription: function() {
|
shortDescription: function() {
|
||||||
if (_.isString(this.description)){
|
if (_.isString(this.description)){
|
||||||
return this.description.split(/[\n\r]{3,}/)[0];
|
return this.description.split(/^( *[-*_]){3,} *(?:\n+|$)/m)[0];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
hasUses: function(){
|
hasUses: function(){
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ var getFractionCarried = function(char) {
|
|||||||
});
|
});
|
||||||
//get strength
|
//get strength
|
||||||
var strength = Characters.calculate.attributeValue(char._id, "strength");
|
var strength = Characters.calculate.attributeValue(char._id, "strength");
|
||||||
var capacity = strength * 15;
|
var carryMultiplier = Characters.calculate
|
||||||
|
.attributeValue(char._id, "carryMultiplier");
|
||||||
|
var capacity = strength * 15 * carryMultiplier;
|
||||||
return weight / capacity;
|
return weight / capacity;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,6 @@
|
|||||||
</div>
|
</div>
|
||||||
{{#if description}}
|
{{#if description}}
|
||||||
<hr class="vertMargin">
|
<hr class="vertMargin">
|
||||||
<div class="pre-wrap">{{evaluateString charId description}}</div>
|
<div>{{#markdown}}{{evaluateString charId description}}{{/markdown}}</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
<div id="inventory" class="scroll-y" fit>
|
<div id="inventory" class="scroll-y" fit>
|
||||||
<div class="column-container">
|
<div class="column-container">
|
||||||
<!--Net Worth-->
|
<!--Net Worth-->
|
||||||
|
<div>
|
||||||
<paper-shadow class="card">
|
<paper-shadow class="card">
|
||||||
<div class="white top" layout horizontal center>
|
<div class="white top" layout horizontal center>
|
||||||
<div class="subhead" flex>
|
<div class="subhead" flex>
|
||||||
@@ -13,7 +14,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
<!--Weight Carried-->
|
<!--Weight Carried-->
|
||||||
|
<div>
|
||||||
<paper-shadow class="card"
|
<paper-shadow class="card"
|
||||||
hero-id="main" {{detailHero "weightCarried" _id}}>
|
hero-id="main" {{detailHero "weightCarried" _id}}>
|
||||||
<div class="top green white-text weightCarried"
|
<div class="top green white-text weightCarried"
|
||||||
@@ -48,7 +51,9 @@
|
|||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
<!--Equipment-->
|
<!--Equipment-->
|
||||||
|
<div>
|
||||||
<paper-shadow class="card equipmentContainer">
|
<paper-shadow class="card equipmentContainer">
|
||||||
<div class="white top" layout horizontal center>
|
<div class="white top" layout horizontal center>
|
||||||
<div class="subhead" flex>
|
<div class="subhead" flex>
|
||||||
@@ -76,7 +81,9 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
<!--Carried Items-->
|
<!--Carried Items-->
|
||||||
|
<div>
|
||||||
<paper-shadow class="card carriedContainer">
|
<paper-shadow class="card carriedContainer">
|
||||||
<div class="white top" layout horizontal center>
|
<div class="white top" layout horizontal center>
|
||||||
<div class="subhead" flex>
|
<div class="subhead" flex>
|
||||||
@@ -95,8 +102,10 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
{{#each containers}}
|
{{#each containers}}
|
||||||
<paper-shadow class="card itemContainer"
|
<div>
|
||||||
|
<paper-shadow class="card itemContainer"
|
||||||
hero-id="main" {{detailHero}}>
|
hero-id="main" {{detailHero}}>
|
||||||
<div class="top {{colorClass}}"
|
<div class="top {{colorClass}}"
|
||||||
hero-id="toolbar" {{detailHero}}
|
hero-id="toolbar" {{detailHero}}
|
||||||
@@ -124,6 +133,7 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<div class="fab-buffer"></div>
|
<div class="fab-buffer"></div>
|
||||||
|
|||||||
@@ -18,8 +18,8 @@
|
|||||||
{{#if requiresAttunement}}<div class="vertMargin">Requires Attunement</div>{{/if}}
|
{{#if requiresAttunement}}<div class="vertMargin">Requires Attunement</div>{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{#if description}}
|
{{#if description}}
|
||||||
<hr class="vertMargin">
|
<hr style="margin: 16px 0 16px 0;">
|
||||||
<div class="pre-wrap">{{evaluateString charId description}}</div>
|
<div>{{#markdown}}{{evaluateString charId description}}{{/markdown}}</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{> effectsViewList charId=charId parentId=_id}}
|
{{> effectsViewList charId=charId parentId=_id}}
|
||||||
{{> attacksViewList charId=charId parentId=_id}}
|
{{> attacksViewList charId=charId parentId=_id}}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{{#if description}}
|
{{#if description}}
|
||||||
<hr class="vertMargin">
|
<hr class="vertMargin">
|
||||||
<div class="pre-wrap">{{description}}</div>
|
<div>{{#markdown}}{{description}}{{/markdown}}</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{> experienceEdit}}
|
{{> experienceEdit}}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div id="journal" class="scroll-y" fit>
|
<div id="journal" class="scroll-y" fit>
|
||||||
<div class="column-container">
|
<div class="column-container">
|
||||||
<!--Experience Table-->
|
<!--Experience Table-->
|
||||||
<paper-shadow class="card experiencesCard"
|
<div><paper-shadow class="card experiencesCard"
|
||||||
hero-id="main" {{detailHero}}>
|
hero-id="main" {{detailHero}}>
|
||||||
<div class="top white subhead"
|
<div class="top white subhead"
|
||||||
hero-id="toolbar" {{detailHero}}
|
hero-id="toolbar" {{detailHero}}
|
||||||
@@ -37,9 +37,9 @@
|
|||||||
</paper-button>
|
</paper-button>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</paper-shadow>
|
</paper-shadow></div>
|
||||||
<!--Class Table-->
|
<!--Class Table-->
|
||||||
<paper-shadow class="card"
|
<div><paper-shadow class="card"
|
||||||
hero-id="main" {{detailHero}}>
|
hero-id="main" {{detailHero}}>
|
||||||
<div class="white top"
|
<div class="white top"
|
||||||
hero-id="toolbar" {{detailHero}}
|
hero-id="toolbar" {{detailHero}}
|
||||||
@@ -78,29 +78,31 @@
|
|||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow></div>
|
||||||
<!--Notes-->
|
<!--Notes-->
|
||||||
{{#each notes}}
|
{{#each notes}}
|
||||||
|
<div>
|
||||||
<paper-shadow class="card" hero-id="main" {{detailHero}}>
|
<paper-shadow class="card" hero-id="main" {{detailHero}}>
|
||||||
<div class="top {{colorClass}} noteTop subhead"
|
<div class="top {{colorClass}} noteTop subhead"
|
||||||
hero-id="toolbar" {{detailHero}}
|
hero-id="toolbar" {{detailHero}}
|
||||||
layout horizontal center>
|
layout horizontal center>
|
||||||
{{name}}
|
{{name}}
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom text">{{description}}</div>
|
<div class="bottom">{{#markdown}}{{description}}{{/markdown}}</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<div class="fab-buffer"></div>
|
<div class="fab-buffer"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{#if canEditCharacter _id}}
|
{{#if canEditCharacter _id}}
|
||||||
<paper-fab id="addNote"
|
<paper-fab id="addNote"
|
||||||
class="floatyButton"
|
class="floatyButton"
|
||||||
icon="add"
|
icon="add"
|
||||||
title="Add"
|
title="Add"
|
||||||
role="button"
|
role="button"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
hero-id="main"></paper-fab>
|
hero-id="main"></paper-fab>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template name="noteDialog">
|
<template name="noteDialog">
|
||||||
{{#with note}}
|
{{#with note}}
|
||||||
{{#baseDialog title=name class=colorClass startEditing=../startEditing}}
|
{{#baseDialog title=name class=colorClass startEditing=../startEditing}}
|
||||||
<div class="pre-wrap">{{description}}</div>
|
<div>{{#markdown}}{{description}}{{/markdown}}</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
{{> noteDialogEdit}}
|
{{> noteDialogEdit}}
|
||||||
{{/baseDialog}}
|
{{/baseDialog}}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template name="backgroundDialog">
|
<template name="backgroundDialog">
|
||||||
{{#baseDialog title=title class=colorClass hideColor="true" hideDelete="true"}}
|
{{#baseDialog title=title class=colorClass hideColor="true" hideDelete="true"}}
|
||||||
<div class="pre-wrap">{{evaluateString charId value}}</div>
|
<div>{{#markdown}}{{evaluateString charId value}}{{/markdown}}</div>
|
||||||
{{> proficiencyViewList charId=charId parentId=charId parentGroup="background"}}
|
{{> proficiencyViewList charId=charId parentId=charId parentGroup="background"}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{> textDialogEdit}}
|
{{> textDialogEdit}}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
<div id="persona" class="scroll-y" fit>
|
<div id="persona" class="scroll-y" fit>
|
||||||
<div class="column-container">
|
<div class="column-container">
|
||||||
{{#with characterDetails}}
|
{{#with characterDetails}}
|
||||||
|
<div>
|
||||||
<paper-shadow class="card"
|
<paper-shadow class="card"
|
||||||
hero-id="main" {{detailHero "details" _id}}>
|
hero-id="main" {{detailHero "details" _id}}>
|
||||||
{{#unless picture}}
|
{{#unless picture}}
|
||||||
@@ -32,13 +33,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
{{/with}}
|
{{/with}}
|
||||||
{{> containerCard characterField "description" "Description"}}
|
<div>{{> containerCard characterField "description" "Description"}}</div>
|
||||||
{{> containerCard characterField "personality" "Personality Traits"}}
|
<div>{{> containerCard characterField "personality" "Personality Traits"}}</div>
|
||||||
{{> containerCard characterField "ideals" "Ideals"}}
|
<div>{{> containerCard characterField "ideals" "Ideals"}}</div>
|
||||||
{{> containerCard characterField "bonds" "Bonds"}}
|
<div>{{> containerCard characterField "bonds" "Bonds"}}</div>
|
||||||
{{> containerCard characterField "flaws" "Flaws"}}
|
<div>{{> containerCard characterField "flaws" "Flaws"}}</div>
|
||||||
{{> containerCard characterField "backstory" "Background"}}
|
<div>{{> containerCard characterField "backstory" "Background"}}</div>
|
||||||
|
<div>
|
||||||
<paper-shadow class="card">
|
<paper-shadow class="card">
|
||||||
<div class="white top subhead">
|
<div class="white top subhead">
|
||||||
Languages
|
Languages
|
||||||
@@ -49,6 +52,7 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -68,6 +72,6 @@
|
|||||||
{{title}}
|
{{title}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom text">{{> UI.contentBlock}}</div>
|
<div class="bottom">{{#markdown}}{{> UI.contentBlock}}{{/markdown}}</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template name="textDialog">
|
<template name="textDialog">
|
||||||
{{#baseDialog title=title class=colorClass hideColor="true" hideDelete="true" startEditing=startEditing}}
|
{{#baseDialog title=title class=colorClass hideColor="true" hideDelete="true" startEditing=startEditing}}
|
||||||
<div class="pre-wrap">{{evaluateString charId value}}</div>
|
<div>{{#markdown}}{{evaluateString charId value}}{{/markdown}}</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
{{> textDialogEdit}}
|
{{> textDialogEdit}}
|
||||||
{{/baseDialog}}
|
{{/baseDialog}}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
<div class="pre-wrap">{{evaluateString charId description}}</div>
|
<div>{{#markdown}}{{evaluateString charId description}}{{/markdown}}</div>
|
||||||
{{> attacksViewList charId=charId parentId=_id}}
|
{{> attacksViewList charId=charId parentId=_id}}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
<hr class="vertMargin">
|
<hr class="vertMargin">
|
||||||
<div class="pre-wrap">{{evaluateString charId description}}</div>
|
<div>{{#markdown}}{{evaluateString charId description}}{{/markdown}}</div>
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<!--Name-->
|
<!--Name-->
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template name="spells">
|
<template name="spells">
|
||||||
<div fit>
|
<div fit>
|
||||||
<div id="spells" class="scroll-y" fit>
|
<div id="spells" class="scroll-y" fit>
|
||||||
<div style="padding: 4px;"
|
<div style="padding: 4px;"
|
||||||
layout horizontal start wrap>
|
layout horizontal start wrap>
|
||||||
{{#if hasSlots}}
|
{{#if hasSlots}}
|
||||||
<paper-shadow class="card"
|
<paper-shadow class="card"
|
||||||
@@ -92,7 +92,7 @@
|
|||||||
<div class="tall spell item"
|
<div class="tall spell item"
|
||||||
hero-id="main" {{detailHero}}
|
hero-id="main" {{detailHero}}
|
||||||
layout horizontal center>
|
layout horizontal center>
|
||||||
<core-icon icon="social:whatshot"
|
<core-icon icon="social:whatshot"
|
||||||
style="color: {{hexColor color}};
|
style="color: {{hexColor color}};
|
||||||
margin-right: 16px;"
|
margin-right: 16px;"
|
||||||
></core-icon>
|
></core-icon>
|
||||||
@@ -144,4 +144,4 @@
|
|||||||
</core-tooltip>
|
</core-tooltip>
|
||||||
{{/fabMenu}}
|
{{/fabMenu}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<template name="abilityMiniCard">
|
<template name="abilityMiniCard">
|
||||||
<paper-shadow class="card abilityMiniCard clickable"
|
<div>
|
||||||
|
<paper-shadow class="card abilityMiniCard clickable"
|
||||||
hero-id="main" {{detailHero ability ../_id}}
|
hero-id="main" {{detailHero ability ../_id}}
|
||||||
layout horizontal>
|
layout horizontal>
|
||||||
<div class="left white-text {{color}}"
|
<div class="left white-text {{color}}"
|
||||||
@@ -11,4 +12,5 @@
|
|||||||
{{title}}
|
{{title}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
Template.addTHPDialog.events({
|
Template.addTHPDialog.events({
|
||||||
"tap #addButton": function(event, instance){
|
"tap #addButton": function(event, instance){
|
||||||
|
var max = +instance.find("#quantityInput").value;
|
||||||
|
if (!max || max < 0) max = 0;
|
||||||
TemporaryHitPoints.insert({
|
TemporaryHitPoints.insert({
|
||||||
charId: this.charId,
|
charId: this.charId,
|
||||||
name: instance.find("#nameInput").value,
|
name: instance.find("#nameInput").value,
|
||||||
maximum: +instance.find("#quantityInput").value,
|
maximum: max,
|
||||||
deleteOnZero: !!instance.find("#deleteWhenZeroCheckbox").checked,
|
deleteOnZero: !!instance.find("#deleteWhenZeroCheckbox").checked,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,27 +2,27 @@
|
|||||||
<table class="carryCapacityTable strengthTable">
|
<table class="carryCapacityTable strengthTable">
|
||||||
<tr>
|
<tr>
|
||||||
<td>Encumbered</td>
|
<td>Encumbered</td>
|
||||||
<td>>{{evaluate charId "strength * 5"}}lbs</td>
|
<td>>{{evaluate charId "strength * 5 * carryMultiplier"}}lbs</td>
|
||||||
<td class="caption">Variant rule, encumbered characters move 10 feet slower</td>
|
<td class="caption">Variant rule, encumbered characters move 10 feet slower</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Heavily encumbered</td>
|
<td>Heavily encumbered</td>
|
||||||
<td>>{{evaluate charId "strength * 10"}}lbs</td>
|
<td>>{{evaluate charId "strength * 10 * carryMultiplier"}}lbs</td>
|
||||||
<td class="caption">
|
<td class="caption">
|
||||||
Variant rule, heavily encumbered characters move 20 feet slower and have disadvantage on ability checks, attack rolls, and saving thows that use Strength, Dexterity, or Constitution
|
Variant rule, heavily encumbered characters move 20 feet slower and have disadvantage on ability checks, attack rolls, and saving thows that use Strength, Dexterity, or Constitution
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Over Encumbered</td>
|
<td>Over Encumbered</td>
|
||||||
<td>>{{evaluate charId "strength * 15"}}lbs</td>
|
<td>>{{evaluate charId "strength * 15 * carryMultiplier"}}lbs</td>
|
||||||
<td class="caption">
|
<td class="caption">
|
||||||
Characters that can only just lift, push or drag their current load can only move at 5 feet.
|
Characters that can only just lift, push or drag their current load can only move at 5 feet.
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Push, drag or lift maximum</td>
|
<td>Push, drag or lift maximum</td>
|
||||||
<td>{{evaluate charId "strength * 30"}}lbs</td>
|
<td>{{evaluate charId "strength * 30 * carryMultiplier"}}lbs</td>
|
||||||
<td class="caption"></td>
|
<td class="caption"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
<template name="healthCard">
|
<template name="healthCard">
|
||||||
<paper-shadow class="card container healthCard"
|
<paper-shadow class="card container healthCard"
|
||||||
hero-id="main" {{detailHero "hitPoints" _id}}
|
hero-id="main" {{detailHero "hitPoints" _id}}
|
||||||
layout horizontal wrap>
|
layout horizontal wrap>
|
||||||
<div class="green white-text subhead left"
|
<div class="green white-text subhead left"
|
||||||
hero-id="toolbar" {{detailHero "hitPoints" _id}}
|
hero-id="toolbar" {{detailHero "hitPoints" _id}}
|
||||||
layout vertical center center-justified>
|
layout vertical center center-justified>
|
||||||
<div class="hitPointTitle clickable">Hit Points</div>
|
<div class="hitPointTitle clickable">Hit Points</div>
|
||||||
<paper-icon-button class="white54"
|
<paper-icon-button class="white54"
|
||||||
id="addTempHP"
|
id="addTempHP"
|
||||||
icon="add"
|
icon="add"
|
||||||
disabled={{#unless canEditCharacter _id}}true{{/unless}}>
|
disabled={{#unless canEditCharacter _id}}true{{/unless}}>
|
||||||
</paper-icon-button>
|
</paper-icon-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -33,14 +33,14 @@
|
|||||||
role="slider"
|
role="slider"
|
||||||
flex
|
flex
|
||||||
></paper-diff-slider>
|
></paper-diff-slider>
|
||||||
{{#unless left}}{{#unless deleteOnZero}}
|
{{#unless left}}
|
||||||
<paper-icon-button class="deleteTHP" icon="delete"></paper-icon-button>
|
<paper-icon-button class="deleteTHP" icon="delete"></paper-icon-button>
|
||||||
{{/unless}}{{/unless}}
|
{{/unless}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
<div class="caption">
|
<div class="caption">
|
||||||
{{#if multipliers.immunities.length}}
|
{{#if multipliers.immunities.length}}
|
||||||
<div>
|
<div>
|
||||||
Immune: {{#each multipliers.immunities}} {{name}} {{/each}}
|
Immune: {{#each multipliers.immunities}} {{name}} {{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<template name="hitDice">
|
<template name="hitDice">
|
||||||
{{#if characterCalculate "attributeBase" ../_id name}}
|
{{#if characterCalculate "attributeBase" ../_id name}}
|
||||||
<paper-shadow class="card hit-dice" hero-id="main"
|
<div>
|
||||||
{{detailHero name ../_id}}
|
<paper-shadow class="card hit-dice" hero-id="main"
|
||||||
|
{{detailHero name ../_id}}
|
||||||
layout horizontal>
|
layout horizontal>
|
||||||
<div class="left green display1 white-text"
|
<div class="left green display1 white-text"
|
||||||
hero-id="toolbar" {{detailHero name ../_id}}
|
hero-id="toolbar" {{detailHero name ../_id}}
|
||||||
layout horizontal>
|
layout horizontal>
|
||||||
<div>
|
<div>
|
||||||
<paper-icon-button class="resourceUp"
|
<paper-icon-button class="resourceUp"
|
||||||
icon="arrow-drop-up"
|
icon="arrow-drop-up"
|
||||||
disabled={{cantIncrement}}>
|
disabled={{cantIncrement}}>
|
||||||
</paper-icon-button>
|
</paper-icon-button>
|
||||||
<paper-icon-button class="resourceDown"
|
<paper-icon-button class="resourceDown"
|
||||||
@@ -29,5 +30,6 @@
|
|||||||
Hit Dice
|
Hit Dice
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
{{>hitDice name="d10HitDice" diceNum="10" char=this}}
|
{{>hitDice name="d10HitDice" diceNum="10" char=this}}
|
||||||
{{>hitDice name="d12HitDice" diceNum="12" char=this}}
|
{{>hitDice name="d12HitDice" diceNum="12" char=this}}
|
||||||
<!--Saving Throws-->
|
<!--Saving Throws-->
|
||||||
|
<div>
|
||||||
<paper-shadow class="card">
|
<paper-shadow class="card">
|
||||||
<div class="top white subhead">
|
<div class="top white subhead">
|
||||||
Saving Throws
|
Saving Throws
|
||||||
@@ -40,7 +41,9 @@
|
|||||||
{{> skillRow name="Charisma" skill="charismaSave"}}
|
{{> skillRow name="Charisma" skill="charismaSave"}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
<!--Skills-->
|
<!--Skills-->
|
||||||
|
<div>
|
||||||
<paper-shadow class="card">
|
<paper-shadow class="card">
|
||||||
<div class="top white subhead">
|
<div class="top white subhead">
|
||||||
Skills
|
Skills
|
||||||
@@ -66,11 +69,13 @@
|
|||||||
{{> skillRow name="Survival" skill="survival"}}
|
{{> skillRow name="Survival" skill="survival"}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template name="statCard">
|
<template name="statCard">
|
||||||
|
<div>
|
||||||
<paper-shadow class="card statCard clickable" hero-id="main" {{detailHero stat ../_id}} layout horizontal>
|
<paper-shadow class="card statCard clickable" hero-id="main" {{detailHero stat ../_id}} layout horizontal>
|
||||||
<div class="left display1 white-text {{color}}"
|
<div class="left display1 white-text {{color}}"
|
||||||
hero-id="toolbar" {{detailHero stat ../_id}}>
|
hero-id="toolbar" {{detailHero stat ../_id}}>
|
||||||
@@ -84,4 +89,5 @@
|
|||||||
{{name}}
|
{{name}}
|
||||||
</div>
|
</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -45,6 +45,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="bottom text">Lawful Good Human</div>
|
<div class="bottom text">Lawful Good Human</div>
|
||||||
</paper-shadow>
|
</paper-shadow>
|
||||||
|
<paper-shadow class="card characterCard ssWizard clickable"
|
||||||
|
z="2">
|
||||||
|
<div class="top subhead deep-purple white-text">
|
||||||
|
<div class="subhead" flex>
|
||||||
|
Starter Set Wizard
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom text">Chaotic Good High Elf</div>
|
||||||
|
</paper-shadow>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ Template.intro.events({
|
|||||||
"tap .ssArcher": function() {
|
"tap .ssArcher": function() {
|
||||||
Router.go("/character/yBWwt5XQTTHZiRQxq");
|
Router.go("/character/yBWwt5XQTTHZiRQxq");
|
||||||
},
|
},
|
||||||
|
"tap .ssWizard": function() {
|
||||||
|
Router.go("/character/KxHKskm22fS2Xogah");
|
||||||
|
},
|
||||||
"tap .guideButton": function() {
|
"tap .guideButton": function() {
|
||||||
Router.go("/guide");
|
Router.go("/guide");
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
</core-toolbar>
|
</core-toolbar>
|
||||||
<div fit layout vertical center center-justified>
|
<div fit layout vertical center center-justified>
|
||||||
<paper-spinner class="bigSpinner" active></paper-spinner>
|
<paper-spinner class="bigSpinner" active></paper-spinner>
|
||||||
<div class="subhead">{{randomHint}}</div>
|
<div class="subhead"
|
||||||
|
style="margin-left: 16px;
|
||||||
|
margin-right: 16px;
|
||||||
|
text-align: center;">{{randomHint}}</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
<template name="notFound">
|
<template name="notFound">
|
||||||
<div layout vertical center center-justified fit>
|
<core-toolbar class="app-grey white-text">
|
||||||
<h2>The data for the page you requested could not be found.</h2>
|
<core-icon-button icon="menu" core-drawer-toggle></core-icon-button>
|
||||||
|
</core-toolbar>
|
||||||
|
<div layout vertical center center-justified fit
|
||||||
|
style="padding: 16px; text-align: center;">
|
||||||
|
<h2 style="margin-bottom: 12px;">The data for the page you requested could not be found.</h2>
|
||||||
{{#if currentUser}}
|
{{#if currentUser}}
|
||||||
<h2>It might not exist, or you might not have permission to view it.</h2>
|
<h3>It might not exist, or you might not have permission to view it.</h3>
|
||||||
{{else}}
|
{{else}}
|
||||||
<h2>Perhaps you need to sign in first:</h2>
|
<h3>Perhaps you need to sign in first:</h3>
|
||||||
{{atForm}}
|
{{atForm}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
Meteor.methods({
|
Meteor.methods({
|
||||||
"getUserId": function(username){
|
"getUserId": function(username){
|
||||||
if (!username) return;
|
if (!username) return;
|
||||||
|
regex = new RegExp("^" + username + "$", "i")
|
||||||
var user = Meteor.users.findOne(
|
var user = Meteor.users.findOne(
|
||||||
{$or: [{username: username}, {"emails.address": username}]}
|
{$or: [
|
||||||
|
{username: username},
|
||||||
|
{"emails.address": regex},
|
||||||
|
{"services.google.email": regex},
|
||||||
|
]}
|
||||||
);
|
);
|
||||||
return user && user._id;
|
return user && user._id;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,6 +101,8 @@ trackEncumbranceConditions = function(charId, templateInstance) {
|
|||||||
{fields: {"settings": 1}}
|
{fields: {"settings": 1}}
|
||||||
);
|
);
|
||||||
var strength = Characters.calculate.attributeValue(charId, "strength");
|
var strength = Characters.calculate.attributeValue(charId, "strength");
|
||||||
|
var carryMultiplier = Characters.calculate
|
||||||
|
.attributeValue(charId, "carryMultiplier");
|
||||||
var give = function(condition) {
|
var give = function(condition) {
|
||||||
Meteor.call("giveCondition", charId, condition);
|
Meteor.call("giveCondition", charId, condition);
|
||||||
};
|
};
|
||||||
@@ -108,11 +110,11 @@ trackEncumbranceConditions = function(charId, templateInstance) {
|
|||||||
Meteor.call("removeCondition", charId, condition);
|
Meteor.call("removeCondition", charId, condition);
|
||||||
};
|
};
|
||||||
//variant encumbrance rules
|
//variant encumbrance rules
|
||||||
if (weight > strength * 10 &&
|
if (weight > strength * 10 * carryMultiplier &&
|
||||||
character.settings.useVariantEncumbrance) {
|
character.settings.useVariantEncumbrance) {
|
||||||
give("encumbered2");
|
give("encumbered2");
|
||||||
remove("encumbered");
|
remove("encumbered");
|
||||||
} else if (weight > strength * 5 &&
|
} else if (weight > strength * 5 * carryMultiplier &&
|
||||||
character.settings.useVariantEncumbrance){
|
character.settings.useVariantEncumbrance){
|
||||||
give("encumbered");
|
give("encumbered");
|
||||||
remove("encumbered2");
|
remove("encumbered2");
|
||||||
@@ -121,11 +123,11 @@ trackEncumbranceConditions = function(charId, templateInstance) {
|
|||||||
remove("encumbered2");
|
remove("encumbered2");
|
||||||
}
|
}
|
||||||
//normal encumbrance rules
|
//normal encumbrance rules
|
||||||
if (weight > strength * 30 &&
|
if (weight > strength * 30 * carryMultiplier &&
|
||||||
character.settings.useStandardEncumbrance){
|
character.settings.useStandardEncumbrance){
|
||||||
give("encumbered4");
|
give("encumbered4");
|
||||||
remove("encumbered3");
|
remove("encumbered3");
|
||||||
} else if (weight > strength * 15 &&
|
} else if (weight > strength * 15 * carryMultiplier &&
|
||||||
character.settings.useStandardEncumbrance) {
|
character.settings.useStandardEncumbrance) {
|
||||||
give("encumbered3");
|
give("encumbered3");
|
||||||
remove("encumbered4");
|
remove("encumbered4");
|
||||||
|
|||||||
@@ -225,6 +225,46 @@ ChangeLogs.insert({
|
|||||||
changes: [
|
changes: [
|
||||||
"Net worth now takes container values into account",
|
"Net worth now takes container values into account",
|
||||||
"Added support for character pictures",
|
"Added support for character pictures",
|
||||||
"Disabled edit buttons for reada-only viewers",
|
"Disabled edit buttons for read-only viewers",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
ChangeLogs.insert({
|
||||||
|
version: "0.6.6",
|
||||||
|
changes: [
|
||||||
|
"Text fields now accept github-flavor markdown formatting",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
ChangeLogs.insert({
|
||||||
|
version: "0.6.7",
|
||||||
|
changes: [
|
||||||
|
"Fixed effect values not being visible on small screens",
|
||||||
|
"Added basic analytics",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
ChangeLogs.insert({
|
||||||
|
version: "0.6.8",
|
||||||
|
changes: [
|
||||||
|
"Fixed share dialog not finding user names",
|
||||||
|
"Fixed temporary hitpoint sliders allowing negative values",
|
||||||
|
"Fixed proficiencies not being disabled with their features",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
ChangeLogs.insert({
|
||||||
|
version: "0.7.0",
|
||||||
|
changes: [
|
||||||
|
"Added carry capacity multiplier as a stat with a default value of 1",
|
||||||
|
"Improved loading times by vulcanizing polymer imports",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
ChangeLogs.insert({
|
||||||
|
version: "0.7.1",
|
||||||
|
changes: [
|
||||||
|
"Fixed carry capacity effects not displaying correctly when not editing",
|
||||||
|
"Changed how columns are presented to fix a display issue introduced in Chrome 44",
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -108,3 +108,45 @@ Migrations.add({
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Migrations.add({
|
||||||
|
version: 4,
|
||||||
|
name: "Adds an effect to give characters a base carry capacity",
|
||||||
|
up: function() {
|
||||||
|
//update characters
|
||||||
|
|
||||||
|
Characters.find({}).forEach(function(char){
|
||||||
|
Characters.update(char._id, {
|
||||||
|
$set: {
|
||||||
|
carryMultiplier: {
|
||||||
|
adjustment: 0,
|
||||||
|
reset: "longRest",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var effect = Effects.findOne({
|
||||||
|
charId: char._id, name: "Natural Carrying Capacity"
|
||||||
|
});
|
||||||
|
if (effect) return;
|
||||||
|
Effects.insert({
|
||||||
|
charId: char._id,
|
||||||
|
name: "Natural Carrying Capacity",
|
||||||
|
stat: "carryMultiplier",
|
||||||
|
operation: "base",
|
||||||
|
value: "1",
|
||||||
|
parent: {
|
||||||
|
id: char._id,
|
||||||
|
collection: "Characters",
|
||||||
|
group: "Inate",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
effect = Effects.findOne({
|
||||||
|
charId: char._id, name: "Natural Carrying Capacity"
|
||||||
|
});
|
||||||
|
if (!effect) throw "Carry capacity effect should be set by now."
|
||||||
|
});
|
||||||
|
},
|
||||||
|
down: function(){
|
||||||
|
return;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user