Fix ranged attacks again
Release Creation / build (release) Has been cancelled

This commit is contained in:
2026-05-24 09:41:06 +02:00
parent 38eb1a8d3d
commit c217490a5b
29 changed files with 94 additions and 148 deletions
+6 -1
View File
@@ -338,6 +338,10 @@ export default class LethalFantasyRoll extends Roll {
let modifier = "+0" let modifier = "+0"
let targetName let targetName
// True for any ranged attack: PC weapon (ranged type) or monster attack (ranged mode)
const isRangedAttack = (options.rollType === "weapon-attack" && options.rollTarget?.weapon?.system?.weaponType === "ranged")
|| (options.rollType === "monster-attack" && options.rollTarget?.attackMode === "ranged")
let dialogContext = { let dialogContext = {
rollType: options.rollType, rollType: options.rollType,
rollTarget: options.rollTarget, rollTarget: options.rollTarget,
@@ -362,7 +366,8 @@ export default class LethalFantasyRoll extends Roll {
modifier, modifier,
saveSpell: false, saveSpell: false,
favor: "none", favor: "none",
targetName targetName,
isRangedAttack
} }
let rollContext let rollContext
if (options.rollContext) { if (options.rollContext) {
-17
View File
@@ -283,23 +283,6 @@ export default class LethalFantasyCharacter extends foundry.abstract.TypeDataMod
*/ */
async roll(rollType, rollTarget, defenderId, defenderTokenId, extraShieldDr = 0) { async roll(rollType, rollTarget, defenderId, defenderTokenId, extraShieldDr = 0) {
const hasTarget = false const hasTarget = false
// Ranged weapon attacks from PCs use the ranged attack dialog (range, movement, aim modifiers)
if (rollType === "weapon-attack" && rollTarget?.isRangedAttack === true) {
let roll = await LethalFantasyRoll.promptRangedAttack({
rollType: "weapon-attack",
actorId: this.parent.id,
actorName: this.parent.name,
actorImage: this.parent.img,
rollTarget,
defenderId,
defenderTokenId,
})
if (!roll) return null
await roll.toMessage({}, { messageMode: roll.options.rollMode })
return
}
let roll = await LethalFantasyRoll.prompt({ let roll = await LethalFantasyRoll.prompt({
rollType, rollType,
rollTarget, rollTarget,
+1 -16
View File
@@ -167,22 +167,7 @@ export default class LethalFantasyMonster extends foundry.abstract.TypeDataModel
async roll(rollType, rollTarget, defenderId = undefined, defenderTokenId = undefined, extraShieldDr = 0) { async roll(rollType, rollTarget, defenderId = undefined, defenderTokenId = undefined, extraShieldDr = 0) {
const hasTarget = false const hasTarget = false
// Ranged monster attacks use a specialized dialog with range/movement/size/aim modifiers // Ranged monster defense uses the ranged defense dialog (movement, range, size modifiers)
if (rollType === "monster-attack" && rollTarget?.attackMode === "ranged") {
let roll = await LethalFantasyRoll.promptRangedAttack({
actorId: this.parent.id,
actorName: this.parent.name,
actorImage: this.parent.img,
rollTarget,
defenderId,
defenderTokenId,
})
if (!roll) return null
await roll.toMessage({}, { messageMode: roll.options.rollMode })
return
}
// Ranged monster defense uses the same ranged defense dialog as PC characters
if (rollType === "monster-defense" && rollTarget?.isRangedDefense === true) { if (rollType === "monster-defense" && rollTarget?.isRangedDefense === true) {
let roll = await LethalFantasyRoll.promptRangedDefense({ let roll = await LethalFantasyRoll.promptRangedDefense({
actorId: this.parent.id, actorId: this.parent.id,
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000615 MANIFEST-000619
+3 -8
View File
@@ -1,8 +1,3 @@
2026/05/23-18:45:10.214922 7fa233fff6c0 Recovering log #613 2026/05/24-09:22:43.041326 7fdfa95ff6c0 Recovering log #617
2026/05/23-18:45:10.223944 7fa233fff6c0 Delete type=3 #611 2026/05/24-09:22:43.083988 7fdfa95ff6c0 Delete type=3 #615
2026/05/23-18:45:10.223997 7fa233fff6c0 Delete type=0 #613 2026/05/24-09:22:43.084045 7fdfa95ff6c0 Delete type=0 #617
2026/05/23-19:09:56.190877 7fa2327fc6c0 Level-0 table #618: started
2026/05/23-19:09:56.190922 7fa2327fc6c0 Level-0 table #618: 0 bytes OK
2026/05/23-19:09:56.224359 7fa2327fc6c0 Delete type=0 #616
2026/05/23-19:09:56.339160 7fa2327fc6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.339194 7fa2327fc6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.153266 7f179e7ed6c0 Recovering log #609 2026/05/23-18:45:10.214922 7fa233fff6c0 Recovering log #613
2026/05/20-23:09:33.205459 7f179e7ed6c0 Delete type=3 #607 2026/05/23-18:45:10.223944 7fa233fff6c0 Delete type=3 #611
2026/05/20-23:09:33.205507 7f179e7ed6c0 Delete type=0 #609 2026/05/23-18:45:10.223997 7fa233fff6c0 Delete type=0 #613
2026/05/20-23:16:53.517842 7f179d7eb6c0 Level-0 table #614: started 2026/05/23-19:09:56.190877 7fa2327fc6c0 Level-0 table #618: started
2026/05/20-23:16:53.517893 7f179d7eb6c0 Level-0 table #614: 0 bytes OK 2026/05/23-19:09:56.190922 7fa2327fc6c0 Level-0 table #618: 0 bytes OK
2026/05/20-23:16:53.523991 7f179d7eb6c0 Delete type=0 #612 2026/05/23-19:09:56.224359 7fa2327fc6c0 Delete type=0 #616
2026/05/20-23:16:53.536989 7f179d7eb6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.339160 7fa2327fc6c0 Manual compaction at level-0 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.537026 7f179d7eb6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.339194 7fa2327fc6c0 Manual compaction at level-1 from '!folders!ATr9wZhg5uTVTksM' @ 72057594037927935 : 1 .. '!items!zw9RQocTdz3HRjZK' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000612 MANIFEST-000616
+3 -8
View File
@@ -1,8 +1,3 @@
2026/05/23-18:45:10.228083 7fa232ffd6c0 Recovering log #610 2026/05/24-09:22:43.091828 7fdfa8dfe6c0 Recovering log #614
2026/05/23-18:45:10.236935 7fa232ffd6c0 Delete type=3 #608 2026/05/24-09:22:43.131041 7fdfa8dfe6c0 Delete type=3 #612
2026/05/23-18:45:10.236958 7fa232ffd6c0 Delete type=0 #610 2026/05/24-09:22:43.131104 7fdfa8dfe6c0 Delete type=0 #614
2026/05/23-19:09:56.261648 7fa2327fc6c0 Level-0 table #615: started
2026/05/23-19:09:56.261672 7fa2327fc6c0 Level-0 table #615: 0 bytes OK
2026/05/23-19:09:56.304021 7fa2327fc6c0 Delete type=0 #613
2026/05/23-19:09:56.339181 7fa2327fc6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.339208 7fa2327fc6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.234730 7f179e7ed6c0 Recovering log #606 2026/05/23-18:45:10.228083 7fa232ffd6c0 Recovering log #610
2026/05/20-23:09:33.288868 7f179e7ed6c0 Delete type=3 #604 2026/05/23-18:45:10.236935 7fa232ffd6c0 Delete type=3 #608
2026/05/20-23:09:33.288920 7f179e7ed6c0 Delete type=0 #606 2026/05/23-18:45:10.236958 7fa232ffd6c0 Delete type=0 #610
2026/05/20-23:16:53.524172 7f179d7eb6c0 Level-0 table #611: started 2026/05/23-19:09:56.261648 7fa2327fc6c0 Level-0 table #615: started
2026/05/20-23:16:53.524219 7f179d7eb6c0 Level-0 table #611: 0 bytes OK 2026/05/23-19:09:56.261672 7fa2327fc6c0 Level-0 table #615: 0 bytes OK
2026/05/20-23:16:53.530312 7f179d7eb6c0 Delete type=0 #609 2026/05/23-19:09:56.304021 7fa2327fc6c0 Delete type=0 #613
2026/05/20-23:16:53.537003 7f179d7eb6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.339181 7fa2327fc6c0 Manual compaction at level-0 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.537059 7f179d7eb6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.339208 7fa2327fc6c0 Manual compaction at level-1 from '!folders!yPWGvxHJbDNHVSnY' @ 72057594037927935 : 1 .. '!items!x5gLtqlW4sdDmHTd' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000617 MANIFEST-000621
+3 -8
View File
@@ -1,8 +1,3 @@
2026/05/23-18:45:10.200781 7fa2337fe6c0 Recovering log #615 2026/05/24-09:22:42.993966 7fdfa8dfe6c0 Recovering log #619
2026/05/23-18:45:10.211345 7fa2337fe6c0 Delete type=3 #613 2026/05/24-09:22:43.035467 7fdfa8dfe6c0 Delete type=3 #617
2026/05/23-18:45:10.211416 7fa2337fe6c0 Delete type=0 #615 2026/05/24-09:22:43.035518 7fdfa8dfe6c0 Delete type=0 #619
2026/05/23-19:09:56.304132 7fa2327fc6c0 Level-0 table #620: started
2026/05/23-19:09:56.304162 7fa2327fc6c0 Level-0 table #620: 0 bytes OK
2026/05/23-19:09:56.339034 7fa2327fc6c0 Delete type=0 #618
2026/05/23-19:09:56.339189 7fa2327fc6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.339203 7fa2327fc6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.082007 7f179dfec6c0 Recovering log #611 2026/05/23-18:45:10.200781 7fa2337fe6c0 Recovering log #615
2026/05/20-23:09:33.140910 7f179dfec6c0 Delete type=3 #609 2026/05/23-18:45:10.211345 7fa2337fe6c0 Delete type=3 #613
2026/05/20-23:09:33.140962 7f179dfec6c0 Delete type=0 #611 2026/05/23-18:45:10.211416 7fa2337fe6c0 Delete type=0 #615
2026/05/20-23:16:53.510592 7f179d7eb6c0 Level-0 table #616: started 2026/05/23-19:09:56.304132 7fa2327fc6c0 Level-0 table #620: started
2026/05/20-23:16:53.510664 7f179d7eb6c0 Level-0 table #616: 0 bytes OK 2026/05/23-19:09:56.304162 7fa2327fc6c0 Level-0 table #620: 0 bytes OK
2026/05/20-23:16:53.517661 7f179d7eb6c0 Delete type=0 #614 2026/05/23-19:09:56.339034 7fa2327fc6c0 Delete type=0 #618
2026/05/20-23:16:53.536973 7f179d7eb6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.339189 7fa2327fc6c0 Manual compaction at level-0 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.537037 7f179d7eb6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.339203 7fa2327fc6c0 Manual compaction at level-1 from '!folders!7j8H7DbmBb9Uza2X' @ 72057594037927935 : 1 .. '!items!zt8s7564ep1La4XQ' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000312 MANIFEST-000316
+3 -8
View File
@@ -1,8 +1,3 @@
2026/05/23-18:45:10.252202 7fa2337fe6c0 Recovering log #310 2026/05/24-09:22:43.194643 7fdfa8dfe6c0 Recovering log #314
2026/05/23-18:45:10.261300 7fa2337fe6c0 Delete type=3 #308 2026/05/24-09:22:43.231409 7fdfa8dfe6c0 Delete type=3 #312
2026/05/23-18:45:10.261343 7fa2337fe6c0 Delete type=0 #310 2026/05/24-09:22:43.231470 7fdfa8dfe6c0 Delete type=0 #314
2026/05/23-19:09:56.467263 7fa2327fc6c0 Level-0 table #315: started
2026/05/23-19:09:56.467308 7fa2327fc6c0 Level-0 table #315: 0 bytes OK
2026/05/23-19:09:56.509084 7fa2327fc6c0 Delete type=0 #313
2026/05/23-19:09:56.608544 7fa2327fc6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.665018 7fa2327fc6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.368596 7f179e7ed6c0 Recovering log #306 2026/05/23-18:45:10.252202 7fa2337fe6c0 Recovering log #310
2026/05/20-23:09:33.422152 7f179e7ed6c0 Delete type=3 #304 2026/05/23-18:45:10.261300 7fa2337fe6c0 Delete type=3 #308
2026/05/20-23:09:33.422210 7f179e7ed6c0 Delete type=0 #306 2026/05/23-18:45:10.261343 7fa2337fe6c0 Delete type=0 #310
2026/05/20-23:16:53.560903 7f179d7eb6c0 Level-0 table #311: started 2026/05/23-19:09:56.467263 7fa2327fc6c0 Level-0 table #315: started
2026/05/20-23:16:53.560969 7f179d7eb6c0 Level-0 table #311: 0 bytes OK 2026/05/23-19:09:56.467308 7fa2327fc6c0 Level-0 table #315: 0 bytes OK
2026/05/20-23:16:53.568455 7f179d7eb6c0 Delete type=0 #309 2026/05/23-19:09:56.509084 7fa2327fc6c0 Delete type=0 #313
2026/05/20-23:16:53.568616 7f179d7eb6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.608544 7fa2327fc6c0 Manual compaction at level-0 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.578679 7f179d7eb6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.665018 7fa2327fc6c0 Manual compaction at level-1 from '!folders!37mu4dxsSuftlnmP' @ 72057594037927935 : 1 .. '!items!zKOpU34oLziGJW6y' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000611 MANIFEST-000615
+3 -8
View File
@@ -1,8 +1,3 @@
2026/05/23-18:45:10.238924 7fa233fff6c0 Recovering log #609 2026/05/24-09:22:43.141936 7fdf5bfff6c0 Recovering log #613
2026/05/23-18:45:10.250309 7fa233fff6c0 Delete type=3 #607 2026/05/24-09:22:43.189387 7fdf5bfff6c0 Delete type=3 #611
2026/05/23-18:45:10.250371 7fa233fff6c0 Delete type=0 #609 2026/05/24-09:22:43.189438 7fdf5bfff6c0 Delete type=0 #613
2026/05/23-19:09:56.224507 7fa2327fc6c0 Level-0 table #614: started
2026/05/23-19:09:56.224539 7fa2327fc6c0 Level-0 table #614: 0 bytes OK
2026/05/23-19:09:56.261516 7fa2327fc6c0 Delete type=0 #612
2026/05/23-19:09:56.339172 7fa2327fc6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/05/23-19:09:56.339199 7fa2327fc6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
+8 -8
View File
@@ -1,8 +1,8 @@
2026/05/20-23:09:33.302872 7f179efee6c0 Recovering log #605 2026/05/23-18:45:10.238924 7fa233fff6c0 Recovering log #609
2026/05/20-23:09:33.362229 7f179efee6c0 Delete type=3 #603 2026/05/23-18:45:10.250309 7fa233fff6c0 Delete type=3 #607
2026/05/20-23:09:33.362319 7f179efee6c0 Delete type=0 #605 2026/05/23-18:45:10.250371 7fa233fff6c0 Delete type=0 #609
2026/05/20-23:16:53.530498 7f179d7eb6c0 Level-0 table #610: started 2026/05/23-19:09:56.224507 7fa2327fc6c0 Level-0 table #614: started
2026/05/20-23:16:53.530547 7f179d7eb6c0 Level-0 table #610: 0 bytes OK 2026/05/23-19:09:56.224539 7fa2327fc6c0 Level-0 table #614: 0 bytes OK
2026/05/20-23:16:53.536854 7f179d7eb6c0 Delete type=0 #608 2026/05/23-19:09:56.261516 7fa2327fc6c0 Delete type=0 #612
2026/05/20-23:16:53.537015 7f179d7eb6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.339172 7fa2327fc6c0 Manual compaction at level-0 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
2026/05/20-23:16:53.537048 7f179d7eb6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end) 2026/05/23-19:09:56.339199 7fa2327fc6c0 Manual compaction at level-1 from '!folders!mnO9OzE7BEE2KDfh' @ 72057594037927935 : 1 .. '!items!zkK6ixtCsCw3RH9X' @ 0 : 0; will stop at (end)
+27 -29
View File
@@ -55,35 +55,33 @@
<div class="dialog-save">Add Granted Attack Dice <div class="dialog-save">Add Granted Attack Dice
<input type="checkbox" data-action="selectGranted" name="granted" /> <input type="checkbox" data-action="selectGranted" name="granted" />
</div> </div>
{{#if rollTarget.weapon}} {{#if isRangedAttack}}
{{#if (eq rollTarget.weapon.system.weaponType "melee")}}{{else}} <div class="dialog-save">Point Blank Range Attack
<div class="dialog-save">Point Blank Range Attack <input
<input type="checkbox"
type="checkbox" data-action="selectPointBlank"
data-action="selectPointBlank" name="pointBlankV"
name="pointBlankV" />
/> </div>
</div> <div class="dialog-save">Beyond Skill Range Attack
<div class="dialog-save">Beyond Skill Range Attack <input
<input type="checkbox"
type="checkbox" data-action="selectBeyondSkill"
data-action="selectBeyondSkill" name="beyondSkillV"
name="beyondSkillV" />
/> </div>
</div> <div class="dialog-save">Let it Fly (Pure D20E)
<div class="dialog-save">Let it Fly (Pure D20E) <input
<input type="checkbox"
type="checkbox" data-action="selectLetItFly"
data-action="selectLetItFly" name="letItFlyV"
name="letItFlyV" />
/> </div>
</div> <div class="dialog-save">Aiming
<div class="dialog-save">Aiming <select name="attackerAim" data-tooltip-direction="UP">
<select name="attackerAim" data-tooltip-direction="UP"> {{selectOptions attackerAimChoices selected=attackerAim}}
{{selectOptions attackerAimChoices selected=attackerAim}} </select>
</select> </div>
</div>
{{/if}}
{{/if}} {{/if}}
{{/if}} {{/if}}