RMMV [YEP_BuffStatesCore] <Custom Remove Effect> & <Custom Leave Effect>

Frostorm

[]D[][]V[][]D
Veteran
Joined
Feb 22, 2016
Messages
2,370
Reaction score
1,985
First Language
English
Primarily Uses
RMMV
Is there a way for me to utilize both conditionally? Basically, I want a state to do X if removed, or do Y if turn decayed. What should I put in an "if" statement in order to do this? Is this even possible? I mean, it must be possible since those 2 tags exist, thus there must be a way to differentiate whether a state is removed via turn decay vs other means. If I can find the proper conditional, then I'd only have to use <Custom Remove Effect>.

Edit:
For context, the skill in question is called "Arrow to the Knee" ( :guffaw: ), which causes the target to be immobilized for 1 turn and slowed for 3 turns. Thus, I need to create a state that lasts 1 turn, which then adds another state that lasts 2 more turns when the 1st state turn decays down to 0 turns. However, this should only occur if the 1st state is removed via turn decay and not by some other means. This is what I got so far...

State100:
JavaScript:
<letbs> //this makes it so the target cannot move
move_scope: circle(0)
</letbs>
<Custom Apply Effect> //this reduces the target's Speed (LUK) by 1/3 the caster's Dexterity (AGI)
var knee = Math.round(origin.agi / 3);
target._knee = target._knee || 0;
target._knee += knee; //it is also stackable, further reducing Speed when reapplied
target.minusLuk(knee);
</Custom Apply Effect>
<Custom Remove Effect>
target.addLuk(target._knee);
target._knee2 = target._knee;
delete target._knee;
</Custom Remove Effect>
<Custom Leave Effect>
target.addState(101); //state 101 is basically just this state w/o the immobilization
</Custom Leave Effect>
State101:
JavaScript:
<Custom Apply Effect>
target.minusLuk(target._knee2);
</Custom Apply Effect>
<Custom Remove Effect>
target.addLuk(target._knee2);
delete target._knee2;
</Custom Remove Effect>

It's pretty messy, so I'd love to have a conditional that can distinguish whether the state is being removed by turn decay vs other means.
 
Last edited:

eomereolsson

Veteran
Veteran
Joined
Sep 29, 2021
Messages
152
Reaction score
126
First Language
German
Primarily Uses
RMMV
From looking at the code, it seems to me, that the code inside <custom remove effect> will always be executed if the state is removed. The code inside the <Custom Leave Effect> will only be executed if additionally $gameTemp._customLeaveEffectEval is true. So if you really want to only use the <custom remove effect>, in theory you could do:
Code:
<Custom Remove Effect>
  if ($gameTemp._customLeaveEffectEval) {
    //do thing if state got removed through decay
  }
  else {
    //do thing if state got removed through sth else than decay
  }
</Custom Remove Effect>

However I would do something along the lines of:
Code:
<Custom Leave Effect>
    //do thing if state got removed through decay
</Custom Leave Effect>

<Custom Remove Effect>
  if (!$gameTemp._customLeaveEffectEval) {
    //do thing if state got removed through sth else than decay
  }
  //do thing no matter how state got removed
</Custom Remove Effect>
It just seems cleaner to me to actually use both tags for their intended purposes and just exempt stuff from the <custom remove effect> that you explicitly don't want to happen if the state decays.
 

Frostorm

[]D[][]V[][]D
Veteran
Joined
Feb 22, 2016
Messages
2,370
Reaction score
1,985
First Language
English
Primarily Uses
RMMV
Thank you, that was exactly what I was looking for! :cutesmile:

Edit: As a result, I was able to clean up the code a bit!

1st State:
JavaScript:
<letbs>
move_scope: circle(0)
</letbs>
<Custom Apply Effect>
var knee = Math.round(origin.agi / 3);
target._knee = target._knee || 0;
target._knee += knee;
target.minusLuk(knee);
</Custom Apply Effect>
<Custom Remove Effect>
if ($gameTemp._customLeaveEffectEval) {
  target.addState(101);
} else {
  target.addLuk(target._knee);
  delete target._knee;
}
</Custom Remove Effect>
2nd State:
JavaScript:
<Custom Remove Effect>
target.addLuk(target._knee);
delete target._knee;
</Custom Remove Effect>
 
Last edited:

Latest Threads

Latest Posts

Latest Profile Posts

Went to get some stuff for February 10, the birthday of my favorite ink monster...
I have a little one-person party for Bendy every year, complete with the life-size plushie I made. And yes, I bake a birthday cake!
So technically I just ate sausages that were a year old. Use by date was 12/27/2021. But since those dates are just guesses with no scientific reasoning behind them I'll prolly be fine. Guess I know soon if I'm praying to the Porcelain God.
People laughed at me when I said that Activision Blizzard would get bought up by another company if they didn't fire their execs. Now their value has dipped so much Microsoft is willing to buy the company, likely followed by some heavy terminations if they want to purify the current toxic image of Activision Blizzard.
Pro tip: don't be this person.1642536788532.png

Forum statistics

Threads
118,495
Messages
1,116,368
Members
155,480
Latest member
aSasSSasdadw
Top