|
|
|
@@ -4,7 +4,7 @@ import { Hero6RollDialog } from "./hero6-roll-dialog.js";
|
|
|
|
|
import { Hero6LiftDice } from "./hero6-lift-dice.js";
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
const __speed2Segments = [ [0], [7], [6, 12], [4, 8, 12], [3, 6, 9, 12], [3, 5, 8, 10, 12], [2, 4, 6, 8, 10, 12],
|
|
|
|
|
const __speed2Segments = [[0], [7], [6, 12], [4, 8, 12], [3, 6, 9, 12], [3, 5, 8, 10, 12], [2, 4, 6, 8, 10, 12],
|
|
|
|
|
[2, 4, 6, 7, 9, 11, 12], [2, 3, 5, 6, 8, 9, 11, 12], [2, 3, 4, 6, 7, 8, 10, 11, 12], [2, 3, 4, 5, 6, 8, 9, 10, 11, 12],
|
|
|
|
|
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]
|
|
|
|
|
|
|
|
|
@@ -40,12 +40,10 @@ export class Hero6Actor extends Actor {
|
|
|
|
|
return actor;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (data.type == 'character') {
|
|
|
|
|
if (data.type == 'character' || data.type == 'minion') {
|
|
|
|
|
const maneuvers = await Hero6Utility.loadCompendium("fvtt-hero-system-6.maneuvers")
|
|
|
|
|
let maneuversObj = maneuvers.map(i => i.toObject())
|
|
|
|
|
data.items = maneuversObj.filter(m => m.system.isstock)
|
|
|
|
|
}
|
|
|
|
|
if (data.type == 'npc') {
|
|
|
|
|
data.items = maneuversObj.filter(m => m.system.isstock)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return super.create(data, options);
|
|
|
|
@@ -62,14 +60,11 @@ export class Hero6Actor extends Actor {
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
computeDerivatedData() {
|
|
|
|
|
if (this.type == "character") {
|
|
|
|
|
let newSTREND = this.computeSTREND()
|
|
|
|
|
if (newSTREND != this.system.characteristics.str.strend) {
|
|
|
|
|
this.update({ 'system.characteristics.str.strend': newSTREND })
|
|
|
|
|
}
|
|
|
|
|
let newSTREND = this.computeSTREND()
|
|
|
|
|
if (newSTREND != this.system.characteristics.str.strend) {
|
|
|
|
|
this.update({ 'system.characteristics.str.strend': newSTREND })
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
performMigration() {
|
|
|
|
|
// Fix OCV/OMCV rollable
|
|
|
|
@@ -172,6 +167,19 @@ export class Hero6Actor extends Actor {
|
|
|
|
|
}
|
|
|
|
|
return item;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
async _preCreate(data, options, user) {
|
|
|
|
|
await super._preCreate(data, options, user);
|
|
|
|
|
|
|
|
|
|
// Configure prototype token settings
|
|
|
|
|
const prototypeToken = {};
|
|
|
|
|
if (this.type === "character") Object.assign(prototypeToken, {
|
|
|
|
|
sight: { enabled: true }, actorLink: true, disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY
|
|
|
|
|
});
|
|
|
|
|
this.updateSource({ prototypeToken });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
prepareSkill(skill) {
|
|
|
|
|
skill.roll = 0
|
|
|
|
@@ -213,12 +221,12 @@ export class Hero6Actor extends Actor {
|
|
|
|
|
skill.roll += skill.system.levels
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
prepareManeuver(maneuver) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
maneuver.roll = 11 + this.system.characteristics.ocv.value
|
|
|
|
|
if ( Number(maneuver.system.ocv)) {
|
|
|
|
|
if (Number(maneuver.system.ocv)) {
|
|
|
|
|
maneuver.roll += Number(maneuver.system.ocv)
|
|
|
|
|
} else {
|
|
|
|
|
maneuver.noOCV = true
|
|
|
|
@@ -408,7 +416,7 @@ export class Hero6Actor extends Actor {
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
async cleanCombat() {
|
|
|
|
|
await this.setFlag("world", "hold-action", false)
|
|
|
|
|
await this.setFlag("world", "abort-action", { state: false, count: 0 } )
|
|
|
|
|
await this.setFlag("world", "abort-action", { state: false, count: 0 })
|
|
|
|
|
}
|
|
|
|
|
async holdAction() {
|
|
|
|
|
await this.disableAbortAction()
|
|
|
|
@@ -481,7 +489,7 @@ export class Hero6Actor extends Actor {
|
|
|
|
|
}
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
getBaseInit(turn) {
|
|
|
|
|
if ( turn != this.turn) {
|
|
|
|
|
if (turn != this.turn) {
|
|
|
|
|
let r = new Roll("1d6").roll({ async: false })
|
|
|
|
|
this.currentInit = Number(this.system.characteristics.dex.initiative) + Number(((r.total / 10).toFixed(2)))
|
|
|
|
|
this.turn = turn
|
|
|
|
@@ -516,8 +524,13 @@ export class Hero6Actor extends Actor {
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
prepareCharacValues(charac) {
|
|
|
|
|
charac.total = charac.value
|
|
|
|
|
charac.roll = 9 + Math.round((charac.value) / 5)
|
|
|
|
|
if (charac.label == "OCV" || charac.label == "OMCV" ) {
|
|
|
|
|
charac.total = charac.value
|
|
|
|
|
charac.roll = 11 + charac.value
|
|
|
|
|
} else {
|
|
|
|
|
charac.total = charac.value
|
|
|
|
|
charac.roll = 9 + Math.round((charac.value) / 5)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
prepareCharac() {
|
|
|
|
|
let characs = duplicate(this.system.characteristics)
|
|
|
|
@@ -531,7 +544,7 @@ export class Hero6Actor extends Actor {
|
|
|
|
|
if (key == "spd") {
|
|
|
|
|
ch.phasesString = this.getPhasesString()
|
|
|
|
|
}
|
|
|
|
|
if (key =="pre") {
|
|
|
|
|
if (key == "pre") {
|
|
|
|
|
ch.presenceattack = duplicate(this.system.biodata.presenceattack)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|