8 Commits

Author SHA1 Message Date
b771c7f088 v0.0.4 (#4)
v0.0.4 merge fixes
Co-Authored-By: erebus <erebus@rikspolisen.se>
Co-Committed-By: erebus <erebus@rikspolisen.se>
2020-12-04 20:06:00 +00:00
c103fac27c v0.0.4 (#3)
This is now officially support fan-material
Add Ship sheet
Layout fix for adversaries
Ability to remove skills on adversaries, useful when duplicating a adversary
Option to automatically apply spell cost when rolled
Added Armor compendium
Added Weapons compendium
Skills compendium updated with descriptions
Co-Authored-By: erebus <erebus@rikspolisen.se>
Co-Committed-By: erebus <erebus@rikspolisen.se>
2020-12-04 19:50:46 +00:00
2e389704ea v0.0.3
Finishing v0.0.3

Layout fixes
Added support for rolling skill on spells
Fixed migration
Cleaned up the code
Fixed Hjältarnas Tid skill error, updated layout, fixed buttons not working
Fixed right click menu for weapons
Added roll dialog and exceptional rolls
Updated skills styling
Co-Authored-By: erebus <erebus@rikspolisen.se>
Co-Committed-By: erebus <erebus@rikspolisen.se>
2020-12-01 16:30:39 +00:00
6f030bd6b5 Final v0.0.2 2020-11-30 06:23:35 +01:00
512d0de4e5 Updated README 2020-11-29 15:34:47 +01:00
ef6cc11bcb Updated README 2020-11-29 15:34:14 +01:00
bb5d29e28e Updated README 2020-11-29 15:23:59 +01:00
d42988e859 Updated README 2020-11-29 15:15:10 +01:00
45 changed files with 2049 additions and 205 deletions

3
LICENCE.txt Normal file
View File

@@ -0,0 +1,3 @@
Kopparhavets Hjältar and Hjältarnas Tid is copyright Helmgast.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -0,0 +1,22 @@
# Kopparhavets Hjältar
Detta "Game System" till FoundryVTT utvecklas privat och är officiellt godkänt fan-material av Helmgast och personerna bakom Kopparhavets Hjältar and Hjältarnas Tid.
#### Kopparhavets Hjältar och Hjältarnas Tid är copyright Helmgast och detta är publiceras med deras medgivande.
###
---
## Installera Kopparhavet game system
1. Öppna Foundry VTT
2. Gå till "Game Systems" fliken
3. Klicka på "Install System" knappen
4. Kopiera följande länk och klistra in i "Manifest URL" fältet:
https://pi.rikspolisen.se/foundryvtt/kopparhavet/raw/branch/master/system.json
5. Klicka Install, efter en kort tid borde systemet vara installerat.
## Rustning
Instruktioner för hur man skapar en rustning hittas i Wikin
https://pi.rikspolisen.se/foundryvtt/kopparhavet/wiki/Skapa-rustning.

View File

@@ -17,11 +17,14 @@
"BIO.AGE": "Age", "BIO.AGE": "Age",
"BIO.KIN": "Kin", "BIO.KIN": "Kin",
"BIO.NAME": "Name", "BIO.NAME": "Name",
"BIO.NICKNAME": "Nickname",
"BIO.PROFESSION": "Profession", "BIO.PROFESSION": "Profession",
"BIO.APPEARANCE": "Appearance",
"CURRENCY.QUARTER": "Quarter", "CURRENCY.QUARTER": "Quarter",
"CURRENCY.SHEKEL": "Shekel", "CURRENCY.SHEKEL": "Shekel",
"CURRENCY.TITLE": "Currency", "CURRENCY.TITLE": "Currency",
"CURRENCY.SILVER": "Silver",
"DICE.ROLL": "Dice roll", "DICE.ROLL": "Dice roll",
@@ -33,6 +36,9 @@
"FEATURES.TITLE": "Features", "FEATURES.TITLE": "Features",
"HT.FEATURES.TITLE": "Features",
"HT.RELATIONSHIP.TITLE": "Relationships",
"ITEM.ARMOR": "Rustning", "ITEM.ARMOR": "Rustning",
"ITEM.ATTACK": "Attack", "ITEM.ATTACK": "Attack",
"ITEM.DAMAGE": "Damage", "ITEM.DAMAGE": "Damage",
@@ -48,6 +54,8 @@
"ITEM.TALENT": "Talent", "ITEM.TALENT": "Talent",
"ITEM.WEAPON": "Weapon", "ITEM.WEAPON": "Weapon",
"LEARNING.TITLE": "Learning",
"MENU.SENTTOCHAT": "Send To Chat", "MENU.SENTTOCHAT": "Send To Chat",
"MOD.INIT": "Initiative", "MOD.INIT": "Initiative",
@@ -56,6 +64,23 @@
"ROLL.SUCCESS": "Success", "ROLL.SUCCESS": "Success",
"ROLL.FAILURE": "Failure", "ROLL.FAILURE": "Failure",
"ROLL.TITLE": "Roll dice",
"BUTTON.ROLL": "Roll",
"BUTTON.CANCEL": "Cancel",
"ROLL.CLOSED": "Closed",
"ROLL.OPENED": "Opened",
"MENU.SHOWROLLDIALOG": "Show diceroller dialog",
"ROLL.OPENCLOSE": "Open / Close",
"ROLL.EXCEPTIONAL": "Exceptional",
"SHIP.CARGO": "Cargo capacity",
"SHIP.HULL": "Hull",
"SHIP.CLASS": "Ship class",
"SHIP.OPERATIONSCOST": "Running cost",
"SHIP.OPERATIONSSUPPLY": "Supplies",
"SHIP.CREW": "Crew",
"SHIP.ARMAMENT": "Armament",
"SHIP.RAMMINGDMG": "Ramming damage",
"SKILL.TYPE": "Type", "SKILL.TYPE": "Type",
"SKILL.BASE": "Basic", "SKILL.BASE": "Basic",
@@ -67,6 +92,9 @@
"SPELL.DIFFICULTY": "Difficulty", "SPELL.DIFFICULTY": "Difficulty",
"SPELL.ROLL": "Roll", "SPELL.ROLL": "Roll",
"SPELL.COST": "Cost", "SPELL.COST": "Cost",
"SPELL.ATTACKROLL": "Attack roll",
"SPELL.OPPOSITE": "Opposite",
"SPELL.RITUAL": "Ritual",
"STATS.HEALTH": "Health", "STATS.HEALTH": "Health",
"STATS.MANA": "Mana", "STATS.MANA": "Mana",
@@ -76,10 +104,12 @@
"TAB.COMBAT": "Combat", "TAB.COMBAT": "Combat",
"TAB.DESCRIPTION": "Description", "TAB.DESCRIPTION": "Description",
"TAB.GEAR": "Gear", "TAB.GEAR": "Gear",
"TAB.MAIN": "Main",
"TAB.MODIFICATION": "Modifications", "TAB.MODIFICATION": "Modifications",
"TAB.NOTE": "Note", "TAB.NOTE": "Note",
"TAB.SKILLS": "Skills", "TAB.SKILLS": "Skills",
"TAB.TALENTS": "Talents and Spells", "TAB.TALENTS": "Talents and Spells",
"TAB.ARMAMENT": "Armament",
"WEAPON.CATEGORY": "Category", "WEAPON.CATEGORY": "Category",
"WEAPON.MELEE": "Melee", "WEAPON.MELEE": "Melee",

View File

@@ -17,11 +17,14 @@
"BIO.AGE": "Ålder", "BIO.AGE": "Ålder",
"BIO.KIN": "Folkslag", "BIO.KIN": "Folkslag",
"BIO.NAME": "Namn", "BIO.NAME": "Namn",
"BIO.NICKNAME": "Tillnamn",
"BIO.PROFESSION": "Värv", "BIO.PROFESSION": "Värv",
"BIO.APPEARANCE": "Utseende",
"CURRENCY.QUARTER": "Kvarting", "CURRENCY.QUARTER": "Kvarting",
"CURRENCY.SHEKEL": "Shekel", "CURRENCY.SHEKEL": "Shekel",
"CURRENCY.TITLE": "Mynt", "CURRENCY.TITLE": "Mynt",
"CURRENCY.SILVER": "Silver",
"DICE.ROLL": "Tärningsslag", "DICE.ROLL": "Tärningsslag",
@@ -33,6 +36,9 @@
"FEATURES.TITLE": "Särdrag", "FEATURES.TITLE": "Särdrag",
"HT.FEATURES.TITLE": "Karaktärsdrag",
"HT.RELATIONSHIP.TITLE": "Relationer",
"ITEM.ARMOR": "Rustning", "ITEM.ARMOR": "Rustning",
"ITEM.ATTACK": "Anfall", "ITEM.ATTACK": "Anfall",
"ITEM.DAMAGE": "Skada", "ITEM.DAMAGE": "Skada",
@@ -48,6 +54,8 @@
"ITEM.TALENT": "Förmåga", "ITEM.TALENT": "Förmåga",
"ITEM.WEAPON": "Vapen", "ITEM.WEAPON": "Vapen",
"LEARNING.TITLE": "Inlärning",
"MENU.SENTTOCHAT": "Skicka till chat", "MENU.SENTTOCHAT": "Skicka till chat",
"MOD.INIT": "Turordning", "MOD.INIT": "Turordning",
@@ -57,6 +65,24 @@
"ROLL.SUCCESS": "Lyckat", "ROLL.SUCCESS": "Lyckat",
"ROLL.FAILURE": "Misslyckat", "ROLL.FAILURE": "Misslyckat",
"ROLL.TITLE": "Slå tärningar",
"BUTTON.ROLL": "Slå",
"BUTTON.CANCEL": "Avbryt",
"ROLL.CLOSED": "Stängd",
"ROLL.OPENED": "Öppnad",
"MENU.SHOWROLLDIALOG": "Visa tärningsdialog",
"ROLL.OPENCLOSE": "Öppna / Stäng",
"ROLL.EXCEPTIONAL": "Exceptionellt",
"SHIP.CARGO": "Lastförmåga",
"SHIP.HULL": "Skrov",
"SHIP.CLASS": "Klassifiering",
"SHIP.OPERATIONSCOST": "Driftkostnad",
"SHIP.OPERATIONSSUPPLY": "Förråd",
"SHIP.CREW": "Besättning",
"SHIP.ARMAMENT": "Bestyckning",
"SHIP.RAMMINGDMG": "Ramningsskada",
"SKILL.TYPE": "Typ", "SKILL.TYPE": "Typ",
"SKILL.BASE": "Grundfärdigheter", "SKILL.BASE": "Grundfärdigheter",
"SKILL.ADVENTURE": "Äventyrsfärdigheter", "SKILL.ADVENTURE": "Äventyrsfärdigheter",
@@ -65,8 +91,12 @@
"SKILL.LANGUAGE": "Språk", "SKILL.LANGUAGE": "Språk",
"SPELL.DIFFICULTY": "Svårighet", "SPELL.DIFFICULTY": "Svårighet",
"SPELL.ROLL": "Slag", "SPELL.ROLLTITLE": "Slag",
"SPELL.COST": "Kostnad", "SPELL.COST": "Kostnad",
"SPELL.ROLL": "Färdighetsslag",
"SPELL.ATTACKROLL": "Anfallsslag",
"SPELL.OPPOSITE": "Motsatt",
"SPELL.RITUAL": "Ritual",
"STATS.HEALTH": "Hälsa", "STATS.HEALTH": "Hälsa",
"STATS.MANA": "Skuld", "STATS.MANA": "Skuld",
@@ -76,10 +106,12 @@
"TAB.COMBAT": "Strid", "TAB.COMBAT": "Strid",
"TAB.DESCRIPTION": "Beskrivning", "TAB.DESCRIPTION": "Beskrivning",
"TAB.GEAR": "Utrustning", "TAB.GEAR": "Utrustning",
"TAB.MAIN": "Allmänt",
"TAB.MODIFICATION": "Modifikationer", "TAB.MODIFICATION": "Modifikationer",
"TAB.NOTE": "Anteckning", "TAB.NOTE": "Anteckning",
"TAB.SKILLS": "Färdigheter", "TAB.SKILLS": "Färdigheter",
"TAB.TALENTS": "Förmågor och Besvärjelser", "TAB.TALENTS": "Förmågor och Besvärjelser",
"TAB.ARMAMENT": "Bestyckning",
"WEAPON.CATEGORY": "Vapentyp", "WEAPON.CATEGORY": "Vapentyp",
"WEAPON.MELEE": "Närstrid", "WEAPON.MELEE": "Närstrid",

View File

@@ -1,4 +1,5 @@
import KHDiceRoller from "../helpers/dice-helper.js" import KHDiceRoller from "../helpers/dice-helper.js"
import ActorHelpers from "../helpers/actor-helper.js";
/** /**
* Extend the basic ActorSheet with some very simple modifications * Extend the basic ActorSheet with some very simple modifications
@@ -9,12 +10,23 @@ export class ActorSheetKH extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
if(game.settings.get("kopparhavet", "gameSystem") === "hjaltarnas-tid") {
return mergeObject(super.defaultOptions, {
classes: ["kopparhavet", "sheet", "actor"],
template: "systems/kopparhavet/templates/actors/ht-character-sheet.html",
width: 710,
height: 650,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "main" }],
scrollY: [".skills-tab .skills", ".talent-tab .items"],
});
}
return mergeObject(super.defaultOptions, { return mergeObject(super.defaultOptions, {
classes: ["kopparhavet", "sheet", "actor"], classes: ["kopparhavet", "sheet", "actor"],
template: "systems/kopparhavet/templates/actors/character-sheet.html", template: "systems/kopparhavet/templates/actors/character-sheet.html",
width: 710, width: 710,
height: 650, height: 650,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" }], tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "main" }],
scrollY: [".skills-tab .skills", ".talent-tab .items"], scrollY: [".skills-tab .skills", ".talent-tab .items"],
}); });
} }
@@ -22,7 +34,13 @@ export class ActorSheetKH extends ActorSheet {
/** @override */ /** @override */
get template() { get template() {
const path = "systems/kopparhavet/templates/actors"; const path = "systems/kopparhavet/templates/actors";
return `${path}/${this.actor.data.type}-sheet.html`; let prefix = "";
if(game.settings.get("kopparhavet", "gameSystem") === "hjaltarnas-tid") {
prefix = "ht-";
}
return `${path}/${prefix}${this.actor.data.type}-sheet.html`;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -54,6 +72,8 @@ export class ActorSheetKH extends ActorSheet {
const gear = []; const gear = [];
const spells = []; const spells = [];
const attacks = []; const attacks = [];
const shipweapons = [];
const shiptalents = [];
// Iterate through items, allocating to containers // Iterate through items, allocating to containers
for (let i of sheetData.items) { for (let i of sheetData.items) {
@@ -78,6 +98,10 @@ export class ActorSheetKH extends ActorSheet {
spells.push(i); spells.push(i);
} else if (i.type === "adversaryAttack") { } else if (i.type === "adversaryAttack") {
attacks.push(i); attacks.push(i);
} else if (i.type === "shiptalent") {
shiptalents.push(i);
} else if (i.type === "shipweapon") {
shipweapons.push(i);
} }
} }
@@ -91,8 +115,11 @@ export class ActorSheetKH extends ActorSheet {
actorData.gear = gear; actorData.gear = gear;
actorData.spells = spells; actorData.spells = spells;
actorData.attacks = attacks; actorData.attacks = attacks;
actorData.shiptalents = shiptalents;
actorData.shipweapons = shipweapons;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
/** @override */ /** @override */
@@ -121,6 +148,186 @@ export class ActorSheetKH extends ActorSheet {
}, },
]); ]);
new ContextMenu(html, "li.item-weapon", [
{
name: game.i18n.localize("MENU.SHOWROLLDIALOG"),
icon: '<i class="far dice"></i>',
callback: (li) => {
let itemId = li.data("itemId");
let _item = this.actor.items.find((element) => element._id == itemId);
// Retrieve skill based on name
let skill = this.actor.items.find((element) => element.name === _item.data.data.skill.value);
let skillName = skill.name
let skillValue = skill.data.data.value
let showValue = false
if(this.actor.data.type === "character") {
showValue = true
}
this.khRoller.rollSkillDialogInChat(skillName, skillValue, showValue, this.actor)
},
},
{
name: game.i18n.localize("MENU.SENTTOCHAT"),
icon: '<i class="far fa-comment"></i>',
callback: (li) => {
let itemId = li.data("itemId");
this._itemDetailsToChat(itemId);
},
},
]);
new ContextMenu(html, "li.item-skill", [
{
name: game.i18n.localize("MENU.SHOWROLLDIALOG"),
icon: '<i class="far dice"></i>',
callback: (li) => {
let itemId = li.data("itemId");
let _item = this.actor.items.find((element) => element._id == itemId);
let skillName = _item.name
let skillValue = _item.data.data.value
let showValue = false
if(this.actor.data.type === "character") {
showValue = true
}
this.khRoller.rollSkillDialogInChat(skillName, skillValue, showValue, this.actor)
},
},
{
name: game.i18n.localize("MENU.SENTTOCHAT"),
icon: '<i class="far fa-comment"></i>',
callback: (li) => {
let itemId = li.data("itemId");
this._itemDetailsToChat(itemId);
},
},
]);
new ContextMenu(html, "li.item-spell", [
{
name: game.i18n.localize("MENU.SHOWROLLDIALOG"),
icon: '<i class="far dice"></i>',
callback: (li) => {
let itemId = li.data("itemId");
let _item = this.actor.items.find((element) => element._id == itemId);
if (!_item) {
_item = game.items.get(itemId);
if (!_item) {
console.log("IMPORT ERROR")
return
}
}
let showValue = false
let difficulty = 0
if(this.actor.data.type === "character") {
showValue = true
}
switch (_item.data.data.difficulty.value) {
case "simple":
difficulty = 5
break;
case "easy":
difficulty = 2
break;
case "hard":
difficulty = -2
break;
case "daunting":
difficulty = -5
break;
}
if(_item.data.data.roll.value === "roll" || _item.data.data.roll.value === "attackroll") {
// Retrieve skill based on name
let skill = this.actor.items.find((element) => element.name === _item.data.data.roll.skill);
let skillName = _item.name
let skillValue = skill.data.data.value
if(this.actor.data.type === "character") {
skillName = _item.name + " (" + skill.name + ")"
}
this.khRoller.rollSkillDialogInChat(skillName, skillValue, showValue, this.actor, difficulty)
} else if(_item.data.data.roll.value === "opposite") {
// Retrieve skill based on name
let skill = this.actor.items.find((element) => element.name === _item.data.data.roll.skill);
let skillName = _item.name
let skillValue = skill.data.data.value
if(this.actor.data.type === "character") {
skillName = _item.name + " (" + skill.name + ")"
}
this.khRoller.rollSkillDialogInChat(skillName, skillValue, showValue, this.actor, difficulty)
} else if(_item.data.data.roll.value === "ritual") {
console.log("Not supported yet")
this.khRoller.rollSkillDialogInChat("Ritual", -1, showValue, this.actor, difficulty)
}
},
},
{
name: game.i18n.localize("MENU.SENTTOCHAT"),
icon: '<i class="far fa-comment"></i>',
callback: (li) => {
let itemId = li.data("itemId");
this._itemDetailsToChat(itemId);
},
},
]);
new ContextMenu(html, "li.item-attack", [
{
name: game.i18n.localize("MENU.SHOWROLLDIALOG"),
icon: '<i class="far dice"></i>',
callback: (li) => {
let skillValue = li.data("ability");
let skillName = "ITEM.ATTACK";
let showValue = false
if(this.actor.data.type === "character") {
showValue = true
}
this.khRoller.rollSkillDialogInChat(skillName, skillValue, showValue, this.actor)
},
},
{
name: game.i18n.localize("MENU.SENTTOCHAT"),
icon: '<i class="far fa-comment"></i>',
callback: (li) => {
let itemId = li.data("itemId");
this._itemDetailsToChat(itemId);
},
},
]);
new ContextMenu(html, "li.item-defence", [
{
name: game.i18n.localize("MENU.SHOWROLLDIALOG"),
icon: '<i class="far dice"></i>',
callback: (li) => {
const skillValue = li.data("defence");
let skillName = "ADVERSARY.DEFENCE";
this.khRoller.rollSkillDialogInChat(skillName, skillValue, false, this.actor)
},
}
]);
html.find(".feature").click(async (ev) => { html.find(".feature").click(async (ev) => {
const featureName = $(ev.currentTarget).data("feature"); const featureName = $(ev.currentTarget).data("feature");
const featureValue = this.actor.data.data.feature[featureName].value; const featureValue = this.actor.data.data.feature[featureName].value;
@@ -138,7 +345,35 @@ export class ActorSheetKH extends ActorSheet {
// Delete Inventory Item // Delete Inventory Item
html.find(".item-delete").click((ev) => { html.find(".item-delete").click((ev) => {
const li = $(ev.currentTarget).parents(".item"); let parent = $(ev.currentTarget).data("parent")
const li = $(ev.currentTarget).parents(parent);
const item = this.actor.getOwnedItem(li.data("itemId"));
if(item) {
if (item.type === "armor") {
let initValue = -1
if (item.data.data.equipable.equipped) {
initValue = 4
this.actor.items.map((i) => {
if (i.type === "armor") {
if (i._id !== item._id && i.data.data.equipable.equipped && i.data?.data?.modifications) {
for (let k of Object.keys(i.data.data.modifications)) {
if (i.data.data.modifications[k].modtype === "init") {
initValue = i.data.data.modifications[k].value;
}
}
}
}
});
}
if (initValue > 0) {
this.actor.update({["data.combat.init"]: initValue});
}
}
}
this.actor.deleteOwnedItem(li.data("itemId")); this.actor.deleteOwnedItem(li.data("itemId"));
@@ -147,7 +382,8 @@ export class ActorSheetKH extends ActorSheet {
// Edit Inventory Item // Edit Inventory Item
html.find(".item-edit").click(async (ev) => { html.find(".item-edit").click(async (ev) => {
const li = $(ev.currentTarget).parents(".item"); let parent = $(ev.currentTarget).data("parent")
let li = $(ev.currentTarget).parents(parent);
let itemId = li.data("itemId"); let itemId = li.data("itemId");
let item = this.actor.getOwnedItem(itemId); let item = this.actor.getOwnedItem(itemId);
@@ -166,7 +402,7 @@ export class ActorSheetKH extends ActorSheet {
/* Roll spell cost */ /* Roll spell cost */
html.find(".roll-spell-cost").click((ev) => { html.find(".roll-spell-cost").click((ev) => {
const li = $(ev.currentTarget).parents(".item"); const li = $(ev.currentTarget).parents(".item-spell");
let itemId = li.data("itemId"); let itemId = li.data("itemId");
let spell = this.actor.getOwnedItem(itemId); let spell = this.actor.getOwnedItem(itemId);
@@ -189,9 +425,74 @@ export class ActorSheetKH extends ActorSheet {
} }
}); });
html.find(".roll-spell-skill").click((ev) => {
const li = $(ev.currentTarget).parents(".item-spell");
let itemId = li.data("itemId");
let spell = this.actor.getOwnedItem(itemId);
if (!spell) {
spell = game.items.get(itemId);
if (!spell) {
console.log("IMPORT ERROR")
return
}
}
let showValue = false
let difficulty = 0
if(this.actor.data.type === "character") {
showValue = true
}
switch (spell.data.data.difficulty.value) {
case "simple":
difficulty = 5
break;
case "easy":
difficulty = 2
break;
case "hard":
difficulty = -2
break;
case "daunting":
difficulty = -5
break;
}
if(spell.data.data.roll.value === "roll" || spell.data.data.roll.value === "attackroll") {
// Retrieve skill based on name
let skill = this.actor.items.find((element) => element.name === spell.data.data.roll.skill);
let skillName = spell.name
let skillValue = skill.data.data.value
if(this.actor.data.type === "character") {
skillName = spell.name + " (" + skill.name + ")"
}
this.khRoller.rollSkillInChat(skillName, skillValue, showValue, this.actor, difficulty)
} else if(spell.data.data.roll.value === "opposite") {
// Retrieve skill based on name
let skill = this.actor.items.find((element) => element.name === spell.data.data.roll.skill);
let skillName = spell.name
let skillValue = skill.data.data.value
if(this.actor.data.type === "character") {
skillName = spell.name + " (" + skill.name + ")"
}
this.khRoller.rollSkillInChat(skillName, skillValue, showValue, this.actor, difficulty)
} else if(spell.data.data.roll.value === "ritual") {
console.log("Not supported yet")
}
});
/* Roll skill */ /* Roll skill */
html.find(".roll-skill").click((ev) => { html.find(".roll-skill").click((ev) => {
const li = $(ev.currentTarget).parents(".item"); const li = $(ev.currentTarget).parents(".item-skill");
let itemId = li.data("itemId"); let itemId = li.data("itemId");
let _item = this.actor.items.find((element) => element._id == itemId); let _item = this.actor.items.find((element) => element._id == itemId);
@@ -208,7 +509,7 @@ export class ActorSheetKH extends ActorSheet {
/* Roll weapon skill */ /* Roll weapon skill */
html.find(".roll-weapon-skill").click((ev) => { html.find(".roll-weapon-skill").click((ev) => {
const li = $(ev.currentTarget).parents(".item"); const li = $(ev.currentTarget).parents(".item-weapon");
let itemId = li.data("itemId"); let itemId = li.data("itemId");
let weapon = this.actor.getOwnedItem(itemId); let weapon = this.actor.getOwnedItem(itemId);
@@ -237,7 +538,7 @@ export class ActorSheetKH extends ActorSheet {
/* Roll weapon damage */ /* Roll weapon damage */
html.find(".roll-damage").click((ev) => { html.find(".roll-damage").click((ev) => {
const li = $(ev.currentTarget).parents(".item"); const li = $(ev.currentTarget).parents(".item-weapon");
let itemId = li.data("itemId"); let itemId = li.data("itemId");
let weapon = this.actor.getOwnedItem(itemId); let weapon = this.actor.getOwnedItem(itemId);
@@ -278,15 +579,17 @@ export class ActorSheetKH extends ActorSheet {
let defence = armor.data.data.defence.value; let defence = armor.data.data.defence.value;
let hasHelmet = false; let hasHelmet = false;
this.actor.items.map((i) => { if(game.settings.get("kopparhavet", "gameSystem") === "kopparhavet") {
if(i.type === "armor") { this.actor.items.map((i) => {
if(i.data.data.equipable.equipped && i.data.data.helmet.value) { if (i.type === "armor") {
if(CONFIG.KH.armor_types[i.data.data.type.value]?.ac >= CONFIG.KH.armor_types[armor.data.data.type.value]?.ac) { if (i.data.data.equipable.equipped && i.data.data.helmet.value) {
hasHelmet = true if (CONFIG.KH.armor_types[i.data.data.type.value]?.ac >= CONFIG.KH.armor_types[armor.data.data.type.value]?.ac) {
hasHelmet = true
}
} }
} }
} });
}); }
let regex = /([0-9]*)t([0-9]*)/g; let regex = /([0-9]*)t([0-9]*)/g;
let regexMatch; let regexMatch;
@@ -298,6 +601,7 @@ export class ActorSheetKH extends ActorSheet {
/* Toggle item equipped */ /* Toggle item equipped */
html.find(".items .item a.toggle-equipped").click(this._toggleEquippedItem.bind(this)); html.find(".items .item a.toggle-equipped").click(this._toggleEquippedItem.bind(this));
html.find(".items .item-weapon a.toggle-equipped").click(this._toggleEquippedItem.bind(this));
/* Handle increase of items in inventory */ /* Handle increase of items in inventory */
html.find(".item-quantity .quantity.increase").click(this._increaseQuantity.bind((this))); html.find(".item-quantity .quantity.increase").click(this._increaseQuantity.bind((this)));
@@ -311,16 +615,38 @@ export class ActorSheetKH extends ActorSheet {
/* Adversary specific */ /* Adversary specific */
html.find(".roll-adversary-attack").click((ev) => { html.find(".roll-adversary-attack").click((ev) => {
const li = $(ev.currentTarget).parents(".item"); const li = $(ev.currentTarget).parents(".item-attack");
let skillValue = li.data("ability"); let skillValue = li.data("ability");
console.log(skillValue)
let skillName = "ITEM.ATTACK"; let skillName = "ITEM.ATTACK";
this.khRoller.rollSkillInChat(skillName, skillValue, false, this.actor) this.khRoller.rollSkillInChat(skillName, skillValue, false, this.actor)
}); });
html.find(".roll-attack-damage").click((ev) => {
const li = $(ev.currentTarget).parents(".item-attack");
let itemId = li.data("itemId");
let weapon = this.actor.getOwnedItem(itemId);
if (!weapon) {
weapon = game.items.get(itemId);
if (!weapon) {
console.log("IMPORT ERROR")
return
}
}
let damage = weapon.data.data.damage.value;
let regex = /([0-9]*)t([0-9]*)/g;
let regexMatch;
while (regexMatch = regex.exec(damage.toLowerCase())) {
this.khRoller.rollDamageInChat(regexMatch[1], this.actor)
}
});
html.find(".roll-defence").click((ev) => { html.find(".roll-defence").click((ev) => {
const skillValue = $(ev.currentTarget).data("defence"); const skillValue = $(ev.currentTarget).data("defence");
@@ -357,6 +683,104 @@ export class ActorSheetKH extends ActorSheet {
this.khRoller.rollArmorInChat(regexMatch[1], hasHelmet, this.actor) this.khRoller.rollArmorInChat(regexMatch[1], hasHelmet, this.actor)
} }
}); });
// Add or Remove relationship
html.find(".learning-control").click(this._onClickLearningControl.bind(this));
html.find(".learning-click").click(this._onClickLearingLearned.bind(this));
/* Hjältarnas Tid specefic */
if(game.settings.get("kopparhavet", "gameSystem") === "hjaltarnas-tid") {
// Add or Remove relationship
html.find(".relation-control").click(this._onClickRelationshipControl.bind(this));
html.find(".relation-click").click(this._onClickRelationshipUsed.bind(this));
}
}
async _onClickLearingLearned(event) {
event.stopPropagation();
const li1 = $(event.currentTarget);
const li2 = $(event.currentTarget).parents(".learning");
let box = li1.data("num")
let learingKey = li2.data("attribute");
const clickedValue = (this.actor.data.data.learning[learingKey][box] == undefined ? false : this.actor.data.data.learning[learingKey][box]);
let dataName = "data.learning." + learingKey + "." + box
let tempData = {}
tempData[dataName] = !clickedValue
this.actor.update(tempData);
this._render();
}
async _onClickLearningControl(event) {
event.preventDefault();
const a = event.currentTarget;
const action = a.dataset.action;
const attrs = this.object.data.data.learning;
const form = this.form;
// Add new modification
if (action === "create") {
const nk = new Date().getTime();
let newKey = document.createElement("div");
newKey.innerHTML = `<input class="learning-key" type="text" name="data.learning.attr${nk}.key" value="attr${nk}" style="display: none;" /><input class="learning-key" type="text" name="data.learning.attr${nk}.value" value="" style="display: none;" />`;
form.appendChild(newKey);
await this._onSubmit(event);
}
// Remove existing modification
else if (action === "delete") {
const li = a.closest(".learning");
li.parentElement.removeChild(li);
await this._onSubmit(event);
}
}
async _onClickRelationshipControl(event) {
event.preventDefault();
const a = event.currentTarget;
const action = a.dataset.action;
const attrs = this.object.data.data.relationships;
const form = this.form;
// Add new modification
if (action === "create") {
const nk = new Date().getTime();
let newKey = document.createElement("div");
newKey.innerHTML = `<input class="relation-key" type="text" name="data.relationships.attr${nk}.key" value="attr${nk}" style="display: none;" /><input class="relation-key" type="text" name="data.relationships.attr${nk}.value" value="" style="display: none;" />`;
form.appendChild(newKey);
await this._onSubmit(event);
}
// Remove existing modification
else if (action === "delete") {
const li = a.closest(".relation");
li.parentElement.removeChild(li);
await this._onSubmit(event);
}
}
async _onClickRelationshipUsed(event) {
event.stopPropagation();
const li = $(event.currentTarget).parents(".relation");
let relationshipKey = li.data("attribute");
const clickedValue = (this.actor.data.data.relationships[relationshipKey].check == undefined ? false : this.actor.data.data.relationships[relationshipKey].check);
let dataName = "data.relationships." + relationshipKey + ".check"
let tempData = {}
tempData[dataName] = !clickedValue
this.actor.update(tempData);
this._render();
} }
async _toggleEquippedItem(event) { async _toggleEquippedItem(event) {
@@ -364,7 +788,7 @@ export class ActorSheetKH extends ActorSheet {
const item = this.actor.getOwnedItem(li.data("itemId")); const item = this.actor.getOwnedItem(li.data("itemId"));
const actor = this.actor; const actor = this.actor;
if (item) { if(item) {
if(item.type === "armor") { if(item.type === "armor") {
let initValue = -1 let initValue = -1
@@ -469,6 +893,13 @@ export class ActorSheetKH extends ActorSheet {
} }
} }
/** @override */
_updateObject(event, formData) {
const actorUpdate = ActorHelpers.actorUpdate.bind(this);
actorUpdate(event, formData);
}
/** /**
* Send details of an item to chat. * Send details of an item to chat.
* @private * @private

View File

@@ -12,7 +12,5 @@ export class ActorKH extends Actor {
const data = actorData.data; const data = actorData.data;
const flags = actorData.flags; const flags = actorData.flags;
data.type = actorData.type; data.type = actorData.type;
console.log("ACTOR DATA")
} }
} }

View File

@@ -0,0 +1,54 @@
export default class ActorHelpers {
static async actorUpdate(event, formData) {
formData = expandObject(formData);
// Handle the free-form relationship list
const formAttrs = expandObject(formData)?.data?.relationships || {};
const relationships = Object.values(formAttrs).reduce((obj, v) => {
let k = v["key"].trim();
delete v["key"];
obj[k] = v;
return obj;
}, {});
// Remove modifications which are no longer used
if (this.object.data?.data?.relationships) {
for (let k of Object.keys(this.object.data.data.relationships)) {
if (!relationships.hasOwnProperty(k)) relationships[`-=${k}`] = null;
}
}
// recombine modifications to formData
if (Object.keys(relationships).length > 0) {
setProperty(formData, `data.relationships`, relationships);
}
// Handle the free-form learnign list
const formAttrsLearning = expandObject(formData)?.data?.learning || {};
const learning = Object.values(formAttrsLearning).reduce((obj, v) => {
let k = v["key"].trim();
delete v["key"];
obj[k] = v;
return obj;
}, {});
// Remove modifications which are no longer used
if (this.object.data?.data?.learning) {
for (let k of Object.keys(this.object.data.data.learning)) {
if (!learning.hasOwnProperty(k)) learning[`-=${k}`] = null;
}
}
// recombine modifications to formData
if (Object.keys(learning).length > 0) {
setProperty(formData, `data.learning`, learning);
}
// Update the Item
this.actor.data.flags.loaded = false;
this.object.update(formData);
}
}

View File

@@ -14,6 +14,12 @@ export default class KHDiceRoller {
const html = await renderTemplate("systems/kopparhavet/templates/dice/roll.html", rollData); const html = await renderTemplate("systems/kopparhavet/templates/dice/roll.html", rollData);
if(game.settings.get("kopparhavet", "applySpellCost")) {
let totalCostForActor = speaker.data.data.mana.value + roll.total
speaker.update({ ["data.mana.value"]: totalCostForActor });
}
await roll.toMessage({ await roll.toMessage({
create: true, create: true,
content: html, content: html,
@@ -84,7 +90,7 @@ export default class KHDiceRoller {
}); });
} }
async rollSkillInChat(skillName, skillValue, showValue, speaker) { async rollSkillInChat(skillName, skillValue, showValue, speaker, openclosed) {
const roll = new Roll(`1d100`); const roll = new Roll(`1d100`);
let res = roll.roll(); let res = roll.roll();
@@ -95,16 +101,43 @@ export default class KHDiceRoller {
computedName += " (" + skillValue + ")" computedName += " (" + skillValue + ")"
} }
if(openclosed === undefined) {
openclosed = 0
}
let rollData = { let rollData = {
name: computedName, name: computedName,
res: res res: res
}; };
if(skillValue > 0) { if(skillValue > 0) {
if(res.total <= skillValue) { let oneRes = Math.floor((res.total / 1) % 10);
let tenRes = Math.floor((res.total / 10) % 10);
if(openclosed < 0) {
rollData.closed = Math.abs(openclosed)
}
if(openclosed > 0) {
rollData.opened = Math.abs(openclosed)
}
if(openclosed < 0 && oneRes !== 0 && Math.abs(openclosed) >= oneRes) {
// roll is closed
rollData.failure = true
} else if(openclosed > 0 && oneRes !== 0 && Math.abs(openclosed) >= oneRes){
// roll is opened
rollData.success = true rollData.success = true
} else { } else {
rollData.failure = true if (res.total <= skillValue) {
rollData.success = true
} else {
rollData.failure = true
}
}
if(oneRes === tenRes) {
rollData.excetional = true
} }
} }
@@ -121,4 +154,101 @@ export default class KHDiceRoller {
}, },
}); });
} }
async rollSkillDialogInChat(skillName, skillValue, showValue, speaker, startopen) {
const id = randomID();
if(startopen === undefined) {
startopen = 0
}
const content = await renderTemplate("systems/kopparhavet/templates/roll-dialog.html", {
id,
startopen,
skillName,
skillValue,
});
await new Dialog({
title: game.i18n.localize("ROLL.TITLE"),
content,
buttons: {
one: {
icon: '<i class="fas fa-check"></i>',
label: game.i18n.localize("BUTTON.ROLL"),
callback: async () => {
const container = document.getElementById(id);
let openclosed = container.querySelector('[name="openclosed"]').value
const roll = new Roll(`1d100`);
let res = roll.roll();
let computedName = skillName
if(showValue) {
computedName += " (" + skillValue + ")"
}
let rollData = {
name: computedName,
res: res
};
// Evaluate result only if we have a positive skillvalue
if(skillValue > 0) {
let oneRes = Math.floor((res.total / 1) % 10);
let tenRes = Math.floor((res.total / 10) % 10);
if(openclosed < 0) {
rollData.closed = Math.abs(openclosed)
}
if(openclosed > 0) {
rollData.opened = Math.abs(openclosed)
}
if(openclosed < 0 && oneRes !== 0 && Math.abs(openclosed) >= oneRes) {
// roll is closed
rollData.failure = true
} else if(openclosed > 0 && oneRes !== 0 && Math.abs(openclosed) >= oneRes){
// roll is opened
rollData.success = true
} else {
if (res.total <= skillValue) {
rollData.success = true
} else {
rollData.failure = true
}
}
if(oneRes === tenRes) {
rollData.excetional = true
}
}
const html = await renderTemplate("systems/kopparhavet/templates/dice/roll.html", rollData);
await roll.toMessage({
create: true,
content: html,
user: game.user._id,
speaker: {
actor: speaker._id,
token: speaker.token,
alias: speaker.name,
},
});
},
},
two: {
icon: '<i class="fas fa-times"></i>',
label: game.i18n.localize("BUTTON.CANCEL"),
},
},
},
{
classes: ["dialog", "kopparhavet"],
}).render(true);
}
} }

View File

@@ -0,0 +1,21 @@
/**
* Perform a system migration for the entire World, applying migrations for Actors, Items, and Compendium packs
* @return {Promise} A Promise which resolves once the migration is completed
*/
export const migrateWorld = async function () {
ui.notifications.info(
`Applying System Migration for version ${game.system.data.version}. Please be patient and do not close your game or shut down your server.`,
{permanent: true}
);
// Migrate to v0.0.3 from v0.0.2 and v0.0.1
game.items.forEach((item) => {
if(item.data.type === "spell") {
item.update({"data.roll.label": "SPELL.ROLLTITLE"});
}
});
// Set the migration as complete
game.settings.set("kopparhavet", "worldSchemaVersion", game.system.data.version);
ui.notifications.info(`System Migration to version ${game.system.data.version} completed!`, { permanent: true });
};

View File

@@ -8,7 +8,7 @@ export class ItemSheetKH extends ItemSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return mergeObject(super.defaultOptions, {
classes: ["starwarsffg", "sheet", "item"], classes: ["kopparhavet", "sheet", "item"],
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }], tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
scrollY: [".sheet-body", ".tab"], scrollY: [".sheet-body", ".tab"],
}); });
@@ -36,7 +36,13 @@ export class ItemSheetKH extends ItemSheet {
switch (this.object.data.type) { switch (this.object.data.type) {
case "weapon": case "weapon":
// Load Skills Compendium skills // Load Skills Compendium skills
let skillList2 = await game.packs.get("kopparhavet.skills").getContent(); let skillList2
if(game.settings.get("kopparhavet", "gameSystem") === "hjaltarnas-tid") {
skillList2 = await game.packs.get("kopparhavet.skills-ht").getContent();
} else {
skillList2 = await game.packs.get("kopparhavet.skills").getContent();
}
for (let item of skillList2) { for (let item of skillList2) {
if(item.data.type === "skill" && item.data.data.type.value === "combat") { if(item.data.type === "skill" && item.data.data.type.value === "combat") {
@@ -66,6 +72,60 @@ export class ItemSheetKH extends ItemSheet {
this.position.width = 405; this.position.width = 405;
this.position.height = 570; this.position.height = 570;
break; break;
case "spell":
// Load Skills Compendium skills
let skillList3
if(game.settings.get("kopparhavet", "gameSystem") === "hjaltarnas-tid") {
skillList3 = await game.packs.get("kopparhavet.skills-ht").getContent();
} else {
skillList3 = await game.packs.get("kopparhavet.skills").getContent();
}
for (let item of skillList3) {
if(item.data.type === "skill") {
skillList.push(item)
}
}
// Retrieve any created skills as well
for (let item of game.items.entities) {
if(item.data.type === "skill") {
skillList.push(item)
}
}
this.position.width = 450;
this.position.height = 605;
break;
case "shipweapon":
// Load Skills Compendium skills
let skillList4
if(game.settings.get("kopparhavet", "gameSystem") === "hjaltarnas-tid") {
skillList4 = await game.packs.get("kopparhavet.skills-ht").getContent();
} else {
skillList4 = await game.packs.get("kopparhavet.skills").getContent();
}
for (let item of skillList4) {
if(item.data.type === "skill" && item.data.data.type.value === "combat") {
skillList.push(item)
}
}
// Retrieve any created skills as well
for (let item of game.items.entities) {
if(item.data.type === "skill" && item.data.data.type.value === "combat") {
skillList.push(item)
}
}
this.position.width = 530;
this.position.height = 750;
break;
case "shiptalent":
this.position.width = 405;
this.position.height = 570;
break;
default: default:
this.position.width = 450; this.position.width = 450;
this.position.height = 605; this.position.height = 605;
@@ -139,6 +199,7 @@ export class ItemSheetKH extends ItemSheet {
/** @override */ /** @override */
_updateObject(event, formData) { _updateObject(event, formData) {
const itemUpdate = ItemHelpers.itemUpdate.bind(this); const itemUpdate = ItemHelpers.itemUpdate.bind(this);
itemUpdate(event, formData); itemUpdate(event, formData);
} }

View File

@@ -21,6 +21,8 @@ export class ItemKH extends Item {
itemData.isSpell = itemData.type === "spell"; itemData.isSpell = itemData.type === "spell";
itemData.isTalent = itemData.type === "talent"; itemData.isTalent = itemData.type === "talent";
itemData.isWeapon = itemData.type === "weapon"; itemData.isWeapon = itemData.type === "weapon";
itemData.isShipWeapon = itemData.type === "shipweapon";
itemData.isShipTalent = itemData.type === "shiptalent";
const html = await renderTemplate("systems/kopparhavet/templates/chat/item-card.html", itemData); const html = await renderTemplate("systems/kopparhavet/templates/chat/item-card.html", itemData);
@@ -56,6 +58,8 @@ export class ItemKH extends Item {
itemData.isSpell = itemData.type === "spell"; itemData.isSpell = itemData.type === "spell";
itemData.isTalent = itemData.type === "talent"; itemData.isTalent = itemData.type === "talent";
itemData.isWeapon = itemData.type === "weapon"; itemData.isWeapon = itemData.type === "weapon";
itemData.isShipWeapon = itemData.type === "shipweapon";
itemData.isShipTalent = itemData.type === "shiptalent";
return itemData return itemData
} }

View File

@@ -23,4 +23,82 @@ KH.armor_types = {
"label": "ARMOR.HEAVY", "label": "ARMOR.HEAVY",
"ac": 30, "ac": 30,
}, },
}; };
KH.baseSkills = [
"Smidighet",
"Trolldom",
"Fingerfärdighet",
"Finna dolda ting",
"Förleda",
"Gömma sig",
"Handel",
"Hantverk",
"Insikt",
"Jakt",
"Kastvapen",
"Knivar",
"Lagkunskap",
"Legender",
"Läkekonst",
"Lärdom",
"Musik",
"Rida",
"Sjömanskap",
"Skytte",
"Sköldar",
"Slagsmål",
"Spana",
"Spel",
"Spjut",
"Språk",
"Status",
"Stigvana",
"Styrka",
"Svärd",
"Taktik",
"Uthållighet",
"Utstrålning",
"Viljestyrka",
"Väderkunskap",
"Yxor"
]
KH.baseSkillsHT = [
"Fingerfärdighet",
"Gömma sig",
"Handel",
"Härkonst",
"Jakt",
"Lagkunskap",
"Ledarskap",
"Leta",
"Läkekonst",
"Lärdom",
"Manövrer",
"Rida",
"Sjömannaskap",
"Skaldekonst",
"Skapa",
"Spana",
"Spel",
"Spelmannaskap",
"Språk",
"Status",
"Stigvana",
"Styrkeprov",
"Trolldom",
"Uthållighet",
"Viljestyrka",
"Väderkunskap",
"Vältalighet",
"Wyrd",
"Kastvapen",
"Knivkamp",
"Skytte",
"Sköldkamp",
"Slagsmål",
"Spjutkamp",
"Svärdskamp",
"Yxkamp"
]

View File

@@ -1,15 +1,25 @@
export default class KHHooks { export default class KHHooks {
static async onCreateActor(actor, options, userId) { static async onCreateActor(actor, options, userId) {
if (actor.data.type == "character") { if (actor.data.type == "character") {
const actorbaseSkills = actor.data.data.baseSkills; // Load Skills Compendium skills
let skillIndex;
let actorbaseSkills;
if(game.settings.get("kopparhavet", "gameSystem") === "hjaltarnas-tid") {
// Set currency name
actor.update({ "data.currency.shekel.label": "CURRENCY.SILVER" });
actorbaseSkills = CONFIG.KH.baseSkillsHT
skillIndex = await game.packs.get("kopparhavet.skills-ht").getContent();
} else {
actorbaseSkills = CONFIG.KH.baseSkills;
skillIndex = await game.packs.get("kopparhavet.skills").getContent();
}
// Check if skill already exists by some chance // Check if skill already exists by some chance
const existingSkills = actor.items.filter((i) => i.type === ItemType.Skill).map((i) => i.name); const existingSkills = actor.items.filter((i) => i.type === ItemType.Skill).map((i) => i.name);
const skillsToAdd = actorbaseSkills.filter((s) => !existingSkills.includes(s)); const skillsToAdd = actorbaseSkills.filter((s) => !existingSkills.includes(s));
// Load Skills Compendium skills
const skillIndex = await game.packs.get("kopparhavet.skills").getContent();
// Filter skillIndex array to include only skills for Actor Type. // Filter skillIndex array to include only skills for Actor Type.
let _skillsList = skillIndex.filter((i) => skillsToAdd.includes(i.data.name)); let _skillsList = skillIndex.filter((i) => skillsToAdd.includes(i.data.name));

View File

@@ -4,6 +4,7 @@ import KHHooks from "./kh-hooks.js";
import { ActorKH } from "./actors/actor.js"; import { ActorKH } from "./actors/actor.js";
import { ActorSheetKH } from "./actors/actor-sheet.js"; import { ActorSheetKH } from "./actors/actor-sheet.js";
import { KH } from "./kh-config.js"; import { KH } from "./kh-config.js";
import * as migrations from "./helpers/migration-helper.js";
Hooks.once("init", () => { Hooks.once("init", () => {
CONFIG.Combat.initiative = { formula: "(@combat.init)d6kh2", decimals: 0 }; CONFIG.Combat.initiative = { formula: "(@combat.init)d6kh2", decimals: 0 };
@@ -14,22 +15,52 @@ Hooks.once("init", () => {
// Give global access to FFG config. // Give global access to FFG config.
CONFIG.KH = KH; CONFIG.KH = KH;
//registerFonts();
registerSheets();
preloadHandlebarsTemplates();
registerHandlebarsHelpers();
game.settings.register("kopparhavet", "worldSchemaVersion", { game.settings.register("kopparhavet", "worldSchemaVersion", {
name: "World Version", name: "World Version",
hint: "Used to automatically upgrade worlds data when the system is upgraded.", hint: "Used to automatically upgrade worlds data when the system is upgraded.",
scope: "world", scope: "world",
config: true, config: true,
default: 0, default: 0,
type: Number, type: String,
}); });
game.settings.register("kopparhavet", "gameSystem", {
name: "Game System",
hint: "Select what game system is being used..",
scope: "world",
config: true,
default: "kopparhavet",
choices: {
"kopparhavet": "Kopparhavets Hjältar",
"hjaltarnas-tid": "Hjältarnas Tid"
},
type: String,
onChange: (rule) => {
window.location.reload();
},
});
game.settings.register("kopparhavet", "applySpellCost", {
name: "Apply Spell Cost",
hint: "Automatically add spell cost to the character when rolled.",
scope: "world",
config: true,
default: false,
type: Boolean,
});
//registerFonts();
registerSheets();
if(game.settings.get("kopparhavet", "gameSystem") === "hjaltarnas-tid") {
preloadHandlebarsTemplatesHT();
} else {
preloadHandlebarsTemplates();
}
registerHandlebarsHelpers();
}); });
Hooks.once("ready", () => { Hooks.once("ready", () => {
//migrateWorld(); migrateWorld();
}); });
/* POPULATE CHARACTER WITH DEFAULT SKILLS */ /* POPULATE CHARACTER WITH DEFAULT SKILLS */
@@ -37,11 +68,10 @@ Hooks.on("createActor", async (actor, options, userId) => KHHooks.onCreateActor(
function registerSheets() { function registerSheets() {
// Register sheet application classes // Register sheet application classes
console.log("Registerting sheets")
Actors.unregisterSheet("core", ActorSheet); Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("kopparhavet", ActorSheetKH, { types: ["character"], makeDefault: true }); Actors.registerSheet("kopparhavet", ActorSheetKH, { types: ["character"], makeDefault: true });
Actors.registerSheet("kopparhavet", ActorSheetKH, { types: ["adversary"], makeDefault: true }); Actors.registerSheet("kopparhavet", ActorSheetKH, { types: ["adversary"], makeDefault: true });
Actors.registerSheet("kopparhavet", ActorSheetKH, { types: ["ship"], makeDefault: true });
Items.unregisterSheet("core", ItemSheet); Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["weapon"], makeDefault: true }); Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["weapon"], makeDefault: true });
@@ -51,6 +81,8 @@ function registerSheets() {
Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["spell"], makeDefault: true }); Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["spell"], makeDefault: true });
Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["talent"], makeDefault: true }); Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["talent"], makeDefault: true });
Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["adversaryAttack"], makeDefault: true }); Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["adversaryAttack"], makeDefault: true });
Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["shiptalent"], makeDefault: true });
Items.registerSheet("kopparhavet", ItemSheetKH, { types: ["shipweapon"], makeDefault: true });
} }
function preloadHandlebarsTemplates() { function preloadHandlebarsTemplates() {
@@ -58,6 +90,7 @@ function preloadHandlebarsTemplates() {
"systems/kopparhavet/templates/chat/item-card.html", "systems/kopparhavet/templates/chat/item-card.html",
"systems/kopparhavet/templates/actors/adversary-sheet.html", "systems/kopparhavet/templates/actors/adversary-sheet.html",
"systems/kopparhavet/templates/actors/character-sheet.html", "systems/kopparhavet/templates/actors/character-sheet.html",
"systems/kopparhavet/templates/actors/ship-sheet.html",
"systems/kopparhavet/templates/dice/roll.html", "systems/kopparhavet/templates/dice/roll.html",
"systems/kopparhavet/templates/items/adversaryAttack-sheet.html", "systems/kopparhavet/templates/items/adversaryAttack-sheet.html",
"systems/kopparhavet/templates/items/armor-sheet.html", "systems/kopparhavet/templates/items/armor-sheet.html",
@@ -66,12 +99,45 @@ function preloadHandlebarsTemplates() {
"systems/kopparhavet/templates/items/spell-sheet.html", "systems/kopparhavet/templates/items/spell-sheet.html",
"systems/kopparhavet/templates/items/talent-sheet.html", "systems/kopparhavet/templates/items/talent-sheet.html",
"systems/kopparhavet/templates/items/weapon-sheet.html", "systems/kopparhavet/templates/items/weapon-sheet.html",
"systems/kopparhavet/templates/items/shipweapon-sheet.html",
"systems/kopparhavet/templates/items/shiptalent-sheet.html",
"systems/kopparhavet/templates/parts/actor/main.html",
"systems/kopparhavet/templates/parts/actor/bio.html", "systems/kopparhavet/templates/parts/actor/bio.html",
"systems/kopparhavet/templates/parts/actor/combat.html", "systems/kopparhavet/templates/parts/actor/combat.html",
"systems/kopparhavet/templates/parts/actor/gear.html", "systems/kopparhavet/templates/parts/actor/gear.html",
"systems/kopparhavet/templates/parts/actor/skills.html", "systems/kopparhavet/templates/parts/actor/skills.html",
"systems/kopparhavet/templates/parts/actor/talent.html", "systems/kopparhavet/templates/parts/actor/talent.html",
"systems/kopparhavet/templates/parts/shared/modifications.html", "systems/kopparhavet/templates/parts/shared/modifications.html",
"systems/kopparhavet/templates/parts/actor/ship-main.html",
"systems/kopparhavet/templates/parts/actor/ship-combat.html",
];
return loadTemplates(templatePaths);
}
function preloadHandlebarsTemplatesHT() {
const templatePaths = [
"systems/kopparhavet/templates/chat/item-card.html",
"systems/kopparhavet/templates/actors/ht-adversary-sheet.html",
"systems/kopparhavet/templates/actors/ht-character-sheet.html",
"systems/kopparhavet/templates/actors/ht-ship-sheet.html",
"systems/kopparhavet/templates/dice/roll.html",
"systems/kopparhavet/templates/items/adversaryAttack-sheet.html",
"systems/kopparhavet/templates/items/armor-sheet.html",
"systems/kopparhavet/templates/items/gear-sheet.html",
"systems/kopparhavet/templates/items/skill-sheet.html",
"systems/kopparhavet/templates/items/spell-sheet.html",
"systems/kopparhavet/templates/items/talent-sheet.html",
"systems/kopparhavet/templates/items/weapon-sheet.html",
"systems/kopparhavet/templates/items/shipweapon-sheet.html",
"systems/kopparhavet/templates/items/shiptalent-sheet.html",
"systems/kopparhavet/templates/parts/actor/ht-main.html",
"systems/kopparhavet/templates/parts/actor/ht-combat.html",
"systems/kopparhavet/templates/parts/actor/gear.html",
"systems/kopparhavet/templates/parts/actor/ht-skills.html",
"systems/kopparhavet/templates/parts/actor/talent.html",
"systems/kopparhavet/templates/parts/shared/modifications.html",
"systems/kopparhavet/templates/parts/actor/ship-main.html",
"systems/kopparhavet/templates/parts/actor/ship-combat.html",
]; ];
return loadTemplates(templatePaths); return loadTemplates(templatePaths);
} }
@@ -124,8 +190,42 @@ function registerHandlebarsHelpers() {
} }
}); });
Handlebars.registerHelper("spellRoll", function (roll) {
roll = normalize(roll, "roll");
switch (roll) {
case "roll":
return game.i18n.localize("SPELL.ROLL");
case "attackroll":
return game.i18n.localize("SPELL.ATTACKROLL");
case "opposite":
return game.i18n.localize("SPELL.OPPOSITE");
case "ritual":
return game.i18n.localize("SPELL.RITUAL");
}
});
Handlebars.registerHelper('plaintextToHTML', function(value) { Handlebars.registerHelper('plaintextToHTML', function(value) {
// strip tags, add <br/> tags // strip tags, add <br/> tags
return new Handlebars.SafeString(value.replace(/(<([^>]+)>)/gi, "").replace(/(?:\r\n|\r|\n)/g, '<br/>')); return new Handlebars.SafeString(value.replace(/(<([^>]+)>)/gi, "").replace(/(?:\r\n|\r|\n)/g, '<br/>'));
}); });
}
function migrateWorld() {
// Determine whether a system migration is required and feasible
const currentVersion = game.settings.get("kopparhavet", "worldSchemaVersion");
const NEEDS_MIGRATION_VERSION = "0.0.3";
const COMPATIBLE_MIGRATION_VERSION = '0' || isNaN('NaN');
let needMigration = currentVersion < NEEDS_MIGRATION_VERSION || currentVersion === null;
// Perform the migration
if (needMigration && game.user.isGM) {
if (currentVersion && currentVersion < COMPATIBLE_MIGRATION_VERSION) {
ui.notifications.error(
`Your system data is from a version that cannot be reliably migrated to the latest version. The process will be attempted, but errors may occur.`,
{ permanent: true }
);
}
migrations.migrateWorld();
}
} }

6
packs/armor-ht.db Normal file
View File

@@ -0,0 +1,6 @@
{"name":"Fjällpansar","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"200","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Rustning [Medeltung]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 22 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":2}},"defence":{"value":"2T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"medium","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Od5mE1UIzxseeffr"}
{"name":"Läderharnesk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"120","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Rustning [L&auml;tt]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 22 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":3}},"defence":{"value":"1T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"light","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"jhWNQy4fuTkq0tsM"}
{"name":"Ringbrynja","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"300","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Rustning [Medeltung]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 22 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":2}},"defence":{"value":"2T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"medium","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"EbEbLRdLTH5Is36b"}
{"name":"Vadderad vapenrock","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"60","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Rustning [L&auml;tt]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 22 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":3}},"defence":{"value":"1T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"light","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"i6ed6nNO3znJSHTe"}
{"name":"Plåtrustning","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"600","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Rustning [Tung]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":1}},"defence":{"value":"3T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"heavy","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"AURzeAplqk7gbIcm"}
{"name":"Plåtharnesk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"600","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Rustning [Medeltung]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 22 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</span></p>\n<p><span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\"><span style=\"color: #191813; font-family: IM Fell Great Primer, serif;\"><strong>H&aring;rd och Stel:</strong> Se&nbsp;</span></span><span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">sida 73 i Hj&auml;ltarnas V&auml;g.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":2}},"defence":{"value":"2T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"medium","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"kOcBH00cNI407S0f"}

9
packs/armor.db Normal file
View File

@@ -0,0 +1,9 @@
{"name":"Läderharnesk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"30","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Material:</strong> L&auml;der</p>\n<p><strong>Rustning [L&auml;tt]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 30 i regleboken.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":3}},"defence":{"value":"1T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"light","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"AdnDS4MedzMaQ6Rb"}
{"name":"Ringbrynja","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"100","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Material:</strong> Brynja</p>\n<p><strong>Rustning [Medeltung]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 30 i regleboken.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":2}},"defence":{"value":"2T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"medium","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"8gWfC62d3jUUgdJK"}
{"name":"Fjällpansar","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"180","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Material:</strong> Pl&aring;t</p>\n<p><strong>Rustning [Medeltung]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 30 i regleboken.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":2}},"defence":{"value":"2T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"medium","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"uEyMrjl8ui65rcBB"}
{"name":"Vadderad vapenrock","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"13","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Material:</strong> Tyg</p>\n<p><strong>Rustning [L&auml;tt]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 30 i regleboken.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":3}},"defence":{"value":"1T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"light","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"JPmwH7OUcca9aCQk"}
{"name":"Plåtrustning","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"250","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Material:</strong> Pl&aring;t</p>\n<p><strong>Rustning [Tung]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 30 i regleboken.</span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":1}},"defence":{"value":"3T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"heavy","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"qnmpIkAppKOsxKuE"}
{"name":"Helrustning","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"3000","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Material:</strong> Pl&aring;t</p>\n<p><strong>Rustning [Tung]:</strong>&nbsp;<span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\">Se sida 30 i regleboken.</span></p>\n<p><span style=\"color: #191813; font-family: 'IM Fell Great Primer', serif;\"><span style=\"color: #191813; font-family: IM Fell Great Primer, serif;\"><strong>Anpassad:</strong> Se sida 29 i regelboken.</span></span></p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{"attr1607038651707":{"modtype":"init","value":2}},"defence":{"value":"3T6","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":false,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"heavy","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"wROPFie7LmizLEg9"}
{"name":"Lätt hjälm","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"7","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Hj&auml;lm:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Rustning [L&auml;tt]:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"defence":{"value":"","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":true,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"light","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"jWPFRZ5hvVqrbOkR"}
{"name":"Öppen hjälm","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"24","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Hj&auml;lm:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Rustning [Medeltung]:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"defence":{"value":"","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":true,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"medium","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"amr0WbIA5dO087dn"}
{"name":"Sluten hjälm","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"armor","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"90","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Hj&auml;lm:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Begr&auml;nsad sikt:</strong> Se sida 29 i regelboken.</p>\n<p><strong>Rustning [Tung]:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"defence":{"value":"","type":"String","label":"ITEM.DEFENCE"},"helmet":{"value":true,"type":"Boolean","label":"ARMOR.HELMET"},"type":{"value":"heavy","label":"SKILL.TYPE"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"VYlSbiEsKhrKLdSg"}

36
packs/skills-ht.db Normal file
View File

@@ -0,0 +1,36 @@
{"name":"Fingerfärdighet","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Fingerf&auml;rdighet</em> anv&auml;nds f&ouml;r att pilla med finmekaniska saker, som till exempel l&aring;s och sm&aring; f&auml;llor, eller att stj&auml;la f&ouml;rem&aring;l fr&aring;n folk.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.tmNI5YIYYjGuZK5i"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"IzCiSGUvv98Akne9"}
{"name":"Gömma sig","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>G&ouml;mma sig</em> anv&auml;nds f&ouml;r att inte bli uppt&auml;ckt, f&ouml;r att smyga och g&ouml;mma sig och f&ouml;rf&ouml;lja n&aring;gon osedd, men &auml;ven f&ouml;r att kamouflera saker i terr&auml;ngen.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.Ewo6mu7WdoOcF6DD"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"8atcGOHeJaDKoeH1"}
{"name":"Handel","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Handel</em> omfattar inte bara skickligheten i att f&ouml;rhandla om priset, utan &auml;ven kunskap om sakers v&auml;rden och handelskontakter.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.syxeJlio8vIrx0Lr"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"cFyZX1FEM8l1mOxt"}
{"name":"Härkonst","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>H&auml;rkonst</em> anv&auml;nds f&ouml;r att leda k&auml;mpar i strid.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.Yvy3Ej3tDNhp0VVA"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"iBoUWEqS2EJ23UXH"}
{"name":"Jakt","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Jakt</em> anv&auml;nds f&ouml;r att jaga med olika metoder, men kan ocks&aring; anv&auml;ndas f&ouml;r att f&ouml;rbereda bakh&aring;ll eller sp&aring;ra en person.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.orNrL49vWUePhLaU"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Dnm1ojpuimDgVMgS"}
{"name":"Kastvapen","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Kastvapen</em> omfattar avst&aring;ndsstrid med vapen som kastas.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.YpheXmaKsX9omtBA"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"xjeC0tWIweb0Xv3y"}
{"name":"Knivkamp","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Knivkamp</em> omfattar n&auml;rstrid med korta vapen med egg.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.uctwxo07FCKCk2K4"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"gEoqRECdR4YV9Kjj"}
{"name":"Lagkunskap","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Lagkunskap</em> handlar om lagen och hur den appliceras och tolkas.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.b9U8BXjNvI4LwlRX"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"zjkON2FKfORsYZQC"}
{"name":"Ledarskap","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Ledarskap</em> handlar om att leda folk s&aring; att de samarbetar mot ett gemensamt m&aring;l.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.DDZkgceLisZOYHEi"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"NRDB30canJWbAEpH"}
{"name":"Leta","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Leta</em> inneb&auml;r att man anv&auml;nder sinnen och intelligens f&ouml;r att s&ouml;ka efter n&aring;got p&aring; ett systematiskt s&auml;tt.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.0m5bA14oR16bB2Gt"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"hS7GdiLCU2MX3cLH"}
{"name":"Läkekonst","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>L&auml;kekonst</em> &auml;r konsten att f&ouml;rbinda och sy ihop s&aring;r, sk&ouml;ta om skadade och sjuka och bota eller lindra sjukdomar och f&ouml;rgiftningar.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.bVEJBtXhXOkqIBek"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"KHGj3Lo7DCc6bQ1d"}
{"name":"Lärdom","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>L&auml;rdom</em> &auml;r kunskapsf&auml;rdigheter som kan nedtecknas och l&auml;ras in utan att &ouml;vas.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.5wz37ypKMn6tgtTr"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"tNcdbjFFmdEjSMGi"}
{"name":"Manövrer","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Man&ouml;vrer</em> g&aring;r ut p&aring; att r&ouml;ra p&aring; kroppen, att kl&auml;ttra, hoppa, ducka undan saker som kommer farande mot en eller som man sj&auml;lv far emot, springa, simma et cetera.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.XF2eNRo6uMhDs5Uv"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"CIwFkd9GWlm7y57b"}
{"name":"Rida","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Rida</em> omfattar alla former av ritt, oavsett riddjur, samt &auml;ven hur man k&ouml;r en dragen vagn.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.boR4AGF8LD12ykoc"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"TVJO5CLS6Cxw9KnI"}
{"name":"Sjömannaskap","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Sj&ouml;mannaskap</em> handlar om att hantera ett skepp, l&auml;sa str&ouml;mmar och vindar, navigera efter sol, m&aring;ne, stj&auml;rnor och landm&auml;rken, att k&auml;nna till hur havet ser ut och uppf&ouml;r sig.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.8org0OaWuKO6rCqm"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"npYrS0HFFwHCKnpR"}
{"name":"Skaldekonst","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Skaldekonst</em> &auml;r konsten att ber&auml;tta s&aring;v&auml;l som att skalda och sjunga, att tala v&auml;l, att kunna s&aring;nger och ber&auml;ttelser och veta saker om forna skalder och versm&aring;tt.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.dYcVgFgx6WmBWCeZ"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"UhxsytE8ios0syr2"}
{"name":"Skapa","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten&nbsp;<em>Skapa</em> anv&auml;nds f&ouml;r hantverk och konstruktion av allt fr&aring;n enkla lerfigurer till byggnader.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.DSWruhUT6DT9kY7Z"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"sZXmvDS4lVRY9u8I"}
{"name":"Skytte","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Skytte</em> omfattar skytte med b&aring;ge och armborst, plus sk&ouml;tsel och underh&aring;ll av dem.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.KJLF5fDrZaA1DKg1"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"ZkNVMXIbwDuzyYLf"}
{"name":"Sköldkamp","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Sk&ouml;ldkamp</em> omfattar n&auml;rstrid med sk&ouml;ld.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Z8MYKBmwp9ndR4yG"}
{"name":"Slagsmål","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Slagsm&aring;l</em> omfattar n&auml;rstrid utan vapen, med improviserade vapen samt med klubba eller tr&auml;stav.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.UkwUABDT8NB8y1mQ"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"dCptQUJuzAdaqrwY"}
{"name":"Spana","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Spana</em> inneb&auml;r att man anv&auml;nder sinnen och intelligens f&ouml;r att s&ouml;ka av en st&ouml;rre yta och bilda sig en uppfattning om vad som h&auml;nder d&auml;r.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.5oQCvQNiDSeIe8vI"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"zCVB88wGIgnuRQmk"}
{"name":"Spel","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Spel</em> omfattar alla former av turspel och skicklighetsspel som spelas med t&auml;rningar och br&auml;de.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.bcRVOx8M3Ue6tgGz"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Vl95XY1D8f7pddbG"}
{"name":"Spelmannaskap","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Spelmannaskap</em> anv&auml;nds f&ouml;r att spela p&aring; instrument.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.eFeMJtv30eImpUMn"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"MBhorheNBhL35WFy"}
{"name":"Spjutkamp","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Spjutkamp</em> omfattar n&auml;rstrid med spjut.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.GxkoQ2KdPh9ogGuJ"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"JS9GPsKfPGXI4OYx"}
{"name":"Språk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Spr&aring;k</em> anv&auml;nds f&ouml;r att f&ouml;rst&aring; andra spr&aring;k &auml;n det egna.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.BkCe8HPX1wVYlsmV"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"XS0bsKnYGZJH3tQ6"}
{"name":"Status","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Status</em> m&auml;ter b&ouml;rd, anseende och just status.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.5NCkdBZ4lWwLzGwk"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"J65XPSvOvdQTEfzZ"}
{"name":"Stigvana","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Stigvana</em> &auml;r vanan att vandra i vildmarken p&aring; stigar d&auml;r ringa eller ingen hj&auml;lp finns att f&aring;.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.NBRV1tzrIV9AmGka"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"igJjHw0pMas76OwT"}
{"name":"Styrkeprov","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Styrkeprov</em> handlar om r&aring;styrka och teknik, att lyfta, bryta, dra, trycka, pressa och hiva.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.IC2RGKp9cEYzyIln"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"55bhxOTXgNcq9l05"}
{"name":"Svärdskamp","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Sv&auml;rdskamp</em> omfattar n&auml;rstrid med sv&auml;rd och huggkniv.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.b9no6ZeE5KyG9AfT"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"9zh6979BufGdks1h"}
{"name":"Trolldom","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Trolldom</em> &auml;r kunskap om magi och f&ouml;rm&aring;gan att v&auml;va besv&auml;rjelser.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.EVCN4lxeferZYP0P"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"86IFFuCOT4W6nvlK"}
{"name":"Uthållighet","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Uth&aring;llighet</em> handlar om att t&aring;la och h&aring;lla ut vid framf&ouml;rallt fysiska p&aring;frestningar.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.Uc9XLdzkI7mGMTLL"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Bx6VdBO4myVx5uBd"}
{"name":"Viljestyrka","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Viljestyrka</em> handlar om att t&aring;la och h&aring;lla ut vid framf&ouml;rallt mentala p&aring;frestningar.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.qbi9SN1V4bPT3T3Y"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"sYoYD8YHupXeFLcQ"}
{"name":"Väderkunskap","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>V&auml;derkunskap</em> &auml;r konsten att l&auml;sa moln och vindar och m&aring;nga andra tecken f&ouml;r att veta hur v&auml;dret kommer att te sig, dels under de kommande dagarna men &auml;ven p&aring; det stora hela under l&auml;ngre perioder.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.elGMSOQROaYXCEPA"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"JxJyCojPMILdd8II"}
{"name":"Vältalighet","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>V&auml;ltalighet</em> &auml;r konsten att tala v&auml;l, tydligt och vackert.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.F5lkuwhO3WGl5yWk"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Qzu8YQpvolf8bveV"}
{"name":"Wyrd","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Wyrd</em> &auml;r f&ouml;rm&aring;gan att se och f&ouml;rst&aring; det &ouml;vernaturliga och se hur det genomsyrar v&auml;rlden.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.TjVsmOs0PqbAzNUf"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"YtWmlfKFAyjfcbto"}
{"name":"Yxkamp","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Yxkamp</em> omfattar n&auml;rstrid med yxor och hammare.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.VWaRRqiUlMw1nPUn"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"EB6kznWU87xn3CD4"}

View File

@@ -1,36 +1,37 @@
{"name":"Smidighet","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"core":{"sourceId":"Item.tmNI5YIYYjGuZK5i"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"INlHwwv9wG4VA13D"} {"name":"Fingerfärdighet","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Fingerf&auml;rdighet</em> anv&auml;nds f&ouml;r att handskas med finmekaniska saker, som till exempel l&aring;s och sm&aring; f&auml;llor, eller f&ouml;r att stj&auml;la f&ouml;rem&aring;l fr&aring;n folk.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.syxeJlio8vIrx0Lr"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"pY8RrSxFnZmoFqr6"}
{"name":"Trolldom","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.Ewo6mu7WdoOcF6DD"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"kIu2AL79urDjZV8z"} {"name":"Finna dolda ting","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Finna dolda ting</em> l&aring;ter dig anv&auml;nda dina sinnen och din intelligens f&ouml;r att noggrant och systematiskt s&ouml;ka efter n&aring;got dolt.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.Yvy3Ej3tDNhp0VVA"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"sNl0DX1hmOK9vRP7"}
{"name":"Fingerfärdighet","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.syxeJlio8vIrx0Lr"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"9gkb0ONyCuBcWwoB"} {"name":"Förleda","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>F&ouml;rleda</em> handlar om att manipulera, lura och f&ouml;rvirra andra f&ouml;r ens eget syfte.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.orNrL49vWUePhLaU"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"NYKvh2obVTL4QAy6"}
{"name":"Finna dolda ting","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.Yvy3Ej3tDNhp0VVA"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"PaieUawcyfKhfSCv"} {"name":"Gömma sig","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>G&ouml;mma sig</em> anv&auml;nds f&ouml;r att inte bli uppt&auml;ckt, f&ouml;r att smyga och g&ouml;mma sig och f&ouml;rf&ouml;lja n&aring;gon osedd, men &auml;ven f&ouml;r att kamouflera saker i ter&shy;r&auml;ngen.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.b9U8BXjNvI4LwlRX"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"n2Lj2GV2As8FAp8P"}
{"name":"Förleda","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.orNrL49vWUePhLaU"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"JN1b5A5QHoinB5Gd"} {"name":"Handel","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Handel</em> omfattar inte bara skicklighe&shy;ten i att f&ouml;rhandla om priset, utan &auml;ven kunskap om sakers v&auml;rde och handelskontakter.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.DDZkgceLisZOYHEi"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"0gCOfq9w1cj37TaQ"}
{"name":"Gömma sig","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.b9U8BXjNvI4LwlRX"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"A8DBqRLBJ0yU3Ebp"} {"name":"Hantverk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Hantverk</em> anv&auml;nds f&ouml;r att skapa, till&shy;verka och reparera f&ouml;rem&aring;l.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.0m5bA14oR16bB2Gt"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"ZHqH2oCl6oaZnjIw"}
{"name":"Handel","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.DDZkgceLisZOYHEi"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"GS4NknpWIKYWceky"} {"name":"Insikt","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Insikt</em> l&aring;ter dig genomsk&aring;da vardagens skyddande sl&ouml;jor.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.bVEJBtXhXOkqIBek"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"HUB8mGDpTCrhevut"}
{"name":"Hantverk","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.0m5bA14oR16bB2Gt"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"imcYcYl21T4xewNa"} {"name":"Jakt","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Jakt</em> anv&auml;nds f&ouml;r att jaga med olika metoder, men kan ocks&aring; anv&auml;ndas f&ouml;r att f&ouml;rbe&shy;reda bakh&aring;ll eller sp&aring;ra en person eller varelse.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.5wz37ypKMn6tgtTr"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"DoKmzzVZwlj1Occ5"}
{"name":"Insikt","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.bVEJBtXhXOkqIBek"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"NXJMfsrhYeCCEFP2"} {"name":"Kastvapen","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Kastvapen</em> omfattar strid med kastvapen, som spjut, slunga eller kastdolk.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.XF2eNRo6uMhDs5Uv"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"XOEmqkLgITvFTvSy"}
{"name":"Jakt","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.5wz37ypKMn6tgtTr"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"3EuThKpVWrtV1Myy"} {"name":"Knivar","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Knivar</em> omfattar n&auml;rstrid med korta vapen med egg, som dolk, kortsv&auml;rd och olika sorters knivar.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.boR4AGF8LD12ykoc"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"pbRFvlv68L1QhKM3"}
{"name":"Kastvapen","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.XF2eNRo6uMhDs5Uv"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"33aM81M73ZyO1NNT"} {"name":"Lagkunskap","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Lagkunskap</em> handlar om lagen och hur den app&shy;liceras och tolkas.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.8org0OaWuKO6rCqm"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"wwtgv7U3XZ6muIF0"}
{"name":"Knivar","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.boR4AGF8LD12ykoc"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"dGpYfI8CLwxKSzas"} {"name":"Legender","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Legender</em> &auml;r kunskap om historia, legender, myter och hj&auml;lteber&auml;ttelser.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.dYcVgFgx6WmBWCeZ"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"EAMspWLTddJVpurB"}
{"name":"Lagkunskap","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.8org0OaWuKO6rCqm"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"SYa97JM5u0aCNJMA"} {"name":"Läkekonst","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>L&auml;kekonst</em> &auml;r konsten att f&ouml;rbinda och sy ihop s&aring;r, sk&ouml;ta om skadade och sjuka och bota eller lindra sjukdomar och f&ouml;rgiftningar.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.DSWruhUT6DT9kY7Z"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"cmTNraDnVFiQ1Gbo"}
{"name":"Legender","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.dYcVgFgx6WmBWCeZ"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"JcmDWE2GxJ9HKIuT"} {"name":"Lärdom","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>L&auml;rdom</em> omfattar nedskriven kunskap. <em>L&auml;rdom</em> &auml;r kunskap som m&aring;ste l&auml;ras genom att l&auml;sas ist&auml;llet f&ouml;r genom &ouml;vning eller tr&auml;ning.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.5oQCvQNiDSeIe8vI"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"WXkOfQtpfI4v72pG"}
{"name":"Läkekonst","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.DSWruhUT6DT9kY7Z"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"DqnFfN91ovo86QOn"} {"name":"Musik","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Musik</em> anv&auml;nds f&ouml;r att sjunga och spela instrument, samt f&ouml;r att komponera egna stycken eller k&auml;nna till och framf&ouml;ra befintliga s&aring;nger.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.bcRVOx8M3Ue6tgGz"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"iivxum3DGLhca5A5"}
{"name":"Lärdom","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.5oQCvQNiDSeIe8vI"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Y6kDWokNA81POqvG"} {"name":"Rida","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Rida</em> omfattar alla former av ritt, oavsett riddjur, samt &auml;ven hur man k&ouml;r en dragen vagn.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.eFeMJtv30eImpUMn"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"inZWAkquXUBcc33O"}
{"name":"Musik","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.bcRVOx8M3Ue6tgGz"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"5nMScpCnMbb77QfD"} {"name":"Sjömanskap","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Sj&ouml;manskap</em> handlar om att hantera ett skepp, l&auml;sa str&ouml;mmar, v&aring;gor och vindar och att navigera efter stj&auml;rnor, sj&ouml;kort och landm&auml;rken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.BkCe8HPX1wVYlsmV"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"zj4TxhUrTeSP7Q2B"}
{"name":"Rida","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.eFeMJtv30eImpUMn"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"lqRRrd1Qdmbv5Nay"} {"name":"Skytte","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Skytte</em> omfattar avst&aring;ndsstrid med b&aring;ge, armborst, hakeb&ouml;ssa, skeppshake och kanon, samt hur man handskas med krut och handhar st&ouml;rre pj&auml;ser.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.5NCkdBZ4lWwLzGwk"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"4GayTL8wiV9AJy42"}
{"name":"Sjömanskap","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.BkCe8HPX1wVYlsmV"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"JIEl6a3sIkH2V5wX"} {"name":"Sköldar","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Sk&ouml;ldar</em> omfattar n&auml;rstrid med sk&ouml;ld.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.NBRV1tzrIV9AmGka"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"50p8ZeT5jqHVj6m4"}
{"name":"Skytte","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.5NCkdBZ4lWwLzGwk"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"jEoMTkqoxQ9iSaoB"} {"name":"Slagsmål","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Slagsm&aring;l</em> omfattar n&auml;rstrid utan vapen, med improviserade vapen samt med klubba eller tr&auml;stav.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.IC2RGKp9cEYzyIln"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"vkWMm9qx0JGwnIhp"}
{"name":"Sköldar","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.NBRV1tzrIV9AmGka"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"OkDh0xCD26hUrthN"} {"name":"Smidighet","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Smidighet</em> &auml;r f&ouml;rm&aring;gan att kl&auml;ttra, hoppa, ducka, springa, simma och liknande.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"core":{"sourceId":"Item.tmNI5YIYYjGuZK5i"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"eRFBzncHQ6LpR2V6"}
{"name":"Slagsmål","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.IC2RGKp9cEYzyIln"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"afCvHSTrmDWNkj31"} {"name":"Spana","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Spana</em> anv&auml;nds f&ouml;r att uppfatta vad som sker &ouml;ver ett st&ouml;rre omr&aring;de.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.EVCN4lxeferZYP0P"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"9K5flThkeBgGoadW"}
{"name":"Spana","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.EVCN4lxeferZYP0P"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Z0pWniEH3MBU69g6"} {"name":"Spel","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Spel</em> omfattar alla former av turspel och skicklighetsspel som spelas med t&auml;rningar och br&auml;de.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.Uc9XLdzkI7mGMTLL"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"StwGwPBaENrIBsOQ"}
{"name":"Spel","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.Uc9XLdzkI7mGMTLL"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"HigGBE4oUC9yYMYw"} {"name":"Spjut","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Spjut</em> omfattar n&auml;rstrid med spjut och andra st&aring;ngvapen.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.qbi9SN1V4bPT3T3Y"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"QthNkBeJCUZXtTaj"}
{"name":"Spjut","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.qbi9SN1V4bPT3T3Y"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Ab22ZgWUiHl83kLQ"} {"name":"Språk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Spr&aring;k</em> anv&auml;nds f&ouml;r att uttrycka sig p&aring; sitt moders&shy;m&aring;l och f&ouml;rst&aring; andra spr&aring;k &auml;n det egna.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.elGMSOQROaYXCEPA"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"t8Ao9HhcuKGK2msl"}
{"name":"Språk","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.elGMSOQROaYXCEPA"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"VZx4zxd72g4tKvAd"} {"name":"Status","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Status</em> m&auml;ter ryktbarhet, anseende och st&auml;llning.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.F5lkuwhO3WGl5yWk"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"CLF6NVJGhyfJLUgS"}
{"name":"Status","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.F5lkuwhO3WGl5yWk"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"eaooVeqja7pzzC1X"} {"name":"Stigvana","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Stigvana</em> anv&auml;nds f&ouml;r att &ouml;verleva i vildmarken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.TjVsmOs0PqbAzNUf"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"dl0uhfypLwSRfFaw"}
{"name":"Stigvana","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.TjVsmOs0PqbAzNUf"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"dR4UbIXYyCovTGzA"} {"name":"Styrka","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Styrka</em> handlar om r&aring;styrka och teknik, att lyfta, bryta, dra, trycka, pressa och hiva.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"core":{"sourceId":"Item.YpheXmaKsX9omtBA"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"LqWf8Wk2P5spvih9"}
{"name":"Styrka","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"core":{"sourceId":"Item.YpheXmaKsX9omtBA"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"anObCIyX3DdSjNPY"} {"name":"Svärd","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Sv&auml;rd</em> omfattar n&auml;rstrid med olika typer av sv&auml;rd och l&aring;ngkniv.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.uctwxo07FCKCk2K4"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"EiYjyUQMqNpLjr0X"}
{"name":"Svärd","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.uctwxo07FCKCk2K4"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"IketG7YFZuGHnihF"} {"name":"Taktik","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Taktik</em> anv&auml;nds f&ouml;r utf&ouml;ra man&ouml;vrar, lister och f&ouml;rflyttningar med trupp i strid.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.KJLF5fDrZaA1DKg1"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"lYBetUkbbvIXk83m"}
{"name":"Taktik","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.KJLF5fDrZaA1DKg1"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"5xTZzjUd7x2EgmG2"} {"name":"Trolldom","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Trolldom</em> &auml;r kunskap om magi och om hur man kastar besv&auml;rjelser.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.Ewo6mu7WdoOcF6DD"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"dY92ymYw7e6jRM9j"}
{"name":"Uthållighet","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"core":{"sourceId":"Item.VWaRRqiUlMw1nPUn"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"4yFL38tdvBenZKBQ"} {"name":"Uthållighet","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Uth&aring;llighet</em> handlar framf&ouml;rallt om ih&aring;llighet och t&aring;ga.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"eWbOrTpibvRc7beT"}
{"name":"Viljestyrka","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"core":{"sourceId":"Item.UkwUABDT8NB8y1mQ"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"vyW9DUMDPYqBSCtz"} {"name":"Utstrålning","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Utstr&aring;lning</em> &auml;r din personliga karisma, v&auml;ltalighet och f&ouml;rm&aring;ga att inspirera och influera.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"core":{"sourceId":"Item.VWaRRqiUlMw1nPUn"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"CZdnGk0r0oUzWHZJ"}
{"name":"Väderkunskap","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.GxkoQ2KdPh9ogGuJ"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"TEOcwEm0Z9GzJS6h"} {"name":"Viljestyrka","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>Viljestyrka</em> handlar om att uth&auml;rda mentala p&aring;frestningar.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"core":{"sourceId":"Item.UkwUABDT8NB8y1mQ"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"UDyBaOnM36TPFjPj"}
{"name":"Yxor","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.b9no6ZeE5KyG9AfT"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"BKu4BwEspAMQ5Yn3"} {"name":"Väderkunskap","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p><em>V&auml;derkunskap</em> &auml;r konsten att l&auml;sa moln, vindar och andra tecken f&ouml;r att veta hur v&auml;dret kommer att te sig, dels under de kommande dagarna dels p&aring; det stora hela under l&auml;ngre perioder.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.GxkoQ2KdPh9ogGuJ"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"2OvHsZsXAKiOikEf"}
{"name":"Utstrålning","permission":{"default":0,"tSnD115pP1EPBAXK":3},"type":"skill","data":{"description":{"value":"","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"base","label":"SKILL.TYPE"},"value":"25","used":false},"flags":{"core":{"sourceId":"Item.VWaRRqiUlMw1nPUn"}},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"4yFL38tdvBenZKBQ"} {"name":"Yxor","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>Yxor</em> omfattar n&auml;rstrid med yxor, hammare och klubbor.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"combat","label":"SKILL.TYPE"},"value":"30","used":false},"flags":{"core":{"sourceId":"Item.b9no6ZeE5KyG9AfT"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"1qTwWOJDT9GiyKu9"}
{"_id":"NYKvh2obVTL4QAy6","name":"Förleda","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"skill","data":{"description":{"value":"<p>F&auml;rdigheten <em>F&ouml;rleda</em> handlar om att manipulera, lura och f&ouml;rvirra andra f&ouml;r ens eget syfte.</p>","type":"String","label":"ITEM.DESCRIPTION"},"type":{"value":"adventure","label":"SKILL.TYPE"},"value":"15","used":false},"flags":{"core":{"sourceId":"Item.orNrL49vWUePhLaU"},"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[]}

30
packs/weapons-ht.db Normal file
View File

@@ -0,0 +1,30 @@
{"name":"Dolk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"40","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>V&aring;dlig:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Knivkamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"AAl4s3ZknQRYP1si"}
{"name":"Kniv","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"36","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>V&aring;dlig:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Knivkamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"S3IBvfFoG4nQnuaq"}
{"name":"Stridshammare","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"75","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Yxkamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"e6HX1v8mD5l3UWWd"}
{"name":"Huggkniv","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"55","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Knivkamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"3lehrquzdVUGqD92"}
{"name":"Kortsvärd","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"65","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Svärdskamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"t0JERPT5TiMFOJtr"}
{"name":"Improviserat","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"0","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Br&auml;cklig:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"kvXYCfHwVbgM3w6I"}
{"name":"Kort påk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"2","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Zu3Yp2Fh4OqszoG7"}
{"name":"klubba","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"2","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"tjKVRUHZndb3pCJG"}
{"name":"Lång trästav","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"3","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>F&auml;llande:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.&nbsp;</p>\n<p><strong>Br&auml;cklig:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"ouQQ5djydZKAJxmq"}
{"name":"Obeväpnad","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"0","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Ursinne:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.&nbsp;</p>\n<p><strong>Icke-d&ouml;dlig:</strong>&nbsp;Se sida 73 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"2T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"ZTVo2pWvkePS79em"}
{"name":"Pålyxa","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"55","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Br&auml;cklig:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Yxkamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"6T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"e3c5rOUtApumBd1p"}
{"name":"Slagsvärd","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"125","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Otymplig:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Svärdskamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"6T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"nGwB6zsa24duSmKf"}
{"name":"Sköld","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"30","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Avst&aring;ndsskydd:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Skyddande:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Sköldkamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"gDPRPYFzwwBdmvSw"}
{"name":"Spjut","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"55","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Br&auml;cklig:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>L&aring;ngt:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Spjutkamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"YoKfXR8uihhRijxy"}
{"name":"Svärd","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"80","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Svärdskamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"HgxU3WxqSeT9AHM0"}
{"name":"Yxa","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"40","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Yxkamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"KBH9rQK5EAhvdSRU"}
{"name":"Blydagg","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"4","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Icke-d&ouml;dlig:</strong> Se sida 73 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"7gNmP7ntqdo5VmNX"}
{"name":"Hillebard","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"80","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Tv&aring;handsvapen:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Otymplig:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>F&auml;llande:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Yxkamp","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"c1oiXjjR5ylXSe1T"}
{"name":"Klor","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"0","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p>F&ouml;r folkslagsf&ouml;rm&aring;gan Klor</p>\n<p>&nbsp;</p>\n<p><strong>Ursinne:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.&nbsp;</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"2T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"rVlNXdkHsxudccYo"}
{"name":"Armborst","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"100","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Otymplig:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Tv&aring;handsvapen:</strong>&nbsp;Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"HWBbwlIbq5riJmtN"}
{"name":"Flintlåsmusköt","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"600","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>H&ouml;gljudd:</strong> Se sida 73 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Sv&aring;rladdad:</strong> Se sida 74 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Tv&aring;handsvapen:</strong>&nbsp;Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"7T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"wQxfqxs0r2dFdR4q"}
{"name":"Flintlåspistol","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"350","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>H&ouml;gljudd:</strong>&nbsp;Se sida 73 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Sv&aring;rladdad:</strong>&nbsp;Se sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"6T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"1jRliKiuCLooks4u"}
{"name":"Kastkniv","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"40","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>V&aring;dlig:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Kort avst&aring;nd:</strong> Se sida 73 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Kastvapen","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"U83PGBnRSwW6vIlL"}
{"name":"Kastspjut","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"55","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Kastvapen","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"StW1iAQej38nUw60"}
{"name":"Kastyxa","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"45","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Kort avst&aring;nd:</strong>&nbsp;Se sida 73 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Kastvapen","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"ZmUBWdsRuo3CciCj"}
{"name":"Krigsbåge","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"60","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Otymplig:</strong> Se sida 20 i regleboken eller sida 73 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Tv&aring;handsvapen:</strong>&nbsp;Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"sA7k0ybMDV5lVL7u"}
{"name":"Pilbåge","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"50","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Tv&aring;handsvapen:</strong>&nbsp;Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"KpW2ar18ZUYzlWeu"}
{"name":"Slunga","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"1","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Kastvapen","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"mlnmxU0kiNVnUdO9"}
{"name":"Spjutslunga","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"10","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Kastvapen","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"NBxaaAj89aZujzbe"}
{"name":"Tungt armborst","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"250","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Sv&aring;rladdad:</strong> Se sida 74 i Hj&auml;ltarnas V&auml;g.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 22 i regleboken eller sida 74 i Hj&auml;ltarnas V&auml;g.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"6T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"ktgtwoYLDAZvJcix"}

31
packs/weapons.db Normal file
View File

@@ -0,0 +1,31 @@
{"name":"Dolk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"5","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Diskret:</strong> Se sida 29 i regleboken.</p>\n<p><strong>V&aring;dlig:</strong> Se sida 30 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Knivar","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Y9o0Ew1Q7tGwb2c1"}
{"name":"Klubba","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"0.5","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Diskret:</strong>&nbsp;Se sida 29 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"7lX58hq7L89JGa1m"}
{"name":"Kniv","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"2","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Diskret:</strong> Se sida 29 i regleboken.</p>\n<p><strong>V&aring;dlig:</strong> Se sida 30 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Knivar","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"JvSrT1SG7wo3gjjC"}
{"name":"Kort påk","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"0.5","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Diskret:</strong>&nbsp;Se sida 29 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"vEjgX42AT7eohLui"}
{"name":"Sköld","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"30","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Avst&aring;ndsskydd:</strong>&nbsp;Se sida 29 i regleboken.</p>\n<p><strong>Skyddande:</strong>&nbsp;Se sida 30 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Sköldar","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"xDyDCkEC3m0FWzDU"}
{"name":"Tillhygge","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"0","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Br&auml;cklig:</strong> Se sida 29 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"gslfZ1zsQyQmPRlQ"}
{"name":"Lång trästav","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"1","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>F&auml;llande:</strong> Se sida 29 i regelboken.</p>\n<p><strong>Br&auml;cklig:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Slagsmål","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"WbvUXyFGfUXLDyfX"}
{"name":"Hesapiskt björnspjut","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"15","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p>Ett hesapiskt bj&ouml;rnspjut &auml;r ett jaktvapen med hullingf&ouml;rsedda springblad.</p>\n<p>&nbsp;</p>\n<p><strong>Hullingar:</strong> Se sida 29 i regelboken.</p>\n<p><strong>L&aring;ngt:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Spjut","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"yqRTvZoC5iQEjZCj"}
{"name":"Spjut","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"7","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Br&auml;cklig:</strong> Se sida 29 i regleboken.</p>\n<p><strong>L&aring;ngt:</strong> Se sida 29 i regelboken.</p>\n<p><strong>Genomslag [Brynja]:</strong> Se sida 29 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Spjut","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"akIvCs0ntJI4yFPx"}
{"name":"Långkniv","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"25","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Knivar","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"N5jH2LLoykp2CHtr"}
{"name":"Kortsvärd","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"25","type":"Number","label":"ITEM.PRICE"},"description":{"value":null,"type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Svärd","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"FQd0pvGZ7DpRf1Bv"}
{"name":"Huggare","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"40","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Ryttarvapen:</strong> Se sida 30 i regelboken.</p>\n<p><strong>Genomslag[Tyg]:</strong> Se sida 29 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Svärd","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"IhFL7jwqOwzaOf1x"}
{"name":"Kroksabel","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"40","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Ryttarvapen:</strong> Se sida 30 i regelboken.</p>\n<p><strong>Genomslag[Tyg]:</strong> Se sida 29 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Svärd","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"30QiSQXkENJbB5HU"}
{"name":"Pata","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"100","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p>En Pata &auml;r ett duellsv&auml;rd som h&aring;lls i en hylsa &ouml;ver handen.</p>\n<p>&nbsp;</p>\n<p><strong>Balanserat:</strong> Se sida 29 i regelboken.</p>\n<p><strong>V&aring;dligt:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Svärd","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"QzzVfLCm9F0HZHhN"}
{"name":"Svärd","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"100","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Balanserat:</strong> Se sida 29 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Svärd","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Is5oBrtttdCV0WqR"}
{"name":"Slagsvärd","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"125","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Balanserat:</strong> Se sida 29 i regelboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i reglboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Svärd","type":"String","label":"ITEM.SKILL"},"damage":{"value":"6T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"h7wQYPemB7f3RLJf"}
{"name":"Stridshammare","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"45","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Genomslag[Pl&aring;t]:</strong> Se sida 29 i regelboken.</p>\n<p><strong>Ryttarvapen:</strong> Se sida 30 i regleboken.</p>\n<p><strong>V&aring;dlig:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Yxor","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"omVZC2dwkT54J5Vh"}
{"name":"Morgon­ stjärna","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"45","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Genomslag[Pl&aring;t]:</strong> Se sida 29 i regelboken.</p>\n<p><strong>Ryttarvapen:</strong> Se sida 30 i regleboken.</p>\n<p><strong>V&aring;dlig:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Yxor","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"zpVGquSPk35BDa5F"}
{"name":"Yxa","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"17","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Genomslag[L&aring;der]:</strong> Se sida 29 i regelboken.</p>\n<p><strong>Genomslag[Tyg]</strong><strong>:</strong> Se sida 29 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Yxor","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"NSIqlSR4njWmEwc1"}
{"name":"Hillebard","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"40","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>F&auml;llande:</strong> Se sida 29 i regleboken.</p>\n<p><strong>L&aring;ngt:</strong> Se sida 29 i regelboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Spjut","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"nogG33vF48DVSrAZ"}
{"name":"Pålyxa","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"40","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Genomslag[Pl&aring;t]:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Yxor","type":"String","label":"ITEM.SKILL"},"damage":{"value":"6T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"melee","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Ox1iQxJvDbqaXXNU"}
{"name":"Kastkniv","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"2","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Kort r&auml;ckvidd:</strong> Se sida 29 i regleboken.</p>\n<p><strong>V&aring;dlig:</strong> Se sida 30 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Kastvapen","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"cbQvzmFtT6T7KmGH"}
{"name":"Kastspjut","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"5","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Kort r&auml;ckvidd:</strong> Se sida 29 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Kastvapen","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"NWORxxFoXvc9iun5"}
{"name":"Slunga","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"0.25","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Diskret:</strong> Se sida 29 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Kastvapen","type":"String","label":"ITEM.SKILL"},"damage":{"value":"3T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"qeCADOQoVIAIylOI"}
{"name":"Spjutslunga","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"1","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p>Anv&auml;nder kastspjut som ammunition.</p>\n<p>&nbsp;</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regleboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Kastvapen","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"PdtJKdIFKoqBFkOM"}
{"name":"Långbåge","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"10","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Otymplig:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"amTSgp79h3gdTJ0P"}
{"name":"Pilbåge","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"6","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"4T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"SRDHKrvNHlY5wbdJ"}
{"name":"Armborst","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"40","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Otymplig:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"5T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"VmYFhEkhs8Ceo3tT"}
{"name":"Tungt arbalest","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"60","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>L&auml;tt bestyckning:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Sv&aring;rladdad:</strong> Se sida 30 i regleboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"6T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"PvE4gm1AuVgwna4x"}
{"name":"Hakebössa","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"80","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p>Hakeb&ouml;ssa &auml;r ett enkelt krutvapen med tr&auml;stock och j&auml;rnpipa.</p>\n<p>&nbsp;</p>\n<p><strong>Lunta:</strong> Se sida 29 i regleboken.</p>\n<p><strong>H&ouml;gljudd:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Sv&aring;rladdad:</strong> Se sida 30 i regleboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"6T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"ZMPuulNnTKfqm7Pw"}
{"name":"Skeppshake","permission":{"default":0,"7VGRGHFuCmzQn7Od":3},"type":"weapon","data":{"quantity":{"value":1,"type":"Number","label":"ITEM.QUANTITY"},"price":{"value":"100","type":"Number","label":"ITEM.PRICE"},"description":{"value":"<p><strong>Lunta:</strong> Se sida 29 i regleboken.</p>\n<p><strong>H&ouml;gljudd:</strong> Se sida 29 i regleboken.</p>\n<p><strong>Sv&aring;rladdad:</strong> Se sida 30 i regleboken.</p>\n<p><strong>L&auml;tt bestyckning:</strong> Se sida 29 i regelboken.</p>\n<p><strong>Tv&aring;handsvapen:</strong> Se sida 30 i regelboken.</p>","type":"String","label":"ITEM.DESCRIPTION"},"equipable":{"value":true,"type":"Boolean","equipped":false,"label":"ITEM.EQUIPABLE"},"modifications":{},"skill":{"value":"Skytte","type":"String","label":"ITEM.SKILL"},"damage":{"value":"8T6","type":"String","label":"ITEM.DAMAGE"},"category":{"value":"ranged","type":"String","label":"WEAPON.CATEGORY"}},"flags":{"loaded":false},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"qxxTKpHsitTUCvO3"}

View File

@@ -188,4 +188,20 @@
} }
.sheet-tabs { .sheet-tabs {
min-height: 36px;
}
.relation-list li:not(:last-child) {
margin-bottom: 5px;
}
.learning-list li:not(:last-child) {
margin-bottom: 5px;
}
.learning-list .learning,
.relation-list .relation {
padding: 0 0 5px;
border-bottom: 1px solid #bbb;
text-align: center;
} }

View File

@@ -97,17 +97,25 @@
margin: auto; margin: auto;
} }
.items .items-list .item { .items .items-list .item,
.items .items-list .item-spell,
.items .items-list .item-weapon,
.items .items-list .item-skill,
.items .items-list .item-nor,
.items .items-list .item-defence,
.items .items-list .item-attack {
line-height: 24px; line-height: 24px;
padding: 3px 0; padding: 3px 0;
border-bottom: 1px solid #bbb; border-bottom: 1px solid #bbb;
text-align: center; text-align: center;
} }
.items .items-list .item .toggle-equipped { .items .items-list .item .toggle-equipped,
.items .items-list .item-weapon .toggle-equipped {
color: #888; color: #888;
} }
.items .items-list .item .toggle-equipped.active { .items .items-list .item .toggle-equipped.active,
.items .items-list .item-weapon .toggle-equipped.active{
color: #191813; color: #191813;
} }

View File

@@ -2,10 +2,10 @@
"name": "kopparhavet", "name": "kopparhavet",
"title": "Kopparhavets Hjältar", "title": "Kopparhavets Hjältar",
"description": "The Molten Sea is a dangerous but exciting place, where pirates, sorcerers and secretive orders of knighthood struggle for power, wealth and ancient lore.", "description": "The Molten Sea is a dangerous but exciting place, where pirates, sorcerers and secretive orders of knighthood struggle for power, wealth and ancient lore.",
"version": "0.0.1", "version": "0.0.4",
"minimumCoreVersion": "0.7.5", "minimumCoreVersion": "0.7.5",
"compatibleCoreVersion": "0.7.7", "compatibleCoreVersion": "0.7.8",
"templateVersion": 3, "templateVersion": 4,
"author": "Erebus", "author": "Erebus",
"scripts": [], "scripts": [],
"esmodules": [ "esmodules": [
@@ -21,10 +21,45 @@
"packs": [ "packs": [
{ {
"name": "skills", "name": "skills",
"label": "Skills", "label": "Kopparhavets Hjältar Färdigheter",
"system": "kopparhavet", "system": "kopparhavet",
"path": "./packs/skills.db", "path": "./packs/skills.db",
"entity": "Item" "entity": "Item"
},
{
"name": "skills-ht",
"label": "Hjältarnas Tid Färdigheter",
"system": "kopparhavet",
"path": "./packs/skills-ht.db",
"entity": "Item"
},
{
"name": "armor",
"label": "Kopparhavets Hjältar Rustningar",
"system": "kopparhavet",
"path": "./packs/armor.db",
"entity": "Item"
},
{
"name": "armor-ht",
"label": "Hjältarnas Tid Rustningar",
"system": "kopparhavet",
"path": "./packs/armor-ht.db",
"entity": "Item"
},
{
"name": "weapons",
"label": "Kopparhavets Hjältar Vapen",
"system": "kopparhavet",
"path": "./packs/weapons.db",
"entity": "Item"
},
{
"name": "weapons-ht",
"label": "Hjältarnas Tid Vapen",
"system": "kopparhavet",
"path": "./packs/weapons-ht.db",
"entity": "Item"
} }
], ],
"languages": [ "languages": [
@@ -46,6 +81,6 @@
"url": "https://pi.rikspolisen.se/foundryvtt/kopparhavet", "url": "https://pi.rikspolisen.se/foundryvtt/kopparhavet",
"socket": true, "socket": true,
"manifest": "https://pi.rikspolisen.se/foundryvtt/kopparhavet/raw/branch/master/system.json", "manifest": "https://pi.rikspolisen.se/foundryvtt/kopparhavet/raw/branch/master/system.json",
"download": "https://pi.rikspolisen.se/foundryvtt/kopparhavet/archive/v0.0.1.zip", "download": "https://pi.rikspolisen.se/foundryvtt/kopparhavet/archive/v0.0.4.zip",
"license": "" "license": "LICENCE.txt"
} }

View File

@@ -2,7 +2,8 @@
"Actor": { "Actor": {
"types": [ "types": [
"character", "character",
"adversary" "adversary",
"ship"
], ],
"templates": { "templates": {
"core": { "core": {
@@ -41,44 +42,6 @@
"stats", "stats",
"combat" "combat"
], ],
"baseSkills": [
"Smidighet",
"Trolldom",
"Fingerfärdighet",
"Finna dolda ting",
"Förleda",
"Gömma sig",
"Handel",
"Hantverk",
"Insikt",
"Jakt",
"Kastvapen",
"Knivar",
"Lagkunskap",
"Legender",
"Läkekonst",
"Lärdom",
"Musik",
"Rida",
"Sjömanskap",
"Skytte",
"Sköldar",
"Slagsmål",
"Spana",
"Spel",
"Spjut",
"Språk",
"Status",
"Stigvana",
"Styrka",
"Svärd",
"Taktik",
"Uthållighet",
"Utstrålning",
"Viljestyrka",
"Väderkunskap",
"Yxor"
],
"bio": { "bio": {
"kin": { "kin": {
"label": "BIO.KIN", "label": "BIO.KIN",
@@ -88,9 +51,17 @@
"label": "BIO.PROFESSION", "label": "BIO.PROFESSION",
"value": "" "value": ""
}, },
"nickname": {
"label": "BIO.NICKNAME",
"value": ""
},
"age": { "age": {
"label": "BIO.AGE", "label": "BIO.AGE",
"value": "" "value": ""
},
"appearance": {
"label": "BIO.APPEARANCE",
"value": ""
} }
}, },
"background": { "background": {
@@ -142,7 +113,8 @@
"label": "CURRENCY.QUARTER", "label": "CURRENCY.QUARTER",
"value": 0 "value": 0
} }
} },
"relationships": {}
}, },
"adversary": { "adversary": {
"templates": [ "templates": [
@@ -150,6 +122,46 @@
"stats", "stats",
"combat" "combat"
] ]
},
"ship": {
"templates": [
"core"
],
"crew": {
"label": "SHIP.CREW",
"value": ""
},
"class": {
"label": "SHIP.CLASS",
"value": ""
},
"hull": {
"label": "SHIP.HULL",
"value": 0,
"max": 15
},
"rammingdmg": {
"label": "SHIP.RAMMINGDMG",
"value": ""
},
"operationscost": {
"label": "SHIP.OPERATIONSCOST",
"value": ""
},
"operationssupply": {
"label": "SHIP.OPERATIONSSUPPLY",
"value": ""
},
"cargo": {
"label": "SHIP.CARGO",
"value": 0,
"max": 10
},
"price": {
"value": 0,
"type": "Number",
"label": "ITEM.PRICE"
}
} }
}, },
"Item": { "Item": {
@@ -160,7 +172,9 @@
"skill", "skill",
"spell", "spell",
"talent", "talent",
"weapon" "weapon",
"shiptalent",
"shipweapon"
], ],
"templates": { "templates": {
"core": { "core": {
@@ -259,9 +273,12 @@
"core" "core"
], ],
"roll": { "roll": {
"value": "", "value": "roll",
"type": "String", "type": "String",
"label": "SPELL.ROLL" "label": "SPELL.ROLLTITLE",
"skill": "Trolldom",
"oppositeskill": "",
"ritual": {}
}, },
"cost": { "cost": {
"value": "", "value": "",
@@ -302,6 +319,29 @@
"type": "String", "type": "String",
"label": "WEAPON.CATEGORY" "label": "WEAPON.CATEGORY"
} }
},
"shiptalent": {
"templates": [
"core",
"modifications"
]
},
"shipweapon": {
"templates": [
"basic",
"core",
"modifications"
],
"skill": {
"value": "Skytte",
"type": "String",
"label": "ITEM.SKILL"
},
"damage": {
"value": "",
"type": "String",
"label": "ITEM.DAMAGE"
}
} }
} }
} }

View File

@@ -1,19 +1,19 @@
<form class="{{cssClass}}" autocomplete="off"> <form class="{{cssClass}}" autocomplete="off">
<div class="character"> <div class="character">
<div class="header grid-container" style="grid-template-columns: auto auto 1.7fr 2fr;"> <div class="header grid-container" style="grid-template-columns: auto auto 1fr auto 1fr; margin-bottom: 10px;">
<div class="avatar flex-group-center" style="grid-row: 1/7;"> <div class="avatar flex-group-center" style="grid-row: 1/7;">
<img class="profile-img actor-avatar-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" /> <img class="profile-img actor-avatar-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
</div> </div>
<label style="margin: auto;">{{localize "BIO.NAME"}}:</label> <label style="margin: auto;">{{localize "BIO.NAME"}}:</label>
<h1 class="charname" style="margin-bottom: 0;grid-column: 3/5;"><input name="name" type="text" value="{{actor.name}}" placeholder="{{localize "BIO.NAME"}}" /></h1> <h1 class="charname" style="margin-bottom: 0;grid-column: 3/6;"><input name="name" type="text" value="{{actor.name}}" placeholder="{{localize "BIO.NAME"}}" /></h1>
<label style="margin: auto;">{{localize data.bio.profession.label}}:</label>
<input name="data.bio.profession.value" type="text" value="{{data.bio.profession.value}}" placeholder="{{localize data.bio.profession.label}}" />
<label style="margin: auto;">{{localize data.bio.kin.label}}:</label> <label style="margin: auto;">{{localize data.bio.kin.label}}:</label>
<input name="data.bio.kin.value" type="text" value="{{data.bio.kin.value}}" placeholder="{{localize data.bio.kin.label}}" /> <input name="data.bio.kin.value" type="text" value="{{data.bio.kin.value}}" placeholder="{{localize data.bio.kin.label}}" />
<label style="margin: auto;">{{localize data.bio.profession.label}}:</label>
<input name="data.bio.profession.value" type="text" value="{{data.bio.profession.value}}" placeholder="{{localize data.bio.profession.label}}" />
<label style="margin: auto;">{{localize data.health.label}}:</label> <label style="margin: auto;">{{localize data.health.label}}:</label>
<div class="grid-container" style="grid-template-columns: auto 1fr auto;"> <div class="grid-container" style="grid-template-columns: auto 1fr auto;">
<input class="center-text" type="text" name="data.health.value" value="{{data.health.value}}" data-dtype="Number" /> <input class="center-text" type="text" name="data.health.value" value="{{data.health.value}}" data-dtype="Number" />
@@ -34,35 +34,11 @@
<span> / </span> <span> / </span>
<input class="center-text" type="text" name="data.mana.max" value="{{data.mana.max}}" data-dtype="Number" /> <input class="center-text" type="text" name="data.mana.max" value="{{data.mana.max}}" data-dtype="Number" />
</div> </div>
<div class="border grid-container" style="grid-column-gap: 5px; grid-column: 4; grid-row: 2/7; grid-template-columns: 1fr auto;">
<h2 style="margin-bottom: 0; grid-column: 1/3;">{{localize "FEATURES.TITLE"}}</h2>
<input name="data.feature.one.label" class="roll-feature" type="text" value="{{data.feature.one.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.one.value}}active{{/if}}" data-feature="one">
<i class="far {{#if data.feature.one.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<input name="data.feature.two.label" class="roll-feature" type="text" value="{{data.feature.two.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.two.value}}active{{/if}}" data-feature="two">
<i class="far {{#if data.feature.two.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<input name="data.feature.three.label" class="roll-feature" type="text" value="{{data.feature.three.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.three.value}}active{{/if}}" data-feature="three">
<i class="far {{#if data.feature.three.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<input name="data.feature.four.label" class="roll-feature" type="text" value="{{data.feature.four.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.four.value}}active{{/if}}" data-feature="four">
<i class="far {{#if data.feature.four.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
</div>
</div> </div>
<div class="sheet-tabs tabs flex row" data-group="primary"> <div class="sheet-tabs tabs flex row" data-group="primary">
<b class="item" data-tab="main">{{localize "TAB.MAIN"}}</b>
<b class="item" data-tab="skills">{{localize "TAB.SKILLS"}}</b> <b class="item" data-tab="skills">{{localize "TAB.SKILLS"}}</b>
<!-- <b class="item" data-tab="combat">{{localize "TAB.COMBAT"}}</b> -->
<b class="item" data-tab="talent">{{localize "TAB.TALENTS"}}</b> <b class="item" data-tab="talent">{{localize "TAB.TALENTS"}}</b>
<b class="item" data-tab="gear">{{localize "TAB.GEAR"}}</b> <b class="item" data-tab="gear">{{localize "TAB.GEAR"}}</b>
<b class="item" data-tab="bio">{{localize "TAB.BIO"}}</b> <b class="item" data-tab="bio">{{localize "TAB.BIO"}}</b>
@@ -70,14 +46,12 @@
</div> </div>
<div class="sheet-body"> <div class="sheet-body">
<div class="tab" data-group="primary" data-tab="main">
{{> systems/kopparhavet/templates/parts/actor/main.html}}
</div>
<div class="tab" data-group="primary" data-tab="skills"> <div class="tab" data-group="primary" data-tab="skills">
{{> systems/kopparhavet/templates/parts/actor/skills.html}} {{> systems/kopparhavet/templates/parts/actor/skills.html}}
</div> </div>
<!--
<div class="tab" data-group="primary" data-tab="combat">
{{> systems/kopparhavet/templates/parts/actor/combat.html}}
</div>
-->
<div class="tab" data-group="primary" data-tab="talent"> <div class="tab" data-group="primary" data-tab="talent">
{{> systems/kopparhavet/templates/parts/actor/talent.html}} {{> systems/kopparhavet/templates/parts/actor/talent.html}}
</div> </div>

View File

@@ -0,0 +1,51 @@
<form class="{{cssClass}}" autocomplete="off">
<div class="adversary">
<div class="header grid-container" style="grid-template-columns: auto 1fr auto 1fr auto;margin-bottom: 5px">
<div class="avatar flex-group-center" style="grid-row: 1/7;">
<img class="profile-img actor-avatar-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
</div>
<label style="margin: auto;">{{localize "BIO.NAME"}}:</label>
<h1 class="charname" style="margin-bottom: 0;grid-column: 3/6;"><input name="name" type="text" value="{{actor.name}}" placeholder="{{localize "BIO.NAME"}}" /></h1>
<label style="margin: auto;">{{localize data.health.label}}:</label>
<div class="grid-container" style="grid-template-columns: auto 1fr auto;">
<input class="center-text" type="text" name="data.health.value" value="{{data.health.value}}" data-dtype="Number" />
<span> / </span>
<input class="center-text" type="text" name="data.health.max" value="{{data.health.max}}" data-dtype="Number" />
</div>
<label style="margin: auto;">{{localize data.stamina.label}}:</label>
<div class="grid-container" style="grid-template-columns: auto 1fr auto;">
<input class="center-text" type="text" name="data.stamina.value" value="{{data.stamina.value}}" data-dtype="Number" />
<span> / </span>
<input class="center-text" type="text" name="data.stamina.max" value="{{data.stamina.max}}" data-dtype="Number" />
</div>
<label style="margin: auto;">{{localize data.mana.label}}:</label>
<div class="grid-container" style="grid-template-columns: auto 1fr auto;">
<input class="center-text" type="text" name="data.mana.value" value="{{data.mana.value}}" data-dtype="Number" />
<span> / </span>
<input class="center-text" type="text" name="data.mana.max" value="{{data.mana.max}}" data-dtype="Number" />
</div>
</div>
<div class="sheet-tabs tabs flex row" data-group="primary">
<b class="item" data-tab="combat">{{localize "TAB.COMBAT"}}</b>
<b class="item" data-tab="talent">{{localize "TAB.TALENTS"}}</b>
<b class="item" data-tab="note">{{localize "TAB.NOTE"}}</b>
</div>
<div class="sheet-body">
<div class="tab" data-group="primary" data-tab="combat">
{{> systems/kopparhavet/templates/parts/actor/ht-combat.html}}
</div>
<div class="tab" data-group="primary" data-tab="talent">
{{> systems/kopparhavet/templates/parts/actor/talent.html}}
</div>
<div class="tab border note" data-group="primary" data-tab="note" style="height: 100%; border-top: none;">
{{editor content=data.bio.note.value target="data.bio.note.value" button=true owner=owner editable=editable}}
</div>
</div>
</div>
</form>

View File

@@ -0,0 +1,68 @@
<form class="{{cssClass}}" autocomplete="off">
<div class="character">
<div class="header grid-container" style="grid-template-columns: auto auto 1fr auto 1fr; margin-bottom: 10px;">
<div class="avatar flex-group-center" style="grid-row: 1/8;">
<img class="profile-img actor-avatar-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
</div>
<label style="margin: auto;">{{localize "BIO.NAME"}}:</label>
<h1 class="charname" style="margin-bottom: 0; grid-column: 3/6;"><input name="name" type="text" value="{{actor.name}}" placeholder="{{localize "BIO.NAME"}}" /></h1>
<label style="margin: auto;">{{localize data.bio.nickname.label}}:</label>
<input name="data.bio.nickname.value" style="grid-column: 3/6;" type="text" value="{{data.bio.nickname.value}}" placeholder="{{localize data.bio.nickname.label}}" />
<label style="margin: auto;">{{localize data.bio.kin.label}}:</label>
<input name="data.bio.kin.value" type="text" value="{{data.bio.kin.value}}" placeholder="{{localize data.bio.kin.label}}" />
<label style="margin: auto;">{{localize data.bio.profession.label}}:</label>
<input name="data.bio.profession.value" type="text" value="{{data.bio.profession.value}}" placeholder="{{localize data.bio.profession.label}}" />
<label style="margin: auto;">{{localize data.health.label}}:</label>
<div class="grid-container" style="grid-template-columns: auto 1fr auto;">
<input class="center-text" type="text" name="data.health.value" value="{{data.health.value}}" data-dtype="Number" />
<span> / </span>
<input class="center-text" type="text" name="data.health.max" value="{{data.health.max}}" data-dtype="Number" />
</div>
<label style="margin: auto;">{{localize data.stamina.label}}:</label>
<div class="grid-container" style="grid-template-columns: auto 1fr auto;">
<input class="center-text" type="text" name="data.stamina.value" value="{{data.stamina.value}}" data-dtype="Number" />
<span> / </span>
<input class="center-text" type="text" name="data.stamina.max" value="{{data.stamina.max}}" data-dtype="Number" />
</div>
<label style="margin: auto;">{{localize data.mana.label}}:</label>
<div class="grid-container" style="grid-template-columns: auto 1fr auto;">
<input class="center-text" type="text" name="data.mana.value" value="{{data.mana.value}}" data-dtype="Number" />
<span> / </span>
<input class="center-text" type="text" name="data.mana.max" value="{{data.mana.max}}" data-dtype="Number" />
</div>
</div>
<div class="sheet-tabs tabs flex row" data-group="primary">
<b class="item" data-tab="main">{{localize "TAB.MAIN"}}</b>
<b class="item" data-tab="skills">{{localize "TAB.SKILLS"}}</b>
<b class="item" data-tab="talent">{{localize "TAB.TALENTS"}}</b>
<b class="item" data-tab="gear">{{localize "TAB.GEAR"}}</b>
<b class="item" data-tab="note">{{localize "TAB.NOTE"}}</b>
</div>
<div class="sheet-body">
<div class="tab" data-group="primary" data-tab="main">
{{> systems/kopparhavet/templates/parts/actor/ht-main.html}}
</div>
<div class="tab" data-group="primary" data-tab="skills">
{{> systems/kopparhavet/templates/parts/actor/ht-skills.html}}
</div>
<div class="tab" data-group="primary" data-tab="talent">
{{> systems/kopparhavet/templates/parts/actor/talent.html}}
</div>
<div class="tab" data-group="primary" data-tab="gear">
{{> systems/kopparhavet/templates/parts/actor/gear.html}}
</div>
<div class="tab note border" data-group="primary" data-tab="note" style="border-top: none;">
{{editor content=data.bio.note.value target="data.bio.note.value" button=true owner=owner editable=editable}}
</div>
</div>
</div>
</form>

View File

@@ -0,0 +1,3 @@
<form class="{{cssClass}}" autocomplete="off">
<center><h1>Endast tillgängligt till Kopparhavets Hjältar för närvarande</h1></center>
</form>

View File

@@ -0,0 +1,53 @@
<form class="{{cssClass}}" autocomplete="off">
<div class="adversary">
<div class="header grid-container" style="">
<div class="avatar flex-group-center" style="grid-row: 1/7;">
<img class="profile-img actor-avatar-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
</div>
<label style="margin-top: auto; margin-bottom: auto;">{{localize "BIO.NAME"}}:</label>
<h1 class="charname" style="margin-bottom: 0;grid-column: 3/6;"><input name="name" type="text" value="{{actor.name}}" placeholder="{{localize "BIO.NAME"}}" /></h1>
<label style="margin-top: auto; margin-bottom: auto;">{{localize data.class.label}}:</label>
<span class="charname" style="margin-bottom: 0;grid-column: 3/6;"><input name="data.class.value" type="text" value="{{data.class.value}}" placeholder="{{localize data.class.label}}" /></span>
<label style="margin: auto;">{{localize data.operationscost.label}}:</label>
<input class="center-text" type="text" name="data.operationscost.value" value="{{data.operationscost.value}}" data-dtype="Number" />
<label style="margin: auto;">{{localize data.operationssupply.label}}:</label>
<input class="center-text" type="text" name="data.operationssupply.value" value="{{data.operationssupply.value}}" data-dtype="Number" />
<label style="margin: auto;">{{localize data.hull.label}}:</label>
<div class="grid-container" style="grid-template-columns: auto 1fr auto;">
<input class="center-text" type="text" name="data.hull.value" value="{{data.hull.value}}" data-dtype="Number" />
<span style="margin-bottom: auto; margin-top: auto;"> / </span>
<input class="center-text" type="text" name="data.hull.max" value="{{data.hull.max}}" data-dtype="Number" />
</div>
<label style="margin: auto;">{{localize data.cargo.label}}:</label>
<div class="grid-container" style="grid-template-columns: auto 1fr auto;">
<input class="center-text" type="text" name="data.cargo.value" value="{{data.cargo.value}}" data-dtype="Number" />
<span style="margin-bottom: auto; margin-top: auto;"> / </span>
<input class="center-text" type="text" name="data.cargo.max" value="{{data.cargo.max}}" data-dtype="Number" />
</div>
</div>
<div class="sheet-tabs tabs flex row" data-group="primary">
<b class="item" data-tab="main">{{localize "TAB.MAIN"}}</b>
<b class="item" data-tab="combat">{{localize "TAB.ARMAMENT"}}</b>
<b class="item" data-tab="note">{{localize "TAB.NOTE"}}</b>
</div>
<div class="sheet-body">
<div class="tab" data-group="primary" data-tab="main">
{{> systems/kopparhavet/templates/parts/actor/ship-main.html}}
</div>
<div class="tab" data-group="primary" data-tab="combat">
{{> systems/kopparhavet/templates/parts/actor/ship-combat.html}}
</div>
<div class="tab border note" data-group="primary" data-tab="note" style="height: 100%; border-top: none;">
{{editor content=data.bio.note.value target="data.bio.note.value" button=true owner=owner editable=editable}}
</div>
</div>
</div>
</form>

View File

@@ -74,8 +74,7 @@
<strong>{{localize data.cost.label}}:</strong> {{data.cost.value}} <strong>{{localize data.cost.label}}:</strong> {{data.cost.value}}
<strong>{{localize data.difficulty.label}}:</strong> {{rollDifficulty data.difficulty.value}} <strong>{{localize data.difficulty.label}}:</strong> {{rollDifficulty data.difficulty.value}}
<div style="grid-column-start: 1; grid-column-end: 5;"> <div style="grid-column-start: 1; grid-column-end: 5;">
<strong>{{localize data.roll.label}}</strong> <strong>{{localize data.roll.label}}:</strong> {{spellRoll data.roll.value}}
{{data.roll.value}}
</div> </div>
</div> </div>
{{#if data.description}} {{#if data.description}}

View File

@@ -4,6 +4,16 @@
<div class="roll"> <div class="roll">
<div class="dice-roll"> <div class="dice-roll">
{{#if closed}}
<div style="text-align: center; margin-bottom: 0.5rem;">
{{localize "ROLL.CLOSED"}}: {{closed}}
</div>
{{/if}}
{{#if opened}}
<div style="text-align: center; margin-bottom: 0.5rem;">
{{localize "ROLL.OPENED"}}: {{opened}}
</div>
{{/if}}
<div class="dice-result"> <div class="dice-result">
{{#if showFormula}} {{#if showFormula}}
<div class="dice-formula-kh">{{res.formula}}</div> <div class="dice-formula-kh">{{res.formula}}</div>
@@ -13,14 +23,14 @@
</div> </div>
</div> </div>
{{#if success}} {{#if success}}
<div style="text-align: center; width: 100%; font-weight: bold; color: limegreen;"> <h2 style="border: none; text-align: center; width: 100%; font-weight: bold; color: limegreen;">
{{localize "ROLL.SUCCESS"}} {{#if excetional}}{{localize "ROLL.EXCEPTIONAL"}}{{/if}} {{localize "ROLL.SUCCESS"}}
</div> </h2>
{{/if}} {{/if}}
{{#if failure}} {{#if failure}}
<div style="text-align: center; width: 100%; font-weight: bold; color: darkred;"> <h2 style="border: none; text-align: center; width: 100%; font-weight: bold; color: darkred;">
{{localize "ROLL.FAILURE"}} {{#if excetional}}{{localize "ROLL.EXCEPTIONAL"}}{{/if}} {{localize "ROLL.FAILURE"}}
</div> </h2>
{{/if}} {{/if}}
</div> </div>
</div> </div>

View File

@@ -0,0 +1,20 @@
<form class="{{cssClass}} item-sheet-talent" autocomplete="off">
<div class="header">
<div class="avatar flex-group-center" style="grid-row: 1/3;">
<img class="item-avatar-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
</div>
<div class="container flex-group-center item-name">
<h1><input name="name" type="text" value="{{item.name}}" placeholder="{{localize "SHIP.TALENT"}}" /></h1>
</div>
</div>
<div class="item">
<div class="talent-description">
<h2>{{localize data.description.label}}</h2>
<div class="info-mid">
<div class="description">
{{editor content=data.description.value target="data.description.value" button=true owner=owner editable=editable}}
</div>
</div>
</div>
</div>
</form>

View File

@@ -0,0 +1,40 @@
<form class="{{cssClass}}" autocomplete="off">
<div class="header">
<div class="avatar flex-group-center" style="grid-row: 1/3;">
<img class="item-avatar-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
</div>
<div class="container flex-group-center item-name">
<h1><input name="name" type="text" value="{{item.name}}" placeholder="{{localize "ITEM.WEAPON"}}" /></h1>
</div>
</div>
<div class="grid-container" style="grid-template-columns: 1fr 1fr;">
<div class="cost">
<label>{{localize data.price.label}}</label>
<input name="data.price.value" type="text" value="{{data.price.value}}" />
</div>
<div class="rating">
<label>{{localize data.damage.label}}</label>
<input name="data.damage.value" type="text" value="{{data.damage.value}}" />
</div>
<div>
<label>{{localize "ITEM.SKILL"}}</label>
<select class="item-weapon-skill-select" name="data.skill.value">
{{#select data.skill.value}}
{{#each this.khskills as |t|}}
<option value="{{t.name}}">{{t.name}}</option>
{{/each}}
{{/select}}
</select>
</div>
</div>
<div class="item">
<div class="description">
<h2>{{localize data.description.label}}</h2>
<div class="info">
<div class="description">
{{editor content=data.description.value target="data.description.value" button=true owner=owner editable=editable}}
</div>
</div>
</div>
</div>
</form>

View File

@@ -26,7 +26,24 @@
</div> </div>
<div style="grid-column-start: 1; grid-column-end: 3;"> <div style="grid-column-start: 1; grid-column-end: 3;">
<label>{{localize data.roll.label}}</label> <label>{{localize data.roll.label}}</label>
<input name="data.roll.value" type="text" value="{{data.roll.value}}" /> <select class="item-weapon-cat-select" name="data.roll.value">
{{#select data.roll.value}}
<option value="roll">{{localize "SPELL.ROLL"}}</option>
<option value="attackroll">{{localize "SPELL.ATTACKROLL"}}</option>
<option value="opposite">{{localize "SPELL.OPPOSITE"}}</option>
<option value="ritual">{{localize "SPELL.RITUAL"}}</option>
{{/select}}
</select>
</div>
<div style="grid-column-start: 1; grid-column-end: 3;">
<label>{{localize "ITEM.SKILL"}}</label>
<select class="item-weapon-skill-select" name="data.roll.skill">
{{#select data.roll.skill}}
{{#each this.khskills as |t|}}
<option value="{{t.name}}">{{t.name}}</option>
{{/each}}
{{/select}}
</select>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
@@ -39,4 +56,4 @@
</div> </div>
</div> </div>
</div> </div>
</form> </form>

View File

@@ -2,16 +2,16 @@
<div class="combat border"> <div class="combat border">
<ul class="items"> <ul class="items">
<ul class="items-list"> <ul class="items-list">
<li class="item flexrow"> <li class="item-nor flexrow">
<div class="item-name" style="flex-grow: 8;">{{localize "MOD.INIT"}}</div> <div class="item-name" style="flex-grow: 8;">{{localize "MOD.INIT"}}</div>
<div class="item-value" style="flex: none;"><input name="data.combat.init" class="skill-value" type="number" value="{{data.combat.init}}" data-dtype="Number" /></div> <div class="item-value" style="flex: none;"><input name="data.combat.init" class="skill-value" type="number" value="{{data.combat.init}}" data-dtype="Number" /></div>
</li> </li>
<li class="item flexrow"> <li class="item-defence flexrow" data-defence="{{data.combat.defence}}">
<div class="item-name roll-defence rollable" data-defence="{{data.combat.defence}}" style="flex-grow: 8;">{{localize "ADVERSARY.DEFENCE"}}</div> <div class="item-name roll-defence rollable" data-defence="{{data.combat.defence}}" style="flex-grow: 8;">{{localize "ADVERSARY.DEFENCE"}}</div>
<div class="item-value" style="flex: none;"><input name="data.combat.defence" class="skill-value" type="text" value="{{data.combat.defence}}" /></div> <div class="item-value" style="flex: none;"><input name="data.combat.defence" class="skill-value" type="text" value="{{data.combat.defence}}" /></div>
</li> </li>
<li class="item flexrow"> <li class="item-nor flexrow">
<div class="item-name" style="flex-grow: 8;">{{localize "ADVERSARY.HASHELMET"}}</div> <div class="item-name" style="flex-grow: 8;">{{localize "ADVERSARY.HASHELMET"}}</div>
<div style="align-self: flex-end"> <div style="align-self: flex-end">
<a style="margin: auto;" class="adversary-helmet-click {{#if data.combat.helmet}}active{{/if}}"> <a style="margin: auto;" class="adversary-helmet-click {{#if data.combat.helmet}}active{{/if}}">
@@ -20,7 +20,7 @@
</div> </div>
</li> </li>
<li class="item flexrow"> <li class="item-nor flexrow">
<div class="item-name roll-adversary-armor rollable" data-armor="{{data.combat.armor}}" style="flex-grow: 8;">{{localize "ITEM.DEFENCE"}}</div> <div class="item-name roll-adversary-armor rollable" data-armor="{{data.combat.armor}}" style="flex-grow: 8;">{{localize "ITEM.DEFENCE"}}</div>
<div class="item-value" style="flex: none;"><input name="data.combat.armor" class="skill-value" type="text" value="{{data.combat.armor}}" /></div> <div class="item-value" style="flex: none;"><input name="data.combat.armor" class="skill-value" type="text" value="{{data.combat.armor}}" /></div>
</li> </li>
@@ -33,9 +33,12 @@
<ul class="items"> <ul class="items">
<ul class="items-list"> <ul class="items-list">
{{#each actor.skills as |skill key|}} {{#each actor.skills as |skill key|}}
<li class="item flexrow" data-item-id="{{skill._id}}"> <li class="item-skill flexrow" data-item-id="{{skill._id}}">
<div class="item-name roll-skill rollable" style="flex-grow: 8;">{{skill.name}}</div> <div class="item-name roll-skill rollable" style="flex-grow: 8;">{{skill.name}}</div>
<div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div> <div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div>
<div class="item-controls">
<a class="item-control item-delete" data-parent=".item-skill" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li> </li>
{{/each}} {{/each}}
</ul> </ul>
@@ -52,7 +55,7 @@
<ul class="items-list"> <ul class="items-list">
{{#each actor.attacks as |item key|}} {{#each actor.attacks as |item key|}}
<li class="item flexrow" data-item-id="{{item._id}}" data-ability="{{item.data.skill.value}}"> <li class="item-attack flexrow" data-item-id="{{item._id}}" data-ability="{{item.data.skill.value}}">
<div class="item-name">{{item.name}}</div> <div class="item-name">{{item.name}}</div>
<div class="skill-roll"> <div class="skill-roll">
<div class="roll-button"> <div class="roll-button">
@@ -61,12 +64,12 @@
</div> </div>
<div class="skill-roll"> <div class="skill-roll">
<div class="roll-button"> <div class="roll-button">
<div class="roll-damage rollable">{{item.data.damage.value}}</div> <div class="roll-attack-damage rollable">{{item.data.damage.value}}</div>
</div> </div>
</div> </div>
<div class="item-controls"> <div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a> <a class="item-control item-edit" data-parent=".item-attack" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" data-parent=".item-attack" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}

View File

@@ -20,7 +20,7 @@
</li> </li>
<ul class="items-list"> <ul class="items-list">
{{#each actor.weapons as |item id|}} {{#each actor.weapons as |item id|}}
<li class="item flexrow" data-item-id="{{item._id}}" data-ability="{{item.data.skill.value}}"> <li class="item-weapon flexrow" data-item-id="{{item._id}}" data-ability="{{item.data.skill.value}}">
<div class="item-name">{{item.name}}</div> <div class="item-name">{{item.name}}</div>
<div> <div>
{{#if item.data.equipable.equipped}} {{#if item.data.equipable.equipped}}
@@ -40,8 +40,8 @@
</div> </div>
</div> </div>
<div class="item-controls"> <div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a> <a class="item-control item-edit" data-parent=".item-weapon" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" data-parent=".item-weapon" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}
@@ -79,8 +79,8 @@
</div> </div>
{{/if}} {{/if}}
<div class="item-controls"> <div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a> <a class="item-control item-edit" data-parent=".item" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" data-parent=".item" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}
@@ -105,8 +105,8 @@
<div class="quantity decrease"><i class="far fa-minus-square"></i></div> <div class="quantity decrease"><i class="far fa-minus-square"></i></div>
</div> </div>
<div class="item-controls"> <div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a> <a class="item-control item-edit" data-parent=".item" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" data-parent=".item" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}

View File

@@ -0,0 +1,71 @@
<div class="border grid-container" style="height: 100%; border-top: none; grid-template-columns: 1fr 1fr; grid-template-rows: auto 1fr;">
<div class="combat border">
<ul class="items">
<ul class="items-list">
<li class="item-nor flexrow">
<div class="item-name" style="flex-grow: 8;">{{localize "MOD.INIT"}}</div>
<div class="item-value" style="flex: none;"><input name="data.combat.init" class="skill-value" type="number" value="{{data.combat.init}}" data-dtype="Number" /></div>
</li>
<li class="item-defence flexrow" data-defence="{{data.combat.defence}}">
<div class="item-name roll-defence rollable" data-defence="{{data.combat.defence}}" style="flex-grow: 8;">{{localize "ADVERSARY.DEFENCE"}}</div>
<div class="item-value" style="flex: none;"><input name="data.combat.defence" class="skill-value" type="text" value="{{data.combat.defence}}" /></div>
</li>
<li class="item-nor flexrow">
<div class="item-name roll-adversary-armor rollable" data-armor="{{data.combat.armor}}" style="flex-grow: 8;">{{localize "ITEM.DEFENCE"}}</div>
<div class="item-value" style="flex: none;"><input name="data.combat.armor" class="skill-value" type="text" value="{{data.combat.armor}}" /></div>
</li>
</ul>
</ul>
</div>
<div class="talents border" style="grid-row: 1/3; grid-column-start: 2;">
<h1 style="margin-bottom: 0; grid-column: 1/4;">{{localize "TAB.SKILLS"}}</h1>
<ul class="items">
<ul class="items-list">
{{#each actor.skills as |skill key|}}
<li class="item-skill flexrow" data-item-id="{{skill._id}}">
<div class="item-name roll-skill rollable" style="flex-grow: 8;">{{skill.name}}</div>
<div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div>
<div class="item-controls">
<a class="item-control item-delete" data-parent=".item-skill" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</ul>
</div>
<div class="attacks border">
<ul class="items">
<li class="items-header flexrow">
<div class="header-name">{{localize "ITEM.ATTACK"}}</div>
<div class="">{{localize "ITEM.SKILL"}}</div>
<div>{{localize "ITEM.DAMAGE"}}</div>
<div></div>
</li>
<ul class="items-list">
{{#each actor.attacks as |item key|}}
<li class="item-attack flexrow" data-item-id="{{item._id}}" data-ability="{{item.data.skill.value}}">
<div class="item-name">{{item.name}}</div>
<div class="skill-roll">
<div class="roll-button">
<div class="roll-adversary-attack rollable">{{item.data.skill.value}}</div>
</div>
</div>
<div class="skill-roll">
<div class="roll-button">
<div class="roll-attack-damage rollable">{{item.data.damage.value}}</div>
</div>
</div>
<div class="item-controls">
<a class="item-control item-edit" data-parent=".item-attack" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" data-parent=".item-attack" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</ul>
</div>
</div>

View File

@@ -0,0 +1,99 @@
<div class="bio-tab border scroll-y" style="height: 100%; border-top: none;">
<div class="grid-container" style="height: fit-content; border-top: none; grid-template-rows: 1fr auto auto; grid-template-columns: 1fr 1fr;">
<div class="border grid-container" style="height: 100%; grid-row: 1/4; grid-template-rows: auto 1fr; height: fit-content; min-height: 200px;">
<h2 style="margin-bottom: 0;">{{localize data.bio.appearance.label}}</h2>
<div class="description">
{{editor content=data.bio.appearance.value target="data.bio.appearance.value" button=true owner=owner editable=editable}}
</div>
</div>
<div class="border grid-container" style="grid-column-gap: 5px; grid-template-columns: 1fr auto; max-height: 163px;">
<h2 style="margin-bottom: 0; grid-column: 1/3;">{{localize "HT.FEATURES.TITLE"}}</h2>
<input name="data.feature.one.label" class="roll-feature" type="text" value="{{data.feature.one.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.one.value}}active{{/if}}" data-feature="one">
<i class="far {{#if data.feature.one.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<input name="data.feature.two.label" class="roll-feature" type="text" value="{{data.feature.two.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.two.value}}active{{/if}}" data-feature="two">
<i class="far {{#if data.feature.two.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<input name="data.feature.three.label" class="roll-feature" type="text" value="{{data.feature.three.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.three.value}}active{{/if}}" data-feature="three">
<i class="far {{#if data.feature.three.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<input name="data.feature.four.label" class="roll-feature" type="text" value="{{data.feature.four.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.four.value}}active{{/if}}" data-feature="four">
<i class="far {{#if data.feature.four.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
</div>
<div class="border">
<header class="relation-header" >
<h2 class="grid-container" style="margin-bottom: 0; grid-template-columns: 2fr 1fr auto;">
{{localize "HT.RELATIONSHIP.TITLE"}}
<div></div>
<a class="relation-control" data-action="create"><i class="fas fa-plus"></i></a>
</h2>
</header>
<ol class="relation-list" style="padding: 0;">
{{#each data.relationships as |attr key|}}
<li class="relation grid-container" style="grid-template-columns: 2fr auto auto;" data-attribute="{{key}}">
<input class="relation-key" type="text" name="data.relationships.{{key}}.key" value="{{key}}" style="display: none;" />
<input class="relation-value" type="text" name="data.relationships.{{key}}.value" value="{{attr.value}}" />
<a style="margin: auto 10px;" class="relation-click {{#if attr.check}}active{{/if}}">
<i class="far {{#if attr.check}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a style="margin: auto;" class="relation-control" data-action="delete"><i class="fas fa-trash"></i></a>
</li>
{{/each}}
</ol>
</div>
<div class="border">
<header class="learning-header" >
<h2 class="grid-container" style="margin-bottom: 0; grid-template-columns: 2fr 1fr auto;">
{{localize "LEARNING.TITLE"}}
<div></div>
<a class="learning-control" data-action="create"><i class="fas fa-plus"></i></a>
</h2>
</header>
<ol class="learning-list" style="padding: 0;">
{{#each data.learning as |attr key|}}
<li class="learning grid-container" style="grid-template-columns: 2fr auto auto;" data-attribute="{{key}}">
<input class="learning-key" type="text" name="data.learning.{{key}}.key" value="{{key}}" style="display: none;" />
<input style="margin-top: auto; margin-bottom: auto;" class="learning-value" type="text" name="data.learning.{{key}}.value" value="{{attr.value}}" />
<div class="grid-container" style="margin: auto 10px; grid-template-rows: auto auto; grid-template-columns: auto auto auto auto;">
<a data-num="one" class="learning-click {{#if attr.one}}active{{/if}}">
<i class="far {{#if attr.one}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="two" class="learning-click {{#if attr.two}}active{{/if}}">
<i class="far {{#if attr.two}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="three" class="learning-click {{#if attr.three}}active{{/if}}">
<i class="far {{#if attr.three}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="four" class="learning-click {{#if attr.four}}active{{/if}}">
<i class="far {{#if attr.four}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="five" class="learning-click {{#if attr.five}}active{{/if}}">
<i class="far {{#if attr.five}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="six" class="learning-click {{#if attr.six}}active{{/if}}">
<i class="far {{#if attr.six}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="seven" class="learning-click {{#if attr.seven}}active{{/if}}">
<i class="far {{#if attr.seven}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="eight" class="learning-click {{#if attr.eight}}active{{/if}}">
<i class="far {{#if attr.eight}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
</div>
<a style="margin: auto;" class="learning-control" data-action="delete"><i class="fas fa-trash"></i></a>
</li>
{{/each}}
</ol>
</div>
</div>
</div>

View File

@@ -0,0 +1,46 @@
<div class="skills-tab border scroll-y grid-container" style="grid-template-columns: 1fr 1fr; border-top: none;">
<div class="skills border" style="grid-column: 2; grid-row: 1/5;">
<h1 style="margin-bottom: 0; grid-column: 1/4;">{{localize "SKILL.ADVENTURE"}}</h1>
<ul class="items">
<ul class="items-list">
{{#each actor.skills as |skill key|}}
{{#if skill.hasAdventure}}
<li class="item-skill flexrow" data-item-id="{{skill._id}}">
<div class="item-name roll-skill rollable" style="flex-grow: 8;">{{skill.name}}</div>
<div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div>
<div style="align-self: flex-end; margin-top: auto; margin-bottom: auto;">
<a style="margin: auto;" class="click-skill {{#if skill.data.used}}active{{/if}}" data-item-id="{{skill._id}}">
<i class="far {{#if skill.data.used}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
</div>
</li>
{{/if}}
{{/each}}
</ul>
</ul>
</div>
<div class="skills border">
<h1 style="margin-bottom: 0; grid-column: 1/4;">{{localize "SKILL.COMBAT"}}</h1>
<ul class="items">
<ul class="items-list">
{{#each actor.skills as |skill key|}}
{{#if skill.hasCombat}}
<li class="item-skill flexrow" data-item-id="{{skill._id}}">
<div class="item-name roll-skill rollable" style="flex-grow: 8;">{{skill.name}}</div>
<div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div>
<div style="align-self: flex-end; margin-top: auto; margin-bottom: auto;">
<a style="margin: auto;" class="click-skill {{#if skill.data.used}}active{{/if}}" data-item-id="{{skill._id}}">
<i class="far {{#if skill.data.used}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
</div>
</li>
{{/if}}
{{/each}}
</ul>
</ul>
</div>
<div class="skills border grid-container" style="grid-column-gap: 5px; grid-template-columns: 1fr;">
<h1 style="grid-column: unset;">{{localize data.languages.label}}</h1>
<input name="data.languages.value" type="text" value="{{data.languages.value}}" />
</div>
</div>

View File

@@ -0,0 +1,78 @@
<div class="bio-tab border scroll-y" style="height: 100%; border-top: none;">
<div class="grid-container" style="height: fit-content; border-top: none; grid-template-rows: 1fr auto; grid-template-columns: 1fr 1fr;">
<div class="border grid-container" style="height: 100%; grid-row: 1/4; grid-template-rows: auto 1fr; height: fit-content; min-height: 200px;">
<h2 style="margin-bottom: 0;">{{localize data.bio.appearance.label}}</h2>
<div class="description">
{{editor content=data.bio.appearance.value target="data.bio.appearance.value" button=true owner=owner editable=editable}}
</div>
</div>
<div class="border grid-container" style="grid-column-gap: 5px; grid-template-columns: 1fr auto; max-height: 163px;">
<h2 style="margin-bottom: 0; grid-column: 1/3;">{{localize "FEATURES.TITLE"}}</h2>
<input name="data.feature.one.label" class="roll-feature" type="text" value="{{data.feature.one.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.one.value}}active{{/if}}" data-feature="one">
<i class="far {{#if data.feature.one.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<input name="data.feature.two.label" class="roll-feature" type="text" value="{{data.feature.two.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.two.value}}active{{/if}}" data-feature="two">
<i class="far {{#if data.feature.two.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<input name="data.feature.three.label" class="roll-feature" type="text" value="{{data.feature.three.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.three.value}}active{{/if}}" data-feature="three">
<i class="far {{#if data.feature.three.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<input name="data.feature.four.label" class="roll-feature" type="text" value="{{data.feature.four.label}}" />
<a style="margin: auto;" class="feature {{#if data.feature.four.value}}active{{/if}}" data-feature="four">
<i class="far {{#if data.feature.four.value}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
</div>
<div class="border">
<header class="learning-header" >
<h2 class="grid-container" style="margin-bottom: 0; grid-template-columns: 2fr 1fr auto;">
{{localize "LEARNING.TITLE"}}
<div></div>
<a class="learning-control" data-action="create"><i class="fas fa-plus"></i></a>
</h2>
</header>
<ol class="learning-list" style="padding: 0;">
{{#each data.learning as |attr key|}}
<li class="learning grid-container" style="grid-template-columns: 2fr auto auto;" data-attribute="{{key}}">
<input class="learning-key" type="text" name="data.learning.{{key}}.key" value="{{key}}" style="display: none;" />
<input style="margin-top: auto; margin-bottom: auto;" class="learning-value" type="text" name="data.learning.{{key}}.value" value="{{attr.value}}" />
<div class="grid-container" style="margin: auto 10px; grid-template-rows: auto auto; grid-template-columns: auto auto auto auto;">
<a data-num="one" class="learning-click {{#if attr.one}}active{{/if}}">
<i class="far {{#if attr.one}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="two" class="learning-click {{#if attr.two}}active{{/if}}">
<i class="far {{#if attr.two}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="three" class="learning-click {{#if attr.three}}active{{/if}}">
<i class="far {{#if attr.three}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="four" class="learning-click {{#if attr.four}}active{{/if}}">
<i class="far {{#if attr.four}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="five" class="learning-click {{#if attr.five}}active{{/if}}">
<i class="far {{#if attr.five}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="six" class="learning-click {{#if attr.six}}active{{/if}}">
<i class="far {{#if attr.six}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="seven" class="learning-click {{#if attr.seven}}active{{/if}}">
<i class="far {{#if attr.seven}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
<a data-num="eight" class="learning-click {{#if attr.eight}}active{{/if}}">
<i class="far {{#if attr.eight}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a>
</div>
<a style="margin: auto;" class="learning-control" data-action="delete"><i class="fas fa-trash"></i></a>
</li>
{{/each}}
</ol>
</div>
</div>
</div>

View File

@@ -0,0 +1,37 @@
WEAPONS
<div class="bio-tab border scroll-y" style="height: 100%; border-top: none;">
<div class="grid-container" style="height: fit-content; border-top: none; grid-template-rows: 1fr auto; grid-template-columns: 1fr 1fr;">
<div class="border grid-container" style="grid-column-gap: 5px; grid-template-columns: auto 1fr; max-height: 163px; height: fit-content;">
<label style="margin-top: auto; margin-bottom: auto;">{{localize data.rammingdmg.label}}:</label>
<input style="text-align: center;" name="data.rammingdmg.value" type="text" value="{{data.rammingdmg.value}}" placeholder="{{localize data.rammingdmg.label}}" />
</div>
<div class="spells border">
<ul class="items">
<li class="items-header flexrow">
<div class="header-name">{{localize "SHIP.ARMAMENT"}}</div>
<div>{{localize "ITEM.DAMAGE"}}</div>
<div></div>
</li>
<ul class="items-list">
{{#each actor.shipweapons as |item id|}}
<li class="item-weapon flexrow" data-item-id="{{item._id}}" data-ability="{{item.data.skill.value}}">
<div class="item-name">{{item.name}}</div>
<div class="skill-roll">
<div class="roll-button">
<div class="roll-damage rollable">{{item.data.damage.value}}</div>
</div>
</div>
<div class="item-controls">
<a class="item-control item-edit" data-parent=".item-weapon" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" data-parent=".item-weapon" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</ul>
</div>
</div>
</div>

View File

@@ -0,0 +1,34 @@
<div class="bio-tab border scroll-y" style="height: 100%; border-top: none;">
<div class="grid-container" style="height: fit-content; border-top: none; grid-template-rows: auto auto; grid-template-columns: 1fr 1fr;">
<div class="border grid-container" style="height: 100%; grid-row: 1/4; grid-template-rows: auto 1fr; height: fit-content; min-height: 200px;">
<h2 style="margin-bottom: 0;">{{localize data.description.label}}</h2>
<div class="description">
{{editor content=data.description.value target="data.description.value" button=true owner=owner editable=editable}}
</div>
</div>
<div class="border grid-container" style="grid-column-gap: 5px; grid-template-columns: 1fr auto; max-height: 163px; height: fit-content;">
<label style="margin-top: auto; margin-bottom: auto;">{{localize data.crew.label}}:</label>
<input name="data.crew.value" style="text-align: center;" type="text" value="{{data.crew.value}}" placeholder="{{localize data.crew.label}}" />
</div>
<div class="spells border">
<h1 class="item-list-header">{{localize "ITEM.TALENT"}}</h1>
<div class="scroll-y" style="height: calc(100% - 20px);">
<ul class="items">
<ul class="items-list">
{{#each actor.shiptalents as |talent key|}}
<li class="item flexrow" data-item-id="{{talent._id}}">
<div class="item-name">{{talent.name}}</div>
<div class="item-controls">
<a class="item-control item-edit" data-parent=".item" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" data-parent=".item" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</ul>
</div>
</div>
</div>
</div>

View File

@@ -5,10 +5,10 @@
<ul class="items-list"> <ul class="items-list">
{{#each actor.skills as |skill key|}} {{#each actor.skills as |skill key|}}
{{#if skill.hasBase}} {{#if skill.hasBase}}
<li class="item flexrow" data-item-id="{{skill._id}}"> <li class="item-skill flexrow" data-item-id="{{skill._id}}">
<div class="item-name roll-skill" style="flex-grow: 8;">{{skill.name}}</div> <div class="item-name roll-skill rollable" style="flex-grow: 8;">{{skill.name}}</div>
<div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div> <div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div>
<div style="align-self: flex-end"> <div style="align-self: flex-end; margin-top: auto; margin-bottom: auto;">
<a style="margin: auto;" class="click-skill {{#if skill.data.used}}active{{/if}}" data-item-id="{{skill._id}}"> <a style="margin: auto;" class="click-skill {{#if skill.data.used}}active{{/if}}" data-item-id="{{skill._id}}">
<i class="far {{#if skill.data.used}}fa-times-circle{{else}}fa-circle{{/if}}"></i> <i class="far {{#if skill.data.used}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a> </a>
@@ -25,10 +25,10 @@
<ul class="items-list"> <ul class="items-list">
{{#each actor.skills as |skill key|}} {{#each actor.skills as |skill key|}}
{{#if skill.hasAdventure}} {{#if skill.hasAdventure}}
<li class="item flexrow" data-item-id="{{skill._id}}"> <li class="item-skill flexrow" data-item-id="{{skill._id}}">
<div class="item-name roll-skill" style="flex-grow: 8;">{{skill.name}}</div> <div class="item-name roll-skill rollable" style="flex-grow: 8;">{{skill.name}}</div>
<div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div> <div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div>
<div style="align-self: flex-end"> <div style="align-self: flex-end; margin-top: auto; margin-bottom: auto;">
<a style="margin: auto;" class="click-skill {{#if skill.data.used}}active{{/if}}" data-item-id="{{skill._id}}"> <a style="margin: auto;" class="click-skill {{#if skill.data.used}}active{{/if}}" data-item-id="{{skill._id}}">
<i class="far {{#if skill.data.used}}fa-times-circle{{else}}fa-circle{{/if}}"></i> <i class="far {{#if skill.data.used}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a> </a>
@@ -45,10 +45,10 @@
<ul class="items-list"> <ul class="items-list">
{{#each actor.skills as |skill key|}} {{#each actor.skills as |skill key|}}
{{#if skill.hasCombat}} {{#if skill.hasCombat}}
<li class="item flexrow" data-item-id="{{skill._id}}"> <li class="item-skill flexrow" data-item-id="{{skill._id}}">
<div class="item-name roll-skill" style="flex-grow: 8;">{{skill.name}}</div> <div class="item-name roll-skill rollable" style="flex-grow: 8;">{{skill.name}}</div>
<div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div> <div class="item-value" style="flex: none;"><input class="skill-value" type="number" value="{{skill.data.value}}" min="0" data-item-id="{{skill._id}}" data-dtype="Number" /></div>
<div style="align-self: flex-end"> <div style="align-self: flex-end; margin-top: auto; margin-bottom: auto;">
<a style="margin: auto;" class="click-skill {{#if skill.data.used}}active{{/if}}" data-item-id="{{skill._id}}"> <a style="margin: auto;" class="click-skill {{#if skill.data.used}}active{{/if}}" data-item-id="{{skill._id}}">
<i class="far {{#if skill.data.used}}fa-times-circle{{else}}fa-circle{{/if}}"></i> <i class="far {{#if skill.data.used}}fa-times-circle{{else}}fa-circle{{/if}}"></i>
</a> </a>

View File

@@ -9,8 +9,8 @@
<li class="item flexrow" data-item-id="{{talent._id}}"> <li class="item flexrow" data-item-id="{{talent._id}}">
<div class="item-name">{{talent.name}}</div> <div class="item-name">{{talent.name}}</div>
<div class="item-controls"> <div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a> <a class="item-control item-edit" data-parent=".item" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" data-parent=".item" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}
@@ -25,13 +25,13 @@
<ul class="items"> <ul class="items">
<ul class="items-list"> <ul class="items-list">
{{#each actor.spells as |spell key|}} {{#each actor.spells as |spell key|}}
<li class="item flexrow" data-item-id="{{spell._id}}"> <li class="item-spell flexrow" data-item-id="{{spell._id}}">
<div class="item-name">{{spell.name}}</div> <div class="item-name roll-spell-skill rollable" style="margin-top: auto; margin-bottom: auto;">{{spell.name}}</div>
<div class="cost roll-spell-cost rollable">{{spell.data.cost.value}}</div> <div class="cost roll-spell-cost rollable">{{spell.data.cost.value}}</div>
<div class="difficulty">{{rollDifficulty spell.data.difficulty.value}}</div> <div class="difficulty">{{rollDifficulty spell.data.difficulty.value}}</div>
<div class="item-controls"> <div class="item-controls">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a> <a class="item-control item-edit" data-parent=".item-spell" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" data-parent=".item-spell" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}

View File

@@ -0,0 +1,55 @@
<div id="{{id}}" class="roll-dialog">
<h1 style="text-align: center;">{{localize skillName}} ({{skillValue}})</h1>
<div class="flexrow" style="margin-bottom: 10px;">
<label style="margin: auto;">{{localize "ROLL.OPENCLOSE"}}</label>
<input type="button" name="openclosed" min="0" value="{{startopen}}" style="min-height: 30px; min-width: 45px;" />
<label name="notopenedorclosed" style="margin: auto; display: inline-block;">&nbsp;</label>
<label name="closed" style="margin: auto; display: none; text-align: center;">{{localize "ROLL.CLOSED"}}</label>
<label name="opened" style="margin: auto; display: none; text-align: center;">{{localize "ROLL.OPENED"}}</label>
</div>
</div>
<script>
(function() {
const scope = document.getElementById("{{{id}}}");
const input = scope.querySelector(`[name="openclosed"`);
const closed = scope.querySelector(`[name="closed"`);
const opened = scope.querySelector(`[name="opened"`);
const none = scope.querySelector(`[name="notopenedorclosed"`);
input.addEventListener("click", (event) => {
event.target.value++;
if(event.target.value > 0) {
closed.style.display = "none"
none.style.display = "none"
opened.style.display = "inline-block"
} else if(event.target.value < 0) {
opened.style.display = "none"
none.style.display = "none"
closed.style.display = "inline-block"
} else {
opened.style.display = "none"
closed.style.display = "none"
none.style.display = "inline-block"
}
});
input.addEventListener("contextmenu", (event) => {
event.target.value--;
if(event.target.value > 0) {
closed.style.display = "none"
none.style.display = "none"
opened.style.display = "inline-block"
} else if(event.target.value < 0) {
opened.style.display = "none"
none.style.display = "none"
closed.style.display = "inline-block"
} else {
opened.style.display = "none"
closed.style.display = "none"
none.style.display = "inline-block"
}
});
})();
</script>