Compare commits

..

3 Commits

Author SHA1 Message Date
Sven Balzer
948dba6032 change Nahkampfwaffe to Bewaffnung and add Parierwaffe/Schild/Fernkampfwaffe 2024-10-08 14:28:46 +02:00
Sven Balzer
0df8a4e89d add Nahkampfwaffe 2024-10-05 22:44:10 +02:00
Sven Balzer
48e0c5db3c add Ruestungen 2024-10-05 13:36:35 +02:00
10 changed files with 572 additions and 38 deletions

View File

@ -0,0 +1,205 @@
{{#*inline "editable-input"}}
<div class="editable-input editable-{{type}}">
{{#if @root.editable}}
<input type="{{type}}" name="{{name}}" value="{{value}}" placeholder="{{placeholder}}">
{{else}}
<div>
{{value}}
{{#unless value}}{{placeholder}}{{/unless}}
</div>
{{/if}}
{{#if placeholder}}
<div class="placeholder">{{placeholder}}</div>
{{/if}}
</div>
{{/inline}}
{{#*inline "editable-checkbox"}}
<div class="editable-input editable-checkbox">
{{#if @root.editable}}
<input type="checkbox" name="{{name}}" {{checked value}}>
{{else}}
<div>
{{value}}
{{#unless value}}{{placeholder}}{{/unless}}
</div>
{{/if}}
{{#if placeholder}}
<div class="placeholder">{{placeholder}}</div>
{{/if}}
</div>
{{/inline}}
<form class="item-sheet {{ cssClass }}" autocomplete="off">
<div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" {{#if editable}}data-edit="img"{{/if}}>
<div class="col">
{{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
<div class="row">
{{>editable-input type="number" name="system.gewicht" value=item.system.gewicht placeholder=(localize "DSA41.weight")}}
{{>editable-input type="number" name="system.preis" value=item.system.preis placeholder=(localize "DSA41.price")}}
</div>
</div>
</div>
<nav class="tabs" data-group="primary">
<div class="row noflex">
<a data-tab="tab1">{{localize "DSA41.bewaffnung.nahkampfwaffe.label"}}</a>
{{>editable-checkbox name="system.nahkampfwaffe.aktiv" value=item.system.nahkampfwaffe.aktiv}}
</div>
<div class="row noflex">
<a data-tab="tab2">{{localize "DSA41.bewaffnung.parierwaffe.label"}}</a>
{{>editable-checkbox name="system.parierwaffe.aktiv" value=item.system.parierwaffe.aktiv}}
</div>
<div class="row noflex">
<a data-tab="tab3">{{localize "DSA41.bewaffnung.schild.label"}}</a>
{{>editable-checkbox name="system.schild.aktiv" value=item.system.schild.aktiv}}
</div>
<div class="row noflex">
<a data-tab="tab4">{{localize "DSA41.bewaffnung.fernkampfwaffe.label"}}</a>
{{>editable-checkbox name="system.fernkampfwaffe.aktiv" value=item.system.fernkampfwaffe.aktiv}}
</div>
</nav>
<section class="content">
<div class="tab" data-group="primary" data-tab="tab1">
<table>
<tr>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.trefferpunkte"}}</td>
<td class="center">
<div class="row">
{{>editable-input type="text" name="system.nahkampfwaffe.basis" value=item.system.nahkampfwaffe.basis placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.basis")}}
{{>editable-input type="number" name="system.nahkampfwaffe.schwellenwert" value=item.system.nahkampfwaffe.schwellenwert placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.schwellenwert")}}
{{>editable-input type="number" name="system.nahkampfwaffe.schadensschritte" value=item.system.nahkampfwaffe.schadensschritte placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.schadensschritte")}}
</div>
</td>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.modifikator"}}</td>
<td>
<div class="row">
{{>editable-input type="number" name="system.nahkampfwaffe.modifikator_attacke" value=item.system.nahkampfwaffe.modifikator_attacke placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.attacke")}}
{{>editable-input type="number" name="system.nahkampfwaffe.modifikator_parade" value=item.system.nahkampfwaffe.modifikator_parade placeholder=(localize "DSA41.bewaffnung.nahkampfwaffe.parade")}}
</div>
</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.initiative"}}</td>
<td>{{>editable-input type="number" name="system.nahkampfwaffe.initiative" value=item.system.nahkampfwaffe.initiative}}</td>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.bruchfaktor"}}</td>
<td>{{>editable-input type="number" name="system.nahkampfwaffe.bruchfaktor" value=item.system.nahkampfwaffe.bruchfaktor}}</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.distanzklasse"}}</td>
<td>{{>editable-input type="text" name="system.nahkampfwaffe.distanzklasse" value=item.system.nahkampfwaffe.distanzklasse}}</td>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.kampftalente"}}</td>
<td>{{>editable-input type="text" name="system.nahkampfwaffe.kampftalente" value=item.system.nahkampfwaffe.kampftalente}}</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.laenge"}}</td>
<td>{{>editable-input type="number" name="system.nahkampfwaffe.laenge" value=item.system.nahkampfwaffe.laenge}}</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.zweihaendig"}}</td>
<td>{{>editable-checkbox name="system.nahkampfwaffe.zweihaendig" value=item.system.nahkampfwaffe.zweihaendig}}</td>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.werfbar"}}</td>
<td>{{>editable-checkbox name="system.nahkampfwaffe.werfbar" value=item.system.nahkampfwaffe.werfbar}}</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.improvisiert"}}</td>
<td>{{>editable-checkbox name="system.nahkampfwaffe.improvisiert" value=item.system.nahkampfwaffe.improvisiert}}</td>
<td>{{localize "DSA41.bewaffnung.nahkampfwaffe.priviligiert"}}</td>
<td>{{>editable-checkbox name="system.nahkampfwaffe.priviligiert" value=item.system.nahkampfwaffe.priviligiert}}</td>
</tr>
</table>
</div>
<div class="tab" data-group="primary" data-tab="tab2">
<table>
<tr>
<td>{{localize "DSA41.bewaffnung.parierwaffe.initiative"}}</td>
<td>{{>editable-input type="number" name="system.parierwaffe.initiative" value=item.system.parierwaffe.initiative}}</td>
<td>{{localize "DSA41.bewaffnung.parierwaffe.modifikator"}}</td>
<td>
<div class="row">
{{>editable-input type="number" name="system.parierwaffe.modifikator_attacke" value=item.system.parierwaffe.modifikator_attacke placeholder=(localize "DSA41.bewaffnung.parierwaffe.attacke")}}
{{>editable-input type="number" name="system.parierwaffe.modifikator_parade" value=item.system.parierwaffe.modifikator_parade placeholder=(localize "DSA41.bewaffnung.parierwaffe.parade")}}
</div>
</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.parierwaffe.bruchfaktor"}}</td>
<td>{{>editable-input type="number" name="system.parierwaffe.bruchfaktor" value=item.system.parierwaffe.bruchfaktor}}</td>
</tr>
</table>
</div>
<div class="tab" data-group="primary" data-tab="tab3">
<table>
<tr>
<td>{{localize "DSA41.bewaffnung.schild.groesse.label"}}</td>
<td>
<select name="system.schild.groesse">
<option value="klein" {{#if (eq item.system.schild.groesse "klein")}} selected {{/if}}>{{localize "DSA41.bewaffnung.schild.groesse.klein"}}</option>
<option value="gross" {{#if (eq item.system.schild.groesse "gross")}} selected {{/if}}>{{localize "DSA41.bewaffnung.schild.groesse.gross"}}</option>
<option value="sehr_gross" {{#if (eq item.system.schild.groesse "sehr_gross")}} selected {{/if}}>{{localize "DSA41.bewaffnung.schild.groesse.sehr_gross"}}</option>
</select>
</td>
<td>{{localize "DSA41.bewaffnung.schild.modifikator"}}</td>
<td>
<div class="row">
{{>editable-input type="number" name="system.schild.modifikator_attacke" value=item.system.schild.modifikator_attacke placeholder=(localize "DSA41.bewaffnung.schild.attacke")}}
{{>editable-input type="number" name="system.schild.modifikator_parade" value=item.system.schild.modifikator_parade placeholder=(localize "DSA41.bewaffnung.schild.parade")}}
</div>
</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.schild.initiative"}}</td>
<td>{{>editable-input type="number" name="system.schild.initiative" value=item.system.schild.initiative}}</td>
<td>{{localize "DSA41.bewaffnung.schild.bruchfaktor"}}</td>
<td>{{>editable-input type="number" name="system.schild.bruchfaktor" value=item.system.schild.bruchfaktor}}</td>
</tr>
</table>
</div>
<div class="tab" data-group="primary" data-tab="tab4">
<table>
<tr>
<td>{{localize "DSA41.bewaffnung.fernkampfwaffe.trefferpunkte"}}</td>
<td class="center">{{>editable-input type="text" name="system.fernkampfwaffe.basis" value=item.system.fernkampfwaffe.basis}}</td>
<td>{{localize "DSA41.bewaffnung.fernkampfwaffe.laden"}}</td>
<td>{{>editable-input type="number" name="system.fernkampfwaffe.laden" value=item.system.fernkampfwaffe.laden}}</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.fernkampfwaffe.reichweiten"}}</td>
<td colspan="3">
<div class="row">
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite1" value=item.system.fernkampfwaffe.reichweite1}}
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite2" value=item.system.fernkampfwaffe.reichweite2}}
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite3" value=item.system.fernkampfwaffe.reichweite3}}
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite4" value=item.system.fernkampfwaffe.reichweite4}}
{{>editable-input type="number" name="system.fernkampfwaffe.reichweite5" value=item.system.fernkampfwaffe.reichweite5}}
</div>
</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.fernkampfwaffe.modifikator"}}</td>
<td colspan="3">
<div class="row">
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator1" value=item.system.fernkampfwaffe.modifikator1}}
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator2" value=item.system.fernkampfwaffe.modifikator2}}
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator3" value=item.system.fernkampfwaffe.modifikator3}}
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator4" value=item.system.fernkampfwaffe.modifikator4}}
{{>editable-input type="number" name="system.fernkampfwaffe.modifikator5" value=item.system.fernkampfwaffe.modifikator5}}
</div>
</td>
</tr>
<tr>
<td>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionskosten"}}</td>
<td>{{>editable-input type="number" name="system.fernkampfwaffe.munitionskosten" value=item.system.fernkampfwaffe.munitionskosten}}</td>
<td>{{localize "DSA41.bewaffnung.fernkampfwaffe.munitionsgewicht"}}</td>
<td>{{>editable-input type="number" name="system.fernkampfwaffe.munitionsgewicht" value=item.system.fernkampfwaffe.munitionsgewicht}}</td>
</tr>
</table>
</div>
</section>
</form>

View File

@ -0,0 +1,64 @@
{{#*inline "editable-input"}}
<div class="editable-input editable-{{type}}">
{{#if @root.editable}}
<input type="{{type}}" name="{{name}}" value="{{value}}" placeholder="{{placeholder}}">
{{else}}
<div>
{{value}}
{{#unless value}}{{placeholder}}{{/unless}}
</div>
{{/if}}
{{#if placeholder}}
<div class="placeholder">{{placeholder}}</div>
{{/if}}
</div>
{{/inline}}
<form class="item-sheet {{ cssClass }}" autocomplete="off">
<div class="row">
<img class="item-image" src="{{ item.img }}" title="{{ item.name }}" {{#if editable}}data-edit="img"{{/if}}>
<div class="col">
{{>editable-input type="text" name="name" value=item.name placeholder=(localize "DSA41.name")}}
<div class="row">
{{>editable-input type="number" name="system.gewicht" value=item.system.gewicht placeholder=(localize "DSA41.weight")}}
{{>editable-input type="number" name="system.preis" value=item.system.preis placeholder=(localize "DSA41.price")}}
</div>
</div>
</div>
<div class="row">
<table>
<tr>
<td>{{localize "DSA41.ruestungen.kopf"}}</td>
<td>{{>editable-input type="number" name="system.kopf" value=item.system.kopf}}</td>
<td>{{localize "DSA41.ruestungen.brust"}}</td>
<td>{{>editable-input type="number" name="system.brust" value=item.system.brust}}</td>
</tr>
<tr>
<td>{{localize "DSA41.ruestungen.ruecken"}}</td>
<td>{{>editable-input type="number" name="system.ruecken" value=item.system.ruecken}}</td>
<td>{{localize "DSA41.ruestungen.bauch"}}</td>
<td>{{>editable-input type="number" name="system.bauch" value=item.system.bauch}}</td>
</tr>
<tr>
<td>{{localize "DSA41.ruestungen.linker_arm"}}</td>
<td>{{>editable-input type="number" name="system.linker_arm" value=item.system.linker_arm}}</td>
<td>{{localize "DSA41.ruestungen.rechter_arm"}}</td>
<td>{{>editable-input type="number" name="system.rechter_arm" value=item.system.rechter_arm}}</td>
</tr>
<tr>
<td>{{localize "DSA41.ruestungen.linkes_bein"}}</td>
<td>{{>editable-input type="number" name="system.linkes_bein" value=item.system.linkes_bein}}</td>
<td>{{localize "DSA41.ruestungen.rechtes_bein"}}</td>
<td>{{>editable-input type="number" name="system.rechtes_bein" value=item.system.rechtes_bein}}</td>
</tr>
<tr>
<td>{{localize "DSA41.ruestungen.gesamt_ruestungsschutz"}}</td>
<td>{{>editable-input type="number" name="system.gesamt_ruestungsschutz" value=item.system.gesamt_ruestungsschutz}}</td>
<td>{{localize "DSA41.ruestungen.gesamt_behinderung"}}</td>
<td>{{>editable-input type="number" name="system.gesamt_behinderung" value=item.system.gesamt_behinderung}}</td>
</tr>
</table>
</div>
</form>

View File

@ -1,11 +0,0 @@
<form class="item-sheet {{ cssClass }}" autocomplete="off">
<header>
{{#if editable}}
<img src="{{ item.img }}" title="{{ item.name }}" data-edit="img">
<input name="name" type="text" value="{{ item.name }}" placeholder="Name">
{{else}}
<img src="{{ item.img }}" title="{{ item.name }}">
<div>{{ item.name }}</div>
{{/if}}
</header>
</form>

View File

@ -1,11 +0,0 @@
<form class="item-sheet {{ cssClass }}" autocomplete="off">
<header>
{{#if editable}}
<img src="{{ item.img }}" title="{{ item.name }}" data-edit="img">
<input name="name" type="text" value="{{ item.name }}" placeholder="Name">
{{else}}
<img src="{{ item.img }}" title="{{ item.name }}">
<div>{{ item.name }}</div>
{{/if}}
</header>
</form>

View File

@ -1,9 +1,9 @@
{
"TYPES": {
"Item": {
"Gegenstaende": "Gegenstände",
"Waffen": "Waffen",
"Ruestungen": "Rüstungen"
"Gegenstand": "Gegenstand",
"Ruestung": "Rüstung",
"Bewaffnung": "Bewaffnung"
}
},
@ -145,6 +145,83 @@
"ackerbau": "Ackerbau"
}
}
},
"ruestungen": {
"kopf": "Kopf",
"brust": "Brust",
"ruecken": "Rücken",
"bauch": "Bauch",
"linker_arm": "Linker Arm",
"rechter_arm": "Rechter Arm",
"linkes_bein": "Linkes Bein",
"rechtes_bein": "Rechtes Bein",
"gesamt_ruestungsschutz": "Gesamt Rüstungsschutz",
"gesamt_behinderung": "Gesamt Behinderung"
},
"bewaffnung": {
"nahkampfwaffe": {
"label": "Nahkampfwaffe",
"laenge": "Länge",
"trefferpunkte": "Trefferpunkte",
"basis": "Basis",
"schwellenwert": "Schwellenwert",
"schadensschritte": "Schadensschritte",
"initiative": "Initiative",
"modifikator": "Modifikator",
"attacke": "Attacke",
"parade": "Parade",
"bruchfaktor": "Bruchfaktor",
"distanzklasse": "Distanzklasse",
"zweihaendig": "Zweihändig",
"werfbar": "Werfbar",
"improvisiert": "Improvisiert",
"priviligiert": "Priviligiert",
"kampftalente": "Kampftalente"
},
"parierwaffe": {
"label": "Parierwaffe",
"modifikator": "Modifikator",
"attacke": "Attacke",
"parade": "Parade",
"initiative": "Initiative",
"bruchfaktor": "Bruchfaktor"
},
"schild": {
"label": "Schild",
"groesse": {
"label": "Größe",
"klein": "Klein",
"gross": "Groß",
"sehr_gross": "Sehr Groß"
},
"modifikator": "Modifikator",
"attacke": "Attacke",
"parade": "Parade",
"initiative": "Initiative",
"bruchfaktor": "Bruchfaktor"
},
"fernkampfwaffe": {
"label": "Fernkampfwaffe",
"trefferpunkte": "Trefferpunkte",
"basis": "Basis",
"reichweiten": "Reichweiten",
"modifikator": "Modifikator",
"laden": "Laden",
"munitionskosten": "Munitionskosten",
"munitionsgewicht": "Munitionsgewicht"
}
}
}
}

View File

@ -1,9 +1,9 @@
{
"TYPES": {
"Item": {
"Gegenstaende": "Generic",
"Waffen": "Weapons",
"Ruestungen": "Armor"
"Gegenstand": "Generic",
"Ruestung": "Armor",
"Bewaffnung": "Weaponry"
}
},
@ -145,6 +145,83 @@
"ackerbau": "!!TODO!!"
}
}
},
"ruestungen": {
"kopf": "!!TODO!!",
"brust": "!!TODO!!",
"ruecken": "!!TODO!!",
"bauch": "!!TODO!!",
"linker_arm": "!!TODO!!",
"rechter_arm": "!!TODO!!",
"linkes_bein": "!!TODO!!",
"rechtes_bein": "!!TODO!!",
"gesamt_ruestungsschutz": "!!TODO!!",
"gesamt_behinderung": "!!TODO!!"
},
"bewaffnung": {
"nahkampfwaffe": {
"label": "!!TODO!!",
"laenge": "!!TODO!!",
"trefferpunkte": "!!TODO!!",
"basis": "!!TODO!!",
"schwellenwert": "!!TODO!!",
"schadensschritte": "!!TODO!!",
"initiative": "!!TODO!!",
"modifikator": "!!TODO!!",
"attacke": "!!TODO!!",
"parade": "!!TODO!!",
"bruchfaktor": "!!TODO!!",
"distanzklasse": "!!TODO!!",
"zweihaendig": "!!TODO!!",
"werfbar": "!!TODO!!",
"improvisiert": "!!TODO!!",
"priviligiert": "!!TODO!!",
"kampftalente": "!!TODO!!"
},
"parierwaffe": {
"label": "!!TODO!!",
"modifikator": "!!TODO!!",
"attacke": "!!TODO!!",
"parade": "!!TODO!!",
"initiative": "!!TODO!!",
"bruchfaktor": "!!TODO!!"
},
"schild": {
"label": "!!TODO!!",
"groesse": {
"label": "!!TODO!!",
"klein": "!!TODO!!",
"gross": "!!TODO!!",
"sehr_gross": "!!TODO!!"
},
"modifikator": "!!TODO!!",
"attacke": "!!TODO!!",
"parade": "!!TODO!!",
"initiative": "!!TODO!!",
"bruchfaktor": "!!TODO!!"
},
"fernkampfwaffe": {
"label": "!!TODO!!",
"trefferpunkte": "!!TODO!!",
"basis": "!!TODO!!",
"reichweiten": "!!TODO!!",
"modifikator": "!!TODO!!",
"laden": "!!TODO!!",
"munitionskosten": "!!TODO!!",
"munitionsgewicht": "!!TODO!!"
}
}
}
}

View File

@ -10,6 +10,10 @@
flex: 1;
}
.noflex {
flex: 0;
}
.wrap {
flex-wrap: wrap;
}
@ -36,6 +40,9 @@
.placeholder {
font-size: 0.8em;
border-top: 1px solid;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
@ -83,3 +90,23 @@
background: none;
table-layout: fixed;
}
.item-sheet .tabs {
padding: 6px;
margin-top: 6px;
border-top: 1px solid;
border-bottom: 1px solid;
}
.item-sheet .tabs a {
line-height: 18px;
}
.item-sheet .tabs a.active {
text-decoration: underline;
}
.item-sheet .tabs input[type="checkbox"] {
width: 12px;
height: 12px;
}

View File

@ -1,8 +1,10 @@
Hooks.once("init", function() {
console.log("INIT");
CONFIG.Actor.dataModels.Player = DSA41_CharacterData;
CONFIG.Item.dataModels.Gegenstaende = DSA41_GegenstaendeData;
CONFIG.Actor.dataModels.Player = DSA41_CharacterData;
CONFIG.Item. dataModels.Gegenstand = DSA41_GegenstandData;
CONFIG.Item. dataModels.Ruestung = DSA41_RuestungData;
CONFIG.Item. dataModels.Bewaffnung = DSA41_BewaffnungData;
//DocumentSheetConfig.unregisterSheet(Actor, "core", ActorSheet);
DocumentSheetConfig.registerSheet(Actor, "dsa41", DSA41_ActorSheet, {
@ -16,14 +18,14 @@ Hooks.once("init", function() {
DocumentSheetConfig.registerSheet(Item, "dsa41", DSA41_ItemSheet, {
makeDefault: true,
types: [
"Gegenstaende",
"Waffen",
"Ruestungen",
"Gegenstand",
"Ruestung",
"Bewaffnung",
]
});
});
const { SchemaField, NumberField, StringField } = foundry.data.fields;
const { SchemaField, NumberField, StringField, BooleanField } = foundry.data.fields;
class AttributeField extends foundry.data.fields.SchemaField {
constructor() {
@ -233,7 +235,7 @@ class DSA41_CharacterData extends foundry.abstract.TypeDataModel {
}
}
class DSA41_GegenstaendeData extends foundry.abstract.TypeDataModel {
class DSA41_GegenstandData extends foundry.abstract.TypeDataModel {
static defineSchema() {
return {
gewicht: new NumberField({ integer: false, initial: 0, min: 0 }),
@ -242,6 +244,104 @@ class DSA41_GegenstaendeData extends foundry.abstract.TypeDataModel {
}
}
class DSA41_RuestungData extends foundry.abstract.TypeDataModel {
static defineSchema() {
return {
gewicht: new NumberField({ integer: false, initial: 0, min: 0 }),
preis: new NumberField({ integer: true, initial: 0, min: 0 }),
kopf: new NumberField({ integer: true, initial: 0, min: 0 }),
brust: new NumberField({ integer: true, initial: 0, min: 0 }),
ruecken: new NumberField({ integer: true, initial: 0, min: 0 }),
bauch: new NumberField({ integer: true, initial: 0, min: 0 }),
linker_arm: new NumberField({ integer: true, initial: 0, min: 0 }),
rechter_arm: new NumberField({ integer: true, initial: 0, min: 0 }),
linkes_bein: new NumberField({ integer: true, initial: 0, min: 0 }),
rechtes_bein: new NumberField({ integer: true, initial: 0, min: 0 }),
gesamt_ruestungsschutz: new NumberField({ integer: false, initial: 0, min: 0 }),
gesamt_behinderung: new NumberField({ integer: false, initial: 0, min: 0 }),
};
}
}
class DSA41_BewaffnungData extends foundry.abstract.TypeDataModel {
static defineSchema() {
return {
gewicht: new NumberField({ integer: false, initial: 0, min: 0 }),
preis: new NumberField({ integer: true, initial: 0, min: 0 }),
nahkampfwaffe: new SchemaField({
aktiv: new BooleanField(),
basis: new StringField(),
schwellenwert: new NumberField({ integer: true, initial: 0, min: 0 }),
schadensschritte: new NumberField({ integer: true, initial: 0, min: 0 }),
modifikator_attacke: new NumberField({ integer: true, initial: 0 }),
modifikator_parade: new NumberField({ integer: true, initial: 0 }),
initiative: new NumberField({ integer: true, initial: 0 }),
bruchfaktor: new NumberField({ integer: true, initial: 0 }),
distanzklasse: new StringField(),
kampftalente: new StringField(),
laenge: new NumberField({ integer: true, initial: 0, min: 0 }),
zweihaendig: new BooleanField(),
werfbar: new BooleanField(),
improvisiert: new BooleanField(),
priviligiert: new BooleanField(),
}),
parierwaffe: new SchemaField({
aktiv: new BooleanField(),
modifikator_attacke: new NumberField({ integer: true, initial: 0 }),
modifikator_parade: new NumberField({ integer: true, initial: 0 }),
initiative: new NumberField({ integer: true, initial: 0 }),
bruchfaktor: new NumberField({ integer: true, initial: 0 }),
}),
schild: new SchemaField({
aktiv: new BooleanField(),
groesse: new StringField(),
modifikator_attacke: new NumberField({ integer: true, initial: 0 }),
modifikator_parade: new NumberField({ integer: true, initial: 0 }),
initiative: new NumberField({ integer: true, initial: 0 }),
bruchfaktor: new NumberField({ integer: true, initial: 0 }),
}),
fernkampfwaffe: new SchemaField({
aktiv: new BooleanField(),
basis: new StringField({ initial: "1d6 + 1" }),
laden: new NumberField({ integer: true, initial: 0 }),
reichweite1: new NumberField({ integer: true, initial: 0 }),
reichweite2: new NumberField({ integer: true, initial: 0 }),
reichweite3: new NumberField({ integer: true, initial: 0 }),
reichweite4: new NumberField({ integer: true, initial: 0 }),
reichweite5: new NumberField({ integer: true, initial: 0 }),
modifikator1: new NumberField({ integer: true, initial: 0, nullable: true }),
modifikator2: new NumberField({ integer: true, initial: 0, nullable: true }),
modifikator3: new NumberField({ integer: true, initial: 0, nullable: true }),
modifikator4: new NumberField({ integer: true, initial: 0, nullable: true }),
modifikator5: new NumberField({ integer: true, initial: 0, nullable: true }),
munitionskosten: new NumberField({ integer: true, initial: 0 }),
munitionsgewicht: new NumberField({ integer: true, initial: 0 }),
}),
};
}
}
class DSA41_ActorSheet extends ActorSheet {
get template() {
return "systems/dsa-4th-edition/src/ActorSheet.html";
@ -249,6 +349,12 @@ class DSA41_ActorSheet extends ActorSheet {
}
class DSA41_ItemSheet extends ItemSheet {
static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, {
tabs: [{ navSelector: ".tabs", contentSelector: ".content", initial: "tab1" }],
});
}
get template() {
return "systems/dsa-4th-edition/src/ItemSheets/" + this.item.type + ".html";
}

View File

@ -6,9 +6,9 @@
},
"Item": {
"types": [
"Gegenstaende",
"Waffen",
"Ruestungen"
"Gegenstand",
"Ruestung",
"Bewaffnung"
]
}
}