Skip to content

Commit 96e132d

Browse files
author
Cazra
committed
Activated traps show who is being affected by the trap. There is now an option to specify which layer a trap is revealed to. This deprecates the 'revealToMap' user option. Menu options display tooltips.
1 parent 88d3003 commit 96e132d

File tree

1 file changed

+41
-14
lines changed

1 file changed

+41
-14
lines changed

Its A Trap/3.1/ItsATrap.js

+41-14
Original file line numberDiff line numberDiff line change
@@ -384,13 +384,6 @@ var ItsATrap = (() => {
384384

385385
// Circle the trap's trigger area.
386386
let circle = PathMath.createCircleData(radius);
387-
createObj('path', _.extend(circle, {
388-
layer: 'objects',
389-
left: x,
390-
_pageid: pageId,
391-
stroke_width: 10,
392-
top: y
393-
}));
394387
createObj('path', _.extend(circle, {
395388
layer: 'objects',
396389
left: x,
@@ -463,14 +456,17 @@ var ItsATrap = (() => {
463456
* bleeding-eye status.
464457
*/
465458
function revealTrap(trap, force) {
466-
if(_getUserOption('revealTrapsToMap')) {
467-
trap.set('layer', 'map');
468-
toFront(trap);
469-
}
470-
else {
459+
let effect = new TrapEffect(trap);
460+
461+
if(effect.revealLayer === 'objects') {
471462
trap.set('layer', 'objects');
472463
toBack(trap);
473464
}
465+
else {
466+
trap.set('layer', 'map');
467+
toFront(trap);
468+
}
469+
sendPing(trap.get('left'), trap.get('top'), trap.get('_pageid'));
474470
}
475471

476472
// Create macro for the remote activation command.
@@ -637,6 +633,22 @@ var TrapEffect = (() => {
637633
return this._effect.notes;
638634
}
639635

636+
/**
637+
* The layer that the trap gets revealed to.
638+
* @type {string}
639+
*/
640+
get revealLayer() {
641+
return this._effect.revealLayer;
642+
}
643+
644+
/**
645+
* Whether the trap is revealed when it is spotted.
646+
* @type {boolean}
647+
*/
648+
get revealWhenSpotted() {
649+
return this._effect.revealWhenSpotted;
650+
}
651+
640652
/**
641653
* The name of a sound played when the trap is activated.
642654
* @type {string}
@@ -1003,7 +1015,9 @@ var ItsATrapCreationWizard = (() => {
10031015
function _displayWizardProperties(modificationCommand, properties) {
10041016
let table = new HtmlBuilder('table');
10051017
_.each(properties, prop => {
1006-
let row = table.append('tr');
1018+
let row = table.append('tr', undefined, {
1019+
title: prop.desc
1020+
});
10071021

10081022
// Construct the list of parameter prompts.
10091023
let params = [];
@@ -1164,6 +1178,13 @@ var ItsATrapCreationWizard = (() => {
11641178
value: trapEffect.revealWhenSpotted ? 'yes' : 'no',
11651179
options: ['yes', 'no']
11661180
},
1181+
{
1182+
id: 'revealLayer',
1183+
name: 'Reveal Layer',
1184+
desc: 'When this trap is revealed, which layer is it revealed on?',
1185+
value: trapEffect.revealLayer || 'map',
1186+
options: ['map', 'objects']
1187+
},
11671188
{
11681189
id: 'searchDist',
11691190
name: 'Passive Search Distance',
@@ -1248,6 +1269,8 @@ var ItsATrapCreationWizard = (() => {
12481269
trapEffect.message = params[0];
12491270
if(prop === 'notes')
12501271
trapEffect.notes = params[0];
1272+
if(prop === 'revealLayer')
1273+
trapEffect.revealLayer = params[0];
12511274
if(prop === 'revealToPlayers')
12521275
trapToken.set('status_bleeding-eye', params[0] === 'yes');
12531276
if(prop === 'revealWhenSpotted')
@@ -1734,6 +1757,10 @@ var D20TrapTheme = (() => {
17341757

17351758
if(effectResults.character) {
17361759

1760+
var row = content.append('.paddedRow');
1761+
row.append('span.bold', 'Target:');
1762+
row.append('span', effectResults.character.get('name'));
1763+
17371764
// Add the attack roll message.
17381765
if(effectResults.attack) {
17391766
let rollResult = D20TrapTheme.htmlRollResult(effectResults.roll, '1d20 + ' + effectResults.attack);
@@ -1770,7 +1797,7 @@ var D20TrapTheme = (() => {
17701797
if(effectResults.damage)
17711798
row.append('span', 'Damage: [[' + effectResults.damage + ']]');
17721799
else
1773-
row.append('span', effectResults.character.get('name') + ' falls prey to the ' + effectResults.type + '\'s effects!');
1800+
row.append('span', 'You fall prey to the ' + effectResults.type + '\'s effects!');
17741801
}
17751802
else {
17761803
let row = content.append('.paddedRow');

0 commit comments

Comments
 (0)