Initial release
							
								
								
									
										
											BIN
										
									
								
								images/icons/arbalete.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 59 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/arc.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 58 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/constitution.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 31 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/culturegenerale.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 29 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/fusil.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 28 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/habilite.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 44 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/mainsnues.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 42 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/perception.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 21 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/physique.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 41 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/rationnalite.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 40 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/revolver.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 30 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/icons/spiritualite.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 37 KiB | 
| @@ -14,8 +14,8 @@ export class MaleficesActorSheet extends ActorSheet { | ||||
|     return mergeObject(super.defaultOptions, { | ||||
|       classes: ["fvtt-malefices", "sheet", "actor"], | ||||
|       template: "systems/fvtt-malefices/templates/actors/actor-sheet.hbs", | ||||
|       width: 960, | ||||
|       height: 720, | ||||
|       width: 640, | ||||
|       height: 640, | ||||
|       tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" }], | ||||
|       dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }], | ||||
|       editScore: true | ||||
| @@ -38,7 +38,6 @@ export class MaleficesActorSheet extends ActorSheet { | ||||
|       armes: duplicate(this.actor.getArmes()), | ||||
|       equipements: duplicate(this.actor.getEquipements()), | ||||
|       subActors: duplicate(this.actor.getSubActors()), | ||||
|       focusData: this.actor.computeFinalFocusData(), | ||||
|       encCurrent: this.actor.encCurrent, | ||||
|       options: this.options, | ||||
|       owner: this.document.isOwner, | ||||
| @@ -113,13 +112,11 @@ export class MaleficesActorSheet extends ActorSheet { | ||||
|              | ||||
|     html.find('.roll-attribut').click((event) => { | ||||
|       let attrKey = $(event.currentTarget).data("attr-key") | ||||
|       let skillKey = $(event.currentTarget).data("skill-key") | ||||
|       this.actor.rollSkill(attrKey, skillKey) | ||||
|       this.actor.rollAttribut(attrKey) | ||||
|     });     | ||||
|     html.find('.roll-arme').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item"); | ||||
|       const weponId = li.data("item-id") | ||||
|       this.actor.rollWeapon(weponId) | ||||
|       const armeId = $(event.currentTarget).data("arme-id") | ||||
|       this.actor.rollArme(armeId) | ||||
|     }); | ||||
|      | ||||
|     html.find('.lock-unlock-sheet').click((event) => { | ||||
|   | ||||
| @@ -198,15 +198,9 @@ export class MaleficesActor extends Actor { | ||||
|   } | ||||
|   /* -------------------------------------------- */ | ||||
|   getInitiativeScore(combatId, combatantId) { | ||||
|     if (this.type == 'character') { | ||||
|       let init = this.getFlag("world", "initiative" ) | ||||
|       console.log("INIT", init) | ||||
|       if (!init || init == -1) { | ||||
|         ChatMessage.create( { content: "Roll your initiative for this combat"} ) | ||||
|       } | ||||
|       return init | ||||
|     } | ||||
|     return -1; | ||||
|     let init = Math.floor(this.system.attributs.physique.value+this.system.attributs.habilete.value) | ||||
|     let subvalue = new Roll("1d20").roll({async: false}) | ||||
|     return init + (subvalue / 100) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -268,6 +262,12 @@ export class MaleficesActor extends Actor { | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   getAtttributImage( attrKey) { | ||||
|     return `systems/fvtt-malefices/images/icons/${attrKey}.webp` | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   getCommonRollData() { | ||||
|  | ||||
| @@ -276,50 +276,54 @@ export class MaleficesActor extends Actor { | ||||
|     rollData.actorImg = this.img | ||||
|     rollData.actorId = this.id | ||||
|     rollData.img = this.img | ||||
|     rollData.phyMalus = this.getPhysiqueMalus() | ||||
|  | ||||
|     console.log("ROLLDATA", rollData) | ||||
|  | ||||
|     return rollData | ||||
|   } | ||||
|   /* -------------------------------------------- */ | ||||
|   getPhysiqueMalus() { | ||||
|     if ( this.system.attributs.constitution.value <= 8) { | ||||
|       return -(9 - this.system.attributs.constitution.value) | ||||
|     } | ||||
|     return 0 | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   rollAtribut(attrKey, skillKey) { | ||||
|     let attr = this.system.attributes[attrKey] | ||||
|     let skill = attr.skills[skillKey] | ||||
|     if (skill) { | ||||
|       skill = duplicate(skill) | ||||
|       skill.name = MaleficesUtility.upperFirst(skillKey) | ||||
|       skill.attr = duplicate(attr) | ||||
|       let rollData = this.getCommonRollData() | ||||
|       rollData.mode = "skill" | ||||
|       rollMode.skillKey = skillKey | ||||
|       rollData.skill = skill | ||||
|       rollData.title = "Roll Skill " + skill.name  | ||||
|       rollData.img = skill.img | ||||
|       this.startRoll(rollData) | ||||
|     } | ||||
|   rollAttribut(attrKey) { | ||||
|     let attr = this.system.attributs[attrKey] | ||||
|     let rollData = this.getCommonRollData() | ||||
|     rollData.attr = duplicate(attr) | ||||
|     rollData.mode = "attribut" | ||||
|     rollData.title = attr.label  | ||||
|     rollData.img = this.getAtttributImage(attrKey) | ||||
|     this.startRoll(rollData) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   rollArme(weaponId) { | ||||
|     let weapon = this.items.get(weaponId) | ||||
|     if (weapon) { | ||||
|       weapon = duplicate(weapon) | ||||
|       this.prepareWeapon(weapon) | ||||
|     let arme = this.items.get(weaponId) | ||||
|     if (arme) { | ||||
|       arme = duplicate(arme) | ||||
|       let rollData = this.getCommonRollData() | ||||
|       rollData.modifier = this.system.bonus[weapon.system.weapontype] | ||||
|       rollData.mode = "weapon" | ||||
|       rollData.weapon = weapon | ||||
|       rollData.img = weapon.img | ||||
|       if (arme.system.armetype == "mainsnues" || arme.system.armetype == "epee") { | ||||
|         rollData.attr = { label: "(Physique+Habilité)/2", value: Math.floor( (this.getPhysiqueMalus()+this.system.attributs.physique+this.system.attributs.habilite) / 2) } | ||||
|       } else { | ||||
|         rollData.attr = duplicate(this.system.attributs.habilite) | ||||
|       } | ||||
|       rollData.mode = "arme" | ||||
|       rollData.arme = arme | ||||
|       rollData.img = arme.img | ||||
|       rollData.title = arme.name | ||||
|       this.startRoll(rollData) | ||||
|     } else { | ||||
|       ui.notifications.warn("Unable to find the relevant weapon ") | ||||
|       ui.notifications.warn("Impossible de trouver l'arme concernée ") | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   /* -------------------------------------------- */ | ||||
|   async startRoll(rollData) { | ||||
|     this.syncRoll(rollData) | ||||
|     let rollDialog = await MaleficesRollDialog.create(this, rollData) | ||||
|     rollDialog.render(true) | ||||
|   } | ||||
|   | ||||
| @@ -7,11 +7,11 @@ import { MaleficesRollDialog } from "./malefices-roll-dialog.js"; | ||||
| export class MaleficesCommands { | ||||
|  | ||||
|   static init() { | ||||
|     if (!game.system.Malefices.commands) { | ||||
|       const MaleficesCommands = new MaleficesCommands(); | ||||
|     if (!game.system.malefices.commands) { | ||||
|       const commands = new MaleficesCommands(); | ||||
|       //crucibleCommands.registerCommand({ path: ["/char"], func: (content, msg, params) => crucibleCommands.createChar(msg), descr: "Create a new character" }); | ||||
|       //crucibleCommands.registerCommand({ path: ["/pool"], func: (content, msg, params) => crucibleCommands.poolRoll(msg), descr: "Generic Roll Window" }); | ||||
|       game.system.Malefices.commands = MaleficesCommands; | ||||
|       game.system.malefices.commands = commands; | ||||
|     } | ||||
|   } | ||||
|   constructor() { | ||||
|   | ||||
| @@ -58,7 +58,7 @@ export class MaleficesItemSheet extends ItemSheet { | ||||
|       editable: this.isEditable, | ||||
|       cssClass: this.isEditable ? "editable" : "locked", | ||||
|       system: duplicate(this.object.system), | ||||
|       config: duplicate(game.system.malefices), | ||||
|       config: duplicate(game.system.malefices.config), | ||||
|       limited: this.object.limited, | ||||
|       options: this.options, | ||||
|       owner: this.document.isOwner, | ||||
|   | ||||
| @@ -58,12 +58,15 @@ export class MaleficesRollDialog extends Dialog { | ||||
|     } | ||||
|     $(function () { onLoad(); }); | ||||
|  | ||||
|     html.find('#bonusMalusRoll').change((event) => { | ||||
|       this.rollData.bonusMalusRoll = event.currentTarget.value | ||||
|     html.find('#bonusMalusSituation').change((event) => { | ||||
|       this.rollData.bonusMalusSituation = Number(event.currentTarget.value) | ||||
|     }) | ||||
|     html.find('#targetCheck').change((event) => { | ||||
|       this.rollData.targetCheck = event.currentTarget.value | ||||
|     html.find('#bonusMalusPerso').change((event) => { | ||||
|       this.rollData.bonusMalusPerso = Number(event.currentTarget.value) | ||||
|     }) | ||||
|  | ||||
|     html.find('#bonusMalusDef').change((event) => { | ||||
|       this.rollData.bonusMalusDef = Number(event.currentTarget.value) | ||||
|     }) | ||||
|      | ||||
|   } | ||||
| } | ||||
| @@ -155,20 +155,7 @@ export class MaleficesUtility { | ||||
|     const templatePaths = [ | ||||
|       'systems/fvtt-malefices/templates/actors/editor-notes-gm.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-item-nav.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-item-description.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-common-item-fields.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-damage-types.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-weapon-types.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-weapon-categories.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-attributes.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-equipment-types.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-armor-types.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-spell-types.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-spell-levels.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-spell-schools.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-focus-bond.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-focus-treatment.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-options-focus-core.hbs', | ||||
|       'systems/fvtt-malefices/templates/items/partial-item-description.hbs' | ||||
|     ] | ||||
|     return loadTemplates(templatePaths); | ||||
|   } | ||||
| @@ -508,26 +495,10 @@ export class MaleficesUtility { | ||||
|   static async rollMalefices(rollData) { | ||||
|  | ||||
|     let actor = game.actors.get(rollData.actorId) | ||||
|  | ||||
|      | ||||
|     // Build the dice formula | ||||
|     let diceFormula = "1d12" | ||||
|     if (rollData.skill) { | ||||
|       diceFormula += "+" + rollData.skill.finalvalue | ||||
|     } | ||||
|     if (rollData.crafting) { | ||||
|       diceFormula += "+" + rollData.crafting.system.level | ||||
|     } | ||||
|     if (rollData.spellAttack) { | ||||
|       diceFormula += "+" + rollData.spellAttack | ||||
|     } | ||||
|     diceFormula += "+" + rollData.bonusMalusRoll | ||||
|  | ||||
|     if (rollData.skill && rollData.skill.good) { | ||||
|       diceFormula += "+1d4" | ||||
|     } | ||||
|     if (rollData.weapon ) { | ||||
|       diceFormula += "+" + rollData.weapon.attackBonus | ||||
|     } | ||||
|     let diceFormula = "1d20" | ||||
|     rollData.target = rollData.attr.value + rollData.bonusMalusPerso + rollData.bonusMalusSituation + rollData.bonusMalusDef | ||||
|     rollData.diceFormula = diceFormula | ||||
|  | ||||
|     // Performs roll | ||||
| @@ -540,22 +511,26 @@ export class MaleficesUtility { | ||||
|     rollData.roll = myRoll | ||||
|  | ||||
|     rollData.isSuccess = false | ||||
|     if (rollData.targetCheck != "none") { | ||||
|       if (myRoll.total >= Number(rollData.targetCheck)) { | ||||
|         rollData.isSuccess = true | ||||
|       } | ||||
|     if (myRoll.total <=  rollData.target ) { | ||||
|       rollData.isSuccess = true | ||||
|     } | ||||
|  | ||||
|     if (rollData.spell) { | ||||
|       actor.spentFocusPoints(rollData.spell) | ||||
|     if (myRoll.total ==  1 ) { | ||||
|       rollData.isSuccess = true | ||||
|       rollData.isCritical = true | ||||
|     } | ||||
|     if (myRoll.total ==  20 ) { | ||||
|       rollData.isSuccess = false | ||||
|       rollData.isFumble = true   | ||||
|     } | ||||
|     if (myRoll.total <=  Math.floor(rollData.target/3) ) { | ||||
|       rollData.isPart = true | ||||
|     } | ||||
|  | ||||
|     let msg = await this.createChatWithRollMode(rollData.alias, { | ||||
|       content: await renderTemplate(`systems/fvtt-malefices/templates/chat/chat-generic-result.hbs`, rollData) | ||||
|     }) | ||||
|     msg.setFlag("world", "rolldata", rollData) | ||||
|     if (rollData.skillKey == "initiative") { | ||||
|       console.log("REGISTERED") | ||||
|     if (rollData.mode == "initiative") { | ||||
|       actor.setFlag("world", "initiative", myRoll.total)  | ||||
|     } | ||||
|  | ||||
| @@ -649,8 +624,9 @@ export class MaleficesUtility { | ||||
|   static getBasicRollData() { | ||||
|     let rollData = { | ||||
|       rollId: randomID(16), | ||||
|       bonusMalusRoll: 0, | ||||
|       targetCheck: "none", | ||||
|       bonusMalusPerso: 0, | ||||
|       bonusMalusSituation: 0, | ||||
|       bonusMalusDef: 0, | ||||
|       rollMode: game.settings.get("core", "rollMode") | ||||
|     } | ||||
|     MaleficesUtility.updateWithTarget(rollData) | ||||
|   | ||||
| @@ -222,9 +222,9 @@ table {border: 1px solid #7a7971;} | ||||
|   -webkit-box-flex: 0; | ||||
|   -ms-flex: 0 0 128px; | ||||
|   flex: 0 0 128px; | ||||
|   width: 128px; | ||||
|   width: 256px; | ||||
|   height: auto; | ||||
|   max-height:160px; | ||||
|   max-height:256px; | ||||
|   margin-top: 0px; | ||||
|   margin-right: 10px; | ||||
|   object-fit: cover; | ||||
| @@ -561,8 +561,8 @@ ul, li { | ||||
|  | ||||
| .list-item { | ||||
|   margin: 0.125rem; | ||||
|   box-shadow: inset 0px 0px 1px #00000096; | ||||
|   border-radius: 0.25rem; | ||||
|   /*box-shadow: inset 0px 0px 1px #00000096; | ||||
|   border-radius: 0.25rem;*/ | ||||
|   padding: 0.125rem; | ||||
|   flex: 1 1 5rem; | ||||
|   display: flex !important; | ||||
| @@ -1186,10 +1186,10 @@ ul, li { | ||||
|   color: #CCC | ||||
| } | ||||
| #pause > img { | ||||
|   content: url(../images/ui/crucible_pause_logo.jpg); | ||||
|   height: 160px; | ||||
|   width: 160px; | ||||
|   top: -80px; | ||||
|   content: url(../images/ui/logo_pause.webp); | ||||
|   height: 200px; | ||||
|   width: 200px; | ||||
|   top: -100px; | ||||
|   left: calc(50% - 132px); | ||||
| } | ||||
|  | ||||
| @@ -1302,8 +1302,8 @@ ul, li { | ||||
| .item-field-label-long { | ||||
|   margin-top: 4px; | ||||
|   flex-grow:1; | ||||
|   max-width: 8rem; | ||||
|   min-width: 8rem; | ||||
|   max-width: 10rem; | ||||
|   min-width: 10rem; | ||||
| } | ||||
| .item-control-end { | ||||
|   align-self: flex-end; | ||||
|   | ||||
| @@ -37,7 +37,7 @@ | ||||
|   ], | ||||
|   "title": "Maléfices, le Jeu de Rôle", | ||||
|   "url": "https://www.uberwald.me/gitea/public/fvtt-malefices", | ||||
|   "version": "10.0.0", | ||||
|   "download": "https://www.uberwald.me/gitea/public/fvtt-malefices/archive/fvtt-malefices-v10.0.0.zip", | ||||
|   "version": "10.0.1", | ||||
|   "download": "https://www.uberwald.me/gitea/public/fvtt-malefices/archive/fvtt-malefices-v10.0.1.zip", | ||||
|   "background": "systems/fvtt-malefices/images/ui/malefice_welcome_page.webp" | ||||
| } | ||||
| @@ -39,6 +39,7 @@ | ||||
|             "label": "Constitution", | ||||
|             "abbrev": "constitution", | ||||
|             "value": 0, | ||||
|             "hasmax": true, | ||||
|             "max": 0 | ||||
|           }, | ||||
|           "physique": { | ||||
| @@ -68,12 +69,14 @@ | ||||
|           "spiritualite": { | ||||
|             "label": "Spiritualite", | ||||
|             "abbrev": "spiritualite", | ||||
|             "hasmax": true, | ||||
|             "value": 0, | ||||
|             "max": 0 | ||||
|           }, | ||||
|           "rationnalite": { | ||||
|             "label": "Rationnalite", | ||||
|             "abbrev": "rationnalite", | ||||
|             "hasmax": true, | ||||
|             "value": 0, | ||||
|             "max": 0 | ||||
|           } | ||||
| @@ -93,17 +96,22 @@ | ||||
|   }, | ||||
|   "Item": { | ||||
|     "types": [ | ||||
|       "arme" | ||||
|       "arme", | ||||
|       "equipement" | ||||
|     ], | ||||
|     "templates": { | ||||
|     }, | ||||
|     "equipement" : { | ||||
|       "description": "" | ||||
|     }, | ||||
|     "arme" : { | ||||
|       "armetype": 0, | ||||
|       "dommagenormale": 0, | ||||
|       "dommagepart": 0, | ||||
|       "dommagecritique": 0, | ||||
|       "dommagecritiqueKO": false, | ||||
|       "dommagecritiquemort": false | ||||
|       "dommagecritiquemort": false, | ||||
|       "description": "" | ||||
|     } | ||||
|  } | ||||
| } | ||||
| @@ -3,51 +3,12 @@ | ||||
|   {{!-- Sheet Header --}} | ||||
|   <header class="sheet-header"> | ||||
|     <div class="header-fields"> | ||||
|       <h1 class="charname margin-right"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1> | ||||
|       <div class="flexrow"> | ||||
|         <img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" /> | ||||
|         <div class="flexcol"> | ||||
|           <h1 class="charname margin-right"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1> | ||||
|  | ||||
|           <div class="flexrow"> | ||||
|             {{#each system.attributes as |attr attrKey|}} | ||||
|               <div class="flexcol"> | ||||
|                 <div class="flexrow flexrow-no-expand"> | ||||
|                   <span class="attribute-label">{{attr.label}}</span> | ||||
|                   <input type="text" class="item-field-label-short" name="system.attributes.{{attrKey}}.value" value="{{attr.value}}" data-dtype="Number"/> | ||||
|                 </div> | ||||
|                 {{#each attr.skills as |skill skillKey|}} | ||||
|                 <div class="flexrow flexrow-no-expand"> | ||||
|                   <span class="item-field-skill skill-label"> | ||||
|                     <a class="roll-skill" data-attr-key="{{attrKey}}" data-skill-key="{{skillKey}}"> | ||||
|                     <i class="fa-solid fa-dice-d12"></i> {{upperFirst skillKey}} {{skill.finalvalue}}</a> | ||||
|                   </span> | ||||
|                   <input type="checkbox" class="skill-good-checkbox" name="system.attributes.{{attrKey}}.skills.{{skillKey}}.good" {{checked skill.good}} /> | ||||
|                 </div> | ||||
|                 {{/each}} | ||||
|                 <div class="flexrow flexrow-no-expand"> | ||||
|                   <span class="attribute-label"> </span> | ||||
|                 </div> | ||||
|                 {{#if (eq attrKey "might")}} | ||||
|                   <div class="flexrow flexrow-no-expand"> | ||||
|                     <span class="attribute-label">Universal</span> | ||||
|                   </div> | ||||
|                   {{#each @root.system.universal.skills as |skill skillKey|}} | ||||
|                   <div class="flexrow flexrow-no-expand"> | ||||
|                     <span class="item-field-skill skill-label"> | ||||
|                       <a class="roll-universal" data-skill-key="{{skillKey}}"> | ||||
|                         <i class="fa-solid fa-dice-d12"></i> {{upperFirst skillKey}} | ||||
|                       </a> | ||||
|                     </span> | ||||
|                     <input type="text" class="item-input-small" name="system.universal.skills.{{skillKey}}.finalvalue" value="{{skill.finalvalue}}" data-dtype="Number"/> | ||||
|                   </div> | ||||
|                   {{/each}} | ||||
|                 {{else}} | ||||
|                   <div class="flexrow"> | ||||
|                   </div> | ||||
|                 {{/if}} | ||||
|               </div>               | ||||
|             {{/each}} | ||||
|  | ||||
|           </div> | ||||
|  | ||||
|           </div> | ||||
| @@ -58,14 +19,10 @@ | ||||
|  | ||||
|   {{!-- Sheet Tab Navigation --}} | ||||
|   <nav class="sheet-tabs tabs" data-group="primary"> | ||||
|     <a class="item" data-tab="main">Main</a> | ||||
|     <a class="item" data-tab="modules">Modules</a> | ||||
|     <a class="item" data-tab="spells">Spells</a> | ||||
|     <a class="item" data-tab="moves">Moves</a> | ||||
|     <a class="item" data-tab="traits">Traits</a> | ||||
|     <a class="item" data-tab="equipment">Equipment</a> | ||||
|     <a class="item" data-tab="crafting">Crafting</a> | ||||
|     <a class="item" data-tab="biodata">Biography</a> | ||||
|     <a class="item" data-tab="main">Principal</a> | ||||
|     <a class="item" data-tab="equipements">Equipements</a> | ||||
|     <a class="item" data-tab="biodata">Biographie</a> | ||||
|     <a class="item" data-tab="notes">Notes</a> | ||||
|   </nav> | ||||
|  | ||||
|   {{!-- Sheet Body --}} | ||||
| @@ -74,333 +31,78 @@ | ||||
|     {{!-- Skills Tab --}} | ||||
|     <div class="tab main" data-group="primary" data-tab="main"> | ||||
|  | ||||
|       <ul class="stat-list alternate-list item-list"> | ||||
|         <li class="item flexrow list-item"> | ||||
|           <span class="item-name-label-header-short">Level</span> | ||||
|           <input type="text" class="item-field-label-short" name="system.level.value" value="{{system.level.value}}" data-dtype="Number"/> | ||||
|            | ||||
|           <span class="item-name-label-header-short"> </span> | ||||
|  | ||||
|           <span class="item-name-label-header-short">Health</span> | ||||
|           <input type="text" class="item-field-label-short" name="system.health.value" value="{{system.health.value}}" data-dtype="Number"/> /  | ||||
|           <input type="text" class="item-field-label-short" name="system.health.max" value="{{system.health.max}}" data-dtype="Number" disabled/> | ||||
|  | ||||
|           <span class="item-name-label-header-medium"> </span> | ||||
|  | ||||
|         </li> | ||||
|       </ul> | ||||
|  | ||||
|       <div class="grid-2col"> | ||||
|         <ul class="stat-list alternate-list"> | ||||
|           <li class="item flexrow list-item items-title-bg"> | ||||
|             <span class="item-name-label-header-long"> | ||||
|               <h3><label class="items-title-text">Mitigations</label></h3> | ||||
|             </span> | ||||
|           </li> | ||||
|           {{#each system.mitigation as |mitigation key|}} | ||||
|           <li class="item flexrow list-item list-item-shadow" data-mitigation-id="{{key}}"> | ||||
|             <span class="item-name-label-medium">{{mitigation.label}}</span> | ||||
|             <span class="item-name-label-short">{{mitigation.value}}</span> | ||||
|           </li> | ||||
|           {{/each}} | ||||
|         </ul> | ||||
|  | ||||
|         <ul class="stat-list alternate-list"> | ||||
|           <li class="item flexrow list-item items-title-bg"> | ||||
|             <span class="item-name-label-header-long"> | ||||
|               <h3><label class="items-title-text">Bonuses</label></h3> | ||||
|             </span> | ||||
|           </li> | ||||
|           {{#each system.bonus as |bonus key|}} | ||||
|           <li class="item flexrow list-item list-item-shadow" data-bonus-id="{{key}}"> | ||||
|             <span class="item-name-label-medium">{{upperFirst key}}</span> | ||||
|             <ul class="ul-level1"> | ||||
|               {{#each bonus as |value key2|}} | ||||
|               <li class="item flexrow list-item list-item-shadow" data-bonus-id="{{key}}"> | ||||
|                 <span class="item-name-label-short">{{upperFirst key2}}</span> | ||||
|                 <span class="item-name-label-short">{{value}}</span> | ||||
|               </li> | ||||
|             {{/each}} | ||||
|             </ul> | ||||
|           </li> | ||||
|           {{/each}} | ||||
|         </ul> | ||||
|       </div> | ||||
|     </div> | ||||
|  | ||||
|     {{!-- Modules Tab --}} | ||||
|     <div class="tab modules" data-group="primary" data-tab="modules"> | ||||
|  | ||||
|       <div class="flexcol"> | ||||
|           <ul class="stat-list alternate-list"> | ||||
|       <div class="grid grid-2col"> | ||||
|         <div> | ||||
|           <ul class="stat-list alternate-list item-list"> | ||||
|             <li class="item flexrow list-item items-title-bg"> | ||||
|               <span class="item-name-label-header-long"> | ||||
|                 <h3><label class="items-title-text">Modules</label></h3> | ||||
|               <span class="item-name-label-header"> | ||||
|                 <h3><label class="items-title-text">Attributs</label></h3> | ||||
|               </span> | ||||
|             </li> | ||||
|             {{#each modules as |module key|}} | ||||
|             <li class="item flexrow list-item list-item-shadow" data-item-id="{{module._id}}"> | ||||
|               <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|                   src="{{module.img}}" /></a> | ||||
|               <span class="item-name-label-long"><a class ="item-edit">{{module.name}}</a></span> | ||||
|  | ||||
|               <div class="item-filler"> </div> | ||||
|               <div class="item-controls item-controls-fixed"> | ||||
|                 <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|               </div> | ||||
|             {{#each system.attributs as |attr key|}} | ||||
|             <li class="item flexrow list-item"> | ||||
|               <span class="item-field-label-long"><a class="roll-attribut" data-attr-key="{{key}}">{{attr.label}}<i class="fa-solid fa-dice-d20"></i></a></span> | ||||
|               <input type="text" class="item-field-label-short" name="system.attributs.{{key}}.value" value="{{attr.value}}" data-dtype="Number"/> | ||||
|               {{#if attr.hasmax}} | ||||
|                 <input type="text" class="item-field-label-short" name="system.attributs.{{key}}.max" value="{{attr.max}}" data-dtype="Number"/> | ||||
|               {{/if}}           | ||||
|             </li> | ||||
|             {{/each}} | ||||
|           </ul> | ||||
|         </div> | ||||
|  | ||||
|     </div> | ||||
|         <div> | ||||
|           <ul class="stat-list alternate-list item-list"> | ||||
|             <li class="item flexrow list-item items-title-bg"> | ||||
|               <span class="item-name-label-header"> | ||||
|                 <h3><label class="items-title-text">Armes</label></h3> | ||||
|               </span> | ||||
|             </li> | ||||
|  | ||||
|  | ||||
|     {{!-- Spells Tab --}} | ||||
|     <div class="tab spells" data-group="primary" data-tab="spells"> | ||||
|  | ||||
|       <div class="flexcol"> | ||||
|  | ||||
|         <ul class="stat-list alternate-list"> | ||||
|           <li class="item flexrow list-item"> | ||||
|             <span class="item-name-label-header-short">Focus Regen</span> | ||||
|             <input type="text" class="item-field-label-short" value="{{system.focus.focusregen}}" data-dtype="Number" disabled/> | ||||
|  | ||||
|              | ||||
|             <span class="item-name-label-header-short"> </span> | ||||
|  | ||||
|             <span class="item-name-label-header-short">Focus Points</span> | ||||
|             <input type="text" class="item-field-label-short"  name="system.focus.currentfocuspoints" value="{{system.focus.currentfocuspoints}}" data-dtype="Number"/> /  | ||||
|             <input type="text" class="item-field-label-short" value="{{system.focus.focuspoints}}" data-dtype="Number" disabled/> | ||||
|  | ||||
|             <span class="item-name-label-header-medium"> </span> | ||||
|           </li> | ||||
|         </ul> | ||||
|          | ||||
|         <ul class="stat-list alternate-list"> | ||||
|           <li class="item flexrow list-item items-title-bg"> | ||||
|             <span class="item-name-label-header"> | ||||
|               <h3><label class="items-title-text">Name</label></h3> | ||||
|             </span> | ||||
|             <span class="item-field-label-medium"> | ||||
|               <label class="short-label">Type</label> | ||||
|             </span> | ||||
|             <span class="item-field-label-medium"> | ||||
|               <label class="short-label">Level</label> | ||||
|             </span> | ||||
|           </li> | ||||
|  | ||||
|           {{#each spells as |spell key|}} | ||||
|           <li class="item stat flexrow list-item list-item-shadow" data-item-id="{{spell._id}}"> | ||||
|             <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|                 src="{{spell.img}}" /></a> | ||||
|             <span class="item-name-label"> | ||||
|               <a class="roll-spell"><i class="fa-solid fa-dice-d12"> </i>{{spell.name}}</a> | ||||
|             </span> | ||||
|             <span class="item-field-label-medium">{{upperFirst spell.system.spelltype}}</span> | ||||
|             <span class="item-field-label-medium">{{upperFirst spell.system.level}}</span> | ||||
|             <div class="item-filler"> </div> | ||||
|             <div class="item-controls item-controls-fixed"> | ||||
|               <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|             </div>   | ||||
|           </li> | ||||
|           {{/each}} | ||||
|  | ||||
|         </ul> | ||||
|             {{#each armes as |arme key|}} | ||||
|             <li class="item flexrow list-item"> | ||||
|               <span class="item-field-label-long"><a class="roll-arme" data-arme-id="{{arme._id}}">{{arme.name}}<i class="fa-solid fa-dice-d20"></i></a></span> | ||||
|             </li> | ||||
|             {{/each}} | ||||
|           </ul> | ||||
|         </div> | ||||
|  | ||||
|       </div> | ||||
|     </div> | ||||
|  | ||||
|     {{!-- moves Tab --}} | ||||
|     <div class="tab moves" data-group="primary" data-tab="moves"> | ||||
|  | ||||
|       <div class="flexcol"> | ||||
|  | ||||
|       <ul class="item-list alternate-list"> | ||||
|         <li class="item flexrow list-item items-title-bg"> | ||||
|           <span class="item-name-label-header item-name-label-header-long2"> | ||||
|             <h3><label class="item-name-label-header-long2">Equipped Weapons</label></h3> | ||||
|           </span> | ||||
|           <span class="item-field-label-long"> | ||||
|             <label class="short-label">Damage</label> | ||||
|           </span> | ||||
|           <span class="item-field-label-long"> | ||||
|             <label class="short-label">Critical</label> | ||||
|           </span> | ||||
|           <span class="item-field-label-long"> | ||||
|             <label class="short-label">Brutal</label> | ||||
|           </span> | ||||
|         </li> | ||||
|         {{#each equippedWeapons as |weapon key|}} | ||||
|         <li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}"> | ||||
|           <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|               src="{{weapon.img}}" /></a> | ||||
|           <span class="item-name-label-long2"><a class="roll-weapon"><i class="fa-solid fa-dice-d12"></i>{{weapon.name}}</a></span> | ||||
|           <span class="item-field-label-long"><label><a class="roll-weapon-damage" data-damage="normal"><i class="fa-solid fa-dice-d12"></i>{{weapon.system.damages.primary.normal}}</label></a></span> | ||||
|           <span class="item-field-label-long"><label><a class="roll-weapon-damage" data-damage="critical"><i class="fa-solid fa-dice-d12"></i>{{weapon.system.damages.primary.critical}}</label></a></span> | ||||
|           <span class="item-field-label-long"><label><a class="roll-weapon-damage" data-damage="brutal"><i class="fa-solid fa-dice-d12"></i>{{weapon.system.damages.primary.brutal}}</label></a></span> | ||||
|           <div class="item-filler"> </div> | ||||
|         </li> | ||||
|         {{/each}} | ||||
|       </ul> | ||||
|  | ||||
|         <ul class="stat-list alternate-list"> | ||||
|           <li class="item flexrow list-item items-title-bg"> | ||||
|             <span class="item-name-label-header"> | ||||
|               <h3><label class="items-title-text">Name</label></h3> | ||||
|             </span> | ||||
|             <span class="item-field-label-medium"> | ||||
|               <label class="short-label">Type</label> | ||||
|             </span> | ||||
|             <span class="item-field-label-medium"> | ||||
|               <label class="short-label">Level</label> | ||||
|             </span> | ||||
|           </li> | ||||
|  | ||||
|           {{#each spells as |spell key|}} | ||||
|           <li class="item stat flexrow list-item list-item-shadow" data-item-id="{{spell._id}}"> | ||||
|             <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|                 src="{{spell.img}}" /></a> | ||||
|             <span class="item-name-label"> | ||||
|               <a class="spell-roll">{{spell.name}}</a> | ||||
|             </span> | ||||
|             <span class="item-field-label-medium">{{upperFirst spell.system.spelltype}}</span> | ||||
|             <span class="item-field-label-medium">{{upperFirst spell.system.level}}</span> | ||||
|             <div class="item-filler"> </div> | ||||
|             <div class="item-controls item-controls-fixed"> | ||||
|               <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|             </div>   | ||||
|           </li> | ||||
|           {{/each}} | ||||
|         </ul> | ||||
|  | ||||
|       </div> | ||||
|     </div> | ||||
|  | ||||
|     {{!-- traits Tab --}} | ||||
|     <div class="tab traits" data-group="primary" data-tab="traits"> | ||||
|  | ||||
|       <div class="flexcol"> | ||||
|  | ||||
|         <ul class="stat-list alternate-list"> | ||||
|           <li class="item flexrow list-item items-title-bg"> | ||||
|             <span class="item-name-label-header"> | ||||
|               <h3><label class="items-title-text">Name</label></h3> | ||||
|             </span> | ||||
|             <span class="item-field-label-medium"> | ||||
|               <label class="short-label">Type</label> | ||||
|             </span> | ||||
|             <span class="item-field-label-medium"> | ||||
|               <label class="short-label">Level</label> | ||||
|             </span> | ||||
|           </li> | ||||
|  | ||||
|           {{#each traits as |trait key|}} | ||||
|           <li class="item stat flexrow list-item list-item-shadow" data-item-id="{{trait._id}}"> | ||||
|             <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|                 src="{{trait.img}}" /></a> | ||||
|             <span class="item-name-label"> | ||||
|               <a class="spell-roll">{{trait.name}}</a> | ||||
|             </span> | ||||
|             <span class="item-field-label-medium">{{upperFirst trait.system.spelltype}}</span> | ||||
|             <span class="item-field-label-medium">{{upperFirst trait.system.level}}</span> | ||||
|             <div class="item-filler"> </div> | ||||
|             <div class="item-controls item-controls-fixed"> | ||||
|               <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|             </div>   | ||||
|           </li> | ||||
|           {{/each}} | ||||
|  | ||||
|         </ul> | ||||
|  | ||||
|       </div> | ||||
|     </div> | ||||
|  | ||||
|     {{!-- Equipement Tab --}} | ||||
|     <div class="tab equipment" data-group="primary" data-tab="equipment"> | ||||
|  | ||||
|       <div class="flexrow"> | ||||
|         <h3>Encumbrance</h3> | ||||
|         <span class="small-label">Current : {{encCurrent}}</span> | ||||
|         <span class="small-label">Capacity : {{encCapacity}}</span> | ||||
|       </div> | ||||
|     <div class="tab equipements" data-group="primary" data-tab="equipements"> | ||||
|  | ||||
|       <ul class="item-list alternate-list"> | ||||
|         <li class="item flexrow list-item items-title-bg"> | ||||
|           <span class="item-name-label-header"> | ||||
|             <h3><label class="items-title-text">Money</label></h3> | ||||
|           </span> | ||||
|           <span class="item-field-label-long"> | ||||
|             <label class="short-label">Qty</label> | ||||
|             <h3><label class="items-title-text">Armes</label></h3> | ||||
|           </span> | ||||
|           <span class="item-field-label-medium"> | ||||
|             <label class="short-label">Weight</label> | ||||
|             <label class="item-field-label-medium">Normaux</label> | ||||
|           </span> | ||||
|           <span class="item-field-label-medium"> | ||||
|             <label class="short-label">IDR</label> | ||||
|           </span> | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-add" data-type="money" title="Create Item"><i class="fas fa-plus"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
|         {{#each moneys as |money key|}} | ||||
|         <li class="item flexrow list-item list-item-shadow" data-item-id="{{money._id}}"> | ||||
|           <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|               src="{{money.img}}" /></a> | ||||
|           <span class="item-name-label">{{money.name}}</span> | ||||
|  | ||||
|           <span class="item-field-label-long"><label> | ||||
|               {{money.system.quantity}} | ||||
|               (<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>) | ||||
|             </label> | ||||
|             <label class="item-field-label-medium">Particulier</label> | ||||
|           </span> | ||||
|           <span class="item-field-label-medium"> | ||||
|             <label>{{money.system.weight}}</label> | ||||
|           </span> | ||||
|           <span class="item-field-label-medium"> | ||||
|             {{#if money.system.idrDice}} | ||||
|             <a class="roll-idr" data-dice-value="{{money.data.idrDice}}">{{money.system.idrDice}}</a> | ||||
|             {{else}} | ||||
|              -  | ||||
|             {{/if}} | ||||
|           </span> | ||||
|  | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
|         {{/each}} | ||||
|       </ul> | ||||
|  | ||||
|       <ul class="item-list alternate-list"> | ||||
|         <li class="item flexrow list-item items-title-bg"> | ||||
|           <span class="item-name-label-header"> | ||||
|             <h3><label class="items-title-text">Weapons</label></h3> | ||||
|           </span> | ||||
|           <span class="item-field-label-short"> | ||||
|             <label class="short-label">Attack</label> | ||||
|           </span> | ||||
|           <span class="item-field-label-short"> | ||||
|             <label class="short-label">Damage</label> | ||||
|             <label class="item-field-label-medium">Critique</label> | ||||
|           </span> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
|         {{#each weapons as |weapon key|}} | ||||
|         <li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}"> | ||||
|         {{#each armes as |arme key|}} | ||||
|         <li class="item flexrow list-item list-item-shadow" data-item-id="{{arme._id}}"> | ||||
|           <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|               src="{{weapon.img}}" /></a> | ||||
|           <span class="item-name-label">{{weapon.name}}</span> | ||||
|           <span class="item-field-label-short"><label>{{upperFirst weapon.system.ability}}</label></span> | ||||
|           <span class="item-field-label-short"><label>{{upperFirst weapon.system.damage}}</label></span> | ||||
|               src="{{arme.img}}" /></a> | ||||
|           <span class="item-name-label">{{arme.name}}</span> | ||||
|           <span class="item-field-label-medium"><label>{{arme.system.dommagenormale}}</label></span> | ||||
|           <span class="item-field-label-medium"><label>{{arme.system.dommagepart}}</label></span> | ||||
|           <span class="item-field-label-medium"><label>{{arme.system.dommagecritique}}</label></span> | ||||
|  | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-equip" title="Worn">{{#if weapon.system.equipped}}<i | ||||
|                 class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a> | ||||
|             <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
| @@ -410,75 +112,10 @@ | ||||
|       <ul class="item-list alternate-list"> | ||||
|         <li class="item flexrow list-item items-title-bg"> | ||||
|           <span class="item-name-label-header"> | ||||
|             <h3><label class="items-title-text">Armors</label></h3> | ||||
|           </span> | ||||
|           <span class="item-field-label-short"> | ||||
|             <label class="short-label">Type</label> | ||||
|           </span> | ||||
|           <span class="item-field-label-short"> | ||||
|             <label class="short-label">Absorption</label> | ||||
|           </span> | ||||
|  | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-add" data-type="armor" title="Create Item"><i class="fas fa-plus"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
|         {{#each armors as |armor key|}} | ||||
|         <li class="item list-item flexrow list-item-shadow" data-item-id="{{armor._id}}"> | ||||
|           <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|               src="{{armor.img}}" /></a> | ||||
|           <span class="item-name-label">{{armor.name}}</span> | ||||
|           <span class="item-field-label-short">{{upperFirst armor.system.armortype}}</span> | ||||
|           <span class="item-field-label-short">{{armor.system.absorprionroll}}</span> | ||||
|  | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-equip" title="Worn">{{#if armor.system.equipped}}<i | ||||
|                 class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a> | ||||
|             <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
|         {{/each}} | ||||
|       </ul> | ||||
|  | ||||
|       <ul class="item-list alternate-list"> | ||||
|         <li class="item flexrow list-item items-title-bg"> | ||||
|           <span class="item-name-label-header"> | ||||
|             <h3><label class="items-title-text">Shields</label></h3> | ||||
|           </span> | ||||
|           <span class="item-field-label-short"> | ||||
|             <label class="short-label">Dice</label> | ||||
|           </span> | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-add" data-type="shield" title="Create Item"><i class="fas fa-plus"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
|         {{#each shields as |shield key|}} | ||||
|         <li class="item flexrow list-item list-item-shadow" data-item-id="{{shield._id}}"> | ||||
|           <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|               src="{{shield.img}}" /></a> | ||||
|           <span class="item-name-label">{{shield.name}}</span> | ||||
|           <span class="item-field-label-short">{{shield.system.levelDice}}</span> | ||||
|  | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-equip" title="Worn">{{#if shield.system.equipped}}<i | ||||
|                 class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a> | ||||
|             <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
|         {{/each}} | ||||
|       </ul> | ||||
|  | ||||
|       <ul class="item-list alternate-list"> | ||||
|         <li class="item flexrow list-item items-title-bg"> | ||||
|           <span class="item-name-label-header"> | ||||
|             <h3><label class="items-title-text">Equipment</label></h3> | ||||
|             <h3><label class="items-title-text">Equipements</label></h3> | ||||
|           </span> | ||||
|           <span class="item-field-label-long"> | ||||
|             <label class="short-label">Qty</label> | ||||
|             <label class="short-label">Q.</label> | ||||
|           </span> | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
| @@ -486,22 +123,14 @@ | ||||
|           </div> | ||||
|  | ||||
|         </li> | ||||
|         {{#each equipments as |equip key|}} | ||||
|         {{#each equipements as |equip key|}} | ||||
|         <li class="item list-item flexrow list-item-shadow" data-item-id="{{equip._id}}"> | ||||
|           <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|               src="{{equip.img}}" /></a> | ||||
|           <span class="item-name-label">{{equip.name}}</span> | ||||
|  | ||||
|           <span class="item-field-label-long"><label> | ||||
|               {{equip.system.quantity}} | ||||
|               (<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>) | ||||
|             </label> | ||||
|           </span> | ||||
|  | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-equip" title="Worn">{{#if equip.system.equipped}}<i | ||||
|                 class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a> | ||||
|             <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
| @@ -512,47 +141,14 @@ | ||||
|  | ||||
|     </div> | ||||
|  | ||||
|     {{!-- Equipement Tab --}} | ||||
|     <div class="tab crafting" data-group="primary" data-tab="crafting"> | ||||
|  | ||||
|  | ||||
|       <ul class="item-list alternate-list"> | ||||
|         <li class="item flexrow list-item items-title-bg"> | ||||
|           <span class="item-name-label-header"> | ||||
|             <h3><label class="items-title-text">Crafting</label></h3> | ||||
|           </span> | ||||
|           <span class="item-field-label-short"> | ||||
|             <label class="short-label">Level</label> | ||||
|           </span> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
|         {{#each craftingSkills as |crafting key|}} | ||||
|         <li class="item flexrow list-item list-item-shadow" data-item-id="{{crafting._id}}"> | ||||
|           <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" | ||||
|               src="{{crafting.img}}" /></a> | ||||
|           <span class="item-name-label"> <a class="roll-crafting"><i class="fa-solid fa-dice-d12"> </i>{{crafting.name}}</a></span> | ||||
|           <span class="item-field-label-short"><label>{{crafting.system.level}}</label></span> | ||||
|  | ||||
|           <div class="item-filler"> </div> | ||||
|           <div class="item-controls item-controls-fixed"> | ||||
|             <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> | ||||
|           </div> | ||||
|         </li> | ||||
|         {{/each}} | ||||
|       </ul> | ||||
|  | ||||
|     </div> | ||||
|  | ||||
|     {{!-- Biography Tab --}} | ||||
|     <div class="tab biodata" data-group="primary" data-tab="biodata"> | ||||
|       <div class="grid grid-2col"> | ||||
|         <div> | ||||
|           <ul class="item-list alternate-list"> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Origin</label> | ||||
|               <input type="text" class="" name="system.biodata.origin" value="{{data.biodata.origin}}" | ||||
|               <label class="generic-label">Lieu de naissance</label> | ||||
|               <input type="text" class="" name="system.biodata.lieunaissance" value="{{data.biodata.origin}}" | ||||
|                 data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="item flexrow"> | ||||
| @@ -560,53 +156,65 @@ | ||||
|               <input type="text" class="" name="system.biodata.age" value="{{data.biodata.age}}" data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Height</label> | ||||
|               <input type="text" class="" name="system.biodata.height" value="{{data.biodata.height}}" data-dtype="String" /> | ||||
|               <label class="generic-label">Nationalité</label> | ||||
|               <input type="text" class="" name="system.biodata.nationalite" value="{{data.biodata.nationalite}}" data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Eyes</label> | ||||
|               <input type="text" class="" name="system.biodata.eyes" value="{{data.biodata.eyes}}" data-dtype="String" /> | ||||
|               <label class="generic-label">Enfance</label> | ||||
|               <input type="text" class="" name="system.biodata.enfance" value="{{data.biodata.enfance}}" data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Hair</label> | ||||
|               <input type="text" class="" name="system.biodata.hair" value="{{data.biodata.hair}}" data-dtype="String" /> | ||||
|               <label class="generic-label">Vie d'adulte</label> | ||||
|               <input type="text" class="" name="system.biodata.adulte" value="{{data.biodata.adulte}}" data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Loisirs</label> | ||||
|               <input type="text" class="" name="system.biodata.loisirs" value="{{data.biodata.loisirs}}" data-dtype="String" /> | ||||
|             </li> | ||||
|           </ul> | ||||
|         </div> | ||||
|        <div> | ||||
|           <ul> | ||||
|             <li class="flexrow item"> | ||||
|               <label class="generic-label">Size</label> | ||||
|               <select class="competence-base flexrow" type="text" name="system.biodata.size" value="{{data.biodata.size}}" data-dtype="Number"> | ||||
|                 {{#select data.biodata.size}} | ||||
|                 <option value="1">Tiny</option> | ||||
|                 <option value="2">Small</option> | ||||
|                 <option value="3">Medium</option> | ||||
|                 <option value="4">Large</option> | ||||
|                 <option value="5">Huge</option> | ||||
|                 <option value="6">Gargantuan</option> | ||||
|                 {{/select}} | ||||
|               </select>  | ||||
|               <label class="generic-label">Milieu social</label> | ||||
|               <input type="text" class="" name="system.biodata.milieusocial" value="{{data.biodata.milieusocial}}" data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="flexrow item"> | ||||
|               <label class="generic-label">Sex</label> | ||||
|               <input type="text" class="" name="system.biodata.sex" value="{{data.biodata.sex}}" data-dtype="String" /> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Profession</label> | ||||
|               <input type="text" class="" name="system.biodata.profession" value="{{data.biodata.profession}}" data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="flexrow item"> | ||||
|               <label class="generic-label">Preferred Hand</label> | ||||
|               <input type="text" class="" name="system.biodata.preferredhand" value="{{data.biodata.preferredhand}}" | ||||
|                 data-dtype="String" /> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Résidence</label> | ||||
|               <input type="text" class="" name="system.biodata.residence" value="{{data.biodata.residence}}" data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="flexrow item" data-item-id="{{race._id}}"> | ||||
|               <label class="generic-label">Race</label> | ||||
|               <a class="item-edit"><img class="stat-icon" src="{{race.img}}"></a> | ||||
|               <input type="text" class="" name="system.biodata.racename" value="{{data.biodata.racename}}" data-dtype="String" /> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Singularité</label> | ||||
|               <input type="text" class="" name="system.biodata.singularite" value="{{data.biodata.singularite}}" data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Orientation politique</label> | ||||
|               <input type="text" class="" name="system.biodata.politique" value="{{data.biodata.politique}}" data-dtype="String" /> | ||||
|             </li> | ||||
|             <li class="item flexrow"> | ||||
|               <label class="generic-label">Orientation religieuse</label> | ||||
|               <input type="text" class="" name="system.biodata.religion" value="{{data.biodata.religion}}" data-dtype="String" /> | ||||
|             </li> | ||||
|           </ul> | ||||
|         </div> | ||||
|       </div> | ||||
|   </div> | ||||
|    | ||||
|         <ul> | ||||
|           <li class="item flexrow"> | ||||
|             <label class="generic-label">Position vis-à-vis du fantastique</label> | ||||
|           </li> | ||||
|           <li class="item flexrow"> | ||||
|             <input type="text" class="" name="system.biodata.fantastique" value="{{data.biodata.fantastique}}" data-dtype="String" /> | ||||
|           </li> | ||||
|         </ul> | ||||
|  | ||||
|   </div> | ||||
|  | ||||
|   <div class="tab notes" data-group="primary" data-tab="notes"> | ||||
|       <hr> | ||||
|       <h3>Background : </h3> | ||||
|       <div class="form-group editor"> | ||||
| @@ -621,6 +229,7 @@ | ||||
|       <hr> | ||||
|       </article> | ||||
|     </div> | ||||
|   </div> | ||||
|  | ||||
|   </section> | ||||
| </form> | ||||
| @@ -18,32 +18,48 @@ | ||||
|  | ||||
|     <div> | ||||
|       <ul> | ||||
|         {{#if skill}} | ||||
|         <li>Skill : {{skill.name}} ({{skill.finalvalue}})  | ||||
|         {{#if attr}} | ||||
|         <li>{{attr.label}} : {{attr.value}}  | ||||
|         </li> | ||||
|         {{/if}} | ||||
|  | ||||
|         {{#if crafting}} | ||||
|         <li>Crafting : {{crafting.name}} ({{crafting.system.level}})  | ||||
|         </li> | ||||
|         {{/if}} | ||||
|         <li>Bonus/Malus perso: {{bonusMalusPerso}} </li> | ||||
|         <li>Bonus/Malus situation: {{bonusMalusSituation}} </li> | ||||
|         <li>Seuil final: {{target}} </li> | ||||
|         <li>Resultat {{roll.total}} </li> | ||||
|  | ||||
|         {{#if spell}} | ||||
|         <li>Spell : {{spell.name}} ({{spell.system.level}})  | ||||
|         </li> | ||||
|         <li>Focus Points Spent : {{spellCost}}  | ||||
|         </li> | ||||
|         {{/if}} | ||||
|         {{#if isSuccess}} | ||||
|           {{#if isCritical}} | ||||
|             <li><strong>Réussite Critique !</strong></li> | ||||
|             {{#if arme}} | ||||
|               {{#if arme.system.dommagecritiquemort}} | ||||
|                 <li><strong>La victime est morte !</strong></li> | ||||
|               {{else}} | ||||
|                 {{#if arme.system.dommagecritiqueko}} | ||||
|                   <li><strong>La victime est KO !</strong></li> | ||||
|                 {{/if}} | ||||
|                 <li><strong>La victime subit {{arme.system.dommagecritique}} dommages</strong></li> | ||||
|               {{/if}} | ||||
|             {{/if}} | ||||
|           {{else}}   | ||||
|             {{#if isPart}} | ||||
|               <li><strong>Réussite Particulière !</strong></li> | ||||
|               {{#if arme}} | ||||
|                 <li><strong>La victime subit {{arme.system.dommagepart}} dommages</strong></li> | ||||
|               {{/if}}         | ||||
|  | ||||
|         <li>Bonus/Malus {{bonusMalusRoll}} </li> | ||||
|         <li>Dice Formula {{diceFormula}} </li> | ||||
|         <li>Result {{roll.total}} </li> | ||||
|  | ||||
|         {{#if (ne targetCheck "none")}} | ||||
|           {{#if isSuccess}} | ||||
|           <li><strong>Success !</strong></li> | ||||
|             {{else}} | ||||
|               <li><strong>Succés !</strong></li> | ||||
|               {{#if arme}} | ||||
|                 <li><strong>La victime subit {{arme.system.dommagenormale}} dommages</strong></li> | ||||
|               {{/if}}         | ||||
|             {{/if}}         | ||||
|           {{/if}} | ||||
|         {{else}} | ||||
|           {{#if isFumble}} | ||||
|             <li><strong>Echec Critique !</strong></li> | ||||
|           {{else}} | ||||
|           <li><strong>Failure !</strong></li> | ||||
|             <li><strong>Echec !</strong></li> | ||||
|           {{/if}} | ||||
|         {{/if}} | ||||
|  | ||||
|   | ||||
| @@ -8,47 +8,17 @@ | ||||
|  | ||||
|     <div class="flexcol"> | ||||
|        | ||||
|       {{#if skill}} | ||||
|       {{#if attr}} | ||||
|       <div class="flexrow"> | ||||
|         <span class="roll-dialog-label">Skill : </span> | ||||
|         <span class="roll-dialog-label">{{skill.name}} ({{skill.finalvalue}})</span> | ||||
|       </div> | ||||
|       {{/if}} | ||||
|  | ||||
|       {{#if crafting}} | ||||
|       <div class="flexrow"> | ||||
|         <span class="roll-dialog-label">Crafting : </span> | ||||
|         <span class="roll-dialog-label">{{crafting.name}} ({{crafting.system.level}})</span> | ||||
|       </div> | ||||
|       {{/if}} | ||||
|  | ||||
|       {{#if weapon}} | ||||
|       <div class="flexrow"> | ||||
|         <span class="roll-dialog-label">Weapon Attack Bonus : </span> | ||||
|         <span class="roll-dialog-label">{{weapon.attackBonus}}</span> | ||||
|       </div> | ||||
|       {{/if}} | ||||
|  | ||||
|       {{#if spell}} | ||||
|       <div class="flexrow"> | ||||
|         <span class="roll-dialog-label">Spell : </span> | ||||
|         <span class="roll-dialog-label">{{spell.name}} ({{upperFirst spell.system.level}} - Cost : {{spellCost}})</span> | ||||
|       </div> | ||||
|       <div class="flexrow"> | ||||
|         <span class="roll-dialog-label">Spell Attack level : </span> | ||||
|         <span class="roll-dialog-label">{{spellAttack}}</span> | ||||
|       </div> | ||||
|       <div class="flexrow"> | ||||
|         <span class="roll-dialog-label">Spell Damage level : </span> | ||||
|         <span class="roll-dialog-label">{{spellDamage}}</span> | ||||
|         <span class="roll-dialog-label">{{attr.label}} : </span> | ||||
|         <span class="roll-dialog-label">{{attr.value}}</span> | ||||
|       </div> | ||||
|       {{/if}} | ||||
|  | ||||
|       <div class="flexrow"> | ||||
|         <span class="roll-dialog-label">Bonus/Malus : </span> | ||||
|         <select id="bonusMalusRoll" name="bonusMalusRoll"> | ||||
|           {{#select bonusMalusRoll}}  | ||||
|             <option value="-4">-4</option> | ||||
|         <span class="roll-dialog-label">Bonus/Malus biographique : </span> | ||||
|         <select id="bonusMalusPerso" name="bonusMalusPerso"> | ||||
|           {{#select bonusMalusPerso}}  | ||||
|             <option value="-3">-3</option> | ||||
|             <option value="-2">-2</option> | ||||
|             <option value="-1">-1</option> | ||||
| @@ -56,33 +26,39 @@ | ||||
|             <option value="1">+1</option> | ||||
|             <option value="2">+2</option> | ||||
|             <option value="3">+3</option> | ||||
|             <option value="4">+4</option> | ||||
|           {{/select}} | ||||
|         </select>         | ||||
|       </div> | ||||
|  | ||||
|       {{#if (eq skillKey "initiative") }} | ||||
|       <div class="flexrow"> | ||||
|         <span class="roll-dialog-label">Bonus/Malus de situation : </span> | ||||
|         <select id="bonusMalusSituation" name="bonusMalusSituation"> | ||||
|           {{#select bonusMalusSituation}}  | ||||
|             <option value="-3">-3</option> | ||||
|             <option value="-2">-2</option> | ||||
|             <option value="-1">-1</option> | ||||
|             <option value="0">0</option> | ||||
|             <option value="1">+1</option> | ||||
|             <option value="2">+2</option> | ||||
|             <option value="3">+3</option> | ||||
|           {{/select}} | ||||
|         </select>         | ||||
|       </div> | ||||
|  | ||||
|       {{else}} | ||||
|         {{#if (or spell weapon)}}  | ||||
|  | ||||
|         {{else}} | ||||
|         <div class="flexrow"> | ||||
|           <span class="roll-dialog-label">Target check : </span> | ||||
|           <select id="targetCheck" name="targetCheck"> | ||||
|             {{#select targetCheck}}  | ||||
|               <option value="none">None</option> | ||||
|               <option value="5">5 (Trivial)</option> | ||||
|               <option value="7">7 (Easy)</option> | ||||
|               <option value="10">10 (Regular)</option> | ||||
|               <option value="14">14 (Difficult)</option> | ||||
|               <option value="20">20 (Heroic)</option> | ||||
|             {{/select}} | ||||
|           </select>         | ||||
|         </div> | ||||
|         {{/if}} | ||||
|       {{#if arme}} | ||||
|       <div class="flexrow"> | ||||
|         <span class="roll-dialog-label">Défense : </span> | ||||
|         <select id="bonusMalusSituation" name="bonusMalusSituation"> | ||||
|           {{#select bonusMalusSituation}}  | ||||
|             <option value="-3">-6 (réussite critique)</option> | ||||
|             <option value="-3">-3 (réussite)</option> | ||||
|             <option value="0">0 (echec ou pas d'esquive)</option> | ||||
|             <option value="3">+3 (echec critique)</option> | ||||
|           {{/select}} | ||||
|         </select>         | ||||
|       </div> | ||||
|       {{/if}} | ||||
|  | ||||
|        | ||||
|   </div> | ||||
|  | ||||
| </form> | ||||
| @@ -6,13 +6,13 @@ | ||||
|       </div> | ||||
|   </header> | ||||
|    | ||||
|   {{> systems/fvtt-avd12/templates/items/partial-item-nav.hbs}} | ||||
|   {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs}} | ||||
| 
 | ||||
| 
 | ||||
|   {{!-- Sheet Body --}} | ||||
|   <section class="sheet-body"> | ||||
| 
 | ||||
|     {{> systems/fvtt-avd12/templates/items/partial-item-description.hbs}} | ||||
|     {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs}} | ||||
|      | ||||
|     <div class="tab details" data-group="primary" data-tab="details"> | ||||
| 
 | ||||
| @@ -22,9 +22,9 @@ | ||||
|           <li class="flexrow"> | ||||
|             <label class="item-field-label-long">Type d'arme</label> | ||||
|             <select class="item-field-label-long" type="text" name="system.armetype" value="{{system.armetype}}" data-dtype="String"> | ||||
|               {{#select system.category}} | ||||
|               {{#select system.armetype}} | ||||
|                 {{#each config.armeTypes as |type key| }} | ||||
|                 <option value="{{key}}">type</option> | ||||
|                 <option value="{{key}}">{{type}}</option> | ||||
|                 {{/each}} | ||||
|               {{/select}} | ||||
|             </select>  | ||||
							
								
								
									
										27
									
								
								templates/items/item-equipement-sheet.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,27 @@ | ||||
| <form class="{{cssClass}}" autocomplete="off"> | ||||
|   <header class="sheet-header"> | ||||
|       <img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/> | ||||
|       <div class="header-fields"> | ||||
|           <h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1> | ||||
|       </div> | ||||
|   </header> | ||||
|    | ||||
|   {{> systems/fvtt-malefices/templates/items/partial-item-nav.hbs}} | ||||
|  | ||||
|  | ||||
|   {{!-- Sheet Body --}} | ||||
|   <section class="sheet-body"> | ||||
|  | ||||
|     {{> systems/fvtt-malefices/templates/items/partial-item-description.hbs}} | ||||
|      | ||||
|     <div class="tab details" data-group="primary" data-tab="details"> | ||||
|  | ||||
|       <div class="tab" data-group="primary"> | ||||
|         <ul> | ||||
|  | ||||
|         </ul> | ||||
|     </div> | ||||
|   </div> | ||||
|  | ||||
|   </section> | ||||
| </form> | ||||