Creating Traps with Monks Active Tile Triggers - Tyreal74/FoundryStuff GitHub Wiki
Creating a Basic Spike Trap
Prerequisites
Create Trap Actor
Create Tile with Spike Trap and hide it
Show the Tile
Request a roll for the save
Add an attack by selecting the trap actor and the attack
Test and Done
Creating a Basic Spike Trap with Sequencer for Animations
Prerequisites
Credits:
Wasp - for whom these animations wouldnt be possible without Tagger and Sequencer and for the examples he did using MidiQOL and Traps on the Sequencer Wiki.
Create or Reuse the same Trap Actor
Create a Tile for the Animation and tag it using Tagger
Create the steps as per the basic trap for requesting the rolls
Add an additional action for running a macro that triggers the animation
Here is the macro I am using
const [spike] = await Tagger.getByTag('spike-trap'); // this gets the tile tagged as spike-trap in order to use as a location
new Sequence()
.effect()
.atLocation(spike)
.file("modules/jaamod/AnimatedArt/Traps/SpikesTrapD.webm")
.scaleToObject()
.play();
(The spike trap animation is from Jinkers Art Pack)
Creating Ranged Traps with Sequencer for Animations
The following animations are by JB2A - Jules & Ben's Animated Assets (patreon version available))
Create a new Tile for the source of the attack
Create the tagged macro for the location and the ranged attack
const [lightning] = await Tagger.getByTag('lightning');
new Sequence()
.effect()
.atLocation(lightning)
.stretchTo(canvas.tokens.controlled[0])
.file("jb2a.chain_lightning.primary.red")
.play();
Create your Tile Trigger Zone (or single tile) with the triggers as per the previous sections for your needs. ensure you select the macro correctly to your ranged attack
Press save and done.
But what about more ranged zones?
Create a separate tile for the new location the trap fires from and give it a second tag
Modify the macro to have a new Sequencer effect block.
const [lightning] = await Tagger.getByTag('lightning');
const [lightning1] = await Tagger.getByTag('lightning-1');
new Sequence()
.effect()
.atLocation(lightning)
.stretchTo(canvas.tokens.controlled[0])
.file("jb2a.chain_lightning.primary.red")
.effect()
.atLocation(lightning1)
.stretchTo(canvas.tokens.controlled[0])
.file("jb2a.chain_lightning.primary.red")
.play();