add Nahkampfwaffe

This commit is contained in:
Sven Balzer 2024-10-05 22:44:10 +02:00
parent 48e0c5db3c
commit 0df8a4e89d
8 changed files with 179 additions and 28 deletions

View File

@ -0,0 +1,94 @@
{{#*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")}}
{{>editable-input type="number" name="system.laenge" value=item.system.laenge placeholder=(localize "DSA41.waffen.laenge")}}
</div>
</div>
</div>
<div class="row">
<table>
<tr>
<td>{{localize "DSA41.waffen.trefferpunkte"}}</td>
<td class="center">
<div class="row">
{{>editable-input type="text" name="system.basis" value=item.system.basis placeholder=(localize "DSA41.waffen.basis")}}
{{>editable-input type="number" name="system.schwellenwert" value=item.system.schwellenwert placeholder=(localize "DSA41.waffen.schwellenwert")}}
{{>editable-input type="number" name="system.schadensschritte" value=item.system.schadensschritte placeholder=(localize "DSA41.waffen.schadensschritte")}}
</div>
</td>
<td>{{localize "DSA41.waffen.modifikator"}}</td>
<td>
<div class="row">
{{>editable-input type="number" name="system.modifikator_attacke" value=item.system.modifikator_attacke placeholder=(localize "DSA41.waffen.attacke")}}
{{>editable-input type="number" name="system.modifikator_parade" value=item.system.modifikator_parade placeholder=(localize "DSA41.waffen.parade")}}
</div>
</td>
</tr>
<tr>
<td>{{localize "DSA41.waffen.initiative"}}</td>
<td>{{>editable-input type="number" name="system.initiative" value=item.system.initiative}}</td>
<td>{{localize "DSA41.waffen.bruchfaktor"}}</td>
<td>{{>editable-input type="number" name="system.bruchfaktor" value=item.system.bruchfaktor}}</td>
</tr>
<tr>
<td>{{localize "DSA41.waffen.distanzklasse"}}</td>
<td colspan="3">{{>editable-input type="text" name="system.distanzklasse" value=item.system.distanzklasse}}</td>
</tr>
<tr>
<td>{{localize "DSA41.waffen.kampftalente"}}</td>
<td colspan="3">{{>editable-input type="text" name="system.kampftalente" value=item.system.kampftalente}}</td>
</tr>
<tr>
<td>{{localize "DSA41.waffen.zweihaendig"}}</td>
<td>{{>editable-checkbox name="system.zweihaendig" value=item.system.zweihaendig}}</td>
<td>{{localize "DSA41.waffen.werfbar"}}</td>
<td>{{>editable-checkbox name="system.werfbar" value=item.system.werfbar}}</td>
</tr>
<tr>
<td>{{localize "DSA41.waffen.improvisiert"}}</td>
<td>{{>editable-checkbox name="system.improvisiert" value=item.system.improvisiert}}</td>
<td>{{localize "DSA41.waffen.priviligiert"}}</td>
<td>{{>editable-checkbox name="system.priviligiert" value=item.system.priviligiert}}</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,9 +1,9 @@
{
"TYPES": {
"Item": {
"Gegenstaende": "Gegenstände",
"Waffen": "Waffen",
"Ruestungen": "Rüstungen"
"Gegenstand": "Gegenstand",
"Ruestung": "Rüstung",
"Nahkampfwaffen": "Nahkampfwaffen"
}
},
@ -159,6 +159,25 @@
"gesamt_ruestungsschutz": "Gesamt Rüstungsschutz",
"gesamt_behinderung": "Gesamt Behinderung"
},
"waffen": {
"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"
}
}
}

View File

@ -1,9 +1,9 @@
{
"TYPES": {
"Item": {
"Gegenstaende": "Generic",
"Waffen": "Weapons",
"Ruestungen": "Armor"
"Gegenstand": "Generic",
"Ruestung": "Armor",
"Nahkampfwaffen": "Melee Weapon"
}
},
@ -159,6 +159,25 @@
"gesamt_ruestungsschutz": "!!TODO!!",
"gesamt_behinderung": "!!TODO!!"
},
"waffen": {
"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!!"
}
}
}

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.Nahkampfwaffe = DSA41_NahkampfwaffeData;
//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",
"Nahkampfwaffe",
]
});
});
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,7 +244,7 @@ class DSA41_GegenstaendeData extends foundry.abstract.TypeDataModel {
}
}
class DSA41_RuestungenData extends foundry.abstract.TypeDataModel {
class DSA41_RuestungData extends foundry.abstract.TypeDataModel {
static defineSchema() {
return {
gewicht: new NumberField({ integer: false, initial: 0, min: 0 }),
@ -263,6 +265,34 @@ class DSA41_RuestungenData extends foundry.abstract.TypeDataModel {
}
}
class DSA41_NahkampfwaffeData 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 }),
laenge: new NumberField({ integer: true, initial: 0, min: 0 }),
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(),
zweihaendig: new BooleanField(),
werfbar: new BooleanField(),
improvisiert: new BooleanField(),
priviligiert: new BooleanField(),
};
}
}
class DSA41_ActorSheet extends ActorSheet {
get template() {
return "systems/dsa-4th-edition/src/ActorSheet.html";

View File

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