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

Frostorm

[]D[][]V[][]D
Veteran
Joined
Feb 22, 2016
Messages
2,406
Reaction score
2,004
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
154
Reaction score
130
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,406
Reaction score
2,004
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

I think it's by time I make use of this feature in the forums. I'm never one to share profile updates or anything the sort, but hey, you gotta start somewhere! I think I'll use this place primarily to post maps actually, so here, have a goblin cave!

PqleoRp.png

Inspired largely by Wynncraft's Aseado Leaf cave
Does anyone know if Yanfly's Ace scripts are still free for use in both commercial and noncommercial projects? Can't find much except for the wordpress Terms of Use, but not sure if it's not outdated.
I just realized two of My series are beginning to look virtually identical to one another in mechanics and general themes, I never had this problem before.

This is Stifling! Must resolve this!
Lord's Reincarnation III (LR3) MOBILE is coming!!!
iu_534706_7630675.png
ScreenShot_1_20_2022_2_19_41.png
Juice FX is amazing... the portal in the middle is actually animated and moves thanks to Juice FX. so I edited part of a map I have and then drew the portal around it. threw it into Juice FX and now it's lively instead of static.

Forum statistics

Threads
118,711
Messages
1,118,109
Members
155,852
Latest member
rumnerd_frog
Top