All user data for FoundryVTT. Includes worlds, systems, modules, and any asset in the "foundryuserdata" directory. Does NOT include the FoundryVTT installation itself.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

330 lines
16 KiB

1 year ago
  1. const AECONSTS = {
  2. MN: "automated-evocations",
  3. animations: {},
  4. animationFunctions: {
  5. "fire": {
  6. fn: async (template, tokenData) => {
  7. await new Sequence()
  8. .effect()
  9. .file("modules/automated-evocations/assets/animations/fire_spiral_CIRCLE_01.webm")
  10. .belowTokens()
  11. .randomRotation()
  12. .atLocation(template)
  13. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  14. .elevation(tokenData.elevation)
  15. .wait(750)
  16. .effect()
  17. .file("modules/automated-evocations/assets/animations/fire_earth_explosion_CIRCLE_01.webm")
  18. .belowTokens()
  19. .randomRotation()
  20. .atLocation(template)
  21. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  22. .elevation(tokenData.elevation)
  23. .play()
  24. },
  25. time: 1000,
  26. group: "elemental"
  27. },
  28. "air": {
  29. fn: async (template,tokenData) => {
  30. await new Sequence()
  31. .effect()
  32. .file("modules/automated-evocations/assets/animations/air_infinity_RECTANGLE_01.webm")
  33. .belowTokens()
  34. .atLocation(template)
  35. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  36. .elevation(tokenData.elevation)
  37. .wait(750)
  38. .effect()
  39. .file("modules/automated-evocations/assets/animations/air_portal_CIRCLE_01.webm")
  40. .belowTokens()
  41. .randomRotation()
  42. .atLocation(template)
  43. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  44. .elevation(tokenData.elevation)
  45. .wait(750)
  46. .effect()
  47. .file("modules/automated-evocations/assets/animations/air_puff_CIRCLE_01.webm")
  48. .belowTokens()
  49. .randomRotation()
  50. .atLocation(template)
  51. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  52. .elevation(tokenData.elevation)
  53. .play()
  54. },
  55. time: 1650,
  56. group: "elemental"
  57. },
  58. "lightning": {
  59. fn: async (template,tokenData) => {
  60. await new Sequence()
  61. .effect()
  62. .file("modules/automated-evocations/assets/animations/ring_CIRCLE_01.webm")
  63. .belowTokens()
  64. .randomRotation()
  65. .atLocation(template)
  66. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55)
  67. .elevation(tokenData.elevation)
  68. .wait(750)
  69. .effect()
  70. .file("modules/automated-evocations/assets/animations/electric_blast_01.webm")
  71. .belowTokens()
  72. .randomRotation()
  73. .atLocation(template)
  74. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  75. .repeats(6, 100, 170, 250, 320, 400)
  76. .elevation(tokenData.elevation)
  77. .play()
  78. },
  79. time: 1650,
  80. group: "elemental"
  81. },
  82. "lightning2": {
  83. fn: async (template,tokenData) => {
  84. await new Sequence()
  85. .effect()
  86. .file("modules/automated-evocations/assets/animations/JB2A/LightningBall_01_Regular_Blue_400x400.webm")
  87. .belowTokens()
  88. .randomRotation()
  89. .atLocation(template)
  90. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55)
  91. .elevation(tokenData.elevation)
  92. .wait(750)
  93. .effect()
  94. .file("modules/automated-evocations/assets/animations/JB2A/LightningStrike_01a_800x800.webm")
  95. .atLocation(template)
  96. .repeats(3, 100, 400, 600)
  97. .randomizeMirrorX()
  98. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55*2)
  99. .elevation(tokenData.elevation)
  100. .wait(750)
  101. .effect()
  102. .file("modules/automated-evocations/assets/animations/JB2A/Impact_12_Regular_Blue_400x400.webm")
  103. .belowTokens()
  104. .randomRotation()
  105. .atLocation(template)
  106. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55)
  107. .elevation(tokenData.elevation)
  108. .play()
  109. },
  110. time: 1650,
  111. group: "elemental"
  112. },
  113. "water": {
  114. fn: async (template,tokenData) => {
  115. await new Sequence()
  116. .effect()
  117. .file("modules/automated-evocations/assets/animations/water_blast_RAY_01.webm")
  118. .belowTokens()
  119. .randomRotation()
  120. .atLocation(template)
  121. .repeats(6, 50, 25, 75, 60, 20)
  122. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55)
  123. .elevation(tokenData.elevation)
  124. .wait(500)
  125. .effect()
  126. .file("modules/automated-evocations/assets/animations/create_water_CIRCLE_01.webm")
  127. .belowTokens()
  128. .randomRotation()
  129. .atLocation(template)
  130. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  131. .elevation(tokenData.elevation)
  132. .play()
  133. },
  134. time: 1000,
  135. group: "elemental"
  136. },
  137. "ice1": {
  138. fn: async (template,tokenData) => {
  139. await new Sequence()
  140. .effect()
  141. .file("modules/automated-evocations/assets/animations/JB2A/SnowflakeBurst_01_Regular_BlueWhite_Burst_600x600.webm")
  142. .belowTokens()
  143. .fadeIn(500, {ease: "easeOutCubic", delay: 500})
  144. .fadeOut(1500)
  145. .rotateIn(90, 2500, {ease: "easeInOutCubic"})
  146. .rotateOut(350, 1500, {ease: "easeInCubic"})
  147. .scaleIn(1, 1200, {ease: "easeInOutCubic"})
  148. .scaleOut(0, 1500, {ease: "easeInCubic"})
  149. .atLocation(template)
  150. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  151. .elevation(tokenData.elevation)
  152. .wait(650)
  153. .effect()
  154. .file("modules/automated-evocations/assets/animations/JB2A/IceSpikesRadialBurst_01_Regular_White_1000x1000.webm")
  155. .randomRotation()
  156. .atLocation(template)
  157. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55)
  158. .elevation(tokenData.elevation)
  159. .play()
  160. },
  161. time: 1500,
  162. group: "elemental"
  163. },
  164. "darkness": {
  165. fn: async (template,tokenData) => {
  166. await new Sequence()
  167. .effect()
  168. .file("modules/automated-evocations/assets/animations/JB2A/Whirlwind_01_BlueGrey_01_400x400.webm")
  169. .belowTokens()
  170. .fadeIn(500, {ease: "easeOutCubic", delay: 500})
  171. .fadeOut(1500)
  172. .rotateIn(90, 2500, {ease: "easeInOutCubic"})
  173. .rotateOut(350, 1500, {ease: "easeInCubic"})
  174. .scaleIn(1, 1200, {ease: "easeInOutCubic"})
  175. .scaleOut(0, 1500, {ease: "easeInCubic"})
  176. .atLocation(template)
  177. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  178. .elevation(tokenData.elevation)
  179. .wait(950)
  180. .effect()
  181. .file("modules/automated-evocations/assets/animations/JB2A/Darkness_01_Black_600x600.webm")
  182. .randomRotation()
  183. .fadeIn(500, {ease: "easeOutCubic", delay: 500})
  184. .fadeOut(1500)
  185. .rotateIn(90, 2500, {ease: "easeInOutCubic"})
  186. .rotateOut(350, 1500, {ease: "easeInCubic"})
  187. .scaleIn(0, 1200, {ease: "easeInOutCubic"})
  188. .scaleOut(1, 1500, {ease: "easeInCubic"})
  189. .atLocation(template)
  190. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.45)
  191. .elevation(tokenData.elevation)
  192. .play()
  193. },
  194. time: 1500,
  195. group: "magical"
  196. },
  197. "energy1": {
  198. fn: async (template,tokenData) => {
  199. await new Sequence()
  200. .effect()
  201. .file("modules/automated-evocations/assets/animations/energy_spark_CIRCLE_01.webm")
  202. .belowTokens()
  203. .randomRotation()
  204. .atLocation(template, {randomOffset: true})
  205. .repeats(6, 50, 25, 75, 60, 20)
  206. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.15)
  207. .elevation(tokenData.elevation)
  208. .wait(500)
  209. .effect()
  210. .file("modules/automated-evocations/assets/animations/energy_pulse_yellow_CIRCLE.webm")
  211. .belowTokens()
  212. .atLocation(template)
  213. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  214. .elevation(tokenData.elevation)
  215. .play()
  216. },
  217. time: 650,
  218. group: "magical"
  219. },
  220. "magic1": {
  221. fn: async (template,tokenData) => {
  222. await new Sequence()
  223. .effect()
  224. .file("modules/automated-evocations/assets/animations/magic_explosion_symbol_CIRCLE.webm")
  225. .belowTokens()
  226. .atLocation(template)
  227. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  228. .elevation(tokenData.elevation)
  229. .play()
  230. },
  231. time: 1150,
  232. group: "magical"
  233. },
  234. "magic2": {
  235. fn: async (template,tokenData) => {
  236. await new Sequence()
  237. .effect()
  238. .file("modules/automated-evocations/assets/animations/JB2A/Conjuration_01_Yellow_Circle_800x800.webm")
  239. .belowTokens()
  240. .fadeIn(500, {ease: "easeOutCubic", delay: 500})
  241. .fadeOut(1500)
  242. .rotateIn(90, 2500, {ease: "easeInOutCubic"})
  243. .rotateOut(350, 1500, {ease: "easeInCubic"})
  244. .scaleIn(1, 1200, {ease: "easeInOutCubic"})
  245. .scaleOut(0, 1500, {ease: "easeInCubic"})
  246. .atLocation(template)
  247. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  248. .elevation(tokenData.elevation)
  249. .wait(650)
  250. .effect()
  251. .file("modules/automated-evocations/assets/animations/JB2A/Explosion_02_Blue_400x400.webm")
  252. .randomRotation()
  253. .atLocation(template)
  254. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.55)
  255. .elevation(tokenData.elevation)
  256. .play()
  257. },
  258. time: 820,
  259. group: "magical"
  260. },
  261. "heart": {
  262. fn: async (template,tokenData) => {
  263. await new Sequence()
  264. .effect()
  265. .file("modules/automated-evocations/assets/animations/heart_red_SQUARE.webm")
  266. .atLocation(template)
  267. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  268. .elevation(tokenData.elevation)
  269. .play()
  270. },
  271. time: 400
  272. },
  273. "music": {
  274. fn: async (template,tokenData) => {
  275. await new Sequence()
  276. .effect()
  277. .file("modules/automated-evocations/assets/animations/music_RECTANGLE.webm")
  278. .belowTokens()
  279. .randomRotation()
  280. .atLocation(template, { randomOffset: true })
  281. .repeats(6, 150, 225, 375, 460, 520)
  282. .scale(((Math.max(tokenData.width, tokenData.height) * (tokenData.texture.scaleX + tokenData.texture.scaleY)) / 2) * 0.65)
  283. .elevation(tokenData.elevation)
  284. .wait(900)
  285. .effect()
  286. .file("modules/automated-evocations/assets/animations/magic_symbol_SQUARE_05.webm")
  287. .belowTokens()
  288. .atLocation(template)
  289. .scale(((Math.max(tokenData.width, tokenData.height) * (tokenData.texture.scaleX + tokenData.texture.scaleY)) / 2) * 0.35)
  290. .elevation(tokenData.elevation)
  291. .play();
  292. },
  293. time: 1350
  294. },
  295. "music2": {
  296. fn: async (template,tokenData) => {
  297. await new Sequence()
  298. .effect()
  299. .file("modules/automated-evocations/assets/animations/JB2A/OutPulse_01_Regular_BlueWhite_Burst_600x600.webm")
  300. .belowTokens()
  301. .atLocation(template)
  302. .randomRotation()
  303. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  304. .elevation(tokenData.elevation)
  305. .wait(100)
  306. .effect()
  307. .file("modules/automated-evocations/assets/animations/JB2A/BardicInspiration_01_Regular_GreenOrange_400x400.webm")
  308. .atLocation(template)
  309. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.45)
  310. .elevation(tokenData.elevation)
  311. .play()
  312. },
  313. time: 600
  314. },
  315. "fourelements": {
  316. fn: async (template,tokenData) => {
  317. await new Sequence()
  318. .effect()
  319. .file("modules/automated-evocations/assets/animations/four_element_strike_SQUARE_01.webm")
  320. .atLocation(template)
  321. .belowTokens()
  322. .scale(Math.max(tokenData.width,tokenData.height)*(tokenData.texture.scaleX + tokenData.texture.scaleY)/2*0.35)
  323. .elevation(tokenData.elevation)
  324. .play()
  325. },
  326. time: 700,
  327. group: "elemental"
  328. },
  329. }
  330. }