Compare commits

..

35 Commits

Author SHA1 Message Date
c0b67a86dd Sync templates 2023-03-31 09:53:01 +02:00
ae18d23630 Sync templates 2023-03-31 09:52:44 +02:00
80ec2e4e66 Fix translation 2023-03-30 18:04:03 +02:00
b5a7e79b17 Fix translation 2023-03-30 16:26:15 +02:00
538addd2c7 Fix size 2023-03-30 08:42:54 +02:00
9d8bd75348 Fix size 2023-03-30 07:48:12 +02:00
c97a39fe47 Update release 2023-03-28 09:20:20 +02:00
0be7e8a3b5 Update release 2023-03-28 08:14:14 +02:00
a032f177fa Update release 2023-03-28 08:12:57 +02:00
4f2cef924b Removbe packs 2023-03-27 19:09:40 +02:00
6148f73888 ALl items list 2023-03-26 08:57:44 +02:00
2e4b018834 New combat features 2023-03-24 13:40:20 +01:00
fb3d0dfd7f New combat features 2023-03-24 13:29:53 +01:00
e573f5b382 New combat features 2023-03-24 13:29:19 +01:00
ed494e69b9 Fix DR/Parry bonuses 2023-03-22 13:38:49 +01:00
2813e5a694 some re-org 2023-03-20 21:01:00 +01:00
09974cd323 Fix inventory 2023-03-19 23:13:46 +01:00
6b8710b94c Fix inventory 2023-03-19 23:13:24 +01:00
6b7d943649 New slots 2023-03-10 18:32:42 +01:00
c2a7fbb4b5 New slots 2023-03-10 18:32:13 +01:00
36c9945886 Update 2023-03-09 17:35:09 +01:00
bfad3d1e5f Update 2023-03-09 13:53:19 +01:00
7827e07e1c Minot fixes 2023-03-04 17:34:18 +01:00
3a8ad674bd Add new items 2023-02-27 22:04:03 +01:00
c8f7c7c1e5 Money 2023-02-21 17:53:00 +01:00
d922d77736 Minor changes 2023-02-20 18:38:00 +01:00
7137de0983 Minor changes 2023-02-20 10:16:17 +01:00
46b129cf81 Various fixes 2023-02-18 23:19:10 +01:00
fc9a878f3a Enhance sheets 2023-02-14 15:45:59 +01:00
db8cf30e06 Enhance translation keys 2023-02-14 13:46:59 +01:00
8524653c6b Update description data 2023-02-11 09:01:00 +01:00
b962f9ed41 Update description data 2023-02-10 20:31:18 +01:00
87bb1b6e93 Update powers 2023-02-08 21:19:53 +01:00
d7dc6fbb42 Update powers 2023-02-08 19:38:09 +01:00
cae8cd5ae8 Lates fixes 2023-02-07 15:18:00 +01:00
59 changed files with 6153 additions and 2829 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.history/

View File

@ -1,2 +1,4 @@
# fvtt-pegasus-rpg # fvtt-warhero

View File

@ -1,4 +1,29 @@
{ {
"ACTOR": {
"TypeCharacter": "Character",
"TypeNpc": "NPC",
"TypeMonster": "Monster",
"TypeParty": "Party"
},
"ITEM": {
"TypeWeapon": "Weapon",
"TypeEquipment": "Equipment",
"TypeRace": "Race",
"TypeArmor": "Armor",
"TypeShield": "Shield",
"TypeSkill": "Skill",
"TypePower": "Power",
"TypeLanguage": "Language",
"TypeCondition": "Condition",
"TypeClass": "Class",
"TypeMoney": "Money",
"TypePotion": "Potion",
"TypePoison": "Poison",
"TypeTrap": "Trap",
"TypeClassitem": "Class item",
"TypeCompetency": "Competency"
},
"WH.conf.short": "Short", "WH.conf.short": "Short",
"WH.conf.long": "Long", "WH.conf.long": "Long",
"WH.conf.twohanded": "Two-Handed", "WH.conf.twohanded": "Two-Handed",
@ -10,6 +35,8 @@
"WH.conf.lightshield": "Light", "WH.conf.lightshield": "Light",
"WH.conf.mediumshield": "Medium", "WH.conf.mediumshield": "Medium",
"WH.conf.towershield": "Tower", "WH.conf.towershield": "Tower",
"WH.conf.polearm": "Polearm",
"WH.conf.special": "Special",
"WH.conf.head": "Head", "WH.conf.head": "Head",
"WH.conf.cloak": "Cloak", "WH.conf.cloak": "Cloak",
@ -27,6 +54,23 @@
"WH.conf.beltpouch1": "Beltpouch 1", "WH.conf.beltpouch1": "Beltpouch 1",
"WH.conf.beltpouch2": "Beltpouch 2", "WH.conf.beltpouch2": "Beltpouch 2",
"WH.conf.beltpouch3": "Beltpouch 3", "WH.conf.beltpouch3": "Beltpouch 3",
"WH.conf.scrollcase": "Scroll case",
"WH.conf.wandcase": "Wand case",
"WH.conf.potioncase": "Potion case",
"WH.conf.bagholding": "Bag of holding",
"WH.conf.quiverholding": "Quiver of holding",
"WH.conf.backpackholding": "Backpack of holding",
"WH.conf.smallchest": "Small chest",
"WH.conf.mediumchest": "Medium chest",
"WH.conf.largechest": "Large chest",
"WH.conf.hugechest": "Huge chest",
"WH.conf.partystorage": "Party chest/storage",
"WH.conf.unknown": "Unknown",
"WH.conf.yes": "Yes",
"WH.conf.no": "No",
"WH.conf.notapplicable": "Not applicable",
"WH.conf.undefined": "Not applicable",
"WH.ui.level": "Level", "WH.ui.level": "Level",
"WH.ui.notes": "Notes", "WH.ui.notes": "Notes",
@ -42,6 +86,9 @@
"WH.ui.Strength": "Strength", "WH.ui.Strength": "Strength",
"WH.ui.Instinct": "Instinct", "WH.ui.Instinct": "Instinct",
"WH.ui.Dexterity": "Dexterity", "WH.ui.Dexterity": "Dexterity",
"WH.ui.savestr": "Str Save",
"WH.ui.savedex": "Dex Save",
"WH.ui.savemin": "Mind Save",
"WH.ui.Mind": "Mind", "WH.ui.Mind": "Mind",
"WH.ui.Type": "Type", "WH.ui.Type": "Type",
"WH.ui.HitPoints": "Hit Points", "WH.ui.HitPoints": "Hit Points",
@ -70,12 +117,122 @@
"WH.ui.parrybonustotal": "Parry bonus total", "WH.ui.parrybonustotal": "Parry bonus total",
"WH.ui.drbonustotal": "DR bonus total", "WH.ui.drbonustotal": "DR bonus total",
"WH.ui.counterspell": "Counter spell", "WH.ui.counterspell": "Counter spell",
"WH.ui.createitem": "Create item", "WH.ui.createitem": "Bonus to percentage throws",
"WH.ui.classSkills": "Class Skills", "WH.ui.classSkills": "Class Skills",
"WH.ui.skills": "Skills", "WH.ui.skills": "Skills based on level",
"WH.ui.isclassskill": "Class skill ?", "WH.ui.isclassskill": "Class skill ?",
"WH.ui.israceskill": "Race skill ?",
"WH.ui.unlimited": "Unlimited use ?", "WH.ui.unlimited": "Unlimited use ?",
"WH.ui.currentuse": "Current use", "WH.ui.currentuse": "Current use",
"WH.ui.maxuse": "Max use", "WH.ui.maxuse": "Max use",
"WH.ui.languages": "Languages" "WH.ui.languages": "Languagess",
"WH.ui.languagesbonus": "Bonus Languages (mind/2)",
"WH.ui.competency": "Competency",
"WH.ui.conditions": "Conditions",
"WH.ui.effect": "Effect",
"WH.ui.main": "Main",
"WH.ui.combat": "Combat",
"WH.ui.skillstab": "Skills&Effects",
"WH.ui.powers": "Powers",
"WH.ui.equipment": "Equipment",
"WH.ui.biography": "Biography",
"WH.ui.race": "Race",
"WH.ui.class": "Class",
"WH.ui.religion": "Religion",
"WH.ui.origin": "Origin",
"WH.ui.age": "Age",
"WH.ui.height": "Height",
"WH.ui.eyes": "Eyes",
"WH.ui.hair": "Hair",
"WH.ui.preferredhand": "Preferred Hand",
"WH.ui.size": "Size",
"WH.ui.gender": "Gender",
"WH.ui.background": "Background",
"WH.ui.type": "Type",
"WH.ui.description": "Description",
"WH.ui.rawroll": "Raw Roll Formula (ex: 1d20+@statistics.str.value)",
"WH.ui.rawdamage": "Raw Damage Formula (ex: 1d6+(@statistics.str.value/2))",
"WH.ui.damage": "Damage",
"WH.ui.2hdamage": "2 Hands Damage",
"WH.ui.slotlocation": "Slot location",
"WH.ui.quantity": "Quantity",
"WH.ui.cost": "Cost",
"WH.ui.details": "Details",
"WH.ui.magicschool": "Magic School",
"WH.ui.providedslot": "Provided slot",
"WH.ui.skilllevelacquired": "Acquired at level",
"WH.ui.totalmoney": "Total money owned",
"WH.ui.preparetime": "Time to prepare",
"WH.ui.durationrounds": "Duration in rounds",
"WH.ui.application": "Application",
"WH.ui.savesdc": "Saves DC",
"WH.ui.savetype": "Save type",
"WH.ui.Touch": "Touch",
"WH.ui.Ingestion": "Ingestion",
"WH.ui.Weapon": "Weapon",
"WH.ui.halfdamage": "Half-damage",
"WH.ui.ignore": "Ignore effect",
"WH.ui.dcfind": "DC to find",
"WH.ui.dcdisable": "DC to disable",
"WH.ui.throwtohit": "Throw to hit",
"WH.ui.mandatoryfor": "Mandatory for",
"WH.ui.generic": "Generic",
"WH.ui.bless": "Bless",
"WH.ui.spell": "Spell",
"WH.ui.poison": "Poison",
"WH.ui.disease": "Disease",
"WH.ui.curse": "Curse",
"WH.ui.permanent": "Permanent",
"WH.ui.temporary": "Temporary",
"WH.ui.begin": "Begin",
"WH.ui.specialduration": "Special duration",
"WH.ui.infinite": "Infinite",
"WH.uiwithineor": "Within end of round",
"WH.ui.beginr": "Beginning of round",
"WH.ui.nextr": "Next round",
"WH.ui.nextcombat": "Next combat",
"WH.ui.untilendcombat": "Until end of combat",
"WH.ui.beginturn": "Beginning of turn",
"WH.ui.endturn": "End of turn",
"WH.ui.durationvalue": "Duration value",
"WH.ui.durationunit": "Duration unit",
"WH.ui.dcsave": "DC save",
"WH.ui.incubationtime": "Incubation time",
"WH.ui.diseaseduration": "Disease duration",
"WH.ui.ignoreeffect": "Ignore effect",
"WH.ui.raceSkills": "Race skills",
"WH.ui.identified": "Identified",
"WH.ui.isclasssecondary": "Secondary class ?",
"WH.ui.secondaryclass": "Super warhero",
"WH.ui.meleedamagebonus": "Melee damage bonus",
"WH.ui.rangeddamagebonus": "Ranged damage bonus",
"WH.ui.notapplicable": "Not applicable",
"WH.ui.chargedaily": "Daily",
"WH.ui.chargelimited": "Limited",
"WH.ui.magiccharge": "Magic charges",
"WH.ui.chargevalue": "Charge value",
"WH.ui.allitems": "All items",
"WH.ui.small": "Small",
"WH.ui.medium": "Medium",
"WH.ui.large": "Large",
"WH.ui.conditiontype": "Condition type",
"WH.ui.duration": "Duration",
"WH.ui.bodyslots": "Body",
"WH.ui.containerslot": "Containers",
"WH.chat.save": "Save",
"WH.chat.mweaponmalus": "Multiple weapons malus ",
"WH.chat.diceresult": "Dice result",
"WH.chat.result": "Result",
"WH.chat.parysuccess": "Parry success !",
"WH.chat.paryfailed": "Parry failed !",
"WH.chat.rollformula": "Roll Formula",
"WH.chat.useshield":"Use shield ?",
"WH.chat.power": "Power",
"WH.chat.powerlevel": "Power Level",
"WH.notif.skillmaxuse": "Maximum skill usage reach - Use is not allowed",
"WH.notif.toomanyuses": "Maximum use reach - Roll is not allowed"
} }

236
lang/it.json Normal file
View File

@ -0,0 +1,236 @@
{
"ACTOR": {
"TypeCharacter": "PG",
"TypeNpc": "PNG",
"TypeMonster": "Mostro",
"TypeParty": "Gruppo"
},
"ITEM": {
"TypeWeapon": "Arma",
"TypeEquipment": "Equipaggiamento",
"TypeRace": "Razza",
"TypeArmor": "Armatura",
"TypeShield": "Scudo",
"TypeSkill": "Abilità",
"TypePower": "Potere",
"TypeLanguage": "Lingua",
"TypeCondition": "Status",
"TypeClass": "Classe",
"TypeMoney": "Mo",
"TypePotion": "Pozione",
"TypePoison": "Veleno",
"TypeTrap": "Trappola",
"TypeClassitem": "Classe",
"TypeCompetency": "Competenza"
},
"WH.conf.short": "Corte",
"WH.conf.long": "Lunghe",
"WH.conf.twohanded": "A due mani",
"WH.conf.shooting": "Da Tiro",
"WH.conf.throwing": "Da Lancio",
"WH.conf.lightarmor" : "Leggera",
"WH.conf.mediumarmor": "Media",
"WH.conf.heavyarmor": "Pesante",
"WH.conf.lightshield": "Leggero",
"WH.conf.mediumshield": "Medio",
"WH.conf.towershield": "Torre",
"WH.conf.polearm": "In asta",
"WH.conf.special": "Speciale",
"WH.conf.head": "Testa",
"WH.conf.cloak": "Mantello",
"WH.conf.weapon1": "Arma 1",
"WH.conf.weapon2": "Arma 2",
"WH.conf.gloves": "Guanti",
"WH.conf.dress": "Vestito",
"WH.conf.boots": "Stivali",
"WH.conf.ring": "Anelli",
"WH.conf.belt": "Cintura",
"WH.conf.quiver": "Faretra",
"WH.conf.armor": "Armatura",
"WH.conf.shield": "Scudo",
"WH.conf.backpack": "Zaino",
"WH.conf.beltpouch1": "Borsa da cintura 1",
"WH.conf.beltpouch2": "Borsa da cintura 2",
"WH.conf.beltpouch3": "Borsa da cintura 3",
"WH.conf.scrollcase": "Contenitore per mappe o pergamene",
"WH.conf.wandcase": "Porta bacchette",
"WH.conf.potioncase": "Porta pozioni",
"WH.conf.bagholding": "Borsa conservante",
"WH.conf.quiverholding": "Faretra conservante",
"WH.conf.backpackholding": "Zaino conservante",
"WH.conf.smallchest": "Scrigno piccolo",
"WH.conf.mediumchest": "Scrigno medio",
"WH.conf.largechest": "Scrigno grande",
"WH.conf.hugechest": "Scrigno enorme",
"WH.conf.partystorage": "Scrigno di gruppo",
"WH.conf.unknown": "Non sai se è magico",
"WH.conf.yes": "Identificato",
"WH.conf.no": "Non identificato",
"WH.conf.notapplicable": "Non applicabile",
"WH.conf.undefined": "Not applicable",
"WH.ui.level": "Livello",
"WH.ui.notes": "Note",
"WH.ui.hpprog": "Progressione PF",
"WH.ui.lan": "Lingue",
"WH.ui.attrbonus": "Attributo",
"WH.ui.weapons": "Armi",
"WH.ui.armors": "Armature",
"WH.ui.shields": "Scudi",
"WH.ui.weapon": "Arma",
"WH.ui.Strength": "Fisico",
"WH.ui.Instinct": "Istinto",
"WH.ui.Dexterity": "Istinto",
"WH.ui.savestr": "Ts Fisico",
"WH.ui.savedex": "Ts Istinto",
"WH.ui.savemin": "Ts Mente",
"WH.ui.Mind": "Mente",
"WH.ui.Type": "Tipo",
"WH.ui.HitPoints": "Punti ferita",
"WH.ui.Defence": "Difesa",
"WH.ui.Throw2HitM": "Txc (corpo a corpo)",
"WH.ui.Throw2HitR": "Txc (distanza)",
"WH.ui.Mana": "Mana",
"WH.ui.Initiative": "Iniziativa",
"WH.ui.Movement": "Movimento (Terra)",
"WH.ui.MovementSwim": "Movimento (Nuoto)",
"WH.ui.MovementFly": "Movimento (Volare)",
"WH.ui.power": "Potere",
"WH.ui.Qty": "Quantitá",
"WH.ui.maxslots": "Max slots",
"WH.ui.slotsused": "Slots usati",
"WH.ui.Damage": "Danni",
"WH.ui.parrybonus": "Bonus a parata",
"WH.ui.damagereduction": "Riduzione danno",
"WH.ui.save": "Salva",
"WH.ui.XP": "PE",
"WH.ui.xphp": "Progressione PF",
"WH.ui.Knowledge": "Conoscenze",
"WH.ui.malusmultiweapon": "Malus nell uso di due armi",
"WH.ui.drbonus": "Bonus RD",
"WH.ui.parrybonustotal": "Bonus Parata totale",
"WH.ui.drbonustotal": "Bonus RD totale",
"WH.ui.counterspell": "Contropotere",
"WH.ui.createitem": "Bonus ai tiri percentuali",
"WH.ui.classSkills": "Abilitá di classe",
"WH.ui.skills": "Abilitá Aggiuntiva",
"WH.ui.isclassskill": "Abilità di classe?",
"WH.ui.israceskill": "Abilità di razza?",
"WH.ui.unlimited": "Usi illimitati?",
"WH.ui.currentuse": "Numero di usi",
"WH.ui.maxuse": "Usi Massimi",
"WH.ui.languages": "Lingue",
"WH.ui.languagesbonus": "Bonus a linguaggi conosciuti (men/2)",
"WH.ui.competency": "Competenze",
"WH.ui.conditions": "Condizione",
"WH.ui.effect": "Effetto",
"WH.ui.main": "Principale",
"WH.ui.combat": "Combattimento",
"WH.ui.skillstab": "Abilità ed effetti",
"WH.ui.powers": "Poteri",
"WH.ui.equipment": "Equipaggiamento",
"WH.ui.biography": "Biografia",
"WH.ui.race": "Razza",
"WH.ui.class": "Classe",
"WH.ui.religion": "Fede",
"WH.ui.origin": "Origine",
"WH.ui.age": "Età",
"WH.ui.height": "Altezza",
"WH.ui.eyes": "Occhi",
"WH.ui.hair": "Capelli",
"WH.ui.preferredhand": "Mano preferita",
"WH.ui.size": "Taglia",
"WH.ui.gender": "Genere",
"WH.ui.background": "Storia",
"WH.ui.type": "Tipo",
"WH.ui.description": "Descrizione",
"WH.ui.rawroll": "Formula del dado (es: 1d20+@statistics.str.value)",
"WH.ui.rawdamage": "Formula danni (ex: 1d6+(@statistics.str.value/2))",
"WH.ui.damage": "Danno",
"WH.ui.2hdamage": "Danno a 2 mani",
"WH.ui.slotlocation": "Posizione dello slot",
"WH.ui.quantity": "Quantità",
"WH.ui.cost": "Costo",
"WH.ui.details": "Dettagli",
"WH.ui.magicschool": "Scuola di magia",
"WH.ui.providedslot": "Slot forniti",
"WH.ui.skilllevelacquired": "Acquisito a livello",
"WH.ui.totalmoney": "Total monete guadagnate",
"WH.ui.preparetime": "Tempo di preparazione",
"WH.ui.durationrounds": "Durata (in round)",
"WH.ui.application": "Tipo di applicazione",
"WH.ui.savesdc": "CD TS",
"WH.ui.savetype": "Tipo del tiro salvezza",
"WH.ui.Touch": "Tocco",
"WH.ui.Ingestion": "Ingestione",
"WH.ui.Weapon": "Arma",
"WH.ui.halfdamage": "Dimezza",
"WH.ui.ignore": "Nega",
"WH.ui.dcfind": "CD per trovare",
"WH.ui.dcdisable": "CD per disattivare ",
"WH.ui.throwtohit": "Tiro per colpire",
"WH.ui.mandatoryfor": "Obbligatorio per",
"WH.ui.generic": "Generico",
"WH.ui.bless": "Benedizione",
"WH.ui.spell": "Incantesimo (Potere)",
"WH.ui.poison": "Veleno",
"WH.ui.disease": "Malattia",
"WH.ui.curse": "Maledizione",
"WH.ui.permanent": "Permanente",
"WH.ui.temporary": "Temporanea",
"WH.ui.begin": "Inizio",
"WH.ui.specialduration": "Durata speciale",
"WH.ui.infinite": "Infinita",
"WH.uiwithineor": "Entro la fine del round",
"WH.ui.beginr": "All' inizio del prossimo round",
"WH.ui.nextr": "Prossimo round",
"WH.ui.nextcombat": "Al prossimo combattimento",
"WH.ui.untilendcombat": "Fino alla fine del combattimento",
"WH.ui.beginturn": "Inizio del turno",
"WH.ui.endturn": "Fine del turno",
"WH.ui.durationvalue": "Durata",
"WH.ui.durationunit": "Durata (unità di misura)",
"WH.ui.dcsave": "CD",
"WH.ui.incubationtime": "Tempo di incubazione",
"WH.ui.diseaseduration": "Durata malattia",
"WH.ui.ignoreeffect": "Ignora effetto",
"WH.ui.raceSkills": "Abilità di razza",
"WH.ui.identified": "Identificato",
"WH.ui.isclasssecondary": "Classe secondaria?",
"WH.ui.secondaryclass": "Super warhero",
"WH.ui.meleedamagebonus": "Bonus ai danni in corpo a corpo",
"WH.ui.rangeddamagebonus": "Bonus ai danni a distanza",
"WH.ui.notapplicable": "Non applicabile",
"WH.ui.chargedaily": "Al giorno",
"WH.ui.chargelimited": "Limitate",
"WH.ui.magiccharge": "Cariche magiche",
"WH.ui.chargevalue": "Valore delle cariche",
"WH.ui.allitems": "Tutti gli oggetti",
"WH.ui.small": "Piccola",
"WH.ui.medium": "Media",
"WH.ui.large": "Grande",
"WH.ui.bodyslots": "Corpo",
"WH.ui.containerslot": "Contenitori",
"WH.chat.save": "Salva",
"WH.chat.mweaponmalus": "Malus attacchi con più armi",
"WH.chat.diceresult": "Risultato del dado",
"WH.chat.result": "Risultato",
"WH.chat.parysuccess": "Parato con successo !",
"WH.chat.paryfailed": "Parata fallita !",
"WH.chat.rollformula": "Formula del dado",
"WH.chat.useshield":"Usare scudo?",
"WH.chat.power": "Potere",
"WH.chat.powerlevel": "Livello di potere",
"WH.notif.skillmaxuse": "Usi massimi raggiunti",
"WH.notif.toomanyuses": "Usi massimi raggiunti"
}

1282
modules/import-global.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -42,19 +42,28 @@ export class WarheroActorSheet extends ActorSheet {
cssClass: this.isEditable ? "editable" : "locked", cssClass: this.isEditable ? "editable" : "locked",
system: objectData, system: objectData,
limited: this.object.limited, limited: this.object.limited,
compentencyItems:this.actor.getCompetencyItems( ),
skills: this.actor.getNormalSkills( ), skills: this.actor.getNormalSkills( ),
raceSkills: this.actor.getRaceSkills( ),
classSkills: this.actor.getClassSkills( ), classSkills: this.actor.getClassSkills( ),
languages: this.actor.getLanguages( ), languages: this.actor.getLanguages( ),
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ), weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
conditions: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getConditions()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())), armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())), shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
powers: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getPowers())), equippedWeapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getEquippedWeapons())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ), equippedArmors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getEquippedArmors())),
slotEquipments: this.actor.buildEquipmentsSlot(), equippedShields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getEquippedShields())),
powers: this.actor.sortPowers(),
allItems: this.actor.getAllItems(),
subActors: duplicate(this.actor.getSubActors()), subActors: duplicate(this.actor.getSubActors()),
competency: this.actor.getCompetency(),
race: duplicate(race), race: duplicate(race),
class: duplicate(this.actor.getClass()), mainClass: this.actor.getMainClass(),
moneys: duplicate(this.actor.getMoneys()), secondaryClass: this.actor.getSecondaryClass(),
totalMoney: this.actor.computeTotalMoney(),
equipments: duplicate(this.actor.getEquipmentsOnly()),
//moneys: duplicate(this.actor.getMoneys()),
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}), description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, {async: true}), notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, {async: true}),
options: this.options, options: this.options,
@ -62,6 +71,15 @@ export class WarheroActorSheet extends ActorSheet {
editScore: this.options.editScore, editScore: this.options.editScore,
isGM: game.user.isGM isGM: game.user.isGM
} }
if (this.actor.type == "party") {
formData.partySlots = this.actor.buildPartySlots()
} else {
formData.equipmentContainers = this.actor.buildEquipmentsSlot()
formData.bodyContainers = this.actor.buildBodySlot()
}
// Dynamic patch
formData.system.secondary.counterspell.hasmax = false
// Race mngt
if ( race && race.name) { if ( race && race.name) {
formData.hpprogression = game.system.warhero.config.progressionList[race.system.hpprogresion] formData.hpprogression = game.system.warhero.config.progressionList[race.system.hpprogresion]
} }
@ -97,7 +115,8 @@ export class WarheroActorSheet extends ActorSheet {
}) })
html.find('.item-add').click(ev => { html.find('.item-add').click(ev => {
let dataType = $(ev.currentTarget).data("type") let dataType = $(ev.currentTarget).data("type")
this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true }) let slotKey = $(ev.currentTarget).data("slot")
this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType, system: { slotlocation: slotKey} }], { renderSheet: true })
}) })
html.find('.equip-activate').click(ev => { html.find('.equip-activate').click(ev => {
@ -131,6 +150,15 @@ export class WarheroActorSheet extends ActorSheet {
const li = $(event.currentTarget).parents(".item"); const li = $(event.currentTarget).parents(".item");
this.actor.incDecQuantity( li.data("item-id"), +1 ); this.actor.incDecQuantity( li.data("item-id"), +1 );
} ); } );
html.find('.skill-use-minus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecSkillUse( li.data("item-id"), -1 );
} );
html.find('.skill-use-plus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecSkillUse( li.data("item-id"), +1 );
} );
html.find('.ammo-minus').click(event => { html.find('.ammo-minus').click(event => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
@ -166,7 +194,11 @@ export class WarheroActorSheet extends ActorSheet {
const weaponId = li.data("item-id") const weaponId = li.data("item-id")
this.actor.rollDamage(weaponId) this.actor.rollDamage(weaponId)
}); });
html.find('.roll-damage-2hands').click((event) => {
const li = $(event.currentTarget).parents(".item")
const weaponId = li.data("item-id")
this.actor.rollDamage(weaponId, true)
});
html.find('.lock-unlock-sheet').click((event) => { html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore; this.options.editScore = !this.options.editScore;
this.render(true); this.render(true);

View File

@ -123,6 +123,11 @@ export class WarheroActor extends Actor {
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getEquippedArmors() {
let comp = duplicate(this.items.filter(item => item.type == 'armor' && item.system.slotlocation == 'armor') || []);
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
}
getArmors() { getArmors() {
let comp = duplicate(this.items.filter(item => item.type == 'armor') || []); let comp = duplicate(this.items.filter(item => item.type == 'armor') || []);
WarheroUtility.sortArrayObjectsByName(comp) WarheroUtility.sortArrayObjectsByName(comp)
@ -133,7 +138,30 @@ export class WarheroActor extends Actor {
WarheroUtility.sortArrayObjectsByName(comp) WarheroUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
sortPowers() {
let schools = {}
for (let power of this.items) {
if (power.type == "power") {
power = duplicate(power)
let school = schools[power.system.magicschool] || []
school.push(power)
WarheroUtility.sortArrayObjectsByNameAndLevel(school)
schools[power.system.magicschool] = school
}
}
return schools
}
getAllItems() {
let comp = duplicate(this.items || []);
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */ /* -------------------------------------------- */
getEquippedShields() {
let comp = duplicate(this.items.filter(item => item.type == 'shield' && item.system.slotlocation == "shield") || []);
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
}
getShields() { getShields() {
let comp = duplicate(this.items.filter(item => item.type == 'shield') || []); let comp = duplicate(this.items.filter(item => item.type == 'shield') || []);
WarheroUtility.sortArrayObjectsByName(comp) WarheroUtility.sortArrayObjectsByName(comp)
@ -145,9 +173,18 @@ export class WarheroActor extends Actor {
return race[0] ?? []; return race[0] ?? [];
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getClass() { getMainClass() {
let classWH = this.items.filter(item => item.type == 'class') let classWH = this.items.find(item => item.type == 'class' && !item.system.issecondary)
return classWH[0] ?? []; return classWH
}
getSecondaryClass() {
let classWH = this.items.find(item => item.type == 'class' && item.system.issecondary)
return classWH
}
getClasses() {
let comp = duplicate(this.items.filter(item => item.type == "class") || []);
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
checkAndPrepareEquipment(item) { checkAndPrepareEquipment(item) {
@ -160,20 +197,86 @@ export class WarheroActor extends Actor {
} }
return listItem return listItem
} }
/* -------------------------------------------- */
computeTotalMoney() {
let nbMoney = 0
this.items.forEach(it => { if (it.type == 'money') { nbMoney += it.system.quantity } })
return nbMoney
}
/* -------------------------------------------- */
buildPartySlots() {
let containers = {}
for (let slotName in game.system.warhero.config.partySlotNames) {
let slotDef = game.system.warhero.config.partySlotNames[slotName]
containers[slotName] = duplicate(slotDef)
containers[slotName].content = this.items.filter(it => (it.type == 'money' || it.type == 'weapon' || it.type == 'armor' || it.type == 'shield' || it.type == 'equipment') )
let slotUsed = 0
for (let item of containers[slotName].content) {
let q = (item.system.quantity) ? item.system.quantity : 1
containers[slotName].nbslots += (item.system.providedslot ?? 0) * q
if (item.type == "money") {
slotUsed += Math.ceil(item.system.quantity / 1000)
} else {
slotUsed += item.system.slotused * q
}
}
slotUsed = Math.ceil(slotUsed)
containers[slotName].slotUsed = slotUsed
}
return containers
}
/* -------------------------------------------- */
buildBodySlot() {
let containers = {}
for (let slotName in game.system.warhero.config.slotNames) {
let slotDef = game.system.warhero.config.slotNames[slotName]
if (!slotDef.container) {
containers[slotName] = duplicate(slotDef)
containers[slotName].content = this.items.filter(it => (it.type == 'money' || it.type == 'weapon' || it.type == 'armor' || it.type == 'shield' || it.type == 'equipment')
&& it.system.slotlocation == slotName)
let slotUsed = 0
for (let item of containers[slotName].content) {
let q = (item.system.quantity) ? item.system.quantity : 1
containers[slotName].nbslots += (item.system.providedslot ?? 0) * q
if (item.type == "money") {
slotUsed += Math.ceil(item.system.quantity / 1000)
} else {
slotUsed += item.system.slotused * q
}
}
slotUsed = Math.ceil(slotUsed)
containers[slotName].slotUsed = slotUsed
}
}
return containers
}
/* -------------------------------------------- */ /* -------------------------------------------- */
buildEquipmentsSlot() { buildEquipmentsSlot() {
let containers = {} let containers = {}
for(let slotName in game.system.warhero.config.slotNames) { for (let slotName in game.system.warhero.config.slotNames) {
let slotDef = game.system.warhero.config.slotNames[slotName] let slotDef = game.system.warhero.config.slotNames[slotName]
if (slotDef.container) {
containers[slotName] = duplicate(slotDef) containers[slotName] = duplicate(slotDef)
containers[slotName].content = this.items.filter(it => (it.type == 'weapon' || it.type == 'armor' || it.type == 'shield'||it.type == 'equipment') containers[slotName].content = this.items.filter(it => (it.type == 'money' || it.type == 'weapon' || it.type == 'armor' || it.type == 'shield' || it.type == 'equipment')
&& it.system.slotlocation == slotName ) && it.system.slotlocation == slotName)
let slotUsed = 0 let slotUsed = 0
for(let item of containers[slotName].content) { for (let item of containers[slotName].content) {
slotUsed += item.system.slotused * ((item.system.quantity) ? item.system.quantity : 1) let q = (item.system.quantity) ? item.system.quantity : 1
containers[slotName].nbslots += (item.system.providedslot ?? 0) * q
if (item.type == "money") {
slotUsed += Math.ceil(item.system.quantity / 1000)
} else {
slotUsed += item.system.slotused * q
} }
}
slotUsed = Math.ceil(slotUsed)
containers[slotName].slotUsed = slotUsed containers[slotName].slotUsed = slotUsed
} }
}
return containers return containers
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -185,15 +288,35 @@ export class WarheroActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareWeapon(weapon) { prepareWeapon(weapon) {
let formula = weapon.system.damage let formula = weapon.system.damage
if (weapon.system.weapontype == "long") { if (weapon.system.weapontype == "long" || weapon.system.weapontype == "short") {
formula += "+" + this.system.statistics.str.value formula += "+" + this.system.statistics.str.value
} }
if (weapon.system.weapontype == "twohanded") { if (weapon.system.weapontype == "twohanded") {
formula += "+" + Math.floor(this.system.statistics.str.value*1.5) formula += "+" + Math.floor(this.system.statistics.str.value * 1.5)
}
if (weapon.system.weapontype == "polearm") {
formula += "+" + Math.floor(this.system.statistics.str.value * 1)
weapon.damageFormula2Hands = weapon.system.damage2hands + "+" + Math.floor(this.system.statistics.str.value * 1.5)
}
if (weapon.system.weapontype == "throwing" || weapon.system.weapontype == "shooting") {
formula += "+"+this.system.secondary.rangeddamagebonus.value
} else if ( weapon.system.weapontype != "special" ) {
formula += "+"+this.system.secondary.meleedamagebonus.value
if (weapon.damageFormula2Hands) {
weapon.damageFormula2Hands += "+"+this.system.secondary.meleedamagebonus.value
}
} }
weapon.damageFormula = formula weapon.damageFormula = formula
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getEquippedWeapons() {
let comp = duplicate(this.items.filter(item => item.type == 'weapon' && (item.system.slotlocation == "weapon1" || item.system.slotlocation == "weapon2") ) || []);
for (let weapon of comp) {
this.prepareWeapon(weapon)
}
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
}
getWeapons() { getWeapons() {
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []); let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []);
for (let weapon of comp) { for (let weapon of comp) {
@ -203,6 +326,12 @@ export class WarheroActor extends Actor {
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getConditions() {
let comp = duplicate(this.items.filter(item => item.type == 'condition') || []);
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */
getItemById(id) { getItemById(id) {
let item = this.items.find(item => item.id == id); let item = this.items.find(item => item.id == id);
if (item) { if (item) {
@ -218,7 +347,12 @@ export class WarheroActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getNormalSkills() { getNormalSkills() {
let comp = this.items.filter(it => it.type == "skill" && !it.system.classskill) let comp = this.items.filter(it => it.type == "skill" && !it.system.classskill && !it.system.raceskill)
WarheroUtility.sortArrayObjectsByName(comp)
return comp
}
getRaceSkills() {
let comp = this.items.filter(it => it.type == "skill" && it.system.raceskill)
WarheroUtility.sortArrayObjectsByName(comp) WarheroUtility.sortArrayObjectsByName(comp)
return comp return comp
} }
@ -276,7 +410,10 @@ export class WarheroActor extends Actor {
/* ------------------------------------------- */ /* ------------------------------------------- */
getEquipments() { getEquipments() {
return this.items.filter(item => item.type == 'shield' || item.type == 'armor' || item.type == "weapon" || item.type == "equipment"); return this.items.filter(item => item.type == 'shield' || item.type == 'armor' || item.type == "weapon" || item.type == "equipment" || item.type == "potion" || item.type == "poison" || item.type == "trap" || item.type == "classitem");
}
getCompetencyItems() {
return duplicate(this.items.filter(item => item.type == "competency") || [])
} }
/* ------------------------------------------- */ /* ------------------------------------------- */
getEquipmentsOnly() { getEquipmentsOnly() {
@ -358,13 +495,44 @@ export class WarheroActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async incDecHP(formula) { async incDecHP(formula) {
let dmgRoll = new Roll(formula+"[warhero-orange]").roll({ async: false }) let dmgRoll = new Roll(formula + "[warhero-orange]").roll({ async: false })
await WarheroUtility.showDiceSoNice(dmgRoll, game.settings.get("core", "rollMode")) await WarheroUtility.showDiceSoNice(dmgRoll, game.settings.get("core", "rollMode"))
let hp = duplicate(this.system.secondary.hp) let hp = duplicate(this.system.secondary.hp)
hp.value = Number(hp.value) + Number(dmgRoll.total) hp.value = Number(hp.value) + Number(dmgRoll.total)
this.update({ 'system.secondary.hp': hp }) this.update({ 'system.secondary.hp': hp })
return Number(dmgRoll.total) return Number(dmgRoll.total)
} }
/* -------------------------------------------- */
updateCompetency(competency, obj, labelTab) {
for (let key in obj) {
if (obj[key]) {
//console.log("Parsing", key) //game.system.warhero.config.weaponTypes[key].label)
competency[key] = { enabled: true, label: labelTab[key].label }
}
}
}
getCompetency() {
let myRace = this.getRace()
let myClass1 = this.getMainClass()
let myClass2 = this.getSecondaryClass()
let competency = { weapons: {}, armors: {}, shields: {} }
if (myRace.system) {
this.updateCompetency(competency.weapons, myRace.system.weapons, game.system.warhero.config.weaponTypes)
this.updateCompetency(competency.armors, myRace.system.armors, game.system.warhero.config.armorTypes)
this.updateCompetency(competency.shields, myRace.system.shields, game.system.warhero.config.shieldTypes)
}
if (myClass1 && myClass1.system) {
this.updateCompetency(competency.weapons, myClass1.system.weapons, game.system.warhero.config.weaponTypes)
this.updateCompetency(competency.armors, myClass1.system.armors, game.system.warhero.config.armorTypes)
this.updateCompetency(competency.shields, myClass1.system.shields, game.system.warhero.config.shieldTypes)
}
if (myClass2 && myClass2.system) {
this.updateCompetency(competency.weapons, myClass2.system.weapons, game.system.warhero.config.weaponTypes)
this.updateCompetency(competency.armors, myClass2.system.armors, game.system.warhero.config.armorTypes)
this.updateCompetency(competency.shields, myClass2.system.shields, game.system.warhero.config.shieldTypes)
}
return competency
}
/* -------------------------------------------- */ /* -------------------------------------------- */
getAbility(abilKey) { getAbility(abilKey) {
@ -410,12 +578,10 @@ export class WarheroActor extends Actor {
} }
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getInitiativeScore(combatId, combatantId) { async getInitiativeScore(combatId, combatantId) {
if (this.type == 'character') { let roll = new Roll("1d20+" + this.system.attributes.ini.value).roll({ async: false })
this.rollMR(true, combatId, combatantId) await WarheroUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"))
} return roll.total
console.log("Init required !!!!")
return -1;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -496,7 +662,19 @@ export class WarheroActor extends Actor {
} }
} }
} }
/* -------------------------------------------- */
async incDecSkillUse(skillId, value) {
let skill = this.items.get(skillId)
if (skill) {
let newUse = skill.system.currentuse + value
if (newUse > skill.system.maxuse) {
ui.notifications.warn(game.i18n.localize("WH.notif.skillmaxuse"))
return
}
newUse = Math.max(newUse, 0)
this.updateEmbeddedDocuments('Item', [{ _id: skill.id, 'system.currentuse': newUse }])
}
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async incDecQuantity(objetId, incDec = 0) { async incDecQuantity(objetId, incDec = 0) {
let objetQ = this.items.get(objetId) let objetQ = this.items.get(objetId)
@ -549,11 +727,11 @@ export class WarheroActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
setLevel() { setLevel() {
let xp = this.system.secondary.xp.value let xp = this.system.secondary.xp.value
this.system.secondary.xp.level = Math.floor(xp/10) this.system.secondary.xp.level = 1 + Math.floor(xp / 10)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
computeDRTotal() { computeDRTotal() {
let armors = this.items.filter(it => it.type == "armor") let armors = this.items.filter(it => it.type == "armor" && it.system.slotlocation == 'armor')
let dr = 0 let dr = 0
for (let armor of armors) { for (let armor of armors) {
dr += armor.system.damagereduction dr += armor.system.damagereduction
@ -562,7 +740,7 @@ export class WarheroActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
computeParryBonusTotal() { computeParryBonusTotal() {
let shields = this.items.filter(it => it.type == "shield") let shields = this.items.filter(it => it.type == "shield" && it.system.slotlocation == 'shield')
let parry = 0 let parry = 0
for (let shield of shields) { for (let shield of shields) {
parry += shield.system.parrybonus parry += shield.system.parrybonus
@ -574,14 +752,24 @@ export class WarheroActor extends Actor {
this.system.secondary.nblanguage.value = Math.floor(this.system.statistics.min.value / 2) this.system.secondary.nblanguage.value = Math.floor(this.system.statistics.min.value / 2)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
spentMana( mana) { spentMana(spentValue) {
if ( Number(mana) > this.system.attributes.mana.value) { let mana = duplicate(this.system.attributes.mana)
if (Number(spentValue) > mana.value) {
ui.notifications.warn("Not enough Mana points !") ui.notifications.warn("Not enough Mana points !")
return false return false
} }
this.update({'system.attributes.mana.value': this.system.attributes.mana.value-mana}) mana.value -= Number(spentValue)
this.update({ 'system.attributes.mana': mana })
return true return true
} }
/* -------------------------------------------- */
incrementUse(rollData) {
let stat = duplicate(this.system[rollData.mode][rollData.statKey])
stat.nbuse++
this.update({ [`system.${rollData.mode}.${rollData.statKey}`]: stat })
}
/* -------------------------------------------- */ /* -------------------------------------------- */
getCommonRollData() { getCommonRollData() {
let rollData = WarheroUtility.getBasicRollData() let rollData = WarheroUtility.getBasicRollData()
@ -599,8 +787,16 @@ export class WarheroActor extends Actor {
let stat = duplicate(this.system[rollType][rollKey]) let stat = duplicate(this.system[rollType][rollKey])
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.mode = rollType rollData.mode = rollType
rollData.statKey = rollKey
rollData.stat = stat rollData.stat = stat
if ( rollKey == "parrybonustotal") { if (stat && stat.stat) {
rollData.statBonus = duplicate(this.system.statistics[stat.stat])
}
if (stat.hasuse && stat.nbuse >= stat.maxuse) {
ui.notifications.warn(game.i18n.localize("WH.notif.toomanyuses"))
return
}
if (rollKey == "parrybonustotal") {
WarheroUtility.rollParry(rollData) WarheroUtility.rollParry(rollData)
return return
} }
@ -622,12 +818,12 @@ export class WarheroActor extends Actor {
weapon = duplicate(weapon) weapon = duplicate(weapon)
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.mode = "weapon" rollData.mode = "weapon"
if (weapon.system.weapontype ==="shooting" || weapon.system.weapontype ==="throwing") { if (weapon.system.weapontype === "shooting" || weapon.system.weapontype === "throwing") {
rollData.stat = duplicate(this.system.attributes.txcr) rollData.stat = duplicate(this.system.attributes.txcr)
} else { } else {
rollData.stat = duplicate(this.system.attributes.txcm) rollData.stat = duplicate(this.system.attributes.txcm)
} }
rollData.usemWeaponMalus = rollData.usemWeaponMalus = false
rollData.mWeaponMalus = this.system.secondary.malusmultiweapon.value rollData.mWeaponMalus = this.system.secondary.malusmultiweapon.value
rollData.weapon = weapon rollData.weapon = weapon
rollData.img = weapon.img rollData.img = weapon.img
@ -635,7 +831,7 @@ export class WarheroActor extends Actor {
} }
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
rollDamage(weaponId) { rollDamage(weaponId, is2hands = false) {
let weapon = this.items.get(weaponId) let weapon = this.items.get(weaponId)
if (weapon) { if (weapon) {
weapon = duplicate(weapon) weapon = duplicate(weapon)
@ -643,6 +839,7 @@ export class WarheroActor extends Actor {
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.mode = "damage" rollData.mode = "damage"
rollData.weapon = weapon rollData.weapon = weapon
rollData.is2hands = is2hands
rollData.img = weapon.img rollData.img = weapon.img
this.startRoll(rollData) this.startRoll(rollData)
} }
@ -655,6 +852,7 @@ export class WarheroActor extends Actor {
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.mode = "power" rollData.mode = "power"
rollData.power = power rollData.power = power
rollData.powerLevel = Number(power.system.level)
rollData.img = power.img rollData.img = power.img
rollData.hasBM = false rollData.hasBM = false
this.startRoll(rollData) this.startRoll(rollData)

View File

@ -9,7 +9,7 @@ export class WarheroCombat extends Combat {
for (let cId = 0; cId < ids.length; cId++) { for (let cId = 0; cId < ids.length; cId++) {
const c = this.combatants.get(ids[cId]); const c = this.combatants.get(ids[cId]);
let id = c._id || c.id; let id = c._id || c.id;
let initBonus = c.actor ? c.actor.getInitiativeScore( this.id, id ) : -1; let initBonus = c.actor ? await c.actor.getInitiativeScore( this.id, id ) : -1;
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initBonus } ]); await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initBonus } ]);
} }

View File

@ -4,8 +4,10 @@ export const WARHERO_CONFIG = {
short: {damage: "1d6", label: "WH.conf.short"}, short: {damage: "1d6", label: "WH.conf.short"},
long: {damage: "1d8", label: "WH.conf.long"}, long: {damage: "1d8", label: "WH.conf.long"},
twohanded: {damage: "3d6", label: "WH.conf.twohanded"}, twohanded: {damage: "3d6", label: "WH.conf.twohanded"},
polearm: {damage: "1d6", label: "WH.conf.polearm"},
shooting: {damage: "2d6", label: "WH.conf.shooting"}, shooting: {damage: "2d6", label: "WH.conf.shooting"},
throwing: {damage: "1d8", label: "WH.conf.throwing"}, throwing: {damage: "1d8", label: "WH.conf.throwing"},
special: {damage: "1d6", label: "WH.conf.special"},
}, },
armorTypes : { armorTypes : {
@ -20,6 +22,10 @@ export const WARHERO_CONFIG = {
tower: {parry: "5", label: "WH.conf.towershield"}, tower: {parry: "5", label: "WH.conf.towershield"},
}, },
partySlotNames : {
storage: {nbslots: 2000, itemtype:"equipment", label: "WH.conf.partystorage"}
},
slotNames : { slotNames : {
head: {nbslots: 1, itemtype:"armor", label: "WH.conf.head"}, head: {nbslots: 1, itemtype:"armor", label: "WH.conf.head"},
cloak: {nbslots: 1, itemtype:"equipment", label: "WH.conf.cloak"}, cloak: {nbslots: 1, itemtype:"equipment", label: "WH.conf.cloak"},
@ -29,20 +35,77 @@ export const WARHERO_CONFIG = {
ring: {nbslots: 10, itemtype:"equipment",label: "WH.conf.ring"}, ring: {nbslots: 10, itemtype:"equipment",label: "WH.conf.ring"},
dress: {nbslots: 1, itemtype:"equipment",label: "WH.conf.dress"}, dress: {nbslots: 1, itemtype:"equipment",label: "WH.conf.dress"},
boots: {nbslots: 1, itemtype:"equipment",label: "WH.conf.boots"}, boots: {nbslots: 1, itemtype:"equipment",label: "WH.conf.boots"},
belt: {nbslots: 6, itemtype:"equipment",label: "WH.conf.belt"},
quiver: {nbslots: 20, itemtype:"equipment",label: "WH.conf.quiver"},
armor: {nbslots: 1, itemtype:"armor",label: "WH.conf.armor"}, armor: {nbslots: 1, itemtype:"armor",label: "WH.conf.armor"},
shield: {nbslots: 1, itemtype:"shield",label: "WH.conf.shield"}, shield: {nbslots: 1, itemtype:"shield",label: "WH.conf.shield"},
backpack: {nbslots: 12, itemtype:"equipment",label: "WH.conf.backpack"}, belt: {nbslots: 6, itemtype:"equipment", container: true, available: true, parent: undefined, label: "WH.conf.belt"},
beltpouch1: {nbslots: 4, itemtype:"equipment",label: "WH.conf.beltpouch1"}, quiver: {nbslots: 20, itemtype:"equipment",container: true, available: true, parent: undefined, label: "WH.conf.quiver"},
beltpouch2: {nbslots: 4, itemtype:"equipment", label: "WH.conf.beltpouch2"}, backpack: {nbslots: 12, itemtype:"equipment",container: true, available: true, parent: undefined, label: "WH.conf.backpack"},
beltpouch3: {nbslots: 4, itemtype:"equipment", label: "WH.conf.beltpouch3"}, beltpouch1: {nbslots: 4, itemtype:"equipment",container: true, available: true, parent: undefined, label: "WH.conf.beltpouch1"},
beltpouch2: {nbslots: 4, itemtype:"equipment", container: true, available: true, parent: undefined, label: "WH.conf.beltpouch2"},
beltpouch3: {nbslots: 4, itemtype:"equipment", container: true, available: true, parent: undefined, label: "WH.conf.beltpouch3"},
scrollcase: {nbslots: 17, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.scrollcase"},
wandcase: {nbslots: 10, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.wandcase"},
potioncase: {nbslots: 8, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.potioncase"},
bagholding: {nbslots: 30, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.bagholding"},
quiverholding: {nbslots: 9999, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.quiverholding"},
backpackholding: {nbslots: 90, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.backpackholding"},
smallchest: {nbslots: 6, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.smallchest"},
mediumchest: {nbslots: 12, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.mediumchest"},
largechest: {nbslots: 24, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.largechest"},
hugechest: {nbslots: 24, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.hugechest"},
}, },
progressionList: { progressionList: {
"high": "High (+6HP/Lvl)", "high": "High (+6HP/Lvl)",
"medium": "Medium (+4HP/Lvl)", "medium": "Medium (+4HP/Lvl)",
"low": "Low (+2 HP/Lvl)" "low": "Low (+2 HP/Lvl)"
},
poisonApplication: {
touch: "WH.ui.Touch",
ingestion: "WH.ui.Ingestion",
weapon: "WH.ui.Weapon"
},
saveType: {
halfdmg: "WH.ui.halfdamage",
ignore: "WH.ui.ignoreeffect"
},
conditionType : {
generic: "WH.ui.generic",
bless: "WH.ui.bless",
spell: "WH.ui.spell",
disease: "WH.ui.disease",
poison: "WH.ui.poison",
curse: "WH.u,i.curse"
},
conditionDuration: {
permanent: "WH.ui.permanent",
temporary: "WH.ui.temporary"
},
conditionSpecialDuration : {
infinite: "WH.ui.infinite",
withineor: "WH.uiwithineor",
beginr: "WH.ui.beginr",
nextr: "WH.ui.nextr",
nextcombat: "WH.ui.nextcombat",
untilendcombat: "WH.ui.untilendcombat",
beginturn: "WH.ui.beginturn",
endturn: "WH.ui.endturn"
},
magicCharge: {
notapplicable: "WH.ui.notapplicable",
chargedaily: "WH.ui.chargedaily",
chargelimited: "WH.ui.chargelimited",
},
identifiedState: {
unknown: "WH.conf.unknown",
yes:"WH.conf.yes",
no:"WH.conf.no",
notapplicable:"WH.conf.notapplicable"
} }
} }

View File

@ -69,12 +69,6 @@ export class WarheroItemSheet extends ItemSheet {
owner: this.document.isOwner, owner: this.document.isOwner,
isGM: game.user.isGM isGM: game.user.isGM
} }
if ( this.object.type == "power") {
formData.level1 = await TextEditor.enrichHTML(this.object.system.level1, {async: true})
formData.level2 = await TextEditor.enrichHTML(this.object.system.level2, {async: true})
formData.level3 = await TextEditor.enrichHTML(this.object.system.level3, {async: true})
formData.level4 = await TextEditor.enrichHTML(this.object.system.level4, {async: true})
}
this.options.editable = !(this.object.origin == "embeddedItem"); this.options.editable = !(this.object.origin == "embeddedItem");
console.log("ITEM DATA", formData, this); console.log("ITEM DATA", formData, this);
return formData; return formData;
@ -130,11 +124,6 @@ export class WarheroItemSheet extends ItemSheet {
const item = this.object.options.actor.getOwnedItem(li.data("item-id")); const item = this.object.options.actor.getOwnedItem(li.data("item-id"));
item.sheet.render(true); item.sheet.render(true);
}); });
html.find('.delete-spec').click(ev => {
this.object.update({ "data.specialisation": [{ name: 'None' }] });
});
html.find('.delete-subitem').click(ev => { html.find('.delete-subitem').click(ev => {
this.deleteSubitem(ev); this.deleteSubitem(ev);
}); });
@ -145,15 +134,6 @@ export class WarheroItemSheet extends ItemSheet {
let itemId = li.data("item-id"); let itemId = li.data("item-id");
let itemType = li.data("item-type"); let itemType = li.data("item-type");
}); });
html.find('.view-subitem').click(ev => {
this.viewSubitem(ev);
});
html.find('.view-spec').click(ev => {
this.manageSpec();
});
} }

View File

@ -11,6 +11,7 @@ export const defaultItemImg = {
money: "systems/fvtt-warhero/images/icons/two-coins.svg", money: "systems/fvtt-warhero/images/icons/two-coins.svg",
power: "systems/fvtt-warhero/images/icons/magia.webp", power: "systems/fvtt-warhero/images/icons/magia.webp",
condition: "systems/fvtt-warhero/images/icons/stordenti.webp", condition: "systems/fvtt-warhero/images/icons/stordenti.webp",
language: "systems/fvtt-warhero/images/icons/linguaggi.webp"
} }
/** /**

View File

@ -11,7 +11,9 @@
import { WarheroActor } from "./warhero-actor.js"; import { WarheroActor } from "./warhero-actor.js";
import { WarheroItemSheet } from "./warhero-item-sheet.js"; import { WarheroItemSheet } from "./warhero-item-sheet.js";
import { WarheroActorSheet } from "./warhero-actor-sheet.js"; import { WarheroActorSheet } from "./warhero-actor-sheet.js";
import { WarheroPartySheet } from "./warhero-party-sheet.js";
import { WarheroNPCSheet } from "./warhero-npc-sheet.js"; import { WarheroNPCSheet } from "./warhero-npc-sheet.js";
import { WarheroMonsterSheet } from "./warhero-monster-sheet.js";
import { WarheroUtility } from "./warhero-utility.js"; import { WarheroUtility } from "./warhero-utility.js";
import { WarheroCombat } from "./warhero-combat.js"; import { WarheroCombat } from "./warhero-combat.js";
import { WarheroItem } from "./warhero-item.js"; import { WarheroItem } from "./warhero-item.js";
@ -55,30 +57,21 @@ Hooks.once("init", async function () {
CONFIG.Combat.documentClass = WarheroCombat CONFIG.Combat.documentClass = WarheroCombat
CONFIG.Actor.documentClass = WarheroActor CONFIG.Actor.documentClass = WarheroActor
CONFIG.Item.documentClass = WarheroItem CONFIG.Item.documentClass = WarheroItem
//CONFIG.Token.objectClass = WarheroToken
/* -------------------------------------------- */ /* -------------------------------------------- */
// Register sheet application classes // Register sheet application classes
Actors.unregisterSheet("core", ActorSheet); Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("fvtt-crucible", WarheroActorSheet, { types: ["character"], makeDefault: true }); Actors.registerSheet("fvtt-warhero", WarheroActorSheet, { types: ["character"], makeDefault: true });
Actors.registerSheet("fvtt-crucible", WarheroNPCSheet, { types: ["npc"], makeDefault: false }); Actors.registerSheet("fvtt-warhero", WarheroNPCSheet, { types: ["npc"], makeDefault: false });
Actors.registerSheet("fvtt-warhero", WarheroMonsterSheet, { types: ["monster"], makeDefault: false });
Actors.registerSheet("fvtt-warhero", WarheroPartySheet, { types: ["party"], makeDefault: false });
Items.unregisterSheet("core", ItemSheet); Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("fvtt-crucible", WarheroItemSheet, { makeDefault: true }); Items.registerSheet("fvtt-warhero", WarheroItemSheet, { makeDefault: true });
WarheroUtility.init() WarheroUtility.init()
}); });
/* -------------------------------------------- */
function welcomeMessage() {
ChatMessage.create({
user: game.user.id,
whisper: [game.user.id],
content: `<div id="welcome-message-crucible"><span class="rdd-roll-part">
<strong>Welcome to the Warhero RPG.</strong>
` });
}
/* -------------------------------------------- */ /* -------------------------------------------- */
/* Foundry VTT Initialization */ /* Foundry VTT Initialization */
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -87,29 +80,15 @@ Hooks.once("ready", function () {
// User warning // User warning
if (!game.user.isGM && game.user.character == undefined) { if (!game.user.isGM && game.user.character == undefined) {
ui.notifications.info("Warning ! No character linked to your user !"); ui.notifications.info("Warning ! No character linked to your user !");
/*ChatMessage.create({
content: "<b>WARNING</b> The player " + game.user.name + " is not linked to a character !",
user: game.user._id
});*/
} }
// CSS patch for v9
if (game.version) {
let sidebar = document.getElementById("sidebar");
sidebar.style.width = "min-content";
}
welcomeMessage();
WarheroUtility.ready() WarheroUtility.ready()
WarheroCommands.init()
WarheroHotbar.initDropbar()
}) })
/* -------------------------------------------- */ /* -------------------------------------------- */
/* Foundry VTT Initialization */ /* Foundry VTT Initialization */
/* -------------------------------------------- */ /* -------------------------------------------- */
Hooks.on("chatMessage", (html, content, msg) => { /*Hooks.on("chatMessage", (html, content, msg) => {
if (content[0] == '/') { if (content[0] == '/') {
let regExp = /(\S+)/g; let regExp = /(\S+)/g;
let commands = content.match(regExp); let commands = content.match(regExp);
@ -118,5 +97,5 @@ Hooks.on("chatMessage", (html, content, msg) => {
} }
} }
return true; return true;
}); });*/

View File

@ -0,0 +1,27 @@
/**
* Extend the basic ActorSheet with some very simple modifications
* @extends {ActorSheet}
*/
import { WarheroActorSheet } from "./warhero-actor-sheet.js";
import { WarheroUtility } from "./warhero-utility.js";
/* -------------------------------------------- */
export class WarheroMonsterSheet extends WarheroActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
classes: ["warhero-rpg", "sheet", "actor"],
template: "systems/fvtt-warhero/templates/npc-sheet.html",
width: 640,
height: 720,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
editScore: true
});
}
}

View File

@ -2,18 +2,18 @@
* Extend the basic ActorSheet with some very simple modifications * Extend the basic ActorSheet with some very simple modifications
* @extends {ActorSheet} * @extends {ActorSheet}
*/ */
import { WarheroActorSheet } from "./warhero-actor-sheet.js";
import { WarheroUtility } from "./warhero-utility.js"; import { WarheroUtility } from "./warhero-utility.js";
/* -------------------------------------------- */ /* -------------------------------------------- */
export class WarheroNPCSheet extends ActorSheet { export class WarheroNPCSheet extends WarheroActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return mergeObject(super.defaultOptions, {
classes: ["warhero-rpg", "sheet", "actor"], classes: ["warhero-rpg", "sheet", "actor"],
template: "systems/fvtt-warhero/templates/npc-sheet.html", template: "systems/fvtt-warhero/templates/monster-sheet.html",
width: 640, width: 640,
height: 720, height: 720,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }], tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
@ -22,188 +22,4 @@ export class WarheroNPCSheet extends ActorSheet {
}); });
} }
/* -------------------------------------------- */
async getData() {
const objectData = this.object.system
let actorData = duplicate(objectData)
let formData = {
title: this.title,
id: this.actor.id,
type: this.actor.type,
img: this.actor.img,
name: this.actor.name,
editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked",
data: actorData,
limited: this.object.limited,
skills: this.actor.getSkills( ),
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
spells: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getLore())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
equippedArmor: this.actor.getEquippedArmor(),
equippedShield: this.actor.getEquippedShield(),
feats: duplicate(this.actor.getFeats()),
subActors: duplicate(this.actor.getSubActors()),
race: duplicate(this.actor.getRace()),
moneys: duplicate(this.actor.getMoneys()),
encCapacity: this.actor.getEncumbranceCapacity(),
saveRolls: this.actor.getSaveRoll(),
conditions: this.actor.getConditions(),
containersTree: this.actor.containersTree,
encCurrent: this.actor.encCurrent,
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
isGM: game.user.isGM
}
this.formData = formData;
console.log("PC : ", formData, this.object);
return formData;
}
/* -------------------------------------------- */
/** @override */
activateListeners(html) {
super.activateListeners(html);
// Everything below here is only needed if the sheet is editable
if (!this.options.editable) return;
html.bind("keydown", function(e) { // Ignore Enter in actores sheet
if (e.keyCode === 13) return false;
});
// Update Inventory Item
html.find('.item-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
const item = this.actor.items.get( itemId );
item.sheet.render(true);
});
// Delete Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item")
WarheroUtility.confirmDelete(this, li)
})
html.find('.item-add').click(ev => {
let dataType = $(ev.currentTarget).data("type")
this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true })
})
html.find('.equip-activate').click(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
this.actor.equipActivate( itemId)
});
html.find('.equip-deactivate').click(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
this.actor.equipDeactivate( itemId)
});
html.find('.subactor-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let actorId = li.data("actor-id");
let actor = game.actors.get( actorId );
actor.sheet.render(true);
});
html.find('.subactor-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let actorId = li.data("actor-id");
this.actor.delSubActor(actorId);
});
html.find('.quantity-minus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecQuantity( li.data("item-id"), -1 );
} );
html.find('.quantity-plus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecQuantity( li.data("item-id"), +1 );
} );
html.find('.ammo-minus').click(event => {
const li = $(event.currentTarget).parents(".item")
this.actor.incDecAmmo( li.data("item-id"), -1 );
} );
html.find('.ammo-plus').click(event => {
const li = $(event.currentTarget).parents(".item")
this.actor.incDecAmmo( li.data("item-id"), +1 )
} );
html.find('.roll-ability').click((event) => {
const abilityKey = $(event.currentTarget).data("ability-key");
this.actor.rollAbility(abilityKey);
});
html.find('.roll-skill').click((event) => {
const li = $(event.currentTarget).parents(".item")
const skillId = li.data("item-id")
this.actor.rollSkill(skillId)
});
html.find('.roll-weapon').click((event) => {
const li = $(event.currentTarget).parents(".item");
const skillId = li.data("item-id")
this.actor.rollWeapon(skillId)
});
html.find('.roll-armor-die').click((event) => {
this.actor.rollArmorDie()
});
html.find('.roll-shield-die').click((event) => {
this.actor.rollShieldDie()
});
html.find('.roll-target-die').click((event) => {
this.actor.rollDefenseRanged()
});
html.find('.roll-save').click((event) => {
const saveKey = $(event.currentTarget).data("save-key")
this.actor.rollSave(saveKey)
});
html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore;
this.render(true);
});
html.find('.item-link a').click((event) => {
const itemId = $(event.currentTarget).data("item-id");
const item = this.actor.getOwnedItem(itemId);
item.sheet.render(true);
});
html.find('.item-equip').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.equipItem( li.data("item-id") );
this.render(true);
});
html.find('.update-field').change(ev => {
const fieldName = $(ev.currentTarget).data("field-name");
let value = Number(ev.currentTarget.value);
this.actor.update( { [`${fieldName}`]: value } );
});
}
/* -------------------------------------------- */
/** @override */
setPosition(options = {}) {
const position = super.setPosition(options);
const sheetBody = this.element.find(".sheet-body");
const bodyHeight = position.height - 192;
sheetBody.css("height", bodyHeight);
return position;
}
/* -------------------------------------------- */
/** @override */
_updateObject(event, formData) {
// Update the Actor
return this.object.update(formData);
}
} }

View File

@ -0,0 +1,57 @@
/**
* Extend the basic ActorSheet with some very simple modifications
* @extends {ActorSheet}
*/
import { WarheroActorSheet } from "./warhero-actor-sheet.js";
import { WarheroUtility } from "./warhero-utility.js";
/* -------------------------------------------- */
export class WarheroPartySheet extends WarheroActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
classes: ["warhero-rpg", "sheet", "actor"],
template: "systems/fvtt-warhero/templates/party-sheet.html",
width: 640,
height: 720,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
editScore: true
});
}
/* -------------------------------------------- */
async getData() {
const objectData = duplicate(this.object.system)
let formData = {
title: this.title,
id: this.actor.id,
type: this.actor.type,
img: this.actor.img,
name: this.actor.name,
editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked",
system: objectData,
limited: this.object.limited,
totalMoney: this.actor.computeTotalMoney(),
equipments: duplicate(this.actor.getEquipmentsOnly()),
//moneys: duplicate(this.actor.getMoneys()),
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, {async: true}),
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
isGM: game.user.isGM
}
formData.partySlots = this.actor.buildPartySlots()
this.formData = formData
console.log("PARTY : ", formData, this.object);
return formData;
}
}

View File

@ -20,6 +20,15 @@ export class WarheroUtility {
WarheroCommands.init(); WarheroCommands.init();
Handlebars.registerHelper('concat', function () {
var outStr = '';
for (var arg in arguments) {
if (typeof arguments[arg] != 'object') {
outStr += arguments[arg];
}
}
return outStr;
});
Handlebars.registerHelper('count', function (list) { Handlebars.registerHelper('count', function (list) {
return list.length; return list.length;
}) })
@ -216,14 +225,13 @@ export class WarheroUtility {
const templatePaths = [ const templatePaths = [
'systems/fvtt-warhero/templates/editor-notes-gm.html', 'systems/fvtt-warhero/templates/editor-notes-gm.html',
'systems/fvtt-warhero/templates/partial-roll-select.html',
'systems/fvtt-warhero/templates/partial-actor-stat-block.html', 'systems/fvtt-warhero/templates/partial-actor-stat-block.html',
'systems/fvtt-warhero/templates/partial-actor-status.html', 'systems/fvtt-warhero/templates/partial-actor-status.html',
'systems/fvtt-warhero/templates/partial-options-abilities.html',
'systems/fvtt-warhero/templates/partial-item-nav.html', 'systems/fvtt-warhero/templates/partial-item-nav.html',
'systems/fvtt-warhero/templates/partial-item-description.html', 'systems/fvtt-warhero/templates/partial-item-description.html',
'systems/fvtt-warhero/templates/partial-item-common-equipment.html', 'systems/fvtt-warhero/templates/partial-item-common-equipment.html',
'systems/fvtt-warhero/templates/partial-actor-equipment.html', 'systems/fvtt-warhero/templates/partial-actor-equipment.html',
'systems/fvtt-warhero/templates/partial-container.html',
] ]
return loadTemplates(templatePaths); return loadTemplates(templatePaths);
} }
@ -519,12 +527,18 @@ export class WarheroUtility {
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
} }
rollData.roll = myRoll rollData.roll = myRoll
rollData.diceFormula = diceFormula
rollData.diceResult = myRoll.terms[0].results[0].result
rollData.isSuccess = false rollData.isSuccess = false
if (myRoll.total >= 12 || myRoll.terms[0].results[0].result == 12) { if (myRoll.total >= 12 || rollData.diceResult == 12) {
rollData.isSuccess = true rollData.isSuccess = true
if (rollData.diceResult == 12) {
rollData.isCriticalSuccess = true
} }
if (myRoll.terms[0].results[0].result == 1) { }
if (rollData.diceResult == 1) {
rollData.isSuccess = false rollData.isSuccess = false
rollData.isCriticalFailure = true
} }
let msg = await this.createChatWithRollMode(rollData.alias, { let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-parry-result.html`, rollData) content: await renderTemplate(`systems/fvtt-warhero/templates/chat-parry-result.html`, rollData)
@ -538,10 +552,10 @@ export class WarheroUtility {
let actor = game.actors.get(rollData.actorId) let actor = game.actors.get(rollData.actorId)
if ( rollData.mode == "power") { if (rollData.mode == "power") {
let manaCost = Array.from(rollData.powerLevel)[0] let manaCost = rollData.powerLevel
if( actor.spentMana(manaCost)) { if (actor.spentMana(manaCost)) {
let powerKey = "level"+rollData.powerLevel let powerKey = "level" + rollData.powerLevel
rollData.powerText = rollData.power.system[powerKey] rollData.powerText = rollData.power.system[powerKey]
let msg = await this.createChatWithRollMode(rollData.alias, { let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData) content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData)
@ -550,10 +564,18 @@ export class WarheroUtility {
} }
return return
} }
if ( rollData.mode == "damage") { if (rollData.mode == "damage") {
let myRoll = new Roll(rollData.weapon.damageFormula + "+" + rollData.bonusMalus).roll({ async: false }) let formula
if (rollData.weapon.system.weapontype == "special") {
formula = rollData.weapon.system.damageformula
} else {
formula = (rollData.is2hands) ? rollData.weapon.damageFormula2Hands : rollData.weapon.damageFormula
}
let myRoll = new Roll(formula + "+" + rollData.bonusMalus, actor.system).roll({ async: false })
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = myRoll rollData.roll = myRoll
rollData.diceFormula = myRoll.formula
rollData.diceResult = myRoll.terms[0].results[0].result
let msg = await this.createChatWithRollMode(rollData.alias, { let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData) content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData)
@ -562,25 +584,44 @@ export class WarheroUtility {
return return
} }
let diceFormula
if (rollData.weapon && rollData.weapon.system.weapontype == "special") {
diceFormula = rollData.weapon.system.rollformula
} else {
// ability/save/size => 0 // ability/save/size => 0
let diceFormula = "1d20" diceFormula = "1d20"
if ( rollData.stat) { if (rollData.stat) {
diceFormula += "+" + rollData.stat.value diceFormula += "+" + rollData.stat.value
} }
if ( rollData.usemWeaponMalus) { if (rollData.statBonus) {
diceFormula += "+" + rollData.statBonus.value
}
}
if (rollData.usemWeaponMalus) {
diceFormula += "+" + rollData.mWeaponMalus diceFormula += "+" + rollData.mWeaponMalus
} }
diceFormula += "+" + rollData.bonusMalus diceFormula += "+" + rollData.bonusMalus
rollData.diceFormula = diceFormula
// Performs roll // Performs roll
console.log("Roll formula", diceFormula) console.log("Roll formula", diceFormula)
let myRoll = rollData.roll let myRoll = rollData.roll
if (!myRoll) { // New rolls only of no rerolls if (!myRoll) { // New rolls only of no rerolls
myRoll = new Roll(diceFormula).roll({ async: false }) myRoll = new Roll(diceFormula, actor.system).roll({ async: false })
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
} }
rollData.roll = myRoll rollData.roll = myRoll
rollData.diceFormula = diceFormula
rollData.diceResult = myRoll.terms[0].results[0].result
if (rollData.diceResult == 20) {
rollData.isCriticalSuccess = true
}
if (rollData.diceResult == 1) {
rollData.isCriticalFailure = true
}
if ( rollData.stat.hasuse ) {
actor.incrementUse(rollData)
}
let msg = await this.createChatWithRollMode(rollData.alias, { let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData) content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData)
@ -604,7 +645,19 @@ export class WarheroUtility {
return 0; return 0;
}) })
} }
static sortArrayObjectsByNameAndLevel(myArray) {
myArray.sort((a, b) => {
let fa = a.system.level + a.name.toLowerCase();
let fb = b.system.level + b.name.toLowerCase();
if (fa < fb) {
return -1;
}
if (fa > fb) {
return 1;
}
return 0;
})
}
/* -------------------------------------------- */ /* -------------------------------------------- */
static getUsers(filter) { static getUsers(filter) {
return game.users.filter(filter).map(user => user.id); return game.users.filter(filter).map(user => user.id);

View File

@ -1 +1,158 @@
{"name":"Ammaliamento","type":"power","img":"systems/fvtt-warhero/images/icons/magia.webp","system":{"level1":"<p>Sleep</p>","level2":"<p>Charme<br>il bersaglio considera l'incantatore un alleato per<br>l'intera giornata CD 15, MEN, negare.</p>","level3":"<p>Comando</p>\n<p>Il bersaglio esegue un ordine impartito alla<br>creatura che non sia un ordine suicida CD 16, MEN. Negare.<br>Una volta eseguito il comando l'effetto svanisce o dopo che<br>sia trascorso 3 giorni</p>","level4_1":"","level4_2":"","description":"","level4":"<p>Confusione<br>Il bersaglio lancia un 1d10 con 6+ pu&ograve;<br>eseguire il suo turno altrimenti lo perde e non pu&ograve; fare<br>nessuna mossa, deve ripetere questo tiro all&rsquo;inizio del suo<br>turno per la durata di 10 turni, CD 18 MEN per negare</p>"},"effects":[],"flags":{"core":{"sourceId":"Item.hfXnpQGBlc7V7NWr"}},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.2","coreVersion":"10.291","createdTime":1674288111691,"modifiedTime":1674288308186,"lastModifiedBy":"HTxW4IKZV3evIunu"},"folder":null,"sort":0,"ownership":{"default":0,"HTxW4IKZV3evIunu":3},"_id":"pgI3q4NkVbcMwhBm"} {"name":"Parlare linguaggi","type":"power","system":{"level":3,"magicschool":"Linguaggi","description":"il bersaglio può parlare una qualsiasi lingua per 5 minuti."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904923,"modifiedTime":1675877939482,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"08BXcOaoGE192zNB","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Muro di fuoco","type":"power","system":{"level":4,"magicschool":"Elementale - Fuoco","description":"si crea un muro di fuoco alto fino a 9 metri e lungo fino a 9 metri, chiunque stia adiacente al muro subisce 1d6 danni da fuoco, chi ci passa attraverso subisce 15d6 danni da fuco CD 18 ist per dimezzare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904839,"modifiedTime":1675877939473,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"0fuQ1vuv4uUfReik","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Solo difesa","type":"power","system":{"level":4,"magicschool":"Protezione","description":"l'incantesimo da la possibilità di usare l'azione di parata fino a due volte per turno, tirando due volte i dadi e prendendo il risultato migliore, fino alla fine dello scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904960,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"0hqW3CDSxT0sb2jc","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Lentezza","type":"power","system":{"level":2,"magicschool":"Tempo","description":"il bersaglio può effettuare una terza mossa nel proprio turno fino alla fine dello scontro, e rimuove eventuali incantesimi di lentezza sul bersaglio"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904973,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"0s6X0VfFHJgKeYBs","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cono di freddo","type":"power","system":{"level":2,"magicschool":"Elementale - Acqua","description":"tutti i bersagli di fronte all'incantatore entro 6 metri subiscono 5d6 danni da freddo. CD 14 , IST, dimezzare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904824,"modifiedTime":1675877939470,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"1HjRX5S3R2TuqnIN","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Teletrasporto","type":"power","system":{"level":3,"magicschool":"Viaggio","description":"permette all'incantatore di andare in un qualsiasi posto di sua conoscenza. l'incantesimo costa un punto mana in più per ogni personaggio che si desidera portare con se. se un personaggio non vuol essere trasportato, CD 12, IST, negare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904988,"modifiedTime":1675877939488,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"1UrtrLZ51eLjsEIx","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Contropotere caotico","type":"power","system":{"level":4,"magicschool":"Indole - Caos","description":"Puoi usare questo potere come se fosse un contropotere e non spendere ulteriore mana, in qualsiasi momento anche nel round dell'avversario. Ottieni bonus pari a +4 al tiro di contropotere, se il contropotere ha successo puoi immediatamente usare un potere scelto in maniera casuale di livello III o inferiore"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904897,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"1ZCVzbwTVtuxwVxC","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Volare","type":"power","system":{"level":2,"magicschool":"Viaggio","description":"permette al bersaglio di volare per un ora alla normale velocità di movimento."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904987,"modifiedTime":1675877939488,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"1on8iKAjWzcbJkBd","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Comprensione dei linguaggi","type":"power","system":{"level":2,"magicschool":"Linguaggi","description":"il bersaglio capisce qualsiasi lingua per 1 ora."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904922,"modifiedTime":1675877939482,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"1x6LaCg71VjIcaHg","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Mani brucianti","type":"power","system":{"level":2,"magicschool":"Elementale - Fuoco","description":"tutti i bersagli difronte all'incantatore entro 6 metri subiscono 5d6 danni da fuoco. CD 14, IST, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904836,"modifiedTime":1675877939472,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"1ychDvTMJrneQrl0","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Dardo incantato","type":"power","system":{"level":1,"magicschool":"Forza","description":"il bersaglio subisce 2d4+4 danni."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904858,"modifiedTime":1675877939476,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"2hAooR3fELiaIv9N","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Gabbia di terra","type":"power","system":{"level":4,"magicschool":"Elementale - Terra","description":"il bersaglio subisce 6d6 danni da acido e deve superare un tiro su ist CD 20 o rimanere paralizzato per 2 round."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904844,"modifiedTime":1675877939473,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"2t6zBr9FOTemb7ef","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cura di massa","type":"power","system":{"level":4,"magicschool":"Guarigione","description":"l'incantatore e tutti gli alleati entro 9 metri vengono curati di 4d10 + 10"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904871,"modifiedTime":1675877939477,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"2xzmVKeu7aXWCTRD","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Sofferenza","type":"power","system":{"level":3,"magicschool":"Indole - Male","description":"infligge 12d6 danni a una creatura buona. CD 16, MEN, dimezzare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904916,"modifiedTime":1675877939481,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"2zZ7J0Rjbak48Ljr","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Di fronte al male","type":"power","system":{"level":2,"magicschool":"Indole - Male","description":"fino alla fine dello scontro un bersaglio di allineamento malvagio che subisce un colpo infligge lo status di affaticato all'avversario che lo ha colpito avversario che lo ha colpito CD 16 su FIS per negare, se il bersaglio è già affaticato diventa esausto, se un bersaglio diventa esausto il potere termina"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904914,"modifiedTime":1675877939481,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"3l8fdh3vXRvjoJr7","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Segno esplosivo","type":"power","system":{"level":3,"magicschool":"Rune","description":"una volta lanciato questo incantesimo, si crea un disegno nel punto scelto. chiunque tocchi il segno, subisce 4d8 danni magici.e' possibile tracciarlo già in contatto con un personaggio, che subisce i danni immediatamente."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904969,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"3mDBK9zIf9R4PbLo","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Identificare","type":"power","system":{"level":3,"magicschool":"Conoscenze","description":"lanciando questo incantesimo su un oggetto se ne capisce il funzionamento e le proprietà magiche ad esso associate."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904810,"modifiedTime":1675877939467,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"4YCGLK5hBA1dymta","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Ristabilire equilibrio","type":"power","system":{"level":4,"magicschool":"Indole - Equilibrio","description":"Selezioni due bersagli e i punti vita attuali e i punti mana attuali diventano uguali alla loro rispettiva somma diviso due per entrambi i bersagli, CD 18 IST negare entrambi i bersagli possono tentare il tiro, il potere fallisce se anche solo uno dei bersagli ci riesce"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904904,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"4uxhEUuNFuDjlnr6","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Evoca zombi","type":"power","system":{"level":2,"magicschool":"Evocazione - Non Morte","description":"schianto 1d6 o danni dell'arma, fis 4, ist 0, men 0."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904849,"modifiedTime":1675877939474,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"5C07VRo8z41Kh70Y","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Resurrezione veloce","type":"power","system":{"level":3,"magicschool":"Negromanzia","description":"il bersaglio torna in vita ma perde permanentemente 1 punto di fis. i pf e pm sono al massimo. non è possibile resuscitare un personaggio con 1 punto fis o meno. e' possibile riportare in vita solo persone morte nella stessa giornata del lancio dell'incantesimo."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904940,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"6Z73jbvTwFqsiKOw","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Individuazione dell'allineamento","type":"power","system":{"level":1,"magicschool":"Divinazione","description":"l'incantatore conosce l'allineamento del bersaglio."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904819,"modifiedTime":1675877939469,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"6olhY5wohzlkW96u","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Scrutare","type":"power","system":{"level":2,"magicschool":"Divinazione","description":"l'incantatore può vedere e sentire tutto quello che si trova entro 10 metri da lui anche dietro a pareti solide per la durata di 1 minuto."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904819,"modifiedTime":1675877939469,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"6vZEQ1wjQsmCXMtR","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Risucchia vita","type":"power","system":{"level":1,"magicschool":"Negromanzia","description":"il bersaglio subisce 2d4 danni e l'incantatore si cura di altrettanti danni."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904938,"modifiedTime":1675877939484,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"7b6lal71wDDJAEd0","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Resistenza al gelo","type":"power","system":{"level":4,"magicschool":"Elementale - Acqua","description":"il bersaglio riduce per il prossimo scontro tutti i danni subiti di tipo gelo di 20"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904826,"modifiedTime":1675877939470,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"7n6sxQKYPaM7pkh4","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Sonno","type":"power","system":{"level":1,"magicschool":"Ammaliamento","description":"la creatura si addormenta e non si sveglia finché non riceve un danno normale o stordente o trascorrono otto ore. CD 13, FIS, negare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904793,"modifiedTime":1675877939466,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"9KljFSjM3pWaoI73","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Visione futura","type":"power","system":{"level":4,"magicschool":"Visione","description":"usare questo incantesimo produce gli stessi effetti dell'abilità visione dell'oracolo"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904995,"modifiedTime":1675877939490,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"9StvYUTQ7V0YhtOf","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Precognizione","type":"power","system":{"level":4,"magicschool":"Divinazione","description":"l'incantatore e gli alleati entro 9 metri ottengono un bonus di +10 all'iniziativa e un +1 a dif per il prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904822,"modifiedTime":1675877939470,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"9UH6CVtklssk2AVo","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Legge suprema","type":"power","system":{"level":4,"magicschool":"Indole - Legge","description":"Fino alla fine dello scontro un bersaglio di allineamento legale che subisce un colpo può decidere di disarmare il proprio avversario che lo ha colpito CD 16 su FIS per negare oppure di farlo sdraiare per terra CD 16 su MEN per negare oppure di infliggergli 5d6 danni CD 16 su IST per negare, dopo di che questo effetto rimane attivo altri 3 round prima di terminare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904910,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"AM3ATrHNkOsc9dXk","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Marchio del mago","type":"power","system":{"level":4,"magicschool":"Rune","description":"puoi incidere su te stesso o su un alleato una runa contenente un qualsiasi altro incantesimo di 3 livello o inferiore che conosci, il bersaglio può usare quell'incantesimo entro la fine della giornata"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904971,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"APjlRqats9YPRcli","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Confusione","type":"power","system":{"level":4,"magicschool":"Ammaliamento","description":"il bersaglio ha il 50% di possibilità di eseguire il suo turno, per la durata di 10 turni, CD 18 men per negare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904805,"modifiedTime":1675877939466,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"Bo6yukhbjHibVLOR","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Patto","type":"power","system":{"level":3,"magicschool":"Costrizione","description":"Devi scegliere se negare le mosse di potere o quelle di attacco, il bersaglio non sarà in grado di usare tale mossa scelta per i prossimi 1d4 Round, CD 16 MEN Nega"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904815,"modifiedTime":1675877939469,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"BzDXrpTEM55aFIqg","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Raggio rovente","type":"power","system":{"level":1,"magicschool":"Elementale - Fuoco","description":"l'incantatore deve effettuare un tiro per colpire a distanza entro 20 metri per infliggere 4d4 danni da fuoco al bersaglio."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904835,"modifiedTime":1675877939472,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"CLp5TRPccBPANHUe","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Telepatia","type":"power","system":{"level":4,"magicschool":"Divinazione","description":"è possibile stabilire la connessione mentale con un tuo alleato per l'intera giornata e riuscire a comunicare con lui telepaticamente indipendentemente a dove vi trovate, per ogni punto mana aggiuntivo spesa si può comunicare fra più persone"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904821,"modifiedTime":1675877939469,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"CQ8MWucM1IWeDNQq","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Evoca mummia","type":"power","system":{"level":4,"magicschool":"Evocazione - Non Morte","description":"2x schianto 5d6 fis 7 ist 4 men 2, percezione cieca, aura 2d6"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904851,"modifiedTime":1675877939474,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"CjIg6780ZHG14ffq","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Mappa del tesoro","type":"power","system":{"level":4,"magicschool":"Illusione","description":"questo incantesimo si deve lanciare su una pergamena e bagnare tale pergamena con una goccia di sangue di un bersaglio , l'incantesimo disegnerà una mappa con indicato gli averi del proprietario del sangue usato"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904887,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"CkDS9usOUkTMPGo7","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Risucchio","type":"power","system":{"level":1,"magicschool":"Morte","description":"l'incantatore deve effettuare un tiro per colpire a distanza entro 20 metri e se ha successo , il bersaglio perde 1 punto di fis, fino ad un minimo di 1, per 24 ore."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904932,"modifiedTime":1675877939483,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"CpkqRsUQEjUBAgms","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Maglio oscuro","type":"power","system":{"level":1,"magicschool":"Oscurità","description":"con un tiro per colpire a distanza vengono inflitti 5d4+5 danni."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904944,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"DH9Fxd3yM8mEpOBi","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Castigo","type":"power","system":{"level":3,"magicschool":"Indole - Bene","description":"infligge 12d6 danni a una creatura malvagia. CD 16, MEN, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904891,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"DNkcEyBQYp78RUeK","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Segno negatorio","type":"power","system":{"level":1,"magicschool":"Rune","description":"permette di celare il proprio allineamento negando anche eventuali incantesimi che lo rivelino, per la durata dell'intera giornata."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904967,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"DsPn3lqhpGAU77kL","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Sfocatura","type":"power","system":{"level":3,"magicschool":"Illusione","description":"il bersaglio ottiene una probabilità del 50% di essere mancato, per tutto il combattimento."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904884,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"EG2xA3TWqTHG8e28","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Viticci","type":"power","system":{"level":1,"magicschool":"Vegetale","description":"il bersaglio rimane bloccato sul posto per 3 round ma può comunque attaccare. CD 14, IST, negare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904981,"modifiedTime":1675877939487,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ENRZyKNPGk9KfCzq","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Punire il caos","type":"power","system":{"level":1,"magicschool":"Indole - Legge","description":"Se il bersaglio è di allineamento caotico subisce 4d6 danni CD 14, MEN, dimezzare. Altrimenti il bersaglio riduce i danni subiti da creature caotiche di 5 punti per il prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904906,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"FAUFfMhdebRdKBnR","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Punire il male","type":"power","system":{"level":1,"magicschool":"Indole - Bene","description":"Se il bersaglio è di allineamento malvagio subisce 4d6 danni CD 14, MEN, dimezzare. Altrimenti il bersaglio riduce i danni subiti da creature malvagie di 5 punti per il prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904888,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"FD2jB2MQjwqX26F4","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Raggio di gelo","type":"power","system":{"level":1,"magicschool":"Elementale - Acqua","description":"l'incantatore deve effettuare un tiro per colpire a distanza entro 20 metri per infliggere 4d4 danni da freddo al bersaglio."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904823,"modifiedTime":1675877939470,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"Faq8SbGNkVrQ5pvp","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Alterazione","type":"power","system":{"level":1,"magicschool":"Trasmutazione","description":"può cambiare la razza di un personaggio in una, sempre umanoide. questo non ne modifica le statistiche, per 1 ora."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904976,"modifiedTime":1675877939487,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"FkJ49VbCvSL2ca6c","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Individuazione del magico","type":"power","system":{"level":1,"magicschool":"Conoscenze","description":"l'incantatore riesce a percepire in quell'istante se vi è intorno a lui nel raggio di 10 metri presenza di aure magiche. Capisce se vi sono effetti di incantesimi attivi o oggetti con proprietà magiche"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904807,"modifiedTime":1675877939467,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"FxvVobEr8NoXAW1R","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Messaggio","type":"power","system":{"level":4,"magicschool":"Tempo","description":"e' possibile mandare una lettera magica a un qualsiasi alleato che si conosce il quale può rispondere a sua volta, indipendentemente da dove si trovi"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904975,"modifiedTime":1675877939487,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"G1D0R27jxq7qkZ69","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Scudo magico","type":"power","system":{"level":1,"magicschool":"Protezione","description":"il bersaglio ottiene un bonus di 2 punti a difesa per il prossimo scontro."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904952,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"GEUOxFWgjZ72MadL","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Colosso","type":"power","system":{"level":4,"magicschool":"Trasmutazione","description":"Il bersaglio per i successivi 5 round perde tutte le abilità di classe, guadagna la competenza nelle armi a due mani, il suo punteggio di FIS diventa 20 e IST 10, il suo valore di difesa diventa 8, indipendentemente dall'istinto, CD 18 FIS per negare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904979,"modifiedTime":1675877939487,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"GHfTTQwR6rtkRcJO","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Incatenare l' anima","type":"power","system":{"level":4,"magicschool":"Negromanzia","description":"impedisce qualsiasi incantesimo di negromanzia o guarigione su un bersaglio morto"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904943,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"GtDC6tnsJwJ8ddL1","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Potere caotico","type":"power","system":{"level":2,"magicschool":"Indole - Caos","description":"Il bersaglio di allineamento caotico, può lanciare immediatamente un suo potere di livello III scelto in maniera casuale"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904896,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"GuFclf6ZPIaESPS0","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Obbligo di parola","type":"power","system":{"level":4,"magicschool":"Linguaggi","description":"il bersaglio perde tutti i linguaggi tranne il comune e acquista il comune se non lo aveva per un ora, CD 18 men per negare, per i successivi 5 turni il bersaglio non è in grado di lanciare incantesimi con componenti verbali"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904924,"modifiedTime":1675877939482,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"HC832SufJP78O0kC","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Esplosione solare","type":"power","system":{"level":4,"magicschool":"Luce","description":"tutte le creature in unarea di raggio 6 metri subiscono 6d6 danni, poi CD 18, IST o rimanere accecato per 3 round."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904929,"modifiedTime":1675877939483,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"HU6CGjn215elzxZy","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Punire il bene","type":"power","system":{"level":1,"magicschool":"Indole - Male","description":"Se il bersaglio è di allineamento buono subisce 4d6 danni CD 14, MEN, dimezzare. Altrimenti il bersaglio riduce i danni subiti da creature buone di 5 punti per il prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904913,"modifiedTime":1675877939481,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"I0s3vfXtaej6XOsT","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Fulmine","type":"power","system":{"level":2,"magicschool":"Elementale - Aria","description":"tutti i bersagli difronte all'incantatore entro 6 metri subiscono 5d6 danni da scossa. CD 14, IST, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904830,"modifiedTime":1675877939471,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"InXfXuABQDHb5zV5","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Resistenza al fuoco","type":"power","system":{"level":4,"magicschool":"Elementale - Fuoco","description":"il bersaglio riduce per il prossimo scontro tutti i danni subiti di tipo fuoco di 20"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904838,"modifiedTime":1675877939473,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"IwckOzpQuieWvcOn","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Spostamento planare","type":"power","system":{"level":4,"magicschool":"Viaggio","description":"ti permette di andare assieme ai tuoi alleati in un punto casuale di un piano del quale possiedi un pezzo di ferro lavorato"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904989,"modifiedTime":1675877939488,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"JdEYwDx8fzvPchwS","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Resistenza all' energia","type":"power","system":{"level":4,"magicschool":"Protezione","description":"al momento del lancio di questo incantesimo si deve scegliere fuoco,gelo,acido o scossa e si può ridurre i danni di quel tipo di elemento di 10 ad ogni colpo subito per la prossima ora"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904958,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"K9klyiLkV95kwTIe","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cambio esito","type":"power","system":{"level":1,"magicschool":"Fato","description":"Per il prossimo scontro puoi scegliere di ritirare una volta un qualsiasi dado, si prende il secondo risultato anche se peggiore"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904852,"modifiedTime":1675877939474,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"KAtzfJafxDsLk9BL","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Evoca dinosauro","type":"power","system":{"level":4,"magicschool":"Evocazione - Animale","description":"2x ariglio 2d6,codata 1d8, morso 1d10, fis 7 ist 4 men 2"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904847,"modifiedTime":1675877939474,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"KBxBDMo05wN3L649","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Ingrandire/Ridurre","type":"power","system":{"level":2,"magicschool":"Trasmutazione","description":"può aumentare la taglia del bersaglio alleato fornendogli cosi un bonus di 4 punti ai danni ed una penalità di 2 a difesa o diminuire la taglia fornendogli una penalità di 4 ai danni ed un bonus di 2 alla difesa, per la durata di 1 ora."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904977,"modifiedTime":1675877939487,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"Kba4gKFruhTWdP5U","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Richiamo","type":"power","system":{"level":1,"magicschool":"Costrizione","description":"puoi selezionare un oggetto incustodito o un alleato, fino a fine giornata quando vuoi se il bersaglio è entro 20 metri puoi spostarlo magicamente e farlo apparire adiacente a colui che ha usato questo potere, non è possibile avere più di 3 richiami attivi contemporaneamente"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904813,"modifiedTime":1675877939468,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"KhIIZD2xav1wVqem","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Dito di morte","type":"power","system":{"level":3,"magicschool":"Morte","description":"il bersaglio subisce 100 danni, CD 14 FIS per negare questo effetto e subire 3d6 danni"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904935,"modifiedTime":1675877939484,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"KqvWjxWIifyTKNJy","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Folata di vento","type":"power","system":{"level":4,"magicschool":"Elementale - Aria","description":"i bersagli di fronte all'incantatore subiscono 15d6 danni da scossa, CD 18 IST per dimezzare, e devono riuscire in un tiro salvezza su fis CD 16 o far cadere tutto ciò che impugnano per terra"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904834,"modifiedTime":1675877939472,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"L42LjIoOFanFf2gZ","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Bersaglio","type":"power","system":{"level":4,"magicschool":"Costrizione","description":"Devi selezionare un alleato consenziente e un bersaglio. Il bersaglio scelto potrà effettuare mosse ostili solo su l'alleato scelto fino alla fine dello scontro o fino a quando i Punti ferita dell'alleato scendono a zero. Il Bersaglio può tentare un TS su MEN CD 18 per Negare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904816,"modifiedTime":1675877939469,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"Ls96wsHFWG8F7Emb","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Modificare memoria","type":"power","system":{"level":4,"magicschool":"Ammaliamento","description":"chi usa questo incantesimo può vedere un ricordo di massimo 5 minuti e decidere di cancellare o modificare quel ricordo a piacimento dal bersaglio, CD 18 MEN per negare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904806,"modifiedTime":1675877939467,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"MJQ0ZobtTdCjduDn","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Velocità","type":"power","system":{"level":3,"magicschool":"Tempo","description":"il bersaglio può effettuare una terza mossa nel proprio turno fino alla fine dello scontro, e rimuove eventuali incantesimi di lentezza sul bersaglio"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904974,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"O1yGotIS8YidAFh1","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Luce magica","type":"power","system":{"level":1,"magicschool":"Luce","description":"crea luce intorno al bersaglio per 1 ora."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904926,"modifiedTime":1675877939483,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"O6FhPQp1rV8YaJQA","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Mezzanotte polare","type":"power","system":{"level":4,"magicschool":"Oscurità","description":"funziona come l'incantesimo di secondo livello della sfera di oscurità, oscurità magica, con la differenza che chi si trova all'interno dell'area all'inizio di ogni suo turno subisce 6d6 danni magici, CD 16 fis per dimezzare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904950,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"PzM7UtU8u6h39z5O","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Precisione","type":"power","system":{"level":1,"magicschool":"Guerra","description":"il bersaglio ottiene un bonus di 3 punti al tiro per colpire nel combattimento fino all afine dello scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904872,"modifiedTime":1675877939477,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"QGh1VtNFgRRKVvNK","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Pelle di pietra","type":"power","system":{"level":3,"magicschool":"Protezione","description":"il personaggio ottiene 40 punti ferita extra che permangono fin quando non subisce un numero di danni sufficiente a riportarlo ai suoi punti ferita originali o meno. fino ad allora non può ricevere incantesimi che restituiscano pf."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904956,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"QiWw4fEN7atSXqat","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Fiotto acido","type":"power","system":{"level":1,"magicschool":"Elementale - Terra","description":"l'incantatore deve effettuare un tiro per colpire a distanza entro 20 metri per infliggere 4d4 danni da acido al bersaglio."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904840,"modifiedTime":1675877939473,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"RNz7yZA5Hb3avPEC","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Evoca lupo","type":"power","system":{"level":2,"magicschool":"Evocazione - Animale","description":"morso 2d4, artiglio 1d6, fis 3 ist 4 men 0."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904845,"modifiedTime":1675877939474,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"SmGpYUgJY9PEIWhf","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Terremoto","type":"power","system":{"level":3,"magicschool":"Vegetale","description":"tutti i bersagli di fronte all'incantatore entro 12 metri subiscono 5d8 danni e cadono a terra. CD 18, IST, evitare di cadere per terra."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904983,"modifiedTime":1675877939487,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"Sz183GOBEDrQcGd1","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Punire l'equilibrio","type":"power","system":{"level":1,"magicschool":"Indole - Equilibrio","description":"Se il bersaglio è di allineamento neutrale subisce 4d6 danni CD 14, MEN, dimezzare. Altrimenti il bersaglio riduce i danni subiti da creature neutrali di 5 punti per il prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904900,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"T0eZtZLUZm9K2BzP","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Resurrezione","type":"power","system":{"level":3,"magicschool":"Guarigione","description":"riporta in vita un cadavere di un alleato conosciuto in vita. questa operazione non può essere fatta durante un combattimento. il personaggio torna in vita con i pm che aveva alla morte e 10 pf, il costo di mana dell'incantesimo aumenta di 1 per ogni giorno trascorso dalla morte del bersaglio. Il bersaglio ha un malus di -2 in tutte le statistiche, non rimovibili , fino al giorno successivo"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904867,"modifiedTime":1675877939477,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"Tnbo5qZBLCiZAli4","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Stretta del fato","type":"power","system":{"level":3,"magicschool":"Fato","description":"Per il prossimo scontro puoi aggiungere o togliere 2d4 alla CD di un potere a tua scelta che viene lanciato, prima di sapere lesito del tiro salvezza, dopo di che quest'effetto termina"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904854,"modifiedTime":1675877939475,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"Tq39Gu1z4E3YMllS","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Passo del fato","type":"power","system":{"level":4,"magicschool":"Fato","description":"Per il prossimo scontro puoi fino a un massimo di 3 volte in qualsiasi momento invertire la posizione di due alleati presenti al momento del lancio di questo potere, come meglio preferisci"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904857,"modifiedTime":1675877939475,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"UidgozfLZsoPIBoK","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Fine dei giochi","type":"power","system":{"level":4,"magicschool":"Indole - Male","description":"il bersaglio deve effettuare un tiro su sfidare la morte, come se i suoi punti ferita fossero a 0, in caso di fallimento muore."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904917,"modifiedTime":1675877939481,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"V8KL2tzLEd12xRP8","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Trasformazione","type":"power","system":{"level":3,"magicschool":"Trasmutazione","description":"chi usa l'incantesimo si trasforma in un guerriero e può usare qualsiasi arma o scudo per lo scontro, ma perde la capacita di lanciare incantesimi. guadagna un bonus di 4 punti a fis. può interrompere questo effetto quando vuole, l'effetto termina automaticamente dopo che sia trascorso 1 ora dal lancio dell'incantesimo."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904978,"modifiedTime":1675877939487,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"Wiw3J9c1AGCZGbno","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Muro illusorio","type":"power","system":{"level":4,"magicschool":"Illusione","description":"si crea un muro illusorio dal quale non è possibile vedere o sentire niente, ma si può attraversare a piacimento, non svanisce alla fine del giorno"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904886,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"XO7MkRoN270zyu7q","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Armatura magica","type":"power","system":{"level":2,"magicschool":"Forza","description":"il bersaglio guadagna un bonus di 4 punti a difesa per il prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904859,"modifiedTime":1675877939476,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"YH6sayoSaQeWIwW7","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Ragnatela","type":"power","system":{"level":2,"magicschool":"Costrizione","description":"in un'area di 6 metri qualsiasi mossa di movimento,assaltare o travolgere per poterla fare è necessario superare un tiro salvezza su IST CD 13"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904814,"modifiedTime":1675877939468,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"Z1enNb056VVT8v5C","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Pietrificazione","type":"power","system":{"level":4,"magicschool":"Costrizione","description":"Il bersaglio viene tramutato in una pietra per 5 minuti rendendolo immune a danni ed effetti ma non potendo eseguire nessuna mossa. CD 18 su FIS per Negare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904818,"modifiedTime":1675877939469,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ZTzGLsI7fYvMZK44","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Catastrofe","type":"power","system":{"level":3,"magicschool":"Indole - Caos","description":"infligge 12d6 danni a una creatura legale CD 16, MEN, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904896,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"b2ftOwRXke7sRraG","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Potere della furia","type":"power","system":{"level":4,"magicschool":"Guerra","description":"i danni inflitti dal bersaglio con le armi sono tutti raddoppiati prima di applicare eventuali effetti di critico fino alla fine del prossimo scontro. questa magia non influenza i danni aggiuntivi dovuti da elementi"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904878,"modifiedTime":1675877939478,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"b2nNuZqzQSJv8p1P","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Palla di Fuoco","type":"power","system":{"level":3,"magicschool":"Elementale - Fuoco","description":"tutte le creature in un area di raggio 6 metri subiscono 10d6 danni da fuoco. CD 16,ist, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904837,"modifiedTime":1675877939473,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"bnWyUAi6Su0InjRo","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Tempesta di fulmini","type":"power","system":{"level":3,"magicschool":"Elementale - Aria","description":"tutte le creature in un area di raggio 6 metri subiscono 10d6 danni da scossa. CD 16, IST, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904831,"modifiedTime":1675877939471,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"cOXbmiXeQRJwlhdd","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Evoca Orso","type":"power","system":{"level":3,"magicschool":"Evocazione - Animale","description":"artiglio 2d6, morso 1d10, fis 6 ist 1 men 0"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904846,"modifiedTime":1675877939474,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"dIl9bt79csKa8qSQ","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cerchio contro il caos","type":"power","system":{"level":4,"magicschool":"Indole - Legge","description":"l'incantatore e tutti i suoi alleati entro 9 metri ottengono un bonus di +3 al txc e al danno contro creature caotiche, fino alla fine del prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904911,"modifiedTime":1675877939481,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"dKeIgbWOvb5WyQZ8","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Destino casuale","type":"power","system":{"level":4,"magicschool":"Fato","description":"Quando si lancia questo potere si determinano casualmente tre dei poteri di livello 1,2 o 3 di una sfera casuale e si lanciano contemporaneamente è possibile scegliere bersagli diversi per ogni potere"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904855,"modifiedTime":1675877939475,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"e5sdgdR1TBcKEpoO","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Evoca spettro","type":"power","system":{"level":3,"magicschool":"Evocazione - Non Morte","description":"tocco 1d4 più riduzione di 1 punto di fis per 24 ore (CD 16, FIS, negare), fis 0, ist 5,men 2."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904850,"modifiedTime":1675877939474,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"fJ30QpZ9OAb5JJyB","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Globo di forza","type":"power","system":{"level":3,"magicschool":"Forza","description":"tutte le creature in un area di raggio 6 metri subiscono 8d6 danni da forza. CD 18, IST,negare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904860,"modifiedTime":1675877939476,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"fKEXWz1U2rXN10bh","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Vita Falsa","type":"power","system":{"level":2,"magicschool":"Negromanzia","description":"un bersaglio ottiene, per uno scontro 2d10 + 10 pf extra."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904939,"modifiedTime":1675877939484,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"fYgXo7Pcq4HKOQqK","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Evoca aquila","type":"power","system":{"level":1,"magicschool":"Evocazione - Animale","description":"creatura volante, artiglio o becco 1d4 danni, fis 1, ist 3, men 1."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904845,"modifiedTime":1675877939473,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"fzJGod0FE4WiReR0","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Rampicanti","type":"power","system":{"level":4,"magicschool":"Vegetale","description":"in un raggio di 6 metri si crea dei rampicanti, muoversi allinterno dellarea fa subire 4d6 danni, CD IST 16 Dimezza, se si subisce i danni si deve fare una prova contrapposta con i rampicanti per non essere immobilizzati, per i rampicanti si una il FIS di chi ha lanciato il potere."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904986,"modifiedTime":1675877939488,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"gJGGSLgSqnJ8f7NZ","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Vera invisibilità","type":"power","system":{"level":4,"magicschool":"Oscurità","description":"l'incantatore rimane invisibile per 5 minuti"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904946,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"gVLEpQCmNRI1d9lo","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Bomba al vetriolo","type":"power","system":{"level":2,"magicschool":"Elementale - Terra","description":"tutti i bersagli difronte all'incantatore entro 6 metri subiscono 5d6 danni da acido. CD 14, IST, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904841,"modifiedTime":1675877939473,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"gW2OzkrdGkW38XK6","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cerchio contro la legge","type":"power","system":{"level":4,"magicschool":"Indole - Caos","description":"l'incantatore e tutti i suoi alleati entro 9 metri ottengono un bonus di +3 al txc e al danno contro creature legali, fino alla fine del prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904899,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"guHItAsGkNVxsEyf","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Buona speranza","type":"power","system":{"level":2,"magicschool":"Indole - Bene","description":"Un bersaglio di allineamento buono ottiene un +10 ai tiri di Sfidare la morte,se supera il tiro si cura di 2d10+10, poi l'effetto di questo potere termina."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904890,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"h1wvKCb0vzWc6VLI","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Dissolvi magie","type":"power","system":{"level":2,"magicschool":"Conoscenze","description":"questo incantesimo se lanciato su un bersaglio permette di togliergli un incantesimo attivo ( generalmente si parte sempre dal più forte ). se lanciata su un area permette di togliere l'incantesimo dall'area, in ogni caso per riuscire in questo intento è necessario superare una prova su men con CD in base al livello dell'incantesimo. livello 1 CD 10 livello 2 CD 14 livello 3 CD 16 livello 4 CD 18"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904809,"modifiedTime":1675877939467,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"hsNBWzXXYCTtRxte","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Immolarsi","type":"power","system":{"level":4,"magicschool":"Indole - Bene","description":"Il bersaglio di allineamento buono diventa immune a qualsiasi tipo di danno per 3 round dopo di che fino alla fine dello scontro fallisce automaticamente il prossimo tiro di Sfidare la morte"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904892,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"iHsSDP1pZMS8LwxC","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Ancora dimensionale","type":"power","system":{"level":4,"magicschool":"Forza","description":"in un raggio di 12 metri è impossibile usare qualsiasi tipo spostamento magico e qualsiasi incantesimo delle sfere di evocazione, tempo e viaggio per i successivi 5 minuti"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904861,"modifiedTime":1675877939476,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"iNo5f9tC1uLoUN9L","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Resistenza alla scossa","type":"power","system":{"level":4,"magicschool":"Elementale - Aria","description":"il bersaglio riduce per il prossimo scontro tutti i danni subiti di tipo scossa di 20"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904833,"modifiedTime":1675877939472,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ip5OKhEQxoeb7pNy","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Forza","type":"power","system":{"level":2,"magicschool":"Guerra","description":"il bersaglio ottiene un bonus di 3 punti a fis per la durata fino all afine dello scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904874,"modifiedTime":1675877939477,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ipXemqc1aOOxqoyG","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Nube tossica","type":"power","system":{"level":3,"magicschool":"Elementale - Terra","description":"tutte le creature in un area di raggio 6 metri subiscono 10d6 danni da acido. CD 16, IST,dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904842,"modifiedTime":1675877939473,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ivnemz1L6Q3HTsjA","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Manto celato","type":"power","system":{"level":3,"magicschool":"Oscurità","description":"il personaggio diventa invisibile finchè non effettua azioni ostili, o trascorre 1 ora di tempo con questo incantesimo attivo."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904945,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ivuHaYY53wtFZGkJ","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Levitazione","type":"power","system":{"level":1,"magicschool":"Viaggio","description":"permette di alzarsi dal terreno e andare solo in alto o in basso ignorando la forza di gravità, per 5 minuti"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904986,"modifiedTime":1675877939488,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"j7RjSZH85KRovJKc","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Resistenza all' acido","type":"power","system":{"level":4,"magicschool":"Elementale - Terra","description":"il bersaglio riduce per il prossimo scontro tutti i danni subiti di tipo acido di 20"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904843,"modifiedTime":1675877939473,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"jSH5a5NALT6v8E6H","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Trappola superiore","type":"power","system":{"level":4,"magicschool":"Rune","description":"questa runa può contenere un qualsiasi incantesimo di terzo livello o inferiore che si attiva al momento prescelto secondo il metodo i attivazione scelto dal runologo ( es. se toccata da un elfo )"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904970,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"jfGVhTT1diGxg3LR","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Immagine Speculare","type":"power","system":{"level":1,"magicschool":"Illusione","description":"crea 1d4 copie del bersaglio che appaiono intorno a lui. Ogni volta che si tenta di colpire il bersaglio si verifica casualmente se viene colpito il bersaglio o una delle copie. Le copie durano 6 round o fino a quando non vengono colpite"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904881,"modifiedTime":1675877939478,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"kMn8UGS6YtugQVi2","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Occhio per occhio","type":"power","system":{"level":2,"magicschool":"Indole - Equilibrio","description":"Fino alla fine dello scontro,il bersaglio di allineamento neutrale, che subisce un colpo riflette lo stesso identico quantitativo di punti ferita persi a chi gli provoca il danno, dopo di che questo effetto rimane attivo altri 3 round prima di terminare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904901,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ku6axOQVWmkXgyAV","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Immagine illusoria","type":"power","system":{"level":2,"magicschool":"Illusione","description":"crea un illusione di qualsiasi dimensione, difficile da riconoscere (CD 18, MEN), che può muoversi, riprodurre suoni e parlare attraverso la voce dell'incantatore, l'illusione svanisce dopo 15 minuti o dopo essere stata colpita."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904882,"modifiedTime":1675877939478,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"lRyyrm32BmBH05OM","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Punire la legge","type":"power","system":{"level":1,"magicschool":"Indole - Caos","description":"Se il bersaglio è di allineamento legale subisce 4d6 danni CD 14, MEN, dimezzare. Altrimenti il bersaglio riduce i danni subiti da creature legali di 5 punti per il prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904895,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"leMppxqSJDUNxpuo","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Spore velenose","type":"power","system":{"level":2,"magicschool":"Vegetale","description":"i bersagli entro 12 metri dall'incantatore subiscono 4d8.CD 16, IST, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904982,"modifiedTime":1675877939487,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"lgjVKvYLB62C5OyL","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Di Fronte alla legge","type":"power","system":{"level":2,"magicschool":"Indole - Legge","description":"Fino alla fine dello scontro un bersaglio di allineamento legale che subisce un colpo può decidere di disarmare il proprio avversario che lo ha colpito CD 16 su FIS per negare oppure di farlo sdraiare per terra CD 16 su MEN per negare oppure di infliggergli 5d6 danni CD 16 su IST per negare, dopo di che questo effetto rimane attivo altri 3 round prima di terminare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904908,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"lrvqjBpUmos0t4HB","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Tsunami","type":"power","system":{"level":4,"magicschool":"Elementale - Acqua","description":"i bersagli di fronte all'incantatore subiscono 15d6 danni da freddo, CD 18, IST, dimezzare, e devono riuscire in un tiro salvezza su fis CD 16 o cadere per terra"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904827,"modifiedTime":1675877939471,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"luMwwiXjCbV7zV2k","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Identificare artefatti","type":"power","system":{"level":4,"magicschool":"Conoscenze","description":"lanciando questo incantesimo su un artefatto se ne capisce il funzionamento e le proprietà magiche ad esso associate"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904811,"modifiedTime":1675877939467,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"lx6FGweyivwXnUS4","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Comando","type":"power","system":{"level":3,"magicschool":"Ammaliamento","description":"il bersaglio esegue un ordine impartito alla creatura che non sia un ordine suicida CD 16, MEN, negare. una volta eseguito il comando l'effetto svanisce o dopo che sia trascorso 3 giorni."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904803,"modifiedTime":1675877939466,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"mIMKFBYf3Wjdz2DU","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cerchio contro il bene","type":"power","system":{"level":4,"magicschool":"Indole - Male","description":"l'incantatore e tutti i suoi alleati entro 9 metri ottengono un bonus di +3 al txc e al danno contro creature buone, fino alla fine del prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904918,"modifiedTime":1675877939481,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"mTJvyuuhZr9wORuu","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Epurare invisibilità","type":"power","system":{"level":3,"magicschool":"Visione","description":"in un'area di raggio 20 metri si annulla tutti gli effetti di invisibilità"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904993,"modifiedTime":1675877939489,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"mrBJcZlqf2AXWfnU","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Prosciugare","type":"power","system":{"level":2,"magicschool":"Morte","description":"tutti i bersagli, tranne l'incantatore, entro 10 metri da lui subiscono 4d4 danni."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904934,"modifiedTime":1675877939484,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"nJFSR7YDdiC5aI5F","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Camminare nel vento","type":"power","system":{"level":4,"magicschool":"Viaggio","description":"l'incantatore e fino a un massimo di 10 alleati possono spendere 4 mosse consecutive per trasformarsi in una nuvola e 4 mosse consecutive per tornare normali. nello stato di nuvola ci si muove a una velocità di 360m ma non si può usare ne abilità, ne incantantesi ne è possibile attaccare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904990,"modifiedTime":1675877939488,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ntMeWTWn23Z87hdD","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Parlare con il morto","type":"power","system":{"level":4,"magicschool":"Linguaggi","description":"e' possibile fare una domanda a un morto il quale risponderà al meglio delle sue capacità alla domanda fatta"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904925,"modifiedTime":1675877939482,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"oClFfv4HOgXgbk6u","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Reggia meravigliosa","type":"power","system":{"level":4,"magicschool":"Trasmutazione","description":"si crea una reggia in un altro piano dove è possibile riposare tranquillamente senza essere disturbati, l'incantatore può scegliere chi entra dentro la reggia, la reggia non termina a fine giornata ma persiste fino a quando l'incantatore non decide di uscire o sono trascorsi 3 giorni"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904980,"modifiedTime":1675877939487,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"oHTmpHJrU8hzVEv7","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Tempesta di ghiaccio","type":"power","system":{"level":3,"magicschool":"Elementale - Acqua","description":"tutte le creature in un area di raggio 6 metri subiscono 10d6 danni da freddo. CD 16, IST, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904825,"modifiedTime":1675877939470,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"omCX4zDN753iGPNr","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Retaggio","type":"power","system":{"level":3,"magicschool":"Indole - Equilibrio","description":"infligge 12d6 danni a una creatura neutrale CD 16, MEN, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904902,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"on4EicWu0uubdb5o","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Oscurità magica","type":"power","system":{"level":2,"magicschool":"Oscurità","description":"un area di 6 metri viene oscurata e non è possibile illuminarla in alcun modo. l'incantesimo neutralizza luce magica. l'effetto persiste per 5 minuti."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904945,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"oqWkBcoDNbdIj4ya","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cerchio contro il male","type":"power","system":{"level":4,"magicschool":"Indole - Bene","description":"l'incantatore e tutti i suoi alleati entro 9 metri ottengono un bonus di +3 al txc e al danno contro creature malvagie, fino alla fine del prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904893,"modifiedTime":1675877939479,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"pRLjX4jdslpxXHfR","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Scurovisione","type":"power","system":{"level":1,"magicschool":"Visione","description":"il bersaglio vede nel buio nel raggio di 10 metri per 1 ora"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904991,"modifiedTime":1675877939488,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"pyO4ExVqT7vRaBeK","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Parlare con i morti","type":"power","system":{"level":1,"magicschool":"Linguaggi","description":"il morto può rispondere a 5 domande fatte dall'incantatore con un si o un no."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904920,"modifiedTime":1675877939481,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"qFvbYLTi3t2C0iD0","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Tempo atmosferico","type":"power","system":{"level":1,"magicschool":"Tempo","description":"permettere di cambiare il tempo atmosferico da pioggia, a sole, a tempesta, a neve, in un raggio di 300 metri dall'incantatore, per 1 ora."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904972,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"qRyiUS9gGHy4Op9X","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Colpo del sole","type":"power","system":{"level":3,"magicschool":"Luce","description":"Il bersaglio subisce 8d6 danni CD 18, IST, negare"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904928,"modifiedTime":1675877939483,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"qTUOLlJQ8zULEhhI","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cecitá","type":"power","system":{"level":4,"magicschool":"Luce","description":"il bersaglio diventa accecato CD 18, FIS nega questo effetto e subisce 3d6 danni."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904931,"modifiedTime":1675877939483,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"rN03o7ursWpEHlNN","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cura ferite","type":"power","system":{"level":1,"magicschool":"Guarigione","description":"cura il bersaglio di 2d10 + 10."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904863,"modifiedTime":1675877939476,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"sqqxalQvLW3iSebG","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Alito di morte","type":"power","system":{"level":4,"magicschool":"Morte","description":"i bersagli di fronte all'incantatore subiscono 60 danni , CD 14 fis per negare questo effetto e subire solo 3d6 danni"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904936,"modifiedTime":1675877939484,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"tiDoC5PMgbOgfgIa","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cerchio contro l' equilibrio","type":"power","system":{"level":4,"magicschool":"Indole - Equilibrio","description":"l'incantatore e tutti i suoi alleati entro 9 metri ottengono un bonus di +3 al txc e al danno contro creature neutrali, fino alla fine del prossimo scontro"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904905,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"u60tRTInSsCwthRj","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Cambia bersaglio","type":"power","system":{"level":2,"magicschool":"Fato","description":"Puoi scegliere due alleati, compreso te stesso e fino alla fine dello scontro tutti i danni subiti da uno, e viceversa, vengono dimezzati e la metà per difetto vanno all'altro. Il secondo bersaglio non può ridurre mai questo danno."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904854,"modifiedTime":1675877939475,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ucedLMom9HNyIar6","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Interdizione alla morte","type":"power","system":{"level":4,"magicschool":"Morte","description":"il bersaglio fino alla fine del giorno supera automaticamente tutte le prove per il controllo sulla morte, ed è immune a gli incantesimi della sfera morte"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904937,"modifiedTime":1675877939484,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"ukjoDdLQ3EG8YG8X","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Charme","type":"power","system":{"level":2,"magicschool":"Ammaliamento","description":"la creatura considera l'incantatore un alleato per l'intera giornata. CD 15, MEN, negare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904797,"modifiedTime":1675877939466,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"uqJljByAKFAlnI2Z","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Domanda divina","type":"power","system":{"level":3,"magicschool":"Divinazione","description":"può fare una domanda al master il quale può rispondere con un si o un no."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904820,"modifiedTime":1675877939469,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"v1p3CqaMjGn4032X","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Segno di protezione","type":"power","system":{"level":2,"magicschool":"Rune","description":"il bersaglio può ignorare i danni inflitti dal primo colpo ricevuto in seguito all'incantesimo. il segno scompare all'alba del giorno successivo se non viene scaricato prima."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904968,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"vDxv1Amvg7xs2cM4","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Rigenerazione","type":"power","system":{"level":4,"magicschool":"Negromanzia","description":"il bersaglio rigenera parti del corpo distrutte o tagliate o perse che aveva in precedenza e recupera tutti i punti ferita"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904941,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"vSGeP4nrgzmoixcw","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Dettame","type":"power","system":{"level":3,"magicschool":"Indole - Legge","description":"infligge 12d6 danni ad una creatura caotica. CD 16, MEN, dimezzare."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904909,"modifiedTime":1675877939480,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"vj2MXWRP76IF9gdQ","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Aiuto della natura","type":"power","system":{"level":4,"magicschool":"Vegetale","description":"<p>si evocano 3 trent che rimangono per 5 round ognuno con le seguenti statistiche: fis: 7 ist:3 men:3 3x frustata 2d6, guarigione rapida 5. si considera una unica evocazione al fine dei limiti di controllo di creature evocate e si calcolano le statistiche come le creature evocate, ma il tempo di lancio di questo incantesimo &egrave; di una mossa incantesimo</p>"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904985,"modifiedTime":1675877939488,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"vtmeYf3FxtbUlc8k","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Dissolvi magie superiori","type":"power","system":{"level":4,"magicschool":"Conoscenze","description":"funziona come l'incantesimo della stessa sfera di secondo livello dissolvi magie, ma si ottiene un bonus di +5 al tiro per dissolvere l'incantesimo"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904812,"modifiedTime":1675877939468,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"wQp0B9jxS1XQQ9oi","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Titano","type":"power","system":{"level":3,"magicschool":"Guerra","description":"il bersaglio ottiene un bonus di 5 punti a fis cumulabile con l'incantesimo forza fino alla fine dello scontro."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904876,"modifiedTime":1675877939477,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"wnw46cRzlPWbO5PV","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Evoca scheletro","type":"power","system":{"level":1,"magicschool":"Evocazione - Non Morte","description":"artiglio 1d4 o danni dell'arma, fis 2, ist 2, men 0."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904848,"modifiedTime":1675877939474,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"x2Wn2yyZzfuS67r5","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Luce abbagliante","type":"power","system":{"level":2,"magicschool":"Luce","description":"un'area di 6 metri viene pervasa dalla luce i bersagli nellarea ottengono un -5 ai tiri per colpire, TS FIS 16 per negare . Il potere neutralizza oscurità magica. L'effetto nellarea persiste per 5 minuti."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904927,"modifiedTime":1675877939483,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"x6dRKlegqwmp0dh9","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Visione del vero","type":"power","system":{"level":4,"magicschool":"Visione","description":"Un personaggio riesce per i successivi 5 minuti a vedere le cose per come sono realmente vede sia le aree magiche che le mutazioni, riconosce tutto ciò che è alterato"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904994,"modifiedTime":1675877939490,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"x77FS5eTPPTlfvqU","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Vendetta della furia","type":"power","system":{"level":4,"magicschool":"Guerra","description":"fino alla fine del prossimo scontro tutti i risultati di 18,19 sul txc sono considerati come 20"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904879,"modifiedTime":1675877939478,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"x96WvKX2sEQHJjJZ","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Bloccare il tempo","type":"power","system":{"level":4,"magicschool":"Tempo","description":"con questo incantesimo l'incantatore può fare altri 3 turni consecutivi, non è possibile però lanciare incantesimi contro i nemici o usare mosse di attacco"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904975,"modifiedTime":1675877939486,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"xSeI7UXUOy20nx4U","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Permanenza","type":"power","system":{"level":4,"magicschool":"Forza","description":"questo incantesimo và usato su un altro incantesimo e se questo aveva la dicitura “per il prossimo scontro” diventa “fino a fine giornata”"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904862,"modifiedTime":1675877939476,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"xipmns7LBQ3k3HuG","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Rimuovi status","type":"power","system":{"level":2,"magicschool":"Guarigione","description":"rimuove tutti gli status negativi al bersaglio come il veleno, malattie, sonno o la perdita di caratteristiche, chi usa questo incantesimo deve essere a conoscenza di cosa vuole rimuovere"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904865,"modifiedTime":1675877939476,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"yYPcGqpad7uxCLlo","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Scintilla","type":"power","system":{"level":1,"magicschool":"Elementale - Aria","description":"l'incantatore deve effettuare un tiro per colpire a distanza entro 20 metri per infliggere 4d4 danni da scossa al bersaglio."},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904829,"modifiedTime":1675877939471,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"zTe8Bxq5Rc3lrrCo","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Salvezza","type":"power","system":{"level":2,"magicschool":"Protezione","description":"il bersaglio ottiene un bonus di 5 punti al risultato del primo tiro salvezza che effettua"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904954,"modifiedTime":1675877939485,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"zV19MhRi8xVJBGWq","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Alito di vita","type":"power","system":{"level":4,"magicschool":"Guarigione","description":"riporta il bersaglio al suo massimo di punti ferita anche se questo è morto negli ultimi 3 round"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904869,"modifiedTime":1675877939477,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"zbZ8urPD9fwpHNeR","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}
{"name":"Vedere invisibile","type":"power","system":{"level":2,"magicschool":"Visione","description":"il bersaglio vede le creature invisibili per 5 minuti"},"img":"systems/fvtt-warhero/images/icons/magia.webp","effects":[],"flags":{},"_stats":{"systemId":"fvtt-warhero","systemVersion":"10.0.19","coreVersion":"10.291","createdTime":1675877904992,"modifiedTime":1675877939489,"lastModifiedBy":"rDR9x9ZA2osHkrld"},"_id":"zdi9q4TiPn7KSSOZ","folder":null,"sort":0,"ownership":{"default":0,"rDR9x9ZA2osHkrld":3}}

File diff suppressed because it is too large Load Diff

View File

@ -1,60 +0,0 @@
{{!-- Carac Tab --}}
<div class="tab items" data-group="primary" data-tab="statistics">
<div class="grid grid-2col">
<div class="">
<div class="flexrow">
<span class="generic-label packed-left"><a class="generic-pool-roll"><button class="chat-card-button">Dice Pool</button></a></span>
</div>
</div>
<div class="">
<ul>
<li class="item flexrow list-item" data-key="momentum">
<span class="stat-label flexrow" name="momentum"> <h4>{{data.momentum.label}}</h4> </span>
<input type="text" class="padd-right" name="data.momentum.value" value="{{data.momentum.value}}" data-dtype="Number"/>
<input type="text" class="padd-right" name="data.momentum.max" value="{{data.momentum.max}}" data-dtype="Number"/>
</li>
</ul>
</div>
</div>
</div>
<ul>
<li class="item flexrow list-item" data-key="mr">
<span class="stat-label flexrow" name="mr">
<a class="roll-mr" data-stat-key="{{mr}}"><h4>{{data.mr.label}}</h4></a>
</span>
<select class="carac-base flexrow" type="text" name="data.mr.value" value="{{data.mr.value}}"
data-dtype="Number" >
{{#select data.mr.value}}
{{{@root.optionsDiceList}}}
{{/select}}
</select>
<input type="text" class="padd-right input-numeric-short" name="data.mr.mod" value="{{data.mr.mod}}" data-dtype="Number"/>
</li>
</ul>
<li class="item flexrow list-item" data-attr-key="{{key}}">
{{#each data.secondary as |stat2 key|}}
{{#if stat2.iscombat}}
<span class="stat-label" name="{{key}}">
<h4>{{stat2.label}} : </h4>
</span>
<span class="small-label padd-right packed-left">Cur</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.secondary.{{key}}.value" value="{{stat2.value}}" data-dtype="Number"/>
<span class="small-label padd-right packed-left">&nbsp;Max</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.secondary.{{key}}.max" value="{{stat2.max}}" data-dtype="Number"/>
{{/if}}
{{/each}}
</li>
<li class="item flexrow list-item" data-key="momentum">
<span class="stat-label flexrow" name="momentum"><h4>{{data.momentum.label}}:</h4></span>
<span class="small-label padd-right packed-left">Cur</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.momentum.value" value="{{data.momentum.value}}" data-dtype="Number"/>
<span class="small-label padd-right packed-left">&nbsp;Max</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.momentum.max" value="{{data.momentum.max}}" data-dtype="Number"/>
</li>

View File

@ -7,9 +7,10 @@
], ],
"description": "Warhero RPG system for FoundryVTT", "description": "Warhero RPG system for FoundryVTT",
"esmodules": [ "esmodules": [
"modules/warhero-main.js" "modules/warhero-main.js",
"modules/import-global.js"
], ],
"gridDistance": 5, "gridDistance": 1,
"gridUnits": "m", "gridUnits": "m",
"languages": [ "languages": [
{ {
@ -17,90 +18,22 @@
"name": "English", "name": "English",
"path": "lang/en.json", "path": "lang/en.json",
"flags": {} "flags": {}
},
{
"lang": "it",
"name": "English",
"path": "lang/it.json",
"flags": {}
} }
], ],
"license": "LICENSE.txt", "license": "LICENSE.txt",
"packs": [ "primaryTokenAttribute": "attributes.hp",
{ "secondaryTokenAttribute": "attributes.mana",
"type": "Item",
"label": "Races",
"name": "races",
"path": "packs/races.db",
"system": "fvtt-warhero",
"private": false,
"flags": {}
},
{
"type": "Item",
"label": "Shields",
"name": "shields",
"path": "packs/shields.db",
"system": "fvtt-warhero",
"private": false,
"flags": {}
},
{
"type": "Item",
"label": "Wepons",
"name": "weapons",
"path": "packs/weapons.db",
"system": "fvtt-warhero",
"private": false,
"flags": {}
},
{
"type": "Item",
"label": "Ammunitions",
"name": "ammunitions",
"path": "packs/ammunitions.db",
"system": "fvtt-warhero",
"private": false,
"flags": {}
},
{
"type": "Item",
"label": "Armors",
"name": "armors",
"path": "packs/armors.db",
"system": "fvtt-warhero",
"private": false,
"flags": {}
},
{
"type": "Item",
"label": "Classes",
"name": "classes",
"path": "packs/classes.db",
"system": "fvtt-warhero",
"private": false,
"flags": {}
},
{
"type": "Item",
"label": "Equipments",
"name": "equipments",
"path": "packs/equipments.db",
"system": "fvtt-warhero",
"private": false,
"flags": {}
},
{
"type": "Item",
"label": "Powers",
"name": "powers",
"path": "packs/powers.db",
"system": "fvtt-warhero",
"private": false,
"flags": {}
}
],
"primaryTokenAttribute": "secondary.hp",
"secondaryTokenAttribute": "secondary.effort",
"socket": true, "socket": true,
"styles": [ "styles": [
"styles/simple.css" "styles/simple.css"
], ],
"version": "10.0.18", "version": "10.0.54",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "10",
"verified": "10", "verified": "10",
@ -108,8 +41,7 @@
}, },
"title": "Warhero RPG", "title": "Warhero RPG",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-warhero/raw/branch/master/system.json", "manifest": "https://www.uberwald.me/gitea/public/fvtt-warhero/raw/branch/master/system.json",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-warhero/archive/fvtt-warhero-10.0.18.zip", "download": "https://www.uberwald.me/gitea/public/fvtt-warhero/archive/fvtt-warhero-10.0.54.zip",
"url": "https://www.uberwald.me/gitea/public/fvtt-warhero", "url": "https://www.uberwald.me/gitea/public/fvtt-warhero",
"background": "images/ui/warhero_welcome_page.webp",
"id": "fvtt-warhero" "id": "fvtt-warhero"
} }

View File

@ -1,12 +1,17 @@
{ {
"Actor": { "Actor": {
"types": ["character", "npc"], "types": [
"character",
"npc",
"monster",
"party"
],
"templates": { "templates": {
"biodata": { "biodata": {
"biodata": { "biodata": {
"class": "", "class": "",
"age": 0, "age": 0,
"size": 0, "size": "medium",
"weight": "", "weight": "",
"height": "", "height": "",
"hair": "", "hair": "",
@ -51,83 +56,90 @@
} }
}, },
"attributes": { "attributes": {
"hp":{ "hp": {
"label": "WH.ui.HitPoints", "label": "WH.ui.HitPoints",
"abbrev": "hp", "abbrev": "hp",
"style": "edit", "style": "edit",
"hasmax": true, "hasmax": true,
"max": 1, "isheader": true,
"value": 1 "max": 30,
"value": 30
}, },
"knowledge":{ "knowledge": {
"label": "WH.ui.Knowledge", "label": "WH.ui.Knowledge",
"abbrev": "knowledge", "abbrev": "knowledge",
"style": "edit", "style": "edit",
"hasmax": false, "hasmax": false,
"roll": true, "roll": true,
"max": 1, "max": 0,
"value": 1 "value": 0
}, },
"def":{ "def": {
"label": "WH.ui.Defence", "label": "WH.ui.Defence",
"abbrev": "def", "abbrev": "def",
"style": "edit", "style": "edit",
"max": 1, "iscombat": true,
"value": 1 "max": 12,
"value": 12
}, },
"txcm":{ "txcm": {
"label": "WH.ui.Throw2HitM", "label": "WH.ui.Throw2HitM",
"abbrev": "txcm", "abbrev": "txcm",
"istxc": true, "istxc": true,
"style": "edit", "style": "edit",
"roll": true, "roll": true,
"max": 1, "iscombat": true,
"value": 1 "max": 0,
"value": 0
}, },
"txcr":{ "txcr": {
"label": "WH.ui.Throw2HitR", "label": "WH.ui.Throw2HitR",
"abbrev": "txcr", "abbrev": "txcr",
"istxc": true, "istxc": true,
"style": "edit", "style": "edit",
"roll": true, "roll": true,
"max": 1, "iscombat": true,
"value": 1 "max": 0,
"value": 0
}, },
"mana":{ "mana": {
"label": "WH.ui.Mana", "label": "WH.ui.Mana",
"abbrev": "pm", "abbrev": "pm",
"style": "edit", "style": "edit",
"hasmax": true, "hasmax": true,
"max": 1, "isheader": true,
"value": 1 "max": 3,
"value": 3
}, },
"ini":{ "ini": {
"label": "WH.ui.Initiative", "label": "WH.ui.Initiative",
"abbrev": "ini", "abbrev": "ini",
"style": "edit", "style": "edit",
"max": 1, "iscombat": true,
"value": 1 "roll": true,
"max": 0,
"value": 0
}, },
"movearth":{ "movearth": {
"label": "WH.ui.Movement", "label": "WH.ui.Movement",
"abbrev": "mov", "abbrev": "mov",
"style": "edit", "style": "edit",
"max": 1, "max": 6,
"value": 1 "value": 6
}, },
"movswim":{ "movswim": {
"label": "WH.ui.MovementSwim", "label": "WH.ui.MovementSwim",
"abbrev": "mov", "abbrev": "mov",
"style": "edit", "style": "edit",
"max": 1, "max": 0,
"value": 1 "value": 0
}, },
"movfly":{ "movfly": {
"label": "WH.ui.MovementFly", "label": "WH.ui.MovementFly",
"abbrev": "mov", "abbrev": "mov",
"style": "edit", "style": "edit",
"max": 1, "max": 0,
"value": 1 "value": 0
} }
}, },
"secondary": { "secondary": {
@ -141,6 +153,7 @@
"malusmultiweapon": { "malusmultiweapon": {
"label": "WH.ui.malusmultiweapon", "label": "WH.ui.malusmultiweapon",
"abbrev": "malusmultiweapon", "abbrev": "malusmultiweapon",
"iscombat": true,
"style": "edit", "style": "edit",
"value": 0 "value": 0
}, },
@ -148,6 +161,7 @@
"label": "WH.ui.drbonus", "label": "WH.ui.drbonus",
"abbrev": "drbonus", "abbrev": "drbonus",
"style": "edit", "style": "edit",
"iscombat": true,
"value": 0 "value": 0
}, },
"drbonustotal": { "drbonustotal": {
@ -155,12 +169,28 @@
"abbrev": "drbonustotal", "abbrev": "drbonustotal",
"disabled": true, "disabled": true,
"style": "edit", "style": "edit",
"iscombat": true,
"value": 0
},
"meleedamagebonus": {
"label": "WH.ui.meleedamagebonus",
"abbrev": "meleedamagebonus",
"iscombat": true,
"style": "edit",
"value": 0
},
"rangeddamagebonus": {
"label": "WH.ui.rangeddamagebonus",
"abbrev": "rangeddamagebonus",
"iscombat": true,
"style": "edit",
"value": 0 "value": 0
}, },
"parrybonus": { "parrybonus": {
"label": "WH.ui.parrybonus", "label": "WH.ui.parrybonus",
"abbrev": "parrybonus", "abbrev": "parrybonus",
"isparrybonus": true, "isparrybonus": true,
"iscombat": true,
"style": "edit", "style": "edit",
"value": 0 "value": 0
}, },
@ -169,16 +199,22 @@
"abbrev": "parrybonustotal", "abbrev": "parrybonustotal",
"disabled": true, "disabled": true,
"style": "edit", "style": "edit",
"iscombat": true,
"roll": true, "roll": true,
"value": 0 "value": 0
}, },
"counterspell": { "counterspell": {
"label": "WH.ui.counterspell", "label": "WH.ui.counterspell",
"stat": "min",
"abbrev": "counterspell", "abbrev": "counterspell",
"style": "edit", "style": "edit",
"hasmax": true, "hasmax": false,
"roll": true,
"max": 1, "max": 1,
"value": 0 "value": 0,
"hasuse": true,
"nbuse": 0,
"maxuse": 0
}, },
"createitem": { "createitem": {
"label": "WH.ui.createitem", "label": "WH.ui.createitem",
@ -187,7 +223,7 @@
"value": 0 "value": 0
}, },
"nblanguage": { "nblanguage": {
"label": "WH.ui.languages", "label": "WH.ui.languagesbonus",
"abbrev": "nblanguage", "abbrev": "nblanguage",
"style": "edit", "style": "edit",
"disabled": true, "disabled": true,
@ -200,22 +236,57 @@
"description": "" "description": ""
} }
}, },
"party": {
"templates": [
"biodata"
]
},
"character": { "character": {
"templates": [ "biodata", "core" ] "templates": [
"biodata",
"core"
]
}, },
"npc": { "npc": {
"templates": [ "biodata", "core" ] "templates": [
"biodata",
"core"
]
},
"monster": {
"templates": [
"biodata",
"core"
]
} }
}, },
"Item": { "Item": {
"types": [ "equipment", "race", "weapon", "armor", "shield", "money" , "skill", "power", "language", "condition", "class"], "types": [
"equipment",
"race",
"weapon",
"armor",
"shield",
"skill",
"power",
"language",
"condition",
"class",
"money",
"potion",
"poison",
"trap",
"classitem",
"competency"
],
"templates": { "templates": {
"commonclassrace": { "commonclassrace": {
"weapons": { "weapons": {
"short": false, "short": false,
"long": false, "long": false,
"twohanded": false, "twohanded": false,
"shotgun": false, "shooting": false,
"polearm": false,
"throwing": false "throwing": false
}, },
"armors": { "armors": {
@ -230,11 +301,80 @@
} }
} }
}, },
"competency": {
"description": ""
},
"potion": {
"cost": 0,
"quantity": 1,
"slotused": 1,
"slotlocation": "backpack",
"isidentified": "unknown",
"alchemycost": "",
"preparetime": "",
"durationround": 0,
"description": ""
},
"poison": {
"cost": 0,
"quantity": 1,
"slotused": 1,
"slotlocation": "backpack",
"isidentified": "unknown",
"application": "",
"preparecost": "",
"preparetime": "",
"damageroll": "",
"durationround": 0,
"savesdc": 0,
"savetype": "",
"description": ""
},
"trap": {
"cost": 0,
"quantity": 1,
"slotused": 1,
"slotlocation": "backpack",
"isidentified": "unknown",
"dcfind": 0,
"dcdisable": 0,
"throwtohit": 0,
"damageroll": "",
"description": ""
},
"classitem": {
"cost": 0,
"quantity": 1,
"slotused": 1,
"slotlocation": "backpack",
"isidentified": "unknown",
"class": "",
"mandatoryfor": "",
"description": ""
},
"money": {
"quantity": 0,
"slotlocation": "backpack",
"description": ""
},
"condition": { "condition": {
"conditiontype": "",
"duration": "",
"begin": "",
"specialduration": "",
"durationvalue": 0,
"durationunit": "",
"shortdescription": "",
"dcsave": 0,
"incubationtime": "",
"diseaseduration": "",
"description": "" "description": ""
}, },
"class": { "class": {
"templates": ["commonclassrace"], "templates": [
"commonclassrace"
],
"issecondary": false,
"description": "" "description": ""
}, },
"race": { "race": {
@ -244,14 +384,19 @@
"attributebonus1": "", "attributebonus1": "",
"attributebonus4": "", "attributebonus4": "",
"attributebonus8": "", "attributebonus8": "",
"templates": ["commonclassrace"] "templates": [
"commonclassrace"
]
}, },
"language": { "language": {
"shortdescription": "",
"description": "" "description": ""
}, },
"skill": { "skill": {
"raceskill": false,
"classskill": false, "classskill": false,
"unlimited": false, "unlimited": false,
"acquiredatlevel": 0,
"currentuse": 0, "currentuse": 0,
"maxuse": 0, "maxuse": 0,
"description": "" "description": ""
@ -259,11 +404,17 @@
"weapon": { "weapon": {
"weapontype": "short", "weapontype": "short",
"damage": "1d6", "damage": "1d6",
"damage2hands": "1d6",
"rollformula": "",
"damageformula": "",
"cost": 0, "cost": 0,
"equipped": false, "equipped": false,
"quantity": 1, "quantity": 1,
"slotused": 1, "slotused": 1,
"slotlocation": "weapon1", "slotlocation": "weapon1",
"isidentified": "unknown",
"magiccharge": "notapplicable",
"chargevalue": 0,
"description": "" "description": ""
}, },
"armor": { "armor": {
@ -274,7 +425,10 @@
"quantity": 1, "quantity": 1,
"slotused": 1, "slotused": 1,
"slotlocation": "armor", "slotlocation": "armor",
"description":"" "isidentified": "unknown",
"magiccharge": "notapplicable",
"chargevalue": 0,
"description": ""
}, },
"shield": { "shield": {
"shieldtype": "light", "shieldtype": "light",
@ -284,7 +438,10 @@
"quantity": 1, "quantity": 1,
"slotused": 1, "slotused": 1,
"slotlocation": "shield", "slotlocation": "shield",
"description":"" "isidentified": "unknown",
"magiccharge": "notapplicable",
"chargevalue": 0,
"description": ""
}, },
"equipment": { "equipment": {
"equiptype": "", "equiptype": "",
@ -293,22 +450,18 @@
"equipped": false, "equipped": false,
"slotused": 1, "slotused": 1,
"slotlocation": "backpack", "slotlocation": "backpack",
"description":"" "providedslot": 0,
"isidentified": "unknown",
"magiccharge": "notapplicable",
"chargevalue": 0,
"description": ""
}, },
"power": { "power": {
"level1": "", "level": "",
"level2": "", "magicschool": "",
"level3": "",
"level4_1": "",
"level4_2": "",
"description": "" "description": ""
}, },
"money" : { "spell": {
"value": 0,
"quantity": 0,
"description": ""
},
"spell":{
"lore": "", "lore": "",
"circle": 1, "circle": 1,
"range": "", "range": "",

View File

@ -20,21 +20,68 @@
<div class="ability-item"> <div class="ability-item">
<ul> <ul>
<li class="item flexrow list-item " data-item-id="{{race._id}}"> <li class="item flexrow list-item " data-item-id="{{race._id}}">
<label class="item-field-label-medium">Race</label> <label class="item-field-label-medium">{{localize "WH.ui.race"}}</label>
{{#if race}}
<a class="item-edit"><img class="sheet-competence-img" src="{{race.img}}"></a> <a class="item-edit"><img class="sheet-competence-img" src="{{race.img}}"></a>
<input type="text" class="item-field-label-medium" disabled value="{{race.name}}" data-dtype="String" /> <input type="text" class="item-field-label-medium" disabled value="{{race.name}}" data-dtype="String" />
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
{{else}}
<a class="item-edit"><img class="sheet-competence-img" src="icons/svg/mystery-man.svg"></a>
{{/if}}
</li> </li>
<li class="item flexrow list-item" data-item-id="{{class._id}}"> <li class="item flexrow list-item " data-item-id="{{mainClass._id}}">
<label class="item-field-label-medium">Class</label> <label class="item-field-label-medium">{{localize "WH.ui.class"}}</label>
<a class="item-edit"><img class="sheet-competence-img" src="{{class.img}}"></a> {{#if mainClass}}
<input type="text" class="item-field-label-medium" disabled value="{{class.name}}" data-dtype="String" /> <a class="item-edit"><img class="sheet-competence-img" src="{{mainClass.img}}"></a>
<input type="text" class="item-field-label-medium" disabled value="{{mainClass.name}}" data-dtype="String" />
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
{{else}}
<a class="item-edit"><img class="sheet-competence-img" src="icons/svg/mystery-man.svg"></a>
{{/if}}
</li>
<li class="item flexrow list-item " data-item-id="{{secondaryClass._id}}">
<label class="item-field-label-medium">{{localize "WH.ui.secondaryclass"}}</label>
{{#if secondaryClass}}
<a class="item-edit"><img class="sheet-competence-img" src="{{secondaryClass.img}}"></a>
<input type="text" class="item-field-label-medium" disabled value="{{secondaryClass.name}}" data-dtype="String" />
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
{{else}}
<a class="item-edit"><img class="sheet-competence-img" src="icons/svg/mystery-man.svg"></a>
{{/if}}
</li> </li>
<li class="item flexrow list-item" > <li class="item flexrow list-item" >
<label class="item-field-label-medium">Religion</label> <label class="item-field-label-medium">{{localize "WH.ui.religion"}}</label>
<input type="text" class="item-field-label-medium" name="system.biodata.religion" value="{{system.biodata.religion}}" data-dtype="String" /> <input type="text" class="item-field-label-medium" name="system.biodata.religion" value="{{system.biodata.religion}}" data-dtype="String" />
&nbsp;&nbsp;
<label class="item-field-label-short">{{localize "WH.ui.size"}}</label>
<select class="item-field-label-short" type="text" name="system.biodata.size" value="{{system.biodata.size}}" data-dtype="String">
{{#select system.biodata.size}}
<option value="small">{{localize "WH.ui.small"}}</option>
<option value="medium">{{localize "WH.ui.medium"}}</option>
<option value="large">{{localize "WH.ui.large"}}</option>
{{/select}}
</select>
</li> </li>
</ul> </ul>
</div> </div>
</div>
<div class="flexrow">
{{#each system.attributes as |attr key|}}
{{#if attr.isheader}}
<div class="flexrow">
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-medium"}}
</div>
{{/if}}
{{/each}}
</ul>
</div>
</div> </div>
@ -46,18 +93,18 @@
{{!-- Sheet Tab Navigation --}} {{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary"> <nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="main">Main</a> <a class="item" data-tab="main">{{localize "WH.ui.main"}}</a>
<a class="item" data-tab="combat">Combat</a> <a class="item" data-tab="combat">{{localize "WH.ui.combat"}}</a>
<a class="item" data-tab="skill">Skills&Effects</a> <a class="item" data-tab="skill">{{localize "WH.ui.skillstab"}}</a>
<a class="item" data-tab="power">Powers</a> <a class="item" data-tab="power">{{localize "WH.ui.powers"}}</a>
<a class="item" data-tab="equipment">Equipment</a> <a class="item" data-tab="equipment">{{localize "WH.ui.equipment"}}</a>
<a class="item" data-tab="biodata">Biography</a> <a class="item" data-tab="biodata">{{localize "WH.ui.biography"}}</a>
</nav> </nav>
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
{{!-- Skills Tab --}} {{!-- Main Tab --}}
<div class="tab main" data-group="primary" data-tab="main"> <div class="tab main" data-group="primary" data-tab="main">
<div class="flexrow"> <div class="flexrow">
@ -65,18 +112,18 @@
<div class="ability-item"> <div class="ability-item">
<ul> <ul>
{{#each system.attributes as |attr key|}} {{#each system.attributes as |attr key|}}
{{#if (not attr.iscombat)}}
{{#if (not attr.isheader)}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-vlong"}} {{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-vlong"}}
{{/if}}
{{/if}}
{{/each}} {{/each}}
</ul> </ul>
</div> </div>
<div class="ability-item"> <div class="ability-item">
<ul> <ul>
{{#each system.secondary as |second key|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=second key=key path="secondary" fieldClass="item-field-label-vlong"}}
{{/each}}
<li class="item flexrow list-item item-stat-roll" data-attr-key="{{key}}"> <li class="item flexrow list-item item-stat-roll" data-attr-key="{{key}}">
<span class="item-field-label-vlong" name="{{key}}"> <span class="item-field-label-vlong" name="{{key}}">
<h4 class="item-field-label-vlong"> <h4 class="item-field-label-vlong">
@ -86,177 +133,14 @@
<span class="item-field-label-long" >{{hpprogression}}</span> <span class="item-field-label-long" >{{hpprogression}}</span>
</li> </li>
</ul>
</div>
</div> {{#each system.secondary as |second key|}}
{{#if (not second.iscombat)}}
</div> {{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=second key=key path="secondary" fieldClass="item-field-label-vlong"}}
{{!-- Combat Tab --}}
<div class="tab combat" data-group="primary" data-tab="combat">
<div class="flexcol">
<div>
<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">Weapons</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Damage"}}</label>
</span>
</li>
{{#each weapons 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-long"><a class="roll-weapon"><i class="fa-solid fa-dice-d20"></i>{{weapon.name}}</a></span>
<span class="item-field-label-medium">{{weapon.system.weapontype}}</span>
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula}}</a></span>
<div class="item-filler">&nbsp;</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>
<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">Shields</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.parrybonus"}}</label>
</span>
</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-long">{{shield.name}}</span>
<span class="item-field-label-short">{{shield.system.shieldtype}}</span>
<span class="item-field-label-medium">{{shield.system.parrybonus}}</span>
<div class="item-filler">&nbsp;</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>
<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">Armors</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.damagereduction"}}</label>
</span>
</li>
{{#each armors as |armor key|}}
<li class="item flexrow list-item 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-long">{{armor.name}}</span>
<span class="item-field-label-short">{{armor.system.armortype}}</span>
<span class="item-field-label-medium">{{armor.system.damagereduction}}</span>
<div class="item-filler">&nbsp;</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>
</div>
{{!-- Skills Tab --}}
<div class="tab skill" data-group="primary" data-tab="skill">
<div class="flexcol">
<div>
<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">{{localize "WH.ui.classSkills"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.currentuse"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxuse"}}</label>
</span>
</li>
{{#each classSkills as |skill key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label-long">{{skill.name}}</a></span>
{{#if skill.system.unlimited}}
<span class="item-field-label-medium">N/A</span>
<span class="item-field-label-medium">N/A</span>
{{else}}
<span class="item-field-label-medium">{{skill.system.currentuse}}</span>
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
{{/if}} {{/if}}
<div class="item-filler">&nbsp;</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}} {{/each}}
</ul>
</div>
<div>
<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">{{localize "WH.ui.skills"}}</label></h3>
</span>
</li>
{{#each skills as |skill key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label-long">{{skill.name}}</span>
<div class="item-filler">&nbsp;</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>
</div>
<div> <div>
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
@ -280,6 +164,364 @@
</ul> </ul>
</div> </div>
</div>
</div>
</div>
{{!-- Combat Tab --}}
<div class="tab combat" data-group="primary" data-tab="combat">
<div class="flexcol">
<div class="grid grid2col">
<ul class="stat-list alternate-list">
{{#with system.attributes.def as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="def" path="attributes" fieldClass="item-field-label-vlong"}}
{{/with}}
{{#with system.attributes.ini as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="ini" path="attributes" fieldClass="item-field-label-vlong"}}
{{/with}}
{{#with system.secondary.meleedamagebonus as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="meleedamagebonus" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
<ul class="stat-list alternate-list">
{{#with system.attributes.txcm as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="txcm" path="attributes" fieldClass="item-field-label-vlong"}}
{{/with}}
{{#with system.attributes.txcr as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="txch" path="attributes" fieldClass="item-field-label-vlong"}}
{{/with}}
{{#with system.secondary.rangeddamagebonus as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="rangeddamagebonus" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
</div>
<div>
<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">{{localize "WH.ui.weapons"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Damage"}}</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-long"><a class="roll-weapon"><i class="fa-solid fa-dice-d20"></i>{{weapon.name}}</a></span>
<span class="item-field-label-medium">{{localize (concat "WH.conf." weapon.system.weapontype)}}</span>
{{#if (eq system.weapontype "special")}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.system.damageformula}}</a></span>
{{else}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula}}</a></span>
{{/if}}
{{#if (eq system.weapontype "polearm")}}
<span class="item-field-label-medium"><a class="roll-damage-2hands"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula2Hands}}</a></span>
{{/if}}
<div class="item-filler">&nbsp;</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 class="grid grid2col">
<ul class="stat-list alternate-list">
{{#with system.secondary.parrybonus as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="parrybonus" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
<ul class="stat-list alternate-list">
{{#with system.secondary.parrybonustotal as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="parrybonustotal" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
</div>
<div>
<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">{{localize "WH.ui.shields"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.parrybonus"}}</label>
</span>
</li>
{{#each equippedShields 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-long">{{shield.name}}</span>
<span class="item-field-label-short">{{shield.system.shieldtype}}</span>
<span class="item-field-label-medium">{{shield.system.parrybonus}}</span>
<div class="item-filler">&nbsp;</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 class="grid grid2col">
<ul class="stat-list alternate-list">
{{#with system.secondary.drbonus as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="drbonus" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
<ul class="stat-list alternate-list">
{{#with system.secondary.drbonustotal as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="drbonustotal" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
</div>
<div>
<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">{{localize "WH.ui.armors"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.damagereduction"}}</label>
</span>
</li>
{{#each equippedArmors as |armor key|}}
<li class="item flexrow list-item 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-long">{{armor.name}}</span>
<span class="item-field-label-short">{{armor.system.armortype}}</span>
<span class="item-field-label-medium">{{armor.system.damagereduction}}</span>
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.competency"}}</label></h3>
</span>
</li>
{{#each competency.weapons as |cdata key|}}
{{#if cdata}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<span class="item-name-label-long">{{localize "WH.ui.weapons"}} {{localize cdata.label}}</span>
</li>
{{/if}}
{{/each}}
{{#each competency.shields as |cdata key|}}
{{#if cdata}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<span class="item-name-label-long">{{localize "WH.ui.shields"}} {{localize cdata.label}}</span>
</li>
{{/if}}
{{/each}}
{{#each competency.armors as |cdata key|}}
{{#if cdata}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<span class="item-name-label-long">{{localize "WH.ui.armors"}} {{localize cdata.label}}</span>
</li>
{{/if}}
{{/each}}
{{#each compentencyItems as |comp key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{comp._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{comp.img}}" /></a>
<span class="item-name-label-long">{{comp.name}}</span>
<div class="item-filler">&nbsp;</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>
</div>
{{!-- Skills Tab --}}
<div class="tab skill" data-group="primary" data-tab="skill">
<div class="flexcol">
<div>
<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">{{localize "WH.ui.raceSkills"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.currentuse"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxuse"}}</label>
</span>
</li>
{{#each raceSkills as |skill key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label-long">{{skill.name}}</a></span>
{{#if skill.system.unlimited}}
<span class="item-field-label-medium">N/A</span>
<span class="item-field-label-medium">N/A</span>
{{else}}
<span class="item-field-label-medium">{{skill.system.currentuse}}
(<a class="skill-use-minus plus-minus-button">&nbsp;-</a>/<a class="skill-use-plus plus-minus-button">+</a>)
</span>
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
{{/if}}
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.classSkills"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.currentuse"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxuse"}}</label>
</span>
</li>
{{#each classSkills as |skill key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label-long">{{skill.name}}</a></span>
{{#if skill.system.unlimited}}
<span class="item-field-label-medium">N/A</span>
<span class="item-field-label-medium">N/A</span>
{{else}}
<span class="item-field-label-medium">{{skill.system.currentuse}}
(<a class="skill-use-minus plus-minus-button">&nbsp;-</a>/<a class="skill-use-plus plus-minus-button">+</a>)
</span>
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
{{/if}}
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.skills"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.currentuse"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxuse"}}</label>
</span>
</li>
{{#each skills as |skill key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label-long">{{skill.name}}</span>
{{#if skill.system.unlimited}}
<span class="item-field-label-medium">N/A</span>
<span class="item-field-label-medium">N/A</span>
{{else}}
<span class="item-field-label-medium">{{skill.system.currentuse}}</span>
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
{{/if}}
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.conditions"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.effect"}}</label>
</span>
</li>
{{#each conditions as |cond key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{cond._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{cond.img}}" /></a>
<span class="item-name-label-long">{{cond.name}}</span>
<span class="item-field-label-medium">{{cond.system.shortdescription}}</span>
<div class="item-filler">&nbsp;</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> </div>
</div> </div>
@ -289,20 +531,24 @@
<div class="flexcol"> <div class="flexcol">
{{#each powers as |school schoolKey|}}
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header"> <span class="item-name-label-header">
<h3><label class="items-title-text">Powers</label></h3> <h3><label class="items-title-text">{{schoolKey}}</label></h3>
</span> </span>
</li> </li>
{{#each powers as |power key|}} {{#each school as |power key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{power._id}}"> <li class="item stat flexrow list-item list-item-shadow" data-item-id="{{power._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{power.img}}" /></a> src="{{power.img}}" /></a>
<span class="item-name-label"> <span class="item-name-label-long3">
<a class="power-roll"><i class="fa-solid fa-dice-d20"></i>{{power.name}}</a> <a class="power-roll"><i class="fa-solid fa-dice-d20"></i>{{power.name}}</a>
</span> </span>
<span class="item-name-label-medium">
<a class="power-roll">{{power.system.level}}</a>
</span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
@ -311,6 +557,7 @@
{{/each}} {{/each}}
</ul> </ul>
{{/each}}
</div> </div>
</div> </div>
@ -318,54 +565,23 @@
{{!-- Equipement Tab --}} {{!-- Equipement Tab --}}
<div class="tab equipment" data-group="primary" data-tab="equipment"> <div class="tab equipment" data-group="primary" data-tab="equipment">
{{#each slotEquipments as |slot slotKey|}} <div class="flexrow">
<ul class="item-list alternate-list"> <label class="">{{localize "WH.ui.totalmoney"}} : {{totalMoney}}</label>
<li class="item flexrow list-item items-title-bg {{#if (gt slot.slotUsed slot.nbslots)}}items-title-bg-red{{/if}}">
<span class="item-name-label-header">
<h3><label class="items-title-text">{{localize slot.label}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-long">
<label class="short-label">{{localize "WH.ui.Qty"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxslots"}}: {{slot.nbslots}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.slotsused"}}: {{slot.slotUsed}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="{{itemtype}}" title="Create Item"><i class="fas fa-plus"></i></a>
</div> </div>
</li>
{{#each slot.content as |item itemKey|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{item._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{item.img}}" /></a>
<span class="item-name-label">{{item.name}}</span>
<span class="item-field-label-medium"> <hr>
<label class="short-label">{{upperFirst item.type}}</label> <h3>{{localize "WH.ui.bodyslots"}} : </h3>
</span>
<span class="item-field-label-long"><label> {{#each bodyContainers as |slot slotKey|}}
{{item.system.quantity}} {{> systems/fvtt-warhero/templates/partial-container.html slot=slot slotKey=slotKey}}
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
</label>
</span>
<div class="item-filler">&nbsp;</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}} {{/each}}
<hr>
<h3>{{localize "WH.ui.containerslot"}} : </h3>
{{#each equipmentContainers as |slot slotKey|}}
{{> systems/fvtt-warhero/templates/partial-container.html slot=slot slotKey=slotKey}}
{{/each}}
<hr> <hr>
@ -377,29 +593,21 @@
<div> <div>
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="item flexrow"> <li class="item flexrow">
<label class="generic-label">Origin</label> <label class="generic-label">{{localize "WH.ui.origin"}}</label>
<input type="text" class="" name="system.biodata.origin" value="{{data.biodata.origin}}" <input type="text" class="" name="system.biodata.origin" value="{{system.biodata.origin}}"
data-dtype="String" /> data-dtype="String" />
</li> </li>
<li class="item flexrow"> <li class="item flexrow">
<label class="generic-label">Age</label> <label class="generic-label">{{localize "WH.ui.age"}}</label>
<input type="text" class="" name="system.biodata.age" value="{{data.biodata.age}}" data-dtype="String" /> <input type="text" class="" name="system.biodata.age" value="{{system.biodata.age}}" data-dtype="String" />
</li> </li>
<li class="item flexrow"> <li class="item flexrow">
<label class="generic-label">Height</label> <label class="generic-label">{{localize "WH.ui.height"}}</label>
<input type="text" class="" name="system.biodata.height" value="{{data.biodata.height}}" data-dtype="String" /> <input type="text" class="" name="system.biodata.height" value="{{system.biodata.height}}" 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" />
</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" />
</li> </li>
<li class="flexrow item"> <li class="flexrow item">
<label class="generic-label">Preferred Hand</label> <label class="generic-label">{{localize "WH.ui.preferredhand"}}</label>
<input type="text" class="" name="system.biodata.preferredhand" value="{{data.biodata.preferredhand}}" <input type="text" class="" name="system.biodata.preferredhand" value="{{system.biodata.preferredhand}}"
data-dtype="String" /> data-dtype="String" />
</li> </li>
</ul> </ul>
@ -407,21 +615,16 @@
<div> <div>
<ul> <ul>
<li class="flexrow item"> <li class="flexrow item">
<label class="generic-label">Size</label> <label class="generic-label">{{localize "WH.ui.gender"}}</label>
<select class="competence-base flexrow" type="text" name="system.biodata.size" value="{{data.biodata.size}}" data-dtype="Number"> <input type="text" class="" name="system.biodata.sex" value="{{system.biodata.sex}}" data-dtype="String" />
{{#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>
</li> </li>
<li class="flexrow item"> <li class="item flexrow">
<label class="generic-label">Sex</label> <label class="generic-label">{{localize "WH.ui.eyes"}}</label>
<input type="text" class="" name="system.biodata.sex" value="{{data.biodata.sex}}" data-dtype="String" /> <input type="text" class="" name="system.biodata.eyes" value="{{system.biodata.eyes}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">{{localize "WH.ui.hair"}}</label>
<input type="text" class="" name="system.biodata.hair" value="{{system.biodata.hair}}" data-dtype="String" />
</li> </li>
</ul> </ul>
</div> </div>
@ -429,18 +632,47 @@
<hr> <hr>
<h3>Background : </h3> <h3>{{localize "WH.ui.background"}} : </h3>
<div class="form-group editor"> <div class="form-group editor">
{{editor description target="system.biodata.description" button=true owner=owner {{editor description target="system.biodata.description" button=true owner=owner
editable=editable}} editable=editable}}
</div> </div>
<hr> <hr>
<h3>Notes : </h3> <h3>{{localize "WH.ui.notes"}} : </h3>
<div class="form-group editor"> <div class="form-group editor">
{{editor notes target="system.biodata.notes" button=true owner=owner editable=editable}} {{editor notes target="system.biodata.notes" button=true owner=owner editable=editable}}
</div> </div>
<hr> <hr>
</article> </article>
{{#if isGM}}
<div>
<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">{{localize "WH.ui.allitems"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.type"}}</label>
</span>
</li>
{{#each allItems as |item key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{item._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{item.img}}" /></a>
<span class="item-name-label-long">{{item.name}}</span>
<span class="item-field-label-medium">{{upperFirst item.type}}</span>
<div class="item-filler">&nbsp;</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>
{{/if}}
</div> </div>
</section> </section>

View File

@ -1,75 +0,0 @@
<div class="chat-message-header">
{{#if actorImg}}
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
{{/if}}
<h4 class=chat-actor-name>{{alias}}</h4>
</div>
<hr>
{{#if img}}
<div >
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
</div>
{{/if}}
<div class="flexcol">
</div>
<div>
<ul>
<li><strong>Fight result !</strong></li>
{{#if successDetails.fumbleDetails}}
<li>Fumble ! : {{successDetails.fumbleDetails.data.text}} </li>
{{/if}}
{{#if armorResult}}
<li>Armor initial result : {{armorResult.rawArmor}}</li>
{{#each armorResult.messages as |message idx|}}
<li>{{message}}</li>
{{/each}}
{{/if}}
{{#if successDetails.hack_vs_shields}}
<li>Hack weapon : check shield !</li>
{{/if}}
{{#if successDetails.entangle}}
<li>Entangle weapon : attacker can entangle !</li>
{{/if}}
{{#if successDetails.knockback}}
<li>Knockback weapon : check knockback !</li>
{{/if}}
{{#if successDetails.hack_armors}}
<li>Hack weapon : check armor damage !</li>
{{/if}}
{{#if successDetails.penetrating_impale}}
<li>Penetrating weapon : apply the Impale condition !</li>
{{/if}}
{{#if (or successDetails.critical_1 successDetails.critical_2)}}
<li>Critical {{#if successDetails.critical_1}} 1 {{else}} 2 {{/if}} : {{successDetails.criticalText}} </li>
{{/if}}
{{#if successDetails.attackerHPLossValue}}
<li>Attacker has lost HP : {{successDetails.attackerHPLossValue}} HP </li>
{{/if}}
{{#if successDetails.defenderHPLossValue}}
<li>Defender has lost HP : {{successDetails.defenderHPLossValue}} HP </li>
{{/if}}
<li>Success details : {{successDetails.result}} </li>
<li><strong>Final successes</strong> {{sumSuccess}} </li>
<!-- <button class="chat-card-button reroll-level-remaining" data-roll-id="{{rollId}}">Reroll</button> -->
</ul>
</div>
</div>

View File

@ -15,25 +15,45 @@
<div> <div>
<ul> <ul>
{{#if (eq mode "save")}}
<li>{{localize "WH.chat.save"}} {{localize stat.label}} : {{stat.save}}</li>
{{else}}
{{#if stat}} {{#if stat}}
<li>{{localize stat.label}} : {{stat.value}}</li> <li>{{localize stat.label}} : {{stat.value}}</li>
{{/if}} {{/if}}
{{/if}}
{{#if weapon}} {{#if weapon}}
<li>{{localize "WH.ui.weapon"}} : {{weapon.name}}</li> <li>{{localize "WH.ui.weapon"}} : {{weapon.name}}</li>
{{/if}} {{/if}}
{{#if hasBM}} {{#if hasBM}}
<li>Bonus/Malus : {{bonusMalus}}</li> <li>Bonus/Malus : {{bonusMalus}}</li>
{{/if}} {{/if}}
*
{{#if usemWeaponMalus}} {{#if usemWeaponMalus}}
<li>Multiple weapons malus : {{mWeaponMalus}}</li> <li>{{localize "WH.chat.mweaponmalus"}}: {{mWeaponMalus}}</li>
{{/if}}
{{#if diceFormula}}
<li>Formula : {{diceFormula}}</li>
{{#if isCriticalSuccess}}
<li><span class="crit-success">{{localize "WH.chat.diceresult"}} : {{diceResult}}</span></li>
{{else}}
{{#if isCriticalFailure}}
<li><span class="crit-failure">{{localize "WH.chat.diceresult"}} : {{diceResult}}</span></li>
{{else}}
<li>{{localize "WH.chat.diceresult"}} : <span>{{diceResult}}</span></li>
{{/if}}
{{/if}}
{{/if}} {{/if}}
{{#if power}} {{#if power}}
<li>{{localize "WH.ui.power"}} : {{power.name}}</li> <li>{{localize "WH.ui.power"}} : {{power.name}}</li>
<li>{{localize "WH.ui.magicschool"}} : {{power.system.magicschool}}</li>
<li>{{localize "WH.ui.level"}} : {{power.system.level}}</li>
<li>{{{powerText}}}</li> <li>{{{powerText}}}</li>
{{else}} {{else}}
<li><strong>Result : {{roll.total}} </strong></li> <li><strong>{{localize "WH.chat.result"}} : {{roll.total}} </strong></li>
{{/if}} {{/if}}
</ul> </ul>

View File

@ -1,11 +0,0 @@
<div class="chat-message-header">
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
<h4 class=chat-actor-name>{{defenderName}}</h4>
</div>
<hr>
<div >
{{defenderName}} wins the opposition against {{attackerName}} !
</div>
</div>

View File

@ -17,10 +17,22 @@
<ul> <ul>
<li>{{localize stat.label}} : {{stat.value}}</li> <li>{{localize stat.label}} : {{stat.value}}</li>
<li><strong>Result : {{roll.total}} </strong></li> <li><strong>Result : {{roll.total}} </strong></li>
{{#if isSuccess}}
<li><strong>Parry success ! </strong></li> <li>Formula : {{diceFormula}}</li>
{{#if isCriticalSuccess}}
<li><span class="crit-success">{{localize "WH.chat.diceresult"}} : {{diceResult}}</span></li>
{{else}} {{else}}
<li><strong>Parry failed ! </strong></li> {{#if isCriticalFailure}}
<li><span class="crit-failure">{{localize "WH.chat.diceresult"}} : {{diceResult}}</span></li>
{{else}}
<li>{{localize "WH.chat.diceresult"}} : <span>{{diceResult}}</span></li>
{{/if}}
{{/if}}
{{#if isSuccess}}
<li><strong>{{localize "WH.chat.parysuccess"}} </strong></li>
{{else}}
<li><strong>{{localize "WH.chat.paryfailed"}} </strong></li>
{{/if}} {{/if}}
</ul> </ul>
</div> </div>

View File

@ -1,46 +0,0 @@
<div class="chat-message-header">
{{#if actorImg}}
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
{{/if}}
<h4 class=chat-actor-name>{{alias}}</h4>
</div>
<hr>
{{#if img}}
<div>
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
</div>
{{/if}}
<div class="flexcol">
</div>
<div>
{{#if isRangedAttack}}
<div>{{defender.name}} is under Ranged attack. He must roll a Target Roll to defend himself.</div>
{{else}}
<div>{{defender.name}} is under Melee attack. He must roll a Defense Roll to defend himself.</div>
{{/if}}
<ul>
{{#if isRangedAttack}}
<li>
<button class="chat-card-button roll-defense-ranged" data-roll-id="{{@root.rollId}}">Roll Target !</button>
</li>
{{else}}
<li>
{{#each defenderWeapons as |weapon idx|}}
<button class="chat-card-button roll-defense-melee" data-defense-weapon-id="{{weapon._id}}"
data-roll-id="{{@root.rollId}}">{{weapon.name}}</button>
{{/each}}
</li>
{{/if}}
</ul>
<!-- <button class="chat-card-button reroll-level-remaining" data-roll-id="{{rollId}}">Reroll</button> -->
</ul>
</div>
</div>

View File

@ -18,7 +18,7 @@
<div class="tab" data-group="primary"> <div class="tab" data-group="primary">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-medium ">Type</label> <li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.type"}}</label>
<select class="item-field-label-medium" type="text" name="system.armortype" value="{{system.armortype}}" data-dtype="String"> <select class="item-field-label-medium" type="text" name="system.armortype" value="{{system.armortype}}" data-dtype="String">
{{#select system.armortype}} {{#select system.armortype}}
{{#each config.armorTypes as |type key|}} {{#each config.armorTypes as |type key|}}
@ -28,7 +28,7 @@
</select> </select>
</li> </li>
<li class="flexrow"><label class="item-field-label-medium ">Damage reduction</label> <li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.damagereduction"}}</label>
<input type="text" class="item-field-label-medium " name="system.damagereduction" value="{{system.damagereduction}}" data-dtype="Number"/> <input type="text" class="item-field-label-medium " name="system.damagereduction" value="{{system.damagereduction}}" data-dtype="Number"/>
</li> </li>

View File

@ -12,8 +12,8 @@
<div class="tab details" data-group="primary" data-tab="description"> <div class="tab details" data-group="primary" data-tab="description">
<label class="generic-label">Description</label> <label class="generic-label">{{localize "WH.ui.description"}}</label>
<div class="medium-editor item-text-long-line"> <div class="editor item-text-long-line">
{{editor description target="system.description" button=true owner=owner editable=editable}} {{editor description target="system.description" button=true owner=owner editable=editable}}
</div> </div>
</div> </div>
@ -21,8 +21,12 @@
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.isclasssecondary"}}</label>
<input type="checkbox" name="system.issecondary" {{checked system.issecondary}}/>
</li>
{{#each system.weapons as |weaponflag key|}} {{#each system.weapons as |weaponflag key|}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.weapons"}} {{key}}</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.weapons"}} {{localize (concat "WH.conf." key)}}</label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short" <input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.weapons.{{key}}" {{checked weaponflag}}/> name="system.weapons.{{key}}" {{checked weaponflag}}/>
@ -30,7 +34,7 @@
{{/each}} {{/each}}
{{#each system.armors as |armorflag key|}} {{#each system.armors as |armorflag key|}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.armors"}} {{key}}</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.armors"}} {{localize (concat "WH.conf." key "armor")}}</label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short" <input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.armors.{{key}}" {{checked armorflag}}/> name="system.armors.{{key}}" {{checked armorflag}}/>
@ -38,7 +42,7 @@
{{/each}} {{/each}}
{{#each system.shields as |shieldflag key|}} {{#each system.shields as |shieldflag key|}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.shields"}} {{key}}</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.shields"}} {{localize (concat "WH.conf." key "shield")}}</label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short" <input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.shields.{{key}}" {{checked shieldflag}}/> name="system.shields.{{key}}" {{checked shieldflag}}/>

View File

@ -0,0 +1,32 @@
<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-warhero/templates/partial-item-nav.html}}
{{!-- Sheet Body --}}
<section class="sheet-body">
{{> systems/fvtt-warhero/templates/partial-item-description.html}}
<div class="tab details" data-group="primary" data-tab="details">
<ul>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.class"}}</label>
<input type="text" class="item-field-label-medium " name="system.class" value="{{system.class}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.mandatoryfor"}}</label>
<input type="text" class="item-field-label-long2 " name="system.mandatoryfor" value="{{system.mandatoryfor}}" data-dtype="String"/>
</li>
{{> systems/fvtt-warhero/templates/partial-item-common-equipment.html}}
</ul>
</div>
</section>
</form>

View File

@ -0,0 +1,24 @@
<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-warhero/templates/partial-item-nav.html}}
{{!-- Sheet Body --}}
<section class="sheet-body">
{{> systems/fvtt-warhero/templates/partial-item-description.html}}
<div class="tab details" data-group="primary" data-tab="details">
<ul>
</ul>
</div>
</section>
</form>

View File

@ -10,17 +10,73 @@
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
<div class="tab details" data-group="primary" data-tab="description"> {{> systems/fvtt-warhero/templates/partial-item-description.html}}
<label class="generic-label">Description</label>
<div class="medium-editor item-text-long-line">
{{editor description target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.conditiontype"}}</label>
<select class="item-field-label-medium " type="text" name="system.conditiontype" value="{{system.conditiontype}}" data-dtype="String">
{{#select system.conditiontype}}
{{#each config.conditionType as |type key|}}
<option value="{{key}}">{{localize type}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.duration"}}</label>
<select class="item-field-label-medium " type="text" name="system.duration" value="{{system.duration}}" data-dtype="String">
{{#select system.duration}}
{{#each config.conditionDuration as |type key|}}
<option value="{{key}}">{{localize type}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.begin"}}</label>
<input type="text" class="item-field-label-long" name="system.begin" value="{{system.begin}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.specialduration"}}</label>
<select class="item-field-label-medium " type="text" name="system.specialduration" value="{{system.specialduration}}" data-dtype="String">
{{#select system.specialduration}}
{{#each config.conditionSpecialDuration as |type key|}}
<option value="{{key}}">{{localize type}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.durationvalue"}}</label>
<input type="text" class="item-field-label-short" name="system.durationvalue" value="{{system.durationvalue}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.durationunit"}}</label>
<input type="text" class="item-field-label-long" name="system.durationunit" value="{{system.durationunit}}" data-dtype="String"/>
</li>
{{#if (eq conditiontype "disease")}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.dcsave"}}</label>
<input type="text" class="item-field-label-short" name="system.dcsave" value="{{system.dcsave}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.incubationtime"}}</label>
<input type="text" class="item-field-label-long" name="system.incubationtime" value="{{system.incubationtime}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.diseaseduration"}}</label>
<input type="text" class="item-field-label-long" name="system.diseaseduration" value="{{system.diseaseduration}}" data-dtype="String"/>
</li>
{{/if}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.effect"}}</label>
<input type="text" class="item-field-label-long" name="system.shortdescription" value="{{system.shortdescription}}" data-dtype="String"/>
</li>
</ul> </ul>
</div> </div>

View File

@ -16,6 +16,10 @@
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.providedslot"}}</label>
<input type="text" class="item-field-label-medium " name="system.providedslot" value="{{system.providedslot}}" data-dtype="Number"/>
</li>
{{> systems/fvtt-warhero/templates/partial-item-common-equipment.html}} {{> systems/fvtt-warhero/templates/partial-item-common-equipment.html}}
</ul> </ul>

View File

@ -0,0 +1,24 @@
<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-warhero/templates/partial-item-nav.html}}
{{!-- Sheet Body --}}
<section class="sheet-body">
{{> systems/fvtt-warhero/templates/partial-item-description.html}}
<div class="tab details" data-group="primary" data-tab="details">
<ul>
</ul>
</div>
</section>
</form>

View File

@ -8,20 +8,29 @@
{{> systems/fvtt-warhero/templates/partial-item-nav.html}} {{> systems/fvtt-warhero/templates/partial-item-nav.html}}
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
{{> systems/fvtt-warhero/templates/partial-item-description.html}} {{> systems/fvtt-warhero/templates/partial-item-description.html}}
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-medium ">Quantity</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.quantity"}}</label>
<input type="text" class="item-field-label-medium " name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/> <input type="text" class="item-field-label-long" name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-medium">Unit value</label> <li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.slotlocation"}}</label>
<input type="text" class="item-field-label-medium " name="system.value" value="{{system.value}}" data-dtype="Number"/> <select class="item-field-label-long " type="text" name="system.slotlocation" value="{{system.slotlocation}}" data-dtype="String">
{{#select system.slotlocation}}
{{#each config.slotNames as |type key|}}
<option value="{{key}}">{{localize type.label}}</option>
{{/each}}
{{/select}}
</select>
</li> </li>
</ul> </ul>
</div> </div>
</section> </section>

View File

@ -1,28 +1,64 @@
<form class="{{cssClass}}" autocomplete="off"> <form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header"> <header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" /> <img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
<div class="header-fields"> <div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1> <h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
</div> </div>
</header> </header>
{{> systems/fvtt-warhero/templates/partial-item-nav.html}} {{> systems/fvtt-warhero/templates/partial-item-nav.html}}
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
<div class="tab details" data-group="primary" data-tab="description"> {{> systems/fvtt-warhero/templates/partial-item-description.html}}
<label class="generic-label">Description</label>
<div class="medium-editor item-text-long-line">
{{editor description target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.application"}}</label>
<select class="item-field-label-medium " type="text" name="system.application" value="{{system.application}}" data-dtype="String">
{{#select system.application}}
{{#each config.poisonApplication as |type key|}}
<option value="{{key}}">{{localize type}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.cost"}}</label>
<input type="text" class="item-field-label-medium " name="system.preparecost" value="{{system.preparecost}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.preparetime"}}</label>
<input type="text" class="item-field-label-medium " name="system.preparetime" value="{{system.preparetime}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.damage"}}</label>
<input type="text" class="item-field-label-medium " name="system.damageroll" value="{{system.damageroll}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.durationrounds"}}</label>
<input type="text" class="item-field-label-short " name="system.durationround" value="{{system.durationround}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.savesdc"}}</label>
<input type="text" class="item-field-label-short " name="system.savesdc" value="{{system.savesdc}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.savetype"}}</label>
<select class="item-field-label-long " type="text" name="system.savetype" value="{{system.savetype}}" data-dtype="String">
{{#select system.savetype}}
{{#each config.saveType as |type key|}}
<option value="{{key}}">{{localize type}}</option>
{{/each}}
{{/select}}
</select>
</li>
{{> systems/fvtt-warhero/templates/partial-item-common-equipment.html}}
</ul> </ul>
</div> </div>
</section> </section>
</form> </form>

View File

@ -0,0 +1,36 @@
<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-warhero/templates/partial-item-nav.html}}
{{!-- Sheet Body --}}
<section class="sheet-body">
{{> systems/fvtt-warhero/templates/partial-item-description.html}}
<div class="tab details" data-group="primary" data-tab="details">
<ul>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.cost"}}</label>
<input type="text" class="item-field-label-medium " name="system.alchemycost" value="{{system.alchemycost}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.preparetime"}}</label>
<input type="text" class="item-field-label-medium " name="system.preparetime" value="{{system.preparetime}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.durationrounds"}}</label>
<input type="text" class="item-field-label-medium " name="system.durationround" value="{{system.durationround}}" data-dtype="Number"/>
</li>
{{> systems/fvtt-warhero/templates/partial-item-common-equipment.html}}
</ul>
</div>
</section>
</form>

View File

@ -12,41 +12,18 @@
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
<div class="tab description" data-group="primary" data-tab="description"> {{> systems/fvtt-warhero/templates/partial-item-description.html}}
<div>
<label class="generic-label">{{localize WH.ui.level}} 1</label>
<div class="small-editor item-text-long-line">
{{editor level1 target="system.level1" button=true owner=owner editable=editable}}
</div>
</div>
<div>
<label class="generic-label">{{localize WH.ui.level}} 2</label>
<div class="small-editor item-text-long-line">
{{editor level2 target="system.level2" button=true owner=owner editable=editable}}
</div>
</div>
<div>
<label class="generic-label">{{localize WH.ui.level}} 3</label>
<div class="small-editor item-text-long-line">
{{editor level3 target="system.level3" button=true owner=owner editable=editable}}
</div>
</div>
<div>
<label class="generic-label">{{localize WH.ui.level}} 4</label>
<div class="small-editor item-text-long-line">
{{editor level4 target="system.level4" button=true owner=owner editable=editable}}
</div>
</div>
<div>
<label class="generic-label">{{localize WH.ui.notes}}</label>
<div class="small-editor item-text-long-line">
{{editor description target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
</div>
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.magicschool"}}</label>
<input type="text" class="item-field-label-long" name="system.magicschool" value="{{system.magicschool}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.level"}}</label>
<input type="text" class="item-field-label-long" name="system.level" value="{{system.level}}" data-dtype="Number"/>
</li>
</ul>
</div> </div>

View File

@ -10,13 +10,7 @@
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
<div class="tab details" data-group="primary" data-tab="description"> {{> systems/fvtt-warhero/templates/partial-item-nav.html}}
<label class="generic-label">Description</label>
<div class="medium-editor item-text-long-line">
{{editor description target="system.description" button=true owner=owner editable=editable}}
</div>
</div>
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
@ -64,7 +58,7 @@
</li> </li>
{{#each system.weapons as |weaponflag key|}} {{#each system.weapons as |weaponflag key|}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.weapons"}} {{key}}</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.weapons"}} {{localize (concat "WH.conf." key)}}</label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short" <input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.weapons.{{key}}" {{checked weaponflag}}/> name="system.weapons.{{key}}" {{checked weaponflag}}/>
@ -72,7 +66,7 @@
{{/each}} {{/each}}
{{#each system.armors as |armorflag key|}} {{#each system.armors as |armorflag key|}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.armors"}} {{key}}</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.armors"}} {{localize (concat "WH.conf." key "armor")}}</label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short" <input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.armors.{{key}}" {{checked armorflag}}/> name="system.armors.{{key}}" {{checked armorflag}}/>
@ -80,7 +74,7 @@
{{/each}} {{/each}}
{{#each system.shields as |shieldflag key|}} {{#each system.shields as |shieldflag key|}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.shields"}} {{key}}</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.shields"}} {{localize (concat "WH.conf." key "shield")}}</label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short" <input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.shields.{{key}}" {{checked shieldflag}}/> name="system.shields.{{key}}" {{checked shieldflag}}/>

View File

@ -18,7 +18,7 @@
<div class="tab" data-group="primary"> <div class="tab" data-group="primary">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-medium ">Shield type</label> <li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.type"}}</label>
<select class="item-field-label-long " type="text" name="system.shieldtype" value="{{system.shieldtype}}" data-dtype="String"> <select class="item-field-label-long " type="text" name="system.shieldtype" value="{{system.shieldtype}}" data-dtype="String">
{{#select system.shieldtype}} {{#select system.shieldtype}}
{{#each config.armorTypes as |type key|}} {{#each config.armorTypes as |type key|}}
@ -28,7 +28,7 @@
</select> </select>
</li> </li>
<li class="flexrow"><label class="item-field-label-medium ">Parry Bonus</label> <li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.parrybonus"}}</label>
<input type="text" class="item-field-label-medium " name="system.parrybonus" value="{{system.parrybonus}}" data-dtype="Number"/> <input type="text" class="item-field-label-medium " name="system.parrybonus" value="{{system.parrybonus}}" data-dtype="Number"/>
</li> </li>

View File

@ -15,14 +15,22 @@
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.israceskill"}}</label>
<input type="checkbox" name="system.raceskill" {{checked system.raceskill}}/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.isclassskill"}}</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.isclassskill"}}</label>
<input type="checkbox" name="system.classskill" {{checked system.classskill}}/> <input type="checkbox" name="system.classskill" {{checked system.classskill}}/>
</li> </li>
{{#if system.classskill}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.unlimited"}}</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.unlimited"}}</label>
<input type="checkbox" name="system.unlimited" {{checked system.unlimited}}/> <input type="checkbox" name="system.unlimited" {{checked system.unlimited}}/>
</li> </li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.skilllevelacquired"}}</label>
<input type="text" class="item-field-label-medium " name="system.acquiredatlevel" value="{{system.acquiredatlevel}}" data-dtype="Number"/>
</li>
{{#if system.unlimited}} {{#if system.unlimited}}
{{else}} {{else}}
@ -33,7 +41,6 @@
<input type="text" class="item-field-label-medium " name="system.maxuse" value="{{system.maxuse}}" data-dtype="Number"/> <input type="text" class="item-field-label-medium " name="system.maxuse" value="{{system.maxuse}}" data-dtype="Number"/>
</li> </li>
{{/if}} {{/if}}
{{/if}}
</ul> </ul>
</div> </div>

View File

@ -1,49 +0,0 @@
<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-warhero/templates/partial-item-nav.html}}
{{!-- Sheet Body --}}
<section class="sheet-body">
{{> systems/fvtt-warhero/templates/partial-item-description.html}}
<div class="tab details" data-group="primary" data-tab="details">
<ul>
<li class="flexrow"><label class="generic-label">Lore</label>
<select class="competence-base flexrow" type="text" name="system.lore" value="{{data.lore}}" data-dtype="String">
{{#select data.lore}}
<option value="earth">Earth</option>
<option value="air">Air</option>
<option value="fire">Fire</option>
<option value="water">Water</option>
<option value="shadow">Shadow</option>
{{/select}}
</select>
</li>
<li class="flexrow"><label class="generic-label">Circle</label>
<select class="competence-base flexrow" type="text" name="system.circle" value="{{data.circle}}" data-dtype="Number">
{{#select data.circle}}
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
{{/select}}
</select>
</li>
<li class="flexrow"><label class="generic-label">Range</label>
<input type="text" class="" name="system.range" value="{{data.range}}" data-dtype="String"/>
</li>
</ul>
</div>
</section>
</form>

View File

@ -0,0 +1,40 @@
<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-warhero/templates/partial-item-nav.html}}
{{!-- Sheet Body --}}
<section class="sheet-body">
{{> systems/fvtt-warhero/templates/partial-item-description.html}}
<div class="tab details" data-group="primary" data-tab="details">
<ul>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.dcfind"}}</label>
<input type="text" class="item-field-label-short " name="system.dcfind" value="{{system.dcfind}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.dcdisable"}}</label>
<input type="text" class="item-field-label-short " name="system.dcdisable" value="{{system.dcdisable}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.throwtohit"}}</label>
<input type="text" class="item-field-label-medium " name="system.throwtohit" value="{{system.throwtohit}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.damage"}}</label>
<input type="text" class="item-field-label-medium " name="system.damageroll" value="{{system.damageroll}}" data-dtype="String"/>
</li>
{{> systems/fvtt-warhero/templates/partial-item-common-equipment.html}}
</ul>
</div>
</section>
</form>

View File

@ -18,7 +18,7 @@
<div class="tab" data-group="primary"> <div class="tab" data-group="primary">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-medium ">Type</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.type"}}</label>
<select class="item-field-label-medium " type="text" name="system.weapontype" value="{{system.weapontype}}" data-dtype="String"> <select class="item-field-label-medium " type="text" name="system.weapontype" value="{{system.weapontype}}" data-dtype="String">
{{#select system.weapontype}} {{#select system.weapontype}}
{{#each config.weaponTypes as |type key|}} {{#each config.weaponTypes as |type key|}}
@ -28,10 +28,24 @@
</select> </select>
</li> </li>
<li class="flexrow"><label class="item-field-label-medium ">Damage</label> {{#if (eq system.weapontype "special")}}
<li class="flexrow"><label class="item-field-label-vlong2 ">{{localize "WH.ui.rawroll"}}</label>
<input type="text" class="item-field-label-long " name="system.rollformula" value="{{system.rollformula}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-vlong2 ">{{localize "WH.ui.rawdamage"}}</label>
<input type="text" class="item-field-label-long " name="system.damageformula" value="{{system.damageformula}}" data-dtype="String"/>
</li>
{{else}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.damage"}}</label>
<input type="text" class="item-field-label-medium " name="system.damage" value="{{system.damage}}" data-dtype="String"/> <input type="text" class="item-field-label-medium " name="system.damage" value="{{system.damage}}" data-dtype="String"/>
</li> </li>
{{/if}}
{{#if (eq system.weapontype "polearm")}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.2hdamage"}}</label>
<input type="text" class="item-field-label-medium " name="system.damage2hands" value="{{system.damage2hands}}" data-dtype="String"/>
</li>
{{/if}}
{{> systems/fvtt-warhero/templates/partial-item-common-equipment.html}} {{> systems/fvtt-warhero/templates/partial-item-common-equipment.html}}

View File

@ -0,0 +1,555 @@
<form class="{{cssClass}}" autocomplete="off">
{{!-- 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">
<div class="flexrow">
<div class="ability-item">
<ul>
{{#each system.statistics as |stat key|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key=key path="statistics" fieldClass="item-field-label-medium"}}
{{/each}}
</ul>
</div>
<div class="ability-item">
<ul>
<li class="item flexrow list-item " data-item-id="{{race._id}}">
<label class="item-field-label-medium">Race</label>
<a class="item-edit"><img class="sheet-competence-img" src="{{race.img}}"></a>
<input type="text" class="item-field-label-medium" disabled value="{{race.name}}" data-dtype="String" />
<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>
<li class="item flexrow list-item" data-item-id="{{class._id}}">
<label class="item-field-label-medium">Class</label>
<a class="item-edit"><img class="sheet-competence-img" src="{{class.img}}"></a>
<input type="text" class="item-field-label-medium" disabled value="{{class.name}}" data-dtype="String" />
<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>
<li class="item flexrow list-item" >
<label class="item-field-label-medium">Religion</label>
<input type="text" class="item-field-label-medium" name="system.biodata.religion" value="{{system.biodata.religion}}" data-dtype="String" />
</li>
</ul>
</div>
</div>
<div class="flexrow">
{{#each system.attributes as |attr key|}}
{{#if attr.isheader}}
<div class="flexrow">
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-medium"}}
</div>
{{/if}}
{{/each}}
</ul>
</div>
</div>
</div>
</div>
</div>
</header>
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="main">{{localize "WH.ui.main"}}</a>
<a class="item" data-tab="combat">{{localize "WH.ui.combat"}}</a>
<a class="item" data-tab="skill">{{localize "WH.ui.skillstab"}}</a>
<a class="item" data-tab="power">{{localize "WH.ui.powers"}}</a>
<a class="item" data-tab="equipment">{{localize "WH.ui.equipment"}}</a>
<a class="item" data-tab="biodata">{{localize "WH.ui.biography"}}</a>
</nav>
{{!-- Sheet Body --}}
<section class="sheet-body">
{{!-- Skills Tab --}}
<div class="tab main" data-group="primary" data-tab="main">
<div class="flexrow">
<div class="ability-item">
<ul>
{{#each system.attributes as |attr key|}}
{{#if (not attr.isheader)}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-vlong"}}
{{/if}}
{{/each}}
</ul>
<div>
<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">{{localize "WH.ui.competency"}}</label></h3>
</span>
</li>
{{#each competency.weapons as |flag key|}}
{{#if flag}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<span class="item-name-label-long">{{localize "WH.ui.weapons"}} {{key}}</span>
</li>
{{/if}}
{{/each}}
{{#each competency.shields as |flag key|}}
{{#if flag}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<span class="item-name-label-long">{{localize "WH.ui.shields"}} {{key}}</span>
</li>
{{/if}}
{{/each}}
{{#each competency.armors as |flag key|}}
{{#if flag}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<span class="item-name-label-long">{{localize "WH.ui.armors"}} {{key}}</span>
</li>
{{/if}}
{{/each}}
</ul>
</div>
</div>
<div class="ability-item">
<ul>
<li class="item flexrow list-item item-stat-roll" data-attr-key="{{key}}">
<span class="item-field-label-vlong" name="{{key}}">
<h4 class="item-field-label-vlong">
{{localize "WH.ui.xphp"}}
</h4>
</span>
<span class="item-field-label-long" >{{hpprogression}}</span>
</li>
{{#each system.secondary as |second key|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=second key=key path="secondary" fieldClass="item-field-label-vlong"}}
{{/each}}
</ul>
<div>
<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">{{localize "WH.ui.languages"}}</label></h3>
</span>
</li>
{{#each languages as |language key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{language.img}}" /></a>
<span class="item-name-label-long">{{language.name}}</span>
<div class="item-filler">&nbsp;</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>
</div>
</div>
{{!-- Combat Tab --}}
<div class="tab combat" data-group="primary" data-tab="combat">
<div class="flexcol">
<div>
<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">{{localize "WH.ui.weapons"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Damage"}}</label>
</span>
</li>
{{#each weapons 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-long"><a class="roll-weapon"><i class="fa-solid fa-dice-d20"></i>{{weapon.name}}</a></span>
<span class="item-field-label-medium">{{weapon.system.weapontype}}</span>
{{#if (eq system.weapontype "special")}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.system.damageformula}}</a></span>
{{else}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula}}</a></span>
{{/if}}
{{#if (eq system.weapontype "polearm")}}
<span class="item-field-label-medium"><a class="roll-damage-2hands"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula2Hands}}</a></span>
{{/if}}
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.shields"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.parrybonus"}}</label>
</span>
</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-long">{{shield.name}}</span>
<span class="item-field-label-short">{{shield.system.shieldtype}}</span>
<span class="item-field-label-medium">{{shield.system.parrybonus}}</span>
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.armors"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.damagereduction"}}</label>
</span>
</li>
{{#each armors as |armor key|}}
<li class="item flexrow list-item 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-long">{{armor.name}}</span>
<span class="item-field-label-short">{{armor.system.armortype}}</span>
<span class="item-field-label-medium">{{armor.system.damagereduction}}</span>
<div class="item-filler">&nbsp;</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>
</div>
{{!-- Skills Tab --}}
<div class="tab skill" data-group="primary" data-tab="skill">
<div class="flexcol">
<div>
<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">{{localize "WH.ui.classSkills"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.currentuse"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxuse"}}</label>
</span>
</li>
{{#each classSkills as |skill key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label-long">{{skill.name}}</a></span>
{{#if skill.system.unlimited}}
<span class="item-field-label-medium">N/A</span>
<span class="item-field-label-medium">N/A</span>
{{else}}
<span class="item-field-label-medium">{{skill.system.currentuse}}</span>
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
{{/if}}
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.skills"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.currentuse"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxuse"}}</label>
</span>
</li>
{{#each skills as |skill key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label-long">{{skill.name}}</span>
{{#if skill.system.unlimited}}
<span class="item-field-label-medium">N/A</span>
<span class="item-field-label-medium">N/A</span>
{{else}}
<span class="item-field-label-medium">{{skill.system.currentuse}}</span>
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
{{/if}}
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.conditions"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.effect"}}</label>
</span>
</li>
{{#each conditions as |cond key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{cond._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{cond.img}}" /></a>
<span class="item-name-label-long">{{cond.name}}</span>
<span class="item-field-label-medium">{{cond.system.shortdescription}}</span>
<div class="item-filler">&nbsp;</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>
</div>
{{!-- Powers Tab --}}
<div class="tab power" data-group="primary" data-tab="power">
<div class="flexcol">
{{#each powers as |school schoolKey|}}
<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">{{schoolKey}}</label></h3>
</span>
</li>
{{#each school as |power key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{power._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{power.img}}" /></a>
<span class="item-name-label">
<a class="power-roll"><i class="fa-solid fa-dice-d20"></i>{{power.name}}</a>
</span>
<span class="item-name-label">
<a class="power-roll">{{power.system.level}}</a>
</span>
<div class="item-filler">&nbsp;</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}}
</div>
</div>
{{!-- Equipement Tab --}}
<div class="tab equipment" data-group="primary" data-tab="equipment">
{{#each slotEquipments as |slot slotKey|}}
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg {{#if (gt slot.slotUsed slot.nbslots)}}items-title-bg-red{{/if}}">
<span class="item-name-label-header">
<h3><label class="items-title-text">{{localize slot.label}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-long">
<label class="short-label">{{localize "WH.ui.Qty"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxslots"}}: {{slot.nbslots}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.slotsused"}}: {{slot.slotUsed}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="{{itemtype}}" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each slot.content as |item itemKey|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{item._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{item.img}}" /></a>
<span class="item-name-label">{{item.name}}</span>
<span class="item-field-label-medium">
<label class="short-label">{{upperFirst item.type}}</label>
</span>
<span class="item-field-label-long"><label>
{{item.system.quantity}}
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
</label>
</span>
<div class="item-filler">&nbsp;</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}}
<hr>
</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">{{localize "WH.ui.origin"}}</label>
<input type="text" class="" name="system.biodata.origin" value="{{data.biodata.origin}}"
data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">{{localize "WH.ui.age"}}</label>
<input type="text" class="" name="system.biodata.age" value="{{data.biodata.age}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">{{localize "WH.ui.height"}}</label>
<input type="text" class="" name="system.biodata.height" value="{{data.biodata.height}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label">{{localize "WH.ui.preferredhand"}}</label>
<input type="text" class="" name="system.biodata.preferredhand" value="{{data.biodata.preferredhand}}"
data-dtype="String" />
</li>
</ul>
</div>
<div>
<ul>
<li class="flexrow item">
<label class="generic-label">{{localize "WH.ui.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>
</li>
<li class="flexrow item">
<label class="generic-label">{{localize "WH.ui.gender"}}</label>
<input type="text" class="" name="system.biodata.sex" value="{{data.biodata.sex}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">{{localize "WH.ui.eyes"}}</label>
<input type="text" class="" name="system.biodata.eyes" value="{{data.biodata.eyes}}" data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">{{localize "WH.ui.hair"}}</label>
<input type="text" class="" name="system.biodata.hair" value="{{data.biodata.hair}}" data-dtype="String" />
</li>
</ul>
</div>
</div>
<hr>
<h3>{{localize "WH.ui.background"}} : </h3>
<div class="form-group editor">
{{editor description target="system.biodata.description" button=true owner=owner
editable=editable}}
</div>
<hr>
<h3>{{localize "WH.ui.notes"}} : </h3>
<div class="form-group editor">
{{editor notes target="system.biodata.notes" button=true owner=owner editable=editable}}
</div>
<hr>
</article>
</div>
</section>
</form>

View File

@ -11,172 +11,147 @@
<div class="flexrow"> <div class="flexrow">
<div class="ability-item"> <div class="ability-item">
<ul> <ul>
{{#each data.abilities as |ability key|}} {{#each system.statistics as |stat key|}}
{{#if (eq ability.col 1)}} {{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key=key path="statistics" fieldClass="item-field-label-medium"}}
{{> systems/fvtt-crucible-rpg/templates/partial-actor-ability-block.html ability=ability key=key}}
{{/if}}
{{/each}} {{/each}}
</ul> </ul>
<li class="item flexrow list-item" data-attr-key="class">
<span class="ability-label " name="class">
<h4 class="ability-text-white ability-margin">Class</h4>
</span>
<select class="competence-base flexrow" type="text" name="system.biodata.class" value="{{data.biodata.class}}" data-dtype="String">
{{#select data.biodata.class}}
<option value="none">None</option>
<option value="chaplain">Chaplain</option>
<option value="magus">Magus</option>
<option value="martial">Martial</option>
<option value="skalawag">Skalawag</option>
<option value="warden">Warden</option>
{{/select}}
</select>
</li>
</div> </div>
<div class="ability-item"> <div class="ability-item">
<ul> <ul>
{{#each data.abilities as |ability key|}} <li class="item flexrow list-item " data-item-id="{{race._id}}">
{{#if (eq ability.col 2)}} <label class="item-field-label-medium">Race</label>
{{> systems/fvtt-crucible-rpg/templates/partial-actor-ability-block.html ability=ability key=key}} <a class="item-edit"><img class="sheet-competence-img" src="{{race.img}}"></a>
<input type="text" class="item-field-label-medium" disabled value="{{race.name}}" data-dtype="String" />
<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>
<li class="item flexrow list-item" data-item-id="{{class._id}}">
<label class="item-field-label-medium">Class</label>
<a class="item-edit"><img class="sheet-competence-img" src="{{class.img}}"></a>
<input type="text" class="item-field-label-medium" disabled value="{{class.name}}" data-dtype="String" />
<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>
<li class="item flexrow list-item" >
<label class="item-field-label-medium">Religion</label>
<input type="text" class="item-field-label-medium" name="system.biodata.religion" value="{{system.biodata.religion}}" data-dtype="String" />
</li>
</ul>
</div>
</div>
<div class="flexrow">
{{#each system.attributes as |attr key|}}
{{#if attr.isheader}}
<div class="flexrow">
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-medium"}}
</div>
{{/if}} {{/if}}
{{/each}} {{/each}}
{{#if equippedArmor}}
<li class="item flexrow list-item" data-attr-key="class">
<img class="sheet-competence-img" src="{{equippedArmor.img}}" />
<span class="ability-label " name="class">
<h4 class="ability-text-white ability-margin"><a class="roll-armor-die ability-margin">{{equippedArmor.name}}</a></h4>
</span>
</li>
{{/if}}
{{#if equippedShield}}
<li class="item flexrow list-item" data-attr-key="class">
<img class="sheet-competence-img" src="{{equippedShield.img}}" />
<span class="ability-label " name="equippedShield">
<h4 class="ability-text-white ability-margin"><a class="roll-shield-die ability-margin">{{equippedShield.name}}</a></h4>
</span>
</li>
{{/if}}
<li class="item flexrow list-item" data-attr-key="class">
<img class="sheet-competence-img" src="systems/fvtt-crucible-rpg/images/icons/feats/Marksman (Ballistic).webp" />
<span class="ability-label " name="rollTarget">
<h4 class="ability-text-white ability-margin"><a class="roll-target-die ability-margin">Target Roll</a></h4>
</span>
</li>
</ul> </ul>
</div> </div>
<div class="ability-item status-block">
{{> systems/fvtt-crucible-rpg/templates/partial-actor-status.html}}
</div> </div>
</div> </div>
</div> </div>
</div>
</div> </div>
</header> </header>
{{!-- Sheet Tab Navigation --}} {{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary"> <nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="details">Details</a> <a class="item" data-tab="main">{{localize "WH.ui.main"}}</a>
<a class="item" data-tab="biodata">Biography</a> <a class="item" data-tab="combat">{{localize "WH.ui.combat"}}</a>
<a class="item" data-tab="skill">{{localize "WH.ui.skillstab"}}</a>
<a class="item" data-tab="power">{{localize "WH.ui.powers"}}</a>
<a class="item" data-tab="equipment">{{localize "WH.ui.equipment"}}</a>
<a class="item" data-tab="biodata">{{localize "WH.ui.biography"}}</a>
</nav> </nav>
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
{{!-- Skills Tab --}} {{!-- Skills Tab --}}
<div class="tab skills" data-group="primary" data-tab="details"> <div class="tab main" data-group="primary" data-tab="main">
<ul class="stat-list alternate-list item-list"> <div class="flexrow">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header"> <div class="ability-item">
<h3><label class="items-title-text">Skills</label></h3> <ul>
</span> {{#each system.attributes as |attr key|}}
<span class="item-field-label-short"> {{#if (not attr.isheader)}}
<label class="short-label">Ability</label> {{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-vlong"}}
</span> {{/if}}
<span class="item-field-label-short">
<label class="short-label">Dice</label>
</span>
<span class="item-field-label-long">
<label class="short-label">Background</label>
</span>
</li>
{{#each skills as |skill key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label"><a class="roll-skill">{{skill.name}}</a></span>
<span class="item-field-label-short">{{upper skill.system.ability}}</span>
<span class="item-field-label-short">{{skill.system.skilldice}}</span>
<span class="item-field-label-long">&nbsp;-&nbsp;</span>
<div class="item-filler">&nbsp;</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}} {{/each}}
</ul> </ul>
<div>
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long"> <span class="item-name-label-header-long">
<h3><label class="items-title-text">Combat</label></h3> <h3><label class="items-title-text">{{localize "WH.ui.competency"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">Ability</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">Range</label>
</span> </span>
</li> </li>
{{#each equippedWeapons as |weapon key|}} {{#each competency.weapons as |flag key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}"> {{#if flag}}
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
src="{{weapon.img}}" /></a> <span class="item-name-label-long">{{localize "WH.ui.weapons"}} {{key}}</span>
<span class="item-name-label-long"><a class ="roll-weapon">{{weapon.name}}</a></span>
<span class="item-field-label-short">{{weapon.system.ability}}</span>
<span class="item-field-label-medium">{{perk.system.range}}</span>
<div class="item-filler">&nbsp;</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> </li>
{{/if}}
{{/each}}
{{#each competency.shields as |flag key|}}
{{#if flag}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<span class="item-name-label-long">{{localize "WH.ui.shields"}} {{key}}</span>
</li>
{{/if}}
{{/each}}
{{#each competency.armors as |flag key|}}
{{#if flag}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<span class="item-name-label-long">{{localize "WH.ui.armors"}} {{key}}</span>
</li>
{{/if}}
{{/each}} {{/each}}
</ul> </ul>
</div>
</div>
<div class="ability-item">
<ul>
<li class="item flexrow list-item item-stat-roll" data-attr-key="{{key}}">
<span class="item-field-label-vlong" name="{{key}}">
<h4 class="item-field-label-vlong">
{{localize "WH.ui.xphp"}}
</h4>
</span>
<span class="item-field-label-long" >{{hpprogression}}</span>
</li>
{{#each system.secondary as |second key|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=second key=key path="secondary" fieldClass="item-field-label-vlong"}}
{{/each}}
</ul>
<div>
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long"> <span class="item-name-label-header-long">
<h3><label class="items-title-text">Monster Powers</label></h3> <h3><label class="items-title-text">{{localize "WH.ui.languages"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">Feature Die?</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">SL?</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">SL</label>
</span> </span>
</li> </li>
{{#each feats as |feat key|}} {{#each languages as |language key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{feat._id}}"> <li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{feat.img}}" /></a> src="{{language.img}}" /></a>
<span class="item-name-label-long">{{feat.name}}</span> <span class="item-name-label-long">{{language.name}}</span>
<span class="item-field-label-medium">{{upperFirst feat.system.isfeatdie}}</span>
<span class="item-field-label-medium">{{upperFirst feat.system.issl}}</span>
<span class="item-field-label-medium">{{feat.system.sl}}</span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
@ -185,150 +160,322 @@
</li> </li>
{{/each}} {{/each}}
</ul> </ul>
</div>
</div>
</div>
</div>
{{!-- Combat Tab --}}
<div class="tab combat" data-group="primary" data-tab="combat">
<div class="flexcol">
<div>
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long"> <span class="item-name-label-header-long">
<h3><label class="items-title-text">Conditions</label></h3> <h3><label class="items-title-text">{{localize "WH.ui.weapons"}}</label></h3>
</span> </span>
</li> <span class="item-field-label-medium">
{{#each conditions as |condition key|}} <label class="short-label">{{localize "WH.ui.Type"}}</label>
<li class="item flexrow list-item list-item-shadow" data-item-id="{{condition._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{condition.img}}" /></a>
<span class="item-name-label-long">{{condition.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-filler">&nbsp;</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>
<span class="item-field-label-short"> <span class="item-field-label-medium">
<label class="short-label">Attack</label> <label class="short-label">{{localize "WH.ui.Damage"}}</label>
</span> </span>
<span class="item-field-label-short">
<label class="short-label">Damage</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> </li>
{{#each weapons as |weapon key|}} {{#each weapons as |weapon key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}"> <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" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{weapon.img}}" /></a> src="{{weapon.img}}" /></a>
<span class="item-name-label">{{weapon.name}}</span> <span class="item-name-label-long"><a class="roll-weapon"><i class="fa-solid fa-dice-d20"></i>{{weapon.name}}</a></span>
<span class="item-field-label-short"><label>{{upper weapon.system.ability}}</label></span>
<span class="item-field-label-short"><label>{{upper weapon.system.damage}}</label></span> <span class="item-field-label-medium">{{weapon.system.weapontype}}</span>
{{#if (eq system.weapontype "special")}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.system.damageformula}}</a></span>
{{else}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula}}</a></span>
{{/if}}
{{#if (eq system.weapontype "polearm")}}
<span class="item-field-label-medium"><a class="roll-damage-2hands"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula2Hands}}</a></span>
{{/if}}
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <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> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}
</ul> </ul>
</div>
<ul class="item-list alternate-list"> <div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header"> <span class="item-name-label-header-long">
<h3><label class="items-title-text">Armors</label></h3> <h3><label class="items-title-text">{{localize "WH.ui.shields"}}</label></h3>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">Type</label> <label class="short-label">{{localize "WH.ui.Type"}}</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-medium">
<label class="short-label">Absorption</label> <label class="short-label">{{localize "WH.ui.parrybonus"}}</label>
</span> </span>
<div class="item-filler">&nbsp;</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">{{upper armor.system.armortype}}</span>
<span class="item-field-label-short">{{armor.system.absorprionroll}}</span>
<div class="item-filler">&nbsp;</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">&nbsp;</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> </li>
{{#each shields as |shield key|}} {{#each shields as |shield key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{shield._id}}"> <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" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{shield.img}}" /></a> src="{{shield.img}}" /></a>
<span class="item-name-label">{{shield.name}}</span> <span class="item-name-label-long">{{shield.name}}</span>
<span class="item-field-label-short">{{shield.system.levelDice}}</span>
<span class="item-field-label-short">{{shield.system.shieldtype}}</span>
<span class="item-field-label-medium">{{shield.system.parrybonus}}</span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <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> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
{{/each}} {{/each}}
</ul> </ul>
</div>
<ul class="item-list alternate-list"> <div>
<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">{{localize "WH.ui.armors"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.damagereduction"}}</label>
</span>
</li>
{{#each armors as |armor key|}}
<li class="item flexrow list-item 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-long">{{armor.name}}</span>
<span class="item-field-label-short">{{armor.system.armortype}}</span>
<span class="item-field-label-medium">{{armor.system.damagereduction}}</span>
<div class="item-filler">&nbsp;</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>
</div>
{{!-- Skills Tab --}}
<div class="tab skill" data-group="primary" data-tab="skill">
<div class="flexcol">
<div>
<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">{{localize "WH.ui.classSkills"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.currentuse"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxuse"}}</label>
</span>
</li>
{{#each classSkills as |skill key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label-long">{{skill.name}}</a></span>
{{#if skill.system.unlimited}}
<span class="item-field-label-medium">N/A</span>
<span class="item-field-label-medium">N/A</span>
{{else}}
<span class="item-field-label-medium">{{skill.system.currentuse}}</span>
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
{{/if}}
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.skills"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.currentuse"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxuse"}}</label>
</span>
</li>
{{#each skills as |skill key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{skill.img}}" /></a>
<span class="item-name-label-long">{{skill.name}}</span>
{{#if skill.system.unlimited}}
<span class="item-field-label-medium">N/A</span>
<span class="item-field-label-medium">N/A</span>
{{else}}
<span class="item-field-label-medium">{{skill.system.currentuse}}</span>
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
{{/if}}
<div class="item-filler">&nbsp;</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>
<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">{{localize "WH.ui.conditions"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.effect"}}</label>
</span>
</li>
{{#each conditions as |cond key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{cond._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{cond.img}}" /></a>
<span class="item-name-label-long">{{cond.name}}</span>
<span class="item-field-label-medium">{{cond.system.shortdescription}}</span>
<div class="item-filler">&nbsp;</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>
</div>
{{!-- Powers Tab --}}
<div class="tab power" data-group="primary" data-tab="power">
<div class="flexcol">
{{#each powers as |school schoolKey|}}
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header"> <span class="item-name-label-header">
<h3><label class="items-title-text">Equipment</label></h3> <h3><label class="items-title-text">{{schoolKey}}</label></h3>
</span> </span>
<span class="item-field-label-long"> </li>
<label class="short-label">Quantity</label>
{{#each school as |power key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{power._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{power.img}}" /></a>
<span class="item-name-label">
<a class="power-roll"><i class="fa-solid fa-dice-d20"></i>{{power.name}}</a>
</span>
<span class="item-name-label">
<a class="power-roll">{{power.system.level}}</a>
</span> </span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="equipment" title="Create Item"><i class="fas fa-plus"></i></a> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/each}}
</div>
</div> </div>
</li> {{!-- Equipement Tab --}}
{{#each containersTree as |equip key|}} <div class="tab equipment" data-group="primary" data-tab="equipment">
{{> systems/fvtt-crucible-rpg/templates/partial-actor-equipment.html equip=equip level=1}}
<ul class="item-list list-item-shadow2 list-item-margin1"> {{#each slotEquipments as |slot slotKey|}}
{{#each equip.data.contents as |subgear key|}} <ul class="item-list alternate-list">
{{> systems/fvtt-crucible-rpg/templates/partial-actor-equipment.html equip=subgear level=2}} <li class="item flexrow list-item items-title-bg {{#if (gt slot.slotUsed slot.nbslots)}}items-title-bg-red{{/if}}">
{{/each}} <span class="item-name-label-header">
</ul> <h3><label class="items-title-text">{{localize slot.label}}</label></h3>
{{/each}} </span>
</ul> <span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-long">
<label class="short-label">{{localize "WH.ui.Qty"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxslots"}}: {{slot.nbslots}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.slotsused"}}: {{slot.slotUsed}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="{{itemtype}}" title="Create Item"><i class="fas fa-plus"></i></a>
</div> </div>
</li>
{{#each slot.content as |item itemKey|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{item._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{item.img}}" /></a>
<span class="item-name-label">{{item.name}}</span>
<span class="item-field-label-medium">
<label class="short-label">{{upperFirst item.type}}</label>
</span>
<span class="item-field-label-long"><label>
{{item.system.quantity}}
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
</label>
</span>
<div class="item-filler">&nbsp;</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}}
<hr>
</div> </div>
@ -338,32 +485,29 @@
<div> <div>
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="item flexrow"> <li class="item flexrow">
<label class="generic-label">Origin</label> <label class="generic-label">{{localize "WH.ui.origin"}}</label>
<input type="text" class="" name="system.biodata.origin" value="{{data.biodata.origin}}" <input type="text" class="" name="system.biodata.origin" value="{{data.biodata.origin}}"
data-dtype="String" /> data-dtype="String" />
</li> </li>
<li class="item flexrow"> <li class="item flexrow">
<label class="generic-label">Age</label> <label class="generic-label">{{localize "WH.ui.age"}}</label>
<input type="text" class="" name="system.biodata.age" value="{{data.biodata.age}}" data-dtype="String" /> <input type="text" class="" name="system.biodata.age" value="{{data.biodata.age}}" data-dtype="String" />
</li> </li>
<li class="item flexrow"> <li class="item flexrow">
<label class="generic-label">Height</label> <label class="generic-label">{{localize "WH.ui.height"}}</label>
<input type="text" class="" name="system.biodata.height" value="{{data.biodata.height}}" data-dtype="String" /> <input type="text" class="" name="system.biodata.height" value="{{data.biodata.height}}" data-dtype="String" />
</li> </li>
<li class="item flexrow"> <li class="flexrow item">
<label class="generic-label">Eyes</label> <label class="generic-label">{{localize "WH.ui.preferredhand"}}</label>
<input type="text" class="" name="system.biodata.eyes" value="{{data.biodata.eyes}}" data-dtype="String" /> <input type="text" class="" name="system.biodata.preferredhand" value="{{data.biodata.preferredhand}}"
</li> data-dtype="String" />
<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" />
</li> </li>
</ul> </ul>
</div> </div>
<div> <div>
<ul> <ul>
<li class="flexrow item"> <li class="flexrow item">
<label class="generic-label">Size</label> <label class="generic-label">{{localize "WH.ui.size"}}</label>
<select class="competence-base flexrow" type="text" name="system.biodata.size" value="{{data.biodata.size}}" data-dtype="Number"> <select class="competence-base flexrow" type="text" name="system.biodata.size" value="{{data.biodata.size}}" data-dtype="Number">
{{#select data.biodata.size}} {{#select data.biodata.size}}
<option value="1">Tiny</option> <option value="1">Tiny</option>
@ -376,18 +520,16 @@
</select> </select>
</li> </li>
<li class="flexrow item"> <li class="flexrow item">
<label class="generic-label">Sex</label> <label class="generic-label">{{localize "WH.ui.gender"}}</label>
<input type="text" class="" name="system.biodata.sex" value="{{data.biodata.sex}}" data-dtype="String" /> <input type="text" class="" name="system.biodata.sex" value="{{data.biodata.sex}}" data-dtype="String" />
</li> </li>
<li class="flexrow item"> <li class="item flexrow">
<label class="generic-label">Preferred Hand</label> <label class="generic-label">{{localize "WH.ui.eyes"}}</label>
<input type="text" class="" name="system.biodata.preferredhand" value="{{data.biodata.preferredhand}}" <input type="text" class="" name="system.biodata.eyes" value="{{data.biodata.eyes}}" data-dtype="String" />
data-dtype="String" />
</li> </li>
<li class="flexrow item" data-item-id="{{race._id}}"> <li class="item flexrow">
<label class="generic-label">Race</label> <label class="generic-label">{{localize "WH.ui.hair"}}</label>
<a class="item-edit"><img class="stat-icon" src="{{race.img}}"></a> <input type="text" class="" name="system.biodata.hair" value="{{data.biodata.hair}}" data-dtype="String" />
<input type="text" class="" name="system.biodata.racename" value="{{data.biodata.racename}}" data-dtype="String" />
</li> </li>
</ul> </ul>
</div> </div>
@ -395,15 +537,15 @@
<hr> <hr>
<h3>Background : </h3> <h3>{{localize "WH.ui.background"}} : </h3>
<div class="form-group editor"> <div class="form-group editor">
{{editor data.biodata.description target="system.biodata.description" button=true owner=owner {{editor description target="system.biodata.description" button=true owner=owner
editable=editable}} editable=editable}}
</div> </div>
<hr> <hr>
<h3>Notes : </h3> <h3>{{localize "WH.ui.notes"}} : </h3>
<div class="form-group editor"> <div class="form-group editor">
{{editor data.biodata.notes target="system.biodata.notes" button=true owner=owner editable=editable}} {{editor notes target="system.biodata.notes" button=true owner=owner editable=editable}}
</div> </div>
<hr> <hr>
</article> </article>

View File

@ -31,14 +31,20 @@
{{#if hasmax}} {{#if hasmax}}
<input type="text" class="item-field-label-short " name="system.{{path}}.{{key}}.max" value="{{stat.max}}" data-dtype="Number"/> <input type="text" class="item-field-label-short " name="system.{{path}}.{{key}}.max" value="{{stat.max}}" data-dtype="Number"/>
{{/if}} {{/if}}
{{#if hasuse}}
<input type="text" class="item-field-label-short " name="system.{{path}}.{{key}}.nbuse" value="{{stat.nbuse}}" data-dtype="Number"/>
<label class="item-field-label-2rem">&nbsp;/&nbsp;</label>
<input type="text" class="item-field-label-short " name="system.{{path}}.{{key}}.maxuse" value="{{stat.maxuse}}" data-dtype="Number"/>
{{/if}}
{{/if}} {{/if}}
{{#if hassave}} {{#if hassave}}
<span class="item-field-label-short" name="{{key}}"> <span class="item-field-label-medium" name="{{key}}">
<h4 class="item-field-label-short"> <h4 class="item-field-label-medium">
<i class="fa-solid fa-dice-d20"></i> <i class="fa-solid fa-dice-d20"></i>
<a class="roll-this stat-margin" data-is-save="yes" data-type="{{path}}" data-key="{{key}}"> <a class="roll-save stat-margin" data-type="{{path}}" data-key="{{key}}">
{{localize "WH.ui.save"}} {{localize (concat "WH.ui.save" key)}}
</a> </a>
</h4> </h4>
</span> </span>

View File

@ -0,0 +1,53 @@
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg {{#if (gt slot.slotUsed slot.nbslots)}}items-title-bg-red{{/if}}">
<span class="item-name-label-header">
<h3><label class="items-title-text">{{localize slot.label}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-long">
<label class="short-label">{{localize "WH.ui.Qty"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxslots"}}: {{slot.nbslots}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.slotsused"}}: {{slot.slotUsed}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="{{itemtype}}" data-slot="{{slotKey}}" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each slot.content as |item itemKey|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{item._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{item.img}}" /></a>
<span class="item-name-label">{{item.name}}</span>
<span class="item-field-label-medium">
<label class="short-label">{{upperFirst item.type}}</label>
</span>
<span class="item-field-label-long"><label>
{{item.system.quantity}}
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
</label>
</span>
<span class="item-field-label-medium">
{{#if item.system.isidentified}}
<label class="short-label">{{localize (concat "WH.conf." item.system.isidentified)}}</label>
{{else}}
<label class="short-label">{{localize (concat "WH.conf." item.system.notapplicable)}}</label>
{{/if}}
</span>
<div class="item-filler">&nbsp;</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>

View File

@ -1,7 +1,7 @@
<li class="flexrow"><label class="item-field-label-medium ">Slots used</label> <li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.slotsused"}}</label>
<input type="text" class="item-field-label-medium " name="system.slotused" value="{{system.slotused}}" data-dtype="Number"/> <input type="text" class="item-field-label-medium " name="system.slotused" value="{{system.slotused}}" data-dtype="Number"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-medium ">Slot location</label> <li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.slotlocation"}}</label>
<select class="item-field-label-long " type="text" name="system.slotlocation" value="{{system.slotlocation}}" data-dtype="String"> <select class="item-field-label-long " type="text" name="system.slotlocation" value="{{system.slotlocation}}" data-dtype="String">
{{#select system.slotlocation}} {{#select system.slotlocation}}
{{#each config.slotNames as |type key|}} {{#each config.slotNames as |type key|}}
@ -10,9 +10,35 @@
{{/select}} {{/select}}
</select> </select>
</li> </li>
<li class="flexrow"><label class="item-field-label-medium ">Quantity</label>
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.identified"}}</label>
<select class="item-field-label-long " type="text" name="system.isidentified" value="{{system.isidentified}}" data-dtype="String">
{{#select system.isidentified}}
{{#each config.identifiedState as |type key|}}
<option value="{{key}}">{{localize type}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.magiccharge"}}</label>
<select class="item-field-label-long " type="text" name="system.magiccharge" value="{{system.magiccharge}}" data-dtype="String">
{{#select system.magiccharge}}
{{#each config.magicCharge as |type key|}}
<option value="{{key}}">{{localize type}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.chargevalue"}}</label>
<input type="text" class="item-field-label-medium " name="system.chargevalue" value="{{system.chargevalue}}" data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.quantity"}}</label>
<input type="text" class="item-field-label-medium " name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/> <input type="text" class="item-field-label-medium " name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-medium">Cost</label>
<li class="flexrow"><label class="item-field-label-medium">{{localize "WH.ui.cost"}}</label>
<input type="text" class="item-field-label-medium " name="system.cost" value="{{system.cost}}" data-dtype="Number"/> <input type="text" class="item-field-label-medium " name="system.cost" value="{{system.cost}}" data-dtype="Number"/>
</li> </li>

View File

@ -1,8 +1,7 @@
<div class="tab description" data-group="primary" data-tab="description"> <div class="tab details" data-group="primary" data-tab="description">
<div>
<label class="generic-label">Description</label> <label class="generic-label">Description</label>
<div class="medium-editor item-text-long-line"> <div class="editor item-text-long-line">
{{editor description target="system.description" button=true owner=owner editable=editable}} {{editor description target="system.description" button=true owner=owner editable=editable}}
</div> </div>
</div>
</div> </div>

View File

@ -1,5 +1,5 @@
{{!-- Sheet Tab Navigation --}} {{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary"> <nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="description">Description</a> <a class="item" data-tab="description">{{localize "WH.ui.description"}}</a>
<a class="item" data-tab="details">Details</a> <a class="item" data-tab="details">{{localize "WH.ui.details"}}</a>
</nav> </nav>

View File

@ -1,7 +0,0 @@
<option value="agi">Agility</option>
<option value="str">Strength</option>
<option value="dex">Dexterity</option>
<option value="con">Constitution</option>
<option value="int">Intelligence</option>
<option value="wit">Wits</option>
<option value="cha">Charisma</option>

View File

@ -1,13 +0,0 @@
<option value="camping">Camping & Survival</option>
<option value="communication">Communication & Information</option>
<option value="equestrian">Equestrian</option>
<option value="spy">Law/Security/Spy/Thief</option>
<option value="medical">Medical</option>
<option value="tools">Tools</option>
<option value="weaponaccess">Weapons accessories</option>
<option value="wizard">Wizards materials</option>
<option value="mount">Mounts</option>
<option value="vehicle">Vehicles</option>
<option value="clothing">Clothing</option>
<option value="ammo">Ammo</option>
<option value="misc">Misc</option>

View File

@ -1,14 +0,0 @@
{{#if notapplicable}}
<option value="notapplicable">Not applicable</option>
{{/if}}
<option value="0">0</option>
<option value="1">d4</option>
<option value="2">d6</option>
<option value="3">d8</option>
<option value="4">d10</option>
<option value="5">d12</option>
<option value="6">d12 d4</option>
<option value="7">d12 d6</option>
<option value="8">d12 d8</option>
<option value="9">d12 d10</option>
<option value="10">d12 d12</option>

View File

@ -1,15 +0,0 @@
{{#if notapplicable}}
<option value="notapplicable">Not applicable</option>
{{/if}}
<option value="touch">Self Only</option>
<option value="touchself">Touch/Self</option>
<option value="tz">Threat Zone</option>
<option value="close">Close</option>
<option value="medium">Medium</option>
<option value="long">Long</option>
<option value="extreme">Extreme</option>
<option value="sight">Line of Sight</option>
<option value="tz_close">TZ/Close</option>
<option value="close_medium">Close/Medium</option>
<option value="medium_long">Medium/Long</option>
<option value="long_extreme">Long/Extreme</option>

View File

@ -1,4 +0,0 @@
<ul>
</ul>

100
templates/party-sheet.html Normal file
View File

@ -0,0 +1,100 @@
<form class="{{cssClass}}" autocomplete="off">
{{!-- 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">
</div>
</div>
</div>
</header>
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="equipment">{{localize "WH.ui.equipment"}}</a>
<a class="item" data-tab="biodata">{{localize "WH.ui.biography"}}</a>
</nav>
{{!-- Sheet Body --}}
<section class="sheet-body">
{{!-- Equipement Tab --}}
<div class="tab equipment" data-group="primary" data-tab="equipment">
{{#each partySlots as |slot slotKey|}}
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg {{#if (gt slot.slotUsed slot.nbslots)}}items-title-bg-red{{/if}}">
<span class="item-name-label-header">
<h3><label class="items-title-text">{{localize slot.label}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-long">
<label class="short-label">{{localize "WH.ui.Qty"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxslots"}}: {{slot.nbslots}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.slotsused"}}: {{slot.slotUsed}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="{{itemtype}}" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each slot.content as |item itemKey|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{item._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{item.img}}" /></a>
<span class="item-name-label">{{item.name}}</span>
<span class="item-field-label-medium">
<label class="short-label">{{upperFirst item.type}}</label>
</span>
<span class="item-field-label-long"><label>
{{item.system.quantity}}
(<a class="quantity-minus plus-minus-button"> -</a>/<a class="quantity-plus plus-minus-button">+</a>)
</label>
</span>
<div class="item-filler">&nbsp;</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}}
<hr>
</div>
{{!-- Biography Tab --}}
<div class="tab biodata" data-group="primary" data-tab="biodata">
<hr>
<h3>{{localize "WH.ui.background"}} : </h3>
<div class="form-group editor">
{{editor description target="system.biodata.description" button=true owner=owner
editable=editable}}
</div>
<hr>
<h3>{{localize "WH.ui.notes"}} : </h3>
<div class="form-group editor">
{{editor notes target="system.biodata.notes" button=true owner=owner editable=editable}}
</div>
<hr>
</article>
</div>
</section>
</form>

View File

@ -4,5 +4,5 @@
<img class="chat-img" src="{{img}}" title="{{name}}" /> <img class="chat-img" src="{{img}}" title="{{name}}" />
{{/if}} {{/if}}
<h4><b>Description : </b></h4> <h4><b>Description : </b></h4>
<p class="card-content">{{{data.description}}}</p> <p class="card-content">{{{system.description}}}</p>
</div> </div>

View File

@ -10,20 +10,41 @@
{{#if weapon}} {{#if weapon}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-long">Weapon : </span> <span class="item-field-label-vlong">{{localize "WH.ui.weapon"}} : </span>
<span class="item-field-label-medium">{{weapon.name}}</span> <span class="item-field-label-vlong">{{weapon.name}}</span>
{{#if (eq mode "damage")}}
<div class="flexrow">
<span class="roll-dialog-long">Damage : </span>
<span class="item-field-label-medium">{{weapon.damageFormula}}</span>
</div> </div>
{{#if (eq mode "damage")}}
{{#if (eq weapon.system.weapontype "special")}}
<div class="flexrow">
<span class="item-field-label-vlong">{{localize "WH.ui.damage"}} : </span>
<span class="item-field-label-vlong">{{weapon.system.damageformula}}</span>
</div>
{{else}}
<div class="flexrow">
<span class="item-field-label-vlong">{{localize "WH.ui.damage"}} : </span>
{{#if is2hands}}
<span class="item-field-label-vlong">{{weapon.damageFormula2Hands}}</span>
{{else}}
<span class="item-field-label-vlong">{{weapon.damageFormula}}</span>
{{/if}} {{/if}}
</div> </div>
{{/if}} {{/if}}
{{else}}
{{#if (eq weapon.system.weapontype "special")}}
<div class="flexrow">
<span class="item-field-label-vlong">{{localize "WH.chat.rollformula"}} : </span>
<span class="item-field-label-vlong">{{weapon.system.rollformula}}</span>
</div>
{{/if}}
{{/if}}
{{/if}}
{{#if stat}} {{#if stat}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-long">{{localize stat.label}}</span> <span class="item-field-label-vlong">{{localize stat.label}}</span>
{{#if (eq mode "save")}} {{#if (eq mode "save")}}
<span class="item-field-label-medium">{{stat.save}}</span> <span class="item-field-label-medium">{{stat.save}}</span>
{{else}} {{else}}
@ -33,7 +54,7 @@
{{#if stat.istxc}} {{#if stat.istxc}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-long">Multiple weapons malus ({{mWeaponMalus}})? </span> <span class="item-field-label-vlong">{{localize "WH.chat.mweaponmalus"}} ({{mWeaponMalus}})? </span>
<span class="item-field-label-medium"><input type="checkbox" id="usemWeaponMalus" name="usemWeaponMalus" {{checked usemWeaponMalus}}/></span> <span class="item-field-label-medium"><input type="checkbox" id="usemWeaponMalus" name="usemWeaponMalus" {{checked usemWeaponMalus}}/></span>
{{/if}} {{/if}}
</div> </div>
@ -41,39 +62,31 @@
{{#if shield}} {{#if shield}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-long">Use shield ? : </span> <span class="item-field-label-vlong">{{localize "WH.chat.useshield"}} : </span>
<span class="roll-dialog-label"> <span class="roll-dialog-label">
<input type="checkbox" id="useshield" name="useshield" {{checked useshield}}/> <input type="checkbox" id="useshield" name="useshield" {{checked useshield}}/>
</span> </span>
</div> </div>
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-long">{{shield.name}} : </span> <span class="item-field-label-vlong">{{shield.name}} : </span>
<span class="roll-dialog-label">{{shield.data.shielddie}}</span> <span class="item-field-label-medium">{{shield.data.shielddie}}</span>
</div> </div>
{{/if}} {{/if}}
{{#if power}} {{#if power}}
<div class="flexrow"> <div class="flexrow">
<span class="item-field-label-long">Power : </span> <span class="item-field-label-vlong">{{localize "WH.chat.power"}} : </span>
<span class="item-field-label-medium">{{power.name}}</span> <span class="item-field-label-medium">{{power.name}}</span>
</div> </div>
<div class="flexrow"> <div class="flexrow">
<span class="item-field-label-long">Power Level : </span> <span class="item-field-label-vlong">{{localize "WH.chat.powerlevel"}} : </span>
<select class="item-field-label-medium" type="text" id="powerLevel" value="{{powerLevel}}"> <span class="item-field-label-medium">{{power.system.level}}</span>
{{#select powerLevel}}
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4_1">4 - 1</option>
<option value="4_2">4 - 2</option>
{{/select}}
</select>
</div> </div>
{{/if}} {{/if}}
{{#if hasBM}} {{#if hasBM}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-long">Bonus/Malus : </span> <span class="item-field-label-vlong">Bonus/Malus : </span>
<select class="item-field-label-medium" type="text" id="bonusMalus" value="{{bonusMalus}}"> <select class="item-field-label-medium" type="text" id="bonusMalus" value="{{bonusMalus}}">
{{#select bonusMalus}} {{#select bonusMalus}}
<option value="-6">-6</option> <option value="-6">-6</option>