Compare commits

...

14 Commits

Author SHA1 Message Date
34924b07c0 Add gitea CI/CD 2023-08-26 19:04:48 +02:00
66bf299ea4 Add gitea CI/CD 2023-08-26 19:01:51 +02:00
37ab0d01dc Add gitea CI/CD 2023-08-26 19:00:25 +02:00
2e3a97de04 Add gitea CI/CD 2023-08-26 18:11:41 +02:00
01dbe76f59 Minor fixes 2023-08-26 18:03:08 +02:00
ca33defd75 Update v11 2023-06-23 09:02:45 +02:00
2e616e3e31 Update v11 2023-06-23 08:37:56 +02:00
3be7f4bf9f Update v11 2023-06-23 08:37:50 +02:00
1b8e0840b0 Update v11 2023-06-22 23:05:50 +02:00
2cdd096c98 Update v11 2023-06-22 23:05:36 +02:00
8fcb17b566 Update v11 2023-06-22 23:05:04 +02:00
ad79dbb015 New combat options 2023-06-22 20:36:40 +02:00
73ccf44dd4 New combat options 2023-06-22 20:34:17 +02:00
ec3649799f v10/v11 compat 2023-05-25 16:29:43 +02:00
19 changed files with 305 additions and 75 deletions

54
.gitea/workflows/main.yml Normal file
View File

@ -0,0 +1,54 @@
name: Release Creation
on:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo "💡 The ${{ gitea.repository }} repository will cloned to the runner."
#- uses: actions/checkout@v3
- uses: RouxAntoine/checkout@v3.5.4
with:
ref: 'v10'
# get part of the tag after the `v`
- name: Extract tag version number
id: get_version
uses: battila7/get-version-action@v2
# Substitute the Manifest and Download URLs in the module.json
- name: Substitute Manifest and Download Links For Versioned Ones
id: sub_manifest_link_version
uses: microsoft/variable-substitution@v1
with:
files: 'system.json'
env:
version: ${{steps.get_version.outputs.version-without-v}}
url: https://www.uberwald.me/gitea/public/bol
manifest: https://www.uberwald.me/gitea/public/bol/releases/latest/module.json
download: https://www.uberwald.me/gitea/public/bol/releases/download/${{github.event.release.tag_name}}/bol.zip
# Create a zip file with all files required by the module to add to the release
- run: |
apt update -y
apt install -y zip
- run: zip -r ./fvtt-ecryme.zip system.json template.json README.md LICENSE.txt fonts/ images/ lang/ modules/ packs/ styles/ templates/ translated/
- name: setup go
uses: https://github.com/actions/setup-go@v4
with:
go-version: '>=1.20.1'
- name: Use Go Action
id: use-go-action
uses: https://gitea.com/actions/release-action@main
with:
files: |-
./fvtt-ecryme.zip
system.json
api_key: '${{secrets.RELEASE_TOKEN_UBERWALD}}'

15
.gitignore vendored
View File

@ -1 +1,14 @@
.history/
.vscode/settings.json
.idea
.history
todo.md
/.vscode
/ignored/
/node_modules/
/jsconfig.json
/package.json
/package-lock.json
/packs/*/
/packs/*/CURRENT
/packs/*/LOG
/packs/*/LOCK

View File

@ -1,3 +1,7 @@
# v11.0.8
- Correction sur les malus de bouclier (blocage)
- Corrrection sur le malus d'init des boucliers qui était mal affiché dans la fiche d'item
# v10.4.0
- Ajout de la gestion d'effets

View File

@ -1044,9 +1044,18 @@ body.system-bol img#logo {
justify-content: flex-start;
flex-direction: column;
position: absolute;
top: 2.75rem;
/*transform: translate(0, -30%);*/
top: -4rem;
max-width: 250px;
left: 4rem;
}
.tokenhudext.right2 {
justify-content: flex-start;
flex-direction: column;
position: absolute;
top: -4rem;
left: 12rem;
}
.control-icon.tokenhudicon {
width: fit-content;
height: fit-content;
@ -1063,7 +1072,7 @@ body.system-bol img#logo {
z-index: 2;
}
.bol-hud-menu label {
font-size: 0.75rem;
font-size: 0.6rem;
}
.bol-margin-tb-2 {
margin-top: 2px;

View File

@ -355,6 +355,16 @@
"BOL.vehicleCategory.boat" : "Schiff",
"BOL.vehicleCategory.other" : "Anderes",
"BOL.ui.astrologerPoints": "Points d'Astrologie",
"BOL.ui.astrologerPointsLabel": "Points d'Astrologie actuels",
"BOL.ui.ishoroscopemajor": "Horoscope Majeur (ie de groupe) ?",
"BOL.ui.answer": "Réponse",
"BOL.ui.horoscopefavorable": "Favorable (1dB)",
"BOL.ui.horoscopeunfavorable": "Défavorable (1dM)",
"BOL.ui.horoscopes": "Horoscopes",
"BOL.ui.horoscopesBonus": "Horoscopes (Bonus)",
"BOL.ui.horoscopesMalus": "Horoscopes (Malus)",
"BOL.ui.groupHoroscope": "Horoscrope de Groupe de ",
"BOL.range.PointBlank": "Direkt",
"BOL.range.Short": "Kurz",

View File

@ -35,6 +35,17 @@
"BOL.ui.tab.spellalchemy": "Spells & Alchemy",
"BOL.ui.tab.astrologer": "Astrologer",
"BOL.ui.astrologerPoints": "Points d'Astrologie",
"BOL.ui.astrologerPointsLabel": "Points d'Astrologie actuels",
"BOL.ui.ishoroscopemajor": "Horoscope Majeur (ie de groupe) ?",
"BOL.ui.answer": "Réponse",
"BOL.ui.horoscopefavorable": "Favorable (1dB)",
"BOL.ui.horoscopeunfavorable": "Défavorable (1dM)",
"BOL.ui.horoscopes": "Horoscopes",
"BOL.ui.horoscopesBonus": "Horoscopes (Bonus)",
"BOL.ui.horoscopesMalus": "Horoscopes (Malus)",
"BOL.ui.groupHoroscope": "Horoscrope de Groupe de ",
"BOL.ui.properties": "Properties",
"BOL.ui.description": "Description",
"BOL.ui.actions": "Actions",
@ -155,6 +166,7 @@
"BOL.ui.attackValue": "Attack Value",
"BOL.ui.weaponbonus": "Cette arme bénéficie déja d'un Dé de Bonus (Arme Favorite prise en compte, par exemple)",
"BOL.ui.initMalus": "Init malus",
"BOL.ui.isspecial": "Spécial ?",
"BOL.featureCategory.origins": "Origins",
"BOL.featureCategory.races": "Races",
@ -186,6 +198,7 @@
"BOL.fightOptionTypes.fulldefense": "Full Defense",
"BOL.fightOptionTypes.defense": "Defensive Posture",
"BOL.fightOptionTypes.attack": "Offensive Posture",
"BOL.fightOptionTypes.other": "Other",
"BOL.itemCategory.object": "Object",
"BOL.itemCategory.equipment": "Equipment",

View File

@ -218,6 +218,7 @@
"BOL.ui.itemnotfound": "Impossible de trouver l'objet de cette macro",
"BOL.ui.noinit": "Pas d'initiative trouvée, veuillez en enregistrer une.",
"BOL.ui.warninitiative": "Votre initiative n'est pas disponible. Effectuez un jet d'Initiative pour ce combat.",
"BOL.ui.isspecial": "Spéciale ?",
"BOL.featureCategory.origins": "Origines",
"BOL.featureCategory.races": "Races",
@ -252,6 +253,7 @@
"BOL.fightOptionTypes.fulldefense": "Défense totale",
"BOL.fightOptionTypes.defense": "Posture défensive",
"BOL.fightOptionTypes.attack": "Posture offensive",
"BOL.fightOptionTypes.other": "Autres",
"BOL.itemCategory.object": "Objet",
"BOL.itemCategory.equipment": "Équipement",

View File

@ -1,6 +1,5 @@
import { BoLDefaultRoll } from "../controllers/bol-rolls.js";
import { BoLDefaultRoll, BoLRoll } from "../controllers/bol-rolls.js";
import { BoLUtility } from "../system/bol-utility.js";
import { BoLRoll } from "../controllers/bol-rolls.js";
/**
* Extend the base Actor entity by defining a custom roll data structure which is ideal for the Simple system.
@ -22,6 +21,18 @@ export class BoLActor extends Actor {
super.prepareData()
}
/* -------------------------------------------- */
async _preCreate(data, options, user) {
await super._preCreate(data, options, user);
// Configure prototype token settings
const prototypeToken = {};
if (this.type === "character") Object.assign(prototypeToken, {
sight: { enabled: true }, actorLink: true, disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY
});
this.updateSource({ prototypeToken });
}
/* -------------------------------------------- */
isHeroAdversary() {
if (this.type === 'character') {
@ -753,7 +764,7 @@ export class BoLActor extends Actor {
/*-------------------------------------------- */
buildListeActions() {
return this.melee.concat(this.ranged).concat(this.natural)
return this.melee.concat(this.ranged).concat(this.natural).concat(this.fightoptions)
}
/*-------------------------------------------- */

View File

@ -160,7 +160,7 @@ export class BoLRoll {
// Manage specific case
let fightOption = actor.getActiveFightOption()
if (fightOption && fightOption.system.fightoptiontype == "fulldefense") {
if (fightOption && fightOption.system.properties.fightoptiontype == "fulldefense") {
ui.notifications.warn(`{{actor.name}} est en Défense Totale ! Il ne peut pas attaquer ce round.`)
return
}
@ -424,6 +424,7 @@ export class BoLRoll {
} else {
this.rollData.shieldMalus = 0
}
this.updateTotalDice()
})
html.find('#career').change((event) => {
@ -492,10 +493,10 @@ export class BoLRoll {
rollData.armorMalus = defender.armorMalusValue
rollData.shieldBlock = 'none'
let shields = defender.shields
//console.log("Defender stats", defender)
for (let shield of shields) {
rollData.shieldBlock = (shield.system.properties.blocking.blockingAll) ? 'blockall' : 'blockone';
rollData.shieldAttackMalus = (shield.system.properties.blocking.malus) ? shield.system.properties.blocking.malus : 1;
rollData.applyShieldMalus = false
}
}
}
@ -528,11 +529,6 @@ export class BoLRoll {
rollData.nbFlaws = 0
rollData.nbDice = 0
rollData.isHeroAdversary = actor.isHeroAdversary()
if (rollData.shieldBlock == 'blockall') {
rollData.shieldMalus = rollData.shieldAttackMalus;
} else {
rollData.shieldMalus = 0
}
rollData.careerBonus = rollData.careerBonus ?? 0
rollData.modRanged = rollData.modRanged ?? 0
rollData.mod = rollData.mod ?? 0
@ -545,6 +541,12 @@ export class BoLRoll {
this.preProcessFightOption(rollData)
this.updateArmorMalus(rollData)
this.updatePPCost(rollData)
// Prepare blocking case
if (rollData.shieldBlock == 'blockall') {
rollData.shieldMalus = rollData.shieldAttackMalus;
} else {
rollData.shieldMalus = 0
}
// Save
this.rollData = rollData
console.log("ROLLDATA", rollData)
@ -571,24 +573,21 @@ export class BoLRoll {
ui.notifications.warn("Pas assez de Points de Pouvoir !")
return
}
//console.log("ROLLMALUS", rollData)
rollData.registerInit = (rollData.aptitude && rollData.aptitude.key == 'init') ? $('#register-init').is(":checked") : false;
const isMalus = (rollData.bmDice < 0)
//rollData.nbDice += (rollData.attackBonusDice) ? 1 : 0
let rollbase = rollData.attrValue + rollData.aptValue
if (rollData.weapon && rollData.weapon.system.properties.onlymodifier) {
rollbase = 0
}
let diceData = BoLUtility.getDiceData()
let malusInit = rollData.combatData?.malusInit || 0
const modifiers = rollbase + rollData.careerBonus + rollData.mod + rollData.weaponModifier - rollData.defence - rollData.modArmorMalus + rollData.shieldMalus + rollData.attackModifier + rollData.appliedArmorMalus + rollData.effectModifier - malusInit
const formula = (isMalus) ? rollData.nbDice + "d" + diceData.diceFormula + "kl2 + " + modifiers : rollData.nbDice + "d" + diceData.diceFormula + "kh2 + " + modifiers
rollData.formula = formula
rollData.modifiers = modifiers
console.log("Rolldata before", rollData)
let r = new BoLDefaultRoll(rollData);
r.roll();

View File

@ -27,23 +27,23 @@ export class BoLItemSheet extends ItemSheet {
data.category = itemData.system.category
data.isGM = game.user.isGM;
data.itemProperties = this.item.itemProperties;
data.description = await TextEditor.enrichHTML(this.object.system.description, {async: true})
data.description = await TextEditor.enrichHTML(this.object.system.description, { async: true })
// Dynamic default data fix/adapt
if (itemData.type == "item") {
if (!itemData.system.category) {
itemData.system.category = "equipment"
}
if ( itemData.system.category == "equipment" && itemData.system.properties.equipable) {
if (itemData.system.category == "equipment" && itemData.system.properties.equipable) {
if (!itemData.system.properties.slot) {
itemData.system.properties.slot = "-"
}
}
if (itemData.system.category == 'spell') {
if(!itemData.system.properties.mandatoryconditions) {
if (!itemData.system.properties.mandatoryconditions) {
itemData.system.properties.mandatoryconditions = []
}
if(!itemData.system.properties.optionnalconditions) {
if (!itemData.system.properties.optionnalconditions) {
itemData.system.properties.optionnalconditions = []
}
for (let i = 0; i < 4; i++) {
@ -64,7 +64,27 @@ export class BoLItemSheet extends ItemSheet {
}
/* -------------------------------------------- */
_getHeaderButtons() {
let buttons = super._getHeaderButtons();
buttons.unshift({
class: "post",
icon: "fas fa-comment",
onclick: ev => this.postItem()
});
return buttons
}
/* -------------------------------------------- */
postItem() {
let chatData = duplicate(this.item)
if (this.actor) {
chatData.actor = { id: this.actor.id };
}
BoLUtility.postItem(chatData);
}
/* -------------------------------------------- */
/** @override */
setPosition(options = {}) {
const position = super.setPosition(options);

View File

@ -1,5 +1,6 @@
/* -------------------------------------------- */
import { BoLRoll } from "../controllers/bol-rolls.js";
import { BoLUtility } from "../system/bol-utility.js";
/* -------------------------------------------- */
export class BoLTokenHud {
@ -30,10 +31,17 @@ export class BoLTokenHud {
(event) => {
let actionIndex = Number(event.currentTarget.attributes['data-action-index'].value)
let action = hudData.actionsList[actionIndex]
const weapon = actor.items.get( action._id )
BoLRoll.weaponCheckWithWeapon(hudData.actor, duplicate(weapon))
//console.log("Clicked", action)
} )
const actionItem = actor.items.get(action._id)
if (actionItem.system.subtype == "weapon") {
BoLRoll.weaponCheckWithWeapon(hudData.actor, duplicate(actionItem))
} else if (actionItem.system.subtype == "fightoption") {
let chatData = duplicate(actionItem)
if (actionItem.actor) {
chatData.actor = { id: actionItem.actor._id };
}
BoLUtility.postItem(chatData);
}
})
const controlIconTarget = html.find('.control-icon[data-action=target]');
// att+apt+career
@ -41,18 +49,18 @@ export class BoLTokenHud {
(event) => {
let rollIndex = Number(event.currentTarget.attributes['data-roll-index'].value)
let roll = hudData.rollsList[rollIndex]
if ( roll.type == "aptitude") {
BoLRoll.aptitudeCheck(actor, roll.key )
} else if ( roll.type == "attribute") {
BoLRoll.attributeCheck(actor, roll.key )
if (roll.type == "aptitude") {
BoLRoll.aptitudeCheck(actor, roll.key)
} else if (roll.type == "attribute") {
BoLRoll.attributeCheck(actor, roll.key)
}
})
}
/* -------------------------------------------- */
static async addTokenHudExtensions(app, html, tokenId) {
const controlIconCombat = html.find('.control-icon[data-action=combat]')
if (controlIconCombat.length>0 ) {
const controlIconCombat = html.find('.control-icon[data-action=combat]')
if (controlIconCombat.length > 0) {
BoLTokenHud.addExtensionHud(app, html, tokenId);
}
}
@ -61,9 +69,9 @@ export class BoLTokenHud {
static async _configureSubMenu(insertionPoint, template, hudData, onMenuItem) {
const hud = $(await renderTemplate(template, hudData))
const list = hud.find('div.bol-hud-list')
BoLTokenHud._toggleHudListActive(hud, list);
hud.find('img.bol-hud-togglebutton').click(event => BoLTokenHud._toggleHudListActive(hud, list));
list.find('.bol-hud-menu').click(onMenuItem);

View File

@ -2,7 +2,7 @@ import { BoLRoll, BoLDefaultRoll } from "../controllers/bol-rolls.js";
// Spell circle to min PP cost
const __circle2minpp = { 0: 0, 1: 2, 2: 6, 3: 11 }
const __validDices = {"6": 1, "8": 1, "10": 1, "12": 1}
const __validDices = { "6": 1, "8": 1, "10": 1, "12": 1 }
export class BoLUtility {
@ -41,8 +41,8 @@ export class BoLUtility {
config: true,
default: "6",
type: String,
choices: { "6": "2d6", "8":"2d8", "10":"2d10", "12":"2d12", "20":"2d20"},
onChange: value => {
choices: { "6": "2d6", "8": "2d8", "10": "2d10", "12": "2d12", "20": "2d20" },
onChange: value => {
BoLUtility.setDiceFormula(value)
}
})
@ -58,7 +58,7 @@ export class BoLUtility {
step: 1
},
type: Number,
onChange: value => {
onChange: value => {
BoLUtility.setSuccessValue(value)
}
})
@ -74,7 +74,7 @@ export class BoLUtility {
step: 1
},
type: Number,
onChange: value => {
onChange: value => {
BoLUtility.setCriticalSuccessValue(value)
}
})
@ -90,7 +90,7 @@ export class BoLUtility {
step: 1
},
type: Number,
onChange: value => {
onChange: value => {
BoLUtility.setCriticalFailureValue(value)
}
})
@ -153,12 +153,12 @@ export class BoLUtility {
}
static getDiceData() {
let df = this.diceFormula
if ( !__validDices[String(this.diceFormula)]) {
if (!__validDices[String(this.diceFormula)]) {
df = "6"
}
return {
diceFormula: df,
successValue : this.successValue,
successValue: this.successValue,
criticalSuccessValue: this.criticalSuccessValue,
criticalFailureValue: this.criticalFailureValue
}
@ -199,6 +199,44 @@ export class BoLUtility {
CONFIG.statusEffects = duplicate(game.bol.config.statusEffects)
}
/* -------------------------------------------- */
static chatDataSetup(content, modeOverride, isRoll = false, forceWhisper) {
let chatData = {
user: game.user.id,
rollMode: modeOverride || game.settings.get("core", "rollMode"),
content: content
};
if (["gmroll", "blindroll"].includes(chatData.rollMode)) chatData["whisper"] = ChatMessage.getWhisperRecipients("GM").map(u => u.id);
if (chatData.rollMode === "blindroll") chatData["blind"] = true;
else if (chatData.rollMode === "selfroll") chatData["whisper"] = [game.user];
if (forceWhisper) { // Final force !
chatData["speaker"] = ChatMessage.getSpeaker();
chatData["whisper"] = ChatMessage.getWhisperRecipients(forceWhisper);
}
return chatData;
}
/* -------------------------------------------- */
static postItem(chatData) {
// Don't post any image for the item (which would leave a large gap) if the default image is used
if (chatData.img.includes("/blank.png")) {
chatData.img = null;
}
// JSON object for easy creation
chatData.jsondata = JSON.stringify(
{
compendium: "postedItem",
payload: chatData,
});
renderTemplate('systems/bol/templates/item/post-item.hbs', chatData).then(html => {
let chatOptions = BoLUtility.chatDataSetup(html);
ChatMessage.create(chatOptions, "selfroll")
});
}
/* -------------------------------------------- */
static createDirectOptionList(min, max) {
let options = {};
@ -314,11 +352,11 @@ export class BoLUtility {
return message.getFlag("world", "bol-roll-data")
}
/* -------------------------------------------- */
static requestInitRoll(actorId, combatData ) {
let actor = game.actors.get( actorId )
static requestInitRoll(actorId, combatData) {
let actor = game.actors.get(actorId)
if (actor && actor.isOwner) {
ui.notifications.info(game.i18n.localize("BOL.ui.warninitiative"))
BoLRoll.aptitudeCheck(actor, "init", undefined, combatData)
BoLRoll.aptitudeCheck(actor, "init", undefined, combatData)
}
}
@ -390,7 +428,7 @@ export class BoLUtility {
})
html.on("click", '.recup-vitalite', event => {
event.preventDefault()
event.preventDefault()
let actorId = event.currentTarget.attributes['data-actor-id'].value
let recupHP = event.currentTarget.attributes['data-recup-hp'].value
let actor = game.actors.get(actorId)
@ -422,7 +460,7 @@ export class BoLUtility {
rollData.defenseMode = defenseMode
let token = game.scenes.current.tokens.get(rollData.targetId)
let defender = token.actor
if (defenseMode == 'damage-with-armor') {
let armorFormula = defender.getArmorFormula()
rollData.rollArmor = new Roll(armorFormula)
@ -591,7 +629,7 @@ export class BoLUtility {
$(`#${sockmsg.data.id}`).hide() // Hide the options roll buttons
}
if (sockmsg.name == "msg_request_init_roll") {
this.requestInitRoll( sockmsg.data.actorId, sockmsg.data.combatData)
this.requestInitRoll(sockmsg.data.actorId, sockmsg.data.combatData)
}
if (sockmsg.name == "msg_damage_handling") {
BoLUtility.processDamageHandling(sockmsg.data.attackId, sockmsg.data.defenseMode, sockmsg.data.weaponId, sockmsg.data.msgId)
@ -620,7 +658,7 @@ export class BoLUtility {
let formula = damageString
if (damageString.includes("d") || damageString.includes("D")) {
var myReg = new RegExp('(\\d+)[dD]([\\d]+)([MB]*)?([\\+\\d]*)?', 'g')
let myReg = new RegExp('(\\d+)[dD]([\\d]+)([MB]*)?([\\+\\d]*)?', 'g')
let res = myReg.exec(damageString)
let nbDice = parseInt(res[1])
let postForm = 'kh' + nbDice

View File

@ -281,6 +281,7 @@ BOL.fightOptionTypes = {
"fulldefense": "BOL.fightOptionTypes.fulldefense",
"defense": "BOL.fightOptionTypes.defense",
"attack": "BOL.fightOptionTypes.attack",
"other": "BOL.fightOptionTypes.other"
}
BOL.itemIcons = {

View File

@ -1,7 +1,30 @@
{"_id":"4VsEmcj4YpdAaaZY","name":"Attaque au Défaut d'armure","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","data":{"category":null,"subtype":"fightoption","description":"<p>Vous visez une zone du corps non prot&eacute;g&eacute;e ou&nbsp;un point faible de l&rsquo;armure de votre adversaire.</p>\n<p>Appliquez la valeur de protection fixe de l&rsquo;armure comme malus &agrave; votre jet d&rsquo;attaque (-1 pour une armure l&eacute;g&egrave;re, -2 pour une armure moyenne et -3 pour une armure lourde). Si votre attaque passe malgr&eacute; ce malus, les d&eacute;g&acirc;ts de votre coup ignorent la protection de l&rsquo;armure.</p>\n<p>Si le MJ l&rsquo;accepte, cette option de combat pourra &eacute;galement permettre de trouver le d&eacute;faut de l&rsquo;armure naturelle d&rsquo;une cr&eacute;ature.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"armordefault","activated":false},"rank":0,"fightoptiontype":"armordefault"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.3nzfQvMvkK4ujRqI"}}}
{"name":"Posture Défensive","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","data":{"category":null,"subtype":"fightoption","description":"<p>Vous choisissez d&rsquo;adopter une attitude prudente, en restant toujours pr&ecirc;t &agrave; parer ou &agrave; esquiver l&rsquo;attaque de votre adversaire. Combattre en posture d&eacute;fensive vous conf&egrave;re un bonus de +1 en d&eacute;fense, mais vous subissez un malus de -1 &agrave; votre jet d&rsquo;attaque.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"defense","activated":false},"rank":0,"fightoptiontype":"defense"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.CS1fCtHTxp5v1krr"}},"_id":"FQPqaB86ZkRzsKwG"}
{"name":"Défense Totale","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","data":{"category":null,"subtype":"fightoption","description":"<p>Vous consacrez votre round &agrave; esquiver, parer et vous prot&eacute;ger des coups. Vous n&rsquo; effectuez pas d&rsquo;attaque durant le round, mais b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 en d&eacute;fense, qui s&rsquo;ajoute &eacute;ventuellement &agrave; celui que pourrait vous apporter un bouclier ou une arme secondaire de parade.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"fulldefense","activated":false},"rank":0,"fightoptiontype":"fulldefense"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.t8v7isBpnFzAbmUI"}},"_id":"JRboSn5RuGILpH0B"}
{"name":"Combat à Deux Armes (Défensif)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","data":{"category":null,"subtype":"fightoption","description":"<p>Vous ne pouvez utiliser que des armes l&eacute;g&egrave;res&nbsp;ou moyennes.</p>\n<p>Vous attaquez avec une arme et parez avec l&rsquo;autre. Vous consid&eacute;rez l&rsquo;arme de parade comme l&rsquo;&eacute;quivalent d&rsquo;un petit bouclier (+1 en d&eacute;fense contre une attaque), mais vous subissez un malus de -1 sur votre jet d&rsquo;attaque avec votre autre arme.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"twoweaponsdef","activated":false},"rank":0,"fightoptiontype":"twoweapons"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"_id":"JtU8EmKuda0M4Onv"}
{"_id":"a3Ev9xm8aM9kAmi3","name":"Attaque Intrépide","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","data":{"category":null,"subtype":"fightoption","description":"<p>Vous attaquez avec la plus extr&ecirc;me t&eacute;m&eacute;rit&eacute;.</p>\n<p>Vous ne b&eacute;n&eacute;ficiez pas de l&rsquo;&eacute;ventuel bonus d&rsquo;un&nbsp;bouclier ou d&rsquo;une arme secondaire de parade et subissez un malus de -2 &agrave; la d&eacute;fense. En revanche,&nbsp;vous b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 au jet d&rsquo;attaque.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"intrepid","activated":false},"rank":0,"fightoptiontype":"intrepid"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.589BS9KBGnUazrFA"}}}
{"name":"Posture Offensive","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","data":{"category":null,"subtype":"fightoption","description":"<p>Vous vous concentrez sur l&rsquo;attaque, au d&eacute;triment&nbsp;de votre d&eacute;fense. Cette option vous conf&egrave;re un bonus de +1 au jet d&rsquo;attaque, mais vous subissez un malus de -1 en d&eacute;fense.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"attack","activated":false},"rank":0,"fightoptiontype":"attack"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.BF7F5WvL1pbWVHNq"}},"_id":"hgUHJP6JFxbeiRQL"}
{"name":"Combat à Deux Armes (Offensif)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","data":{"category":null,"subtype":"fightoption","description":"<p>Vous ne pouvez utiliser que des armes l&eacute;g&egrave;res&nbsp;ou moyennes.</p>\n<p><span style=\"font-family: var(--font-primary); font-size: var(--font-size-14);\">Vous attaquez avec vos deux armes. </span><span style=\"font-family: var(--font-primary); font-size: var(--font-size-14);\">Vous n&rsquo;effectuez qu&rsquo;un seul jet d&rsquo;attaque avec un </span>malus de -1, mais vous infligez des d&eacute;g&acirc;ts comme&nbsp;si vous maniez une arme moyenne (si vous utilisez deux armes l&eacute;g&egrave;res) ou une arme lourde (si vous&nbsp;utilisez une arme moyenne et une arme l&eacute;g&egrave;re, ou deux armes moyennes).</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"twoweaponsatt","activated":false},"rank":0,"fightoptiontype":"twoweapons"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"kQghu0tL1dft5xLu":3},"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"_id":"wM4ZIVSSKApgzEmN"}
{"name":"La Passe du Khastok","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un Khastok de Malakut. Vous fauchez les jambes (ou les membres inf&eacute;rieurs) de<br>votre adversaire.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -2, mais si elle occasionne des d&eacute;g&acirc;ts, la cible doit r&eacute;ussir un test d&rsquo;Agilit&eacute;, avec votre score de M&ecirc;l&eacute;e en malus ou tomber au sol.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965170,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"4EmWdK1cv7EX0X3E"}
{"name":"Le Saut du Voleur (Distraire)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous faites une man&oelig;uvre ayant pour &nbsp;objectif de distraire l&rsquo;adversaire. Vous ne portez pas<br>d&rsquo;attaque.</p>\n<p>Si vous r&eacute;ussissez un test de R&eacute;action (Esprit+Initiative) avec l&rsquo;Esprit de votre cible en malus, elle<br>subit un malus de -1 pour toutes ses actions dans le round en cours.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965165,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"5L42okgdCMC8MZb6"}
{"name":"La Fureur de Charkond (Intimider)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous faites une man&oelig;uvre physique dans l&rsquo;objectif d&rsquo;impressionner votre adversaire en lieu et place de votre attaque.</p>\n<p>Si vous r&eacute;ussissez un test de Vigueur+M&ecirc;l&eacute;e, avec l&rsquo;Esprit de votre cible en malus, elle subit un malus de -2 sur tout ses tests d&rsquo;attaque pour le reste du round. Ne fonctionne que sur un adversaire sur lequel l&rsquo;Intimidation est applicable, donc en g&eacute;n&eacute;ral ne fonctionne pas sur les cr&eacute;atures.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965166,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"6D42OgoKxwtV5tDD"}
{"name":"Les Poignards de Karyzon (Lancer x2)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec deux Couteaux ou Poignards de lancer. Arm&eacute; d&rsquo;un Poignard dans chaque main, vous<br>les lancez sur 2 cibles diff&eacute;rentes en m&ecirc;me temps</p>\n<p>Chaque attaque &nbsp;est &nbsp;r&eacute;solue s&eacute;par&eacute;ment et souffre d&rsquo;un malus de -2.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965173,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"6tiu12ROxOPE31qU"}
{"name":"Le Halakh-Kriss (Spéciale Kriss)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un Kriss d&rsquo;Halakh. Vous portez un coup vicieux &agrave; votre adversaire.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -1, mais si elle r&eacute;ussit, vous augmentez les d&eacute;g&acirc;ts de 1 point.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965169,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"6zSkgyYkk7EV4BGU"}
{"name":"Le Plomb de lAxos (Fronde Axos)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec une Fronde de l&rsquo;Axos. Vous faites tournoyer votre fronde &agrave; grande vitesse.</p>\n<p>Votre tir souffre d&rsquo;un malus de -2, mais vos d&eacute;g&acirc;ts b&eacute;n&eacute;ficient de la vigueur enti&egrave;re &agrave; la place de la moiti&eacute; de la Vigueur.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965169,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"8p1EsWyLxvmrXc7p"}
{"name":"Le Coup de Mangaï (Entraver - Fouet)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un fouet. Vous fouettez votre adversaire pour le g&ecirc;ner et l&rsquo;entraver.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -2, mais si elle r&eacute;ussit, votre fouet s&rsquo;enroule autour d&rsquo;un membre de votre cible. Tant que vous maintenez le fouet, elle subit un malus de -2 pour toutes ses actions, et -1 en d&eacute;fense. En lieu et place d&rsquo;une attaque, la cible peut tenter de se lib&eacute;rer en r&eacute;ussissant un jet de Vigueur+Initiative, avec votre Vigueur en malus.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"9My3kH5KeAdFmF1F"}
{"name":"Le Trait du Beshaar (Javelot)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un Javelot. Vous lancez votre javelot &agrave; une distance plus grande que la plupart des<br>autres aventuriers.</p>\n<p>Votre tir souffre d&rsquo;un malus de -1, mais la port&eacute;e du javelot est doubl&eacute;e (12m au lieu de 6m).</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"9d4rHBS7CMZI0t4E","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"La pose de lEsclave (Posture Défensive)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.CS1fCtHTxp5v1krr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous choisissez d&rsquo;adopter une attitude prudente, en restant toujours pr&ecirc;t &agrave; parer ou &agrave; esquiver l&rsquo;attaque de votre adversaire. Combattre en posture d&eacute;fensive vous conf&egrave;re un bonus de +1 en d&eacute;fense, mais vous subissez un malus de -1 &agrave; votre jet d&rsquo;attaque.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"defense","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"defense"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310228,"modifiedTime":1687457965159,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"AoT2c0af4lY6aBsx"}
{"name":"La Passe de Charkond (Feinte)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous placez une botte sp&eacute;ciale, pour tromper et profiter de la d&eacute;fense de votre adversaire. Uniquement possible avec un dague ou une arme de type &eacute;p&eacute;e (sabre, cimeterre, etc.).</p>\n<p>Si vous r&eacute;ussissez un jet d&rsquo;Esprit +Carri&egrave;re guerri&egrave;re (mercenaire, soldat, etc.) en plus de votre<br>attaque, la d&eacute;fense de votre adversaire s&rsquo;ajoute &agrave; vos d&eacute;g&acirc;ts.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965167,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"Cs2yV3V8D7kHBTmT"}
{"name":"Le Coup du Soldat (Désarmer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous ne pouvez utiliser que des armes l&eacute;g&egrave;res ou moyennes. Vous visez l&rsquo;arme de votre adversaire<br>pour la faire tomber.</p>\n<p>Vous portez une attaque sur l&rsquo;arme, avec pour malus l&rsquo;Agilit&eacute;+M&ecirc;l&eacute;e de votre adversaire. En cas de r&eacute;ussite, l&rsquo;arme vis&eacute;e tombe au sol &agrave; 1d6-2 m&egrave;tres de votre opposant.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942165,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"EN3xW64gAAj6GxZs","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"La Main dAfyra (Se Reposer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous restez au contact de votre adversaire, mais vous vous concentrez sur vous-m&ecirc;me. Vous<br>ne pouvez pas attaquer ce round.</p>\n<p>Si vous r&eacute;ussissez un jet de Vigueur, vous r&eacute;cup&eacute;rez 2 Points de Vitalit&eacute;, 4 sur un succ&egrave;s H&eacute;ro&iuml;que. Ces points ne peuvent &ecirc;tre r&eacute;cup&eacute;r&eacute;s que si ils ont &eacute;t&eacute; perdus lors du combat en cours.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942166,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"EvADUhFjuz7G7ts9","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"Le Doigt de Karyzon (Tir x2)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous encha&icirc;nez 2 tirs au lieu d&rsquo;un, sans pr&eacute;cision. Uniquement avec armes de jet et arcs.</p>\n<p>Vous tirez (ou lancer) tr&egrave;s rapidement, sans pr&eacute;cision, sur la m&ecirc;me cible. Chaque tir/lancer souffre d&rsquo;un malus de -2.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"FMJGgMYdXztCBTtc"}
{"name":"La Rage du Barbare (Posture Offensive)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.BF7F5WvL1pbWVHNq"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous vous concentrez sur l&rsquo;attaque, au d&eacute;triment&nbsp;de votre d&eacute;fense. Cette option vous conf&egrave;re un bonus de +1 au jet d&rsquo;attaque, mais vous subissez un malus de -1 en d&eacute;fense.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"attack","activated":false},"rank":0,"fightoptiontype":"attack"},"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_stats":{"systemId":"bol","systemVersion":"11.0.2","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687467695919,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"_id":"MMcnWBowztvbmXgN"}
{"name":"La Passe de lAssassin (Avantage)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous vous placez de mani&egrave;re &agrave; obtenir &nbsp;une &nbsp;position &nbsp;plus avantageuse pour portez vos attaques.</p>\n<p>En plus de votre attaque normale, vous devez r&eacute;ussir un jet de R&eacute;action (Esprit+Initiative). Sur une<br>r&eacute;ussite, vous b&eacute;n&eacute;ficiez d&rsquo;un d&eacute; bonus pour votre prochaine attaque. Si vous renoncez &agrave; votre attaque, vous b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 pour le jet de R&eacute;action. Sur un &eacute;chec, c&rsquo;est votre adversaire qui b&eacute;n&eacute;ficie d&rsquo;un d&eacute; bonus pour sa prochaine attaque.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942165,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"PCa0SQruR9VZUbPh","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"La Folie de Dyr (Occuper)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous faites tournoyer votre arme dans tout les sens, pour faire reculer votre adversaire.</p>\n<p>Votre attaque re&ccedil;oit un malus suppl&eacute;mentaire de -1 et n&rsquo;occasionne pas de d&eacute;g&acirc;ts. En cas<br>de succ&egrave;s, votre adversaire ne peut pas attaquer ce round. Uniquement sur des adversaires au maximum de de taille sup&eacute;rieure d&rsquo;un cran &agrave; la v&ocirc;tre.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"PENp7jlG0DirTQeo","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"Le Dit de Iondal (Moquer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous moquez votre adversaire avec une phrase bien sentie.</p>\n<p>Si vous r&eacute;ussissez un test d&rsquo;Esprit+Carri&egrave;re appropri&eacute;e, avec l&rsquo;Esprit de votre cible en malus, elle<br>subit un malus de -2 en d&eacute;fense pour le reste du round.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942166,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"VSOjm28jhFhyWk6b","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"Le Tranchant de Parsool (Hache de Parsool)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec une Hache d&rsquo;Abordage de Parsool. Vous placez une attaque visant l&rsquo;armure de votre adversaire pour la d&eacute;truire.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -1, mais si elle r&eacute;ussit, vous faites sauter une pi&egrave;ce d&rsquo;armure de votre adversaire au lieu de faire des d&eacute;g&acirc;ts. L&rsquo;armure touch&eacute;e se d&eacute;grade d&rsquo;un rang de protection. Uniquement valable sur des adversaires portant une armure artificielle.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942168,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"VfTa073U4xhs1JWp","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"La Corde de Tyrus (Arc de Tyrus)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec un arc long de Tyrus. Vous tendez la corde si fort que votre fl&egrave;che porte plus loin.</p>\n<p>Votre attaque souffre d&rsquo;un malus de -2, mais si elle r&eacute;ussit, vous doublez la distance de tir de l&rsquo;Arc (44m au lieu de 22m).</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942169,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"WQkzlwaww7KgarAt","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"Loeil du Mercenaire (Observer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous observez attentivement l&rsquo;un des adversaires ou un groupe d&rsquo;adversaires similaires. Vous ne<br>portez pas d&rsquo;attaque.</p>\n<p>Si vous r&eacute;ussissez un jet d&rsquo;Esprit + Carri&egrave;re &nbsp;guerri&egrave;re (mercenaire, soldat, etc.) en observant l&rsquo;adversaire, vous pouvez donner un bonus de +2 &agrave; l&rsquo;attaque ou &agrave; la d&eacute;fense &agrave; l&rsquo;un de vos alli&eacute; contre ce m&ecirc;me adversaire pour sa prochaine action de ce type. Une seule assistance peut &ecirc;tre obtenue pour un m&ecirc;me adversaire.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687458428494,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"X7mIyzm1ad543fLY","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"La Force de Grondil (Frappe Brutale)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous placez une attaque brutale, sans finesse, mais avec toute votre force. Uniquement avec des armes moyenne ou plus (minimum d6 d&eacute;g&acirc;ts).</p>\n<p>Votre attaque souffre d&rsquo;un malus de -2, mais si elle r&eacute;ussit, vous pouvez ajouter la moiti&eacute; de votre Vigueur pour le calcul des d&eacute;g&acirc;ts (minimum 1). Ce bonus vient en plus du bonus de Vigueur de base d&eacute;j&agrave; applicable.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965167,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"Xeoqf4YtG7Yh9GUz"}
{"name":"La Ruade de lAxos (Déséquilibrer)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous cherchez &agrave; d&eacute;s&eacute;quilibrer votre adversaire. Vous ne portez pas d&rsquo;attaque.</p>\n<p>Si vous r&eacute;ussissez un jet de R&eacute;action (Esprit+Initiative) avec l&rsquo;Agilit&eacute; de votre cible comme malus, elle re&ccedil;oit un d&eacute; malus pour sa prochaine action et un malus de -1 en d&eacute;fense sur la prochaine attaque. Sur un succ&egrave;s h&eacute;ro&iuml;que et que votre cible est de la pi&eacute;taille ou un coriace, elle tombe au sol.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942166,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"aYGjdR5eWrIEq842","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"La Feinte du Druide (Attaque au Défaut d'armure)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.3nzfQvMvkK4ujRqI"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous visez une zone du corps non prot&eacute;g&eacute;e ou&nbsp;un point faible de l&rsquo;armure de votre adversaire.</p>\n<p>Appliquez la valeur de protection fixe de l&rsquo;armure comme malus &agrave; votre jet d&rsquo;attaque (-1 pour une armure l&eacute;g&egrave;re, -2 pour une armure moyenne et -3 pour une armure lourde). Si votre attaque passe malgr&eacute; ce malus, les d&eacute;g&acirc;ts de votre coup ignorent la protection de l&rsquo;armure.</p>\n<p>Si le MJ l&rsquo;accepte, cette option de combat pourra &eacute;galement permettre de trouver le d&eacute;faut de l&rsquo;armure naturelle d&rsquo;une cr&eacute;ature.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"armordefault","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"armordefault"},"_stats":{"systemId":"bol","systemVersion":"11.0.1","coreVersion":"10.291","createdTime":1687456310227,"modifiedTime":1687458575673,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"bfQMXfvqS236M0OJ"}
{"name":"La Frappe Lémurienne (Attaque Standard)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous portez une attaque &agrave; votre adversaire, avec votre arme. Au contact ou &agrave; distance.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942165,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"cqvDDFdlc6oOICxl","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"La Folie du Gladiateur (Attaque Intrépide)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.589BS9KBGnUazrFA"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous attaquez avec la plus extr&ecirc;me t&eacute;m&eacute;rit&eacute;.</p>\n<p>Vous ne b&eacute;n&eacute;ficiez pas de l&rsquo;&eacute;ventuel bonus d&rsquo;un&nbsp;bouclier ou d&rsquo;une arme secondaire de parade et subissez un malus de -2 &agrave; la d&eacute;fense. En revanche,&nbsp;vous b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 au jet d&rsquo;attaque.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"intrepid","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"intrepid"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310230,"modifiedTime":1687457965158,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"fTNUNRlUmfoNTkil"}
{"name":"Le Coup du Gladiateur (Combat à Deux Armes - Offensif)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous ne pouvez utiliser que des armes l&eacute;g&egrave;res&nbsp;ou moyennes.</p>\n<p><span style=\"font-family: var(--font-primary); font-size: var(--font-size-14);\">Vous attaquez avec vos deux armes. </span><span style=\"font-family: var(--font-primary); font-size: var(--font-size-14);\">Vous n&rsquo;effectuez qu&rsquo;un seul jet d&rsquo;attaque avec un </span>malus de -1, mais vous infligez des d&eacute;g&acirc;ts comme&nbsp;si vous maniez une arme moyenne (si vous utilisez deux armes l&eacute;g&egrave;res) ou une arme lourde (si vous&nbsp;utilisez une arme moyenne et une arme l&eacute;g&egrave;re, ou deux armes moyennes).</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"twoweaponsatt","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457965160,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"iWIttyo2UIafVsRB"}
{"name":"La Vengeance du Valgard (Epee Valgardienne)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Uniquement avec une &eacute;p&eacute;e Valgardienne. Si vous avez subit des d&eacute;g&acirc;ts lors de l&rsquo;attaque pr&eacute;c&eacute;dente, vous profitez du poids de votre arme pour appuyer votre coup.</p>\n<p>Si vous avez perdu des Points de Vitalit&eacute; &nbsp;lors &nbsp;de &nbsp;l&rsquo;attaque pr&eacute;c&eacute;dente, vous pouvez faire un<br>jet de Vigueur+Barbare en plus de votre attaque. Si les deux jets sont r&eacute;ussis, vous augmentez les d&eacute;g&acirc;ts de 2 points. Si seule l&rsquo;attaque est r&eacute;ussi, appliquez les d&eacute;g&acirc;ts normaux.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687457942169,"lastModifiedBy":"kQghu0tL1dft5xLu"},"_id":"ixpHCL4Uc9DUoBJ4","folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3}}
{"name":"LOeil du Chasseur (Viser)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Armes de jet ou de tir uniquement. Vous passez le round &agrave; viser. Vous b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 &agrave; votre prochain jet de tir ou de lancer.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"other","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.2","coreVersion":"10.291","createdTime":1687456310231,"modifiedTime":1687458793253,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"leslYWbb3hfGHPlX"}
{"name":"La Danseuse (Combat à Deux Armes - Défensif)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.lyMbLMPnFk0oXaSr"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous ne pouvez utiliser que des armes l&eacute;g&egrave;res&nbsp;ou moyennes.</p>\n<p>Vous attaquez avec une arme et parez avec l&rsquo;autre. Vous consid&eacute;rez l&rsquo;arme de parade comme l&rsquo;&eacute;quivalent d&rsquo;un petit bouclier (+1 en d&eacute;fense contre une attaque), mais vous subissez un malus de -1 sur votre jet d&rsquo;attaque avec votre autre arme.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"twoweaponsdef","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"twoweapons"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310229,"modifiedTime":1687457965157,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"uRuOskeAALWwxDEM"}
{"name":"La Parade de lErudit (Défense Totale)","type":"feature","img":"icons/skills/melee/weapons-crossed-poleaxes-white.webp","effects":[],"flags":{"core":{"sourceId":"Item.t8v7isBpnFzAbmUI"}},"system":{"category":null,"subtype":"fightoption","description":"<p>Vous consacrez votre round &agrave; esquiver, parer et vous prot&eacute;ger des coups. Vous n&rsquo; effectuez pas d&rsquo;attaque durant le round, mais b&eacute;n&eacute;ficiez d&rsquo;un bonus de +2 en d&eacute;fense, qui s&rsquo;ajoute &eacute;ventuellement &agrave; celui que pourrait vous apporter un bouclier ou une arme secondaire de parade.</p>","properties":{"ismalusdice":false,"isbonusdice":false,"fightoptiontype":"fulldefense","isspecial":false,"activated":false},"rank":0,"fightoptiontype":"fulldefense"},"_stats":{"systemId":"bol","systemVersion":"11.0.0","coreVersion":"10.291","createdTime":1687456310229,"modifiedTime":1687457965159,"lastModifiedBy":"kQghu0tL1dft5xLu"},"folder":null,"sort":0,"ownership":{"default":0,"kQghu0tL1dft5xLu":3},"_id":"vGydqADwTsHZ9B3j"}

View File

@ -1,7 +1,7 @@
{
"id": "bol",
"title": "Barbarians of Lemuria",
"description": "The Barbarians of Lemuria system for FoundryVTT!",
"description": "The Barbarians of Lemuria system for FoundryVTT !",
"authors": [
{
"name": "LeRatierBretonnien",
@ -14,10 +14,10 @@
],
"url": "https://www.uberwald.me/gitea/public/bol",
"license": "LICENSE.txt",
"version": "10.5.17",
"version": "11.0.7",
"compatibility": {
"minimum": "10",
"verified": "10"
"maximum": "11"
},
"esmodules": [
"module/bol.js"
@ -202,7 +202,7 @@
],
"socket": true,
"manifest": "https://www.uberwald.me/gitea/public/bol/raw/v10/system.json",
"download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v10.5.17.zip",
"download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v11.0.7.zip",
"background": "systems/bol/ui/page_accueil.webp",
"gridDistance": 1.5,
"gridUnits": "m",

View File

@ -1,19 +1,25 @@
<h3 class="form-header">{{localize "BOL.ui.fightOption"}}</h3>
<div class="form-group">
<label class="property-label">{{localize "BOL.ui.fightOptionType"}}</label>
<div class="form-fields">
<select name="system.properties.fightoptiontype" data-dtype="String">
{{#select item.system.properties.fightoptiontype}}
{{#each config.fightOptionTypes as |item id|}}
<option value="{{id}}">{{localize item}}</option>
{{/each}}
{{/select}}
</select>
</div>
</div>
<div class="property flexrow">
<label class="property-label">{{localize "BOL.ui.activated"}}</label>
<input class="field-value" type="checkbox" name="system.properties.activated" {{checked item.system.properties.activated}}>
<label class="property-label">{{localize "BOL.ui.fightOptionType"}}</label>
<div class="form-fields">
<select name="system.properties.fightoptiontype" data-dtype="String">
{{#select item.system.properties.fightoptiontype}}
{{#each config.fightOptionTypes as |item id|}}
<option value="{{id}}">{{localize item}}</option>
{{/each}}
{{/select}}
</select>
</div>
</div>
<div class="property flexrow">
<label class="property-label">{{localize "BOL.ui.activated"}}</label>
<input class="field-value" type="checkbox" name="system.properties.activated" {{checked
item.system.properties.activated}}>
</div>
<div class="property flexrow">
<label class="property-label">{{localize "BOL.ui.isspecial"}}</label>
<input class="field-value" type="checkbox" name="system.properties.isspecial" {{checked
item.system.properties.isspecial}}>
</div>

View File

@ -76,7 +76,7 @@
<div class="form-group">
<label class="property-label">{{localize "BOL.itemModifiers.init"}}</label>
<div class="form-fields">
<input class="field-value" type="text" name="system.properties.modifiers.init" value="{{item.system.properties.modifiers.c}}" data-dtype="Number"/>
<input class="field-value" type="text" name="system.properties.modifiers.init" value="{{item.system.properties.modifiers.init}}" data-dtype="Number"/>
</div>
</div>
<div class="form-group">

View File

@ -0,0 +1,8 @@
<div class="post-item" data-transfer="{{transfer}}">
<h3><b>{{name}}</b></h3>
{{#if img}}
<img class="chat-icon" src="{{img}}" title="{{name}}" />
{{/if}}
<h4><b>Description : </b></h4>
<p class="card-content">{{{system.description}}}</p>
</div>

View File

@ -2,9 +2,20 @@
<img class="bol-hud-togglebutton" src="icons/svg/sword.svg" width="36" height="36" title="Action" />
<div class="bol-hud-list tokenhudext right">
{{#each actionsList as |action key|}}
{{#if (eq system.subtype "weapon")}}
<div class="control-icon tokenhudicon bol-hud-menu" data-action-index="{{key}}" title="{{action.name}}">
<label>{{action.name}}</label>
</div>
{{/if}}
{{/each}}
</div>
</div>
<div class="bol-hud-list tokenhudext right2">
{{#each actionsList as |action key|}}
{{#if (eq system.subtype "fightoption")}}
<div class="control-icon tokenhudicon bol-hud-menu" data-action-index="{{key}}" title="{{action.name}}">
<label>{{action.name}}</label>
</div>
{{/if}}
{{/each}}
</div>
</div>