- Defined npc in template.json

- Created main.hbs in templates/sheets/npc
This commit is contained in:
Ender 2024-04-14 13:31:10 +02:00
parent c5e5ba199b
commit 4de123ae81
4 changed files with 173 additions and 4 deletions

View File

@ -15,6 +15,7 @@ const preloadTemplates = async (): Promise<Handlebars.TemplateDelegate<any>[]> =
"sheets/character/spells.hbs", "sheets/character/spells.hbs",
"sheets/character/combat.hbs", "sheets/character/combat.hbs",
"sheets/character/effects.hbs", "sheets/character/effects.hbs",
"sheets/npc/main.hbs",
"sheets/partial/mod.hbs", "sheets/partial/mod.hbs",
"sheets/item/rolls.hbs", "sheets/item/rolls.hbs",
"chat/roll-m5.hbs", "chat/roll-m5.hbs",

View File

@ -7,7 +7,6 @@ import { M5Roll } from "../rolls/M5Roll";
export default class M5CharacterSheet extends ActorSheet { export default class M5CharacterSheet extends ActorSheet {
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return mergeObject(super.defaultOptions, {
template: "systems/midgard5/templates/sheets/character/main.hbs",
width: 1000, width: 1000,
height: 800, height: 800,
classes: ["midgard5", "sheet", "character"], classes: ["midgard5", "sheet", "character"],
@ -21,7 +20,15 @@ export default class M5CharacterSheet extends ActorSheet {
}); });
} }
// get template() { get template() {
//console.log("M5CharacterSheet", this.actor.data.type)
if (this.actor.data.type === "npc") {
return "systems/midgard5/templates/sheets/npc/main.hbs";
}
else {
return "systems/midgard5/templates/sheets/character/main.hbs";
}
}
// return "systems/midgard5/templates/character_sheet/main.hbs" // return "systems/midgard5/templates/character_sheet/main.hbs"
// }Options extends ActorSheet.Options = ActorSheet.Options, Data extends object = ActorSheet.Data<Options> // }Options extends ActorSheet.Options = ActorSheet.Options, Data extends object = ActorSheet.Data<Options>

View File

@ -1,6 +1,9 @@
{ {
"Actor": { "Actor": {
"types": ["character"], "types": [
"character",
"npc"
],
"templates": { "templates": {
"characterDescription": { "characterDescription": {
"info": { "info": {
@ -19,6 +22,7 @@
"occupation": "", "occupation": "",
"origin": "", "origin": "",
"faith": "", "faith": "",
"level": 1,
"gold": 0, "gold": 0,
"silver": 0, "silver": 0,
"copper": 0 "copper": 0
@ -53,7 +57,8 @@
"zt": { "value": 50, "bonus": 0 }, "zt": { "value": 50, "bonus": 0 },
"au": { "value": 50, "bonus": 0 }, "au": { "value": 50, "bonus": 0 },
"pa": { "value": 50, "bonus": 0 }, "pa": { "value": 50, "bonus": 0 },
"wk": { "value": 50, "bonus": 0 } "wk": { "value": 50, "bonus": 0 },
"git": { "value": 50, "bonus": 0 }
} }
}, },
"skills": { "skills": {
@ -156,6 +161,10 @@
"character": { "character": {
"templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills", "gear"], "templates": ["characterBars", "attributes", "characterDescription", "characterHeader", "skills", "gear"],
"calc": {} "calc": {}
},
"npc": {
"templates": ["characterBars", "attributes", "characterDescription", "skills", "gear"],
"calc": {}
} }
}, },
"Item": { "Item": {

View File

@ -0,0 +1,152 @@
<form class="actor-sheet {{cssClass}}" autocomplete="off">
<header class="flexbox" style="background-color: beige; padding: 5px; border: 2px solid black;">
<!-- Logo -->
<div class="flexcolumn-5" style="height: 200px;">
<img class="profile-img" src="/systems/midgard5/assets/icons/backgrounds/bg1.webp" alt="Midgard">
</div>
<!-- Name, Class, Level, Race, Occupation -->
<div class="flexcolumn-2" style="margin:0px 5px 0px 5px;">
<table class="bordered">
<tr>
<td >{{localize "midgard5.actor-name"}}</td>
<td colspan="3"><input name="name" type="text" value="{{actor.name}}" data-dtype="String" /></td>
</tr>
<tr>
<td >{{localize "midgard5.class"}}</td>
<td >
<input name="class" type="text" value="{{data.info.class}}" data-dtype="String" />
</td>
<td >{{localize "midgard5.level"}}</td>
<td><input name="level" type="text" value="{{data.calc.level}}" data-dtype="Number" /></td>
</table>
<table style="font-weight: bold;">
<tr height = 10px></tr>
<tr>
<td ><input name="race" type="text" value="{{data.info.race}}" data-dtype="String" /></td>
<td ><input name="data.info.occupation" type="text" value="{{data.info.occupation}}" data-dtype="String" /></td>
</tr>
<tr>
<td style="text-align: center; font-size: small">{{localize "midgard5.race"}}</td>
<td style="text-align: center; font-size: small">{{localize "midgard5.occupation"}}</td>
</tr>
</table>
<table style="width: 100%;">
<tr>
<td class="attribute-value roll-attribute-button" data-attribute="st" data-value="{{data.attributes.st.value}}">{{localize "midgard5.actor-st"}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="gs" data-value="{{data.attributes.gs.value}}">{{localize "midgard5.actor-gs"}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="gw" data-value="{{data.attributes.gw.value}}">{{localize "midgard5.actor-gw"}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="ko" data-value="{{data.attributes.ko.value}}">{{localize "midgard5.actor-ko"}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="in" data-value="{{data.attributes.in.value}}">{{localize "midgard5.actor-in"}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="zt" data-value="{{data.attributes.zt.value}}">{{localize "midgard5.actor-zt"}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="au" data-value="{{data.attributes.au.value}}">{{localize "midgard5.actor-au"}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="pa" data-value="{{data.attributes.pa.value}}">{{localize "midgard5.actor-pa"}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="wk" data-value="{{data.attributes.wk.value}}">{{localize "midgard5.actor-wk"}}</td>
<td class="attribute-value roll-attribute-button" data-attribute="git" data-value="{{data.attributes.git.value}}">{{localize "midgard5.actor-git"}}</td>
</tr>
<tr>
<td style="text-align: center"><input class="attribute-footer-value" name="data.attributes.{{attributeId}}.value" type="text" value="{{data.attributes.st.value}}" data-dtype="Number" />
<td style="text-align: center"><input class="attribute-footer-value" name="data.attributes.{{attributeId}}.value" type="text" value="{{data.attributes.gs.value}}" data-dtype="Number" />
<td style="text-align: center"><input class="attribute-footer-value" name="data.attributes.{{attributeId}}.value" type="text" value="{{data.attributes.gw.value}}" data-dtype="Number" />
<td style="text-align: center"><input class="attribute-footer-value" name="data.attributes.{{attributeId}}.valu type="text" value="{{data.attributes.ko.value}}" data-dtype="Number" />
<td style="text-align: center"><input name="in" type="text" value="{{data.attributes.in.value}}" data-dtype="Number" />
<td style="text-align: center"><input name="zt" type="text" value="{{data.attributes.zt.value}}" data-dtype="Number" />
<td style="text-align: center"><input name="au" type="text" value="{{data.attributes.au.value}}" data-dtype="Number" />
<td style="text-align: center"><input name="pa" type="text" value="{{data.attributes.pa.value}}" data-dtype="Number" />
<td style="text-align: center"><input name="wk" type="text" value="{{data.attributes.wk.value}}" data-dtype="Number" />
<td style="text-align: center"><input name="git" type="text" value="{{data.attributes.git.value}}" data-dtype="Number" />
</tr>
</table>
</div>
<!-- Profilbild -->
<div class="flexcolumn-5" style="height: 200px;text-align: center;" >
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
</div>
<!-- LP + AP -->
<div class="flexcolumn-1">
<table>
<tr>
<td><b>{{localize "midgard5.actor-lp-short"}}</b></td>
<td colspan="9">
<div class="health-bar">
<input name="data.lp.value" type="text" value="{{data.lp.value}}" data-dtype="Number" />
{{#times data.lp.max}}
{{#if (lt this ../data.lp.value)}}
<div class="lp-bar-item update-lp" data-value="{{this}}"></div>
{{else}}
<div class="lp-bar-item-empty update-lp" data-value="{{this}}"></div>
{{/if}}
{{/times}}
<div class="max-value">{{data.lp.max}}</div>
</div>
</td>
</tr>
<tr>
<td><b>{{localize "midgard5.actor-ap-short"}}</b></td>
<td colspan="9">
<div class="health-bar">
<input name="data.ap.value" type="text" value="{{data.ap.value}}" data-dtype="Number" />
{{#times data.ap.max}}
{{#if (lt this ../data.ap.value)}}
<div class="ap-bar-item update-ap" data-value="{{this}}"></div>
{{else}}
<div class="ap-bar-item-empty update-ap" data-value="{{this}}"></div>
{{/if}}
{{/times}}
<div class="max-value">{{data.ap.max}}</div>
</div>
</td>
</tr>
</table>
</div>
</header>
{{!-- Character Sheet Navigation --}}
<nav class="sheet-navigation tabs" data-group="primary">
<a class="item active" data-tab="base_values">{{ localize "midgard5.base_values" }}</a>
<a class="item" data-tab="skills">{{ localize "midgard5.skills" }}</a>
<a class="item" data-tab="gear">{{ localize "midgard5.gear" }}</a>
<a class="item" data-tab="combat">{{ localize "midgard5.combat" }}</a>
{{#if actor.system.info.magicUsing }}
<a class="item" data-tab="spells">{{ localize "midgard5.spells" }}</a>
{{/if}}
<a class="item" data-tab="effects">{{ localize "midgard5.effects" }}</a>
<a class="item" data-tab="description">{{ localize "midgard5.description" }}</a>
</nav>
<section class="sheet-content">
<div class="tab base_values flexcol" data-group="primary" data-tab="base_values">
{{> "systems/midgard5/templates/sheets/character/base_values.hbs"}}
</div>
<div class="tab skills flexcol" data-group="primary" data-tab="skills">
{{> "systems/midgard5/templates/sheets/character/skills.hbs"}}
</div>
<div class="tab gear flexcol" data-group="primary" data-tab="gear">
{{> "systems/midgard5/templates/sheets/character/gear.hbs"}}
</div>
<div class="tab combat flexcol" data-group="primary" data-tab="combat">
{{> "systems/midgard5/templates/sheets/character/combat.hbs"}}
</div>
<div class="tab spells flexcol" data-group="primary" data-tab="spells">
{{> "systems/midgard5/templates/sheets/character/spells.hbs"}}
</div>
<div class="tab effects flexcol" data-group="primary" data-tab="effects">
{{> "systems/midgard5/templates/sheets/character/effects.hbs"}}
</div>
<div class="tab description flexcol" data-group="primary" data-tab="description">
{{> "systems/midgard5/templates/sheets/character/description.hbs"}}
</div>
</section>
</form>