Compare commits
No commits in common. "master" and "fvtt-avd12-v10.0.16" have entirely different histories.
master
...
fvtt-avd12
@ -16,7 +16,6 @@
|
|||||||
"TypeReaction": "Reaction",
|
"TypeReaction": "Reaction",
|
||||||
"TypeStance": "Stance",
|
"TypeStance": "Stance",
|
||||||
"TypeTrait": "Trait",
|
"TypeTrait": "Trait",
|
||||||
"TypeCondition": "Condition",
|
"TypeCondition": "Condition"
|
||||||
"TypeCraftingskill": "Crafting Skill"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -45,7 +45,6 @@ export class Avd12ActorSheet extends ActorSheet {
|
|||||||
equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
|
equippedWeapons: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquippedWeapons()) ),
|
||||||
equippedArmor: this.actor.getEquippedArmor(),
|
equippedArmor: this.actor.getEquippedArmor(),
|
||||||
equippedShield: this.actor.getEquippedShield(),
|
equippedShield: this.actor.getEquippedShield(),
|
||||||
craftingSkills: this.actor.getCraftingSkills(),
|
|
||||||
subActors: duplicate(this.actor.getSubActors()),
|
subActors: duplicate(this.actor.getSubActors()),
|
||||||
moneys: duplicate(this.actor.getMoneys()),
|
moneys: duplicate(this.actor.getMoneys()),
|
||||||
focusData: this.actor.computeFinalFocusData(),
|
focusData: this.actor.computeFinalFocusData(),
|
||||||
@ -130,25 +129,11 @@ export class Avd12ActorSheet extends ActorSheet {
|
|||||||
const li = $(event.currentTarget).parents(".item");
|
const li = $(event.currentTarget).parents(".item");
|
||||||
this.actor.rollSpell( li.data("item-id") )
|
this.actor.rollSpell( li.data("item-id") )
|
||||||
});
|
});
|
||||||
html.find('.roll-crafting').click((event) => {
|
|
||||||
const li = $(event.currentTarget).parents(".item");
|
|
||||||
this.actor.rollCrafting( li.data("item-id") )
|
|
||||||
});
|
|
||||||
html.find('.roll-universal').click((event) => {
|
|
||||||
let skillKey = $(event.currentTarget).data("skill-key")
|
|
||||||
this.actor.rollUniversal(skillKey)
|
|
||||||
});
|
|
||||||
|
|
||||||
html.find('.roll-weapon').click((event) => {
|
html.find('.roll-weapon').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const li = $(event.currentTarget).parents(".item");
|
||||||
const weponId = li.data("item-id")
|
const skillId = li.data("item-id")
|
||||||
this.actor.rollWeapon(weponId)
|
this.actor.rollWeapon(skillId)
|
||||||
});
|
|
||||||
html.find('.roll-weapon-damage').click((event) => {
|
|
||||||
const li = $(event.currentTarget).parents(".item");
|
|
||||||
const dmg = $(event.currentTarget).data("damage")
|
|
||||||
const weaponId = li.data("item-id")
|
|
||||||
this.actor.rollWeaponDamage(weaponId, dmg)
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -107,20 +107,7 @@ export class Avd12Actor extends Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
|
||||||
rebuildBonus() {
|
|
||||||
for (let bonusKey in this.system.bonus) {
|
|
||||||
let bonus = this.system.bonus[bonusKey]
|
|
||||||
for (let content in bonus) {
|
|
||||||
let dataPath = bonusKey + "." + content
|
|
||||||
//console.log("Parsing", bonusKey, content, dataPath)
|
|
||||||
let availableTraits = this.items.filter(t => t.type == "trait" && t.system.computebonus && t.system.bonusdata == dataPath)
|
|
||||||
for (let trait of availableTraits) {
|
|
||||||
bonus[content] += Number(trait.system.bonusvalue)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
prepareDerivedData() {
|
prepareDerivedData() {
|
||||||
|
|
||||||
@ -131,7 +118,6 @@ export class Avd12Actor extends Actor {
|
|||||||
|
|
||||||
this.rebuildSkills()
|
this.rebuildSkills()
|
||||||
this.rebuildMitigations()
|
this.rebuildMitigations()
|
||||||
this.rebuildBonus()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
super.prepareDerivedData();
|
super.prepareDerivedData();
|
||||||
@ -160,25 +146,7 @@ export class Avd12Actor extends Actor {
|
|||||||
return comp;
|
return comp;
|
||||||
}
|
}
|
||||||
getEquippedWeapons() {
|
getEquippedWeapons() {
|
||||||
let comp = duplicate(this.items.filter(item => item.type == 'weapon' && item.system.equipped) || [])
|
let comp = duplicate(this.items.filter(item => item.type == 'weapon' && item.system.equipped) || []);
|
||||||
comp.forEach(item => {
|
|
||||||
this.prepareWeapon(item)
|
|
||||||
})
|
|
||||||
Avd12Utility.sortArrayObjectsByName(comp)
|
|
||||||
return comp;
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
getWeapons() {
|
|
||||||
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || [])
|
|
||||||
comp.forEach(item => {
|
|
||||||
this.prepareWeapon(item)
|
|
||||||
})
|
|
||||||
Avd12Utility.sortArrayObjectsByName(comp)
|
|
||||||
return comp;
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
getCraftingSkills() {
|
|
||||||
let comp = duplicate(this.items.filter(item => item.type == 'craftingskill') || [])
|
|
||||||
Avd12Utility.sortArrayObjectsByName(comp)
|
Avd12Utility.sortArrayObjectsByName(comp)
|
||||||
return comp;
|
return comp;
|
||||||
}
|
}
|
||||||
@ -231,30 +199,10 @@ export class Avd12Actor extends Actor {
|
|||||||
return comp;
|
return comp;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
addDamages(damage, bonusDamage) {
|
getWeapons() {
|
||||||
//console.log(damage)
|
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []);
|
||||||
if (damage.damagetype != "none" && damage.dice) {
|
Avd12Utility.sortArrayObjectsByName(comp)
|
||||||
let fullBonus = Number(bonusDamage) + Number(damage.bonus)
|
return comp;
|
||||||
damage.normal = damage.dice + '+' + fullBonus
|
|
||||||
damage.critical = damage.dice + '+' + Number(fullBonus) * 2
|
|
||||||
let parser = damage.dice.match(/(\d+)(d\d+)/)
|
|
||||||
let nbDice = 2
|
|
||||||
if (parser && parser[1]) {
|
|
||||||
nbDice = Number(parser[1]) * 2
|
|
||||||
}
|
|
||||||
damage.brutal = nbDice + parser[2] + "+" + Number(fullBonus) * 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
prepareWeapon(weapon) {
|
|
||||||
//console.log(weapon)
|
|
||||||
weapon.attackBonus = this.system.bonus.weapon.attack + weapon.system.attackbonus + this.system.bonus[weapon.system.weapontype].attack
|
|
||||||
let bonusDamage = this.system.bonus.weapon.damage + this.system.bonus[weapon.system.weapontype].damage
|
|
||||||
this.addDamages(weapon.system.damages.primary, bonusDamage)
|
|
||||||
bonusDamage = this.system.bonus.weapon.damage + this.system.bonus[weapon.system.weapontype].crits
|
|
||||||
this.addDamages(weapon.system.damages.secondary, bonusDamage)
|
|
||||||
bonusDamage = this.system.bonus.weapon.damage + this.system.bonus[weapon.system.weapontype].brutals
|
|
||||||
this.addDamages(weapon.system.damages.tertiary + bonusDamage)
|
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getItemById(id) {
|
getItemById(id) {
|
||||||
@ -494,21 +442,12 @@ export class Avd12Actor extends Actor {
|
|||||||
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
|
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
clearInitiative(){
|
|
||||||
this.getFlag("world", "initiative", -1)
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getInitiativeScore(combatId, combatantId) {
|
getInitiativeScore(combatId, combatantId) {
|
||||||
if (this.type == 'character') {
|
if (this.type == 'character') {
|
||||||
let init = this.getFlag("world", "initiative" )
|
this.rollMR(true, combatId, combatantId)
|
||||||
console.log("INIT", init)
|
|
||||||
if (!init || init == -1) {
|
|
||||||
ChatMessage.create( { content: "Roll your initiative for this combat"} )
|
|
||||||
}
|
|
||||||
return init
|
|
||||||
}
|
}
|
||||||
|
console.log("Init required !!!!")
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -676,23 +615,6 @@ export class Avd12Actor extends Actor {
|
|||||||
skill.attr = duplicate(attr)
|
skill.attr = duplicate(attr)
|
||||||
let rollData = this.getCommonRollData()
|
let rollData = this.getCommonRollData()
|
||||||
rollData.mode = "skill"
|
rollData.mode = "skill"
|
||||||
rollMode.skillKey = skillKey
|
|
||||||
rollData.skill = skill
|
|
||||||
rollData.title = "Roll Skill " + skill.name
|
|
||||||
rollData.img = skill.img
|
|
||||||
this.startRoll(rollData)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
rollUniversal(skillKey) {
|
|
||||||
let skill = this.system.universal.skills[skillKey]
|
|
||||||
if (skill) {
|
|
||||||
skill = duplicate(skill)
|
|
||||||
skill.name = Avd12Utility.upperFirst(skillKey)
|
|
||||||
let rollData = this.getCommonRollData()
|
|
||||||
rollData.mode = "universal"
|
|
||||||
rollData.skillKey = skillKey
|
|
||||||
rollData.skill = skill
|
rollData.skill = skill
|
||||||
rollData.title = "Roll Skill " + skill.name
|
rollData.title = "Roll Skill " + skill.name
|
||||||
rollData.img = skill.img
|
rollData.img = skill.img
|
||||||
@ -736,60 +658,160 @@ export class Avd12Actor extends Actor {
|
|||||||
console.log("New fovcus", this.system, focusData)
|
console.log("New fovcus", this.system, focusData)
|
||||||
this.update({'system.focus': focusData})
|
this.update({'system.focus': focusData})
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
|
||||||
rollCrafting(craftId) {
|
|
||||||
let crafting = this.items.get(craftId)
|
|
||||||
if (crafting) {
|
|
||||||
crafting = duplicate(crafting)
|
|
||||||
let rollData = this.getCommonRollData()
|
|
||||||
rollData.mode = "crafting"
|
|
||||||
rollData.crafting = crafting
|
|
||||||
rollData.img = crafting.img
|
|
||||||
this.startRoll(rollData)
|
|
||||||
} else {
|
|
||||||
ui.notifications.warn("Unable to find the relevant weapon ")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
rollWeapon(weaponId) {
|
rollWeapon(weaponId) {
|
||||||
let weapon = this.items.get(weaponId)
|
let weapon = this.items.get(weaponId)
|
||||||
if (weapon) {
|
if (weapon) {
|
||||||
weapon = duplicate(weapon)
|
weapon = duplicate(weapon)
|
||||||
this.prepareWeapon(weapon)
|
let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase())
|
||||||
let rollData = this.getCommonRollData()
|
if (skill) {
|
||||||
rollData.modifier = this.system.bonus[weapon.system.weapontype]
|
skill = duplicate(skill)
|
||||||
|
Avd12Utility.updateSkill(skill)
|
||||||
|
let abilityKey = skill.system.ability
|
||||||
|
let rollData = this.getCommonRollData(abilityKey)
|
||||||
rollData.mode = "weapon"
|
rollData.mode = "weapon"
|
||||||
|
rollData.skill = skill
|
||||||
rollData.weapon = weapon
|
rollData.weapon = weapon
|
||||||
rollData.img = weapon.img
|
rollData.img = weapon.img
|
||||||
|
if (!rollData.forceDisadvantage) { // This is an attack, check if disadvantaged
|
||||||
|
rollData.forceDisadvantage = this.isAttackDisadvantage()
|
||||||
|
}
|
||||||
|
/*if (rollData.weapon.system.isranged && rollData.tokensDistance > Avd12Utility.getWeaponMaxRange(rollData.weapon) ) {
|
||||||
|
ui.notifications.warn(`Your target is out of range of your weapon (max: ${Avd12Utility.getWeaponMaxRange(rollData.weapon)} - current : ${rollData.tokensDistance})` )
|
||||||
|
return
|
||||||
|
}*/
|
||||||
this.startRoll(rollData)
|
this.startRoll(rollData)
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.warn("Unable to find the relevant weapon ")
|
ui.notifications.warn("Unable to find the relevant skill for weapon " + weapon.name)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollWeaponDamage(weaponId, damageType) {
|
rollDefenseMelee(attackRollData) {
|
||||||
let weapon = this.items.get(weaponId)
|
let weapon = this.items.get(attackRollData.defenseWeaponId)
|
||||||
if (weapon) {
|
if (weapon) {
|
||||||
weapon = duplicate(weapon)
|
weapon = duplicate(weapon)
|
||||||
this.prepareWeapon(weapon)
|
let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase())
|
||||||
let rollData = this.getCommonRollData()
|
if (skill) {
|
||||||
rollData.damageFormula = weapon.system.damages.primary[damageType]
|
skill = duplicate(skill)
|
||||||
rollData.mode = "weapon-damage"
|
Avd12Utility.updateSkill(skill)
|
||||||
|
let abilityKey = skill.system.ability
|
||||||
|
let rollData = this.getCommonRollData(abilityKey)
|
||||||
|
rollData.defenderTokenId = undefined // Cleanup
|
||||||
|
rollData.mode = "weapondefense"
|
||||||
|
rollData.shield = this.getEquippedShield()
|
||||||
|
rollData.attackRollData = duplicate(attackRollData)
|
||||||
|
rollData.skill = skill
|
||||||
rollData.weapon = weapon
|
rollData.weapon = weapon
|
||||||
rollData.damageType = damageType
|
|
||||||
rollData.img = weapon.img
|
rollData.img = weapon.img
|
||||||
let myRoll = new Roll(rollData.damageFormula).roll({ async: false })
|
if (!rollData.forceDisadvantage) { // This is an attack, check if disadvantaged
|
||||||
await Avd12Utility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
rollData.forceDisadvantage = this.isDefenseDisadvantage()
|
||||||
rollData.roll = myRoll
|
|
||||||
let msg = await Avd12Utility.createChatWithRollMode(rollData.alias, {
|
|
||||||
content: await renderTemplate(`systems/fvtt-avd12/templates/chat/chat-damage-result.hbs`, rollData)
|
|
||||||
})
|
|
||||||
msg.setFlag("world", "rolldata", rollData)
|
|
||||||
|
|
||||||
} else {
|
|
||||||
ui.notifications.warn("Unable to find the relevant weapon ")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.startRoll(rollData)
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Unable to find the relevant skill for weapon " + weapon.name)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Weapon not found ! ")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
rollDefenseRanged(attackRollData) {
|
||||||
|
let rollData = this.getCommonRollData()
|
||||||
|
rollData.defenderTokenId = undefined // Cleanup
|
||||||
|
rollData.mode = "rangeddefense"
|
||||||
|
if (attackRollData) {
|
||||||
|
rollData.attackRollData = duplicate(attackRollData)
|
||||||
|
rollData.effectiveRange = Avd12Utility.getWeaponRange(attackRollData.weapon)
|
||||||
|
rollData.tokensDistance = attackRollData.tokensDistance // QoL copy
|
||||||
|
}
|
||||||
|
rollData.sizeDice = Avd12Utility.getSizeDice(this.system.biodata.size)
|
||||||
|
rollData.distanceBonusDice = 0 //Math.max(0, Math.floor((rollData.tokensDistance - rollData.effectiveRange) + 0.5))
|
||||||
|
rollData.hasCover = "none"
|
||||||
|
rollData.situational = "none"
|
||||||
|
rollData.useshield = false
|
||||||
|
rollData.shield = this.getEquippedShield()
|
||||||
|
this.startRoll(rollData)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
rollShieldDie() {
|
||||||
|
let shield = this.getEquippedShield()
|
||||||
|
if (shield) {
|
||||||
|
shield = duplicate(shield)
|
||||||
|
let rollData = this.getCommonRollData()
|
||||||
|
rollData.mode = "shield"
|
||||||
|
rollData.shield = shield
|
||||||
|
rollData.useshield = true
|
||||||
|
rollData.img = shield.img
|
||||||
|
this.startRoll(rollData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async rollArmorDie(rollData = undefined) {
|
||||||
|
let armor = this.getEquippedArmor()
|
||||||
|
if (armor) {
|
||||||
|
armor = duplicate(armor)
|
||||||
|
let reduce = 0
|
||||||
|
let multiply = 1
|
||||||
|
let disadvantage = false
|
||||||
|
let advantage = false
|
||||||
|
let messages = ["Armor applied"]
|
||||||
|
|
||||||
|
if (rollData) {
|
||||||
|
if (Avd12Utility.isArmorLight(armor) && Avd12Utility.isWeaponPenetrating(rollData.attackRollData.weapon)) {
|
||||||
|
return { armorIgnored: true, nbSuccess: 0, messages: ["Armor ignored : Penetrating weapons ignore Light Armors."] }
|
||||||
|
}
|
||||||
|
if (Avd12Utility.isWeaponPenetrating(rollData.attackRollData.weapon)) {
|
||||||
|
messages.push("Armor reduced by 1 (Penetrating weapon)")
|
||||||
|
reduce = 1
|
||||||
|
}
|
||||||
|
if (Avd12Utility.isWeaponLight(rollData.attackRollData.weapon)) {
|
||||||
|
messages.push("Armor with advantage (Light weapon)")
|
||||||
|
advantage = true
|
||||||
|
}
|
||||||
|
if (Avd12Utility.isWeaponHeavy(rollData.attackRollData.weapon)) {
|
||||||
|
messages.push("Armor with disadvantage (Heavy weapon)")
|
||||||
|
disadvantage = true
|
||||||
|
}
|
||||||
|
if (Avd12Utility.isWeaponHack(rollData.attackRollData.weapon)) {
|
||||||
|
messages.push("Armor reduced by 1 (Hack weapon)")
|
||||||
|
reduce = 1
|
||||||
|
}
|
||||||
|
if (Avd12Utility.isWeaponUndamaging(rollData.attackRollData.weapon)) {
|
||||||
|
messages.push("Armor multiplied by 2 (Undamaging weapon)")
|
||||||
|
multiply = 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let diceColor = armor.system.absorprionroll
|
||||||
|
let armorResult = await Avd12Utility.getRollTableFromDiceColor(diceColor, false)
|
||||||
|
console.log("Armor log", armorResult)
|
||||||
|
let armorValue = Math.max(0, (Number(armorResult.text) + reduce) * multiply)
|
||||||
|
if (advantage || disadvantage) {
|
||||||
|
let armorResult2 = await Avd12Utility.getRollTableFromDiceColor(diceColor, false)
|
||||||
|
let armorValue2 = Math.max(0, (Number(armorResult2.text) + reduce) * multiply)
|
||||||
|
if (advantage) {
|
||||||
|
armorValue = (armorValue2 > armorValue) ? armorValue2 : armorValue
|
||||||
|
messages.push(`Armor advantage - Roll 1 = ${armorValue} - Roll 2 = ${armorValue2}`)
|
||||||
|
}
|
||||||
|
if (disadvantage) {
|
||||||
|
armorValue = (armorValue2 < armorValue) ? armorValue2 : armorValue
|
||||||
|
messages.push(`Armor disadvantage - Roll 1 = ${armorValue} - Roll 2 = ${armorValue2}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
armorResult.armorValue = armorValue
|
||||||
|
if (!rollData) {
|
||||||
|
ChatMessage.create({ content: "Armor result : " + armorValue })
|
||||||
|
}
|
||||||
|
messages.push("Armor result : " + armorValue)
|
||||||
|
return { armorIgnored: false, nbSuccess: armorValue, rawArmor: armorResult.text, messages: messages }
|
||||||
|
}
|
||||||
|
return { armorIgnored: true, nbSuccess: 0, messages: ["No armor equipped."] }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -27,14 +27,4 @@ export class Avd12Combat extends Combat {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
_onDelete() {
|
|
||||||
let combatants = this.combatants.contents
|
|
||||||
for (let c of combatants) {
|
|
||||||
let actor = game.actors.get(c.actorId)
|
|
||||||
actor.clearInitiative()
|
|
||||||
}
|
|
||||||
super._onDelete()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ export class Avd12ItemSheet extends ItemSheet {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
_getHeaderButtons() {
|
_getHeaderButtons() {
|
||||||
let buttons = super._getHeaderButtons();
|
let buttons = super._getHeaderButtons();
|
||||||
@ -52,15 +53,11 @@ export class Avd12ItemSheet extends ItemSheet {
|
|||||||
// Specific case for formating descriptions of sub-items
|
// Specific case for formating descriptions of sub-items
|
||||||
if (this.object.type == "module") {
|
if (this.object.type == "module") {
|
||||||
for (let level of this.object.system.levels) {
|
for (let level of this.object.system.levels) {
|
||||||
if ( level && level.features) {
|
|
||||||
for (let id in level.features) {
|
for (let id in level.features) {
|
||||||
if ( level.features[id] ) {
|
|
||||||
level.features[id].descriptionHTML = await TextEditor.enrichHTML(level.features[id].system.description, { async: true })
|
level.features[id].descriptionHTML = await TextEditor.enrichHTML(level.features[id].system.description, { async: true })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let formData = {
|
let formData = {
|
||||||
title: this.title,
|
title: this.title,
|
||||||
@ -253,12 +250,6 @@ export class Avd12ItemSheet extends ItemSheet {
|
|||||||
levels[levelIndex].choices[choiceIndex].features[featureId] = undefined
|
levels[levelIndex].choices[choiceIndex].features[featureId] = undefined
|
||||||
this.object.update({ 'system.levels': levels })
|
this.object.update({ 'system.levels': levels })
|
||||||
})
|
})
|
||||||
html.find('.module-level-delete').click(ev => {
|
|
||||||
let levels = duplicate(this.object.system.levels)
|
|
||||||
let levelIndex = Number($(ev.currentTarget).data("level-index"))
|
|
||||||
levels.splice(levelIndex,levelIndex)
|
|
||||||
this.object.update({ 'system.levels': levels })
|
|
||||||
})
|
|
||||||
|
|
||||||
html.find('.choice-level-selected').change(ev => {
|
html.find('.choice-level-selected').change(ev => {
|
||||||
this.processChoiceLevelSelection(ev)
|
this.processChoiceLevelSelection(ev)
|
||||||
|
@ -9,7 +9,6 @@ export const defaultItemImg = {
|
|||||||
module: "systems/fvtt-avd12/images/icons/focus2.webp",
|
module: "systems/fvtt-avd12/images/icons/focus2.webp",
|
||||||
money: "systems/fvtt-avd12/images/icons/focus2.webp",
|
money: "systems/fvtt-avd12/images/icons/focus2.webp",
|
||||||
spell: "systems/fvtt-avd12/images/icons/spell1.webp",
|
spell: "systems/fvtt-avd12/images/icons/spell1.webp",
|
||||||
craftingskill: "systems/fvtt-avd12/images/icons/cloak2.webp",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -528,9 +528,6 @@ export class Avd12Utility {
|
|||||||
if (rollData.skill) {
|
if (rollData.skill) {
|
||||||
diceFormula += "+" + rollData.skill.finalvalue
|
diceFormula += "+" + rollData.skill.finalvalue
|
||||||
}
|
}
|
||||||
if (rollData.crafting) {
|
|
||||||
diceFormula += "+" + rollData.crafting.system.level
|
|
||||||
}
|
|
||||||
if (rollData.spellAttack) {
|
if (rollData.spellAttack) {
|
||||||
diceFormula += "+" + rollData.spellAttack
|
diceFormula += "+" + rollData.spellAttack
|
||||||
}
|
}
|
||||||
@ -539,9 +536,6 @@ export class Avd12Utility {
|
|||||||
if (rollData.skill && rollData.skill.good) {
|
if (rollData.skill && rollData.skill.good) {
|
||||||
diceFormula += "+1d4"
|
diceFormula += "+1d4"
|
||||||
}
|
}
|
||||||
if (rollData.weapon ) {
|
|
||||||
diceFormula += "+" + rollData.weapon.attackBonus
|
|
||||||
}
|
|
||||||
rollData.diceFormula = diceFormula
|
rollData.diceFormula = diceFormula
|
||||||
|
|
||||||
// Performs roll
|
// Performs roll
|
||||||
@ -568,10 +562,6 @@ export class Avd12Utility {
|
|||||||
content: await renderTemplate(`systems/fvtt-avd12/templates/chat/chat-generic-result.hbs`, rollData)
|
content: await renderTemplate(`systems/fvtt-avd12/templates/chat/chat-generic-result.hbs`, rollData)
|
||||||
})
|
})
|
||||||
msg.setFlag("world", "rolldata", rollData)
|
msg.setFlag("world", "rolldata", rollData)
|
||||||
if (rollData.skillKey == "initiative") {
|
|
||||||
console.log("REGISTERED")
|
|
||||||
actor.setFlag("world", "initiative", myRoll.total)
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("Rolldata result", rollData)
|
console.log("Rolldata result", rollData)
|
||||||
}
|
}
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
{"name":"Heavy 2-Handed Blunt Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":200,"cost":1200,"health":0,"movespeed":0,"equipped":false,"weapontype":"crush","category":"heavy2h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"2d8","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHar0Cqlcw9R","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Light 1-Handed Blunt Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":50,"cost":350,"health":0,"movespeed":0,"equipped":false,"weapontype":"crush","category":"light1h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"1d10","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHar32dCrCv2","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Heavy 1-Handed Slash Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":100,"cost":600,"health":0,"movespeed":0,"equipped":false,"weapontype":"slash","category":"heavy1h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"1d12","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHar8Juk5ks7","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Light 2-Handed Slash Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":100,"cost":600,"health":0,"movespeed":0,"equipped":false,"weapontype":"slash","category":"light2h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"3d4","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHarDxHs0eLp","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Heavy Ranged Weapon","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":120,"cost":1200,"health":0,"movespeed":0,"equipped":false,"weapontype":"ranged","category":"heavyranged","minrange":4,"maxrange":30,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"2d6","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHarFD3DmT42","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Light 1-Handed Slash Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":50,"cost":350,"health":0,"movespeed":0,"equipped":false,"weapontype":"slash","category":"light1h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"1d10","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHarH20z6Lzc","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Light 1-Handed Pierce Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":50,"cost":350,"health":0,"movespeed":0,"equipped":false,"weapontype":"pierce","category":"light1h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"1d10","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHarHuz9mQH3","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Heavy 2-Handed Slash Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":200,"cost":1200,"health":0,"movespeed":0,"equipped":false,"weapontype":"slash","category":"heavy2h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"2d8","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHarO3iVLBrZ","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Light 2-Handed Pierce Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":100,"cost":600,"health":0,"movespeed":0,"equipped":false,"weapontype":"pierce","category":"light2h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"3d4","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHarP3WA52j3","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Light 2-Handed Blunt Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":100,"cost":600,"health":0,"movespeed":0,"equipped":false,"weapontype":"crush","category":"light2h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"3d4","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHarU8V5XbYB","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Heavy 2-Handed Pierce Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":200,"cost":1200,"health":0,"movespeed":0,"equipped":false,"weapontype":"pierce","category":"heavy2h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"2d8","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHarV3eCc8Ed","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Heavy 1-Handed Blunt Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":100,"cost":600,"health":0,"movespeed":0,"equipped":false,"weapontype":"crush","category":"heavy1h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"1d12","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHarc8F58s38","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Ultra-Light Ranged Weapon","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":40,"cost":400,"health":0,"movespeed":0,"equipped":false,"weapontype":"ranged","category":"ulightranged","minrange":0,"maxrange":4,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"1d6","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHariX73eN1h","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Heavy 1-Handed Pierce Weapon [Iron]","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":100,"cost":600,"health":0,"movespeed":0,"equipped":false,"weapontype":"pierce","category":"heavy1h","minrange":0,"maxrange":0,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"1d12","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHaroH0fihZh","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
||||||
{"name":"Light Ranged Weapon","type":"weapon","img":"systems/fvtt-avd12/images/icons/weapon2.webp","system":{"focuspointsbonus":0,"focusregenbonus":0,"burnchancebonus":0,"mitigation":{"physical":{"value":0},"psychic":{"value":0},"fire":{"value":0},"lightning":{"value":0},"cold":{"value":0},"dark":{"value":0},"divine":{"value":0},"arcane":{"value":0}},"bonus":{"block":{"value":0},"dodge":{"value":0},"resistance":{"value":0}},"focus":{"isfocus":false,"core":"corenone","treatment":"treatmentnone","bond":"bondnone"},"weight":80,"cost":600,"health":0,"movespeed":0,"equipped":false,"weapontype":"ranged","category":"lightranged","minrange":2,"maxrange":10,"throwrange":0,"magical":false,"blackenediron":false,"silvered":false,"damages":{"primary":{"damagetype":"physical","dice":"1d8","bonus":"0"},"secondary":{"damagetype":"none","dice":"","bonus":"0"},"tertiary":{"damagetype":"none","dice":"","bonus":"0"}},"description":""},"effects":[],"flags":{"core":{"sourceId":"Item.MOcIlHar8MM7JNm7"}},"_stats":{"systemId":"fvtt-avd12","systemVersion":"10.0.11","coreVersion":"10.288","createdTime":1671358405255,"modifiedTime":1671361680079,"lastModifiedBy":"JgmaAbvFHQvSlowN"},"_id":"MOcIlHaruSwtPJ77","folder":null,"sort":0,"ownership":{"default":0,"JgmaAbvFHQvSlowN":3}}
|
|
@ -1320,37 +1320,10 @@ ul, li {
|
|||||||
min-width:2rem;
|
min-width:2rem;
|
||||||
max-width: 2rem;
|
max-width: 2rem;
|
||||||
}
|
}
|
||||||
.attribute-label {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
.flexrow-no-expand {
|
|
||||||
flex-grow: 0;
|
|
||||||
}
|
|
||||||
.item-input-small {
|
|
||||||
max-width: 16px;
|
|
||||||
max-height: 12px;
|
|
||||||
}
|
|
||||||
.drop-module-step {
|
.drop-module-step {
|
||||||
background: linear-gradient(to bottom, #6c95b9fc 5%, #105177ab 100%);
|
background: linear-gradient(to bottom, #6c95b9fc 5%, #105177ab 100%);
|
||||||
background-color: #7d5d3b00;
|
background-color: #7d5d3b00;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
border: 2px ridge #846109;
|
border: 2px ridge #846109;
|
||||||
}
|
}
|
||||||
.module-level-box {
|
|
||||||
background: linear-gradient(to bottom, #6c95b9fc 5%, #105177ab 100%);
|
|
||||||
border-radius: 5px;
|
|
||||||
padding: 4px;
|
|
||||||
margin-bottom: 8px;
|
|
||||||
margin-left: 12px;
|
|
||||||
border: 2px ridge #846109;
|
|
||||||
max-width: 45%;
|
|
||||||
min-height: 64px;
|
|
||||||
align-content: center;
|
|
||||||
}
|
|
||||||
.color-selected {
|
|
||||||
background: linear-gradient(to bottom, #9ae470fc 5%, #247e30ab 100%);
|
|
||||||
}
|
|
||||||
.flex-center {
|
|
||||||
align-items: center;
|
|
||||||
align-content: space-between;
|
|
||||||
}
|
|
13
system.json
13
system.json
@ -51,20 +51,11 @@
|
|||||||
"system": "fvtt-avd12",
|
"system": "fvtt-avd12",
|
||||||
"private": false,
|
"private": false,
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Item",
|
|
||||||
"label": "Weapons",
|
|
||||||
"name": "weapons",
|
|
||||||
"path": "packs/weapons.db",
|
|
||||||
"system": "fvtt-avd12",
|
|
||||||
"private": false,
|
|
||||||
"flags": {}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"title": "AnyVenture D12 RPG",
|
"title": "AnyVenture D12 RPG",
|
||||||
"url": "https://www.uberwald.me/gitea/public/fvtt-avd12",
|
"url": "https://www.uberwald.me/gitea/public/fvtt-avd12",
|
||||||
"version": "10.0.25",
|
"version": "10.0.16",
|
||||||
"download": "https://www.uberwald.me/gitea/public/fvtt-avd12/archive/fvtt-avd12-v10.0.25.zip",
|
"download": "https://www.uberwald.me/gitea/public/fvtt-avd12/archive/fvtt-avd12-v10.0.16.zip",
|
||||||
"background": "systems/fvtt-avd12/images/ui/avd12_welcome_page.webp"
|
"background": "systems/fvtt-avd12/images/ui/avd12_welcome_page.webp"
|
||||||
}
|
}
|
@ -164,13 +164,11 @@
|
|||||||
"universal": {
|
"universal": {
|
||||||
"skills": {
|
"skills": {
|
||||||
"search": {
|
"search": {
|
||||||
"label": "Search",
|
|
||||||
"modifier": 0,
|
"modifier": 0,
|
||||||
"finalvalue": 0,
|
"finalvalue": 0,
|
||||||
"good": false
|
"good": false
|
||||||
},
|
},
|
||||||
"initiative": {
|
"initiative": {
|
||||||
"label": "Initiative",
|
|
||||||
"modifier": 0,
|
"modifier": 0,
|
||||||
"finalvalue": 0,
|
"finalvalue": 0,
|
||||||
"good": false
|
"good": false
|
||||||
@ -261,12 +259,6 @@
|
|||||||
"crits": 0,
|
"crits": 0,
|
||||||
"brutals": 0
|
"brutals": 0
|
||||||
},
|
},
|
||||||
"crush": {
|
|
||||||
"attack": 0,
|
|
||||||
"damage": 0,
|
|
||||||
"crits": 0,
|
|
||||||
"brutals": 0
|
|
||||||
},
|
|
||||||
"slash": {
|
"slash": {
|
||||||
"attack": 0,
|
"attack": 0,
|
||||||
"damage": 0,
|
"damage": 0,
|
||||||
@ -358,7 +350,6 @@
|
|||||||
"weapon",
|
"weapon",
|
||||||
"module",
|
"module",
|
||||||
"money",
|
"money",
|
||||||
"craftingskill",
|
|
||||||
"condition",
|
"condition",
|
||||||
"action",
|
"action",
|
||||||
"freeaction",
|
"freeaction",
|
||||||
@ -420,10 +411,6 @@
|
|||||||
"movespeed": 0
|
"movespeed": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"craftingskill" : {
|
|
||||||
"level": 0,
|
|
||||||
"description": ""
|
|
||||||
},
|
|
||||||
"action": {
|
"action": {
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
@ -499,7 +486,6 @@
|
|||||||
"templates": [
|
"templates": [
|
||||||
"commonitem"
|
"commonitem"
|
||||||
],
|
],
|
||||||
"attackbonus": 0,
|
|
||||||
"minrange": 0,
|
"minrange": 0,
|
||||||
"maxrange": 0,
|
"maxrange": 0,
|
||||||
"throwrange": 0,
|
"throwrange": 0,
|
||||||
|
@ -11,43 +11,24 @@
|
|||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
{{#each system.attributes as |attr attrKey|}}
|
{{#each system.attributes as |attr attrKey|}}
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
<div class="flexrow flexrow-no-expand">
|
<div class="flerow">
|
||||||
<span class="attribute-label">{{attr.label}}</span>
|
<span>{{attr.label}}</span>
|
||||||
<input type="text" class="item-field-label-short" name="system.attributes.{{attrKey}}.value" value="{{attr.value}}" data-dtype="Number"/>
|
<input type="text" class="item-field-label-short" name="system.attributes.{{attrKey}}.value" value="{{attr.value}}" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
{{#each attr.skills as |skill skillKey|}}
|
{{#each attr.skills as |skill skillKey|}}
|
||||||
<div class="flexrow flexrow-no-expand">
|
<div class="flexrow">
|
||||||
<span class="item-field-skill skill-label">
|
<span class="item-field-skill skill-label"><a class="roll-skill" data-attr-key="{{attrKey}}" data-skill-key="{{skillKey}}"><i class="fa-solid fa-dice-d12"></i> {{upperFirst skillKey}} {{skill.finalvalue}}</a></span>
|
||||||
<a class="roll-skill" data-attr-key="{{attrKey}}" data-skill-key="{{skillKey}}">
|
|
||||||
<i class="fa-solid fa-dice-d12"></i> {{upperFirst skillKey}} {{skill.finalvalue}}</a>
|
|
||||||
</span>
|
|
||||||
<input type="checkbox" class="skill-good-checkbox" name="system.attributes.{{attrKey}}.skills.{{skillKey}}.good" {{checked skill.good}} />
|
<input type="checkbox" class="skill-good-checkbox" name="system.attributes.{{attrKey}}.skills.{{skillKey}}.good" {{checked skill.good}} />
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
<div class="flexrow flexrow-no-expand">
|
|
||||||
<span class="attribute-label"> </span>
|
|
||||||
</div>
|
|
||||||
{{#if (eq attrKey "might")}}
|
|
||||||
<div class="flexrow flexrow-no-expand">
|
|
||||||
<span class="attribute-label">Universal</span>
|
|
||||||
</div>
|
|
||||||
{{#each @root.system.universal.skills as |skill skillKey|}}
|
|
||||||
<div class="flexrow flexrow-no-expand">
|
|
||||||
<span class="item-field-skill skill-label">
|
|
||||||
<a class="roll-universal" data-skill-key="{{skillKey}}">
|
|
||||||
<i class="fa-solid fa-dice-d12"></i> {{upperFirst skillKey}}
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
<input type="text" class="item-input-small" name="system.universal.skills.{{skillKey}}.finalvalue" value="{{skill.finalvalue}}" data-dtype="Number"/>
|
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{else}}
|
|
||||||
<div class="flexrow">
|
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
|
|
||||||
|
<div class="ability-item">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ability-item status-block">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -128,7 +109,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{!-- Modules Tab --}}
|
{{!-- Combat Tab --}}
|
||||||
<div class="tab modules" data-group="primary" data-tab="modules">
|
<div class="tab modules" data-group="primary" data-tab="modules">
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
@ -216,34 +197,6 @@
|
|||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
|
|
||||||
<ul class="item-list alternate-list">
|
|
||||||
<li class="item flexrow list-item items-title-bg">
|
|
||||||
<span class="item-name-label-header item-name-label-header-long2">
|
|
||||||
<h3><label class="item-name-label-header-long2">Equipped Weapons</label></h3>
|
|
||||||
</span>
|
|
||||||
<span class="item-field-label-long">
|
|
||||||
<label class="short-label">Damage</label>
|
|
||||||
</span>
|
|
||||||
<span class="item-field-label-long">
|
|
||||||
<label class="short-label">Critical</label>
|
|
||||||
</span>
|
|
||||||
<span class="item-field-label-long">
|
|
||||||
<label class="short-label">Brutal</label>
|
|
||||||
</span>
|
|
||||||
</li>
|
|
||||||
{{#each equippedWeapons as |weapon key|}}
|
|
||||||
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}">
|
|
||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
|
||||||
src="{{weapon.img}}" /></a>
|
|
||||||
<span class="item-name-label-long2"><a class="roll-weapon"><i class="fa-solid fa-dice-d12"></i>{{weapon.name}}</a></span>
|
|
||||||
<span class="item-field-label-long"><label><a class="roll-weapon-damage" data-damage="normal"><i class="fa-solid fa-dice-d12"></i>{{weapon.system.damages.primary.normal}}</label></a></span>
|
|
||||||
<span class="item-field-label-long"><label><a class="roll-weapon-damage" data-damage="critical"><i class="fa-solid fa-dice-d12"></i>{{weapon.system.damages.primary.critical}}</label></a></span>
|
|
||||||
<span class="item-field-label-long"><label><a class="roll-weapon-damage" data-damage="brutal"><i class="fa-solid fa-dice-d12"></i>{{weapon.system.damages.primary.brutal}}</label></a></span>
|
|
||||||
<div class="item-filler"> </div>
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="stat-list alternate-list">
|
<ul class="stat-list alternate-list">
|
||||||
<li class="item flexrow list-item items-title-bg">
|
<li class="item flexrow list-item items-title-bg">
|
||||||
<span class="item-name-label-header">
|
<span class="item-name-label-header">
|
||||||
@ -272,6 +225,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -512,39 +466,6 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{!-- Equipement Tab --}}
|
|
||||||
<div class="tab crafting" data-group="primary" data-tab="crafting">
|
|
||||||
|
|
||||||
|
|
||||||
<ul class="item-list alternate-list">
|
|
||||||
<li class="item flexrow list-item items-title-bg">
|
|
||||||
<span class="item-name-label-header">
|
|
||||||
<h3><label class="items-title-text">Crafting</label></h3>
|
|
||||||
</span>
|
|
||||||
<span class="item-field-label-short">
|
|
||||||
<label class="short-label">Level</label>
|
|
||||||
</span>
|
|
||||||
<div class="item-controls item-controls-fixed">
|
|
||||||
<a class="item-control item-add" data-type="weapon" title="Create Item"><i class="fas fa-plus"></i></a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
{{#each craftingSkills as |crafting key|}}
|
|
||||||
<li class="item flexrow list-item list-item-shadow" data-item-id="{{crafting._id}}">
|
|
||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
|
||||||
src="{{crafting.img}}" /></a>
|
|
||||||
<span class="item-name-label"> <a class="roll-crafting"><i class="fa-solid fa-dice-d12"> </i>{{crafting.name}}</a></span>
|
|
||||||
<span class="item-field-label-short"><label>{{crafting.system.level}}</label></span>
|
|
||||||
|
|
||||||
<div class="item-filler"> </div>
|
|
||||||
<div class="item-controls item-controls-fixed">
|
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{!-- Biography Tab --}}
|
{{!-- Biography Tab --}}
|
||||||
<div class="tab biodata" data-group="primary" data-tab="biodata">
|
<div class="tab biodata" data-group="primary" data-tab="biodata">
|
||||||
<div class="grid grid-2col">
|
<div class="grid grid-2col">
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
<div class="chat-message-header">
|
|
||||||
{{#if actorImg}}
|
|
||||||
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
|
||||||
{{/if}}
|
|
||||||
<h4 class=chat-actor-name>{{alias}}</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
{{#if img}}
|
|
||||||
<div >
|
|
||||||
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="flexcol">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>Weapon : {{weapon.name}}
|
|
||||||
</li>
|
|
||||||
<li>Damage formula : {{damageFormula}} ({{upperFirst damageType}})
|
|
||||||
</li>
|
|
||||||
<li>Damage type : {{upperFirst weapon.system.damages.primary.damagetype}}
|
|
||||||
</li>
|
|
||||||
<li>Total : {{roll.total}}
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
@ -23,11 +23,6 @@
|
|||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if crafting}}
|
|
||||||
<li>Crafting : {{crafting.name}} ({{crafting.system.level}})
|
|
||||||
</li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if spell}}
|
{{#if spell}}
|
||||||
<li>Spell : {{spell.name}} ({{spell.system.level}})
|
<li>Spell : {{spell.name}} ({{spell.system.level}})
|
||||||
</li>
|
</li>
|
||||||
@ -35,7 +30,6 @@
|
|||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<li>Bonus/Malus {{bonusMalusRoll}} </li>
|
|
||||||
<li>Dice Formula {{diceFormula}} </li>
|
<li>Dice Formula {{diceFormula}} </li>
|
||||||
<li>Result {{roll.total}} </li>
|
<li>Result {{roll.total}} </li>
|
||||||
|
|
||||||
|
@ -15,20 +15,6 @@
|
|||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if crafting}}
|
|
||||||
<div class="flexrow">
|
|
||||||
<span class="roll-dialog-label">Crafting : </span>
|
|
||||||
<span class="roll-dialog-label">{{crafting.name}} ({{crafting.system.level}})</span>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if weapon}}
|
|
||||||
<div class="flexrow">
|
|
||||||
<span class="roll-dialog-label">Weapon Attack Bonus : </span>
|
|
||||||
<span class="roll-dialog-label">{{weapon.attackBonus}}</span>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if spell}}
|
{{#if spell}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Spell : </span>
|
<span class="roll-dialog-label">Spell : </span>
|
||||||
@ -61,10 +47,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if (eq skillKey "initiative") }}
|
{{#if spell}}
|
||||||
|
|
||||||
{{else}}
|
|
||||||
{{#if (or spell weapon)}}
|
|
||||||
|
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
@ -81,7 +64,6 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
<form class="{{cssClass}}" autocomplete="off">
|
|
||||||
<header class="sheet-header">
|
|
||||||
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
|
||||||
<div class="header-fields">
|
|
||||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
{{> systems/fvtt-avd12/templates/items/partial-item-nav.hbs}}
|
|
||||||
|
|
||||||
|
|
||||||
{{!-- Sheet Body --}}
|
|
||||||
<section class="sheet-body">
|
|
||||||
|
|
||||||
{{> systems/fvtt-avd12/templates/items/partial-item-description.hbs}}
|
|
||||||
|
|
||||||
<div class="tab details" data-group="primary" data-tab="details">
|
|
||||||
|
|
||||||
<div class="tab" data-group="primary">
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li class="flexrow">
|
|
||||||
<label class="item-field-label-long">Level</label>
|
|
||||||
<input type="text" class="item-field-label-short" name="system.level" value="{{system.level}}" data-dtype="Number"/>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</form>
|
|
@ -15,23 +15,7 @@
|
|||||||
{{> systems/fvtt-avd12/templates/items/partial-item-description.hbs}}
|
{{> systems/fvtt-avd12/templates/items/partial-item-description.hbs}}
|
||||||
|
|
||||||
<div class="tab details" data-group="primary" data-tab="details">
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
TODO : The tre of module choices will be displayed here for players, with the "selected" option only
|
||||||
<div class="flexcol">
|
|
||||||
{{#each system.levels as |level index|}}
|
|
||||||
<div class="flexrow flex-center">
|
|
||||||
{{#each level.choices as |choice choiceIndex|}}
|
|
||||||
<span class="module-level-box {{#if choice.selected}}color-selected{{/if}}">
|
|
||||||
<ul>
|
|
||||||
{{#each choice.features as |feature id|}}
|
|
||||||
<li>{{feature.name}}</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
</span>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if isGM}}
|
{{#if isGM}}
|
||||||
@ -43,9 +27,6 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<h2 class="item-field-label-long">Level {{add index 1}}</h2>
|
<h2 class="item-field-label-long">Level {{add index 1}}</h2>
|
||||||
<span class="item-field-label-short">
|
|
||||||
<a class="item-control module-level-delete" data-level-index="{{index}}" title="Delete Level"><i class="fas fa-trash"></i></a>
|
|
||||||
</span>
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<ul class="ul-level1">
|
<ul class="ul-level1">
|
||||||
|
@ -41,13 +41,10 @@
|
|||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<!--
|
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="item-field-label-long">Selected</label>
|
<label class="item-field-label-long">Selected</label>
|
||||||
<input type="checkbox" class="item-field-label-short" name="system.selected" {{checked system.selected}} />
|
<input type="checkbox" class="item-field-label-short" name="system.selected" {{checked system.selected}} />
|
||||||
</li>
|
</li>
|
||||||
-->
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -90,15 +90,15 @@
|
|||||||
<label class="item-field-label-long">{{upperFirst key}}</label>
|
<label class="item-field-label-long">{{upperFirst key}}</label>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label class="item-field-label-short">Type</label>
|
<label class="item-field-label-short">Type</label>
|
||||||
<select class="item-field-label-long" type="text" name="system.damages.{{key}}.damagetype" value="{{damage.damagetype}}" data-dtype="String">
|
<select class="item-field-label-long" type="text" name="system.damages.{{key}}.damagetype" value="{{system.damagetype}}" data-dtype="String">
|
||||||
{{#select damage.damagetype}}
|
{{#select system.damagetype}}
|
||||||
{{> systems/fvtt-avd12/templates/items/partial-options-damage-types.hbs}}
|
{{> systems/fvtt-avd12/templates/items/partial-options-damage-types.hbs}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label class="item-field-label-short">Dice</label>
|
<label class="item-field-label-short">Dice</label>
|
||||||
<input type="text" class="item-field-label-short" name="system.damages.{{key}}.dice" value="{{damage.dice}}" data-dtype="String"/>
|
<input type="text" class="item-field-label-short" name="system.damages.{{key}}.dice" value="{{damage.dice}}" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label class="item-field-label-short">Bonus</label>
|
<label class="item-field-label-short">Bonus</label>
|
||||||
|
@ -1,3 +1,43 @@
|
|||||||
|
<li class='flexrow'>
|
||||||
|
<label class='item-field-label-long'>
|
||||||
|
Focus Points Bonus
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type='text'
|
||||||
|
class='item-field-label-short'
|
||||||
|
name='system.focuspointsbonus'
|
||||||
|
value="{{system.focuspointsbonus}}"
|
||||||
|
data-dtype='Number'
|
||||||
|
/>
|
||||||
|
|
||||||
|
<label class='item-field-label-short'>
|
||||||
|
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label class='item-field-label-long'>
|
||||||
|
Focus Regen Bonus
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type='text'
|
||||||
|
class='item-field-label-short'
|
||||||
|
name='system.focusregenbonus'
|
||||||
|
value="{{system.focusregenbonus}}"
|
||||||
|
data-dtype='Number'
|
||||||
|
/>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class='flexrow'>
|
||||||
|
<label class='item-field-label-long'>
|
||||||
|
Burn Chance Bonus
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type='text'
|
||||||
|
class='item-field-label-short'
|
||||||
|
name='system.burnchancebonus'
|
||||||
|
value="{{system.burnchancebonus}}"
|
||||||
|
data-dtype='Number'
|
||||||
|
/>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li class='flexrow'>
|
<li class='flexrow'>
|
||||||
<h3 class='item-field-label-long'>
|
<h3 class='item-field-label-long'>
|
||||||
@ -51,26 +91,6 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
{{#if (eq type "weapon")}}
|
|
||||||
<li class='flexrow'>
|
|
||||||
<div>
|
|
||||||
<label class='item-field-label-short'>
|
|
||||||
Attack Bonus
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type='text'
|
|
||||||
class='item-field-label-short padd-right'
|
|
||||||
name="system.attackbonus"
|
|
||||||
value="{{system.attackbonus}}"
|
|
||||||
data-dtype='Number'
|
|
||||||
/>
|
|
||||||
<label>
|
|
||||||
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<li class='flexrow'>
|
<li class='flexrow'>
|
||||||
<h3 class='item-field-label-long'>
|
<h3 class='item-field-label-long'>
|
||||||
Focus
|
Focus
|
||||||
@ -106,46 +126,6 @@
|
|||||||
<span>Spell Damage Bonus : {{focusData.spellDamageBonus}} </span>
|
<span>Spell Damage Bonus : {{focusData.spellDamageBonus}} </span>
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<li class='flexrow'>
|
|
||||||
<label class='item-field-label-long'>
|
|
||||||
Focus Points Bonus
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type='text'
|
|
||||||
class='item-field-label-short'
|
|
||||||
name='system.focuspointsbonus'
|
|
||||||
value="{{system.focuspointsbonus}}"
|
|
||||||
data-dtype='Number'
|
|
||||||
/>
|
|
||||||
|
|
||||||
<label class='item-field-label-short'>
|
|
||||||
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label class='item-field-label-long'>
|
|
||||||
Focus Regen Bonus
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type='text'
|
|
||||||
class='item-field-label-short'
|
|
||||||
name='system.focusregenbonus'
|
|
||||||
value="{{system.focusregenbonus}}"
|
|
||||||
data-dtype='Number'
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class='flexrow'>
|
|
||||||
<label class='item-field-label-long'>
|
|
||||||
Burn Chance Bonus
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type='text'
|
|
||||||
class='item-field-label-short'
|
|
||||||
name='system.burnchancebonus'
|
|
||||||
value="{{system.burnchancebonus}}"
|
|
||||||
data-dtype='Number'
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class='flexrow'>
|
<li class='flexrow'>
|
||||||
<h3 class='item-field-label-long'>
|
<h3 class='item-field-label-long'>
|
||||||
|
@ -3,4 +3,3 @@
|
|||||||
<option value="blunt">Blunt</option>
|
<option value="blunt">Blunt</option>
|
||||||
<option value="slash">Slash</option>
|
<option value="slash">Slash</option>
|
||||||
<option value="pierce">Pierce</option>
|
<option value="pierce">Pierce</option>
|
||||||
<option value="crush">Crush</option>
|
|
||||||
|
Reference in New Issue
Block a user