Attempt to add HUD core
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// System Module Imports
|
||||
import { Utils } from './utils.js'
|
||||
import { SYSTEM } from "../../config/system.mjs"
|
||||
|
||||
export let ActionHandler = null
|
||||
|
||||
Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
@@ -38,7 +39,7 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
* @private
|
||||
*/
|
||||
#buildCharacterActions() {
|
||||
this.buildAttributes()
|
||||
this.buildCharacteristics()
|
||||
this.buildOther()
|
||||
this.buildLuck()
|
||||
this.buildSkills()
|
||||
@@ -49,17 +50,17 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
return game.settings.get('token-action-hud-core', 'tooltips') === 'none'
|
||||
}
|
||||
|
||||
async buildAttributes() {
|
||||
async buildCharacteristics() {
|
||||
const actions = []
|
||||
for (const key in this.actor.system.characteristics) {
|
||||
const encodedValue = [coreModule.api.Utils.i18n('attributes'), key].join(this.delimiter)
|
||||
const encodedValue = [coreModule.api.Utils.i18n('CTHULHUETERNAL.Label.characteristics'), key].join(this.delimiter)
|
||||
const tooltip = {
|
||||
content: String(this.actor.system.characteristics[key].value * 5),
|
||||
class: 'tah-system-tooltip',
|
||||
direction: 'LEFT'
|
||||
}
|
||||
actions.push({
|
||||
name: coreModule.api.Utils.i18n('CTHULHUETERNAL.Label.' + key),
|
||||
name: coreModule.api.Utils.i18n(`CTHULHUETERNAL.Label.${key}`),
|
||||
id: key,
|
||||
info1: this.#showValue() ? { text: tooltip.content } : null,
|
||||
tooltip,
|
||||
@@ -67,7 +68,7 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
})
|
||||
}
|
||||
await this.addActions(actions, {
|
||||
id: 'attributes',
|
||||
id: 'characteristics',
|
||||
type: 'system'
|
||||
})
|
||||
}
|
||||
@@ -80,17 +81,17 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
direction: 'LEFT'
|
||||
}
|
||||
actions.push({
|
||||
name: coreModule.api.Utils.i18n('CTHULHUETERNAL.Label.Luck'),
|
||||
name: coreModule.api.Utils.i18n('CTHULHUETERNAL.Label.luck'),
|
||||
id: 'luck',
|
||||
info1: this.#showValue() ? { text: '50' } : null,
|
||||
tooltip,
|
||||
encodedValue: ['attributes', 'luck'].join(this.delimiter)
|
||||
encodedValue: ['characteristics', 'luck'].join(this.delimiter)
|
||||
})
|
||||
await this.addActions(actions, { id: 'luck', type: 'system' })
|
||||
}
|
||||
|
||||
async buildOther() {
|
||||
if (typeof this.actor.system.sanity.value !== 'undefined') {
|
||||
if (typeof this.actor.system?.san?.value !== 'undefined') {
|
||||
const actions = []
|
||||
const groupData = {
|
||||
id: 'other_sanity',
|
||||
@@ -99,7 +100,7 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
}
|
||||
this.addGroup(groupData, { id: 'other', type: 'system' }, true)
|
||||
const tooltip = {
|
||||
content: String(this.actor.system.san.value + '/' + this.actor.system.san.max),
|
||||
content: `${this.actor.system.san.value}/${this.actor.system.san.max}`,
|
||||
class: 'tah-system-tooltip',
|
||||
direction: 'LEFT'
|
||||
}
|
||||
@@ -108,17 +109,19 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
id: 'sanity',
|
||||
info1: this.#showValue() ? { text: tooltip.content } : null,
|
||||
tooltip,
|
||||
encodedValue: ['attributes', 'sanity'].join(this.delimiter)
|
||||
encodedValue: ['characteristics', 'sanity'].join(this.delimiter)
|
||||
},
|
||||
{
|
||||
name: '+',
|
||||
id: 'sanity_add',
|
||||
encodedValue: ['attributes', 'sanity_add'].join(this.delimiter)
|
||||
tooltip,
|
||||
encodedValue: ['characteristics', 'sanity_add'].join(this.delimiter)
|
||||
},
|
||||
{
|
||||
name: '-',
|
||||
id: 'sanity_subtract',
|
||||
encodedValue: ['attributes', 'sanity_subtract'].join(this.delimiter)
|
||||
tooltip,
|
||||
encodedValue: ['characteristics', 'sanity_subtract'].join(this.delimiter)
|
||||
})
|
||||
await this.addActions(actions, { id: 'other_sanity', type: 'system' })
|
||||
}
|
||||
@@ -131,7 +134,7 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
}
|
||||
this.addGroup(groupData, { id: 'other', type: 'system' }, true)
|
||||
const tooltip = {
|
||||
content: String(this.actor.system.hp.value + '/' + this.actor.system.hp.max),
|
||||
content: `${this.actor.system.hp.value}/${this.actor.system.hp.max}`,
|
||||
class: 'tah-system-tooltip',
|
||||
direction: 'LEFT'
|
||||
}
|
||||
@@ -140,17 +143,19 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
id: 'health',
|
||||
info1: this.#showValue() ? { text: tooltip.content } : null,
|
||||
tooltip,
|
||||
encodedValue: ['attributes', 'health'].join(this.delimiter)
|
||||
encodedValue: ['characteristics', 'health'].join(this.delimiter)
|
||||
},
|
||||
{
|
||||
name: '+',
|
||||
id: 'health_add',
|
||||
encodedValue: ['attributes', 'health_add'].join(this.delimiter)
|
||||
tooltip,
|
||||
encodedValue: ['characteristics', 'health_add'].join(this.delimiter)
|
||||
},
|
||||
{
|
||||
name: '-',
|
||||
id: 'health_subtract',
|
||||
encodedValue: ['attributes', 'health_subtract'].join(this.delimiter)
|
||||
tooltip,
|
||||
encodedValue: ['characteristics', 'health_subtract'].join(this.delimiter)
|
||||
})
|
||||
await this.addActions(actions, { id: 'other_health', type: 'system' })
|
||||
}
|
||||
@@ -163,7 +168,7 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
}
|
||||
this.addGroup(groupData, { id: 'other', type: 'system' }, true)
|
||||
const tooltip = {
|
||||
content: String(this.actor.system.wp.value + '/' + this.actor.system.wp.max),
|
||||
content: `${this.actor.system.wp.value}/${this.actor.system.wp.max}`,
|
||||
class: 'tah-system-tooltip',
|
||||
direction: 'LEFT'
|
||||
}
|
||||
@@ -172,17 +177,19 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
id: 'wp',
|
||||
info1: this.#showValue() ? { text: tooltip.content } : null,
|
||||
tooltip,
|
||||
encodedValue: ['attributes', 'wp'].join(this.delimiter)
|
||||
encodedValue: ['characteristics', 'wp'].join(this.delimiter)
|
||||
},
|
||||
{
|
||||
name: '+',
|
||||
id: 'wp_add',
|
||||
encodedValue: ['attributes', 'wp_add'].join(this.delimiter)
|
||||
tooltip,
|
||||
encodedValue: ['characteristics', 'wp_add'].join(this.delimiter)
|
||||
},
|
||||
{
|
||||
name: '-',
|
||||
id: 'wp_subtract',
|
||||
encodedValue: ['attributes', 'wp_subtract'].join(this.delimiter)
|
||||
tooltip,
|
||||
encodedValue: ['characteristics', 'wp_subtract'].join(this.delimiter)
|
||||
})
|
||||
await this.addActions(actions, { id: 'other_wp', type: 'system' })
|
||||
}
|
||||
@@ -190,19 +197,20 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
|
||||
async buildSkills() {
|
||||
const actions = []
|
||||
let actorSkills = this.actor.items.filter(item => item.type === 'skill')
|
||||
for (const skill in actorSkills) {
|
||||
if (skill.system.computeScore() > 0) {
|
||||
for (const item of this.actor.items) {
|
||||
if (item.type !== 'skill') continue;
|
||||
if (item.type === 'skill' && item.system.skillTotal > 0) {
|
||||
const skill = item
|
||||
const tooltip = {
|
||||
content: String(skill.skill.system.computeScore()),
|
||||
content: String(item.system.skillTotal),
|
||||
direction: 'LEFT'
|
||||
}
|
||||
actions.push({
|
||||
name: skill.name,
|
||||
name: `${skill.name} (${skill.system.skillTotal})`,
|
||||
id: skill.id,
|
||||
info1: this.#showValue() ? { text: tooltip.content } : null,
|
||||
tooltip,
|
||||
encodedValue: ['skills', s].join(this.delimiter)
|
||||
encodedValue: ['skills', skill.id].join(this.delimiter)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -210,30 +218,24 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
}
|
||||
|
||||
async buildEquipment() {
|
||||
let weapons = this.actor.items.filter(item => item.type === 'weapon')
|
||||
let skills = this.actor.items.filter(item => item.type === 'skill')
|
||||
for (const item of weapons) {
|
||||
// const rituals = []
|
||||
for (const item of this.actor.items) {
|
||||
// Push the weapon name as a new group
|
||||
const groupData = {
|
||||
id: 'weapons_' + item._id,
|
||||
name: item.name,
|
||||
type: 'system'
|
||||
}
|
||||
if (!SYSTEM.WEAPON_SKILL_MAPPING[era] || !SYSTEM.WEAPON_SKILL_MAPPING[era][options.rollItem.system.weaponType]) {
|
||||
continue
|
||||
}
|
||||
let skillName = game.i18n.localize(SYSTEM.WEAPON_SKILL_MAPPING[era][options.rollItem.system.weaponType])
|
||||
let skill = skills.find(skill => skill.name.toLowerCase() === skillName.toLowerCase())
|
||||
this.addGroup(groupData, { id: 'weapons', type: 'system' }, true)
|
||||
if (item.type === 'weapon') {
|
||||
const weapons = []
|
||||
const tooltip = {
|
||||
content: String(skill.system.computeScore()),
|
||||
content: String(item.system.skillTotal),
|
||||
direction: 'LEFT'
|
||||
}
|
||||
weapons.push({
|
||||
name: skill.name,
|
||||
id: skill._id,
|
||||
name: item.name,
|
||||
id: item._id,
|
||||
info1: this.#showValue() ? { text: tooltip.content } : null,
|
||||
encodedValue: ['weapons', item._id].join(this.delimiter),
|
||||
tooltip
|
||||
@@ -251,7 +253,7 @@ Hooks.once('tokenActionHudCoreApiReady', async (coreModule) => {
|
||||
tooltip: damageTooltip
|
||||
})
|
||||
}
|
||||
if (item.system.isLethal) {
|
||||
if (item.system.lethality > 0) {
|
||||
const lethalityTooltip = {
|
||||
content: String(item.system.lethality),
|
||||
direction: 'LEFT'
|
||||
|
||||
Reference in New Issue
Block a user