; Metroid States ;--------------------------------------------------------------------------- ; Start [Statedef 0] type = S movetype = I physics = S [State 0, 0] type = ChangeAnim trigger1 = Anim != 0 value = 0 [State 0, 2] type = VelSet trigger1 = Vel X != 0 x = 0 [State 0, 2] type = VelSet trigger1 = Vel Y != 0 y = 0 ;--------------------------------------------------------------------------- ; Crouch [Statedef 10] [State 10, 0] type = ChangeState trigger1 = 1 value = 30 ctrl = 1 ;--------------------------------------------------------------------------- ; Walk [Statedef 20] [State 20, 0] type = ChangeState trigger1 = 1 value = 30 ctrl = 1 ;--------------------------------------------------------------------------- ; Idle [Statedef 30] type = A movetype = I physics = N ctrl = 1 [State 30, Anim] type = ChangeAnim trigger1 = Anim != 0 value = 0 elem = AnimElemNo(0) [State 30, 1] type = VelAdd triggerall = Vel X < 4 triggerall = command = "holdfwd" trigger1 = TimeMod = 2,0 x = .2 [State 30, 1] type = VelAdd triggerall = Vel X > -4 triggerall = command = "holdback" trigger1 = TimeMod = 2,0 x = -.2 [State 30, 1] type = VelAdd triggerall = Vel Y < 2 triggerall = command = "holddown" trigger1 = TimeMod = 2,0 y = .2 [State 30, 1] type = VelAdd triggerall = Vel Y > -2 triggerall = command = "holdup" trigger1 = TimeMod = 2,0 y = -.2 [State 30, 2] type = VelMul triggerall = command != "holdfwd" triggerall = command != "holdback" triggerall = TimeMod = 2,0 trigger1 = Vel X < 0 trigger2 = Vel X > 0 x = .9 [State 30, 2] type = VelMul triggerall = command != "holdup" triggerall = command != "holddown" triggerall = TimeMod = 2,0 trigger1 = Vel Y < 0 trigger2 = Vel Y > 0 y = .9 [State 30, 4] type = VelSet trigger1 = Pos Y > 0 trigger2 = Pos Y < -200 y = 0 [State 30, 4] type = PosSet trigger1 = Pos Y > 0 y = 0 [State 30, 4] type = PosSet trigger1 = Pos Y < -200 y = -200 ;--------------------------------------------------------------------------- ; Hit [Statedef 35] movetype = H ctrl = 0 [State 35, Hit] type = HitOverride trigger1 = 1 slot = 0 stateno = 35 attr = SCA, AA, AP, AT time = 1 [State 35, 0] type = PalFX trigger1 = Time = 0 time = 2 add = 250,250,250 [State 35, PosFreeze] type = PosFreeze trigger1 = !HitShakeOver x = 1 y = 1 [State 35, HitVelSet] type = HitVelSet trigger1 = HitShakeOver x = 1 [State 35, 1] type = ChangeState trigger1 = HitShakeOver value = 30 ctrl = 1 [State 35, 2] type = ChangeState trigger1 = Life = 0 value = 5151 ;--------------------------------------------------------------------------- ; Jump [Statedef 40] [State 40, 0] type = ChangeState trigger1 = 1 value = 30 ctrl = 1 ;--------------------------------------------------------------------------- ; Dash [Statedef 100] type = A movetype = I physics = N ctrl = 1 [State 100, 1] type = VelAdd triggerall = Vel X < 8 triggerall = command = "holdfwd" trigger1 = TimeMod = 1,0 x = .2 [State 100, 1] type = VelAdd triggerall = Vel X > -8 triggerall = command = "holdback" trigger1 = TimeMod = 1,0 x = -.2 [State 100, 1] type = VelAdd triggerall = Vel Y < 4 triggerall = command = "holddown" trigger1 = TimeMod = 2,0 y = .2 [State 100, 1] type = VelAdd triggerall = Vel Y > -4 triggerall = command = "holdup" trigger1 = TimeMod = 2,0 y = -.2 [State 100, 2] type = VelMul triggerall = command != "holdfwd" triggerall = command != "holdback" triggerall = TimeMod = 1,0 trigger1 = Vel X < 0 trigger2 = Vel X > 0 x = .9 [State 100, 2] type = VelMul triggerall = command != "holdup" triggerall = command != "holddown" triggerall = TimeMod = 2,0 trigger1 = Vel Y < 0 trigger2 = Vel Y > 0 y = .9 [State 100, 4] type = VelSet trigger1 = Pos Y > 0 trigger2 = Pos Y < -200 y = 0 [State 100, 4] type = PosSet trigger1 = Pos Y > 0 y = 0 [State 100, 4] type = PosSet trigger1 = Pos Y < -200 y = -200 [State 100, 5] type = ChangeState trigger1 = command != "holdfwd" trigger1 = command != "holdback" trigger1 = command != "holdup" trigger1 = command != "holddown" value = 30 ctrl = 1 ;--------------------------------------------------------------------------- ; Lose by Time Over [Statedef 170] ctrl = 0 velset = 0,0 [State 170, 1] type = NotHitBy trigger1 = 1 value = SCA time = 1 ;--------------------------------------------------------------------------- ; Win State [Statedef 180] velset = 0,0 ctrl = 0 [State 180, Anim] type = ChangeAnim trigger1 = Time = 0 value = 195 elem = AnimElemNo(0) [State 180, Anim] type = ChangeAnim trigger1 = Time = 50 value = 0 elem = AnimElemNo(0) [State 180, 0] type = NotHitBy trigger1 = 1 value = SCA time = 1 [State 180, ScreenBound] type = ScreenBound trigger1 = MatchOver value = 0 movecamera = 0,0 [State 180, 1] type = VelAdd trigger1 = MatchOver trigger1 = Time > 50 x = -.2 [State 180, 1] type = VelAdd trigger1 = MatchOver trigger1 = Time > 50 y = -.1 ;--------------------------------------------------------------------------- ; Intro [Statedef 190] sprpriority = 20 velset = 0,0 anim = 190 ctrl = 0 [State 190, 0] type = AssertSpecial trigger1 = 1 flag = Intro [State 190, ScreenBound] type = ScreenBound trigger1 = 1 value = 0 movecamera = 0,0 [State 190, 0] type = PosSet trigger1 = Time = 0 y = 0 [State 190, Brain] type = Helper trigger1 = Time <= 0 helpertype = normal name = "Container" id = 190 pos = 0,0 postype = p1 stateno = 191 keyctrl = 0 ownpal = 1 [State 190, PlaySnd] type = PlaySnd trigger1 = Anim = 190 trigger1 = AnimElem = 11 value = 9,1 channel = 0 [State 190, Explod] type = Explod trigger1 = NumExplod(8015) = 0 trigger1 = Time = 100 ignorehitpause = 1 trans = AddAlpha alpha = 200,200 persistent = 0 anim = 8010 id = 8015 postype = p1 pos = 10, 0 facing = 1 scale = 0.5,0.5 sprpriority = 0 removetime = 50 ownpal = 1 ontop = 1 [State 190, Explod] type = Explod trigger1 = NumExplod(8016) = 0 trigger1 = Time = 100 ignorehitpause = 1 trans = AddAlpha alpha = 200,200 persistent = 0 anim = 8010 id = 8016 postype = p1 pos = -10, 0 facing = -1 scale = 0.5,0.5 sprpriority = 0 removetime = 50 ownpal = 1 ontop = 1 [State 190, Ground] type = Explod trigger1 = Time >= 100 trigger1 = Time < 150 trigger1 = TimeMod = 10,0 sprpriority = -20 scale = 1,1 anim = F60 pos = 0,0 postype = p1 facing = 1 [State 190, Ground] type = Explod trigger1 = Time >= 105 trigger1 = Time < 150 trigger1 = TimeMod = 15,0 sprpriority = -20 scale = 1,1 anim = F61 pos = 0,0 postype = p1 facing = 1 [State 190, Smoke] type = Explod trigger1 = Time >= 100 trigger1 = Time < 150 trigger1 = TimeMod = 10,0 sprpriority = 10 scale = 1,1 anim = F120 pos = 20,0 vel = 0,0 accel = 0.5,0 postype = p1 facing = 1 ontop = 1 [State 190, Smoke] type = Explod trigger1 = Time >= 100 trigger1 = Time < 150 trigger1 = TimeMod = 10,0 sprpriority = 10 scale = 1,1 anim = F120 pos = -20,0 vel = 0,0 accel = -0.5,0 postype = p1 facing = 1 ontop = 1 [State 190, 0] type = PosAdd trigger1 = Time >= 100 trigger1 = Time < 150 x = 1 [State 190, 0] type = PosAdd trigger1 = TimeMod = 2,0 trigger1 = Time >= 100 trigger1 = Time < 150 x = -2 [State 190, Explod] type = Explod trigger1 = NumExplod(8010) = 0 trigger1 = Time = 150 ignorehitpause = 1 trans = AddAlpha alpha = 200,200 persistent = 0 anim = 8010 id = 8010 postype = p1 pos = 20, 0 facing = 1 scale = 0.75,0.75 sprpriority = 0 removetime = 50 ownpal = 1 ontop = 1 [State 190, Explod] type = Explod trigger1 = NumExplod(8011) = 0 trigger1 = Time = 150 ignorehitpause = 1 trans = AddAlpha alpha = 200,200 persistent = 0 anim = 8010 id = 8011 postype = p1 pos = -20, 0 facing = -1 scale = 0.75,0.75 sprpriority = 0 removetime = 50 ownpal = 1 ontop = 1 [State 190, Ground] type = Explod trigger1 = Time >= 150 trigger1 = Time < 200 trigger1 = TimeMod = 10,0 sprpriority = -20 scale = 1.5,1 anim = F60 pos = 0,0 postype = p1 facing = 1 [State 190, Ground] type = Explod trigger1 = Time >= 150 trigger1 = Time < 200 trigger1 = TimeMod = 15,0 sprpriority = -20 scale = 1.5,1 anim = F61 pos = 0,0 postype = p1 facing = 1 [State 190, Smoke] type = Explod trigger1 = Time >= 150 trigger1 = Time < 200 trigger1 = TimeMod = 5,0 sprpriority = 10 scale = 1,1 anim = F120 pos = 20,0 vel = 0,0 accel = 0.75,0 postype = p1 facing = 1 ontop = 1 [State 190, Smoke] type = Explod trigger1 = Time >= 150 trigger1 = Time < 200 trigger1 = TimeMod = 5,0 sprpriority = 10 scale = 1,1 anim = F120 pos = -20,0 vel = 0,0 accel = -0.75,0 postype = p1 facing = 1 ontop = 1 [State 190, 0] type = PosAdd trigger1 = Time >= 150 trigger1 = Time < 200 x = 2 [State 190, 0] type = PosAdd trigger1 = TimeMod = 2,0 trigger1 = Time >= 150 trigger1 = Time < 200 x = -4 [State 190, 0] type = VelSet trigger1 = Time = 200 y = -20 [State 190, 0] type = VarSet trigger1 = Time < 100 trigger2 = Time = 225 v = 0 value = 0 [State 190, 1] type = VarAdd trigger1 = Time >= 150 trigger1 = Time < 200 v = 0 value = -1 [State 190, 0] type = VarSet trigger1 = Time = 200 v = 0 value = 250 [State 190, 1] type = VarAdd trigger1 = Time > 200 trigger1 = Time < 225 v = 0 value = -10 [State 190, 1] type = AllPalFX trigger1 = Time >= 100 trigger1 = Time < 225 time = 1 add = var(0),Var(0),Var(0) [State 190, PlaySnd] type = PlaySnd trigger1 = Time = 100 trigger2 = Time = 150 value = 1, 0 freqmul = 0.1 channel = 1 [State 190, EnvShake] type = EnvShake trigger1 = Time = 100 time = 50 freq = 100 ampl = -2 phase = 10 [State 190, EnvShake] type = EnvShake trigger1 = Time = 150 time = 50 freq = 100 ampl = -4 phase = 10 [State 190, PalFX] type = PalFX trigger1 = Time >= 150 trigger1 = Time < 200 trigger1 = TimeMod = 2,0 time = 1 add = 250,250,250 [State 190, StopSnd] type = StopSnd trigger1 = Time = 200 value = 1, 0 freqmul = 0.1 channel = 1 [State 190, PlaySnd] type = PlaySnd trigger1 = Time = 200 value = 9,0 channel = 0 [State 190, 5] type = ChangeAnim trigger1 = Time = 220 value = 0 [State 190, 0] type = VelSet trigger1 = Anim = 0 y = 2 [State 190, 5] type = ChangeState trigger1 = Time > 220 trigger1 = Pos Y >= -100 trigger1 = Anim = 0 value = 0 ;--------------------------------------------------------------------------- ; Taunt [Statedef 195] type = A movetype = I physics = N ctrl = 0 [State 195, VarRandom] type = VarRandom trigger1 = Time <= 0 v = 5 range = 1,5 [State 195, PlaySnd] type = PlaySnd trigger1 = Time <= 0 value = 10, Var(5) channel = 0 [State 195, Anim] type = ChangeAnim trigger1 = Time <= 0 value = 195 elem = AnimElemNo(0) [State 195, 1] type = VelMul triggerall = TimeMod = 2,0 trigger1 = Vel X < 0 trigger2 = Vel X > 0 x = .9 [State 195, 1] type = VelMul triggerall = TimeMod = 2,0 trigger1 = Vel Y < 0 trigger2 = Vel Y > 0 y = .9 [State 195, 2] type = VelSet trigger1 = Pos Y > 0 trigger2 = Pos Y < -200 y = 0 [State 195, 2] type = PosSet trigger1 = Pos Y > 0 y = 0 [State 195, 2] type = PosSet trigger1 = Pos Y < -200 y = -200 [State 195, 3] type = ChangeState triggerall = Time >= 50 trigger1 = AnimTime = 0 value = 30 ctrl = 1 ;--------------------------------------------------------------------------- ; HIT_LIEDEAD [Statedef 5150] type = L movetype = H physics = N velset = 0,0 ctrl = 0 [State 5150, 1] ;Normal anim type = ChangeAnim triggerall = Time <= 0 triggerall = SelfAnimExist(5140) trigger1 = (anim != [5111,5119]) && (anim != [5171,5179]) trigger2 = !SelfAnimExist(5140 + (anim % 10)) value = 5140 [State 5150, 3] ;Hit up type anim type = ChangeAnim trigger1 = Time <= 0 trigger1 = (anim = [5111,5119]) || (anim = [5171,5179]) trigger1 = SelfAnimExist(5140 + (anim % 10)) value = 5140 + (anim % 10) [State 5150, 4] ;Match over anim type = ChangeAnim persistent = 0 ;trigger1 = Time <= 0 trigger1 = MatchOver = 1 trigger1 = Anim = [5140,5149] trigger1 = SelfAnimExist(anim+10) value = anim+10 [State 5150, 5] ;Switch to 5110 if liedead anim does not exist type = ChangeAnim trigger1 = Time <= 0 trigger1 = Anim != [5140,5159] trigger1 = Anim != [5110,5119] value = 5110 [State 5150, 6] type = ChangeAnim trigger1 = Time > 0 value = Anim [State 5150, 7] type = NotHitBy trigger1 = 1 value = SCA time = 1 [State 5150, 8] type = PosSet trigger1 = 1 y = 0 [State 5150, 9] type = AssertSpecial trigger1 = 1 flag = Invisible ;--------------------------------------------------------------------------- ; Death Sequence [Statedef 5151] type = A movetype = H physics = N velset = 0,0 ctrl = 0 [State 5150, 0] type = ChangeAnim trigger1 = 1 value = 0 [State 5150, 0] type = NotHitBy trigger1 = 1 value = SCA time = 1 [State 5150, EnvColor] type = EnvColor trigger1 = Time <= 0 value = 250,250,250 ignorehitpause = 1 persistent = 0 under = 1 time = 2 [State 5150, VarSet] type = VarSet trigger1 = Time <= 0 v = 0 value = 0 [State 5150, VarAdd] type = VarAdd trigger1 = Time > 0 v = 0 value = -1 [State 5150, 1] type = PalFX trigger1 = 1 time = 1 add = var(0),Var(0),Var(0) [State 5150, BGPalFX] type = BGPalFX trigger1 = Time < 5 time = 100 mul = 0,0,0 [State 5150, BGPalFX] type = BGPalFX trigger1 = Time >= 5 time = 1 mul = 0,0,0 [State 5150, Trans] type = Trans trigger1 = Time > 5 trans = addalpha alpha = 200,200 [State 5150, 1] type = Pause trigger1 = Time = 2 time = 40 [State 5150, 1] type = VelSet trigger1 = Time = 5 y = 1 [State 5150, 1] type = Explod triggerall = Time > 0 trigger1 = TimeMod = 6,0 pausemovetime = -1 supermovetime = -1 anim = F2 pos = 0, -40 sprpriority = 5 random = 50, 50 [State 5150, 1] type = Explod triggerall = Time > 0 trigger1 = TimeMod = 10,0 pausemovetime = -1 supermovetime = -1 anim = F3 pos = 0, -40 sprpriority = 5 random = 50, 50 [State 5150, 1] type = PlaySnd triggerall = Time > 0 trigger1 = TimeMod = 6,0 value = 2,1 channel = 1 [State 5150, 2] type = PlaySnd triggerall = Time > 0 trigger1 = TimeMod = 10,0 value = 2,0 channel = 2 [State 5150, 3] type = AssertSpecial trigger1 = Time > 5 trigger1 = TimeMod = 2,0 flag = Invisible [State 5150, 5] type = ChangeState trigger1 = Pos Y >= 0 trigger1 = Time > 100 trigger2 = Var(0) < -150 trigger2 = Time > 150 value = 5150 ;--------------------------------------------------------------------------- ; Initialize (at the start of the round) [Statedef 5900] type = S [State 5900, 1] ;Clear all int variables type = VarRangeSet trigger1 = RoundNo = 1 value = 0 [State 5900, 2] ;Clear all float variables type = VarRangeSet trigger1 = RoundNo = 1 fvalue = 0 [State 5900, 3] ;Intro type = ChangeState trigger1 = RoundNo = 1 value = 190 [state 5900, 4] ;Turns Mode Intro type = ChangeState trigger1 = RoundsExisted = 0 && TeamMode = Turns && Roundno > 1 value = 190 ;---------------------------------------------------------------------------