Creates a projectile for the player. The Projectile controller takes all the parameters of the HitDef controller, which control the HitDef for the projectile. In addition, Projectile has the following additional parameters:
ProjID = id_no (int) Specifies an ID number to refer to this projectile by. Should be positive, if specified.
projanim = anim_no (int) Specifies the animation action number to use for the projectile's animation. Defaults to 0 if omitted.
projhitanim = anim_no (int) Specifies the animation action number to play when the projectile hits the opponent. Defaults to -1 (no change in animation) if omitted.
projremanim = anim_no (int) Specifies the animation action number to play when the projectile is removed (due to its time expiring or hitting the its removal boundaries, etc.) If omitted, projhitanim is used instead.
projcancelanim = anim_no (int) Specifies the animation action number to play when the projectile is cancelled by hitting another projectile. If omitted, projremanim is used instead.
projscale = x_scale, y_scale (float, float) Specifies the scale factor of the projectile. The final scale of the projectile is affected by both this parameter and the "proj.doscale" parameter in the [Size] group of p1's constants file. Defaults to 1,1 (normal size) if omitted.
projremove = remove_flag (boolean) Set to a non-zero value to have the projectile be removed after it hits, or to 0 to disable this behavior. Defaults to 1.
projremovetime = remove_time (int) Specifies the number of ticks after which the projectile should be removed from the screen. If -1, the projectile will not be removed. Defaults to -1.
velocity = x_vel, y_vel (float, float) Specifies the initial x and y velocities for the projectile to travel at. Defaults to 0,0 if omitted.
remvelocity = x_vel, y_vel (float, float) Specifies the x and y velocities at which the projectile should travel while being removed. Defaults to 0,0 if omitted.
accel = x_accel, y_accel (float, float) Specifies the acceleration to apply to the projectile in the x and y directions. Defaults to 0,0 if omitted.
velmul = x_mul, y_mul (float, float) Specifies x and y velocity multipliers. The projectile's velocity is multiplied by these multipliers on every tick. The multipliers default to 1 if omitted.
projhits = num_hits (int) Specifies the number of hits that the projectile can impart on an opponent before it is removed. Defaults to 1.
projmisstime = miss_time (int) If the projectile is configured for multiple hits, miss_time specifies the number of ticks after each hit before the projectile can hit again. Defaults to 0.
projpriority = proj_priority (int) Specifies the projectile priority. If the projectile collides with another projectile of equal priority, they will cancel. If it collides with another of lower priority, it will cancel the lower- priority projectile, and the higher-priority one will have its priority decreased by 1. Defaults to 1.
projsprpriority = priority (int) Specifies the sprite priority of the projectile. Higher-priority sprites are drawn on top of lower-priority sprites. Defaults to 3.
projedgebound = value (int) Specifies the distance off the edge of the screen before the projectile is automatically removed. Units are in pixels. Defaults to 40 in 240p, 80 in 480p, 160 in 720p.
projstagebound = value (int) Specifies the greatest distance the projectile can travel off the edge of the stage before being it is automatically removed. Defaults to 40 in 240p, 80 in 480p, 160 in 720p.
projheightbound = lowbound, highbound (int, int) Specifies the least and greatest y values the projectile is allowed to reach. If the projectile leaves these boundaries, it is automatically removed. Note: since y values decrease with increasing height on the screen, lowbound actually specifies the greatest height the projectile can attain. lowbound defaults to -240 in 240p, -480 in 480p, -960 in 720p. highbound defaults to 1 in 240p, 2 in 480p, 4 in 720p.
offset = off_x, off_y (int, int) Specifies the x and y offsets at which the projectile should be created. Both parameters default to 0 if omitted. Projectiles are always created facing the same direction as the player. off_x is in relation to the direction the projectile is facing. The exact behavior of the offset parameters is dependent on the postype.
postype = postype_string (string) postype_string specifies the postype -- how to interpret the pos parameters. In all cases, a positive y offset means a downward displacement. In all cases, off_y is relative to the position of the player. Defaults to P1.
Valid values for postype_string are the following:
p1 Interprets offset relative to p1's axis. A positive off_x is toward the front of p1.
p2 Interprets offset relative to p2's axis. A positive off_x is toward the front of p1. If p2 does not exist, the position is calculated with respect to p1 and a warning is logged.
front Interprets off_x relative to the edge of the screen that p1 is facing toward. A positive off_x is toward the front of p1.
back Interprets off_x relative to the edge of the screen that p1 is facing away from. A positive off_x is toward the front of p1.
left Interprets off_x relative to the left edge of the screen. A positive off_x is toward the front of p1.
right Interprets off_x relative to the right edge of the screen. A positive off_x is toward the front of p1.
projshadow = shad_r, shad_g, shad_b (int, int, int) Specifies the R, G, and B components of the projectile's shadow. These components should be integers between 0 and 255, inclusive. If shad_r evaluates to -1, then the stage's shadow color will be used. The higher a component value, the less of that color is displayed in the shadow. So a perfectly black shadow is 255,255,255. Defaults to 0,0,0 (no shadow).
supermovetime = move_time (int) Specifies the number of ticks that the projectile will be unfrozen during a SuperPause. Defaults to 0.
pausemovetime = move_time (int) Specifies the number of ticks that the projectile will be unfrozen during a Pause. Defaults to 0.
afterimage.time = aftimg_time (int) See below.
afterimage.length See below.
afterimage.... If included, these parameters add afterimage effects to the projectile. The parameters are the same as in the AfterImage controller, except these are all prepended with "afterimage."
All projectiles created by helpers immediately become owned by the root.
The behavior of a projectile's HitDef is undefined when executed from a [Statedef -2] block while the player has another player's state and animation data.
[State 0, Projectile]
type = Projectile
trigger1 = time = 5
ProjID = 718
projanim = 4187
projhitanim = 4188
projremanim = 4186
projcancelanim = 86
projscale = 1,1
projremove = 1
projremovetime = -1
velocity = 0,0
remvelocity = 0,0
accel = 0,0
velmul = 1
projhits = 1
projpriority = 1
projsprpriority = 3
projedgebound = 40
projstagebound = 40
projheightbound = -240
offset = 0,0
postype = p1 ;p2,front,back,left,right
projshadow = 0,0,0
supermovetime = 0
pausemovetime = 0
;supermove = 0
;pausemove = 0
;(afterimage winmugen only)
;afterimage.palbright = 0,0,0
;afterimage.palcontrast = 0,0,0
;afterimage.paladd = 0,0,0
;afterimage.palmul = 0,0,0
;afterimage.trans = ;none,add,add1,addalpha,sub
ownpal = ownpal_flag (boolean)
If ownpal_flag is 0, the projectile will be affected by subsequent execution of its owner's PalFX and RemapPal controllers. This is the default.
If ownpal_flag is 1, the projectile will not be affected by its owner's PalFX and RemapPal controllers.
remappal = dst_pal_grp, dst_pal_item (int, int)
Forces a palette remap of the projectile's indexed-color sprites to the specified palette. This parameter is used only if ownpal_flag is non-zero. If dst_pal_grp is -1, this parameter will be ignored. Defaults to -1, 0.