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

Frostorm

[]D[][]V[][]D
Veteran
Joined
Feb 22, 2016
Messages
2,788
Reaction score
2,232
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
543
Reaction score
462
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,788
Reaction score
2,232
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 Profile Posts

That moment when you significantly rewrite about 80% of a course, reduce it from 12 hours to 8, drastically refocus the content, provide several overview briefings to staff on the changes, giving them several weeks to prepare, & they start asking questions 10 minutes before the classes start. I have a bad feeling. :oops:
Forgot to add this to my stream thumbnail collection, nothing to see here. Move along. :kaoswt:

It's been a while again, eh.
It's all over! ep 27 now I got find some other long RPG to play, any reccomendations?
Shaz wrote on Avery's profile.
I need some of whatever you've been drinking for the last few weeks!
Although I love your awesome tutorials and always want more, I sure hope you're not going to burn yourself out.

Forum statistics

Threads
129,955
Messages
1,206,524
Members
171,171
Latest member
Bibo
Top