Merge pull request #7591 from nmbradley/nb-wfrp-v1.0.1
WFRP4E Official Sheet - v1.0.1
This commit is contained in:
@@ -334,7 +334,7 @@ const wfrpDragAndDrop = ( () => {
|
||||
|
||||
let name = trait;
|
||||
let damage = "";
|
||||
let type = "Melee";
|
||||
let type = "Weapon Skill";
|
||||
let range = "Touch";
|
||||
let attacks = "1";
|
||||
|
||||
@@ -343,7 +343,7 @@ const wfrpDragAndDrop = ( () => {
|
||||
if (trait.match(/range/gi) && trait.match(/\(/)) {
|
||||
[trait, range] = trait.split("(");
|
||||
range = range.substr(0,range.length-1);
|
||||
type = "Ranged";
|
||||
type = "Ballistic Skill";
|
||||
}
|
||||
|
||||
if (trait.match(/[0-9]+X/)) {
|
||||
@@ -458,13 +458,13 @@ const wfrpDragAndDrop = ( () => {
|
||||
|
||||
const trait = compendium_pages;
|
||||
|
||||
if (trait.name.match(/(weapon|ranged|tentacle|bite|horn|tail|tongue)/gi)) {
|
||||
if (trait.name.match(/(weapon|ranged|tentacle|bite|horn|tail|tongue|claw)/gi)) {
|
||||
|
||||
const attack = parseAttack(name, trait.data.Description);
|
||||
|
||||
updateAttrs = {...updateAttrs, ...attack};
|
||||
|
||||
} else {
|
||||
} else if (trait) {
|
||||
const repeating_id = generateRowID();
|
||||
const row = `repeating_traits_${repeating_id}`;
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ const wfrpModule = ( () => {
|
||||
"fencing",
|
||||
"flail",
|
||||
"parry",
|
||||
"pole-arm",
|
||||
"polearm",
|
||||
"two-handed",
|
||||
"blackpowder",
|
||||
"bow",
|
||||
@@ -381,26 +381,38 @@ const wfrpModule = ( () => {
|
||||
// Characteristic Functions
|
||||
|
||||
const calculateCharacteristic = (characteristic) => {
|
||||
|
||||
getAttrs(["npc"], check => {
|
||||
|
||||
if (check["npc"] === "on") return;
|
||||
|
||||
const attrs = [
|
||||
`${characteristic}_initial`,
|
||||
`${characteristic}_advances`,
|
||||
`${characteristic}_modifier`,
|
||||
`${characteristic}_custom_mod`,
|
||||
`${characteristic}_bonusmod`,
|
||||
];
|
||||
const attrs = [
|
||||
`npc`,
|
||||
`${characteristic}`,
|
||||
`${characteristic}_initial`,
|
||||
`${characteristic}_advances`,
|
||||
`${characteristic}_modifier`,
|
||||
`${characteristic}_custom_mod`,
|
||||
`${characteristic}_bonusmod`,
|
||||
];
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const base = parseInt(values[`${characteristic}`]) || 0;
|
||||
const initial = parseInt(values[`${characteristic}_initial`]) || 0;
|
||||
const advances = parseInt(values[`${characteristic}_advances`]) || 0;
|
||||
const modifier = parseInt(values[`${characteristic}_modifier`]) || 0;
|
||||
const custom_mod = parseInt(values[`${characteristic}_custom_mod`]) || 0;
|
||||
const bonusmod = parseInt(values[`${characteristic}_bonusmod`]) || 0;
|
||||
|
||||
if (values["npc"] === "on") {
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const initial = parseInt(values[`${characteristic}_initial`]) || 0;
|
||||
const advances = parseInt(values[`${characteristic}_advances`]) || 0;
|
||||
const modifier = parseInt(values[`${characteristic}_modifier`]) || 0;
|
||||
const custom_mod = parseInt(values[`${characteristic}_custom_mod`]) || 0;
|
||||
const bonusmod = parseInt(values[`${characteristic}_bonusmod`]) || 0;
|
||||
const updateAttrs = {};
|
||||
|
||||
const bonus = Math.floor(base / 10) + bonusmod;
|
||||
|
||||
updateAttrs[`${characteristic}_bonus`] = bonus;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
|
||||
return;
|
||||
} else {
|
||||
|
||||
const current = initial + advances + modifier + custom_mod;
|
||||
|
||||
const bonus = Math.floor(current / 10) + bonusmod;
|
||||
@@ -411,8 +423,8 @@ const wfrpModule = ( () => {
|
||||
updateAttrs[`${characteristic}_bonus`] = bonus;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
@@ -514,35 +526,41 @@ const wfrpModule = ( () => {
|
||||
}
|
||||
|
||||
const calculateSpecialisation = (specialisation) => {
|
||||
|
||||
getAttrs(["npc"], check => {
|
||||
|
||||
if (check["npc"] === "on") return;
|
||||
|
||||
const attrs = [
|
||||
`${specialisation}_characteristic`
|
||||
];
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const base = values[`${specialisation}_characteristic`];
|
||||
|
||||
const attrs = [
|
||||
`${base}`,
|
||||
`${specialisation}_advances`,
|
||||
`${specialisation}_modifier`,
|
||||
`${specialisation}_bonus`
|
||||
`${specialisation}_characteristic`,
|
||||
`npc`
|
||||
];
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const characteristic = parseInt(values[`${base}`]) || 0;
|
||||
const advances = parseInt(values[`${specialisation}_advances`]) || 0;
|
||||
const modifier = parseInt(values[`${specialisation}_modifier`]) || 0;
|
||||
const bonus = parseInt(values[`${specialisation}_bonus`]) || 0;
|
||||
const base = values[`${specialisation}_characteristic`];
|
||||
|
||||
const total = characteristic + advances + modifier + bonus;
|
||||
const attrs = [
|
||||
`${base}`,
|
||||
`${specialisation}_advances`,
|
||||
`${specialisation}_modifier`,
|
||||
`${specialisation}_bonus`
|
||||
];
|
||||
|
||||
const updateAttrs = {};
|
||||
getAttrs(attrs, values => {
|
||||
const characteristic = parseInt(values[`${base}`]) || 0;
|
||||
const advances = parseInt(values[`${specialisation}_advances`]) || 0;
|
||||
const modifier = parseInt(values[`${specialisation}_modifier`]) || 0;
|
||||
const bonus = parseInt(values[`${specialisation}_bonus`]) || 0;
|
||||
|
||||
updateAttrs[`${specialisation}`] = total;
|
||||
const total = characteristic + advances + modifier + bonus;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
const updateAttrs = {};
|
||||
|
||||
updateAttrs[`${specialisation}`] = total;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -1235,7 +1253,7 @@ const wfrpModule = ( () => {
|
||||
}
|
||||
|
||||
const calculateMaxEncumbrance = () => {
|
||||
const attrs = ["strength_bonus", "toughness_bonus", "encumbrance_bonus"];
|
||||
const attrs = ["strength_bonus", "toughness_bonus", "encumbrance_bonus", "encumbrance_mod"];
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const strength_bonus = parseInt(values["strength_bonus"]) || 0;
|
||||
@@ -1297,10 +1315,10 @@ const wfrpModule = ( () => {
|
||||
trappings_array.forEach(id => {
|
||||
const enc = parseInt(values[`repeating_trappings_${id}_trappings_enc`]) || 0;
|
||||
const amount = parseInt(values[`repeating_trappings_${id}_trappings_amount`]) || 1;
|
||||
const worn = parseInt(values[`repeating_trappings_${id}_trappings_worn`]) || false;
|
||||
const worn = values[`repeating_trappings_${id}_trappings_worn`] || false;
|
||||
const inenc = values[`repeating_trappings_${id}_trappings_inenc`] || "0";
|
||||
|
||||
const total = (worn === "on") ? (enc -1) * amount : enc * amount;
|
||||
const total = (worn === "on") ? (enc - 1) * amount : enc * amount;
|
||||
|
||||
if (inenc === "on") total_enc += total;
|
||||
});
|
||||
@@ -1476,21 +1494,48 @@ const wfrpModule = ( () => {
|
||||
|
||||
const request = [
|
||||
`${repeating_id}_attack_type`,
|
||||
`weapon_skill`,
|
||||
`ballistic_skill`
|
||||
"weapon_skill",
|
||||
"ballistic_skill",
|
||||
"basic",
|
||||
"brawling",
|
||||
"cavalry",
|
||||
"fencing",
|
||||
"flail",
|
||||
"parry",
|
||||
"polearm",
|
||||
"two-handed",
|
||||
"blackpowder",
|
||||
"bow",
|
||||
"crossbow",
|
||||
"engineering",
|
||||
"entangling",
|
||||
"explosives",
|
||||
"sling",
|
||||
"throwing"
|
||||
];
|
||||
|
||||
getAttrs(request, values => {
|
||||
const {
|
||||
[`${repeating_id}_attack_type`]:type,
|
||||
weapon_skill,
|
||||
ballistic_skill
|
||||
} = values;
|
||||
const type = values[`${repeating_id}_attack_type`];
|
||||
|
||||
if (type.toLowerCase() === "weapon skill") {
|
||||
setAttrs({[`${repeating_id}_attack_target`]:weapon_skill});
|
||||
} else {
|
||||
setAttrs({[`${repeating_id}_attack_target`]:ballistic_skill});
|
||||
if (type.toLowerCase() === "custom") {
|
||||
setAttrs({[`${repeating_id}_attack_target`]:0});
|
||||
} else {
|
||||
const type_parsed = (!type.match(/\(/)) ? type.replace(/ /, "_")
|
||||
.toLowerCase() :
|
||||
type.split("(")[1]
|
||||
.replace(/\)/g, "")
|
||||
.replace(/ /, "_")
|
||||
.toLowerCase();
|
||||
|
||||
const value = values[type_parsed];
|
||||
|
||||
const update = {};
|
||||
|
||||
update[`${repeating_id}_attack_target`] = value;
|
||||
|
||||
console.log(update)
|
||||
|
||||
setAttrs(update);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1500,7 +1545,23 @@ const wfrpModule = ( () => {
|
||||
getSectionIDs("attacks", ids => {
|
||||
const attrs = [
|
||||
"weapon_skill",
|
||||
"ballistic_skill"
|
||||
"ballistic_skill",
|
||||
"basic",
|
||||
"brawling",
|
||||
"cavalry",
|
||||
"fencing",
|
||||
"flail",
|
||||
"parry",
|
||||
"polearm",
|
||||
"two-handed",
|
||||
"blackpowder",
|
||||
"bow",
|
||||
"crossbow",
|
||||
"engineering",
|
||||
"entangling",
|
||||
"explosives",
|
||||
"sling",
|
||||
"throwing"
|
||||
];
|
||||
|
||||
for (const id of ids) {
|
||||
@@ -1510,14 +1571,18 @@ const wfrpModule = ( () => {
|
||||
getAttrs(attrs, values => {
|
||||
const update = [];
|
||||
|
||||
const {weapon_skill, ballistic_skill} = values;
|
||||
|
||||
for (const id of ids) {
|
||||
const type = values[`repeating_attacks_${id}_attack_type`].toLowerCase();
|
||||
const type = values[`repeating_attacks_${id}_attack_type`].toLowerCase();
|
||||
const type_parsed = (!type.match(/\(/)) ? type.replace(/ /, "_")
|
||||
.toLowerCase() :
|
||||
type.split("(")[1]
|
||||
.replace(/\)/g, "")
|
||||
.replace(/ /, "_")
|
||||
.toLowerCase();
|
||||
const target = `repeating_attacks_${id}_attack_target`;
|
||||
|
||||
if (type === "ranged") update[target] = ballistic_skill;
|
||||
if (type === "melee") update[target] = weapon_skill;
|
||||
if (type_parsed === "custom") return;
|
||||
else update[target] = values[type_parsed];
|
||||
}
|
||||
|
||||
setAttrs(update);
|
||||
@@ -1649,7 +1714,10 @@ wfrpModule.wfrp.skills.forEach(skill => {
|
||||
});
|
||||
|
||||
wfrpModule.wfrp.specialisations.forEach(specialisation => {
|
||||
on(`change:${specialisation} change:${specialisation}_advances change:${specialisation}_bonus change:${specialisation}_characteristic`, eventInfo => {wfrpModule.calculateSpecialisation(specialisation)});
|
||||
on(`change:${specialisation} change:${specialisation}_advances change:${specialisation}_bonus change:${specialisation}_characteristic`, eventInfo => {
|
||||
wfrpModule.calculateSpecialisation(specialisation);
|
||||
wfrpModule.cascadeNPCAttacks();
|
||||
});
|
||||
});
|
||||
|
||||
wfrpModule.wfrp.repeating_skills.forEach(section => {
|
||||
|
||||
@@ -425,7 +425,7 @@
|
||||
"characteristic":"weapon skill",
|
||||
"type":"basic",
|
||||
"grouped":true,
|
||||
"specialisations":["Basic","Brawling","Cavalry","Fencing","Flail","Parry","Pole-Arm","Two-Handed"],
|
||||
"specialisations":["Basic","Brawling","Cavalry","Fencing","Flail","Parry","Polearm","Two-Handed"],
|
||||
},
|
||||
{
|
||||
"name":"Navigation",
|
||||
@@ -468,10 +468,12 @@
|
||||
|
||||
const ambitions = [
|
||||
{
|
||||
"name": "Short-term"
|
||||
"name": "Short-term",
|
||||
"attr": "short-personal"
|
||||
},
|
||||
{
|
||||
"name": "Long-term"
|
||||
"name": "Long-term",
|
||||
"attr": "long-personal"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -481,10 +483,12 @@
|
||||
"field": "text"
|
||||
},
|
||||
{
|
||||
"name": "Short-term"
|
||||
"name": "Short-term",
|
||||
"attr": "short-party"
|
||||
},
|
||||
{
|
||||
"name": "Long-term"
|
||||
"name": "Long-term",
|
||||
"attr": "long-party"
|
||||
},
|
||||
{
|
||||
"name": "Members"
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
mixin generic-textarea(name, box_type="flex")
|
||||
mixin generic-textarea(name, box_type="flex", attr= name.toLowerCase().replace(/ /g,"_"))
|
||||
-
|
||||
const attr = name.toLowerCase().replace(/ /g,"_");
|
||||
const box = (box_type === "flex") ? "wfrp-textarea" : `wfrp-textarea--grid${box_type}`;
|
||||
|
||||
div(class=box)
|
||||
|
||||
@@ -4,7 +4,7 @@ mixin career-level(level, first)
|
||||
input(name=`attr_career_level_current`, type="hidden", value="1")
|
||||
button(data-i18n="Switch", name=`act_newcareerlevel-${level}`, type="action")
|
||||
span(data-i18n="Current" class=`wfrp-current_level--${level}`)
|
||||
h2(data-i18n=`Level ${level}`)
|
||||
h2(data-i18n=`Tier ${level}`)
|
||||
|
||||
.wfrp-settings__row--invert
|
||||
.wfrp-settings__label(data-i18n=`Name`)
|
||||
|
||||
+16
@@ -40,6 +40,22 @@ mixin npc-attack-row()
|
||||
select.wfrp-settings__input(name=`attr_attack_type`)
|
||||
option(data-i18n="Weapon Skill")
|
||||
option(data-i18n="Ballistic Skill")
|
||||
option(data-i18n="Melee (Basic)")
|
||||
option(data-i18n="Melee (Brawling)")
|
||||
option(data-i18n="Melee (Cavalry)")
|
||||
option(data-i18n="Melee (Fencing)")
|
||||
option(data-i18n="Melee (Flail)")
|
||||
option(data-i18n="Melee (Parry)")
|
||||
option(data-i18n="Melee (Polearm)")
|
||||
option(data-i18n="Melee (Two-Handed)")
|
||||
option(data-i18n="Ranged (Blackpowder)")
|
||||
option(data-i18n="Ranged (Bow)")
|
||||
option(data-i18n="Ranged (Crossbow)")
|
||||
option(data-i18n="Ranged (Engineering)")
|
||||
option(data-i18n="Ranged (Entangling)")
|
||||
option(data-i18n="Ranged (Explosives)")
|
||||
option(data-i18n="Ranged (Sling)")
|
||||
option(data-i18n="Ranged (Throwing)")
|
||||
option(data-i18n="Custom")
|
||||
|
||||
.wfrp-settings__row
|
||||
|
||||
@@ -39,14 +39,21 @@
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
each skill in skill_list
|
||||
-
|
||||
const attr = skill.name.toLowerCase().replace(/ /g,"-");
|
||||
console.log(attr);
|
||||
if (skill.grouped !== true)
|
||||
.wfrp-npcsettings__skill
|
||||
.wfrp-npcsettings__label(data-i18n=skill.name)
|
||||
input.wfrp-npcsettings__input(name=`attr_${attr}`, type="number")
|
||||
|
||||
if (skill.name === "Melee" || skill.name === "Ranged" || skill.name === "Channelling" || skill.name === "Language")
|
||||
each specialism in skill.specialisations
|
||||
.wfrp-npcsettings__skill
|
||||
.wfrp-npcsettings__label(data-i18n=`${skill.name} (${specialism})`)
|
||||
input.wfrp-npcsettings__input(name=`attr_${specialism}`, type="number")
|
||||
|
||||
|
||||
h2(data-i18n="Settings")
|
||||
.wfrp-npcsettings__settings
|
||||
|
||||
@@ -63,7 +63,6 @@ input(name="attr_setting_button_hide", type="hidden")
|
||||
.wfrp-skilltable__cell(data-i18n="Adv.")
|
||||
.wfrp-skilltable__cell--last(data-i18n="Total")
|
||||
each skill in skills.basic
|
||||
console.log(skill)
|
||||
if skill.grouped === true
|
||||
+skill-grouped(skill)
|
||||
else
|
||||
@@ -78,7 +77,6 @@ input(name="attr_setting_button_hide", type="hidden")
|
||||
.wfrp-skilltable__cell(data-i18n="Adv.")
|
||||
.wfrp-skilltable__cell--last(data-i18n="Total")
|
||||
each skill in skills.advanced
|
||||
console.log(skill)
|
||||
if skill.grouped === true
|
||||
+skill-grouped(skill)
|
||||
else
|
||||
@@ -122,15 +120,15 @@ input(name="attr_setting_button_hide", type="hidden")
|
||||
.wfrp-ambitions.wfrp-panel.page__main
|
||||
h1.wfrp-panel__header(data-i18n="Ambitions")
|
||||
each ambition in ambitions
|
||||
+generic-textarea(ambition.name, "1-25")
|
||||
+generic-textarea(ambition.name, "1-25", ambition.attr)
|
||||
|
||||
.wfrp-party.wfrp-panel.page__main
|
||||
h1.wfrp-panel__header(data-i18n="Party")
|
||||
each ambition in party
|
||||
if (ambition.field === "text")
|
||||
+generic-field(ambition, "text", "1-25")
|
||||
+generic-field(ambition, "text", "1-25", ambition.attr)
|
||||
else
|
||||
+generic-textarea(ambition.name, "1-25")
|
||||
+generic-textarea(ambition.name, "1-25", ambition.attr)
|
||||
|
||||
.wfrp-careers.wfrp-panel.page__careers
|
||||
input(name="attr_control_hide--characteristics", type="hidden")
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
});
|
||||
|
||||
[skills.basic[18], skills.advanced[2], skills.advanced[11]].forEach(skill => {
|
||||
[skills.basic[18], skills.advanced[2], skills.advanced[5], skills.advanced[11]].forEach(skill => {
|
||||
|
||||
skill.specialisations.forEach(specialisation => {
|
||||
const attr = specialisation.toLowerCase().replace(/ /g,"_");
|
||||
|
||||
@@ -3,7 +3,7 @@ include rolls.pug
|
||||
|
||||
include components/_component-index.pug
|
||||
|
||||
input(name="attr_sheet_version", type="hidden", value="1.0.0")
|
||||
input(name="attr_sheet_version", type="hidden", value="1.0.1")
|
||||
input(name="attr_npc", type="hidden", value="0")
|
||||
input(name="attr_nav", type="hidden", value="main")
|
||||
input(name="attr_difficulty_query", type="hidden", value="?{Difficulty|Average (+20), 20|Very Easy (+60), 60|Easy (+40), 40|Average (+20), 20|Challenging (0), 0|Difficult (-10), -10|Hard (-20), -20|Very Hard (-30), -30}")
|
||||
|
||||
@@ -83,7 +83,7 @@ $specialisations:
|
||||
"fencing",
|
||||
"flail",
|
||||
"parry",
|
||||
"pole-arm",
|
||||
"polearm",
|
||||
"two-handed",
|
||||
"blackpowder",
|
||||
"bow",
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
&__skill {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr .25fr;
|
||||
grid-template-columns: 1fr 1.5em;
|
||||
}
|
||||
|
||||
&__settings {
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
"attr_Fencing":"attr_Fencing",
|
||||
"attr_Flail":"attr_Flail",
|
||||
"attr_Parry":"attr_Parry",
|
||||
"attr_Pole-Arm":"attr_Pole-Arm",
|
||||
"attr_Polearm":"attr_Polearm",
|
||||
"attr_Two-Handed":"attr_Two-Handed",
|
||||
"Navigation":"Navigation",
|
||||
"Outdoor Survival":"Outdoor Survival",
|
||||
@@ -197,7 +197,7 @@
|
||||
"Basic":"Basic",
|
||||
"Cavalry":"Cavalry",
|
||||
"Flail":"Flail",
|
||||
"Pole-Arm":"Pole-Arm",
|
||||
"Polearm":"Polearm",
|
||||
"Brawling":"Brawling",
|
||||
"Fencing":"Fencing",
|
||||
"Parry":"Parry",
|
||||
@@ -254,10 +254,10 @@
|
||||
"Notes":"Notes",
|
||||
"Characteristic Advances":"Characteristic Advances",
|
||||
"Current Career":"Current Career",
|
||||
"Level 1":"Level 1",
|
||||
"Level 2":"Level 2",
|
||||
"Level 3":"Level 3",
|
||||
"Level 4":"Level 4",
|
||||
"Tier 1":"Tier 1",
|
||||
"Tier 2":"Tier 2",
|
||||
"Tier 3":"Tier 3",
|
||||
"Tier 4":"Tier 4",
|
||||
"Skill 1":"Skill 1",
|
||||
"Skill 2":"Skill 2",
|
||||
"Skill 3":"Skill 3",
|
||||
@@ -341,5 +341,30 @@
|
||||
"Show Trappings":"Show Trappings",
|
||||
"Worn":"Worn",
|
||||
"TB":"TB",
|
||||
"Combat":"Combat"
|
||||
"Combat":"Combat",
|
||||
"Channelling (Aqshy)":"Channelling (Aqshy)",
|
||||
"Channelling (Chamon)":"Channelling (Chamon)",
|
||||
"Channelling (Dhar)":"Channelling (Dhar)",
|
||||
"Channelling (Ghur)":"Channelling (Ghur)",
|
||||
"Channelling (Ghyran)":"Channelling (Ghyran)",
|
||||
"Channelling (Hysh)":"Channelling (Hysh)",
|
||||
"Channelling (Shyish)":"Channelling (Shyish)",
|
||||
"Channelling (Ulgu)":"Channelling (Ulgu)",
|
||||
"Language (Magick)":"Language (Magick)",
|
||||
"Melee (Basic)":"Melee (Basic)",
|
||||
"Melee (Brawling)":"Melee (Brawling)",
|
||||
"Melee (Cavalry)":"Melee (Cavalry)",
|
||||
"Melee (Fencing)":"Melee (Fencing)",
|
||||
"Melee (Flail)":"Melee (Flail)",
|
||||
"Melee (Parry)":"Melee (Parry)",
|
||||
"Melee (Polearm)":"Melee (Polearm)",
|
||||
"Melee (Two-Handed)":"Melee (Two-Handed)",
|
||||
"Ranged (Blackpowder)":"Ranged (Blackpowder)",
|
||||
"Ranged (Bow)":"Ranged (Bow)",
|
||||
"Ranged (Crossbow)":"Ranged (Crossbow)",
|
||||
"Ranged (Engineering)":"Ranged (Engineering)",
|
||||
"Ranged (Entangling)":"Ranged (Entangling)",
|
||||
"Ranged (Explosives)":"Ranged (Explosives)",
|
||||
"Ranged (Sling)":"Ranged (Sling)",
|
||||
"Ranged (Throwing)":"Ranged (Throwing)"
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
|
||||
<input name="attr_sheet_version" type="hidden" value="1.0.0"/>
|
||||
<input name="attr_sheet_version" type="hidden" value="1.0.1"/>
|
||||
<input name="attr_npc" type="hidden" value="0"/>
|
||||
<input name="attr_nav" type="hidden" value="main"/>
|
||||
<input name="attr_difficulty_query" type="hidden" value="?{Difficulty|Average (+20), 20|Very Easy (+60), 60|Easy (+40), 40|Average (+20), 20|Challenging (0), 0|Difficult (-10), -10|Hard (-20), -20|Very Hard (-30), -30}"/>
|
||||
@@ -382,7 +382,6 @@
|
||||
<div class="wfrp-skilltable__cell" data-i18n="Adv."></div>
|
||||
<div class="wfrp-skilltable__cell--last" data-i18n="Total"></div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_art_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -442,7 +441,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_athletics_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -501,7 +499,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_bribery_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -560,7 +557,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_charm_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -619,7 +615,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_charm-animal_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -678,7 +673,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_climb_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -737,7 +731,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_consume-alcohol_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -796,7 +789,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_cool_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -855,7 +847,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_dodge_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -914,7 +905,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_drive_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -973,7 +963,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_endurance_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -1032,7 +1021,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_entertain_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -1092,7 +1080,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_gamble_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -1151,7 +1138,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_gossip_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -1210,7 +1196,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_haggle_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -1269,7 +1254,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_intimidate_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -1328,7 +1312,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_intuition_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -1387,7 +1370,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_leadership_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -1446,7 +1428,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_melee_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -1484,8 +1465,8 @@
|
||||
<input class="wfrp-settings__checkbox" name="attr_parry_control" type="checkbox"/>
|
||||
</div>
|
||||
<div class="wfrp-settings__row">
|
||||
<div class="wfrp-settings__label" data-i18n="Pole-Arm"></div>
|
||||
<input class="wfrp-settings__checkbox" name="attr_pole-arm_control" type="checkbox"/>
|
||||
<div class="wfrp-settings__label" data-i18n="Polearm"></div>
|
||||
<input class="wfrp-settings__checkbox" name="attr_polearm_control" type="checkbox"/>
|
||||
</div>
|
||||
<div class="wfrp-settings__row">
|
||||
<div class="wfrp-settings__label" data-i18n="Two-Handed"></div>
|
||||
@@ -1957,20 +1938,20 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="specialisation_wrapper">
|
||||
<input name="attr_pole-arm_settings" type="hidden"/>
|
||||
<input name="attr_pole-arm_control" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--specialisation control__hide--pole-arm">
|
||||
<input name="attr_pole-arm_characteristic" type="hidden" value="weapon_skill"/>
|
||||
<input name="attr_polearm_settings" type="hidden"/>
|
||||
<input name="attr_polearm_control" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--specialisation control__hide--polearm">
|
||||
<input name="attr_polearm_characteristic" type="hidden" value="weapon_skill"/>
|
||||
<div class="wfrp-skilltable__cell--settingstoggle">
|
||||
<label class="wfrp-displaytoggle">
|
||||
<input class="wfrp-displaytoggle__hide" name="attr_pole-arm_settings" type="checkbox" value="1"/><span class="wfrp-displaytoggle__span">y</span>
|
||||
<input class="wfrp-displaytoggle__hide" name="attr_polearm_settings" type="checkbox" value="1"/><span class="wfrp-displaytoggle__span">y</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="wfrp-skilltable__cell">
|
||||
<button data-i18n="Pole-Arm" name="roll_pole-arm" type="roll" value="@{roll_whisper} &{template:wfrp} {{name=@{character_name}}} {{roll=[[1d100cs<@{roll_cs}cf>@{roll_cf}]]}} {{difficulty=[[@{difficulty_query}]]}} {{bonus=[[@{roll_query}]]}} @{roll_slbonus} {{target=[[@{pole-arm}+@{difficulty_query}+@{roll_query}]]}} {{roll_name=Melee - Pole-Arm}} {{roll_type=Specialisation}} {{roll_notes=@{pole-arm_notes}}} {{name=@{character_name}}}"></button>
|
||||
<button data-i18n="Polearm" name="roll_polearm" type="roll" value="@{roll_whisper} &{template:wfrp} {{name=@{character_name}}} {{roll=[[1d100cs<@{roll_cs}cf>@{roll_cf}]]}} {{difficulty=[[@{difficulty_query}]]}} {{bonus=[[@{roll_query}]]}} @{roll_slbonus} {{target=[[@{polearm}+@{difficulty_query}+@{roll_query}]]}} {{roll_name=Melee - Polearm}} {{roll_type=Specialisation}} {{roll_notes=@{polearm_notes}}} {{name=@{character_name}}}"></button>
|
||||
</div>
|
||||
<div class="wfrp-skilltable__cell">
|
||||
<select name="attr_pole-arm_characteristic">
|
||||
<select name="attr_polearm_characteristic">
|
||||
<option selected="weapon skill" data-i18n="WS" value="weapon_skill"></option>
|
||||
<option data-i18n="BS" value="ballistic_skill"></option>
|
||||
<option data-i18n="S" value="strength"></option>
|
||||
@@ -2014,21 +1995,21 @@
|
||||
<input name="attr_fellowship" type="hidden" value="0"/>
|
||||
</div>
|
||||
<div class="wfrp-skilltable__cell">
|
||||
<input name="attr_pole-arm_advances" type="hidden" value="0"/><span class="display" name="attr_pole-arm_advances"></span>
|
||||
<input name="attr_polearm_advances" type="hidden" value="0"/><span class="display" name="attr_polearm_advances"></span>
|
||||
</div>
|
||||
<div class="wfrp-skilltable__cell--last wfrp-skilltable__cell--highlight"><span class="display" name="attr_pole-arm"></span></div>
|
||||
<div class="wfrp-skilltable_row wfrp-settings control__hide--pole-arm_settings">
|
||||
<div class="wfrp-skilltable__cell--last wfrp-skilltable__cell--highlight"><span class="display" name="attr_polearm"></span></div>
|
||||
<div class="wfrp-skilltable_row wfrp-settings control__hide--polearm_settings">
|
||||
<div class="wfrp-settings__row">
|
||||
<div class="wfrp-settings__label" data-i18n="Modifier"> </div><span class="display" name="attr_pole-arm_modifier"></span>
|
||||
<input name="attr_pole-arm_modifier" type="hidden" value="0"/>
|
||||
<div class="wfrp-settings__label" data-i18n="Modifier"> </div><span class="display" name="attr_polearm_modifier"></span>
|
||||
<input name="attr_polearm_modifier" type="hidden" value="0"/>
|
||||
</div>
|
||||
<div class="wfrp-settings__row">
|
||||
<div class="wfrp-settings__label" data-i18n="Bonus"> </div>
|
||||
<input class="wfrp-settings__input" name="attr_pole-arm_bonus" type="text"/>
|
||||
<input class="wfrp-settings__input" name="attr_polearm_bonus" type="text"/>
|
||||
</div>
|
||||
<div class="wfrp-settings__row--span">
|
||||
<div class="wfrp-settings__label" data-i18n="Roll Notes"> </div>
|
||||
<input class="wfrp-settings__input" name="attr_pole-arm_notes" type="text"/>
|
||||
<input class="wfrp-settings__input" name="attr_polearm_notes" type="text"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2110,7 +2091,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_navigation_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -2169,7 +2149,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_outdoor-survival_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -2228,7 +2207,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_perception_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -2287,7 +2265,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_ride_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -2347,7 +2324,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_row_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -2406,7 +2382,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_stealth_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -2477,7 +2452,6 @@
|
||||
<div class="wfrp-skilltable__cell" data-i18n="Adv."></div>
|
||||
<div class="wfrp-skilltable__cell--last" data-i18n="Total"></div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_animal-care_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -2536,7 +2510,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_animal-training_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -2596,7 +2569,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_channelling_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -3260,7 +3232,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_evaluate_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -3319,7 +3290,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_heal_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -3378,7 +3348,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_language_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -3409,7 +3378,7 @@
|
||||
</label>
|
||||
</div>
|
||||
<div class="wfrp-skilltable__cell">
|
||||
<button data-i18n="Magick" name="roll_magick" type="roll"></button>
|
||||
<button data-i18n="Magick" name="roll_magick" type="roll" value="@{roll_whisper} &{template:wfrp} {{name=@{character_name}}} {{roll=[[1d100cs<@{roll_cs}cf>@{roll_cf}]]}} {{difficulty=[[@{difficulty_query}]]}} {{bonus=[[@{roll_query}]]}} @{roll_slbonus} {{target=[[@{magick}+@{difficulty_query}+@{roll_query}]]}} {{roll_name=Language - Magick}} {{roll_type=Specialisation}} {{roll_notes=@{magick_notes}}} {{name=@{character_name}}}"></button>
|
||||
</div>
|
||||
<div class="wfrp-skilltable__cell">
|
||||
<select name="attr_magick_characteristic">
|
||||
@@ -3525,7 +3494,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_lore_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -3585,7 +3553,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_perform_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -3645,7 +3612,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_pick-lock_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -3704,7 +3670,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_play_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -3764,7 +3729,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_pray_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -3823,7 +3787,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_ranged_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -4487,7 +4450,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_research_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -4546,7 +4508,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_sail_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -4606,7 +4567,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_secret-signs_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -4666,7 +4626,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_set-trap_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -4725,7 +4684,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_sleight-of-hand_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -4784,7 +4742,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_swim_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -4843,7 +4800,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_track_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row">
|
||||
@@ -4902,7 +4858,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<console class="log" skill="skill"></console>
|
||||
<div class="wfrp-skillwrapper">
|
||||
<input name="attr_trade_settings" type="hidden"/>
|
||||
<div class="wfrp-skilltable__row--grouped">
|
||||
@@ -5217,10 +5172,10 @@
|
||||
<div class="wfrp-ambitions wfrp-panel page__main">
|
||||
<h1 class="wfrp-panel__header" data-i18n="Ambitions"></h1>
|
||||
<div class="wfrp-textarea--grid1-25"><span class="wfrp-textarea__header" data-i18n="Short-term"></span>
|
||||
<textarea class="wfrp-textarea__textarea" name="attr_short-term"></textarea>
|
||||
<textarea class="wfrp-textarea__textarea" name="attr_short-personal"></textarea>
|
||||
</div>
|
||||
<div class="wfrp-textarea--grid1-25"><span class="wfrp-textarea__header" data-i18n="Long-term"></span>
|
||||
<textarea class="wfrp-textarea__textarea" name="attr_long-term"></textarea>
|
||||
<textarea class="wfrp-textarea__textarea" name="attr_long-personal"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wfrp-party wfrp-panel page__main">
|
||||
@@ -5229,10 +5184,10 @@
|
||||
<input class="wfrp-field__input" name="attr_party_name" type="text"/>
|
||||
</div>
|
||||
<div class="wfrp-textarea--grid1-25"><span class="wfrp-textarea__header" data-i18n="Short-term"></span>
|
||||
<textarea class="wfrp-textarea__textarea" name="attr_short-term"></textarea>
|
||||
<textarea class="wfrp-textarea__textarea" name="attr_short-party"></textarea>
|
||||
</div>
|
||||
<div class="wfrp-textarea--grid1-25"><span class="wfrp-textarea__header" data-i18n="Long-term"></span>
|
||||
<textarea class="wfrp-textarea__textarea" name="attr_long-term"></textarea>
|
||||
<textarea class="wfrp-textarea__textarea" name="attr_long-party"></textarea>
|
||||
</div>
|
||||
<div class="wfrp-textarea--grid1-25"><span class="wfrp-textarea__header" data-i18n="Members"></span>
|
||||
<textarea class="wfrp-textarea__textarea" name="attr_members"></textarea>
|
||||
@@ -5351,7 +5306,7 @@
|
||||
<input name="attr_career_level_current" type="hidden" value="1"/>
|
||||
<button data-i18n="Switch" name="act_newcareerlevel-1" type="action"></button><span class="wfrp-current_level--1" data-i18n="Current"> </span>
|
||||
</div>
|
||||
<h2 data-i18n="Level 1"> </h2>
|
||||
<h2 data-i18n="Tier 1"> </h2>
|
||||
</div>
|
||||
<div class="wfrp-settings__row--invert">
|
||||
<div class="wfrp-settings__label" data-i18n="Name"></div>
|
||||
@@ -5461,7 +5416,7 @@
|
||||
<input name="attr_career_level_current" type="hidden" value="1"/>
|
||||
<button data-i18n="Switch" name="act_newcareerlevel-1" type="action"></button><span class="wfrp-current_level--1" data-i18n="Current"> </span>
|
||||
</div>
|
||||
<h2 data-i18n="Level 1"> </h2>
|
||||
<h2 data-i18n="Tier 1"> </h2>
|
||||
</div>
|
||||
<div class="wfrp-settings__row--invert">
|
||||
<div class="wfrp-settings__label" data-i18n="Name"></div>
|
||||
@@ -5554,7 +5509,7 @@
|
||||
<input name="attr_career_level_current" type="hidden" value="1"/>
|
||||
<button data-i18n="Switch" name="act_newcareerlevel-2" type="action"></button><span class="wfrp-current_level--2" data-i18n="Current"> </span>
|
||||
</div>
|
||||
<h2 data-i18n="Level 2"> </h2>
|
||||
<h2 data-i18n="Tier 2"> </h2>
|
||||
</div>
|
||||
<div class="wfrp-settings__row--invert">
|
||||
<div class="wfrp-settings__label" data-i18n="Name"></div>
|
||||
@@ -5647,7 +5602,7 @@
|
||||
<input name="attr_career_level_current" type="hidden" value="1"/>
|
||||
<button data-i18n="Switch" name="act_newcareerlevel-3" type="action"></button><span class="wfrp-current_level--3" data-i18n="Current"> </span>
|
||||
</div>
|
||||
<h2 data-i18n="Level 3"> </h2>
|
||||
<h2 data-i18n="Tier 3"> </h2>
|
||||
</div>
|
||||
<div class="wfrp-settings__row--invert">
|
||||
<div class="wfrp-settings__label" data-i18n="Name"></div>
|
||||
@@ -5740,7 +5695,7 @@
|
||||
<input name="attr_career_level_current" type="hidden" value="1"/>
|
||||
<button data-i18n="Switch" name="act_newcareerlevel-4" type="action"></button><span class="wfrp-current_level--4" data-i18n="Current"> </span>
|
||||
</div>
|
||||
<h2 data-i18n="Level 4"> </h2>
|
||||
<h2 data-i18n="Tier 4"> </h2>
|
||||
</div>
|
||||
<div class="wfrp-settings__row--invert">
|
||||
<div class="wfrp-settings__label" data-i18n="Name"></div>
|
||||
@@ -6215,7 +6170,7 @@
|
||||
<option data-i18n="Fencing"></option>
|
||||
<option data-i18n="Flail"></option>
|
||||
<option data-i18n="Parry"></option>
|
||||
<option data-i18n="Pole-Arm"></option>
|
||||
<option data-i18n="Polearm"></option>
|
||||
<option data-i18n="Two-Handed"></option>
|
||||
<option data-i18n="Blackpowder"></option>
|
||||
<option data-i18n="Bow"></option>
|
||||
@@ -6634,6 +6589,38 @@
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Bribery"></div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_bribery" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Channelling (Aqshy)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Aqshy" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Channelling (Chamon)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Chamon" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Channelling (Dhar)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Dhar" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Channelling (Ghur)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Ghur" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Channelling (Ghyran)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Ghyran" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Channelling (Hysh)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Hysh" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Channelling (Shyish)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Shyish" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Channelling (Ulgu)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Ulgu" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Charm"></div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_charm" type="number"/>
|
||||
@@ -6694,10 +6681,46 @@
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Intuition"></div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_intuition" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Language (Magick)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Magick" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Leadership"></div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_leadership" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Melee (Basic)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Basic" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Melee (Brawling)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Brawling" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Melee (Cavalry)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Cavalry" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Melee (Fencing)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Fencing" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Melee (Flail)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Flail" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Melee (Parry)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Parry" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Melee (Polearm)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Polearm" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Melee (Two-Handed)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Two-Handed" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Navigation"></div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_navigation" type="number"/>
|
||||
@@ -6718,6 +6741,38 @@
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Pray"></div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_pray" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Ranged (Blackpowder)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Blackpowder" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Ranged (Bow)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Bow" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Ranged (Crossbow)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Crossbow" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Ranged (Engineering)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Engineering" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Ranged (Entangling)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Entangling" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Ranged (Explosives)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Explosives" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Ranged (Sling)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Sling" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Ranged (Throwing)"> </div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_Throwing" type="number"/>
|
||||
</div>
|
||||
<div class="wfrp-npcsettings__skill">
|
||||
<div class="wfrp-npcsettings__label" data-i18n="Research"></div>
|
||||
<input class="wfrp-npcsettings__input" name="attr_research" type="number"/>
|
||||
@@ -7121,6 +7176,22 @@
|
||||
<select class="wfrp-settings__input" name="attr_attack_type">
|
||||
<option data-i18n="Weapon Skill"></option>
|
||||
<option data-i18n="Ballistic Skill"></option>
|
||||
<option data-i18n="Melee (Basic)"></option>
|
||||
<option data-i18n="Melee (Brawling)"></option>
|
||||
<option data-i18n="Melee (Cavalry)"></option>
|
||||
<option data-i18n="Melee (Fencing)"></option>
|
||||
<option data-i18n="Melee (Flail)"></option>
|
||||
<option data-i18n="Melee (Parry)"></option>
|
||||
<option data-i18n="Melee (Polearm)"></option>
|
||||
<option data-i18n="Melee (Two-Handed)"></option>
|
||||
<option data-i18n="Ranged (Blackpowder)"></option>
|
||||
<option data-i18n="Ranged (Bow)"></option>
|
||||
<option data-i18n="Ranged (Crossbow)"></option>
|
||||
<option data-i18n="Ranged (Engineering)"></option>
|
||||
<option data-i18n="Ranged (Entangling)"></option>
|
||||
<option data-i18n="Ranged (Explosives)"></option>
|
||||
<option data-i18n="Ranged (Sling)"></option>
|
||||
<option data-i18n="Ranged (Throwing)"></option>
|
||||
<option data-i18n="Custom"></option>
|
||||
</select>
|
||||
</div>
|
||||
@@ -8398,7 +8469,7 @@
|
||||
"fencing",
|
||||
"flail",
|
||||
"parry",
|
||||
"pole-arm",
|
||||
"polearm",
|
||||
"two-handed",
|
||||
"blackpowder",
|
||||
"bow",
|
||||
@@ -8693,26 +8764,38 @@
|
||||
// Characteristic Functions
|
||||
|
||||
const calculateCharacteristic = (characteristic) => {
|
||||
|
||||
getAttrs(["npc"], check => {
|
||||
|
||||
if (check["npc"] === "on") return;
|
||||
|
||||
const attrs = [
|
||||
`${characteristic}_initial`,
|
||||
`${characteristic}_advances`,
|
||||
`${characteristic}_modifier`,
|
||||
`${characteristic}_custom_mod`,
|
||||
`${characteristic}_bonusmod`,
|
||||
];
|
||||
const attrs = [
|
||||
`npc`,
|
||||
`${characteristic}`,
|
||||
`${characteristic}_initial`,
|
||||
`${characteristic}_advances`,
|
||||
`${characteristic}_modifier`,
|
||||
`${characteristic}_custom_mod`,
|
||||
`${characteristic}_bonusmod`,
|
||||
];
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const base = parseInt(values[`${characteristic}`]) || 0;
|
||||
const initial = parseInt(values[`${characteristic}_initial`]) || 0;
|
||||
const advances = parseInt(values[`${characteristic}_advances`]) || 0;
|
||||
const modifier = parseInt(values[`${characteristic}_modifier`]) || 0;
|
||||
const custom_mod = parseInt(values[`${characteristic}_custom_mod`]) || 0;
|
||||
const bonusmod = parseInt(values[`${characteristic}_bonusmod`]) || 0;
|
||||
|
||||
if (values["npc"] === "on") {
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const initial = parseInt(values[`${characteristic}_initial`]) || 0;
|
||||
const advances = parseInt(values[`${characteristic}_advances`]) || 0;
|
||||
const modifier = parseInt(values[`${characteristic}_modifier`]) || 0;
|
||||
const custom_mod = parseInt(values[`${characteristic}_custom_mod`]) || 0;
|
||||
const bonusmod = parseInt(values[`${characteristic}_bonusmod`]) || 0;
|
||||
const updateAttrs = {};
|
||||
|
||||
const bonus = Math.floor(base / 10) + bonusmod;
|
||||
|
||||
updateAttrs[`${characteristic}_bonus`] = bonus;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
|
||||
return;
|
||||
} else {
|
||||
|
||||
const current = initial + advances + modifier + custom_mod;
|
||||
|
||||
const bonus = Math.floor(current / 10) + bonusmod;
|
||||
@@ -8723,8 +8806,8 @@
|
||||
updateAttrs[`${characteristic}_bonus`] = bonus;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
@@ -8826,35 +8909,41 @@
|
||||
}
|
||||
|
||||
const calculateSpecialisation = (specialisation) => {
|
||||
|
||||
getAttrs(["npc"], check => {
|
||||
|
||||
if (check["npc"] === "on") return;
|
||||
|
||||
const attrs = [
|
||||
`${specialisation}_characteristic`
|
||||
];
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const base = values[`${specialisation}_characteristic`];
|
||||
|
||||
const attrs = [
|
||||
`${base}`,
|
||||
`${specialisation}_advances`,
|
||||
`${specialisation}_modifier`,
|
||||
`${specialisation}_bonus`
|
||||
`${specialisation}_characteristic`,
|
||||
`npc`
|
||||
];
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const characteristic = parseInt(values[`${base}`]) || 0;
|
||||
const advances = parseInt(values[`${specialisation}_advances`]) || 0;
|
||||
const modifier = parseInt(values[`${specialisation}_modifier`]) || 0;
|
||||
const bonus = parseInt(values[`${specialisation}_bonus`]) || 0;
|
||||
const base = values[`${specialisation}_characteristic`];
|
||||
|
||||
const total = characteristic + advances + modifier + bonus;
|
||||
const attrs = [
|
||||
`${base}`,
|
||||
`${specialisation}_advances`,
|
||||
`${specialisation}_modifier`,
|
||||
`${specialisation}_bonus`
|
||||
];
|
||||
|
||||
const updateAttrs = {};
|
||||
getAttrs(attrs, values => {
|
||||
const characteristic = parseInt(values[`${base}`]) || 0;
|
||||
const advances = parseInt(values[`${specialisation}_advances`]) || 0;
|
||||
const modifier = parseInt(values[`${specialisation}_modifier`]) || 0;
|
||||
const bonus = parseInt(values[`${specialisation}_bonus`]) || 0;
|
||||
|
||||
updateAttrs[`${specialisation}`] = total;
|
||||
const total = characteristic + advances + modifier + bonus;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
const updateAttrs = {};
|
||||
|
||||
updateAttrs[`${specialisation}`] = total;
|
||||
|
||||
setAttrs(updateAttrs);
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -9547,7 +9636,7 @@
|
||||
}
|
||||
|
||||
const calculateMaxEncumbrance = () => {
|
||||
const attrs = ["strength_bonus", "toughness_bonus", "encumbrance_bonus"];
|
||||
const attrs = ["strength_bonus", "toughness_bonus", "encumbrance_bonus", "encumbrance_mod"];
|
||||
|
||||
getAttrs(attrs, values => {
|
||||
const strength_bonus = parseInt(values["strength_bonus"]) || 0;
|
||||
@@ -9609,10 +9698,10 @@
|
||||
trappings_array.forEach(id => {
|
||||
const enc = parseInt(values[`repeating_trappings_${id}_trappings_enc`]) || 0;
|
||||
const amount = parseInt(values[`repeating_trappings_${id}_trappings_amount`]) || 1;
|
||||
const worn = parseInt(values[`repeating_trappings_${id}_trappings_worn`]) || false;
|
||||
const worn = values[`repeating_trappings_${id}_trappings_worn`] || false;
|
||||
const inenc = values[`repeating_trappings_${id}_trappings_inenc`] || "0";
|
||||
|
||||
const total = (worn === "on") ? (enc -1) * amount : enc * amount;
|
||||
const total = (worn === "on") ? (enc - 1) * amount : enc * amount;
|
||||
|
||||
if (inenc === "on") total_enc += total;
|
||||
});
|
||||
@@ -9788,21 +9877,48 @@
|
||||
|
||||
const request = [
|
||||
`${repeating_id}_attack_type`,
|
||||
`weapon_skill`,
|
||||
`ballistic_skill`
|
||||
"weapon_skill",
|
||||
"ballistic_skill",
|
||||
"basic",
|
||||
"brawling",
|
||||
"cavalry",
|
||||
"fencing",
|
||||
"flail",
|
||||
"parry",
|
||||
"polearm",
|
||||
"two-handed",
|
||||
"blackpowder",
|
||||
"bow",
|
||||
"crossbow",
|
||||
"engineering",
|
||||
"entangling",
|
||||
"explosives",
|
||||
"sling",
|
||||
"throwing"
|
||||
];
|
||||
|
||||
getAttrs(request, values => {
|
||||
const {
|
||||
[`${repeating_id}_attack_type`]:type,
|
||||
weapon_skill,
|
||||
ballistic_skill
|
||||
} = values;
|
||||
const type = values[`${repeating_id}_attack_type`];
|
||||
|
||||
if (type.toLowerCase() === "weapon skill") {
|
||||
setAttrs({[`${repeating_id}_attack_target`]:weapon_skill});
|
||||
} else {
|
||||
setAttrs({[`${repeating_id}_attack_target`]:ballistic_skill});
|
||||
if (type.toLowerCase() === "custom") {
|
||||
setAttrs({[`${repeating_id}_attack_target`]:0});
|
||||
} else {
|
||||
const type_parsed = (!type.match(/\(/)) ? type.replace(/ /, "_")
|
||||
.toLowerCase() :
|
||||
type.split("(")[1]
|
||||
.replace(/\)/g, "")
|
||||
.replace(/ /, "_")
|
||||
.toLowerCase();
|
||||
|
||||
const value = values[type_parsed];
|
||||
|
||||
const update = {};
|
||||
|
||||
update[`${repeating_id}_attack_target`] = value;
|
||||
|
||||
console.log(update)
|
||||
|
||||
setAttrs(update);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -9812,7 +9928,23 @@
|
||||
getSectionIDs("attacks", ids => {
|
||||
const attrs = [
|
||||
"weapon_skill",
|
||||
"ballistic_skill"
|
||||
"ballistic_skill",
|
||||
"basic",
|
||||
"brawling",
|
||||
"cavalry",
|
||||
"fencing",
|
||||
"flail",
|
||||
"parry",
|
||||
"polearm",
|
||||
"two-handed",
|
||||
"blackpowder",
|
||||
"bow",
|
||||
"crossbow",
|
||||
"engineering",
|
||||
"entangling",
|
||||
"explosives",
|
||||
"sling",
|
||||
"throwing"
|
||||
];
|
||||
|
||||
for (const id of ids) {
|
||||
@@ -9822,14 +9954,18 @@
|
||||
getAttrs(attrs, values => {
|
||||
const update = [];
|
||||
|
||||
const {weapon_skill, ballistic_skill} = values;
|
||||
|
||||
for (const id of ids) {
|
||||
const type = values[`repeating_attacks_${id}_attack_type`].toLowerCase();
|
||||
const type = values[`repeating_attacks_${id}_attack_type`].toLowerCase();
|
||||
const type_parsed = (!type.match(/\(/)) ? type.replace(/ /, "_")
|
||||
.toLowerCase() :
|
||||
type.split("(")[1]
|
||||
.replace(/\)/g, "")
|
||||
.replace(/ /, "_")
|
||||
.toLowerCase();
|
||||
const target = `repeating_attacks_${id}_attack_target`;
|
||||
|
||||
if (type === "ranged") update[target] = ballistic_skill;
|
||||
if (type === "melee") update[target] = weapon_skill;
|
||||
if (type_parsed === "custom") return;
|
||||
else update[target] = values[type_parsed];
|
||||
}
|
||||
|
||||
setAttrs(update);
|
||||
@@ -9961,7 +10097,10 @@ wfrpModule.wfrp.skills.forEach(skill => {
|
||||
});
|
||||
|
||||
wfrpModule.wfrp.specialisations.forEach(specialisation => {
|
||||
on(`change:${specialisation} change:${specialisation}_advances change:${specialisation}_bonus change:${specialisation}_characteristic`, eventInfo => {wfrpModule.calculateSpecialisation(specialisation)});
|
||||
on(`change:${specialisation} change:${specialisation}_advances change:${specialisation}_bonus change:${specialisation}_characteristic`, eventInfo => {
|
||||
wfrpModule.calculateSpecialisation(specialisation);
|
||||
wfrpModule.cascadeNPCAttacks();
|
||||
});
|
||||
});
|
||||
|
||||
wfrpModule.wfrp.repeating_skills.forEach(section => {
|
||||
@@ -10404,7 +10543,7 @@ const wfrpDragAndDrop = ( () => {
|
||||
|
||||
let name = trait;
|
||||
let damage = "";
|
||||
let type = "Melee";
|
||||
let type = "Weapon Skill";
|
||||
let range = "Touch";
|
||||
let attacks = "1";
|
||||
|
||||
@@ -10413,7 +10552,7 @@ const wfrpDragAndDrop = ( () => {
|
||||
if (trait.match(/range/gi) && trait.match(/\(/)) {
|
||||
[trait, range] = trait.split("(");
|
||||
range = range.substr(0,range.length-1);
|
||||
type = "Ranged";
|
||||
type = "Ballistic Skill";
|
||||
}
|
||||
|
||||
if (trait.match(/[0-9]+X/)) {
|
||||
@@ -10528,13 +10667,13 @@ const wfrpDragAndDrop = ( () => {
|
||||
|
||||
const trait = compendium_pages;
|
||||
|
||||
if (trait.name.match(/(weapon|ranged|tentacle|bite|horn|tail|tongue)/gi)) {
|
||||
if (trait.name.match(/(weapon|ranged|tentacle|bite|horn|tail|tongue|claw)/gi)) {
|
||||
|
||||
const attack = parseAttack(name, trait.data.Description);
|
||||
|
||||
updateAttrs = {...updateAttrs, ...attack};
|
||||
|
||||
} else {
|
||||
} else if (trait) {
|
||||
const repeating_id = generateRowID();
|
||||
const row = `repeating_traits_${repeating_id}`;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user