First official release

This commit is contained in:
2023-08-25 23:00:21 +02:00
parent dca78fd4b6
commit b383481915
53 changed files with 337 additions and 146 deletions

View File

@@ -304,11 +304,13 @@ export class Hero6Actor extends Actor {
let maneuvers = {
general: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "general"),
offensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "offensive"),
defensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "defensive")
defensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "defensive"),
mental: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "mental")
}
Hero6Utility.sortArrayObjectsByName(maneuvers.general)
Hero6Utility.sortArrayObjectsByName(maneuvers.offensive)
Hero6Utility.sortArrayObjectsByName(maneuvers.defensive)
Hero6Utility.sortArrayObjectsByName(maneuvers.mental)
return maneuvers
}
getAllManeuvers() {
@@ -744,7 +746,7 @@ export class Hero6Actor extends Actor {
}
/* -------------------------------------------- */
rollManeuver(maneuverId) {
let skill = this.items.get(skillId)
let skill = this.items.get(maneuverId)
if (skill) {
if (skill.system.islore && skill.system.level == 0) {
ui.notifications.warn("You can't use Lore Skills with a SL of 0.")
@@ -788,34 +790,54 @@ export class Hero6Actor extends Actor {
}
/* -------------------------------------------- */
rollWeapon(weaponId) {
async rollWeapon(weaponId) {
let weapon = this.items.get(weaponId)
if (weapon) {
weapon = duplicate(weapon)
let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase())
if (skill) {
skill = duplicate(skill)
Hero6Utility.updateSkill(skill)
let abilityKey = skill.system.ability
let rollData = this.getCommonRollData(abilityKey)
rollData.mode = "weapon"
rollData.skill = skill
rollData.weapon = weapon
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 > Hero6Utility.getWeaponMaxRange(rollData.weapon) ) {
ui.notifications.warn(`Your target is out of range of your weapon (max: ${Hero6Utility.getWeaponMaxRange(rollData.weapon)} - current : ${rollData.tokensDistance})` )
return
}*/
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find the relevant skill for weapon " + weapon.name)
}
let rollData = this.getCommonRollData()
rollData.weaponRoll = 11 + this.system.characteristics.ocv.value + (Number(weapon.system.ocv) || 0)
rollData.mode = "weapon"
rollData.weapon = weapon
rollData.img = weapon.img
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find the weapon " + weapon.name)
}
}
/* -------------------------------------------- */
rollMentalManeuver(maneuverId) {
let maneuver = this.items.get(maneuverId)
if (maneuver) {
maneuver = duplicate(maneuver)
let rollData = this.getCommonRollData()
rollData.maneuverRoll = 11 + this.system.characteristics.omcv.value + (Number(maneuver.system.omcv) || 0)
rollData.mode = "mentalmaneuver"
rollData.maneuver = maneuver
rollData.img = maneuver.img
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find the maneuver " + maneuver.name)
}
}
/* -------------------------------------------- */
rollPowerAttack(powerId ) {
let power = this.items.get(powerId)
if (power) {
power = duplicate(power)
let rollData = this.getCommonRollData()
if (power.system.attackvalue == "ocv") {
rollData.powerRoll = 11 + this.system.characteristics.ocv.value + (Number(power.system.ocv) || 0)
} else {
rollData.powerRoll = 11 + this.system.characteristics.omcv.value + (Number(power.system.omcv) || 0)
}
rollData.mode = "powerattack"
rollData.power = power
rollData.img = power.img
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find power " + power.name)
}
}
/* -------------------------------------------- */
async startRoll(rollData) {
let rollDialog = await Hero6RollDialog.create(this, rollData)