Fix lethargy + charaster race
All checks were successful
Release Creation / build (release) Successful in 1m7s
All checks were successful
Release Creation / build (release) Successful in 1m7s
This commit is contained in:
@ -103,13 +103,13 @@ export const ATTACKER_AIM_CHOICES = {
|
||||
"focused": {label: "Focused (-8)", value: "-8"}
|
||||
}
|
||||
|
||||
export const SPELL_LETHARGY_DICE = {
|
||||
"spellLevel1": {dice: "D6", level: "1-5", value: "6"},
|
||||
"spellLevel6": {dice: "D8", level: "6-10", value: "8"},
|
||||
"spellLevel11": {dice: "D10", value: "10", level: "11-15"},
|
||||
"spellLevel16": {dice: "D12", value: "12", level: "16-20"},
|
||||
"spellLevel21": {dice: "D20", value: "20", level: "21-25"}
|
||||
}
|
||||
export const SPELL_LETHARGY_DICE = [
|
||||
{dice: "D6", level: "1-5", value: "6", maxLevel: 5},
|
||||
{dice: "D8", level: "6-10", value: "8", maxLevel: 10},
|
||||
{dice: "D10", value: "10", level: "11-15", maxLevel: 15},
|
||||
{dice: "D12", value: "12", level: "16-20", maxLevel: 20},
|
||||
{dice: "D20", value: "20", level: "21-25", maxLevel: 25}
|
||||
]
|
||||
|
||||
export const INITIATIVE_DICE_CHOICES_PER_CLASS = {
|
||||
"untrained": [
|
||||
|
@ -672,23 +672,32 @@ export default class LethalFantasyRoll extends Roll {
|
||||
rangedMode = "focusedAim"
|
||||
}
|
||||
|
||||
if (searchId.match("spellLevel")) {
|
||||
let spellConfig = SYSTEM.SPELL_LETHARGY_DICE[searchId]
|
||||
let formula = spellConfig.dice
|
||||
if (searchId.match("spell")) {
|
||||
searchId = searchId.replace("spell", "")
|
||||
let spell = actor.items.find(i => i.type === "spell" && i.id === searchId)
|
||||
let dice = LethalFantasyUtils.getLethargyDice(spell.system.level)
|
||||
if (options.rollProgressionCount <= spell.system.castingTime ) {
|
||||
let message = `Spell casting time : ${spell.name}, count : ${options.rollProgressionCount}/${spell.system.castingTime}`
|
||||
ChatMessage.create({ content: message, speaker: ChatMessage.getSpeaker({ actor: actor }) })
|
||||
return
|
||||
}
|
||||
let formula = dice
|
||||
let roll = new Roll(formula)
|
||||
await roll.evaluate()
|
||||
let max = roll.dice[0].faces - 1
|
||||
let toCompare = Math.min(options.rollProgressionCount-spell.system.castingTime, max)
|
||||
let message
|
||||
if (options.rollProgressionCount <= roll.total ) {
|
||||
message = `Spell Lethargy ongoing ... (${roll.total}/${options.rollProgressionCount}, spell level ${spellConfig.level})`
|
||||
if (roll.total > toCompare) {
|
||||
message = `Spell Lethargy ongoing ... (${roll.total}/${toCompare}, spell level ${spell.system.level})`
|
||||
} else {
|
||||
let combat = game.combats.get(options.combatId)
|
||||
combat.resetProgression(options.combatantId)
|
||||
message = `Spell Lethargy ended ! (${roll.total}/${options.rollProgressionCount}, spell level ${spellConfig.level})`
|
||||
message = `Spell Lethargy ended ! (${roll.total}/${toCompare}, spell level ${spell.system.level})`
|
||||
}
|
||||
let msg = await roll.toMessage({ flavor: message }, { rollMode: rollContext.visibility })
|
||||
if (game?.dice3d) {
|
||||
await game.dice3d.waitFor3DAnimationByMessageID(msg.id)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -296,12 +296,11 @@ export default class LethalFantasyCharacter extends foundry.abstract.TypeDataMod
|
||||
weaponsChoices.push({ id: `${w.id}focusedAim`, name: `${w.name} (Focused Aim: ${w.system.speed.focusedAim.toUpperCase()})`, combatProgressionDice: w.system.speed.focusedAim.toUpperCase() })
|
||||
}
|
||||
if (this.biodata.magicUser || this.biodata.clericUser) {
|
||||
// Get the max level of the spells owned
|
||||
weaponsChoices.push({ id: "spellLevel1", name: `Level 1-5 Spell/Miracle (D6)`, combatProgressionDice: "1D6" })
|
||||
weaponsChoices.push({ id: "spellLevel6", name: `Level 6-10 Spell/Miracle (D8)`, combatProgressionDice: "1D8" })
|
||||
weaponsChoices.push({ id: "spellLevel11", name: `Level 11-15 Spell/Miracle (D10)`, combatProgressionDice: "1D10" })
|
||||
weaponsChoices.push({ id: "spellLevel16", name: `Level 16-20 Spell/Miracle (D12)`, combatProgressionDice: "1D12" })
|
||||
weaponsChoices.push({ id: "spellLevel21", name: `Level 21-25 Spell/Miracle (D20)`, combatProgressionDice: "1D20" })
|
||||
let spells = this.parent.items.filter(i => i.type === "spell" || i.type === "miracle")
|
||||
for (let s of spells) {
|
||||
let dice = LethalFantasyUtils.getLethargyDice(s.system.level)
|
||||
weaponsChoices.push({ id: `spell${s.id}`, name: `${s.name} (Time: ${s.system.castingTime}, Lethargy: ${dice})`, combatProgressionDice: `${s.system.castingTime}+${dice}` })
|
||||
}
|
||||
}
|
||||
|
||||
let roll = await LethalFantasyRoll.promptProgressionDice({
|
||||
|
@ -39,7 +39,7 @@ export default class LethalFantasyUtils {
|
||||
return val == null;
|
||||
});
|
||||
Handlebars.registerHelper('match', function (val, search) {
|
||||
if ( val && search) {
|
||||
if (val && search) {
|
||||
return val?.match(search);
|
||||
}
|
||||
return false
|
||||
@ -193,4 +193,12 @@ export default class LethalFantasyUtils {
|
||||
|
||||
}
|
||||
|
||||
static getLethargyDice(level) {
|
||||
for (let s of SYSTEM.SPELL_LETHARGY_DICE) {
|
||||
if (Number(level) <= s.maxLevel) {
|
||||
return s.dice
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user