diff --git a/modules/pegasus-actor.js b/modules/pegasus-actor.js index 4442988..18526e7 100644 --- a/modules/pegasus-actor.js +++ b/modules/pegasus-actor.js @@ -240,7 +240,7 @@ export class PegasusActor extends Actor { /* -------------------------------------------- */ getRoleLevel() { let role = this.items.find(item => item.type == 'role') - if (role ) { + if (role) { console.log("Role", role) return role.system.rolelevel } @@ -253,23 +253,23 @@ export class PegasusActor extends Actor { return role && role.system.perksrole == "tactician" } hasTacticianBonus() { - let effect = this.items.find( item => item.name.toLowerCase().includes("tactician bonus dice") ) + let effect = this.items.find(item => item.name.toLowerCase().includes("tactician bonus dice")) return effect } async addTacticianEffect(name, level) { let effect = duplicate(__bonusEffect) effect.name = `${name} Tactician Bonus Dice` - effect.system.effectlevel = level + effect.system.effectlevel = level effect.system.stataffected = "mr" effect.system.bonusdice = true await this.createEmbeddedDocuments('Item', [effect]) ChatMessage.create({ content: `Tactician Bonus Dice has been added to ${this.name} (${level})` }) } async removeTacticianEffect() { - let effect = this.items.find( item => item.name.toLowerCase().includes("tactician bonus dice") ) + let effect = this.items.find(item => item.name.toLowerCase().includes("tactician bonus dice")) if (effect) { await this.deleteEmbeddedDocuments('Item', [effect.id]) - ChatMessage.create({ content: `Tactician Bonus Dice has been removed to ${this.name}` }) + ChatMessage.create({ content: `Tactician Bonus Dice has been removed to ${this.name}` }) } } @@ -279,23 +279,23 @@ export class PegasusActor extends Actor { return role && role.system.perksrole == "enhancer" } hasEnhancerBonus() { - let effect = this.items.find( item => item.name.toLowerCase().includes("enhancer bonus dice") ) + let effect = this.items.find(item => item.name.toLowerCase().includes("enhancer bonus dice")) return effect } - async addEnhancerEffect( name, level) { + async addEnhancerEffect(name, level) { let effect = duplicate(__bonusEffect) effect.name = `${name} Enhancer Bonus Dice ALL` - effect.system.effectlevel = level + effect.system.effectlevel = level effect.system.stataffected = "all" effect.system.bonusdice = true await this.createEmbeddedDocuments('Item', [effect]) ChatMessage.create({ content: `Enhancer Bonus Dice has been added to ${this.name} (${level})` }) } async removeEnhancerEffect() { - let effect = this.items.find( item => item.name.toLowerCase().includes("enhancer bonus dice") ) + let effect = this.items.find(item => item.name.toLowerCase().includes("enhancer bonus dice")) if (effect) { await this.deleteEmbeddedDocuments('Item', [effect.id]) - ChatMessage.create({ content: `Enhancer Bonus Dice has been removed to ${this.name}` }) + ChatMessage.create({ content: `Enhancer Bonus Dice has been removed to ${this.name}` }) } } @@ -305,13 +305,13 @@ export class PegasusActor extends Actor { return role && role.system.perksrole == "agitator" } hasAgitatorHindrance() { - let effect = this.items.find( item => item.name.toLowerCase().includes("hindered by agitator") ) + let effect = this.items.find(item => item.name.toLowerCase().includes("hindered by agitator")) return effect } async addAgitatorHindrance(name, level) { let effect = duplicate(__bonusEffect) effect.name = `Hindered by Agitator ${name}` - effect.system.effectlevel = level + effect.system.effectlevel = level effect.system.stataffected = "all" effect.system.genre = "negative" effect.system.hindrance = true @@ -319,10 +319,10 @@ export class PegasusActor extends Actor { ChatMessage.create({ content: `Agitator Hindrance has been added to ${this.name} (${level})` }) } async removeAgitatorHindrance() { - let effect = this.items.find( item => item.name.toLowerCase().includes("hindered by agitator") ) + let effect = this.items.find(item => item.name.toLowerCase().includes("hindered by agitator")) if (effect) { await this.deleteEmbeddedDocuments('Item', [effect.id]) - ChatMessage.create({ content: `Agitator Hindrance has been removed to ${this.name}` }) + ChatMessage.create({ content: `Agitator Hindrance has been removed to ${this.name}` }) } } @@ -2025,6 +2025,13 @@ export class PegasusActor extends Actor { console.log("MR ROLL", rollData) if (isInit) { rollData.title = "MR / Initiative" + rollData.mrVehicle = PegasusUtility.checkIsVehicleCrew(this.id) + if (rollData.mrVehicle) { + rollData.effectsList.push({ + label: `Vehicle ${rollData.mrVehicle.name} MR Bonus`, + type: "effect", applied: false, isdynamic: true, value: rollData.mrVehicle.system.mr.currentlevel + }) + } } this.startRoll(rollData); } else { @@ -2299,7 +2306,6 @@ export class PegasusActor extends Actor { return crew } - /* -------------------------------------------- */ addCrew(actorId) { if (this.system.crew.length >= this.system.crewmax) { ui.notifications.warn("Vehicle crew is already full.") @@ -2309,11 +2315,13 @@ export class PegasusActor extends Actor { crewList.push({ id: actorId }) this.update({ 'system.crew': crewList }) } - /* -------------------------------------------- */ delCrew(actorId) { let crewList = duplicate(this.system.crew.filter(actorDef => actorDef.id != actorId) || []) this.update({ 'system.crew': crewList }) } + inCrew(actorId) { + return this.system.crew.find(member => member.id == actorId) + } /* -------------------------------------------- */ isVehicleFullStop() { diff --git a/modules/pegasus-utility.js b/modules/pegasus-utility.js index a75a87b..04703fe 100644 --- a/modules/pegasus-utility.js +++ b/modules/pegasus-utility.js @@ -1027,7 +1027,12 @@ export class PegasusUtility { if (target) { let defenderActor = target.actor rollData.defenderTokenId = target.id - rollData.defenderSize = Number(defenderActor.system.biodata.sizenum) + Number(defenderActor.system.biodata.sizebonus) + rollData.defenderSize = 0 + if ( defenderActor.type == "character") { + rollData.defenderSize = Number(defenderActor.system.biodata.sizenum) + Number(defenderActor.system.biodata.sizebonus) + } else if ( defenderActor.type == "vehicle" ){ + rollData.defenderSize = Number(defenderActor.system.statistics.hr.size) + } //rollData.attackerId = this.id console.log("Target/DEFENDER", defenderActor) defenderActor.addHindrancesList(rollData.effectsList) @@ -1068,31 +1073,14 @@ export class PegasusUtility { } /* -------------------------------------------- */ - static glowToken(token) { - let params = - [{ - filterType: "glow", - filterId: "superSpookyGlow", - outerStrength: 15, - innerStrength: 0, - color: 0x6AAB8E, - quality: 0.5, - padding: 40, - autoDestroy: true, - animated: - { - color: - { - active: true, - loopDuration: 3000, - loops: 2, - animType: "colorOscillation", - val1: 0x6AAB8E, - val2: 0x66FF33 - } - } - }] - TokenMagic.addUpdateFilters(token, params) + static checkIsVehicleCrew(actorId) { + let vehicles = game.actors.filter( actor=> actor.type =="vehicle") || [] + for(let vehicle of vehicles) { + if ( vehicle.inCrew(actorId) ) { + return vehicle + } + } + return false } /* -------------------------------------------- */