ENH: Encumbrance bar
parent
86bb4333e2
commit
2c62d33c82
|
@ -25,6 +25,7 @@
|
||||||
"OSE.Retainer": "Retainer",
|
"OSE.Retainer": "Retainer",
|
||||||
"OSE.Appearing": "NA",
|
"OSE.Appearing": "NA",
|
||||||
"OSE.Attack": "Attack",
|
"OSE.Attack": "Attack",
|
||||||
|
"OSE.Encumbrance": "Encumbrance",
|
||||||
|
|
||||||
"OSE.Loyalty": "Loyalty Rating",
|
"OSE.Loyalty": "Loyalty Rating",
|
||||||
"OSE.LoyaltyShort": "LR",
|
"OSE.LoyaltyShort": "LR",
|
||||||
|
@ -116,11 +117,16 @@
|
||||||
"OSE.Setting.THAC0AttacksHint": "Attacks are resolved using the THAC0 value, not compatible with AAC",
|
"OSE.Setting.THAC0AttacksHint": "Attacks are resolved using the THAC0 value, not compatible with AAC",
|
||||||
"OSE.Setting.VariableWeaponDamage": "Variable Weapon Damage",
|
"OSE.Setting.VariableWeaponDamage": "Variable Weapon Damage",
|
||||||
"OSE.Setting.VariableWeaponDamageHint": "Weapons have different damage dice",
|
"OSE.Setting.VariableWeaponDamageHint": "Weapons have different damage dice",
|
||||||
|
"OSE.Setting.Encumbrance": "Encumbrance",
|
||||||
|
"OSE.Setting.EncumbranceHint": "Choose the way encumbrance is calculated",
|
||||||
|
"OSE.Setting.EncumbranceBasic": "Basic",
|
||||||
|
"OSE.Setting.EncumbranceDetailed": "Detailed",
|
||||||
|
|
||||||
"OSE.items.Equip": "Equip",
|
"OSE.items.Equip": "Equip",
|
||||||
"OSE.items.Unequip": "Unequip",
|
"OSE.items.Unequip": "Unequip",
|
||||||
"OSE.items.Misc": "Misc",
|
"OSE.items.Misc": "Misc",
|
||||||
"OSE.items.Weapons": "Weapons",
|
"OSE.items.Weapons": "Weapons",
|
||||||
|
"OSE.items.Treasure": "Treasure",
|
||||||
"OSE.items.Armors": "Armors",
|
"OSE.items.Armors": "Armors",
|
||||||
"OSE.items.Weight": "Wgt.",
|
"OSE.items.Weight": "Wgt.",
|
||||||
"OSE.items.Qualities": "Qualities",
|
"OSE.items.Qualities": "Qualities",
|
||||||
|
|
|
@ -52,6 +52,35 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
||||||
data.config.individualInit = game.settings.get("ose", "individualInit");
|
data.config.individualInit = game.settings.get("ose", "individualInit");
|
||||||
|
|
||||||
data.mods = this.actor.computeModifiers();
|
data.mods = this.actor.computeModifiers();
|
||||||
|
|
||||||
|
// Compute treasure
|
||||||
|
let total = 0;
|
||||||
|
data.owned.items.forEach(item => {
|
||||||
|
if (item.data.treasure) {
|
||||||
|
total += item.data.quantity.value * item.data.cost;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
data.treasure = total;
|
||||||
|
|
||||||
|
let basic = game.settings.get('ose', 'encumbranceOption') == 'basic';
|
||||||
|
// Compute encumbrance
|
||||||
|
let totalWeight = 0;
|
||||||
|
Object.values(data.owned).forEach(cat => {
|
||||||
|
cat.forEach(item => {
|
||||||
|
if (item.type == 'item' && (!basic || item.data.treasure)) {
|
||||||
|
totalWeight += item.data.quantity.value * item.data.weight;
|
||||||
|
}
|
||||||
|
else if (!basic) {
|
||||||
|
totalWeight += item.data.weight;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
data.encumbrance = {
|
||||||
|
pct: Math.clamped(100 * parseFloat(totalWeight) / data.data.encumbrance.max, 0, 100),
|
||||||
|
max: data.data.encumbrance.max,
|
||||||
|
encumbered: totalWeight > data.data.encumbrance.max,
|
||||||
|
value: totalWeight
|
||||||
|
};
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ export const registerHelpers = async function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("mult", function (lh, rh) {
|
Handlebars.registerHelper("mult", function (lh, rh) {
|
||||||
return parseInt(lh) * parseInt(rh);
|
return parseFloat(lh) * parseFloat(rh);
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("counter", function (status, value, max) {
|
Handlebars.registerHelper("counter", function (status, value, max) {
|
||||||
|
|
|
@ -1,38 +1,51 @@
|
||||||
export const registerSettings = function () {
|
export const registerSettings = function () {
|
||||||
game.settings.register('ose', 'individualInit', {
|
game.settings.register("ose", "individualInit", {
|
||||||
name: game.i18n.localize('OSE.Setting.IndividualInit'),
|
name: game.i18n.localize("OSE.Setting.IndividualInit"),
|
||||||
hint: game.i18n.localize('OSE.Setting.IndividualInitHint'),
|
hint: game.i18n.localize("OSE.Setting.IndividualInitHint"),
|
||||||
default: false,
|
default: false,
|
||||||
scope: 'world',
|
scope: "world",
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
config: true
|
config: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
game.settings.register('ose', 'ascendingAC', {
|
game.settings.register("ose", "ascendingAC", {
|
||||||
name: game.i18n.localize('OSE.Setting.AscendingAC'),
|
name: game.i18n.localize("OSE.Setting.AscendingAC"),
|
||||||
hint: game.i18n.localize('OSE.Setting.AscendingACHint'),
|
hint: game.i18n.localize("OSE.Setting.AscendingACHint"),
|
||||||
default: false,
|
default: false,
|
||||||
scope: 'world',
|
scope: "world",
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
config: true
|
config: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
game.settings.register('ose', 'morale', {
|
game.settings.register("ose", "morale", {
|
||||||
name: game.i18n.localize('OSE.Setting.Morale'),
|
name: game.i18n.localize("OSE.Setting.Morale"),
|
||||||
hint: game.i18n.localize('OSE.Setting.MoraleHint'),
|
hint: game.i18n.localize("OSE.Setting.MoraleHint"),
|
||||||
default: false,
|
default: false,
|
||||||
scope: 'world',
|
scope: "world",
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
config: true
|
config: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
game.settings.register('ose', 'variableWeaponDamage', {
|
game.settings.register("ose", "variableWeaponDamage", {
|
||||||
name: game.i18n.localize('OSE.Setting.VariableWeaponDamage'),
|
name: game.i18n.localize("OSE.Setting.VariableWeaponDamage"),
|
||||||
hint: game.i18n.localize('OSE.Setting.VariableWeaponDamageHint'),
|
hint: game.i18n.localize("OSE.Setting.VariableWeaponDamageHint"),
|
||||||
default: false,
|
default: false,
|
||||||
scope: 'world',
|
scope: "world",
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
config: true
|
config: true,
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
game.settings.register("ose", "encumbranceOption", {
|
||||||
|
name: game.i18n.localize("OSE.Setting.Encumbrance"),
|
||||||
|
hint: game.i18n.localize("OSE.Setting.EncumbranceHint"),
|
||||||
|
default: false,
|
||||||
|
scope: "world",
|
||||||
|
type: String,
|
||||||
|
config: true,
|
||||||
|
default: "detailed",
|
||||||
|
choices: {
|
||||||
|
basic: "OSE.Setting.EncumbranceBasic",
|
||||||
|
detailed: "OSE.Setting.EncumbranceDetailed",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
|
@ -137,11 +137,12 @@
|
||||||
}
|
}
|
||||||
.attribute-mod {
|
.attribute-mod {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
color: $colorTan;
|
color: $colorFaint;
|
||||||
|
text-shadow: 0 0 2px black;
|
||||||
right: 1px;
|
right: 1px;
|
||||||
top: 1px;
|
top: 1px;
|
||||||
line-height: 10px;
|
line-height: 10px;
|
||||||
font-size: 10px;
|
font-size: 8px;
|
||||||
}
|
}
|
||||||
.attribute-bonuses {
|
.attribute-bonuses {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -196,7 +197,7 @@
|
||||||
}
|
}
|
||||||
.item-titles {
|
.item-titles {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 4px;
|
padding: 4px 0;
|
||||||
border: 1px solid $colorDark;
|
border: 1px solid $colorDark;
|
||||||
box-shadow: 0 0 5px $colorDark;
|
box-shadow: 0 0 5px $colorDark;
|
||||||
.item-name {
|
.item-name {
|
||||||
|
@ -298,7 +299,7 @@
|
||||||
}
|
}
|
||||||
.item-controls {
|
.item-controls {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
flex-basis: 60px;
|
flex-basis: 50px;
|
||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
|
|
|
@ -81,6 +81,68 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Encumbrance Bar */
|
||||||
|
.encumbrance {
|
||||||
|
height: 12px;
|
||||||
|
background: $darkBackground;
|
||||||
|
margin: 1px 15px 0 1px;
|
||||||
|
border: 1px solid $colorDark;
|
||||||
|
border-radius: 3px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.encumbrance-bar {
|
||||||
|
position: absolute;
|
||||||
|
background: rgba(255, 0, 0, 0.6);
|
||||||
|
height: 10px;
|
||||||
|
border: 1px solid #777;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.encumbrance-label {
|
||||||
|
height: 10px;
|
||||||
|
padding: 0 5px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 10px;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 12px;
|
||||||
|
text-align: right;
|
||||||
|
color: #EEE;
|
||||||
|
text-shadow: 0 0 5px #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.encumbrance-breakpoint {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
&.encumbrance-25 { left: 25% }
|
||||||
|
&.encumbrance-50 { left: 50% }
|
||||||
|
&.encumbrance-75 { left: 75% }
|
||||||
|
}
|
||||||
|
|
||||||
|
.arrow-up {
|
||||||
|
bottom: 0;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-left: 4px solid transparent;
|
||||||
|
border-right: 4px solid transparent;
|
||||||
|
border-bottom: 4px solid $colorFaint;
|
||||||
|
}
|
||||||
|
|
||||||
|
.arrow-down {
|
||||||
|
top: 0;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-left: 4px solid transparent;
|
||||||
|
border-right: 4px solid transparent;
|
||||||
|
border-top: 4px solid $colorFaint;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.encumbered {
|
||||||
|
.arrow-up { border-bottom: 4px solid $colorDark; }
|
||||||
|
.arrow-down { border-top: 4px solid $colorDark; }
|
||||||
|
}
|
||||||
|
}
|
||||||
/* ----------------------------------------- */
|
/* ----------------------------------------- */
|
||||||
/* Item Controls */
|
/* Item Controls */
|
||||||
/* ----------------------------------------- */
|
/* ----------------------------------------- */
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
$darkBackground: url('/systems/ose/assets/back.png');
|
$darkBackground: url('/systems/ose/assets/back.png');
|
||||||
$colorDark: rgba(0, 0, 0, 0.9);
|
$colorDark: rgba(0, 0, 0, 0.9);
|
||||||
$colorFaint: #c9c7b8;
|
$colorFaint: #d8d6c9;
|
||||||
$colorBeige: #b5b3a4;
|
$colorBeige: #b5b3a4;
|
||||||
$colorTan: #7a7971;
|
$colorTan: #7a7971;
|
||||||
$colorOlive: #4b4a44;
|
$colorOlive: #4b4a44;
|
||||||
|
|
|
@ -13,12 +13,10 @@
|
||||||
"max": 20
|
"max": 20
|
||||||
},
|
},
|
||||||
"ac": {
|
"ac": {
|
||||||
"naked": 0,
|
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
"aac": {
|
"aac": {
|
||||||
"naked": 0,
|
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
|
@ -118,15 +116,13 @@
|
||||||
"mod": 0
|
"mod": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"currency": {
|
|
||||||
"gold": 0,
|
|
||||||
"silver": 0,
|
|
||||||
"copper": 0
|
|
||||||
},
|
|
||||||
"initative": {
|
"initative": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
|
"encumbrance": {
|
||||||
|
"max": 1600
|
||||||
|
},
|
||||||
"languages": []
|
"languages": []
|
||||||
},
|
},
|
||||||
"monster": {
|
"monster": {
|
||||||
|
@ -151,6 +147,7 @@
|
||||||
"value": 1,
|
"value": 1,
|
||||||
"max": 0
|
"max": 0
|
||||||
},
|
},
|
||||||
|
"treasure": false,
|
||||||
"cost": 0,
|
"cost": 0,
|
||||||
"weight": 80
|
"weight": 80
|
||||||
},
|
},
|
||||||
|
|
|
@ -71,6 +71,18 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{localize "OSE.Encumbrance"}}</label>
|
||||||
|
<div class="form-fields">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
name="data.encumbrance.max"
|
||||||
|
id="encumbrance"
|
||||||
|
value="{{data.encumbrance.max}}"
|
||||||
|
data-dtype="Number"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<footer class="sheet-footer">
|
<footer class="sheet-footer">
|
||||||
<button type="submit">
|
<button type="submit">
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
<div class="attribute-value">
|
<div class="attribute-value">
|
||||||
<input name="data.scores.str.value" type="text" value="{{data.scores.str.value}}" placeholder="0"
|
<input name="data.scores.str.value" type="text" value="{{data.scores.str.value}}" placeholder="0"
|
||||||
data-dtype="Number" />
|
data-dtype="Number" />
|
||||||
<span class="attribute-mod"><a><i class="fas fa-plus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="attribute-bonuses">
|
<div class="attribute-bonuses">
|
||||||
{{localize 'OSE.Melee'}} ({{mods.str}})<br/>
|
{{localize 'OSE.Melee'}} ({{mods.str}})<br/>
|
||||||
{{localize 'OSE.exploration.od.long'}}
|
{{localize 'OSE.exploration.od.long'}}
|
||||||
<span class="attribute-mod"><a><i class="fas fa-minus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="attribute ability-score" data-score="int">
|
<li class="attribute ability-score" data-score="int">
|
||||||
|
@ -22,12 +22,12 @@
|
||||||
<div class="attribute-value">
|
<div class="attribute-value">
|
||||||
<input name="data.scores.int.value" type="text" value="{{data.scores.int.value}}" placeholder="0"
|
<input name="data.scores.int.value" type="text" value="{{data.scores.int.value}}" placeholder="0"
|
||||||
data-dtype="Number" />
|
data-dtype="Number" />
|
||||||
<span class="attribute-mod"><a><i class="fas fa-plus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="attribute-bonuses">
|
<div class="attribute-bonuses">
|
||||||
{{localize 'OSE.SpokenLanguages'}}<br/>
|
{{localize 'OSE.SpokenLanguages'}}<br/>
|
||||||
{{localize 'OSE.Literacy'}}
|
{{localize 'OSE.Literacy'}}
|
||||||
<span class="attribute-mod"><a><i class="fas fa-minus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="attribute ability-score" data-score="wis">
|
<li class="attribute ability-score" data-score="wis">
|
||||||
|
@ -36,11 +36,11 @@
|
||||||
<div class="attribute-value">
|
<div class="attribute-value">
|
||||||
<input name="data.scores.wis.value" type="text" value="{{data.scores.wis.value}}" placeholder="0"
|
<input name="data.scores.wis.value" type="text" value="{{data.scores.wis.value}}" placeholder="0"
|
||||||
data-dtype="Number" />
|
data-dtype="Number" />
|
||||||
<span class="attribute-mod"><a><i class="fas fa-plus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="attribute-bonuses">
|
<div class="attribute-bonuses">
|
||||||
{{localize 'OSE.saves.magic.long'}}({{mods.wis}})
|
{{localize 'OSE.saves.magic.long'}}({{mods.wis}})
|
||||||
<span class="attribute-mod"><a><i class="fas fa-minus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="attribute ability-score" data-score="dex">
|
<li class="attribute ability-score" data-score="dex">
|
||||||
|
@ -49,13 +49,13 @@
|
||||||
<div class="attribute-value">
|
<div class="attribute-value">
|
||||||
<input name="data.scores.dex.value" type="text" value="{{data.scores.dex.value}}" placeholder="0"
|
<input name="data.scores.dex.value" type="text" value="{{data.scores.dex.value}}" placeholder="0"
|
||||||
data-dtype="Number" />
|
data-dtype="Number" />
|
||||||
<span class="attribute-mod"><a><i class="fas fa-plus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="attribute-bonuses">
|
<div class="attribute-bonuses">
|
||||||
{{localize 'OSE.Missile'}} ({{mods.dex}})<br/>
|
{{localize 'OSE.Missile'}} ({{mods.dex}})<br/>
|
||||||
{{localize 'OSE.Initiative'}} ({{mods.init}})<br/>
|
{{localize 'OSE.Initiative'}} ({{mods.init}})<br/>
|
||||||
{{localize 'OSE.ArmorClass'}} ({{mods.dex}})
|
{{localize 'OSE.ArmorClass'}} ({{mods.dex}})
|
||||||
<span class="attribute-mod"><a><i class="fas fa-minus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="attribute ability-score" data-score="con">
|
<li class="attribute ability-score" data-score="con">
|
||||||
|
@ -64,11 +64,11 @@
|
||||||
<div class="attribute-value">
|
<div class="attribute-value">
|
||||||
<input name="data.scores.con.value" type="text" value="{{data.scores.con.value}}" placeholder="0"
|
<input name="data.scores.con.value" type="text" value="{{data.scores.con.value}}" placeholder="0"
|
||||||
data-dtype="Number" />
|
data-dtype="Number" />
|
||||||
<span class="attribute-mod"><a><i class="fas fa-plus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="attribute-bonuses">
|
<div class="attribute-bonuses">
|
||||||
{{localize 'OSE.Health'}} ({{mods.con}})
|
{{localize 'OSE.Health'}} ({{mods.con}})
|
||||||
<span class="attribute-mod"><a><i class="fas fa-minus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="attribute ability-score" data-score="cha">
|
<li class="attribute ability-score" data-score="cha">
|
||||||
|
@ -77,17 +77,17 @@
|
||||||
<div class="attribute-value">
|
<div class="attribute-value">
|
||||||
<input name="data.scores.cha.value" type="text" value="{{data.scores.cha.value}}" placeholder="0"
|
<input name="data.scores.cha.value" type="text" value="{{data.scores.cha.value}}" placeholder="0"
|
||||||
data-dtype="Number" />
|
data-dtype="Number" />
|
||||||
<span class="attribute-mod"><a><i class="fas fa-plus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="attribute-bonuses">
|
<div class="attribute-bonuses">
|
||||||
{{localize 'OSE.NPCReaction'}} ({{mods.npc}})<br/>
|
{{localize 'OSE.NPCReaction'}} ({{mods.npc}})<br/>
|
||||||
{{localize 'OSE.RetainersMax'}} ({{add mods.cha 4}})<br/>
|
{{localize 'OSE.RetainersMax'}} ({{add mods.cha 4}})<br/>
|
||||||
{{localize 'OSE.Loyalty'}} ({{add mods.cha 7}})
|
{{localize 'OSE.Loyalty'}} ({{add mods.cha 7}})
|
||||||
<span class="attribute-mod"><a><i class="fas fa-minus"></i></a></span>
|
<span class="attribute-mod"><a><i class="fas fa-circle"></i></a></span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{#if data.retainer.enabled}}
|
{{#if data.retainer.enabled}}
|
||||||
<li class="attribute">
|
<li class="attribute ability-score">
|
||||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.Loyalty' }}">
|
<h4 class="attribute-name box-title" title="{{ localize 'OSE.Loyalty' }}">
|
||||||
{{ localize "OSE.LoyaltyShort" }}
|
{{ localize "OSE.LoyaltyShort" }}
|
||||||
</h4>
|
</h4>
|
||||||
|
|
|
@ -3,9 +3,10 @@
|
||||||
<li class="item-titles flexrow">
|
<li class="item-titles flexrow">
|
||||||
<div class="item-name">{{localize "OSE.items.Weapons"}}</div>
|
<div class="item-name">{{localize "OSE.items.Weapons"}}</div>
|
||||||
<div class="field-longer">{{localize "OSE.items.Qualities"}}</div>
|
<div class="field-longer">{{localize "OSE.items.Qualities"}}</div>
|
||||||
<div class="field-short">{{localize "OSE.items.Weight"}}</div>
|
<div class="field-short"><i class="fas fa-weight-hanging"></i></div>
|
||||||
<div class="item-controls">
|
<div class="item-controls">
|
||||||
<a class="item-control item-create" data-type="weapon" title="{{localize 'OSE.Add'}}"><i class="fa fa-plus"></i></a>
|
<a class="item-control item-create" data-type="weapon" title="{{localize 'OSE.Add'}}"><i
|
||||||
|
class="fa fa-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<ol class="item-list">
|
<ol class="item-list">
|
||||||
|
@ -49,9 +50,10 @@
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="field-short">{{localize "OSE.items.ArmorAC"}}</div>
|
<div class="field-short">{{localize "OSE.items.ArmorAC"}}</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="field-short">{{localize "OSE.items.Weight"}}</div>
|
<div class="field-short"><i class="fas fa-weight-hanging"></i></div>
|
||||||
<div class="item-controls">
|
<div class="item-controls">
|
||||||
<a class="item-control item-create" data-type="armor" title="{{localize 'OSE.Add'}}"><i class="fa fa-plus"></i></a>
|
<a class="item-control item-create" data-type="armor" title="{{localize 'OSE.Add'}}"><i
|
||||||
|
class="fa fa-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<ol class="item-list">
|
<ol class="item-list">
|
||||||
|
@ -68,9 +70,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="field-short">
|
<div class="field-short">
|
||||||
{{#if config.ascendingAC}}
|
{{#if config.ascendingAC}}
|
||||||
{{item.data.aac}}
|
{{item.data.aac.value}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{item.data.ac}}
|
{{item.data.ac.value}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
<div class="field-short">
|
<div class="field-short">
|
||||||
|
@ -92,16 +94,19 @@
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
<div class="">
|
<div class="">
|
||||||
|
{{!-- Misc items --}}
|
||||||
<li class="item-titles flexrow">
|
<li class="item-titles flexrow">
|
||||||
<div class="item-name">{{localize "OSE.items.Misc"}}</div>
|
<div class="item-name">{{localize "OSE.items.Misc"}}</div>
|
||||||
<div class="field-short">{{localize "OSE.items.Quantity"}}</div>
|
<div class="field-short"><i class="fas fa-hashtag"></i></div>
|
||||||
<div class="field-short">{{localize "OSE.items.Weight"}}</div>
|
<div class="field-short"><i class="fas fa-weight-hanging"></i></div>
|
||||||
<div class="item-controls">
|
<div class="item-controls">
|
||||||
<a class="item-control item-create" data-type="item" title="{{localize 'OSE.Add'}}"><i class="fa fa-plus"></i></a>
|
<a class="item-control item-create" data-type="item" title="{{localize 'OSE.Add'}}"><i
|
||||||
|
class="fa fa-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<ol class="item-list">
|
<ol class="item-list">
|
||||||
{{#each owned.items as |item|}}
|
{{#each owned.items as |item|}}
|
||||||
|
{{#unless item.data.treasure}}
|
||||||
<li class="item-entry">
|
<li class="item-entry">
|
||||||
<div class="item flexrow" data-item-id="{{item._id}}">
|
<div class="item flexrow" data-item-id="{{item._id}}">
|
||||||
<div class="item-name flexrow">
|
<div class="item-name flexrow">
|
||||||
|
@ -117,7 +122,7 @@
|
||||||
placeholder="0" />{{#if item.data.quantity.max}}<span>/{{item.data.quantity.max}}</span>{{/if}}
|
placeholder="0" />{{#if item.data.quantity.max}}<span>/{{item.data.quantity.max}}</span>{{/if}}
|
||||||
</div>
|
</div>
|
||||||
<div class="field-short">
|
<div class="field-short">
|
||||||
{{item.data.weight}}
|
{{mult item.data.quantity.value item.data.weight}}
|
||||||
</div>
|
</div>
|
||||||
<div class="item-controls">
|
<div class="item-controls">
|
||||||
{{#if ../owner}}
|
{{#if ../owner}}
|
||||||
|
@ -127,7 +132,67 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
{{/unless}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="">
|
||||||
|
{{!-- Treasure items --}}
|
||||||
|
<li class="item-titles flexrow">
|
||||||
|
<div class="item-name">{{localize "OSE.items.Treasure"}}</div>
|
||||||
|
<div class="field-long">{{treasure}} <i class="fas fa-circle"></i></div>
|
||||||
|
<div class="field-short"><i class="fas fa-hashtag"></i></div>
|
||||||
|
<div class="field-short"><i class="fas fa-weight-hanging"></i></div>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-create" data-type="item" title="{{localize 'OSE.Add'}}"><i
|
||||||
|
class="fa fa-plus"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<ol class="item-list">
|
||||||
|
{{#each owned.items as |item|}}
|
||||||
|
{{#if item.data.treasure}}
|
||||||
|
<li class="item-entry">
|
||||||
|
<div class="item flexrow" data-item-id="{{item._id}}">
|
||||||
|
<div class="item-name flexrow">
|
||||||
|
<div class="item-image" style="background-image: url({{item.img}})"></div>
|
||||||
|
<a>
|
||||||
|
<h4 title="{{item.name}}">
|
||||||
|
{{item.name~}}
|
||||||
|
</h4>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="field-long">{{mult item.data.quantity.value item.data.cost}}</div>
|
||||||
|
<div class="field-short quantity">
|
||||||
|
<input value="{{item.data.quantity.value}}" type="text"
|
||||||
|
placeholder="0" />{{#if item.data.quantity.max}}<span>/{{item.data.quantity.max}}</span>{{/if}}
|
||||||
|
</div>
|
||||||
|
<div class="field-short">
|
||||||
|
{{mult item.data.quantity.value item.data.weight}}
|
||||||
|
</div>
|
||||||
|
<div class="item-controls">
|
||||||
|
{{#if ../owner}}
|
||||||
|
<a class="item-control item-edit" title='{{localize "OSE.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title='{{localize "OSE.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
{{#with encumbrance}}
|
||||||
|
<div class="encumbrance {{#if encumbered}}encumbered{{/if}}">
|
||||||
|
<span class="encumbrance-bar" style="width:{{pct}}%"></span>
|
||||||
|
<span class="encumbrance-label">{{value}} / {{max}}</span>
|
||||||
|
<i class="encumbrance-breakpoint encumbrance-25 arrow-up"></i>
|
||||||
|
<i class="encumbrance-breakpoint encumbrance-25 arrow-down"></i>
|
||||||
|
<i class="encumbrance-breakpoint encumbrance-50 arrow-up"></i>
|
||||||
|
<i class="encumbrance-breakpoint encumbrance-50 arrow-down"></i>
|
||||||
|
<i class="encumbrance-breakpoint encumbrance-75 arrow-up"></i>
|
||||||
|
<i class="encumbrance-breakpoint encumbrance-75 arrow-down"></i>
|
||||||
|
{{/with}}
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
|
@ -13,13 +13,13 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{{localize 'OSE.items.ArmorAC'}}</label>
|
<label>{{localize 'OSE.items.ArmorAC'}}</label>
|
||||||
<div class="form-fields">
|
<div class="form-fields">
|
||||||
<input type="text" name="data.level" value="{{data.ac}}" data-dtype="Number" />
|
<input type="text" name="data.ac.value" value="{{data.ac.value}}" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{{localize 'OSE.items.ArmorAAC'}}</label>
|
<label>{{localize 'OSE.items.ArmorAAC'}}</label>
|
||||||
<div class="form-fields">
|
<div class="form-fields">
|
||||||
<input type="text" name="data.class" value="{{data.aac}}" data-dtype="Number" />
|
<input type="text" name="data.aac.value" value="{{data.aac.value}}" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
|
@ -16,6 +16,12 @@
|
||||||
<input type="text" name="data.quantity.value" value="{{data.quantity.value}}" data-dtype="Number" />/<input type="text" name="data.quantity.max" value="{{data.quantity.max}}" data-dtype="Number" />
|
<input type="text" name="data.quantity.value" value="{{data.quantity.value}}" data-dtype="Number" />/<input type="text" name="data.quantity.max" value="{{data.quantity.max}}" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{{localize 'OSE.items.Treasure'}}</label>
|
||||||
|
<div class="form-fields">
|
||||||
|
<input type="checkbox" name="data.treasure" value="{{data.treasure}}" {{checked data.treasure}} data-dtype="Boolean"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{{localize 'OSE.items.Cost'}}</label>
|
<label>{{localize 'OSE.items.Cost'}}</label>
|
||||||
<div class="form-fields">
|
<div class="form-fields">
|
||||||
|
@ -25,7 +31,7 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{{localize 'OSE.items.Weight'}}</label>
|
<label>{{localize 'OSE.items.Weight'}}</label>
|
||||||
<div class="form-fields">
|
<div class="form-fields">
|
||||||
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="String" />
|
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
</header>
|
</header>
|
||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<input name="data.qualities" type="text" value="{{data.qualities}}" placeholder="Qualities" />
|
<input name="data.qualities" type="text" value="{{data.qualities}}" placeholder="Qualities" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<div class="stats">
|
<div class="stats">
|
||||||
|
@ -22,19 +22,19 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{{localize 'OSE.items.Slow'}}</label>
|
<label>{{localize 'OSE.items.Slow'}}</label>
|
||||||
<div class="form-fields">
|
<div class="form-fields">
|
||||||
<input type="checkbox" name="data.slow" value="{{data.level}}" {{checked data.slow}} />
|
<input type="checkbox" name="data.slow" value="{{data.slow}}" {{checked data.slow}} data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{{localize 'OSE.items.Missile'}}</label>
|
<label>{{localize 'OSE.items.Missile'}}</label>
|
||||||
<div class="form-fields">
|
<div class="form-fields">
|
||||||
<input type="checkbox" name="data.missile" {{checked data.missile}} />
|
<input type="checkbox" name="data.missile" {{checked data.missile}} data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{{localize 'OSE.items.Melee'}}</label>
|
<label>{{localize 'OSE.items.Melee'}}</label>
|
||||||
<div class="form-fields">
|
<div class="form-fields">
|
||||||
<input type="checkbox" name="data.melee" {{checked data.melee}} />
|
<input type="checkbox" name="data.melee" {{checked data.melee}} data-dtype="Boolean"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
Loading…
Reference in New Issue