Compare commits
26 Commits
fvtt-warhe
...
master
Author | SHA1 | Date | |
---|---|---|---|
c0b67a86dd | |||
ae18d23630 | |||
80ec2e4e66 | |||
b5a7e79b17 | |||
538addd2c7 | |||
9d8bd75348 | |||
c97a39fe47 | |||
0be7e8a3b5 | |||
a032f177fa | |||
4f2cef924b | |||
6148f73888 | |||
2e4b018834 | |||
fb3d0dfd7f | |||
e573f5b382 | |||
ed494e69b9 | |||
2813e5a694 | |||
09974cd323 | |||
6b8710b94c | |||
6b7d943649 | |||
c2a7fbb4b5 | |||
36c9945886 | |||
bfad3d1e5f | |||
7827e07e1c | |||
3a8ad674bd | |||
c8f7c7c1e5 | |||
d922d77736 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.history/
|
105
lang/en.json
105
lang/en.json
@ -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.long": "Long",
|
||||
"WH.conf.twohanded": "Two-Handed",
|
||||
@ -29,6 +54,23 @@
|
||||
"WH.conf.beltpouch1": "Beltpouch 1",
|
||||
"WH.conf.beltpouch2": "Beltpouch 2",
|
||||
"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.notes": "Notes",
|
||||
@ -79,6 +121,7 @@
|
||||
"WH.ui.classSkills": "Class Skills",
|
||||
"WH.ui.skills": "Skills based on level",
|
||||
"WH.ui.isclassskill": "Class skill ?",
|
||||
"WH.ui.israceskill": "Race skill ?",
|
||||
"WH.ui.unlimited": "Unlimited use ?",
|
||||
"WH.ui.currentuse": "Current use",
|
||||
"WH.ui.maxuse": "Max use",
|
||||
@ -119,7 +162,66 @@
|
||||
"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",
|
||||
@ -131,5 +233,6 @@
|
||||
"WH.chat.power": "Power",
|
||||
"WH.chat.powerlevel": "Power Level",
|
||||
|
||||
"WH.notif.skillmaxuse": "Maximum skill usage reach - Use is not allowed"
|
||||
"WH.notif.skillmaxuse": "Maximum skill usage reach - Use is not allowed",
|
||||
"WH.notif.toomanyuses": "Maximum use reach - Roll is not allowed"
|
||||
}
|
163
lang/it.json
163
lang/it.json
@ -1,24 +1,49 @@
|
||||
{
|
||||
"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.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": "Armi in asta",
|
||||
"WH.conf.special": "Speciali",
|
||||
"WH.conf.polearm": "In asta",
|
||||
"WH.conf.special": "Speciale",
|
||||
|
||||
"WH.conf.head": "Testa",
|
||||
"WH.conf.cloak": "Mantello",
|
||||
"WH.conf.weapon1": "Mano primaria",
|
||||
"WH.conf.weapon2": "Mano secondaria",
|
||||
"WH.conf.weapon1": "Arma 1",
|
||||
"WH.conf.weapon2": "Arma 2",
|
||||
"WH.conf.gloves": "Guanti",
|
||||
"WH.conf.dress": "Abito",
|
||||
"WH.conf.dress": "Vestito",
|
||||
"WH.conf.boots": "Stivali",
|
||||
"WH.conf.ring": "Anelli",
|
||||
"WH.conf.belt": "Cintura",
|
||||
@ -29,13 +54,30 @@
|
||||
"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": "Attributi",
|
||||
"WH.ui.attrbonus": "Attributo",
|
||||
"WH.ui.weapons": "Armi",
|
||||
"WH.ui.armors": "Armature",
|
||||
"WH.ui.shields": "Scudi",
|
||||
@ -44,12 +86,15 @@
|
||||
"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.Throw2HitM": "Txc (corpo a corpo)",
|
||||
"WH.ui.Throw2HitR": "Txc (distanza)",
|
||||
"WH.ui.Mana": "Mana",
|
||||
"WH.ui.Initiative": "Iniziativa",
|
||||
"WH.ui.Movement": "Movimento (Terra)",
|
||||
@ -75,7 +120,8 @@
|
||||
"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.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",
|
||||
@ -87,41 +133,104 @@
|
||||
|
||||
"WH.ui.main": "Principale",
|
||||
"WH.ui.combat": "Combattimento",
|
||||
"WH.ui.skillstab": "Abilitá ed effetti",
|
||||
"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": "Religione",
|
||||
"WH.ui.religion": "Fede",
|
||||
"WH.ui.origin": "Origine",
|
||||
"WH.ui.age": "Etá",
|
||||
"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": "Sesso",
|
||||
"WH.ui.gender": "Genere",
|
||||
"WH.ui.background": "Storia",
|
||||
"WH.ui.type": "Tipo",
|
||||
"WH.ui.description": "Descrizione",
|
||||
"WH.ui.rawroll": "Formula TXC (ex: 1d20+@statistics.str.value)",
|
||||
"WH.ui.rawdamage": "Formula Danni (ex: 1d6+(@statistics.str.value/2))",
|
||||
"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": "Slot",
|
||||
"WH.ui.quantity": "Quantitá",
|
||||
"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": "Tiro salvezza",
|
||||
"WH.chat.mweaponmalus": "Malus nell uso di due armi",
|
||||
"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": "Hai parato con successo",
|
||||
"WH.chat.paryfailed": "Hai fallito azione di parata",
|
||||
"WH.chat.rollformula": "Formula per il tiro di dado",
|
||||
"WH.chat.useshield":"Usa lo scudo?",
|
||||
"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.chat.powerlevel": "Livello di potere",
|
||||
|
||||
"WH.notif.skillmaxuse": "Usi massimi raggiunti",
|
||||
"WH.notif.toomanyuses": "Usi massimi raggiunti"
|
||||
}
|
@ -42,20 +42,27 @@ export class WarheroActorSheet extends ActorSheet {
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
system: objectData,
|
||||
limited: this.object.limited,
|
||||
compentencyItems:this.actor.getCompetencyItems( ),
|
||||
skills: this.actor.getNormalSkills( ),
|
||||
raceSkills: this.actor.getRaceSkills( ),
|
||||
classSkills: this.actor.getClassSkills( ),
|
||||
languages: this.actor.getLanguages( ),
|
||||
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
|
||||
conditions: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getConditions()) ),
|
||||
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
|
||||
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
|
||||
equippedWeapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getEquippedWeapons())),
|
||||
equippedArmors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getEquippedArmors())),
|
||||
equippedShields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getEquippedShields())),
|
||||
powers: this.actor.sortPowers(),
|
||||
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
|
||||
slotEquipments: this.actor.buildEquipmentsSlot(),
|
||||
allItems: this.actor.getAllItems(),
|
||||
subActors: duplicate(this.actor.getSubActors()),
|
||||
competency: this.actor.getCompetency(),
|
||||
race: duplicate(race),
|
||||
class: duplicate(this.actor.getClass()),
|
||||
mainClass: this.actor.getMainClass(),
|
||||
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}),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, {async: true}),
|
||||
@ -63,7 +70,16 @@ export class WarheroActorSheet extends ActorSheet {
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
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) {
|
||||
formData.hpprogression = game.system.warhero.config.progressionList[race.system.hpprogresion]
|
||||
}
|
||||
|
@ -123,6 +123,11 @@ export class WarheroActor extends Actor {
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getEquippedArmors() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'armor' && item.system.slotlocation == 'armor') || []);
|
||||
WarheroUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
getArmors() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'armor') || []);
|
||||
WarheroUtility.sortArrayObjectsByName(comp)
|
||||
@ -146,7 +151,17 @@ export class WarheroActor extends Actor {
|
||||
}
|
||||
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() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'shield') || []);
|
||||
WarheroUtility.sortArrayObjectsByName(comp)
|
||||
@ -158,9 +173,18 @@ export class WarheroActor extends Actor {
|
||||
return race[0] ?? [];
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getClass() {
|
||||
let classWH = this.items.filter(item => item.type == 'class')
|
||||
return classWH[0] ?? [];
|
||||
getMainClass() {
|
||||
let classWH = this.items.find(item => item.type == 'class' && !item.system.issecondary)
|
||||
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) {
|
||||
@ -173,22 +197,85 @@ export class WarheroActor extends Actor {
|
||||
}
|
||||
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() {
|
||||
let containers = {}
|
||||
for (let slotName in game.system.warhero.config.slotNames) {
|
||||
let slotDef = game.system.warhero.config.slotNames[slotName]
|
||||
containers[slotName] = duplicate(slotDef)
|
||||
containers[slotName].content = this.items.filter(it => (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
|
||||
slotUsed += item.system.slotused * q
|
||||
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
|
||||
}
|
||||
slotUsed = Math.ceil(slotUsed)
|
||||
containers[slotName].slotUsed = slotUsed
|
||||
}
|
||||
return containers
|
||||
}
|
||||
@ -211,9 +298,25 @@ export class WarheroActor extends Actor {
|
||||
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
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
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() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []);
|
||||
for (let weapon of comp) {
|
||||
@ -244,7 +347,12 @@ export class WarheroActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
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)
|
||||
return comp
|
||||
}
|
||||
@ -302,7 +410,10 @@ export class WarheroActor extends Actor {
|
||||
|
||||
/* ------------------------------------------- */
|
||||
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() {
|
||||
@ -402,17 +513,23 @@ export class WarheroActor extends Actor {
|
||||
}
|
||||
getCompetency() {
|
||||
let myRace = this.getRace()
|
||||
let myClass = this.getClass()
|
||||
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 (myClass.system) {
|
||||
this.updateCompetency(competency.weapons, myClass.system.weapons, game.system.warhero.config.weaponTypes)
|
||||
this.updateCompetency(competency.armors, myClass.system.armors, game.system.warhero.config.armorTypes)
|
||||
this.updateCompetency(competency.shields, myClass.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
|
||||
}
|
||||
@ -462,7 +579,7 @@ export class WarheroActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async getInitiativeScore(combatId, combatantId) {
|
||||
let roll = new Roll("1d20+"+this.system.attributes.ini.value).roll({async: false})
|
||||
let roll = new Roll("1d20+" + this.system.attributes.ini.value).roll({ async: false })
|
||||
await WarheroUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"))
|
||||
return roll.total
|
||||
}
|
||||
@ -555,7 +672,7 @@ export class WarheroActor extends Actor {
|
||||
return
|
||||
}
|
||||
newUse = Math.max(newUse, 0)
|
||||
this.updateEmbeddedDocuments('Item', [{ _id: skill.id, 'system.currentuse': newUse }])
|
||||
this.updateEmbeddedDocuments('Item', [{ _id: skill.id, 'system.currentuse': newUse }])
|
||||
}
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
@ -614,7 +731,7 @@ export class WarheroActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
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
|
||||
for (let armor of armors) {
|
||||
dr += armor.system.damagereduction
|
||||
@ -623,7 +740,7 @@ export class WarheroActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
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
|
||||
for (let shield of shields) {
|
||||
parry += shield.system.parrybonus
|
||||
@ -645,6 +762,14 @@ export class WarheroActor extends Actor {
|
||||
this.update({ 'system.attributes.mana': mana })
|
||||
return true
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
incrementUse(rollData) {
|
||||
let stat = duplicate(this.system[rollData.mode][rollData.statKey])
|
||||
stat.nbuse++
|
||||
this.update({ [`system.${rollData.mode}.${rollData.statKey}`]: stat })
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCommonRollData() {
|
||||
let rollData = WarheroUtility.getBasicRollData()
|
||||
@ -662,11 +787,15 @@ export class WarheroActor extends Actor {
|
||||
let stat = duplicate(this.system[rollType][rollKey])
|
||||
let rollData = this.getCommonRollData()
|
||||
rollData.mode = rollType
|
||||
rollData.statKey = rollKey
|
||||
rollData.stat = stat
|
||||
if (stat && stat.stat)
|
||||
{
|
||||
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)
|
||||
return
|
||||
|
@ -21,6 +21,10 @@ export const WARHERO_CONFIG = {
|
||||
medium: {parry: "3", label: "WH.conf.mediumshield"},
|
||||
tower: {parry: "5", label: "WH.conf.towershield"},
|
||||
},
|
||||
|
||||
partySlotNames : {
|
||||
storage: {nbslots: 2000, itemtype:"equipment", label: "WH.conf.partystorage"}
|
||||
},
|
||||
|
||||
slotNames : {
|
||||
head: {nbslots: 1, itemtype:"armor", label: "WH.conf.head"},
|
||||
@ -31,20 +35,77 @@ export const WARHERO_CONFIG = {
|
||||
ring: {nbslots: 10, itemtype:"equipment",label: "WH.conf.ring"},
|
||||
dress: {nbslots: 1, itemtype:"equipment",label: "WH.conf.dress"},
|
||||
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"},
|
||||
shield: {nbslots: 1, itemtype:"shield",label: "WH.conf.shield"},
|
||||
backpack: {nbslots: 12, itemtype:"equipment",label: "WH.conf.backpack"},
|
||||
beltpouch1: {nbslots: 4, itemtype:"equipment",label: "WH.conf.beltpouch1"},
|
||||
beltpouch2: {nbslots: 4, itemtype:"equipment", label: "WH.conf.beltpouch2"},
|
||||
beltpouch3: {nbslots: 4, itemtype:"equipment", label: "WH.conf.beltpouch3"},
|
||||
belt: {nbslots: 6, itemtype:"equipment", container: true, available: true, parent: undefined, label: "WH.conf.belt"},
|
||||
quiver: {nbslots: 20, itemtype:"equipment",container: true, available: true, parent: undefined, label: "WH.conf.quiver"},
|
||||
backpack: {nbslots: 12, itemtype:"equipment",container: true, available: true, parent: undefined, label: "WH.conf.backpack"},
|
||||
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: {
|
||||
"high": "High (+6HP/Lvl)",
|
||||
"medium": "Medium (+4HP/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"
|
||||
}
|
||||
|
||||
}
|
@ -11,6 +11,7 @@
|
||||
import { WarheroActor } from "./warhero-actor.js";
|
||||
import { WarheroItemSheet } from "./warhero-item-sheet.js";
|
||||
import { WarheroActorSheet } from "./warhero-actor-sheet.js";
|
||||
import { WarheroPartySheet } from "./warhero-party-sheet.js";
|
||||
import { WarheroNPCSheet } from "./warhero-npc-sheet.js";
|
||||
import { WarheroMonsterSheet } from "./warhero-monster-sheet.js";
|
||||
import { WarheroUtility } from "./warhero-utility.js";
|
||||
@ -56,7 +57,6 @@ Hooks.once("init", async function () {
|
||||
CONFIG.Combat.documentClass = WarheroCombat
|
||||
CONFIG.Actor.documentClass = WarheroActor
|
||||
CONFIG.Item.documentClass = WarheroItem
|
||||
//CONFIG.Token.objectClass = WarheroToken
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register sheet application classes
|
||||
@ -64,6 +64,7 @@ Hooks.once("init", async function () {
|
||||
Actors.registerSheet("fvtt-warhero", WarheroActorSheet, { types: ["character"], makeDefault: true });
|
||||
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.registerSheet("fvtt-warhero", WarheroItemSheet, { makeDefault: true });
|
||||
@ -79,28 +80,15 @@ Hooks.once("ready", function () {
|
||||
// User warning
|
||||
if (!game.user.isGM && game.user.character == undefined) {
|
||||
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()
|
||||
//WarheroHotbar.initDropbar()
|
||||
|
||||
})
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Foundry VTT Initialization */
|
||||
/* -------------------------------------------- */
|
||||
Hooks.on("chatMessage", (html, content, msg) => {
|
||||
/*Hooks.on("chatMessage", (html, content, msg) => {
|
||||
if (content[0] == '/') {
|
||||
let regExp = /(\S+)/g;
|
||||
let commands = content.match(regExp);
|
||||
@ -109,5 +97,5 @@ Hooks.on("chatMessage", (html, content, msg) => {
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
});*/
|
||||
|
||||
|
57
modules/warhero-party-sheet.js
Normal file
57
modules/warhero-party-sheet.js
Normal 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;
|
||||
}
|
||||
|
||||
}
|
@ -231,6 +231,7 @@ export class WarheroUtility {
|
||||
'systems/fvtt-warhero/templates/partial-item-description.html',
|
||||
'systems/fvtt-warhero/templates/partial-item-common-equipment.html',
|
||||
'systems/fvtt-warhero/templates/partial-actor-equipment.html',
|
||||
'systems/fvtt-warhero/templates/partial-container.html',
|
||||
]
|
||||
return loadTemplates(templatePaths);
|
||||
}
|
||||
@ -618,6 +619,10 @@ export class WarheroUtility {
|
||||
rollData.isCriticalFailure = true
|
||||
}
|
||||
|
||||
if ( rollData.stat.hasuse ) {
|
||||
actor.incrementUse(rollData)
|
||||
}
|
||||
|
||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData)
|
||||
})
|
||||
|
@ -899,11 +899,10 @@ li {
|
||||
#sidebar #sidebar-tabs i{
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
display: inline-block;
|
||||
/*display: inline-block;*/
|
||||
background-position:center;
|
||||
background-size:cover;
|
||||
text-shadow: 1px 1px 0 rgba(0,0,0,0.75);
|
||||
|
||||
}
|
||||
|
||||
.sidebar-tab .directory-list .entity {
|
||||
@ -916,6 +915,7 @@ li {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.chat-message-header {
|
||||
background: rgba(220, 220, 210, 0.5);
|
||||
font-size: 1.1rem;
|
||||
@ -930,6 +930,7 @@ li {
|
||||
.chat-message .message-header .whisper-to {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.chat-actor-name {
|
||||
padding: 4px;
|
||||
}
|
||||
@ -1491,11 +1492,22 @@ li {
|
||||
max-width: 22rem;
|
||||
min-width: 22rem;
|
||||
}
|
||||
.item-name-label-long3 {
|
||||
flex-grow: 2;
|
||||
max-width: 32rem;
|
||||
min-width: 32rem;
|
||||
}
|
||||
.item-name-label-level2 {
|
||||
flex-grow: 2;
|
||||
max-width: 9rem;
|
||||
min-width: 9rem;
|
||||
}
|
||||
.item-field-label-2rem {
|
||||
flex-grow: 1;
|
||||
margin-top: 4px;
|
||||
max-width: 1.2rem;
|
||||
min-width: 1.2rem;
|
||||
}
|
||||
.item-field-label-short {
|
||||
flex-grow: 1;
|
||||
margin-top: 4px;
|
||||
@ -1531,7 +1543,7 @@ li {
|
||||
}
|
||||
.alternate-list {
|
||||
margin-top: 4px;
|
||||
fong2ex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.item-filler {
|
||||
flex-grow: 6;
|
||||
|
@ -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"> 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"> 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>
|
81
system.json
81
system.json
@ -10,7 +10,7 @@
|
||||
"modules/warhero-main.js",
|
||||
"modules/import-global.js"
|
||||
],
|
||||
"gridDistance": 5,
|
||||
"gridDistance": 1,
|
||||
"gridUnits": "m",
|
||||
"languages": [
|
||||
{
|
||||
@ -27,87 +27,13 @@
|
||||
}
|
||||
],
|
||||
"license": "LICENSE.txt",
|
||||
"packs": [
|
||||
{
|
||||
"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": "attributes.hp",
|
||||
"secondaryTokenAttribute": "attributes.mana",
|
||||
"socket": true,
|
||||
"styles": [
|
||||
"styles/simple.css"
|
||||
],
|
||||
"version": "10.0.31",
|
||||
"version": "10.0.54",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "10",
|
||||
@ -115,8 +41,7 @@
|
||||
},
|
||||
"title": "Warhero RPG",
|
||||
"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.31.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",
|
||||
"background": "images/ui/warhero_welcome_page.webp",
|
||||
"id": "fvtt-warhero"
|
||||
}
|
165
template.json
165
template.json
@ -3,14 +3,15 @@
|
||||
"types": [
|
||||
"character",
|
||||
"npc",
|
||||
"monster"
|
||||
"monster",
|
||||
"party"
|
||||
],
|
||||
"templates": {
|
||||
"biodata": {
|
||||
"biodata": {
|
||||
"class": "",
|
||||
"age": 0,
|
||||
"size": 3,
|
||||
"size": "medium",
|
||||
"weight": "",
|
||||
"height": "",
|
||||
"hair": "",
|
||||
@ -61,8 +62,8 @@
|
||||
"style": "edit",
|
||||
"hasmax": true,
|
||||
"isheader": true,
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"max": 30,
|
||||
"value": 30
|
||||
},
|
||||
"knowledge": {
|
||||
"label": "WH.ui.Knowledge",
|
||||
@ -70,15 +71,16 @@
|
||||
"style": "edit",
|
||||
"hasmax": false,
|
||||
"roll": true,
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"max": 0,
|
||||
"value": 0
|
||||
},
|
||||
"def": {
|
||||
"label": "WH.ui.Defence",
|
||||
"abbrev": "def",
|
||||
"style": "edit",
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"iscombat": true,
|
||||
"max": 12,
|
||||
"value": 12
|
||||
},
|
||||
"txcm": {
|
||||
"label": "WH.ui.Throw2HitM",
|
||||
@ -86,8 +88,9 @@
|
||||
"istxc": true,
|
||||
"style": "edit",
|
||||
"roll": true,
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"iscombat": true,
|
||||
"max": 0,
|
||||
"value": 0
|
||||
},
|
||||
"txcr": {
|
||||
"label": "WH.ui.Throw2HitR",
|
||||
@ -95,8 +98,9 @@
|
||||
"istxc": true,
|
||||
"style": "edit",
|
||||
"roll": true,
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"iscombat": true,
|
||||
"max": 0,
|
||||
"value": 0
|
||||
},
|
||||
"mana": {
|
||||
"label": "WH.ui.Mana",
|
||||
@ -104,37 +108,38 @@
|
||||
"style": "edit",
|
||||
"hasmax": true,
|
||||
"isheader": true,
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"max": 3,
|
||||
"value": 3
|
||||
},
|
||||
"ini": {
|
||||
"label": "WH.ui.Initiative",
|
||||
"abbrev": "ini",
|
||||
"style": "edit",
|
||||
"iscombat": true,
|
||||
"roll": true,
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"max": 0,
|
||||
"value": 0
|
||||
},
|
||||
"movearth": {
|
||||
"label": "WH.ui.Movement",
|
||||
"abbrev": "mov",
|
||||
"style": "edit",
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"max": 6,
|
||||
"value": 6
|
||||
},
|
||||
"movswim": {
|
||||
"label": "WH.ui.MovementSwim",
|
||||
"abbrev": "mov",
|
||||
"style": "edit",
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"max": 0,
|
||||
"value": 0
|
||||
},
|
||||
"movfly": {
|
||||
"label": "WH.ui.MovementFly",
|
||||
"abbrev": "mov",
|
||||
"style": "edit",
|
||||
"max": 1,
|
||||
"value": 1
|
||||
"max": 0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
"secondary": {
|
||||
@ -148,6 +153,7 @@
|
||||
"malusmultiweapon": {
|
||||
"label": "WH.ui.malusmultiweapon",
|
||||
"abbrev": "malusmultiweapon",
|
||||
"iscombat": true,
|
||||
"style": "edit",
|
||||
"value": 0
|
||||
},
|
||||
@ -155,6 +161,7 @@
|
||||
"label": "WH.ui.drbonus",
|
||||
"abbrev": "drbonus",
|
||||
"style": "edit",
|
||||
"iscombat": true,
|
||||
"value": 0
|
||||
},
|
||||
"drbonustotal": {
|
||||
@ -162,12 +169,28 @@
|
||||
"abbrev": "drbonustotal",
|
||||
"disabled": true,
|
||||
"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
|
||||
},
|
||||
"parrybonus": {
|
||||
"label": "WH.ui.parrybonus",
|
||||
"abbrev": "parrybonus",
|
||||
"isparrybonus": true,
|
||||
"iscombat": true,
|
||||
"style": "edit",
|
||||
"value": 0
|
||||
},
|
||||
@ -176,6 +199,7 @@
|
||||
"abbrev": "parrybonustotal",
|
||||
"disabled": true,
|
||||
"style": "edit",
|
||||
"iscombat": true,
|
||||
"roll": true,
|
||||
"value": 0
|
||||
},
|
||||
@ -184,10 +208,13 @@
|
||||
"stat": "min",
|
||||
"abbrev": "counterspell",
|
||||
"style": "edit",
|
||||
"hasmax": true,
|
||||
"hasmax": false,
|
||||
"roll": true,
|
||||
"max": 1,
|
||||
"value": 0
|
||||
"value": 0,
|
||||
"hasuse": true,
|
||||
"nbuse": 0,
|
||||
"maxuse": 0
|
||||
},
|
||||
"createitem": {
|
||||
"label": "WH.ui.createitem",
|
||||
@ -209,6 +236,11 @@
|
||||
"description": ""
|
||||
}
|
||||
},
|
||||
"party": {
|
||||
"templates": [
|
||||
"biodata"
|
||||
]
|
||||
},
|
||||
"character": {
|
||||
"templates": [
|
||||
"biodata",
|
||||
@ -240,7 +272,12 @@
|
||||
"language",
|
||||
"condition",
|
||||
"class",
|
||||
"genericitem"
|
||||
"money",
|
||||
"potion",
|
||||
"poison",
|
||||
"trap",
|
||||
"classitem",
|
||||
"competency"
|
||||
],
|
||||
"templates": {
|
||||
"commonclassrace": {
|
||||
@ -264,17 +301,80 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"genericitem": {
|
||||
"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": {
|
||||
"conditiontype": "",
|
||||
"duration": "",
|
||||
"begin": "",
|
||||
"specialduration": "",
|
||||
"durationvalue": 0,
|
||||
"durationunit": "",
|
||||
"shortdescription": "",
|
||||
"dcsave": 0,
|
||||
"incubationtime": "",
|
||||
"diseaseduration": "",
|
||||
"description": ""
|
||||
},
|
||||
"class": {
|
||||
"templates": [
|
||||
"commonclassrace"
|
||||
],
|
||||
"issecondary": false,
|
||||
"description": ""
|
||||
},
|
||||
"race": {
|
||||
@ -293,6 +393,7 @@
|
||||
"description": ""
|
||||
},
|
||||
"skill": {
|
||||
"raceskill": false,
|
||||
"classskill": false,
|
||||
"unlimited": false,
|
||||
"acquiredatlevel": 0,
|
||||
@ -311,6 +412,9 @@
|
||||
"quantity": 1,
|
||||
"slotused": 1,
|
||||
"slotlocation": "weapon1",
|
||||
"isidentified": "unknown",
|
||||
"magiccharge": "notapplicable",
|
||||
"chargevalue": 0,
|
||||
"description": ""
|
||||
},
|
||||
"armor": {
|
||||
@ -321,6 +425,9 @@
|
||||
"quantity": 1,
|
||||
"slotused": 1,
|
||||
"slotlocation": "armor",
|
||||
"isidentified": "unknown",
|
||||
"magiccharge": "notapplicable",
|
||||
"chargevalue": 0,
|
||||
"description": ""
|
||||
},
|
||||
"shield": {
|
||||
@ -331,6 +438,9 @@
|
||||
"quantity": 1,
|
||||
"slotused": 1,
|
||||
"slotlocation": "shield",
|
||||
"isidentified": "unknown",
|
||||
"magiccharge": "notapplicable",
|
||||
"chargevalue": 0,
|
||||
"description": ""
|
||||
},
|
||||
"equipment": {
|
||||
@ -341,6 +451,9 @@
|
||||
"slotused": 1,
|
||||
"slotlocation": "backpack",
|
||||
"providedslot": 0,
|
||||
"isidentified": "unknown",
|
||||
"magiccharge": "notapplicable",
|
||||
"chargevalue": 0,
|
||||
"description": ""
|
||||
},
|
||||
"power": {
|
||||
|
@ -21,23 +21,52 @@
|
||||
<ul>
|
||||
<li class="item flexrow list-item " data-item-id="{{race._id}}">
|
||||
<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>
|
||||
<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 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">{{localize "WH.ui.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" />
|
||||
{{#if mainClass}}
|
||||
<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 class="item flexrow list-item" >
|
||||
<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" />
|
||||
|
||||
<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>
|
||||
</ul>
|
||||
</div>
|
||||
@ -75,7 +104,7 @@
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{!-- Skills Tab --}}
|
||||
{{!-- Main Tab --}}
|
||||
<div class="tab main" data-group="primary" data-tab="main">
|
||||
|
||||
<div class="flexrow">
|
||||
@ -83,42 +112,13 @@
|
||||
<div class="ability-item">
|
||||
<ul>
|
||||
{{#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"}}
|
||||
{{/if}}
|
||||
{{/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 |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}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -135,7 +135,9 @@
|
||||
|
||||
|
||||
{{#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"}}
|
||||
{{#if (not second.iscombat)}}
|
||||
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=second key=key path="secondary" fieldClass="item-field-label-vlong"}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
|
||||
</ul>
|
||||
@ -170,8 +172,34 @@
|
||||
|
||||
{{!-- 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">
|
||||
@ -185,7 +213,7 @@
|
||||
<label class="short-label">{{localize "WH.ui.Damage"}}</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each weapons as |weapon key|}}
|
||||
{{#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>
|
||||
@ -212,6 +240,19 @@
|
||||
</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">
|
||||
@ -225,7 +266,7 @@
|
||||
<label class="short-label">{{localize "WH.ui.parrybonus"}}</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each shields as |shield key|}}
|
||||
{{#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>
|
||||
@ -243,6 +284,19 @@
|
||||
{{/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">
|
||||
@ -257,7 +311,7 @@
|
||||
<label class="short-label">{{localize "WH.ui.damagereduction"}}</label>
|
||||
</span>
|
||||
</li>
|
||||
{{#each armors as |armor key|}}
|
||||
{{#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>
|
||||
@ -276,6 +330,51 @@
|
||||
</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"> </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>
|
||||
|
||||
@ -283,6 +382,44 @@
|
||||
<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"> -</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"> </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">
|
||||
@ -406,10 +543,10 @@
|
||||
<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">
|
||||
<span class="item-name-label-long3">
|
||||
<a class="power-roll"><i class="fa-solid fa-dice-d20"></i>{{power.name}}</a>
|
||||
</span>
|
||||
<span class="item-name-label">
|
||||
<span class="item-name-label-medium">
|
||||
<a class="power-roll">{{power.system.level}}</a>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
@ -428,54 +565,23 @@
|
||||
{{!-- 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"> </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>
|
||||
<div class="flexrow">
|
||||
<label class="">{{localize "WH.ui.totalmoney"}} : {{totalMoney}}</label>
|
||||
</div>
|
||||
|
||||
<span class="item-field-label-medium">
|
||||
<label class="short-label">{{upperFirst item.type}}</label>
|
||||
</span>
|
||||
<hr>
|
||||
<h3>{{localize "WH.ui.bodyslots"}} : </h3>
|
||||
|
||||
<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"> </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 bodyContainers as |slot slotKey|}}
|
||||
{{> systems/fvtt-warhero/templates/partial-container.html slot=slot slotKey=slotKey}}
|
||||
{{/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>
|
||||
|
||||
@ -508,19 +614,6 @@
|
||||
</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="{{system.biodata.size}}" data-dtype="Number">
|
||||
{{#select system.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="{{system.biodata.sex}}" data-dtype="String" />
|
||||
@ -551,6 +644,35 @@
|
||||
</div>
|
||||
<hr>
|
||||
</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"> </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>
|
||||
|
||||
</section>
|
||||
|
@ -21,6 +21,10 @@
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
<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|}}
|
||||
<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"
|
||||
|
32
templates/item-classitem-sheet.html
Normal file
32
templates/item-classitem-sheet.html
Normal 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>
|
24
templates/item-competency-sheet.html
Normal file
24
templates/item-competency-sheet.html
Normal 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>
|
@ -16,6 +16,63 @@
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
<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>
|
||||
|
37
templates/item-money-sheet.html
Normal file
37
templates/item-money-sheet.html
Normal file
@ -0,0 +1,37 @@
|
||||
<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.quantity"}}</label>
|
||||
<input type="text" class="item-field-label-long" name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/>
|
||||
</li>
|
||||
<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 system.slotlocation}}
|
||||
{{#each config.slotNames as |type key|}}
|
||||
<option value="{{key}}">{{localize type.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
64
templates/item-poison-sheet.html
Normal file
64
templates/item-poison-sheet.html
Normal file
@ -0,0 +1,64 @@
|
||||
<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.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>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</form>
|
36
templates/item-potion-sheet.html
Normal file
36
templates/item-potion-sheet.html
Normal 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>
|
@ -10,13 +10,7 @@
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="description">
|
||||
|
||||
<label class="generic-label">Description</label>
|
||||
<div class="editor item-text-long-line">
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
{{> systems/fvtt-warhero/templates/partial-item-nav.html}}
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
<ul>
|
||||
|
@ -15,6 +15,10 @@
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
<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>
|
||||
<input type="checkbox" name="system.classskill" {{checked system.classskill}}/>
|
||||
</li>
|
||||
|
40
templates/item-trap-sheet.html
Normal file
40
templates/item-trap-sheet.html
Normal 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>
|
@ -31,6 +31,12 @@
|
||||
{{#if hasmax}}
|
||||
<input type="text" class="item-field-label-short " name="system.{{path}}.{{key}}.max" value="{{stat.max}}" data-dtype="Number"/>
|
||||
{{/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"> / </label>
|
||||
<input type="text" class="item-field-label-short " name="system.{{path}}.{{key}}.maxuse" value="{{stat.maxuse}}" data-dtype="Number"/>
|
||||
{{/if}}
|
||||
|
||||
{{/if}}
|
||||
|
||||
{{#if hassave}}
|
||||
|
53
templates/partial-container.html
Normal file
53
templates/partial-container.html
Normal 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"> </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"> </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>
|
@ -10,9 +10,35 @@
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.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"/>
|
||||
</li>
|
||||
<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"/>
|
||||
</li>
|
||||
</li>
|
||||
|
||||
<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"/>
|
||||
</li>
|
||||
|
@ -1,8 +1,7 @@
|
||||
<div class="tab description" data-group="primary" data-tab="description">
|
||||
<div>
|
||||
<label class="generic-label">{{localize "WH.ui.description"}}</label>
|
||||
<div class="editor item-text-long-line">
|
||||
<div class="tab details" data-group="primary" data-tab="description">
|
||||
|
||||
<label class="generic-label">Description</label>
|
||||
<div class="editor item-text-long-line">
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
100
templates/party-sheet.html
Normal file
100
templates/party-sheet.html
Normal 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"> </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"> </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>
|
Reference in New Issue
Block a user