Speaking of my Pokemon, is there any extra code I need to add to my work in progress ones due to the items?
Literally too much to add, as the code requires extensive changes to the character, though most of it is simply copy-paste.
For your remaining characters (Sharpedo, etc), you need to add the following information:
1. The formula for Special Defence is changed to one that uses Assault Vest in addition to other calculations, such as Sandstorm and Rock-types. If your code looked like this beforehand, where # is the Pokemon's original stat:
trigger1 = fvar(7):=floor((###)*fvar(37)) ; Special Defense
change it to this if it isn't a rock type:
trigger1 = fvar(7):=floor(((###)*fvar(37))*ifelse(var(21)=16,1.5,1))
or this if it is:
trigger1 = fvar(7):=floor((((###)*fvar(37))*ifelse(var(37)=5,1.5,1))*ifelse(var(21)=16,1.5,1))
Then, if your Pokemon has a status move within their movelist, you need to add the following code to the starting statedef of the Pokemon's status move.
[State SelfState];Assault Vest Restriction
type = SelfState
triggerall = var(21) = 16;Assault Vest
trigger1 = time <= 1
value = 2203
2. The damage formula has been changed to accommodate Life Orb, but before this, we need to add in the following code to the starting statedef of the Pokemon's attack moves (500, 510, etc).
[State LifeAdd];Life Orb Life Loss
type = LifeAdd
triggerall = time = 2
triggerall = var(21) = 17;Life Orb
triggerall = var(30) <= 0;If attack would hit
trigger1 = ((var(40) <= 0 && name = "Clefable") || (name != "Clefable"))
value = -ceil(lifemax/10)
ignorehitpause = 1
absolute = 1
kill = 0
[State VarSet];Life Orb Display Damage Numbers
type = VarSet
triggerall = time = 2
triggerall = var(21) = 17;Life Orb
triggerall = var(30) <= 0;If attack would hit
trigger1 = ((var(40) <= 0 && name = "Clefable") || (name != "Clefable"))
v = 6
value = 0+ceil(lifemax/10)
Next, you need to change the "move's power" part of the hitdef code so that it accommodates Life Orb. If your code looked like this beforehand:
fall.envshake.phase = floor(20*1.5)
change it to either of these two:
fall.envshake.phase = floor((20)*ifelse(root,var(21)=17,1.3,1)); Power affected by Life Orb
fall.envshake.phase = floor((20*1.5)*ifelse(root,var(21)=17,1.3,1)); Power affected by STAB and Life Orb
Remember to remove the "Root," part of the code if the main Pokemon is hitting the opponent instead of the helper.
3. Shell Bell code.
Copy and paste the following code above statedef -3:
Spoiler, click to toggle visibilty
;===========================================================================
;---------------------------------------------------------------------------
; Shell Bell Heal Numbers
[Statedef 1900]
anim = 9999;Blank
[State VarSet];Reset number, but must be placed above anything else!
type = VarSet
trigger1 = var(0) >= 1
v = 0
value = 0
[State VarSet];Record number of damage sustained by enemy
type = VarSet
triggerall = teammode != simul
triggerall = root,stateno = 501 || root,stateno = 511 || root,stateno = 522
triggerall = root,var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemynear,var(6) >= 1
v = 0
value = enemynear,var(6)/4
[State VarSet];Record number of damage sustained by enemy 1
type = VarSet
triggerall = teammode = simul
triggerall = root,stateno = 501 || root,stateno = 511 || root,stateno = 522
triggerall = root,var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(0),life >= 1
trigger1 = enemy(0),var(6) >= 1
v = 0
value = enemy(0),var(6)/4
[State VarSet];Record number of damage sustained by enemy 2
type = VarSet
triggerall = teammode = simul
triggerall = root,stateno = 501 || root,stateno = 511 || root,stateno = 522
triggerall = root,var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(1),life >= 1
trigger1 = enemy(1),var(6) >= 1
v = 0
value = enemy(1),var(6)/4
[State ParentVarSet];Report to user
type = ParentVarSet
triggerall = root,var(21) = 19;Shell Bell
trigger1 = var(0) >= 1
v = 6
value = var(0)
ignorehitpause = 1
[State Shell Bell Heal Sound];Record number of damage sustained by enemy
type = PlaySnd
triggerall = teammode != simul
triggerall = root,stateno = 501 || root,stateno = 511 || root,stateno = 522
triggerall = root,var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemynear,var(6) >= 1
value = F0,4
ignorehitpause = 1
[State Shell Bell Heal Sound];Record number of damage sustained by enemy 1
type = PlaySnd
triggerall = teammode = simul
triggerall = root,stateno = 501 || root,stateno = 511 || root,stateno = 522
triggerall = root,var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(0),life >= 1
trigger1 = enemy(0),var(6) >= 1
value = F0,4
ignorehitpause = 1
[State Shell Bell Heal Sound];Record number of damage sustained by enemy 2
type = PlaySnd
triggerall = teammode = simul
triggerall = root,stateno = 501 || root,stateno = 511 || root,stateno = 522
triggerall = root,var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(1),life >= 1
trigger1 = enemy(1),var(6) >= 1
value = F0,4
ignorehitpause = 1
Copy and paste the following code within statedef -3, preferable at the bottom of the file:
Spoiler, click to toggle visibilty
;=======================
;Shell Bell States (insert in Statedef -3)
[State Helper]
type = Helper
trigger1 = numhelper(1900) = 0
stateno = 1900
id = 1900
name = "Shell Bell Heal Numbers"
helpertype = Normal
pos = 0,0
postype = back
facing = ifelse(facing = 1,1,-1)
ownpal = 1
ignorehitpause = 1
[State LifeAdd];Shell Bell Heal
type = LifeAdd
triggerall = teammode != simul
triggerall = stateno = 501 || stateno = 511 || stateno = 522
triggerall = var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemynear,var(6)
value = 0+(var(6):=ceil(enemynear,var(6)*0.25))
kill = 0
persistent = 0
ignorehitpause = 1
[State LifeAdd];Shell Bell Heal
type = LifeAdd
triggerall = teammode = simul
triggerall = stateno = 501 || stateno = 511 || stateno = 522
triggerall = var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(0),life >= 1
trigger1 = enemy(0),var(6)
value = 0+(var(6):=ceil(enemy(0),var(6)*0.25))
kill = 0
persistent = 0
ignorehitpause = 1
[State LifeAdd];Shell Bell Heal
type = LifeAdd
triggerall = teammode = simul
triggerall = stateno = 501 || stateno = 511 || stateno = 522
triggerall = var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(1),life >= 1
trigger1 = enemy(1),var(6)
value = 0+(var(6):=ceil(enemy(1),var(6)*0.25))
kill = 0
persistent = 0
ignorehitpause = 1
[State -3, Shell Bell Heal Effect]
type = Explod
triggerall = teammode != simul
triggerall = stateno = 501 || stateno = 511 || stateno = 522
triggerall = var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemynear,var(6)
anim = F6
ID = 0
pos = 0, -floor(const(size.height)/2)
postype = p1
facing = 1
vfacing = 1
bindtime = 1
vel = 0,0
accel = 0,0
random = floor(const(size.ground.front)/2), floor(const(size.height)/2)
removetime = -2
pausemovetime = 0
scale = 0.75,0.75
sprpriority = 20
ontop = 0
shadow = 0,0,0
ownpal = 0
removeongethit = 0
ignorehitpause = 1
[State -3, Shell Bell Heal Effect]
type = Explod
triggerall = teammode = simul
triggerall = stateno = 501 || stateno = 511 || stateno = 522
triggerall = var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(0),life >= 1
trigger1 = enemy(0),var(6)
anim = F6
ID = 0
pos = 0, -floor(const(size.height)/2)
postype = p1
facing = 1
vfacing = 1
bindtime = 1
vel = 0,0
accel = 0,0
random = floor(const(size.ground.front)/2), floor(const(size.height)/2)
removetime = -2
pausemovetime = 0
scale = 0.75,0.75
sprpriority = 20
ontop = 0
shadow = 0,0,0
ownpal = 0
removeongethit = 0
ignorehitpause = 1
[State -3, Shell Bell Heal Effect]
type = Explod
triggerall = teammode = simul
triggerall = stateno = 501 || stateno = 511 || stateno = 522
triggerall = var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(1),life >= 1
trigger1 = enemy(1),var(6)
anim = F6
ID = 0
pos = 0, -floor(const(size.height)/2)
postype = p1
facing = 1
vfacing = 1
bindtime = 1
vel = 0,0
accel = 0,0
random = floor(const(size.ground.front)/2), floor(const(size.height)/2)
removetime = -2
pausemovetime = 0
scale = 0.75,0.75
sprpriority = 20
ontop = 0
shadow = 0,0,0
ownpal = 0
removeongethit = 0
ignorehitpause = 1
[State -3, Shell Bell Heal Effect]
type = PalFX
triggerall = teammode != simul
triggerall = stateno = 501 || stateno = 511 || stateno = 522
triggerall = var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemynear,var(6)
add = 50,240,0
mul = 224,150,120
sinadd = 55,110,85,20
color = 256
time = 16
[State -3, Shell Bell Heal Effect]
type = PalFX
triggerall = teammode = simul
triggerall = stateno = 501 || stateno = 511 || stateno = 522
triggerall = var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(0),life >= 1
trigger1 = enemy(0),var(6)
add = 50,240,0
mul = 224,150,120
sinadd = 55,110,85,20
color = 256
time = 16
[State -3, Shell Bell Heal Effect]
type = PalFX
triggerall = teammode = simul
triggerall = stateno = 501 || stateno = 511 || stateno = 522
triggerall = var(21) = 19;Shell Bell
triggerall = numenemy >= 1
trigger1 = enemy(1),life >= 1
trigger1 = enemy(1),var(6)
add = 50,240,0
mul = 224,150,120
sinadd = 55,110,85,20
color = 256
time = 16
;=======================
Finally, the below two parts of code needs to be adjusted so it works with the current Pokemon's moves. Currently, Shell Bell recovers your HP if you're in either of the states specified, regardless of where the attack hits. For example, if the Pokemon has an attack within state 500, 511, and 528, these need to be changed where each of the below occur. In this example:
triggerall = root,stateno = 501 || root,stateno = 511 || root,stateno = 522
triggerall = stateno = 501 || stateno = 511 || stateno = 522
The above need to be the below:
triggerall = root,stateno = 500 || root,stateno = 511 || root,stateno = 528
triggerall = stateno = 500 || stateno = 511 || stateno = 528
These are the main things that need to be applied at the moment. Critical Hits and the effects of the weather and the Big Root item are optional if the character can be healed by their own moves, if the character can change the weather, and/or if the character has a move with a higher critical ratio.