- Made weapons, defensiveWeapons and armor equippable and storable in containers

This commit is contained in:
Ender 2024-01-14 01:32:32 +01:00
parent 674e7fca92
commit bb79bd0608
12 changed files with 394 additions and 182 deletions

View File

@ -34,10 +34,9 @@
"midgard5.background": "Hintergrund",
"midgard5.attribute": "Eigenschaft",
"midgard5.attributes": "Eigenschaften",
"midgard5.derived-attribute": "Abgeleitete Eigenschaft",
"midgard5.derived-attributes": "Abgeleitete Eigenschaften",
"midgard5.points": "Punkte",
"midgard5.calculated-value": "Berechneter Wert",
"midgard5.calculated-values": "Berechnete Werte",
"midgard5.calculated-values": "Sonstige Werte",
"midgard5.skill": "Fertigkeit",
"midgard5.skill-value": "Fertigkeitswert",
@ -236,13 +235,17 @@
"midgard5.language": "Sprache",
"midgard5.languages": "Sprachen",
"midgard5.weapon-skill": "Waffenfertigkeit",
"midgard5.weapon-skills": "Waffenfertigkeiten",
"midgard5.unlearned-skill": "Ungelernte Fertigkeit",
"midgard5.unlearned-skills": "Ungelernte Fertigkeiten",
"midgard5.innate-ability": "Angeborene/Besondere Fertigkeit",
"midgard5.innate-abilities": "Angeborene/Besondere Fertigkeit",
"midgard5.base-damage": "Grundschaden",
"midgard5.weapon": "Waffe",
"midgard5.weapons": "Waffen",
"midgard5.defensive-weapon": "Verteidigungswaffe",
"midgard5.defensive-weapons": "Verteidigungswaffen",
"midgard5.no-skill": "Keine Fertigkeit",
"midgard5.magic": "magisch",
"midgard5.valuable": "Vermögen",

View File

@ -322,6 +322,7 @@ export class M5Character extends Actor {
hoarded: item.system?.hoarded,
value: item.system.value || 0,
calc: item.system.calc,
equipped: item.system?.equipped,
};
});
}
@ -351,6 +352,7 @@ export class M5Character extends Actor {
hoarded: item.system?.hoarded,
value: item.system.value || 0,
calc: item.system.calc,
equipped: item.system?.equipped,
};
});
}

View File

@ -79,12 +79,21 @@ export class M5Item extends Item {
calc.special = itemData.special ? 2 : 0;
calc.ew = calc.special + itemData.stats.attackBonus;
calc.combatSkills = null;
calc.containers = null;
if (actor) {
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true });
if (actorCalc) {
calc.ew += actorCalc.stats.attackBonus.value;
calc.combatSkills = actorCalc.skills.combat;
calc.containers = actorCalc.gear.containers;
}
const container = character.getItem(itemData.containerId);
//console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
if (container) {
container.prepareDerivedData();
const containerData = container.system;
}
const skill = character.getItem(itemData.skillId);
@ -103,12 +112,21 @@ export class M5Item extends Item {
calc.special = itemData.special ? 2 : 0;
calc.ew = calc.special + itemData.stats.defenseBonus;
calc.combatSkills = null;
calc.containers = null;
if (actor) {
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true });
if (actorCalc) {
calc.ew += actorCalc.stats.defense.value + actorCalc.stats.defenseBonus.value;
calc.combatSkills = actorCalc.skills.combat;
calc.containers = actorCalc.gear.containers;
}
const container = character.getItem(itemData.containerId);
//console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
if (container) {
container.prepareDerivedData();
const containerData = container.system;
}
const skill = character.getItem(itemData.skillId);
@ -128,6 +146,19 @@ export class M5Item extends Item {
itemData.mods[3] = { type: "attribute", id: "gw", operation: "add100", value: itemData.attributeMod.gw };
itemData.mods[4] = { type: "stat", id: "lpProtection", operation: "set", value: itemData.lpProtection };
itemData.mods[5] = { type: "stat", id: "apProtection", operation: "set", value: itemData.apProtection };
calc.containers = null;
if (actor) {
const actorCalc = actor.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true, effects: true, kampfkuenste: true });
if (actorCalc) {
calc.containers = actorCalc.gear.containers;
}
const container = character.getItem(itemData.containerId);
//console.log("M5Item.prepareDerivedData:containers", itemData, container?.system)
if (container) {
container.prepareDerivedData();
const containerData = container.system;
}
}
} else if (itemType === "spell") {
calc.fw = 0;
if (actor) {

View File

@ -27,16 +27,10 @@
<div class="flexcolumn-2">
<div class="flexpart">
<div class="flexpart-header"><img src="icons/magic/unholy/strike-body-explode-disintegrate.webp" class="flexpart-icon">{{localize "midgard5.derived-attributes"}}</div>
<div class="flexpart-header"><img src="icons/skills/social/theft-pickpocket-bribery-brown.webp" class="flexpart-icon">{{localize "midgard5.points"}}</div>
<table>
<tbody>
<tr height = 10px></tr>
<tr>
<td>{{localize "midgard5.magicUsing"}}</td>
<td><input id="data.info.magicUsing" type="checkbox" name="data.info.magicUsing" {{checked data.info.magicUsing}}></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>{{localize "midgard5.grace"}}</td>
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
@ -52,8 +46,8 @@
<tr>
<td>{{localize "midgard5.luckPoints"}}</td>
<td><input name="data.gp" type="text" value="{{data.gp}}" data-dtype="Number" /></td>
<td>{{localize "midgard5.movementRange"}}</td>
<td><input name="data.movement" type="text" value="{{data.movement}}" data-dtype="Number" /></td>
<td></td>
<td></td>
</tr>
<tr height = 10px></tr>
</tbody>
@ -67,6 +61,12 @@
<table>
<tbody>
<tr height = 10px></tr>
<tr>
<td>{{localize "midgard5.magicUsing"}}</td>
<td><input id="data.info.magicUsing" type="checkbox" name="data.info.magicUsing" {{checked data.info.magicUsing}}></td>
<td>{{localize "midgard5.movementRange"}}</td>
<td><input name="data.movement" type="text" value="{{data.movement}}" data-dtype="Number" /></td>
</tr>
<tr>
<td>{{localize "midgard5.brawl"}}</td>
<td class="fixed-value">{{data.calc.stats.brawl.value}}</td>
@ -97,22 +97,21 @@
<td>{{localize "midgard5.resistanceBody"}}</td>
<td class="fixed-value">{{data.calc.stats.resistanceBody.value}}</td>
</tr>
<tr>
<td>{{localize "midgard5.movementRange"}}</td>
<td class="fixed-value">{{data.calc.stats.movement.value}}</td>
{{#if (eq data.info.race "Zwerg")}}
<tr>
<td>{{localize "midgard5.hoard"}}</td>
<td class="fixed-value">{{data.calc.stats.hoard}}</td>
{{/if}}
<td></td>
<td></td>
</tr>
<tr>
{{#if (eq data.info.race "Zwerg")}}
<td>{{localize "midgard5.hoardMin"}}</td>
<td class="fixed-value">{{data.calc.stats.hoardMin}}</td>
<td>{{localize "midgard5.hoard-next"}}</td>
<td class="fixed-value">{{data.calc.stats.hoardNext}}</td>
{{/if}}
</tr>
{{/if}}
<tr height = 10px></tr>
</tbody>
</table>

View File

@ -135,29 +135,6 @@
</tbody>
</table>
<table>
<thead>
<tr>
<th class="title">{{localize "midgard5.weapon-skill"}}</th>
<th class="title">{{localize "midgard5.fw"}}</th>
<th class="title">{{localize "midgard5.bonus"}}</th>
<th class="title">{{localize "midgard5.ew"}}</th>
<th class="title">{{localize "midgard5.pp-short"}}</th>
<th class="title"></th>
<th class="title"></th>
</tr>
</thead>
<tbody>
{{#each data.calc.skills.combat as |skill skillId|}}
<tr data-item="{{skillId}}">
<td class="padding edit-item">{{skill.label}}</td>
<td class="fixed-value">{{skill.fw}}</td>
<td class="fixed-value">{{skill.calc.bonus}}</td>
<td class="fixed-value">{{skill.calc.ew}}</td>
<td class="fixed-value">{{skill.pp}}</td>
<td class="fixed-value"><button class="roll-button roll-learned-button"></button></td>
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr>
{{/each}}
</tbody>
</table>
{{localize "midgard5.movementRange"}}: {{data.calc.stats.movement.value}}

View File

@ -35,7 +35,7 @@
<div class="flexpart" style="height: 250px;">
<div class="flexpart-header"><img src="icons/environment/wilderness/mine-interior-dungeon-door.webp" class="flexpart-icon">{{localize "midgard5.description"}}</div>
<br>
<div class="biography">{{editor characterDescription target="data.info.description"}}</div>
<div class="biography">{{editor characterDescription target="data.info.description" button=false }}</div>
</div>
</div>
@ -43,7 +43,7 @@
<div class="flexpart" style="height: 250px;">
<div class="flexpart-header"><img src="icons/environment/people/group.webp" class="flexpart-icon">{{localize "midgard5.background"}}</div>
<br>
<div class="biography">{{editor characterBackground target="data.info.background"}}</div>
<div class="biography">{{editor characterBackground target="data.info.background" button=false}}</div>
</div>
</div>

View File

@ -81,6 +81,108 @@
</tbody>
</table>
</div>
<div class="flexpart">
<div class="flexpart-header"><img src="icons/weapons/swords/sword-guard-engraved-worn.webp" class="flexpart-icon">{{localize "midgard5.weapons"}}</div>
<table>
<thead>
<tr>
<th class="title">{{localize "TYPES.Item.weapon"}}</th>
<th class="title center">{{localize "midgard5.item-value"}}</th>
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
<th class="title">&nbsp;</th>
</tr>
</thead>
<tbody>
{{#each data.calc.gear.weapons as |item itemId|}}
<tr data-item="{{itemId}}">
<td class="padding edit-item">{{item.label}}</td>
<td style="text-align: start">
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
<span class="spell-process">{{item.value}} {{localize (m5concat "midgard5.currency-" item.currency)}}</span>
{{/unless}}
</td>
<td class="change-equipped">
{{#if item.equipped}}
<i class="fa-solid fa-circle-check"></i>
{{else}}
<i class="fa-regular fa-circle"></i>
{{/if}}
</td>
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr>
{{/each}}
</tbody>
</table>
</div>
<div class="flexpart">
<div class="flexpart-header"><img src="icons/equipment/shield/heater-wooden-brown-axe.webp" class="flexpart-icon">{{localize "midgard5.defensive-weapons"}}</div>
<table>
<thead>
<tr>
<th class="title">{{localize "TYPES.Item.defensiveWeapon"}}</th>
<th class="title center">{{localize "midgard5.item-value"}}</th>
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
<th class="title">&nbsp;</th>
</tr>
</thead>
<tbody>
{{#each data.calc.gear.defensiveWeapons as |item itemId|}}
<tr data-item="{{itemId}}">
<td class="padding edit-item">{{item.label}}</td>
<td style="text-align: start">
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
<span class="spell-process">{{item.value}} {{localize (m5concat "midgard5.currency-" item.currency)}}</span>
{{/unless}}
</td>
<td class="change-equipped">
{{#if item.equipped}}
<i class="fa-solid fa-circle-check"></i>
{{else}}
<i class="fa-regular fa-circle"></i>
{{/if}}
</td>
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr>
{{/each}}
</tbody>
</table>
</div>
<div class="flexpart">
<div class="flexpart-header"><img src="icons/equipment/hand/gauntlet-armored-steel-grey.webp" class="flexpart-icon">{{localize "midgard5.armor"}}</div>
<table>
<thead>
<tr>
<th class="title">{{localize "TYPES.Item.armor"}}</th>
<th class="title center">{{localize "midgard5.item-value"}}</th>
<th class="title"><img src="/systems/midgard5/assets/icons/icon/battle-gear.svg" class="table-icon"></th>
<th class="title">&nbsp;</th>
</tr>
</thead>
<tbody>
{{#each data.calc.gear.armor as |item itemId|}}
<tr data-item="{{itemId}}">
<td class="padding edit-item">{{item.label}}</td>
<td style="text-align: start">
{{#unless (or (eq item.value 0) (eq item.currency ""))}}
<span class="spell-process">{{item.value}} {{localize (m5concat "midgard5.currency-" item.currency)}}</span>
{{/unless}}
</td>
<td class="change-equipped">
{{#if item.equipped}}
<i class="fa-solid fa-circle-check"></i>
{{else}}
<i class="fa-regular fa-circle"></i>
{{/if}}
</td>
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr>
{{/each}}
</tbody>
</table>
</div>
</div>
<div class="flexcolumn-2">

View File

@ -119,10 +119,10 @@
<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="combat">{{ localize "midgard5.combat" }}</a>
<a class="item" data-tab="effects">{{ localize "midgard5.effects" }}</a>
</nav>
@ -144,14 +144,14 @@
{{> "systems/midgard5/templates/sheets/character/gear.hbs"}}
</div>
<div class="tab base_values flexcol" data-group="primary" data-tab="spells">
{{> "systems/midgard5/templates/sheets/character/spells.hbs"}}
</div>
<div class="tab base_values flexcol" data-group="primary" data-tab="combat">
{{> "systems/midgard5/templates/sheets/character/combat.hbs"}}
</div>
<div class="tab base_values flexcol" data-group="primary" data-tab="spells">
{{> "systems/midgard5/templates/sheets/character/spells.hbs"}}
</div>
<div class="tab base_values flexcol" data-group="primary" data-tab="effects">
{{> "systems/midgard5/templates/sheets/character/effects.hbs"}}
</div>

View File

@ -1,6 +1,50 @@
<div class="flexbox">
<div class="flexcolumn-2">
<div class="flexpart">
<div class="flexpart-header"><img src="icons/creatures/eyes/human-single-brown.webp" class="flexpart-icon">{{localize "midgard5.innate-abilities"}}</div>
<table>
<thead>
<tr>
<th class="title">{{localize "midgard5.innate-ability"}}</th>
<th class="title">{{localize "midgard5.fw"}}</th>
<th class="title">{{localize "midgard5.bonus"}}</th>
<th class="title">{{localize "midgard5.ew"}}</th>
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
<th class="title"></th>
</tr>
</thead>
<tbody>
{{#each data.calc.skills.innate as |skill skillId|}}
<tr data-item="{{skillId}}">
<td class="padding edit-item">{{skill.label}}</td>
<td class="fixed-value">{{skill.fw}}</td>
<td class="fixed-value">{{skill.calc.bonus}}</td>
<td class="fixed-value">{{skill.calc.ew}}</td>
<td><button class="roll-button roll-learned-button"></button></td>
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr>
{{/each}}
<tr data-item="{{itemId}}">
<td class="padding edit-item">{{localize "midgard5.perception"}}</td>
<td class="fixed-value">{{data.calc.stats.perceptionFW}}</td>
<td class="fixed-value">{{data.calc.stats.perception.value}}</td>
<td class="fixed-value">{{add data.calc.stats.perception.value data.calc.stats.perceptionFW}}</td>
<td><button class="roll-button roll-perception-button"></button></td>
<td class="fixed-value"></td>
</tr>
<tr data-item="{{itemId}}">
<td class="padding edit-item">{{localize "midgard5.drinking"}}</td>
<td class="fixed-value">{{data.calc.stats.drinkingFW}}</td>
<td class="fixed-value">{{data.calc.stats.drinking.value}}</td>
<td class="fixed-value">{{add data.calc.stats.drinking.value data.calc.stats.drinkingFW}}</td>
<td><button class="roll-button roll-drinking-button"></button></td>
<td class="fixed-value"></td>
</tr>
</tbody>
</table>
</div>
<div class="flexpart">
<div class="flexpart-header"><img src="icons/skills/trades/construction-mason-stonecutter-sculpture.webp" class="flexpart-icon">{{localize "midgard5.learned-skills"}}</div>
<table>
@ -24,7 +68,7 @@
<td class="fixed-value">{{skill.calc.ew}}</td>
<td class="fixed-value"><input name="data.skills.general.{{key}}.pp" type="text" value="{{skill.pp}}" data-dtype="Number" /></td>
<td><button class="roll-button roll-learned-button"></button></td>
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr>
{{/each}}
</tbody>
@ -32,46 +76,31 @@
</div>
<div class="flexpart">
<div class="flexpart-header"><img src="icons/creatures/eyes/human-single-brown.webp" class="flexpart-icon">{{localize "midgard5.innate-abilities"}}</div>
<div class="flexpart-header"><img src="icons/weapons/swords/swords-short.webp" class="flexpart-icon">{{localize "midgard5.weapon-skills"}}</div>
<table>
<thead>
<tr>
<th class="title">{{localize "midgard5.innate-ability"}}</th>
<th class="title">{{localize "midgard5.weapon-skill"}}</th>
<th class="title">{{localize "midgard5.fw"}}</th>
<th class="title">{{localize "midgard5.bonus"}}</th>
<th class="title">{{localize "midgard5.ew"}}</th>
<th class="title">{{localize "midgard5.pp-short"}}</th>
<th class="title"><img src="/icons/svg/d20.svg" class="table-icon"></th>
<th class="title"></th>
</tr>
</thead>
<tbody>
{{#each data.calc.skills.innate as |skill skillId|}}
{{#each data.calc.skills.combat as |skill skillId|}}
<tr data-item="{{skillId}}">
<td class="padding edit-item">{{skill.label}}</td>
<td class="fixed-value">{{skill.fw}}</td>
<td class="fixed-value">{{skill.calc.bonus}}</td>
<td class="fixed-value">{{skill.calc.ew}}</td>
<td class="fixed-value">{{skill.pp}}</td>
<td><button class="roll-button roll-learned-button"></button></td>
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr>
{{/each}}
<tr data-item="{{itemId}}">
<td class="padding edit-item">{{localize "midgard5.perception"}}</td>
<td class="fixed-value">{{data.calc.stats.perceptionFW}}</td>
<td class="fixed-value">{{data.calc.stats.perception.value}}</td>
<td class="fixed-value">{{add data.calc.stats.perception.value data.calc.stats.perceptionFW}}</td>
<td><button class="roll-button roll-perception-button"></button></td>
<td class="fixed-value"></td>
</tr>
<tr data-item="{{itemId}}">
<td class="padding edit-item">{{localize "midgard5.drinking"}}</td>
<td class="fixed-value">{{data.calc.stats.drinkingFW}}</td>
<td class="fixed-value">{{data.calc.stats.drinking.value}}</td>
<td class="fixed-value">{{add data.calc.stats.drinking.value data.calc.stats.drinkingFW}}</td>
<td><button class="roll-button roll-drinking-button"></button></td>
<td class="fixed-value"></td>
</tr>
</tbody>
</table>
</div>
@ -99,7 +128,7 @@
<td class="fixed-value">{{skill.calc.ew}}</td>
<td class="fixed-value">{{skill.pp}}</td>
<td><button class="roll-button roll-learned-button"></button></td>
<td class="fixed-value"><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
<td><a class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></a></td>
</tr>
{{/each}}
</tbody>

View File

@ -9,6 +9,10 @@
<tr>
<td colspan="4">
<div class="flexrow">
<span>
<input id="data.equipped" type="checkbox" name="data.equipped" {{checked data.equipped}}>
<label for="data.equipped">{{localize "midgard5.equipped"}}</label>
</span>
<span>
<input id="data.equipped" type="checkbox" name="data.equipped" {{checked data.equipped}} />
<label for="data.equipped">{{localize "midgard5.equipped"}}</label>
@ -49,6 +53,25 @@
</div>
</td>
</tr>
<tr>
<td>
<div class="flexrow">
<span>{{localize "TYPES.Item.container"}}</span>
{{#if data.calc.containers}}
<select class="select-container" name="data.containerId" data-type="String">
{{#select data.containerId}}
<option value="">{{localize "midgard5.no-container"}}</option>
{{#each data.calc.containers as |container key|}}
<option value="{{key}}">{{container.label}}</option>
{{/each}}
{{/select}}
</select>
{{else}}
<span>{{localize "midgard5.assignItemToCharacter"}}</span>
{{/if}}
</div>
</td>
</tr>
<tr>
<td>{{localize "midgard5.lpProtection"}}</td>
<td><input name="data.lpProtection" type="text" value="{{data.lpProtection}}" data-dtype="Number" /></td>

View File

@ -9,6 +9,10 @@
<tr>
<td colspan="4">
<div class="flexrow">
<span>
<input id="data.equipped" type="checkbox" name="data.equipped" {{checked data.equipped}}>
<label for="data.equipped">{{localize "midgard5.equipped"}}</label>
</span>
<span>
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
<label for="data.magic">{{localize "midgard5.magic"}}</label>
@ -49,6 +53,25 @@
</div>
</td>
</tr>
<tr>
<td>
<div class="flexrow">
<span>{{localize "TYPES.Item.container"}}</span>
{{#if data.calc.containers}}
<select class="select-container" name="data.containerId" data-type="String">
{{#select data.containerId}}
<option value="">{{localize "midgard5.no-container"}}</option>
{{#each data.calc.containers as |container key|}}
<option value="{{key}}">{{container.label}}</option>
{{/each}}
{{/select}}
</select>
{{else}}
<span>{{localize "midgard5.assignItemToCharacter"}}</span>
{{/if}}
</div>
</td>
</tr>
<tr>
<td>{{localize "midgard5.defenseBonus"}}</td>
<td><input name="data.stats.defenseBonus" type="text" value="{{data.stats.defenseBonus}}" data-dtype="Number" /></td>

View File

@ -9,6 +9,10 @@
<tr>
<td colspan="5">
<div class="flexrow">
<span>
<input id="data.equipped" type="checkbox" name="data.equipped" {{checked data.equipped}}>
<label for="data.equipped">{{localize "midgard5.equipped"}}</label>
</span>
<span>
<input id="data.magic" type="checkbox" name="data.magic" {{checked data.magic}}>
<label for="data.magic">{{localize "midgard5.magic"}}</label>
@ -54,6 +58,25 @@
</div>
</td>
</tr>
<tr>
<td>
<div class="flexrow">
<span>{{localize "TYPES.Item.container"}}</span>
{{#if data.calc.containers}}
<select class="select-container" name="data.containerId" data-type="String">
{{#select data.containerId}}
<option value="">{{localize "midgard5.no-container"}}</option>
{{#each data.calc.containers as |container key|}}
<option value="{{key}}">{{container.label}}</option>
{{/each}}
{{/select}}
</select>
{{else}}
<span>{{localize "midgard5.assignItemToCharacter"}}</span>
{{/if}}
</div>
</td>
</tr>
<tr>
<td>{{localize "midgard5.base-damage"}}</td>
<td>