const AECONSTS = { MN: "automated-evocations", animations: {}, animationFunctions: { "fire": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/fire_spiral_CIRCLE_01.webm") .belowTokens() .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .wait(750) .effect() .file("modules/automated-evocations/assets/animations/fire_earth_explosion_CIRCLE_01.webm") .belowTokens() .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .play() }, time: 1000, group: "elemental" }, "air": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/air_infinity_RECTANGLE_01.webm") .belowTokens() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .wait(750) .effect() .file("modules/automated-evocations/assets/animations/air_portal_CIRCLE_01.webm") .belowTokens() .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .wait(750) .effect() .file("modules/automated-evocations/assets/animations/air_puff_CIRCLE_01.webm") .belowTokens() .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .play() }, time: 1650, group: "elemental" }, "lightning": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/ring_CIRCLE_01.webm") .belowTokens() .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55) .wait(750) .effect() .file("modules/automated-evocations/assets/animations/electric_blast_01.webm") .belowTokens() .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .repeats(6, 100, 170, 250, 320, 400) .play() }, time: 1650, group: "elemental" }, "lightning2": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/JB2A/LightningBall_01_Regular_Blue_400x400.webm") .belowTokens() .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55) .wait(750) .effect() .file("modules/automated-evocations/assets/animations/JB2A/LightningStrike_01a_800x800.webm") .atLocation(template) .repeats(3, 100, 400, 600) .randomizeMirrorX() .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55*2) .wait(750) .effect() .file("modules/automated-evocations/assets/animations/JB2A/Impact_12_Regular_Blue_400x400.webm") .belowTokens() .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55) .play() }, time: 1650, group: "elemental" }, "water": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/water_blast_RAY_01.webm") .belowTokens() .randomRotation() .atLocation(template) .repeats(6, 50, 25, 75, 60, 20) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55) .wait(500) .effect() .file("modules/automated-evocations/assets/animations/create_water_CIRCLE_01.webm") .belowTokens() .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .play() }, time: 1000, group: "elemental" }, "ice1": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/JB2A/SnowflakeBurst_01_Regular_BlueWhite_Burst_600x600.webm") .belowTokens() .fadeIn(500, {ease: "easeOutCubic", delay: 500}) .fadeOut(1500) .rotateIn(90, 2500, {ease: "easeInOutCubic"}) .rotateOut(350, 1500, {ease: "easeInCubic"}) .scaleIn(1, 1200, {ease: "easeInOutCubic"}) .scaleOut(0, 1500, {ease: "easeInCubic"}) .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .wait(650) .effect() .file("modules/automated-evocations/assets/animations/JB2A/IceSpikesRadialBurst_01_Regular_White_1000x1000.webm") .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55) .play() }, time: 1500, group: "elemental" }, "darkness": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/JB2A/Whirlwind_01_BlueGrey_01_400x400.webm") .belowTokens() .fadeIn(500, {ease: "easeOutCubic", delay: 500}) .fadeOut(1500) .rotateIn(90, 2500, {ease: "easeInOutCubic"}) .rotateOut(350, 1500, {ease: "easeInCubic"}) .scaleIn(1, 1200, {ease: "easeInOutCubic"}) .scaleOut(0, 1500, {ease: "easeInCubic"}) .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .wait(950) .effect() .file("modules/automated-evocations/assets/animations/JB2A/Darkness_01_Black_600x600.webm") .randomRotation() .fadeIn(500, {ease: "easeOutCubic", delay: 500}) .fadeOut(1500) .rotateIn(90, 2500, {ease: "easeInOutCubic"}) .rotateOut(350, 1500, {ease: "easeInCubic"}) .scaleIn(0, 1200, {ease: "easeInOutCubic"}) .scaleOut(1, 1500, {ease: "easeInCubic"}) .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.45) .play() }, time: 1500, group: "magical" }, "energy1": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/energy_spark_CIRCLE_01.webm") .belowTokens() .randomRotation() .atLocation(template, {randomOffset: true}) .repeats(6, 50, 25, 75, 60, 20) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.15) .wait(500) .effect() .file("modules/automated-evocations/assets/animations/energy_pulse_yellow_CIRCLE.webm") .belowTokens() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .play() }, time: 650, group: "magical" }, "magic1": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/magic_explosion_symbol_CIRCLE.webm") .belowTokens() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .play() }, time: 1150, group: "magical" }, "magic2": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/JB2A/Conjuration_01_Yellow_Circle_800x800.webm") .belowTokens() .fadeIn(500, {ease: "easeOutCubic", delay: 500}) .fadeOut(1500) .rotateIn(90, 2500, {ease: "easeInOutCubic"}) .rotateOut(350, 1500, {ease: "easeInCubic"}) .scaleIn(1, 1200, {ease: "easeInOutCubic"}) .scaleOut(0, 1500, {ease: "easeInCubic"}) .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .wait(650) .effect() .file("modules/automated-evocations/assets/animations/JB2A/Explosion_02_Blue_400x400.webm") .randomRotation() .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55) .play() }, time: 820, group: "magical" }, "heart": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/heart_red_SQUARE.webm") .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .play() }, time: 400 }, "music": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/music_RECTANGLE.webm") .belowTokens() .randomRotation() .atLocation(template, { randomOffset: true }) .repeats(6, 150, 225, 375, 460, 520) .scale(((Math.max(tokenData.width, tokenData.height) * (tokenData.texture.scaleX + tokenData.texture.scaleY)) / 2) * 0.65) .wait(900) .effect() .file("modules/automated-evocations/assets/animations/magic_symbol_SQUARE_05.webm") .belowTokens() .atLocation(template) .scale(((Math.max(tokenData.width, tokenData.height) * (tokenData.texture.scaleX + tokenData.texture.scaleY)) / 2) * 0.35) .play(); }, time: 1350 }, "music2": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/JB2A/OutPulse_01_Regular_BlueWhite_Burst_600x600.webm") .belowTokens() .atLocation(template) .randomRotation() .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .wait(100) .effect() .file("modules/automated-evocations/assets/animations/JB2A/BardicInspiration_01_Regular_GreenOrange_400x400.webm") .atLocation(template) .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.45) .play() }, time: 600 }, "fourelements": { fn: async (template,tokenData) => { await new Sequence() .effect() .file("modules/automated-evocations/assets/animations/four_element_strike_SQUARE_01.webm") .atLocation(template) .belowTokens() .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35) .play() }, time: 700, group: "elemental" }, } }