Compare commits

..

No commits in common. "master" and "fvtt-warhero-10.0.37" have entirely different histories.

21 changed files with 374 additions and 826 deletions

1
.gitignore vendored
View File

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

View File

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

View File

@ -2,8 +2,7 @@
"ACTOR": { "ACTOR": {
"TypeCharacter": "Character", "TypeCharacter": "Character",
"TypeNpc": "NPC", "TypeNpc": "NPC",
"TypeMonster": "Monster", "TypeMonster": "Monster"
"TypeParty": "Party"
}, },
"ITEM": { "ITEM": {
"TypeWeapon": "Weapon", "TypeWeapon": "Weapon",
@ -54,17 +53,6 @@
"WH.conf.beltpouch1": "Beltpouch 1", "WH.conf.beltpouch1": "Beltpouch 1",
"WH.conf.beltpouch2": "Beltpouch 2", "WH.conf.beltpouch2": "Beltpouch 2",
"WH.conf.beltpouch3": "Beltpouch 3", "WH.conf.beltpouch3": "Beltpouch 3",
"WH.conf.scrollcase": "Scroll case",
"WH.conf.wandcase": "Wand case",
"WH.conf.potioncase": "Potion case",
"WH.conf.bagholding": "Bag of holding",
"WH.conf.quiverholding": "Quiver of holding",
"WH.conf.backpackholding": "Backpack of holding",
"WH.conf.smallchest": "Small chest",
"WH.conf.mediumchest": "Medium chest",
"WH.conf.largechest": "Large chest",
"WH.conf.hugechest": "Huge chest",
"WH.conf.partystorage": "Party chest/storage",
"WH.conf.unknown": "Unknown", "WH.conf.unknown": "Unknown",
"WH.conf.yes": "Yes", "WH.conf.yes": "Yes",
@ -203,24 +191,6 @@
"WH.ui.ignoreeffect": "Ignore effect", "WH.ui.ignoreeffect": "Ignore effect",
"WH.ui.raceSkills": "Race skills", "WH.ui.raceSkills": "Race skills",
"WH.ui.identified": "Identified", "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.save": "Save",
"WH.chat.mweaponmalus": "Multiple weapons malus ", "WH.chat.mweaponmalus": "Multiple weapons malus ",

View File

@ -1,49 +1,24 @@
{ {
"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.short": "Corte",
"WH.conf.long": "Lunghe", "WH.conf.long": "Lunghe",
"WH.conf.twohanded": "A due mani", "WH.conf.twohanded": "A Due mani",
"WH.conf.shooting": "Da Tiro", "WH.conf.shooting": "Da tiro",
"WH.conf.throwing": "Da Lancio", "WH.conf.throwing": "Da lancio",
"WH.conf.lightarmor" : "Leggera", "WH.conf.lightarmor" : "Leggera",
"WH.conf.mediumarmor": "Media", "WH.conf.mediumarmor": "Media",
"WH.conf.heavyarmor": "Pesante", "WH.conf.heavyarmor": "Pesante",
"WH.conf.lightshield": "Leggero", "WH.conf.lightshield": "Leggero",
"WH.conf.mediumshield": "Medio", "WH.conf.mediumshield": "Medio",
"WH.conf.towershield": "Torre", "WH.conf.towershield": "Torre",
"WH.conf.polearm": "In asta", "WH.conf.polearm": "Armi in asta",
"WH.conf.special": "Speciale", "WH.conf.special": "Speciali",
"WH.conf.head": "Testa", "WH.conf.head": "Testa",
"WH.conf.cloak": "Mantello", "WH.conf.cloak": "Mantello",
"WH.conf.weapon1": "Arma 1", "WH.conf.weapon1": "Mano primaria",
"WH.conf.weapon2": "Arma 2", "WH.conf.weapon2": "Mano secondaria",
"WH.conf.gloves": "Guanti", "WH.conf.gloves": "Guanti",
"WH.conf.dress": "Vestito", "WH.conf.dress": "Abito",
"WH.conf.boots": "Stivali", "WH.conf.boots": "Stivali",
"WH.conf.ring": "Anelli", "WH.conf.ring": "Anelli",
"WH.conf.belt": "Cintura", "WH.conf.belt": "Cintura",
@ -54,30 +29,13 @@
"WH.conf.beltpouch1": "Borsa da cintura 1", "WH.conf.beltpouch1": "Borsa da cintura 1",
"WH.conf.beltpouch2": "Borsa da cintura 2", "WH.conf.beltpouch2": "Borsa da cintura 2",
"WH.conf.beltpouch3": "Borsa da cintura 3", "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.level": "Livello",
"WH.ui.notes": "Note", "WH.ui.notes": "Note",
"WH.ui.hpprog": "Progressione PF", "WH.ui.hpprog": "Progressione PF",
"WH.ui.lan": "Lingue", "WH.ui.lan": "Lingue",
"WH.ui.attrbonus": "Attributo", "WH.ui.attrbonus": "Attributi",
"WH.ui.weapons": "Armi", "WH.ui.weapons": "Armi",
"WH.ui.armors": "Armature", "WH.ui.armors": "Armature",
"WH.ui.shields": "Scudi", "WH.ui.shields": "Scudi",
@ -86,15 +44,12 @@
"WH.ui.Strength": "Fisico", "WH.ui.Strength": "Fisico",
"WH.ui.Instinct": "Istinto", "WH.ui.Instinct": "Istinto",
"WH.ui.Dexterity": "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.Mind": "Mente",
"WH.ui.Type": "Tipo", "WH.ui.Type": "Tipo",
"WH.ui.HitPoints": "Punti ferita", "WH.ui.HitPoints": "Punti ferita",
"WH.ui.Defence": "Difesa", "WH.ui.Defence": "Difesa",
"WH.ui.Throw2HitM": "Txc (corpo a corpo)", "WH.ui.Throw2HitM": "TxC (corpo a corpo)",
"WH.ui.Throw2HitR": "Txc (distanza)", "WH.ui.Throw2HitR": "TxC (distanza)",
"WH.ui.Mana": "Mana", "WH.ui.Mana": "Mana",
"WH.ui.Initiative": "Iniziativa", "WH.ui.Initiative": "Iniziativa",
"WH.ui.Movement": "Movimento (Terra)", "WH.ui.Movement": "Movimento (Terra)",
@ -120,8 +75,7 @@
"WH.ui.createitem": "Bonus ai tiri percentuali", "WH.ui.createitem": "Bonus ai tiri percentuali",
"WH.ui.classSkills": "Abilitá di classe", "WH.ui.classSkills": "Abilitá di classe",
"WH.ui.skills": "Abilitá Aggiuntiva", "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.unlimited": "Usi illimitati?",
"WH.ui.currentuse": "Numero di usi", "WH.ui.currentuse": "Numero di usi",
"WH.ui.maxuse": "Usi Massimi", "WH.ui.maxuse": "Usi Massimi",
@ -133,104 +87,41 @@
"WH.ui.main": "Principale", "WH.ui.main": "Principale",
"WH.ui.combat": "Combattimento", "WH.ui.combat": "Combattimento",
"WH.ui.skillstab": "Abilità ed effetti", "WH.ui.skillstab": "Abilitá ed effetti",
"WH.ui.powers": "Poteri", "WH.ui.powers": "Poteri",
"WH.ui.equipment": "Equipaggiamento", "WH.ui.equipment": "Equipaggiamento",
"WH.ui.biography": "Biografia", "WH.ui.biography": "Biografia",
"WH.ui.race": "Razza", "WH.ui.race": "Razza",
"WH.ui.class": "Classe", "WH.ui.class": "Classe",
"WH.ui.religion": "Fede", "WH.ui.religion": "Religione",
"WH.ui.origin": "Origine", "WH.ui.origin": "Origine",
"WH.ui.age": "Età", "WH.ui.age": "Etá",
"WH.ui.height": "Altezza", "WH.ui.height": "Altezza",
"WH.ui.eyes": "Occhi", "WH.ui.eyes": "Occhi",
"WH.ui.hair": "Capelli", "WH.ui.hair": "Capelli",
"WH.ui.preferredhand": "Mano preferita", "WH.ui.preferredhand": "Mano preferita",
"WH.ui.size": "Taglia", "WH.ui.size": "Taglia",
"WH.ui.gender": "Genere", "WH.ui.gender": "Sesso",
"WH.ui.background": "Storia", "WH.ui.background": "Storia",
"WH.ui.type": "Tipo", "WH.ui.type": "Tipo",
"WH.ui.description": "Descrizione", "WH.ui.description": "Descrizione",
"WH.ui.rawroll": "Formula del dado (es: 1d20+@statistics.str.value)", "WH.ui.rawroll": "Formula TXC (ex: 1d20+@statistics.str.value)",
"WH.ui.rawdamage": "Formula danni (ex: 1d6+(@statistics.str.value/2))", "WH.ui.rawdamage": "Formula Danni (ex: 1d6+(@statistics.str.value/2))",
"WH.ui.damage": "Danno", "WH.ui.damage": "Danno",
"WH.ui.2hdamage": "Danno a 2 mani", "WH.ui.2hdamage": "Danno a 2 mani",
"WH.ui.slotlocation": "Posizione dello slot", "WH.ui.slotlocation": "Slot",
"WH.ui.quantity": "Quantità", "WH.ui.quantity": "Quantitá",
"WH.ui.cost": "Costo", "WH.ui.cost": "Costo",
"WH.ui.details": "Dettagli", "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.chat.save": "Tiro salvezza",
"WH.ui.containerslot": "Contenitori", "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.diceresult": "Risultato del dado",
"WH.chat.result": "Risultato", "WH.chat.result": "Risultato",
"WH.chat.parysuccess": "Parato con successo !", "WH.chat.parysuccess": "Hai parato con successo",
"WH.chat.paryfailed": "Parata fallita !", "WH.chat.paryfailed": "Hai fallito azione di parata",
"WH.chat.rollformula": "Formula del dado", "WH.chat.rollformula": "Formula per il tiro di dado",
"WH.chat.useshield":"Usare scudo?", "WH.chat.useshield":"Usa lo scudo?",
"WH.chat.power": "Potere", "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"
} }

View File

@ -51,18 +51,14 @@ export class WarheroActorSheet extends ActorSheet {
conditions: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getConditions()) ), conditions: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getConditions()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())), armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())), shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
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(), powers: this.actor.sortPowers(),
allItems: this.actor.getAllItems(), equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
slotEquipments: this.actor.buildEquipmentsSlot(),
subActors: duplicate(this.actor.getSubActors()), subActors: duplicate(this.actor.getSubActors()),
competency: this.actor.getCompetency(), competency: this.actor.getCompetency(),
race: duplicate(race), race: duplicate(race),
mainClass: this.actor.getMainClass(), classes: duplicate(this.actor.getClasses()),
secondaryClass: this.actor.getSecondaryClass(),
totalMoney: this.actor.computeTotalMoney(), totalMoney: this.actor.computeTotalMoney(),
equipments: duplicate(this.actor.getEquipmentsOnly()),
//moneys: duplicate(this.actor.getMoneys()), //moneys: duplicate(this.actor.getMoneys()),
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}), description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, {async: true}), notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, {async: true}),
@ -71,12 +67,6 @@ export class WarheroActorSheet extends ActorSheet {
editScore: this.options.editScore, editScore: this.options.editScore,
isGM: game.user.isGM isGM: game.user.isGM
} }
if (this.actor.type == "party") {
formData.partySlots = this.actor.buildPartySlots()
} else {
formData.equipmentContainers = this.actor.buildEquipmentsSlot()
formData.bodyContainers = this.actor.buildBodySlot()
}
// Dynamic patch // Dynamic patch
formData.system.secondary.counterspell.hasmax = false formData.system.secondary.counterspell.hasmax = false
// Race mngt // Race mngt

View File

@ -123,11 +123,6 @@ export class WarheroActor extends Actor {
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getEquippedArmors() {
let comp = duplicate(this.items.filter(item => item.type == 'armor' && item.system.slotlocation == 'armor') || []);
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
}
getArmors() { getArmors() {
let comp = duplicate(this.items.filter(item => item.type == 'armor') || []); let comp = duplicate(this.items.filter(item => item.type == 'armor') || []);
WarheroUtility.sortArrayObjectsByName(comp) WarheroUtility.sortArrayObjectsByName(comp)
@ -151,17 +146,7 @@ export class WarheroActor extends Actor {
} }
return schools return schools
} }
getAllItems() {
let comp = duplicate(this.items || []);
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
}
/* -------------------------------------------- */ /* -------------------------------------------- */
getEquippedShields() {
let comp = duplicate(this.items.filter(item => item.type == 'shield' && item.system.slotlocation == "shield") || []);
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
}
getShields() { getShields() {
let comp = duplicate(this.items.filter(item => item.type == 'shield') || []); let comp = duplicate(this.items.filter(item => item.type == 'shield') || []);
WarheroUtility.sortArrayObjectsByName(comp) WarheroUtility.sortArrayObjectsByName(comp)
@ -173,13 +158,9 @@ export class WarheroActor extends Actor {
return race[0] ?? []; return race[0] ?? [];
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getMainClass() { getClass() {
let classWH = this.items.find(item => item.type == 'class' && !item.system.issecondary) let classWH = this.items.filter(item => item.type == 'class')
return classWH return classWH[0] ?? [];
}
getSecondaryClass() {
let classWH = this.items.find(item => item.type == 'class' && item.system.issecondary)
return classWH
} }
getClasses() { getClasses() {
let comp = duplicate(this.items.filter(item => item.type == "class") || []); let comp = duplicate(this.items.filter(item => item.type == "class") || []);
@ -203,63 +184,11 @@ export class WarheroActor extends Actor {
this.items.forEach(it => {if (it.type == 'money') { nbMoney += it.system.quantity} } ) this.items.forEach(it => {if (it.type == 'money') { nbMoney += it.system.quantity} } )
return nbMoney return nbMoney
} }
/* -------------------------------------------- */
buildPartySlots() {
let containers = {}
for (let slotName in game.system.warhero.config.partySlotNames) {
let slotDef = game.system.warhero.config.partySlotNames[slotName]
containers[slotName] = duplicate(slotDef)
containers[slotName].content = this.items.filter(it => (it.type == 'money' || it.type == 'weapon' || it.type == 'armor' || it.type == 'shield' || it.type == 'equipment') )
let slotUsed = 0
for (let item of containers[slotName].content) {
let q = (item.system.quantity) ? item.system.quantity : 1
containers[slotName].nbslots += (item.system.providedslot ?? 0) * q
if (item.type == "money") {
slotUsed += Math.ceil(item.system.quantity / 1000)
} else {
slotUsed += item.system.slotused * q
}
}
slotUsed = Math.ceil(slotUsed)
containers[slotName].slotUsed = slotUsed
}
return containers
}
/* -------------------------------------------- */
buildBodySlot() {
let containers = {}
for (let slotName in game.system.warhero.config.slotNames) {
let slotDef = game.system.warhero.config.slotNames[slotName]
if (!slotDef.container) {
containers[slotName] = duplicate(slotDef)
containers[slotName].content = this.items.filter(it => (it.type == 'money' || it.type == 'weapon' || it.type == 'armor' || it.type == 'shield' || it.type == 'equipment')
&& it.system.slotlocation == slotName)
let slotUsed = 0
for (let item of containers[slotName].content) {
let q = (item.system.quantity) ? item.system.quantity : 1
containers[slotName].nbslots += (item.system.providedslot ?? 0) * q
if (item.type == "money") {
slotUsed += Math.ceil(item.system.quantity / 1000)
} else {
slotUsed += item.system.slotused * q
}
}
slotUsed = Math.ceil(slotUsed)
containers[slotName].slotUsed = slotUsed
}
}
return containers
}
/* -------------------------------------------- */ /* -------------------------------------------- */
buildEquipmentsSlot() { buildEquipmentsSlot() {
let containers = {} let containers = {}
for (let slotName in game.system.warhero.config.slotNames) { for (let slotName in game.system.warhero.config.slotNames) {
let slotDef = game.system.warhero.config.slotNames[slotName] let slotDef = game.system.warhero.config.slotNames[slotName]
if (slotDef.container) {
containers[slotName] = duplicate(slotDef) containers[slotName] = duplicate(slotDef)
containers[slotName].content = this.items.filter(it => (it.type == 'money' || it.type == 'weapon' || it.type == 'armor' || it.type == 'shield' || it.type == 'equipment') containers[slotName].content = this.items.filter(it => (it.type == 'money' || it.type == 'weapon' || it.type == 'armor' || it.type == 'shield' || it.type == 'equipment')
&& it.system.slotlocation == slotName) && it.system.slotlocation == slotName)
@ -276,7 +205,6 @@ export class WarheroActor extends Actor {
slotUsed = Math.ceil(slotUsed) slotUsed = Math.ceil(slotUsed)
containers[slotName].slotUsed = slotUsed containers[slotName].slotUsed = slotUsed
} }
}
return containers return containers
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -298,25 +226,9 @@ export class WarheroActor extends Actor {
formula += "+" + Math.floor(this.system.statistics.str.value * 1) formula += "+" + Math.floor(this.system.statistics.str.value * 1)
weapon.damageFormula2Hands = weapon.system.damage2hands + "+" + Math.floor(this.system.statistics.str.value * 1.5) weapon.damageFormula2Hands = weapon.system.damage2hands + "+" + Math.floor(this.system.statistics.str.value * 1.5)
} }
if (weapon.system.weapontype == "throwing" || weapon.system.weapontype == "shooting") {
formula += "+"+this.system.secondary.rangeddamagebonus.value
} else if ( weapon.system.weapontype != "special" ) {
formula += "+"+this.system.secondary.meleedamagebonus.value
if (weapon.damageFormula2Hands) {
weapon.damageFormula2Hands += "+"+this.system.secondary.meleedamagebonus.value
}
}
weapon.damageFormula = formula weapon.damageFormula = formula
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getEquippedWeapons() {
let comp = duplicate(this.items.filter(item => item.type == 'weapon' && (item.system.slotlocation == "weapon1" || item.system.slotlocation == "weapon2") ) || []);
for (let weapon of comp) {
this.prepareWeapon(weapon)
}
WarheroUtility.sortArrayObjectsByName(comp)
return comp;
}
getWeapons() { getWeapons() {
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []); let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []);
for (let weapon of comp) { for (let weapon of comp) {
@ -513,23 +425,17 @@ export class WarheroActor extends Actor {
} }
getCompetency() { getCompetency() {
let myRace = this.getRace() let myRace = this.getRace()
let myClass1 = this.getMainClass() let myClass = this.getClass()
let myClass2 = this.getSecondaryClass()
let competency = { weapons: {}, armors: {}, shields: {} } let competency = { weapons: {}, armors: {}, shields: {} }
if (myRace.system) { if (myRace.system) {
this.updateCompetency(competency.weapons, myRace.system.weapons, game.system.warhero.config.weaponTypes) 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.armors, myRace.system.armors, game.system.warhero.config.armorTypes)
this.updateCompetency(competency.shields, myRace.system.shields, game.system.warhero.config.shieldTypes) this.updateCompetency(competency.shields, myRace.system.shields, game.system.warhero.config.shieldTypes)
} }
if (myClass1 && myClass1.system) { if (myClass.system) {
this.updateCompetency(competency.weapons, myClass1.system.weapons, game.system.warhero.config.weaponTypes) this.updateCompetency(competency.weapons, myClass.system.weapons, game.system.warhero.config.weaponTypes)
this.updateCompetency(competency.armors, myClass1.system.armors, game.system.warhero.config.armorTypes) this.updateCompetency(competency.armors, myClass.system.armors, game.system.warhero.config.armorTypes)
this.updateCompetency(competency.shields, myClass1.system.shields, game.system.warhero.config.shieldTypes) this.updateCompetency(competency.shields, myClass.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 return competency
} }
@ -731,7 +637,7 @@ export class WarheroActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
computeDRTotal() { computeDRTotal() {
let armors = this.items.filter(it => it.type == "armor" && it.system.slotlocation == 'armor') let armors = this.items.filter(it => it.type == "armor")
let dr = 0 let dr = 0
for (let armor of armors) { for (let armor of armors) {
dr += armor.system.damagereduction dr += armor.system.damagereduction
@ -740,7 +646,7 @@ export class WarheroActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
computeParryBonusTotal() { computeParryBonusTotal() {
let shields = this.items.filter(it => it.type == "shield" && it.system.slotlocation == 'shield') let shields = this.items.filter(it => it.type == "shield")
let parry = 0 let parry = 0
for (let shield of shields) { for (let shield of shields) {
parry += shield.system.parrybonus parry += shield.system.parrybonus
@ -789,7 +695,8 @@ export class WarheroActor extends Actor {
rollData.mode = rollType rollData.mode = rollType
rollData.statKey = rollKey rollData.statKey = rollKey
rollData.stat = stat rollData.stat = stat
if (stat && stat.stat) { if (stat && stat.stat)
{
rollData.statBonus = duplicate(this.system.statistics[stat.stat]) rollData.statBonus = duplicate(this.system.statistics[stat.stat])
} }
if ( stat.hasuse && stat.nbuse >= stat.maxuse) { if ( stat.hasuse && stat.nbuse >= stat.maxuse) {

View File

@ -22,10 +22,6 @@ export const WARHERO_CONFIG = {
tower: {parry: "5", label: "WH.conf.towershield"}, tower: {parry: "5", label: "WH.conf.towershield"},
}, },
partySlotNames : {
storage: {nbslots: 2000, itemtype:"equipment", label: "WH.conf.partystorage"}
},
slotNames : { slotNames : {
head: {nbslots: 1, itemtype:"armor", label: "WH.conf.head"}, head: {nbslots: 1, itemtype:"armor", label: "WH.conf.head"},
cloak: {nbslots: 1, itemtype:"equipment", label: "WH.conf.cloak"}, cloak: {nbslots: 1, itemtype:"equipment", label: "WH.conf.cloak"},
@ -35,24 +31,14 @@ export const WARHERO_CONFIG = {
ring: {nbslots: 10, itemtype:"equipment",label: "WH.conf.ring"}, ring: {nbslots: 10, itemtype:"equipment",label: "WH.conf.ring"},
dress: {nbslots: 1, itemtype:"equipment",label: "WH.conf.dress"}, dress: {nbslots: 1, itemtype:"equipment",label: "WH.conf.dress"},
boots: {nbslots: 1, itemtype:"equipment",label: "WH.conf.boots"}, boots: {nbslots: 1, itemtype:"equipment",label: "WH.conf.boots"},
belt: {nbslots: 6, itemtype:"equipment",label: "WH.conf.belt"},
quiver: {nbslots: 20, itemtype:"equipment",label: "WH.conf.quiver"},
armor: {nbslots: 1, itemtype:"armor",label: "WH.conf.armor"}, armor: {nbslots: 1, itemtype:"armor",label: "WH.conf.armor"},
shield: {nbslots: 1, itemtype:"shield",label: "WH.conf.shield"}, shield: {nbslots: 1, itemtype:"shield",label: "WH.conf.shield"},
belt: {nbslots: 6, itemtype:"equipment", container: true, available: true, parent: undefined, label: "WH.conf.belt"}, backpack: {nbslots: 12, itemtype:"equipment",label: "WH.conf.backpack"},
quiver: {nbslots: 20, itemtype:"equipment",container: true, available: true, parent: undefined, label: "WH.conf.quiver"}, beltpouch1: {nbslots: 4, itemtype:"equipment",label: "WH.conf.beltpouch1"},
backpack: {nbslots: 12, itemtype:"equipment",container: true, available: true, parent: undefined, label: "WH.conf.backpack"}, beltpouch2: {nbslots: 4, itemtype:"equipment", label: "WH.conf.beltpouch2"},
beltpouch1: {nbslots: 4, itemtype:"equipment",container: true, available: true, parent: undefined, label: "WH.conf.beltpouch1"}, beltpouch3: {nbslots: 4, itemtype:"equipment", label: "WH.conf.beltpouch3"},
beltpouch2: {nbslots: 4, itemtype:"equipment", container: true, available: true, parent: undefined, label: "WH.conf.beltpouch2"},
beltpouch3: {nbslots: 4, itemtype:"equipment", container: true, available: true, parent: undefined, label: "WH.conf.beltpouch3"},
scrollcase: {nbslots: 17, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.scrollcase"},
wandcase: {nbslots: 10, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.wandcase"},
potioncase: {nbslots: 8, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.potioncase"},
bagholding: {nbslots: 30, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.bagholding"},
quiverholding: {nbslots: 9999, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.quiverholding"},
backpackholding: {nbslots: 90, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.backpackholding"},
smallchest: {nbslots: 6, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.smallchest"},
mediumchest: {nbslots: 12, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.mediumchest"},
largechest: {nbslots: 24, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.largechest"},
hugechest: {nbslots: 24, itemtype:"equipment", container: true, available: false, parent: undefined, label: "WH.conf.hugechest"},
}, },
progressionList: { progressionList: {
@ -96,11 +82,7 @@ export const WARHERO_CONFIG = {
beginturn: "WH.ui.beginturn", beginturn: "WH.ui.beginturn",
endturn: "WH.ui.endturn" endturn: "WH.ui.endturn"
}, },
magicCharge: {
notapplicable: "WH.ui.notapplicable",
chargedaily: "WH.ui.chargedaily",
chargelimited: "WH.ui.chargelimited",
},
identifiedState: { identifiedState: {
unknown: "WH.conf.unknown", unknown: "WH.conf.unknown",
yes:"WH.conf.yes", yes:"WH.conf.yes",

View File

@ -11,7 +11,6 @@
import { WarheroActor } from "./warhero-actor.js"; import { WarheroActor } from "./warhero-actor.js";
import { WarheroItemSheet } from "./warhero-item-sheet.js"; import { WarheroItemSheet } from "./warhero-item-sheet.js";
import { WarheroActorSheet } from "./warhero-actor-sheet.js"; import { WarheroActorSheet } from "./warhero-actor-sheet.js";
import { WarheroPartySheet } from "./warhero-party-sheet.js";
import { WarheroNPCSheet } from "./warhero-npc-sheet.js"; import { WarheroNPCSheet } from "./warhero-npc-sheet.js";
import { WarheroMonsterSheet } from "./warhero-monster-sheet.js"; import { WarheroMonsterSheet } from "./warhero-monster-sheet.js";
import { WarheroUtility } from "./warhero-utility.js"; import { WarheroUtility } from "./warhero-utility.js";
@ -64,7 +63,6 @@ Hooks.once("init", async function () {
Actors.registerSheet("fvtt-warhero", WarheroActorSheet, { types: ["character"], makeDefault: true }); Actors.registerSheet("fvtt-warhero", WarheroActorSheet, { types: ["character"], makeDefault: true });
Actors.registerSheet("fvtt-warhero", WarheroNPCSheet, { types: ["npc"], makeDefault: false }); Actors.registerSheet("fvtt-warhero", WarheroNPCSheet, { types: ["npc"], makeDefault: false });
Actors.registerSheet("fvtt-warhero", WarheroMonsterSheet, { types: ["monster"], makeDefault: false }); Actors.registerSheet("fvtt-warhero", WarheroMonsterSheet, { types: ["monster"], makeDefault: false });
Actors.registerSheet("fvtt-warhero", WarheroPartySheet, { types: ["party"], makeDefault: false });
Items.unregisterSheet("core", ItemSheet); Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("fvtt-warhero", WarheroItemSheet, { makeDefault: true }); Items.registerSheet("fvtt-warhero", WarheroItemSheet, { makeDefault: true });

View File

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

View File

@ -231,7 +231,6 @@ export class WarheroUtility {
'systems/fvtt-warhero/templates/partial-item-description.html', 'systems/fvtt-warhero/templates/partial-item-description.html',
'systems/fvtt-warhero/templates/partial-item-common-equipment.html', 'systems/fvtt-warhero/templates/partial-item-common-equipment.html',
'systems/fvtt-warhero/templates/partial-actor-equipment.html', 'systems/fvtt-warhero/templates/partial-actor-equipment.html',
'systems/fvtt-warhero/templates/partial-container.html',
] ]
return loadTemplates(templatePaths); return loadTemplates(templatePaths);
} }

View File

@ -899,10 +899,11 @@ li {
#sidebar #sidebar-tabs i{ #sidebar #sidebar-tabs i{
width: 23px; width: 23px;
height: 23px; height: 23px;
/*display: inline-block;*/ display: inline-block;
background-position:center; background-position:center;
background-size:cover; background-size:cover;
text-shadow: 1px 1px 0 rgba(0,0,0,0.75); text-shadow: 1px 1px 0 rgba(0,0,0,0.75);
} }
.sidebar-tab .directory-list .entity { .sidebar-tab .directory-list .entity {
@ -915,7 +916,6 @@ li {
background: rgba(0, 0, 0, 0.05); background: rgba(0, 0, 0, 0.05);
cursor: pointer; cursor: pointer;
} }
.chat-message-header { .chat-message-header {
background: rgba(220, 220, 210, 0.5); background: rgba(220, 220, 210, 0.5);
font-size: 1.1rem; font-size: 1.1rem;
@ -930,7 +930,6 @@ li {
.chat-message .message-header .whisper-to { .chat-message .message-header .whisper-to {
font-size: 0.9rem; font-size: 0.9rem;
} }
.chat-actor-name { .chat-actor-name {
padding: 4px; padding: 4px;
} }
@ -1543,7 +1542,7 @@ li {
} }
.alternate-list { .alternate-list {
margin-top: 4px; margin-top: 4px;
flex-wrap: nowrap; fong2ex-wrap: nowrap;
} }
.item-filler { .item-filler {
flex-grow: 6; flex-grow: 6;

60
styles/unused.html Normal file
View File

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

View File

@ -10,7 +10,7 @@
"modules/warhero-main.js", "modules/warhero-main.js",
"modules/import-global.js" "modules/import-global.js"
], ],
"gridDistance": 1, "gridDistance": 5,
"gridUnits": "m", "gridUnits": "m",
"languages": [ "languages": [
{ {
@ -27,13 +27,87 @@
} }
], ],
"license": "LICENSE.txt", "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", "primaryTokenAttribute": "attributes.hp",
"secondaryTokenAttribute": "attributes.mana", "secondaryTokenAttribute": "attributes.mana",
"socket": true, "socket": true,
"styles": [ "styles": [
"styles/simple.css" "styles/simple.css"
], ],
"version": "10.0.54", "version": "10.0.37",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "10",
"verified": "10", "verified": "10",
@ -41,7 +115,8 @@
}, },
"title": "Warhero RPG", "title": "Warhero RPG",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-warhero/raw/branch/master/system.json", "manifest": "https://www.uberwald.me/gitea/public/fvtt-warhero/raw/branch/master/system.json",
"download": "https://www.uberwald.me/gitea/public/fvtt-warhero/archive/fvtt-warhero-10.0.54.zip", "download": "https://www.uberwald.me/gitea/uberwald/fvtt-warhero/archive/fvtt-warhero-10.0.37.zip",
"url": "https://www.uberwald.me/gitea/public/fvtt-warhero", "url": "https://www.uberwald.me/gitea/public/fvtt-warhero",
"background": "images/ui/warhero_welcome_page.webp",
"id": "fvtt-warhero" "id": "fvtt-warhero"
} }

View File

@ -3,15 +3,14 @@
"types": [ "types": [
"character", "character",
"npc", "npc",
"monster", "monster"
"party"
], ],
"templates": { "templates": {
"biodata": { "biodata": {
"biodata": { "biodata": {
"class": "", "class": "",
"age": 0, "age": 0,
"size": "medium", "size": 3,
"weight": "", "weight": "",
"height": "", "height": "",
"hair": "", "hair": "",
@ -62,8 +61,8 @@
"style": "edit", "style": "edit",
"hasmax": true, "hasmax": true,
"isheader": true, "isheader": true,
"max": 30, "max": 1,
"value": 30 "value": 1
}, },
"knowledge": { "knowledge": {
"label": "WH.ui.Knowledge", "label": "WH.ui.Knowledge",
@ -71,16 +70,15 @@
"style": "edit", "style": "edit",
"hasmax": false, "hasmax": false,
"roll": true, "roll": true,
"max": 0, "max": 1,
"value": 0 "value": 1
}, },
"def": { "def": {
"label": "WH.ui.Defence", "label": "WH.ui.Defence",
"abbrev": "def", "abbrev": "def",
"style": "edit", "style": "edit",
"iscombat": true, "max": 1,
"max": 12, "value": 1
"value": 12
}, },
"txcm": { "txcm": {
"label": "WH.ui.Throw2HitM", "label": "WH.ui.Throw2HitM",
@ -88,9 +86,8 @@
"istxc": true, "istxc": true,
"style": "edit", "style": "edit",
"roll": true, "roll": true,
"iscombat": true, "max": 1,
"max": 0, "value": 1
"value": 0
}, },
"txcr": { "txcr": {
"label": "WH.ui.Throw2HitR", "label": "WH.ui.Throw2HitR",
@ -98,9 +95,8 @@
"istxc": true, "istxc": true,
"style": "edit", "style": "edit",
"roll": true, "roll": true,
"iscombat": true, "max": 1,
"max": 0, "value": 1
"value": 0
}, },
"mana": { "mana": {
"label": "WH.ui.Mana", "label": "WH.ui.Mana",
@ -108,38 +104,37 @@
"style": "edit", "style": "edit",
"hasmax": true, "hasmax": true,
"isheader": true, "isheader": true,
"max": 3, "max": 1,
"value": 3 "value": 1
}, },
"ini": { "ini": {
"label": "WH.ui.Initiative", "label": "WH.ui.Initiative",
"abbrev": "ini", "abbrev": "ini",
"style": "edit", "style": "edit",
"iscombat": true,
"roll": true, "roll": true,
"max": 0, "max": 1,
"value": 0 "value": 1
}, },
"movearth": { "movearth": {
"label": "WH.ui.Movement", "label": "WH.ui.Movement",
"abbrev": "mov", "abbrev": "mov",
"style": "edit", "style": "edit",
"max": 6, "max": 1,
"value": 6 "value": 1
}, },
"movswim": { "movswim": {
"label": "WH.ui.MovementSwim", "label": "WH.ui.MovementSwim",
"abbrev": "mov", "abbrev": "mov",
"style": "edit", "style": "edit",
"max": 0, "max": 1,
"value": 0 "value": 1
}, },
"movfly": { "movfly": {
"label": "WH.ui.MovementFly", "label": "WH.ui.MovementFly",
"abbrev": "mov", "abbrev": "mov",
"style": "edit", "style": "edit",
"max": 0, "max": 1,
"value": 0 "value": 1
} }
}, },
"secondary": { "secondary": {
@ -153,7 +148,6 @@
"malusmultiweapon": { "malusmultiweapon": {
"label": "WH.ui.malusmultiweapon", "label": "WH.ui.malusmultiweapon",
"abbrev": "malusmultiweapon", "abbrev": "malusmultiweapon",
"iscombat": true,
"style": "edit", "style": "edit",
"value": 0 "value": 0
}, },
@ -161,7 +155,6 @@
"label": "WH.ui.drbonus", "label": "WH.ui.drbonus",
"abbrev": "drbonus", "abbrev": "drbonus",
"style": "edit", "style": "edit",
"iscombat": true,
"value": 0 "value": 0
}, },
"drbonustotal": { "drbonustotal": {
@ -169,28 +162,12 @@
"abbrev": "drbonustotal", "abbrev": "drbonustotal",
"disabled": true, "disabled": true,
"style": "edit", "style": "edit",
"iscombat": true,
"value": 0
},
"meleedamagebonus": {
"label": "WH.ui.meleedamagebonus",
"abbrev": "meleedamagebonus",
"iscombat": true,
"style": "edit",
"value": 0
},
"rangeddamagebonus": {
"label": "WH.ui.rangeddamagebonus",
"abbrev": "rangeddamagebonus",
"iscombat": true,
"style": "edit",
"value": 0 "value": 0
}, },
"parrybonus": { "parrybonus": {
"label": "WH.ui.parrybonus", "label": "WH.ui.parrybonus",
"abbrev": "parrybonus", "abbrev": "parrybonus",
"isparrybonus": true, "isparrybonus": true,
"iscombat": true,
"style": "edit", "style": "edit",
"value": 0 "value": 0
}, },
@ -199,7 +176,6 @@
"abbrev": "parrybonustotal", "abbrev": "parrybonustotal",
"disabled": true, "disabled": true,
"style": "edit", "style": "edit",
"iscombat": true,
"roll": true, "roll": true,
"value": 0 "value": 0
}, },
@ -236,11 +212,6 @@
"description": "" "description": ""
} }
}, },
"party": {
"templates": [
"biodata"
]
},
"character": { "character": {
"templates": [ "templates": [
"biodata", "biodata",
@ -374,7 +345,6 @@
"templates": [ "templates": [
"commonclassrace" "commonclassrace"
], ],
"issecondary": false,
"description": "" "description": ""
}, },
"race": { "race": {
@ -413,8 +383,6 @@
"slotused": 1, "slotused": 1,
"slotlocation": "weapon1", "slotlocation": "weapon1",
"isidentified": "unknown", "isidentified": "unknown",
"magiccharge": "notapplicable",
"chargevalue": 0,
"description": "" "description": ""
}, },
"armor": { "armor": {
@ -426,8 +394,6 @@
"slotused": 1, "slotused": 1,
"slotlocation": "armor", "slotlocation": "armor",
"isidentified": "unknown", "isidentified": "unknown",
"magiccharge": "notapplicable",
"chargevalue": 0,
"description": "" "description": ""
}, },
"shield": { "shield": {
@ -439,8 +405,6 @@
"slotused": 1, "slotused": 1,
"slotlocation": "shield", "slotlocation": "shield",
"isidentified": "unknown", "isidentified": "unknown",
"magiccharge": "notapplicable",
"chargevalue": 0,
"description": "" "description": ""
}, },
"equipment": { "equipment": {
@ -452,8 +416,6 @@
"slotlocation": "backpack", "slotlocation": "backpack",
"providedslot": 0, "providedslot": 0,
"isidentified": "unknown", "isidentified": "unknown",
"magiccharge": "notapplicable",
"chargevalue": 0,
"description": "" "description": ""
}, },
"power": { "power": {

View File

@ -21,52 +21,25 @@
<ul> <ul>
<li class="item flexrow list-item " data-item-id="{{race._id}}"> <li class="item flexrow list-item " data-item-id="{{race._id}}">
<label class="item-field-label-medium">{{localize "WH.ui.race"}}</label> <label class="item-field-label-medium">{{localize "WH.ui.race"}}</label>
{{#if race}}
<a class="item-edit"><img class="sheet-competence-img" src="{{race.img}}"></a> <a class="item-edit"><img class="sheet-competence-img" src="{{race.img}}"></a>
<input type="text" class="item-field-label-medium" disabled value="{{race.name}}" data-dtype="String" /> <input type="text" class="item-field-label-medium" disabled value="{{race.name}}" data-dtype="String" />
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
{{else}}
<a class="item-edit"><img class="sheet-competence-img" src="icons/svg/mystery-man.svg"></a>
{{/if}}
</li> </li>
<li class="item flexrow list-item " data-item-id="{{mainClass._id}}"> {{#each classes as |class idx|}}
<li class="item flexrow list-item" data-item-id="{{class._id}}">
<label class="item-field-label-medium">{{localize "WH.ui.class"}}</label> <label class="item-field-label-medium">{{localize "WH.ui.class"}}</label>
{{#if mainClass}} <a class="item-edit"><img class="sheet-competence-img" src="{{class.img}}"></a>
<a class="item-edit"><img class="sheet-competence-img" src="{{mainClass.img}}"></a> <input type="text" class="item-field-label-medium" disabled value="{{class.name}}" data-dtype="String" />
<input type="text" class="item-field-label-medium" disabled value="{{mainClass.name}}" data-dtype="String" />
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </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>
{{/each}}
<li class="item flexrow list-item" > <li class="item flexrow list-item" >
<label class="item-field-label-medium">{{localize "WH.ui.religion"}}</label> <label class="item-field-label-medium">{{localize "WH.ui.religion"}}</label>
<input type="text" class="item-field-label-medium" name="system.biodata.religion" value="{{system.biodata.religion}}" data-dtype="String" /> <input type="text" class="item-field-label-medium" name="system.biodata.religion" value="{{system.biodata.religion}}" data-dtype="String" />
&nbsp;&nbsp;
<label class="item-field-label-short">{{localize "WH.ui.size"}}</label>
<select class="item-field-label-short" type="text" name="system.biodata.size" value="{{system.biodata.size}}" data-dtype="String">
{{#select system.biodata.size}}
<option value="small">{{localize "WH.ui.small"}}</option>
<option value="medium">{{localize "WH.ui.medium"}}</option>
<option value="large">{{localize "WH.ui.large"}}</option>
{{/select}}
</select>
</li> </li>
</ul> </ul>
</div> </div>
@ -112,224 +85,12 @@
<div class="ability-item"> <div class="ability-item">
<ul> <ul>
{{#each system.attributes as |attr key|}} {{#each system.attributes as |attr key|}}
{{#if (not attr.iscombat)}}
{{#if (not attr.isheader)}} {{#if (not attr.isheader)}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-vlong"}} {{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-vlong"}}
{{/if}} {{/if}}
{{/if}}
{{/each}} {{/each}}
</ul> </ul>
</div>
<div class="ability-item">
<ul>
<li class="item flexrow list-item item-stat-roll" data-attr-key="{{key}}">
<span class="item-field-label-vlong" name="{{key}}">
<h4 class="item-field-label-vlong">
{{localize "WH.ui.xphp"}}
</h4>
</span>
<span class="item-field-label-long" >{{hpprogression}}</span>
</li>
{{#each system.secondary as |second key|}}
{{#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>
<div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">{{localize "WH.ui.languages"}}</label></h3>
</span>
</li>
{{#each languages as |language key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{language.img}}" /></a>
<span class="item-name-label-long">{{language.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
</div>
</div>
</div>
{{!-- Combat Tab --}}
<div class="tab combat" data-group="primary" data-tab="combat">
<div class="flexcol">
<div class="grid grid2col">
<ul class="stat-list alternate-list">
{{#with system.attributes.def as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="def" path="attributes" fieldClass="item-field-label-vlong"}}
{{/with}}
{{#with system.attributes.ini as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="ini" path="attributes" fieldClass="item-field-label-vlong"}}
{{/with}}
{{#with system.secondary.meleedamagebonus as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="meleedamagebonus" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
<ul class="stat-list alternate-list">
{{#with system.attributes.txcm as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="txcm" path="attributes" fieldClass="item-field-label-vlong"}}
{{/with}}
{{#with system.attributes.txcr as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="txch" path="attributes" fieldClass="item-field-label-vlong"}}
{{/with}}
{{#with system.secondary.rangeddamagebonus as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="rangeddamagebonus" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
</div>
<div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">{{localize "WH.ui.weapons"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Damage"}}</label>
</span>
</li>
{{#each equippedWeapons as |weapon key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{weapon.img}}" /></a>
<span class="item-name-label-long"><a class="roll-weapon"><i class="fa-solid fa-dice-d20"></i>{{weapon.name}}</a></span>
<span class="item-field-label-medium">{{localize (concat "WH.conf." weapon.system.weapontype)}}</span>
{{#if (eq system.weapontype "special")}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.system.damageformula}}</a></span>
{{else}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula}}</a></span>
{{/if}}
{{#if (eq system.weapontype "polearm")}}
<span class="item-field-label-medium"><a class="roll-damage-2hands"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula2Hands}}</a></span>
{{/if}}
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div class="grid grid2col">
<ul class="stat-list alternate-list">
{{#with system.secondary.parrybonus as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="parrybonus" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
<ul class="stat-list alternate-list">
{{#with system.secondary.parrybonustotal as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="parrybonustotal" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
</div>
<div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">{{localize "WH.ui.shields"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.parrybonus"}}</label>
</span>
</li>
{{#each equippedShields as |shield key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{shield._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{shield.img}}" /></a>
<span class="item-name-label-long">{{shield.name}}</span>
<span class="item-field-label-short">{{shield.system.shieldtype}}</span>
<span class="item-field-label-medium">{{shield.system.parrybonus}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div class="grid grid2col">
<ul class="stat-list alternate-list">
{{#with system.secondary.drbonus as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="drbonus" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
<ul class="stat-list alternate-list">
{{#with system.secondary.drbonustotal as |stat|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key="drbonustotal" path="secondary" fieldClass="item-field-label-vlong"}}
{{/with}}
</ul>
</div>
<div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">{{localize "WH.ui.armors"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.damagereduction"}}</label>
</span>
</li>
{{#each equippedArmors as |armor key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{armor._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{armor.img}}" /></a>
<span class="item-name-label-long">{{armor.name}}</span>
<span class="item-field-label-short">{{armor.system.armortype}}</span>
<span class="item-field-label-medium">{{armor.system.damagereduction}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div> <div>
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
@ -376,6 +137,162 @@
</div> </div>
</div> </div>
<div class="ability-item">
<ul>
<li class="item flexrow list-item item-stat-roll" data-attr-key="{{key}}">
<span class="item-field-label-vlong" name="{{key}}">
<h4 class="item-field-label-vlong">
{{localize "WH.ui.xphp"}}
</h4>
</span>
<span class="item-field-label-long" >{{hpprogression}}</span>
</li>
{{#each system.secondary as |second key|}}
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=second key=key path="secondary" fieldClass="item-field-label-vlong"}}
{{/each}}
</ul>
<div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">{{localize "WH.ui.languages"}}</label></h3>
</span>
</li>
{{#each languages as |language key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{language.img}}" /></a>
<span class="item-name-label-long">{{language.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
</div>
</div>
</div>
{{!-- Combat Tab --}}
<div class="tab combat" data-group="primary" data-tab="combat">
<div class="flexcol">
<div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">{{localize "WH.ui.weapons"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Damage"}}</label>
</span>
</li>
{{#each weapons as |weapon key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{weapon.img}}" /></a>
<span class="item-name-label-long"><a class="roll-weapon"><i class="fa-solid fa-dice-d20"></i>{{weapon.name}}</a></span>
<span class="item-field-label-medium">{{localize (concat "WH.conf." weapon.system.weapontype)}}</span>
{{#if (eq system.weapontype "special")}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.system.damageformula}}</a></span>
{{else}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula}}</a></span>
{{/if}}
{{#if (eq system.weapontype "polearm")}}
<span class="item-field-label-medium"><a class="roll-damage-2hands"><i class="fa-solid fa-dice-d20"></i>{{weapon.damageFormula2Hands}}</a></span>
{{/if}}
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">{{localize "WH.ui.shields"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.parrybonus"}}</label>
</span>
</li>
{{#each shields as |shield key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{shield._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{shield.img}}" /></a>
<span class="item-name-label-long">{{shield.name}}</span>
<span class="item-field-label-short">{{shield.system.shieldtype}}</span>
<span class="item-field-label-medium">{{shield.system.parrybonus}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">{{localize "WH.ui.armors"}}</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.damagereduction"}}</label>
</span>
</li>
{{#each armors as |armor key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{armor._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{armor.img}}" /></a>
<span class="item-name-label-long">{{armor.name}}</span>
<span class="item-field-label-short">{{armor.system.armortype}}</span>
<span class="item-field-label-medium">{{armor.system.damagereduction}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
</div>
</div> </div>
{{!-- Skills Tab --}} {{!-- Skills Tab --}}
@ -569,19 +486,58 @@
<label class="">{{localize "WH.ui.totalmoney"}} : {{totalMoney}}</label> <label class="">{{localize "WH.ui.totalmoney"}} : {{totalMoney}}</label>
</div> </div>
<hr> {{#each slotEquipments as |slot slotKey|}}
<h3>{{localize "WH.ui.bodyslots"}} : </h3> <ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg {{#if (gt slot.slotUsed slot.nbslots)}}items-title-bg-red{{/if}}">
<span class="item-name-label-header">
<h3><label class="items-title-text">{{localize slot.label}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.Type"}}</label>
</span>
<span class="item-field-label-long">
<label class="short-label">{{localize "WH.ui.Qty"}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.maxslots"}}: {{slot.nbslots}}</label>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.slotsused"}}: {{slot.slotUsed}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="{{itemtype}}" data-slot="{{slotKey}}" title="Create Item"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each slot.content as |item itemKey|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{item._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{item.img}}" /></a>
<span class="item-name-label">{{item.name}}</span>
{{#each bodyContainers as |slot slotKey|}} <span class="item-field-label-medium">
{{> systems/fvtt-warhero/templates/partial-container.html slot=slot slotKey=slotKey}} <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">
<label class="short-label">{{localize (concat "WH.conf." item.system.isidentified)}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{/each}} {{/each}}
<hr>
<h3>{{localize "WH.ui.containerslot"}} : </h3>
{{#each equipmentContainers as |slot slotKey|}}
{{> systems/fvtt-warhero/templates/partial-container.html slot=slot slotKey=slotKey}}
{{/each}}
<hr> <hr>
@ -614,6 +570,19 @@
</div> </div>
<div> <div>
<ul> <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"> <li class="flexrow item">
<label class="generic-label">{{localize "WH.ui.gender"}}</label> <label class="generic-label">{{localize "WH.ui.gender"}}</label>
<input type="text" class="" name="system.biodata.sex" value="{{system.biodata.sex}}" data-dtype="String" /> <input type="text" class="" name="system.biodata.sex" value="{{system.biodata.sex}}" data-dtype="String" />
@ -644,35 +613,6 @@
</div> </div>
<hr> <hr>
</article> </article>
{{#if isGM}}
<div>
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long">
<h3><label class="items-title-text">{{localize "WH.ui.allitems"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label class="short-label">{{localize "WH.ui.type"}}</label>
</span>
</li>
{{#each allItems as |item key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{item._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{item.img}}" /></a>
<span class="item-name-label-long">{{item.name}}</span>
<span class="item-field-label-medium">{{upperFirst item.type}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
{{/if}}
</div> </div>
</section> </section>

View File

@ -21,10 +21,6 @@
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.isclasssecondary"}}</label>
<input type="checkbox" name="system.issecondary" {{checked system.issecondary}}/>
</li>
{{#each system.weapons as |weaponflag key|}} {{#each system.weapons as |weaponflag key|}}
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.weapons"}} {{localize (concat "WH.conf." key)}}</label> <li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.weapons"}} {{localize (concat "WH.conf." key)}}</label>
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short" <input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"

View File

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

View File

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

View File

@ -21,24 +21,9 @@
</select> </select>
</li> </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> <li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.quantity"}}</label>
<input type="text" class="item-field-label-medium " name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/> <input type="text" class="item-field-label-medium " name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-medium">{{localize "WH.ui.cost"}}</label> <li class="flexrow"><label class="item-field-label-medium">{{localize "WH.ui.cost"}}</label>
<input type="text" class="item-field-label-medium " name="system.cost" value="{{system.cost}}" data-dtype="Number"/> <input type="text" class="item-field-label-medium " name="system.cost" value="{{system.cost}}" data-dtype="Number"/>
</li> </li>

View File

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

View File

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