Skip to content

Commit

Permalink
Merge branch 'dev' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
Antho committed Aug 31, 2022
2 parents e6b803f + 047640a commit c8bb2aa
Show file tree
Hide file tree
Showing 11 changed files with 437 additions and 225 deletions.
20 changes: 19 additions & 1 deletion lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -640,13 +640,17 @@
"WITCHER.Chat.SaveText": "To succeed you need to roll below",

"WITCHER.Dialog.Crafting": "Crafting a",
"WITCHER.Dialog.CraftingTitle": "Performing a crafting action",
"WITCHER.Dialog.AlchemyTitle": "Performing an alchemy action",
"WITCHER.Dialog.ButtonCraft": "Craft",
"WITCHER.Dialog.CraftingAlchemycal": "Crafting an alchemical",
"WITCHER.Dialog.CraftingItem": "Crafting an item",
"WITCHER.Dialog.NoComponents": "Not Enough Component",
"WITCHER.Dialog.CraftingDiagram": "You have the diagram",
"WITCHER.Dialog.Diagram": "Diagram",

"WITCHER.Dialog.after": "After",

"WITCHER.Dialog.ButtonDodge": "Dodge",
"WITCHER.Dialog.ButtonReposition": "Reposition",
"WITCHER.Dialog.ButtonParry": "Parry",
Expand Down Expand Up @@ -884,5 +888,19 @@
"WITCHER.verbalCombat.BribeEffect": "For every 50 Crowns you offer, you gain +1 to your empathetic Verbal Combat rolls for the rest of the fightif you succeed on your Gambling roll.",
"WITCHER.verbalCombat.None": "NONE",

"WITCHER.effect.isActive": "Is Active"
"WITCHER.effect.isActive": "Is Active",

"WITCHER.character.socialStanding": "Social Standing",
"WITCHER.socialStanding.equal": "Equal",
"WITCHER.socialStanding.tolerated": "Tolerated",
"WITCHER.socialStanding.hated": "Hated",
"WITCHER.socialStanding.feared": "Feared",
"WITCHER.socialStanding.hatedFeared": "Hated & Feared",


"WITCHER.socialStanding.north": "The North",
"WITCHER.socialStanding.nilfgaard": "Nilfgaard",
"WITCHER.socialStanding.skellige": "Skellige",
"WITCHER.socialStanding.dolBlathanna": "Dol Blathanna",
"WITCHER.socialStanding.mahakam": "Mahakam"
}
157 changes: 107 additions & 50 deletions module/sheets/WitcherActorSheet.js

Large diffs are not rendered by default.

224 changes: 122 additions & 102 deletions module/witcher.js

Large diffs are not rendered by default.

93 changes: 26 additions & 67 deletions scripts/actions.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import {witcher} from "../module/config.js";
import { witcher } from "../module/config.js";
import { buttonDialog } from "../module/chat.js";
import { addModifiers } from "../module/witcher.js";

async function ApplyDamage(actor, dmgType, location, totalDamage){
let armors = actor.items.filter(function(item) {return item.type=="armor" && item.data.data.equiped})
Expand Down Expand Up @@ -495,14 +496,7 @@ function ExecuteDefense(actor){
rollFormula += !displayFormula ? `+${customDef}`: `+${customDef}[${game.i18n.localize("WITCHER.Settings.Custom")}]` ;
}

let totalModifiers = 0;
actor.data.data.skills.ref.dodge.modifiers.forEach(item => totalModifiers += Number(item.value));
if (totalModifiers < 0){
rollFormula += !displayRollDetails ? `${totalModifiers}` : `${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
if (totalModifiers > 0){
rollFormula += !displayRollDetails ? `+${totalModifiers}`: `+${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
rollFormula = addModifiers(actor.data.data.skills.ref.dodge.modifiers, rollFormula)

let roll = await new Roll(rollFormula).roll()
if (roll.dice[0].results[0].result == 10){
Expand Down Expand Up @@ -538,15 +532,7 @@ function ExecuteDefense(actor){
rollFormula += !displayFormula ? `+${customDef}`: `+${customDef}[${game.i18n.localize("WITCHER.Settings.Custom")}]` ;
}


let totalModifiers = 0;
actor.data.data.skills.dex.athletics.modifiers.forEach(item => totalModifiers += Number(item.value));
if (totalModifiers < 0){
rollFormula += !displayRollDetails ? `${totalModifiers}` : `${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
if (totalModifiers > 0){
rollFormula += !displayRollDetails ? `+${totalModifiers}`: `+${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
rollFormula = addModifiers(actor.data.data.skills.dex.athletics.modifiers, rollFormula)

let roll = await new Roll(rollFormula).roll()
if (roll.dice[0].results[0].result == 10){
Expand Down Expand Up @@ -576,39 +562,38 @@ function ExecuteDefense(actor){
let stat = actor.data.data.stats.ref.current;
let skill = 0;
let skillName = "";
let modifiers;
let displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.Dialog.Defense")}`;

let totalModifiers = 0;
switch(defense){
case "Brawling":
skill = actor.data.data.skills.ref.brawling.value;
skillName = actor.data.data.skills.ref.brawling.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefBrawling")}`;
actor.data.data.skills.ref.brawling.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.brawling.modifiers
break;
case "Melee":
skill = actor.data.data.skills.ref.melee.value;
skillName = actor.data.data.skills.ref.melee.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefMelee")}`;
actor.data.data.skills.ref.melee.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.melee.modifiers
break;
case "Small Blades":
skill = actor.data.data.skills.ref.smallblades.value;
skillName = actor.data.data.skills.ref.smallblades.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefSmall")}`;
actor.data.data.skills.ref.smallblades.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.smallblades.modifiers
break;
case "Staff/Spear":
skill = actor.data.data.skills.ref.staffspear.value;
skillName = actor.data.data.skills.ref.staffspear.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefStaff")}`;
actor.data.data.skills.ref.staffspear.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.staffspear.modifiers
break;
case "Swordsmanship":
skill = actor.data.data.skills.ref.swordsmanship.value;
skillName = actor.data.data.skills.ref.swordsmanship.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefSwordmanship")}`;
actor.data.data.skills.ref.swordsmanship.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.swordsmanship.modifiers
break;
}

Expand All @@ -617,13 +602,7 @@ function ExecuteDefense(actor){
if (customDef != "0") {
rollFormula += !displayFormula ? `+${customDef}`: `+${customDef}[${game.i18n.localize("WITCHER.Settings.Custom")}]` ;
}

if (totalModifiers < 0){
rollFormula += !displayRollDetails ? `${totalModifiers}` : `${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
if (totalModifiers > 0){
rollFormula += !displayRollDetails ? `+${totalModifiers}`: `+${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
rollFormula = addModifiers(modifiers, rollFormula)

let roll = await new Roll(rollFormula).roll()
if (roll.dice[0].results[0].result == 10){
Expand Down Expand Up @@ -653,38 +632,38 @@ function ExecuteDefense(actor){
let stat = actor.data.data.stats.ref.current;
let skill = 0;
let skillName = "";
let modifiers;
let displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.Dialog.ButtonParry")}`;
let totalModifiers = 0;
switch(defense){
case "Brawling":
skill = actor.data.data.skills.ref.brawling.value;
skillName = actor.data.data.skills.ref.brawling.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefBrawling")} - 3`;
actor.data.data.skills.ref.brawling.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.brawling.modifiers
break;
case "Melee":
skill = actor.data.data.skills.ref.melee.value;
skillName = actor.data.data.skills.ref.melee.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefMelee")} - 3`;
actor.data.data.skills.ref.melee.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.melee.modifiers
break;
case "Small Blades":
skill = actor.data.data.skills.ref.smallblades.value;
skillName = actor.data.data.skills.ref.smallblades.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefSmall")} - 3`;
actor.data.data.skills.ref.smallblades.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.smallblades.modifiers
break;
case "Staff/Spear":
skill = actor.data.data.skills.ref.staffspear.value;
skillName = actor.data.data.skills.ref.staffspear.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefStaff")} - 3`;
actor.data.data.skills.ref.staffspear.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.staffspear.modifiers
break;
case "Swordsmanship":
skill = actor.data.data.skills.ref.swordsmanship.value;
skillName = actor.data.data.skills.ref.swordsmanship.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefSwordmanship")} - 3`;
actor.data.data.skills.ref.swordsmanship.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.swordsmanship.modifiers
break;
}

Expand All @@ -693,13 +672,7 @@ function ExecuteDefense(actor){
if (customDef != "0") {
rollFormula += !displayFormula ? `+${customDef}`: `+${customDef}[${game.i18n.localize("WITCHER.Settings.Custom")}]` ;
}

if (totalModifiers < 0){
rollFormula += !displayRollDetails ? `${totalModifiers}` : `${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
if (totalModifiers > 0){
rollFormula += !displayRollDetails ? `+${totalModifiers}`: `+${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
rollFormula = addModifiers(modifiers, rollFormula)

let roll = await new Roll(rollFormula).roll()
if (roll.dice[0].results[0].result == 10){
Expand Down Expand Up @@ -730,37 +703,36 @@ function ExecuteDefense(actor){
let skill = 0;
let skillName = ""
let displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.Dialog.ButtonParry")}`;
let totalModifiers = 0;
switch(defense){
case "Brawling":
skill = actor.data.data.skills.ref.brawling.value;
skillName = actor.data.data.skills.ref.brawling.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefBrawling")} - 5`;
actor.data.data.skills.ref.brawling.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.brawling.modifiers
break;
case "Melee":
skill = actor.data.data.skills.ref.melee.value;
skillName = actor.data.data.skills.ref.melee.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefMelee")} - 5`;
actor.data.data.skills.ref.melee.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.melee.modifiers
break;
case "Small Blades":
skill = actor.data.data.skills.ref.smallblades.value;
skillName = actor.data.data.skills.ref.smallblades.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefSmall")} - 5`;
actor.data.data.skills.ref.smallblades.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.smallblades.modifiers
break;
case "Staff/Spear":
skill = actor.data.data.skills.ref.staffspear.value;
skillName = actor.data.data.skills.ref.staffspear.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefStaff")} - 5`;
actor.data.data.skills.ref.staffspear.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.staffspear.modifiers
break;
case "Swordsmanship":
skill = actor.data.data.skills.ref.swordsmanship.value;
skillName = actor.data.data.skills.ref.swordsmanship.label;
displayFormula = `1d10 + ${game.i18n.localize("WITCHER.Actor.Stat.Ref")} + ${game.i18n.localize("WITCHER.SkRefSwordmanship")} - 5`;
actor.data.data.skills.ref.swordsmanship.modifiers.forEach(item => totalModifiers += Number(item.value));
modifiers = actor.data.data.skills.ref.swordsmanship.modifiers
break;
}

Expand All @@ -769,13 +741,7 @@ function ExecuteDefense(actor){
if (customDef != "0") {
rollFormula += !displayFormula ? `+${customDef}`: `+${customDef}[${game.i18n.localize("WITCHER.Settings.Custom")}]` ;
}

if (totalModifiers < 0){
rollFormula += !displayRollDetails ? `${totalModifiers}` : `${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
if (totalModifiers > 0){
rollFormula += !displayRollDetails ? `+${totalModifiers}`: `+${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
rollFormula = addModifiers(modifiers, rollFormula)

let roll = await new Roll(rollFormula).roll()
if (roll.dice[0].results[0].result == 10){
Expand Down Expand Up @@ -810,15 +776,8 @@ function ExecuteDefense(actor){
if (customDef != "0") {
rollFormula += !displayFormula ? `+${customDef}`: `+${customDef}[${game.i18n.localize("WITCHER.Settings.Custom")}]` ;
}

let totalModifiers = 0;
actor.data.data.skills.ref.dodge.modifiers.forEach(item => totalModifiers += Number(item.value));
if (totalModifiers < 0){
rollFormula += !displayRollDetails ? `${totalModifiers}` : `${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}
if (totalModifiers > 0){
rollFormula += !displayRollDetails ? `+${totalModifiers}`: `+${totalModifiers}[${game.i18n.localize("WITCHER.Settings.modifiers")}]`
}

rollFormula = addModifiers(actor.data.data.skills.ref.dodge.modifiers, rollFormula)

let roll = await new Roll(rollFormula).roll()
if (roll.dice[0].results[0].result == 10){
Expand Down
2 changes: 1 addition & 1 deletion styles/loot-sheet.css
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
flex: 1
}

.hidden-view {
table tr.hidden-view {
background-color: silver;
}

Expand Down
2 changes: 1 addition & 1 deletion system.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "The Witcher TRPG System.",
"minimumCoreVersion" : "9",
"compatibleCoreVersion" : "9",
"version": 0.84,
"version": 0.85,
"author": "TechAntho",
"scripts": [
],
Expand Down
8 changes: 8 additions & 0 deletions template.json
Original file line number Diff line number Diff line change
Expand Up @@ -820,6 +820,7 @@
"value": "",
"label": "WITCHER.Reputation"
},
"socialStanding": "",
"name": "",
"race": "",
"gender": "",
Expand Down Expand Up @@ -1357,6 +1358,13 @@
"perk4": {
"name": "",
"description": ""
},
"socialStanding": {
"north": "",
"nilfgaard": "",
"skellige": "",
"dolBlathanna": "",
"mahakam": ""
}
},
"effect": {
Expand Down
15 changes: 15 additions & 0 deletions templates/partials/character-header.html
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,21 @@
<td></td>
<td></td>
</tr>
<tr>
<td><b>{{localize "WITCHER.character.socialStanding"}}</b></td>
<td colspan="2">
<select name="data.general.socialStanding" id="socialStanding-select">
{{#select data.general.socialStanding}}
<option value="equal">{{localize "WITCHER.socialStanding.equal"}}</option>
<option value="tolerated">{{localize "WITCHER.socialStanding.tolerated"}}</option>
<option value="hated">{{localize "WITCHER.socialStanding.hated"}}</option>
<option value="feared">{{localize "WITCHER.socialStanding.feared"}}</option>
<option value="hatedFeared">{{localize "WITCHER.socialStanding.hatedFeared"}}</option>
{{/select}}
</select>
</td>
<td></td>
</tr>
</tbody>
</table>
</div>
Expand Down
5 changes: 2 additions & 3 deletions templates/partials/tab-inventory.html
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,7 @@ <h2>{{localize "WITCHER.Inventory.Diagrams"}} <a class="add-item" data-itemType
</td>
<td>
<div class="learned-data">
<a class="crafting-craft"><i class="fas fa-hammer"></i></a>
<a class="item-delete"><i class="fas fa-trash-alt"></i></a>
<a class="item-edit"><i class="fas fa-edit"></i></a>
</div>
Expand Down Expand Up @@ -487,9 +488,7 @@ <h2>{{localize "WITCHER.Inventory.Diagrams"}} <a class="add-item" data-itemType
</div>
</td>
<td><div>
{{#if diagram.data.isFormulae}}
<a class="alchemy-potion"><i class="fas fa-vial"></i></a>
{{/if}}
<a class="alchemy-potion"><i class="fas fa-vial"></i></a>
<a class="item-edit"><i class="fas fa-edit"></i></a>
<a class="item-delete"><i class="fas fa-trash-alt"></i></a>
</div></td>
Expand Down
Loading

0 comments on commit c8bb2aa

Please sign in to comment.