Feu-Secret / Tokenmagic

A Foundry VTT module that allows you to add animations and graphic effects to tokens, tiles, templates and drawings.
GNU General Public License v3.0
51 stars 36 forks source link

Include language to make macros toggleable or include examples of toggle FX. #255

Closed DeviousHearts closed 10 months ago

DeviousHearts commented 12 months ago

I am trying to make a macro that turns the effect on on the first button press then off on the second.

I apologize and I am new to macro writing.

Could you provide an example for me of say a glow toggle macro?

Aedif commented 12 months ago
const filterId = 'glow';

for(const token of canvas.tokens.controlled) {
  if(TokenMagic.hasFilterId(token, filterId)) {
    TokenMagic.deleteFilters(token, filterId);
  } else {
    const preset = TokenMagic.getPreset(filterId);
    if(preset) {
      TokenMagic.addUpdateFilters(token, preset);
    }
  }
}
DeviousHearts commented 12 months ago

Thank you so much! Where would I put the parameters in this to change color and such? I needed it to be a slower blue glow.

DeviousHearts commented 12 months ago

EUREKA!!! I got it. It is a toggle that combines three animations all at once and each is animated!



   const myTokens = canvas.tokens.controlled;

   for (const myToken of myTokens ){
       if (myToken.TMFXhasFilterId("BlueGlow")) {
           await myToken.TMFXdeleteFilters("BlueGlow");
       } else {
           let params =
           [{
   filterType: "outline",
   filterId: "BlueGlow",
   padding: 10,
   color: 0xc4c4FF,
   thickness: 1,
   quality: 5,
   zOrder: 9,
   animated :
   {
      thickness: 
      { 
         active: true,
         loopDuration: 6000,
         animType: "syncCosOscillation",
         val1: 1, 
         val2: 6
      }
   }
},
{
   filterType: "glow",
   filterId: "BlueGlow",
   outerStrength: 5,
   innerStrength: .5,
   color: 0x9999FF,
   quality: 0.5,
   padding: 10,
   animated:
   {
      outerStrength: 
      {
         active: true, 
         loopDuration: 3000, 
          animType: "colorOscillation", 
          val1:30, 
          val2:1
        }
    }
},
{
    filterType: "adjustment",
    filterId: "BlueGlow",
    saturation: 1,
    brightness: 1.5,
    contrast: 1.2,
    gamma: 1,
    red: 1,
    green: 1,
    blue: 1.25,
    alpha: 1.25,
    animated:
    {
        brightness: 
        { 
           active: true, 
           loopDuration: 3000, 
           animType: "syncCosOscillation",
           val1: 1.5,
           val2: 5 }
    }
}
];
           await myToken.TMFXaddUpdateFilters(params);
       }
   }
};

glowFunc();```
DeviousHearts commented 12 months ago

Now if I can only figure out how to make the token actually emit light on the canvas at the same time and toggle off as well, I will be set! :)