Compare commits

..

3 Commits

Author SHA1 Message Date
4d3f067bf9 Enhance march 2023-03-14 19:23:46 +01:00
3489dc6254 Enhance march 2023-03-14 19:23:19 +01:00
b23d0836fe Some fixes 2023-02-21 20:22:08 +01:00
20 changed files with 394 additions and 315 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.history/

View File

@ -1,3 +1,17 @@
{
}
{
"ACTOR": {
"TypeCharacter": "Character"
},
"ITEM": {
"TypeSkill": "Skill",
"TypePerk": "Perk",
"TypePower": "Power",
"TypeTalent": "Talent",
"TypeAdvantage": "Advantage",
"TypeMartialart": "Martial art",
"TypeLimitation": "Limitation",
"TypeComplication": "Complication",
"TypeEquipment": "Equipment",
"TypeCurrency": "Currency"
}
}

View File

@ -39,16 +39,14 @@ export class Hero6ActorSheet extends ActorSheet {
limited: this.object.limited,
skills: this.actor.getSkills( ),
perks: this.actor.getPerks( ),
powers: this.actor.getPowers( ),
powers: await this.actor.getPowers( ),
talents: this.actor.getTalents( ),
complications: this.actor.getComplications( ),
martialarts: this.actor.getMartialArts( ),
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
equippedArmor: this.actor.getEquippedArmor(),
equippedShield: this.actor.getEquippedShield(),
subActors: duplicate(this.actor.getSubActors()),
race: duplicate(this.actor.getRace()),
moneys: duplicate(this.actor.getMoneys()),

View File

@ -43,8 +43,8 @@ export class Hero6Actor extends Actor {
}
if (data.type == 'character') {
const skills = await Hero6Utility.loadCompendium("fvtt-hero-system-6.skills");
data.items = skills.map(i => i.toObject())
//const skills = await Hero6Utility.loadCompendium("fvtt-hero-system-6.skills");
//data.items = skills.map(i => i.toObject())
}
if (data.type == 'npc') {
}
@ -91,7 +91,7 @@ export class Hero6Actor extends Actor {
/* -------------------------------------------- */
getMoneys() {
let comp = this.items.filter(item => item.type == 'money');
let comp = this.items.filter(item => item.type == 'currency');
Hero6Utility.sortArrayObjectsByName(comp)
return comp;
}
@ -163,10 +163,52 @@ export class Hero6Actor extends Actor {
}
return item;
}
/* -------------------------------------------- */
prepareSkill(skill) {
skill.roll = 0
skill.charac = "N/A"
if (skill.system.skillfamiliarity) {
skill.roll = 8;
} else if (skill.system.skillprofiency) {
skill.roll = 10;
} else if (skill.system.skilltype == "agility") {
skill.charac = "DEX"
let charac = duplicate(this.system.characteristics.dex)
this.prepareCharacValues(charac)
skill.roll = charac.roll
} else if (skill.system.skilltype == "interaction") {
skill.charac = "PRE"
let charac = duplicate(this.system.characteristics.pre)
this.prepareCharacValues(charac)
skill.roll = charac.roll
} else if (skill.system.skilltype == "intellect") {
skill.charac = "INT"
let charac = duplicate(this.system.characteristics.int)
this.prepareCharacValues(charac)
skill.roll = charac.roll
} else if (skill.system.skilltype == "background") {
skill.roll = 11
} else if (skill.system.skilltype == "custom") {
if (skill.system.characteristic == "manual") {
skill.roll = skill.system.base
} else {
skill.charac = skill.system.characteristic
let charac = duplicate(this.system.characteristics[skill.system.characteristic])
this.prepareCharacValues(charac)
skill.roll = charac.roll
}
}
if (skill.system.levels > 0) {
skill.roll += skill.system.levels
}
}
/* -------------------------------------------- */
getSkills() {
let comp = duplicate(this.items.filter(item => item.type == 'skill') || [])
for (let skill of comp) {
this.prepareSkill(skill)
}
Hero6Utility.sortArrayObjectsByName(comp)
return comp
}
@ -175,8 +217,11 @@ export class Hero6Actor extends Actor {
Hero6Utility.sortArrayObjectsByName(comp)
return comp
}
getPowers() {
async getPowers() {
let comp = duplicate(this.items.filter(item => item.type == 'power') || [])
for (let c of comp) {
c.enrichDescription = c.name + "<br>" + await TextEditor.enrichHTML(c.system.description, { async: true })
}
Hero6Utility.sortArrayObjectsByName(comp)
return comp
}
@ -185,6 +230,11 @@ export class Hero6Actor extends Actor {
Hero6Utility.sortArrayObjectsByName(comp)
return comp
}
getMartialArts() {
let comp = duplicate(this.items.filter(item => item.type == 'martialart') || [])
Hero6Utility.sortArrayObjectsByName(comp)
return comp
}
getComplications() {
let comp = duplicate(this.items.filter(item => item.type == 'complication') || [])
Hero6Utility.sortArrayObjectsByName(comp)
@ -227,11 +277,20 @@ export class Hero6Actor extends Actor {
/* ------------------------------------------- */
getEquipments() {
return this.items.filter(item => item.type == 'shield' || item.type == 'armor' || item.type == "weapon" || item.type == "equipment");
return this.items.filter(item => item.type == "equipment" && item.system.subtype == "equipment");
}
getWeapons() {
return this.items.filter(item => item.type == "equipment" && item.system.subtype == "weapon");
}
getArmors() {
return this.items.filter(item => item.type == "equipment" && item.system.subtype == "armor");
}
getShields() {
return this.items.filter(item => item.type == "equipment" && item.system.subtype == "shield");
}
/* ------------------------------------------- */
getEquipmentsOnly() {
return duplicate(this.items.filter(item => item.type == "equipment") || [])
return duplicate(this.items.filter(item => item.type == "equipment" && item.system.subtype == "equipment") || [])
}
/* ------------------------------------------- */
@ -279,7 +338,7 @@ export class Hero6Actor extends Actor {
/* -------------------------------------------- */
async incDecHP(formula) {
let dmgRoll = new Roll(formula+"[dark-starsorange]").roll({ async: false })
let dmgRoll = new Roll(formula + "[dark-starsorange]").roll({ async: false })
await Hero6Utility.showDiceSoNice(dmgRoll, game.settings.get("core", "rollMode"))
let hp = duplicate(this.system.secondary.hp)
hp.value = Number(hp.value) + Number(dmgRoll.total)
@ -360,14 +419,14 @@ export class Hero6Actor extends Actor {
}
/* -------------------------------------------- */
prepareCharacValues( charac) {
prepareCharacValues(charac) {
charac.total = charac.value
charac.roll = 9 + Math.floor((charac.value)/5)
charac.roll = 9 + Math.floor((charac.value) / 5)
}
prepareCharac() {
let characs = duplicate(this.system.characteristics)
for(let key in characs) {
this.prepareCharacValues( characs[key])
for (let key in characs) {
this.prepareCharacValues(characs[key])
}
return characs
}
@ -466,10 +525,13 @@ export class Hero6Actor extends Actor {
}
/* -------------------------------------------- */
rollItem(itemId) {
let item = this.items.get( itemId)
let item = this.items.get(itemId)
let rollData = this.getCommonRollData()
rollData.mode = "item"
rollData.item = duplicate(item)
if ( item.type == "skill") {
this.prepareSkill(rollData.item)
}
this.startRoll(rollData)
}

View File

@ -1,6 +1,11 @@
export const Hero6_CONFIG = {
equipmentSubType: {
equipment: "Equipment",
weapon: "Weapon",
armor: "Armor",
shield: "Shield"
},
rollCharac : {
"str": "Strength",
"dex": "Dexterity",

View File

@ -145,6 +145,16 @@ export class Hero6ItemSheet extends ItemSheet {
let itemType = li.data("item-type");
});
html.find('.item-skill-profiency').click(ev => {
this.object.update( {'system.levels': 12, 'system.cost': 2} )
} )
html.find('.item-skill-familiarity').click(ev => {
this.object.update( {'system.levels': 10, 'system.cost': 1} )
} )
html.find('.item-skill-everyman').click(ev => {
this.object.update( {'system.levels': 8, 'system.cost': 0} )
} )
html.find('.view-subitem').click(ev => {
this.viewSubitem(ev);
});

View File

@ -46,12 +46,11 @@ export class Hero6Utility {
return __locationNames[key]
})
Handlebars.registerHelper('isSkillCustom', function (key) {
if (key == "custom" || key == "background" ) {
if (key == "custom" ) {
return true;
}
return false
})
})
this.gameSettings()
@ -163,6 +162,8 @@ export class Hero6Utility {
'systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-power-equipment-cost.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-item-hasroll.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs'
]
return loadTemplates(templatePaths);
}
@ -303,7 +304,7 @@ export class Hero6Utility {
target = rollData.charac.roll
}
if (rollData.item) {
target = rollData.item.system.roll
target = rollData.item.roll || rollData.item.system.roll
}
// Performs roll
@ -327,9 +328,7 @@ export class Hero6Utility {
if ( myRoll.terms[0].total == 18) { // Always a failure
rollData.isSuccess = false
}
if (rollData.isSuccess ) {
rollData.margin = target - rollData.result
}
rollData.margin = target - rollData.result
let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-hero-system-6/templates/chat/chat-generic-result.hbs`, rollData)

View File

@ -51,7 +51,7 @@
background: rgba(66, 66, 64, 0.95);
} /* For title, sidebar character and scene */
.sheet nav.sheet-tabs {
font-size: 0.8rem;
font-size: 0.7rem;
color: rgba(224, 208, 197, 0.9);
background: rgba(66, 66, 64, 0.95);
} /* For nav and title */
@ -447,7 +447,7 @@ form .form-group label {
.window-app .window-content, .window-app.sheet .window-content .sheet-body{
font-size: 0.8rem;
background: url("../images/ui/pc_sheet_bg.webp") repeat left top;
/*background: url("../images/ui/pc_sheet_bg.webp") repeat left top;*/
background: rgba(228, 240, 240, 0.75);
color: rgba(66, 66, 64, 0.95);
}
@ -466,7 +466,7 @@ section.sheet-body{padding: 0.25rem 0.5rem;}
.sheet nav.sheet-tabs {
font-size: 0.70rem;
font-weight: bold;
height: 3rem;
height: 2.5rem;
flex: 0 0 3rem;
margin: 0;
padding: 0 0 0 0.25rem;
@ -483,7 +483,7 @@ section.sheet-body{padding: 0.25rem 0.5rem;}
nav.sheet-tabs .item {
position: relative;
padding: 0 0.25rem;
padding: 0 0.15rem;
}
nav.sheet-tabs .item:after {
@ -546,7 +546,7 @@ ul, li {
}
.sheet li {
margin: 0.010rem;
margin: 0.1rem;
padding: 0.25rem;
}
.header-fields li {
@ -574,10 +574,10 @@ ul, li {
}
.list-item {
margin: 0.125rem;
margin: 0.2rem;
/*box-shadow: inset 0px 0px 1px #00000096;*/
/*border-radius: 0.25rem;*/
padding: 0.125rem;
padding: 0.2rem;
flex: 1 1 5rem;
display: flex !important;
}
@ -1425,6 +1425,16 @@ Focus FOC: #ff0084
max-width: 16rem;
min-width: 16rem;
}
.item-field-label-long3 {
flex-grow:1;
max-width: 30rem;
min-width: 30rem;
}
.item-field-label-long4 {
flex-grow:1;
max-width: 40rem;
min-width: 40rem;
}
.item-control-end {
align-self: flex-end;
}
@ -1446,3 +1456,7 @@ Focus FOC: #ff0084
min-width:2rem;
max-width: 2rem;
}
.biodata-portrait {
min-height: 512px;
min-width: 256px;
}

View File

@ -91,7 +91,7 @@
"styles": [
"styles/simple.css"
],
"version": "10.0.10",
"version": "10.0.14",
"compatibility": {
"minimum": "10",
"verified": "10",
@ -99,7 +99,7 @@
},
"title": "Hero System v6 for FoundrtVTT (Official)",
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/raw/branch/main/system.json",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/archive/fvtt-hero-system-6-v10.0.10.zip",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/archive/fvtt-hero-system-6-v10.0.14.zip",
"url": "https://www.uberwald.me/gitea/uberwald/",
"background": "images/ui/hro6_welcome_page.webp",
"id": "fvtt-hero-system-6"

View File

@ -14,6 +14,7 @@
"gm": "",
"gender": 0,
"character": "",
"mass":"",
"religion": "",
"weight": "",
"height": "",
@ -204,9 +205,11 @@
"talent",
"power",
"advantage",
"martialart",
"limitation",
"complication",
"equipment"
"equipment",
"currency"
],
"templates": {
"common": {
@ -236,6 +239,12 @@
"items": {}
}
},
"currency": {
"quantity": 0,
"templates": [
"common"
]
},
"advantage": {
"templates": [
"common"
@ -252,6 +261,10 @@
"base": "",
"levelscost": 0,
"levels": 0,
"skilllevelonly": false,
"skillfamiliarity": false,
"skilleveryman": false,
"skillprofiency": false,
"templates": [
"common"
]
@ -267,6 +280,7 @@
"common",
"power"
],
"subtype": "equipment",
"value": 0,
"weight": 0,
"moneycost": 0

View File

@ -6,22 +6,62 @@
<div class="flexrow">
<img class="profile-img margin-image-right" src="{{img}}" data-edit="img" title="{{name}}" />
<div class="flexcol">
<h1 class="charname margin-image-right"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
<h1 class="charname "><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
<div class="flexrow">
<div class="charac-item">
<ul>
{{#each characteristics as |charac key|}}
{{#if (eq charac.category "main")}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-characteristic-block.hbs charac=charac key=key}}
{{/if}}
{{/each}}
</ul>
<ul class="item-list alternate-list">
<li class="item flexrow">
<label class="item-field-label-medium">Alternate IDs</label>
<input type="text" class="item-field-label-long4" name="system.biodata.alternateids" value="{{system.biodata.origin}}"
data-dtype="String" />
</li>
</ul>
</div>
<div class="grid grid-2col">
<div>
<ul class="item-list alternate-list">
<li class="flexrow item">
<label class="item-field-label-medium">Campaign</label>
<input type="text" class="item-field-label-long3" name="system.biodata.campaign" value="{{system.biodata.campaign}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="item-field-label-medium">Player</label>
<input type="text" class="item-field-label-long3" name="system.biodata.player" value="{{system.biodata.player}}"
data-dtype="String" />
</li>
<li class="flexrow item">
<label class="item-field-label-medium">GM</label>
<input type="text" class="item-field-label-long3" name="system.biodata.gm" value="{{system.biodata.gm}}"
data-dtype="String" />
</li>
<li class="item flexrow">
<label class="item-field-label-medium">Hair</label>
<input type="text" class="item-field-label-long3" name="system.biodata.hair" value="{{system.biodata.hair}}" data-dtype="String" />
</li>
</ul>
</div>
<div>
<ul class="item-list alternate-list">
<li class="flexrow item">
<label class="item-field-label-medium">Gender</label>
<input type="text" class="item-field-label-medium" name="system.biodata.gender" value="{{system.biodata.gender}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="item-field-label-medium">Height</label>
<input type="text" class="item-field-label-medium" name="system.biodata.height" value="{{system.biodata.height}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="item-field-label-medium">Mass</label>
<input type="text" class="item-field-label-medium" name="system.biodata.mass" value="{{system.biodata.mass}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="item-field-label-medium">Eyes</label>
<input type="text" class="item-field-label-medium" name="system.biodata.eyes" value="{{system.biodata.eyes}}" data-dtype="String" />
</li>
</ul>
</div>
</div>
<div class="charac-item">
</div>
</div>
</div>
</div>
@ -30,17 +70,17 @@
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="combat">Combat</a>
<a class="item" data-tab="biodata">Background</a>
<a class="item" data-tab="char">Char</a>
<a class="item" data-tab="skills">Skills</a>
<a class="item" data-tab="perks">Perks</a>
<a class="item" data-tab="talents">Talents</a>
<a class="item" data-tab="martial">Martial Arts</a>
<a class="item" data-tab="powers">Powers</a>
<a class="item" data-tab="complications">Complications</a>
<a class="item" data-tab="equipment">Equipment</a>
<a class="item" data-tab="notes">Notes</a>
<a class="" data-tab="combat">Combat</a>
<a class="" data-tab="biodata">Background</a>
<a class="" data-tab="char">Characteristics</a>
<a class="" data-tab="skills">Skills</a>
<a class="" data-tab="perks">Perks</a>
<a class="" data-tab="talents">Talents</a>
<a class="" data-tab="martial">Martial Arts</a>
<a class="" data-tab="powers">Powers</a>
<a class="" data-tab="complications">Complications</a>
<a class="" data-tab="equipment">Equipment</a>
<a class="" data-tab="notes">Notes</a>
</nav>
{{!-- Sheet Body --}}
@ -127,11 +167,11 @@
<div class="charac-item">
<ul>
<li class="item flexrow list-item items-title-bg">
<span class="items-title-medium">
<h3><label class="items-title-medium">CHAR</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">Value</label>
<h3><label class="item-field-label-short">Value</label></h3>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-long">characteristic</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Base</label>
@ -143,7 +183,6 @@
<label class="short-label">Notes</label>
</span>
<div class="item-filler">&nbsp;</div>
</li>
{{#each characteristics as |charac key|}}
@ -162,7 +201,7 @@
<span class="item-name-label-header">
<h3><label class="items-title-text">Skills</label></h3>
</span>
<span class="item-field-label-short">
<span class="item-field-label-long">
<label class="short-label">CHAR</label>
</span>
<span class="item-field-label-short">
@ -175,8 +214,8 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label">{{skill.name}}</span>
<span class="item-field-label-short">{{upper skill.system.characteristic}}</span>
<span class="item-field-label-short"><a class="roll-item" data-type="skill"><i class="fas fa-dice"></i>{{skill.system.base}}-</a></span>
<span class="item-field-label-short">{{upper skill.charac}}</span>
<span class="item-field-label-short"><a class="roll-item" data-type="skill"><i class="fas fa-dice"></i>{{skill.roll}}-</a></span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
@ -260,13 +299,13 @@
<label class="short-label">Roll</label>
</span>
</li>
{{#each talents as |talent key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{talent._id}}">
{{#each martialarts as |martial key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{martial._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{talent.img}}" /></a>
<span class="item-name-label"><a class="roll-item" data-type="talent">{{talent.name}}</a></span>
{{#if talent.system.hasroll}}
<span class="item-field-label-short">{{talent.system.roll}}-</span>
src="{{martial.img}}" /></a>
<span class="item-name-label"><a class="roll-item" data-type="talent">{{martial.name}}</a></span>
{{#if martial.system.hasroll}}
<span class="item-field-label-short">{{martial.system.roll}}-</span>
{{else}}
<span class="item-field-label-short">&nbsp;</span>
{{/if}}
@ -284,23 +323,33 @@
<ul class="stat-list alternate-list item-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Powers</label></h3>
<span class="item-name-img sheet-competence-img">&nbsp;</span>
<span class="item-field-label-short">
<label class="item-field-label-short">Cost</label>
</span>
<span class="item-field-label-long4">
<label class="item-field-label-long4">Power</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Roll</label>
<label class="item-field-label-short">Roll</label>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">END</label>
</span>
</li>
{{#each powers as |power key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{power._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{power.img}}" /></a>
<span class="item-name-label">{{power.name}}</span>
<span class="item-field-label-short">{{power.system.cost}}</span>
<span class="item-field-label-long4">{{{power.enrichDescription}}}
</span>
{{#if power.system.hasroll}}
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{power.system.roll}}-</a></span>
{{else}}
<span class="item-field-label-short">&nbsp;</span>
{{/if}}
<span class="item-field-label-medium">{{power.system.endurance}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
@ -358,15 +407,9 @@
<span class="item-field-label-long">
<label class="short-label">Qty</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Weight</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">IDR</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="money" title="Create Item"><i class="fas fa-plus"></i></a>
<a class="item-control item-add" data-type="currency" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each moneys as |money key|}}
@ -380,17 +423,6 @@
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
</label>
</span>
<span class="item-field-label-medium">
<label>{{money.system.weight}}</label>
</span>
<span class="item-field-label-medium">
{{#if money.system.idrDice}}
<a class="roll-idr" data-dice-value="{{money.data.idrDice}}">{{money.system.idrDice}}</a>
{{else}}
&nbsp;-&nbsp;
{{/if}}
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
@ -399,127 +431,13 @@
{{/each}}
</ul>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Weapons</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">Attack</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Damage</label>
</span>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each weapons as |weapon key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{weapon.img}}" /></a>
<span class="item-name-label">{{weapon.name}}</span>
<span class="item-field-label-short"><label>{{upper weapon.system.ability}}</label></span>
<span class="item-field-label-short"><label>{{upper weapon.system.damage}}</label></span>
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Weapons" items=weapons}}
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-equip" title="Worn">{{#if weapon.system.equipped}}<i
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Armor" items=armors}}
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Armors</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">Type</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Absorption</label>
</span>
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Shields" items=shields}}
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="armor" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each armors as |armor key|}}
<li class="item list-item flexrow list-item-shadow" data-item-id="{{armor._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{armor.img}}" /></a>
<span class="item-name-label">{{armor.name}}</span>
<span class="item-field-label-short">{{upper armor.system.armortype}}</span>
<span class="item-field-label-short">{{armor.system.absorprionroll}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-equip" title="Worn">{{#if armor.system.equipped}}<i
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Shields</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">Dice</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="shield" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each shields as |shield key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{shield._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{shield.img}}" /></a>
<span class="item-name-label">{{shield.name}}</span>
<span class="item-field-label-short">{{shield.system.levelDice}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-equip" title="Worn">{{#if shield.system.equipped}}<i
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Equipment</label></h3>
</span>
<span class="item-field-label-long">
<label class="short-label">Quantity</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="equipment" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each containersTree as |equip key|}}
{{> systems/fvtt-crucible-rpg/templates/partial-actor-equipment.html equip=equip level=1}}
<ul class="item-list list-item-shadow2 list-item-margin1">
{{#each equip.data.contents as |subgear key|}}
{{> systems/fvtt-crucible-rpg/templates/partial-actor-equipment.html equip=subgear level=2}}
{{/each}}
</ul>
{{/each}}
</ul>
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Equipment" items=equipments}}
<hr>
@ -527,60 +445,17 @@
{{!-- Biography Tab --}}
<div class="tab biodata" data-group="primary" data-tab="biodata">
<div class="grid grid-2col">
<div class="flexrow">
<div class="biodata-portrait">
<img src="{{img}}">
</div>
<div>
<ul class="item-list alternate-list">
<li class="item flexrow">
<label class="generic-label">Alternate IDs</label>
<input type="text" class="" name="system.biodata.alternateids" value="{{data.biodata.origin}}"
data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">Age</label>
<input type="text" class="" name="system.biodata.age" value="{{data.biodata.age}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">Height</label>
<input type="text" class="" name="system.biodata.height" value="{{data.biodata.height}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">Eyes</label>
<input type="text" class="" name="system.biodata.eyes" value="{{data.biodata.eyes}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">Hair</label>
<input type="text" class="" name="system.biodata.hair" value="{{data.biodata.hair}}" data-dtype="String" />
</li>
</ul>
<h3>Background/History : </h3>
<div class="form-group editor">
{{editor description target="system.biodata.description" button=true owner=owner
editable=editable}}
</div>
</div>
<div>
<ul>
<li class="flexrow item">
<label class="generic-label">Campaign name</label>
<input type="text" class="" name="system.biodata.campaign" value="{{data.biodata.campaign}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label">Gender</label>
<input type="text" class="" name="system.biodata.gender" value="{{data.biodata.gender}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label">Player</label>
<input type="text" class="" name="system.biodata.player" value="{{data.biodata.player}}"
data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label">GM</label>
<input type="text" class="" name="system.biodata.gm" value="{{data.biodata.gm}}"
data-dtype="String" />
</li>
</ul>
</div>
</div>
<h3>Background/History : </h3>
<div class="form-group editor">
{{editor description target="system.biodata.description" button=true owner=owner
editable=editable}}
</div>
<hr>
<h3>Personality/Motivation : </h3>

View File

@ -17,13 +17,17 @@
{{#if item}}
<div class="flexrow">
<span class="item-field-label-long margin-item-list">{{upperFirst item.type}} : </span>
<span class="item-field-label-long margin-item-list">{{upperFirst item.type}} - {{upperFirst item.name}}</span>
{{#if item.roll}}
<span class="item-field-label-medium margin-item-list">{{item.roll}}-</span>
{{else}}
<span class="item-field-label-medium margin-item-list">{{item.system.roll}}-</span>
{{/if}}
</div>
{{/if}}
<div class="flexrow">
<span class="item-field-label-long margin-item-list">Bonus/Malus : </span>
<span class="item-field-label-long margin-item-list">Bonus/Penalty : </span>
<select class="item-field-label-medium" type="text" id="bonusMalus" value="{{bonusMalus}}" data-dtype="Number" >
{{#select bonusMalus}}
<option value="-10">-10</option>

View File

@ -29,13 +29,11 @@
<li>{{item.name}} ({{upperFirst item.type}})</li>
{{/if}}
<li>Bonus/Malus : {{bonusMalus}}
<li>Bonus/Penalty : {{bonusMalus}}
</li>
<li><strong>Result : {{result}}</strong> ({{#if isSuccess}}Success!!{{else}}Failure!{{/if}})</li>
{{#if isSuccess}}
<li><strong>Margin : {{margin}}</strong>
{{/if}}
</ul>
</div>

View File

@ -16,10 +16,10 @@
<div class="tab details" data-group="primary" data-tab="details">
<ul>
<li class="flexrow"><label class="generic-label">Quantity</label>
<input type="text" class="input-numeric-short padd-right" name="system.quantity" value="{{data.quantity}}" data-dtype="Number"/>
<input type="text" class="input-numeric-short padd-right" name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="generic-label">Unit value</label>
<input type="text" class="input-numeric-short padd-right" name="system.value" value="{{data.value}}" data-dtype="Number"/>
<input type="text" class="input-numeric-short padd-right" name="system.value" value="{{system.value}}" data-dtype="Number"/>
</li>
</ul>
</div>

View File

@ -16,20 +16,30 @@
<div class="tab details" data-group="primary" data-tab="details">
<ul>
{{> systems/fvtt-hero-system-6/templates/partials/partial-power-equipment-cost.hbs}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-power-equipment-cost.hbs}}
<li class="flexrow"><label class="item-field-label-long">Equipped ?</label>
<li class="flexrow"><label class="item-field-label-long">Subtype</label>
<select class="item-field-label-long" type="text" name="system.subtype" value="{{system.subtype}}" data-dtype="String">
{{#select system.subtype}}
{{#each config.equipmentSubType as |name key|}}
<option value="{{key}}">{{name}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-long">Equipped ?</label>
<label class="item-field-label-medium"><input type="checkbox" name="system.equipped" {{checked system.equipped}}/></label>
</li>
</li>
<li class="flexrow"><label class="item-field-label-long">Weight</label>
<input type="text" class="item-field-label-medium input-numeric-short padd-right" name="system.weight" value="{{system.weight}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long">Value</label>
<input type="text" class="item-field-label-medium input-numeric-short padd-right" name="system.value" value="{{system.value}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long">Weight</label>
<input type="text" class="item-field-label-medium input-numeric-short padd-right" name="system.weight" value="{{system.weight}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long">Value</label>
<input type="text" class="item-field-label-medium input-numeric-short padd-right" name="system.value" value="{{system.value}}" data-dtype="Number"/>
</li>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
</ul>
</div>

View File

@ -0,0 +1,23 @@
<form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
</div>
</header>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-nav.hbs}}
{{!-- Sheet Body --}}
<section class="sheet-body">
<div class="tab details" data-group="primary" data-tab="details">
<ul>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-description.hbs}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
</ul>
</div>
</section>
</form>

View File

@ -46,6 +46,29 @@
<input type="text" class="item-field-label-medium" name="system.levels" value="{{system.levels}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long">Skill levels only</label>
<input type="checkbox" class="item-field-label-medium" name="system.skilllevelonly" {{checked system.skilllevelonly}}
{{#if (or system.skillfamiliarity system.skillprofiency)}}disabled{{/if}}
data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long">Familiarity only</label>
<input type="checkbox" class="item-field-label-medium item-skill-familiarity" name="system.skillfamiliarity" {{checked system.skillfamiliarity}}
{{#if (or system.skillprofiency system.skilllevelonly)}}disabled{{/if}}
data-dtype="Number"/>
</li>
{{#if system.skillfamiliarity}}
<li class="flexrow"><label class="item-field-label-long">Everyman skill</label>
<input type="checkbox" class="item-field-label-medium item-skill-everyman" name="system.skilleveryman" {{checked system.skilleveryman}} data-dtype="Number"/>
</li>
{{/if}}
<li class="flexrow"><label class="item-field-label-long">Proficency</label>
<input type="checkbox" class="item-field-label-medium item-skill-profiency" name="system.skillprofiency" {{checked system.skillprofiency}}
{{#if (or system.skillfamiliarity system.skilllevelonly)}}disabled{{/if}}
data-dtype="Number"/>
</li>
{{#if (ne system.skilltype "combat")}}
<li class="flexrow"><label class="item-field-label-long">Levels Cost</label>
<input type="text" class="item-field-label-medium" name="system.levelscost" value="{{system.levelscost}}" data-dtype="Number"/>

View File

@ -0,0 +1,32 @@
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">{{title}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">Value</label>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">Mass</label>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">Quantity</label>
</span>
<span class="item-field-label-short">
<label class="item-field-label-short">Roll</label>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">END</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="equipment" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
<ul class="item-list list-item-shadow2">
{{#each items as |equip key|}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment.hbs equip=equip}}
{{/each}}
</ul>
</ul>

View File

@ -1,37 +1,31 @@
<li class="item flexrow list-item list-item-shadow" data-item-id="{{equip._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" src="{{equip.img}}" /></a>
{{#if (eq level 1)}}
<span class="item-name-label">{{equip.name}}</span>
{{else}}
<span class="item-name-label-level2">{{equip.name}}</span>
{{/if}}
<span class="item-field-label-long"><label>
{{equip.system.quantity}}
(<a class="quantity-minus plus-minus-button">&nbsp;-</a>/<a class="quantity-plus plus-minus-button">+</a>)
<span class="item-field-label-medium"><label>{{equip.system.value}}
</label>
</span>
<span class="item-field-label-medium">
&nbsp;-&nbsp;
</span>
<span class="item-field-label-short">
{{#if equip.system.iscontainer}}
{{equip.system.contentsEnc}}
{{else}}
{{mul equip.system.weight equip.system.quantity}}
{{/if}}
</span>
<span class="item-field-label-medium">
&nbsp;-&nbsp;
</span>
<span class="item-field-label-medium"><label>{{equip.system.weight}}
</label>
</span>
<span class="item-field-label-medium"><label>{{equip.system.quantity}}
</label>
</span>
{{#if equip.system.hasroll}}
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{equip.system.roll}}-</a></span>
{{else}}
<span class="item-field-label-short">&nbsp;</span>
{{/if}}
<span class="item-field-label-medium"><label>{{equip.system.endurance}}
</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
{{#if (eq level 1)}}
<a class="item-control item-equip" title="Worn">{{#if equip.system.equipped}}<i
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
{{/if}}
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>

View File

@ -1,13 +1,16 @@
<li class="item flexrow list-item" data-attr-key="{{key}}">
<li class="item stat flexrow list-item list-item-shadow" data-attr-key="{{key}}">
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.value" value="{{charac.value}}" data-dtype="Number"/>
<span class="item-field-label-medium" name="{{key}}">
<h4 class="item-field-label-medium margin-item-list">{{charac.label}}</a></h4>
</span>
{{#if (eq charac.category "main")}}
<h4 class="item-field-label-short margin-item-list">{{charac.base}}</h4>
{{else}}
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.value" value="{{charac.value}}" data-dtype="Number"/>
{{/if}}
&nbsp;<h4 class="item-field-label-short margin-item-list">{{charac.base}}</h4>
<h4 class="item-field-label-short margin-item-list">{{charac.total}}</h4>
<h4 class="item-field-label-short margin-item-list"><a class="roll-charac" data-charac-key="{{key}}"><i class="fas fa-dice"></i>{{charac.roll}}-</a></h4>
<input type="text" class="item-field-label-long2" name="system.characteristics.{{key}}.notes" value="{{charac.notes}}" data-dtype="String"/>
</li>