Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • 🔧 Login & Sign-Up Fixed!
    The recent login and sign-up issues have been successfully resolved by @DoomJoshuaBoy. Fresh logins are now working normally, so feel free to log in without any trouble! if you do run into trouble please let us know!

DJB MUGEN & IKEMEN Community

Command List — SonicMania_AI.zip ← Back to Overview

; The CMD file. ; ; Two parts: 1. Command definition and 2. State entry ; (state entry is after the commands def section) ; ; 1. Command definition ; --------------------- ; Note: The commands are CASE-SENSITIVE, and so are the command names. ; The eight directions are: ; B, DB, D, DF, F, UF, U, UB (all CAPS) ; corresponding to back, down-back, down, downforward, etc. ; The six buttons are: ; a, b, c, x, y, z (all lower case) ; In default key config, abc are are the bottom, and xyz are on the ; top row. For 2 button characters, we recommend you use a and b. ; For 6 button characters, use abc for kicks and xyz for punches. ; ; Each [Command] section defines a command that you can use for ; state entry, as well as in the CNS file. ; The command section should look like: ; ; [Command] ; name = some_name ; command = the_command ; time = time (optional -- defaults to 15 if omitted) ; ; - some_name ; A name to give that command. You'll use this name to refer to ; that command in the state entry, as well as the CNS. It is case- ; sensitive (QCB_a is NOT the same as Qcb_a or QCB_A). ; ; - command ; list of buttons or directions, separated by commas. ; Directions and buttons can be preceded by special characters: ; slash (/) - means the key must be held down ; egs. command = /D ;hold the down direction ; command = /DB, a ;hold down-back while you press a ; tilde (~) - to detect key releases ; egs. command = ~a ;release the a button ; command = ~D, F, a ;release down, press fwd, then a ; If you want to detect "charge moves", you can specify ; the time the key must be held down for (in game-ticks) ; egs. command = ~30a ;hold a for at least 30 ticks, then release ; dollar ($) - Direction-only: detect as 4-way ; egs. command = $D ;will detect if D, DB or DF is held ; command = $B ;will detect if B, DB or UB is held ; plus (+) - Buttons only: simultaneous press ; egs. command = a+b ;press a and b at the same time ; command = x+y+z ;press x, y and z at the same time ; You can combine them: ; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release, ; ;then press a and b together ; It's recommended that for most "motion" commads, eg. quarter-circle-fwd, ; you start off with a "release direction". This matches the way most ; popular fighting games implement their command detection. ; ; - time (optional) ; Time allowed to do the command, given in game-ticks. Defaults to 15 ; if omitted ; ; If you have two or more commands with the same name, all of them will ; work. You can use it to allow multiple motions for the same move. ; ; Some common commands examples are given below. ; ; [Command] ;Quarter circle forward + x ; name = "QCF_x" ; command = ~D, DF, F, x ; ; [Command] ;Half circle back + a ; name = "HCB_a" ; command = ~F, DF, D, DB, B, a ; ; [Command] ;Two quarter circles forward + y ; name = "2QCF_y" ; command = ~D, DF, F, D, DF, F, y ; ; [Command] ;Tap b rapidly ; name = "5b" ; command = b, b, b, b, b ; time = 30 ; ; [Command] ;Charge back, then forward + z ; name = "charge_B_F_z" ; command = ~60$B, F, z ; time = 10 ; ; [Command] ;Charge down, then up + c ; name = "charge_D_U_c" ; command = ~60$D, U, c ; time = 10 ; ;-| Button Remapping |----------------------------------------------------- ; This section lets you remap the player's buttons (to easily change the ; button configuration). The format is: ; old_button = new_button ; If new_button is left blank, the button cannot be pressed. [Remap] x = x y = y z = z a = a b = b c = c s = s ;-| Default Values |------------------------------------------------------- [Defaults] ; Default value for the "time" parameter of a Command. Minimum 1. command.time = 30 ; Default value for the "buffer.time" parameter of a Command. Minimum 1, ; maximum 30. command.buffer.time = 1 ;-| Super Motions |-------------------------------------------------------- [command] name = "MeanBean" command = D, DF, F, a+b time = 15 [command] name = "PopcornShop" command = D, DF, F, x+y time = 15 [command] name = "Encore" command = D, DF, F, c+z time = 15 [command] name = "Sandworm" command = D, DB, B, a+b time = 15 [command] name = "EggCrusher" command = D, DB, B, x+y time = 15 [command] name = "HeavyMagician" command = D, DB, B, c+z time = 15 [command] name = "SuperSonic" command = D, DB, B, D, DB, B, x+y+z time = 25 [command] name = "SuperSonic" command = D, DB, B, D, DB, B, c time = 25 ;-| Special Motions |------------------------------------------------------ [Command] name = "DodgeRollFwd" command = /F, a+b time = 10 [Command] name = "DodgeRollBack" command = /B, a+b time = 10 [command] name = "Homing" command = D, DF, F, a time = 15 [command] name = "SpinJump" command = D, DF, F, b time = 15 [command] name = "SuperPeelOut" command = D, DF, F, c time = 15 [command] name = "Studiopolis" command = D, DF, F, x time = 15 [command] name = "MirageSaloon" command = D, DF, F, y time = 15 [command] name = "TitanicMonarch" command = D, DF, F, z time = 15 [command] name = "Tails" command = D, DB, B, a time = 15 [command] name = "Knuckles" command = D, DB, B, b time = 15 [command] name = "Heavies" command = D, DB, B, c time = 15 [command] name = "Mighty" command = D, DB, B, x time = 15 [command] name = "Ray" command = D, DB, B, y time = 15 [command] name = "MetalSonic" command = D, DB, B, z time = 15 [command] name = "Motobug" command = F, B, a time = 15 [command] name = "Bomberer" command = F, B, b time = 15 [command] name = "MicDrop" command = F, B, c time = 15 [command] name = "Octus" command = F, B, x time = 15 [command] name = "TurboSpiker" command = F, B, y time = 15 [command] name = "Vultron" command = F, B, z time = 15 ;-| Double Tap |----------------------------------------------------------- [Command] name = "FF" ;Required (do not remove) command = F, F time = 10 [Command] name = "BB" ;Required (do not remove) command = B, B time = 10 ;-| 2/3 Button Combination |----------------------------------------------- [Command] name = "recovery" ;Required (do not remove) command = x+y time = 1 [Command] name = "recovery" command = y+z time = 1 [Command] name = "recovery" command = x+z time = 1 [Command] name = "recovery" command = a+b time = 1 [Command] name = "recovery" command = b+c time = 1 [Command] name = "recovery" command = a+c time = 1 ;-| Dir + Button |--------------------------------------------------------- [Command] name = "back_x" command = /$B,x time = 1 [Command] name = "back_y" command = /$B,y time = 1 [Command] name = "back_z" command = /$B,z time = 1 [Command] name = "down_x" command = /$D,x time = 1 [Command] name = "down_y" command = /$D,y time = 1 [Command] name = "down_z" command = /$D,z time = 1 [Command] name = "fwd_x" command = /$F,x time = 1 [Command] name = "fwd_y" command = /$F,y time = 1 [Command] name = "fwd_z" command = /$F,z time = 1 [Command] name = "up_x" command = /$U,x time = 1 [Command] name = "up_y" command = /$U,y time = 1 [Command] name = "up_z" command = /$U,z time = 1 [Command] name = "back_a" command = /$B,a time = 1 [Command] name = "back_b" command = /$B,b time = 1 [Command] name = "back_c" command = /$B,c time = 1 [Command] name = "down_a" command = /$D,a time = 1 [Command] name = "down_b" command = /$D,b time = 1 [Command] name = "down_c" command = /$D,c time = 1 [Command] name = "fwd_a" command = /$F,a time = 1 [Command] name = "fwd_b" command = /$F,b time = 1 [Command] name = "fwd_c" command = /$F,c time = 1 [Command] name = "up_a" command = /$U,a time = 1 [Command] name = "up_b" command = /$U,b time = 1 [Command] name = "up_c" command = /$U,c time = 1 ;-| Single Button |--------------------------------------------------------- [Command] name = "a" command = a time = 1 [Command] name = "b" command = b time = 1 [Command] name = "c" command = c time = 1 [Command] name = "x" command = x time = 1 [Command] name = "y" command = y time = 1 [Command] name = "z" command = z time = 1 [Command] name = "s" command = s time = 1 ;-| Single Dir |------------------------------------------------------------ [Command] name = "fwd" ;Required (do not remove) command = $F time = 1 [Command] name = "downfwd" command = $DF time = 1 [Command] name = "down" ;Required (do not remove) command = $D time = 1 [Command] name = "downback" command = $DB time = 1 [Command] name = "back" ;Required (do not remove) command = $B time = 1 [Command] name = "upback" command = $UB time = 1 [Command] name = "up" ;Required (do not remove) command = $U time = 1 [Command] name = "upfwd" command = $UF time = 1 ;-| Hold Button |-------------------------------------------------------------- [Command] name = "hold_x" command = /x time = 1 [Command] name = "hold_y" command = /y time = 1 [Command] name = "hold_z" command = /z time = 1 [Command] name = "hold_a" command = /a time = 1 [Command] name = "hold_b" command = /b time = 1 [Command] name = "hold_c" command = /c time = 1 [Command] name = "hold_s" command = /s time = 1 ;-| Hold Dir |-------------------------------------------------------------- [Command] name = "holdfwd" ;Required (do not remove) command = /$F time = 1 [Command] name = "holddownfwd" command = /$DF time = 1 [Command] name = "holddown" ;Required (do not remove) command = /$D time = 1 [Command] name = "holddownback" command = /$DB time = 1 [Command] name = "holdback" ;Required (do not remove) command = /$B time = 1 [Command] name = "holdupback" command = /$UB time = 1 [Command] name = "holdup" ;Required (do not remove) command = /$U time = 1 [Command] name = "holdupfwd" command = /$UF time = 1 ;--------------------------------------------------------------------------- ; 2. State entry ; -------------- ; This is where you define what commands bring you to what states. ; ; Each state entry block looks like: ; [State -1, Label] ;Change Label to any name you want to use to ; ;identify the state with. ; type = ChangeState ;Don't change this ; value = new_state_number ; trigger1 = command = command_name ; . . . (any additional triggers) ; ; - new_state_number is the number of the state to change to ; - command_name is the name of the command (from the section above) ; - Useful triggers to know: ; - statetype ; S, C or A : current state-type of player (stand, crouch, air) ; - ctrl ; 0 or 1 : 1 if player has control. Unless "interrupting" another ; move, you'll want ctrl = 1 ; - stateno ; number of state player is in - useful for "move interrupts" ; - movecontact ; 0 or 1 : 1 if player's last attack touched the opponent ; useful for "move interrupts" ; ; Note: The order of state entry is important. ; State entry with a certain command must come before another state ; entry with a command that is the subset of the first. ; For example, command "fwd_a" must be listed before "a", and ; "fwd_ab" should come before both of the others. ; ; For reference on triggers, see CNS documentation. ; ; Just for your information (skip if you're not interested): ; This part is an extension of the CNS. "State -1" is a special state ; that is executed once every game-tick, regardless of what other state ; you are in. ; Don't remove the following line. It's required by the CMD standard. [Statedef -1] ;-|-AI-|-------------------------------------------------------------------- [State -1, AI ON] ; Turn the AI on when Type = VarSet TriggerAll = Var(59) < 1 ; it is not on yet and TriggerAll = RoundState=2 ; the fight has started and is not over yet and Trigger1 = AILevel>0 ; the computer is playing the character v = 59 value= 1 ; value of 1 will mean the AI is on Ignorehitpause=1 [State -1, AI OFF] ; Turn the AI off when Type=VarSet Trigger1=var(59)>0 ; it is on and Trigger1=RoundState=3 && (stateno = 195 || lose) ; the player taunted OR lost Trigger2=!IsHelper ; OR if we are a player, but Trigger2=AILevel=0 ; the computer is not in control v=59 value=0 ; value of 0 will mean the AI is off. values other than 0 and 1 are not used in this example, we have only one AI mode, the normal one. Ignorehitpause=1 [State -1] Type=VarSet Trigger1=1 var(50)=(AILevel=1)*8+(AILevel=2)*16+(AILevel=3)*32+(AILevel=4)*63+(AILevel=5)*125+(AILevel=6)*250+ (AILevel=7)*500+(AILevel=8)*1000 [State -1] Type=Changestate Triggerall=Inguarddist; Guard when in guard distance Triggerall=var(59)>0; and the AI is on Triggerall=ctrl; and we have control Trigger1 = random< (var(50)*2+(AiLevel>=3)*30); chance is higher than for attacking, but not by too much. value=120 [State -1]; The engine will still guard by through pressing the back button, we need to disable that. Type=Assertspecial Triggerall=StateNo!=[120,160] Trigger1=var(59)>0 flag=noairguard flag2=nocrouchguard flag3=nostandguard [State 5050, 4] type = ChangeState triggerall = StateNo = 5050 triggerall = Vel Y > 0 triggerall = Pos Y >= 0 triggerall = alive triggerall = var(59)>0 triggerall = p2bodydist x >= 50 || p2dist y < -50 || (enemynear,ctrl = 0 && enemynear,movetype != A) trigger1 = CanRecover value = 5200 ;HITFALL_RECOVER [State 5050, 4] type = ChangeState triggerall = StateNo = 5050 triggerall = var(59)>0 triggerall = alive triggerall = CanRecover trigger1 = p2bodydist x >= 50 || p2dist y >= 150 || (enemynear,ctrl = 0 && enemynear,movetype != A) value = 5210 ;=========================================================================== ;--------------------------------------------------------------------------- [State -1, Run] type = ChangeState value = 6100 Triggerall = var(59)>0 Triggerall = alive = 1 Triggerall = ctrl triggerall = roundstate = 2 trigger1 = statetype != A trigger1 = p2movetype != H trigger1 = p2bodydist x < 200 trigger1 = random = [0,500] [State -1, AI Ctrl Back off 2] Type=ChangeState Triggerall = var(59)>0 Triggerall = alive = 1 Triggerall = ctrl Triggerall = StateType != A Triggerall = P2StateNo = 5110 || P2StateNo = [5200,5210] Triggerall = P2StateNo != 5100 Triggerall = P2StateNo != 5101 Triggerall = p2bodydist x = [0,55] trigger1 = 1 value= 720 [State -1, AI Ctrl Back off] Type=ChangeState Triggerall = var(59)>0 Triggerall = alive = 1 Triggerall = ctrl Triggerall = StateType != A Triggerall = P2StateType = L Triggerall = p2bodydist x = [0,55] trigger1 = 1 value= 720 ;--------------------------------------------------------------- ; AI Guard [State -1, AI Guard] type = ChangeState triggerall = (roundstate = 2) && (var(59) != 0) triggerall = (Ctrl) && (p2movetype = A) && (statetype = S) trigger1 = (p2bodydist X <= 250) && (random <= 799) value = 130 [State -1, AI Guard] type = ChangeState triggerall = (roundstate = 2) && (var(59) != 0) triggerall = (Ctrl) && (p2movetype = A) && (statetype = C) trigger1 = (p2bodydist X <= 250) && (random <= 799) value = 131 [State -1, AI Guard] type = ChangeState triggerall = (roundstate = 2) && (var(59) != 0) triggerall = (Ctrl) && (p2movetype = A) && (statetype = A) trigger1 = (p2bodydist X <= 250) && (random <= 799) value = 132 ;--------------------------------------------------------------- ;Standing Combos [State -1, AI Combo] type = ChangeState triggerall = statetype != A triggerall = p2statetype != A Triggerall = var(59)>0 && RoundState = 2 triggerall = p2bodydist X = [-5,55] triggerall = p2dist Y = [-50,20] trigger1 = ctrl trigger1 = random <= 750 value = 200 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 200) && movecontact value = 230 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 230) && movecontact value = 210 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 210) && movecontact value = 240 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 240) && movecontact && (random = [0,500]) value = 420 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 240) && movecontact value = 220 ;Crouching Combos [State -1, AI Combo] type = ChangeState triggerall = statetype != A triggerall = p2statetype != A Triggerall = var(59)>0 && RoundState = 2 triggerall = p2dist Y = [-50,20] triggerall = p2bodydist X = [-5,25] trigger1 = ctrl trigger1 = random <= 525 value = 400 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 400) && movecontact value = 430 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 430) && movecontact value = 410 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 410) && movecontact value = 440 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 440) && movecontact value = 420 ;Air Combos [State -1, AI Combo] type = ChangeState triggerall = statetype = A triggerall = p2statetype = A triggerall = var(59)>0 && RoundState = 2 triggerall = p2bodydist X = [-5,90] triggerall = p2dist Y = [-60,30] trigger1 = ctrl trigger1 = random <= 900 value = 600 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 600) && movecontact value = 630 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 630) && movecontact value = 610 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 610) && movecontact value = 640 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 640) && movecontact value = 650 ;--------------------------------------------------------------- ;Special Combo Shit [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 2000 trigger1 = (stateno = 220) && movehit && (random = [0,500]) value = 3200 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 1000 trigger1 = (stateno = 61501) && movehit && time = 15 value = 3000 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 1000 trigger1 = (stateno = 61501) && movehit && time = 23 && (random = [0,500]) value = 3100 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 1000 trigger1 = (stateno = 61501) && movehit && time = 23 && (random = [0,500]) value = 3400 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 420) && movecontact value = 61500 [State -1, AI Combo] type = ChangeState Triggerall = var(59)>0 && RoundState = 2 trigger1 = (stateno = 220) && movecontact && time = 11 value = 1200 ;--------------------------------------------------------------- ;AI Assists [State -1, AI Tails Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2101) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = p2statetype != L trigger1 = random <= 750 trigger1 = ctrl value = 2000 [State -1, AI Kunckles Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2101) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2100 [State -1, AI Hard-Boiled Heavies Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2201) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2200 [State -1, AI Mighty Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2301) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2300 [State -1, AI Ray Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2401) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2400 [State -1, AI Metal Sonic Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2501) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2500 [State -1, AI Motobug Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2601) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2600 [State -1, AI Bombrer Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2611) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2610 [State -1, AI Mic Drop Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2621) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2620 [State -1, AI Octus Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2631) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2630 [State -1, AI Turbo Spiker Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2641) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2640 [State -1, AI Vultron Assist] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(2651) = 0 triggerall = prevstateno != 5120 triggerall = p2bodydist X = [80,300] trigger1 = statetype != A trigger1 = random <= 750 trigger1 = ctrl value = 2650 ;--------------------------------------------------------------- ;Supers [State -1, AI Super Sonic] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 3000 triggerall = numhelper(3611) = 0 triggerall = statetype = A triggerall = p2statetype != L triggerall = prevstateno != 5120 trigger1 = ctrl value = 3610 [State -1, AI Mean Bean] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 1000 triggerall = statetype != A triggerall = p2statetype != L triggerall = numhelper(3001) = 0 triggerall = prevstateno != 5120 trigger1 = random < var(59) * 80 trigger1 = ctrl value = 3000 [State -1, AI Popcorn] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 1000 triggerall = statetype != A triggerall = p2statetype != L triggerall = numhelper(3101) = 0 triggerall = prevstateno != 5120 trigger1 = random < var(59) * 80 trigger1 = ctrl value = 3100 [State -1, AI Egg Crusher] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 1000 triggerall = numhelper(3401) = 0 triggerall = prevstateno != 5120 trigger1 = p2statetype = A trigger1 = statetype != A trigger1 = p2bodydist x = [0,20] trigger1 = random < var(59) * 80 trigger1 = ctrl value = 3400 [State -1, AI Heavy Magician] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 2000 triggerall = numhelper(3501) = 0 triggerall = prevstateno != 5120 trigger1 = statetype != A trigger1 = p2statetype != L trigger1 = random < var(59) * 80 trigger1 = ctrl value = 3500 [State -1, AI Encore] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = power >= 2000 triggerall = numhelper(3201) = 0 triggerall = prevstateno != 5120 trigger1 = statetype != A trigger1 = p2statetype != A trigger1 = p2statetype != L trigger1 = random < var(59) * 80 trigger1 = ctrl value = 3200 ;--------------------------------------------------------------- ;Specials [State -1, AI Homing Attack] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = prevstateno != 5120 trigger1 = statetype != A trigger1 = p2movetype != H trigger1 = p2bodydist x > 140 trigger1 = random < var(59) * 70 trigger1 = ctrl value = 1000 [State -1, AI Spin Jump] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = prevstateno != 5120 trigger1 = statetype != A trigger1 = p2movetype != H trigger1 = p2bodydist x > 140 trigger1 = random < var(59) * 70 trigger1 = ctrl value = 1100 [State -1, AI Super Peel Out] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = prevstateno != 5120 trigger1 = statetype != A trigger1 = p2movetype != H trigger1 = p2bodydist x > 140 trigger1 = random < var(59) * 70 trigger1 = ctrl value = 1200 [State -1, AI Studiopolis] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(1301) = 0 triggerall = prevstateno != 5120 triggerall = statetype != A trigger1 = p2bodydist X = [80,300] trigger1 = random <= 750 trigger1 = ctrl value = 1300 [State -1, AI Mirage Saloon] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(1401) = 0 triggerall = prevstateno != 5120 triggerall = statetype != A trigger1 = p2bodydist X = [80,300] trigger1 = random <= 750 trigger1 = ctrl value = 1400 [State -1, AI Titanic Morach] type = ChangeState triggerall = var(59)>0 && RoundState = 2 triggerall = numhelper(1501) = 0 triggerall = prevstateno != 5120 triggerall = statetype != A trigger1 = p2bodydist X = [80,300] trigger1 = random <= 750 trigger1 = ctrl value = 1500 ;--------------------------------------------------------------- ;Throw [State -1, Throw] type = ChangeState value = 800 Triggerall = var(59)>0 Triggerall = alive = 1 triggerall = roundstate = 2 triggerall = statetype = S triggerall = ctrl trigger1 = p2bodydist X < 5 trigger1 = p2movetype = A trigger1 = random <= 799 ;--------------------------------------------------------------- ;AI Taunt [State -1, AI Taunt] type = ChangeState value = 195 Triggerall = AILevel triggerall = statetype != A triggerall = roundstate = 3 triggerall = win || winko triggerall = time = [0,120] triggerall = stateno != 195 triggerall = prevstateno != 195 triggerall = p2dist x > 0 trigger1 = ctrl ;=========================================================================== ;--------------------------------------------------------------------------- ;Mean Bean [State -1, Mean Bean] type = ChangeState value = 3000 triggerall = Power >= 1000 triggerall = command = "MeanBean" triggerall = statetype != A trigger1 = ctrl trigger2 = hitdefattr = SC, NA, SA, HA trigger2 = stateno != [3000,3999) trigger2 = movecontact ;--------------------------------------------------------------------------- ;SegaSonic Popcorn Shop [State -1, SegaSonic Popcorn Shop] type = ChangeState value = 3100 triggerall = Power >= 1000 triggerall = command = "PopcornShop" triggerall = statetype != A trigger1 = ctrl trigger2 = hitdefattr = SC, NA, SA, HA trigger2 = stateno != [3000,3999) trigger2 = movecontact ;--------------------------------------------------------------------------- ;Encore [State -1, Encore] type = ChangeState value = 3200 triggerall = Power >= 2000 triggerall = command = "Encore" triggerall = statetype != A trigger1 = ctrl trigger2 = hitdefattr = SC, NA, SA, HA trigger2 = stateno != [3000,3999) trigger2 = movecontact ;--------------------------------------------------------------------------- ;Sandworm [State -1, Sandworm] type = ChangeState value = 3300 triggerall = numhelper(3301) = 0 triggerall = Power >= 1000 triggerall = command = "Sandworm" triggerall = statetype != A trigger1 = ctrl trigger2 = hitdefattr = SC, NA, SA, HA trigger2 = stateno != [3000,3999) trigger2 = movecontact ;--------------------------------------------------------------------------- ;Egg Crusher [State -1, Egg Crusher] type = ChangeState value = 3400 triggerall = numhelper(3401) = 0 triggerall = Power >= 1000 triggerall = command = "EggCrusher" triggerall = statetype != A trigger1 = ctrl trigger2 = hitdefattr = SC, NA, SA, HA trigger2 = stateno != [3000,3999) trigger2 = movecontact ;--------------------------------------------------------------------------- ;Heavy Magician [State -1, Heavy Magician] type = ChangeState value = 3500 triggerall = numhelper(3501) = 0 triggerall = Power >= 2000 triggerall = command = "HeavyMagician" triggerall = statetype != A trigger1 = ctrl trigger2 = hitdefattr = SC, NA, SA, HA trigger2 = stateno != [3000,3999) trigger2 = movecontact ;--------------------------------------------------------------------------- ;Super Sonic [State -1, Super Sonic] type = ChangeState value = 3600 triggerall = numhelper(3610) = 0 triggerall = Power >= 3000 triggerall = command = "SuperSonic" triggerall = statetype = A trigger1 = ctrl ;=========================================================================== ;This is not a move, but it sets up var(1) to be 1 if conditions are right ;for a combo into a special move (used below). ;Since a lot of special moves rely on the same conditions, this reduces ;redundant logic. [State -1, Combo condition Reset] type = VarSet trigger1 = 1 var(1) = 0 [State -1, Combo condition Check] type = VarSet trigger1 = statetype != A trigger1 = ctrl trigger2 = (stateno = [200,250]) || (stateno = [400,420]) || (stateno = [430,450]) trigger2 = movecontact var(1) = 1 [State -1, Combo condition Reset] type = VarSet trigger1 = 1 var(3) = 0 [State -1, Combo condition Check] type = VarSet trigger1 = statetype != A trigger1 = ctrl trigger2 = (stateno = 1000) trigger2 = movecontact var(3) = 1 ;=========================================================================== ;--------------------------------------------------------------------------- [State -1, Standing Parry] type = HitOverride trigger1 = !AILevel trigger1 = roundstate = 2 && (statetype = S || stateno = 5120) trigger1 = command = "fwd" && command != "back" && command != "up" && command != "down" trigger1 = ctrl || (stateno = [700,701]) || stateno = 5120 trigger1 = var(21) := 1 attr = SA,AA,AP stateno = 700 slot = 0 time = 8 [State -1, Crouching Parry] type = HitOverride trigger1 = !AILevel trigger1 = roundstate = 2 && statetype != A trigger1 = command = "down" && command != "fwd" && command != "back" && command != "up" trigger1 = ctrl || (stateno = [700,701]) || stateno = 5120 trigger1 = var(21) := 2 attr = C,AA,AP stateno = 701 slot = 0 time = 8 [State -1, Air Parry] type = HitOverride trigger1 = !AILevel trigger1 = roundstate = 2 && statetype = A trigger1 = command = "fwd" && command != "back" && command != "up" && command != "down" trigger1 = ctrl || stateno = 702 trigger1 = var(21) := 3 attr = SA,AA,AP stateno = 702 forceair = 1 slot = 0 time = 7 ;--------------------------------------------------------------------------- ;Spin Roll [State -1, Spin Roll] type = ChangeState value = 950 triggerall = numhelper(951) = 0 triggerall = (stateno = 100) && command = "a" trigger1 = (statetype = s) && ctrl ;--------------------------------------------------------------------------- ;Homing Attack [State -1, Homing Attack] type = ChangeState value = 1000 triggerall = command = "Homing" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Spin Jump [State -1, Spin Jump] type = ChangeState value = 1100 triggerall = command = "SpinJump" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Super Peel Out [State -1, Super Peel Out] type = ChangeState value = 1200 triggerall = command = "SuperPeelOut" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Studiopolis [State -1, Studiopolis] type = ChangeState value = 1300 triggerall = numhelper(1301) = 0 triggerall = command = "Studiopolis" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Mirage Saloon [State -1, Mirage Saloon] type = ChangeState value = 1400 triggerall = numhelper(1401) = 0 triggerall = command = "MirageSaloon" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Titanic Monarch [State -1, Titanic Monarch] type = ChangeState value = 1500 triggerall = numhelper(1501) = 0 triggerall = command = "TitanicMonarch" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Tails [State -1, Tails] type = ChangeState value = 2000 triggerall = helper, stateno != [901,904] triggerall = command = "Tails" trigger1 = (statetype = s) && ctrl ;--------------------------------------------------------------------------- ;Knuckles [State -1, Knuckles] type = ChangeState value = 2100 triggerall = numhelper(2101) = 0 triggerall = command = "Knuckles" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Hard-Boiled Heavies [State -1, Hard-Boiled Heavies] type = ChangeState value = 2200 triggerall = numhelper(2201) = 0 triggerall = command = "Heavies" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Mighty [State -1, Mighty] type = ChangeState value = 2300 triggerall = numhelper(2301) = 0 triggerall = command = "Mighty" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Ray [State -1, Ray] type = ChangeState value = 2400 triggerall = numhelper(2401) = 0 triggerall = command = "Ray" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Metal Sonic [State -1, Metal Sonic] type = ChangeState value = 2500 triggerall = numhelper(2501) = 0 triggerall = command = "MetalSonic" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Motobug [State -1, Motobug] type = ChangeState value = 2600 triggerall = numhelper(2601) = 0 triggerall = command = "Motobug" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Bomberer [State -1, Bomberer] type = ChangeState value = 2610 triggerall = numhelper(2611) = 0 triggerall = command = "Bomberer" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Mic Drop [State -1, Mic Drop] type = ChangeState value = 2620 triggerall = numhelper(2621) = 0 triggerall = command = "MicDrop" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Octus [State -1, Octus] type = ChangeState value = 2630 triggerall = numhelper(2631) = 0 triggerall = command = "Octus" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Turbo Spiker [State -1, Turbo Spiker] type = ChangeState value = 2640 triggerall = numhelper(2641) = 0 triggerall = command = "TurboSpiker" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;--------------------------------------------------------------------------- ;Vultron [State -1, Vultron] type = ChangeState value = 2650 triggerall = numhelper(2651) = 0 triggerall = command = "Vultron" trigger1 = (statetype = s) && ctrl trigger2 = var(1) ;=========================================================================== ;--------------------------------------------------------------------------- ; Run Fwd [State -1, Run Fwd] type = ChangeState value = 100 trigger1 = command = "FF" trigger1 = statetype = S trigger1 = ctrl ;--------------------------------------------------------------------------- ; Run Back [State -1, Run Back] type = ChangeState value = 105 trigger1 = command = "BB" trigger1 = statetype = S trigger1 = ctrl ;--------------------------------------------------------------------------- ; Throw [State -1, Throw] type = ChangeState value = 800 triggerall = command = "y" || command = "z" triggerall = statetype = S triggerall = ctrl triggerall = stateno != 100 trigger1 = command = "holdfwd" trigger1 = p2bodydist X < 10 trigger1 = (p2statetype = S) || (p2statetype = C) trigger1 = p2movetype != H trigger2 = command = "holdback" trigger2 = p2bodydist X < 10 trigger2 = (p2statetype = S) || (p2statetype = C) trigger2 = p2movetype != H ;=========================================================================== ;--------------------------------------------------------------------------- ; Taunt [State -1, Taunt] type = ChangeState value = 195 triggerall = command = "s" trigger1 = statetype != A trigger1 = ctrl ;--------------------------------------------------------------------------- ;Dodge Roll Forward [State -1, Dodge Roll Forward] type = ChangeState value = 710 triggerall = command = "DodgeRollFwd" trigger1 = (statetype = s) && ctrl ;--------------------------------------------------------------------------- ;Dodge Roll Backward [State -1, Dodge Roll Backward] type = ChangeState value = 720 triggerall = command = "DodgeRollBack" trigger1 = (statetype = s) && ctrl ;=========================================================================== ;--------------------------------------------------------------------------- ; Stand Light Punch [State -1, Stand Light Punch] type = ChangeState value = 200 triggerall = command = "x" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl ;--------------------------------------------------------------------------- ; Stand Medium Punch [State -1, Stand Medium Punch] type = ChangeState value = 210 triggerall = command = "y" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 230) && movecontact trigger4 = (stateno = 400) && movecontact trigger5 = (stateno = 430) && movecontact ;--------------------------------------------------------------------------- ; Stand Strong Punch [State -1, Stand Strong Punch] type = ChangeState value = 220 triggerall = command = "z" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 210) && movecontact trigger4 = (stateno = 230) && movecontact trigger5 = (stateno = 240) && movecontact trigger6 = (stateno = 400) && movecontact trigger7 = (stateno = 410) && movecontact trigger8 = (stateno = 430) && movecontact trigger9 = (stateno = 440) && movecontact ;--------------------------------------------------------------------------- ; Stand Light Kick [State -1, Stand Light Kick] type = ChangeState value = 230 triggerall = command = "a" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = (stateno = 200) && movecontact ;--------------------------------------------------------------------------- ; Standing Medium Kick [State -1, Standing Medium Kick] type = ChangeState value = 240 triggerall = command = "b" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 210) && movecontact trigger4 = (stateno = 230) && movecontact trigger5 = (stateno = 400) && movecontact trigger6 = (stateno = 410) && movecontact trigger7 = (stateno = 430) && movecontact ;--------------------------------------------------------------------------- ; Standing Strong Kick [State -1, Standing Strong Kick] type = ChangeState value = 250 triggerall = command = "c" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 210) && movecontact trigger4 = (stateno = 230) && movecontact trigger5 = (stateno = 240) && movecontact trigger6 = (stateno = 400) && movecontact trigger7 = (stateno = 410) && movecontact trigger8 = (stateno = 430) && movecontact trigger9 = (stateno = 440) && movecontact ;--------------------------------------------------------------------------- ; Crouching Light Punch [State -1, Crouching Light Punch] type = ChangeState value = 400 triggerall = command = "x" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 230) && movecontact ;--------------------------------------------------------------------------- ; Crouching Medium Punch [State -1, Crouching Medium Punch] type = ChangeState value = 410 triggerall = command = "y" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 210) && movecontact trigger4 = (stateno = 230) && movecontact trigger5 = (stateno = 400) && movecontact trigger6 = (stateno = 430) && movecontact ;--------------------------------------------------------------------------- ; Crouching Strong Punch [State -1, Crouching Strong Punch] type = ChangeState value = 420 triggerall = command = "z" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 210) && movecontact trigger4 = (stateno = 230) && movecontact trigger5 = (stateno = 240) && movecontact trigger6 = (stateno = 400) && movecontact trigger7 = (stateno = 410) && movecontact trigger8 = (stateno = 430) && movecontact trigger9 = (stateno = 440) && movecontact ;--------------------------------------------------------------------------- ; Crouching Light Kick [State -1, Crouching Light Kick] type = ChangeState value = 430 triggerall = command = "a" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 230) && movecontact trigger4 = (stateno = 400) && movecontact ;--------------------------------------------------------------------------- ; Crouching Medium Kick [State -1, Crouching Medium Kick] type = ChangeState value = 440 triggerall = command = "b" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 210) && movecontact trigger4 = (stateno = 230) && movecontact trigger5 = (stateno = 240) && movecontact trigger6 = (stateno = 400) && movecontact trigger7 = (stateno = 410) && movecontact trigger8 = (stateno = 430) && movecontact ;--------------------------------------------------------------------------- ; Crouching Strong Kick [State -1, Crouching Strong Kick] type = ChangeState value = 450 triggerall = command = "c" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = (stateno = 200) && movecontact trigger3 = (stateno = 210) && movecontact trigger4 = (stateno = 230) && movecontact trigger5 = (stateno = 240) && movecontact trigger6 = (stateno = 400) && movecontact trigger7 = (stateno = 410) && movecontact trigger8 = (stateno = 430) && movecontact trigger9 = (stateno = 440) && movecontact ;--------------------------------------------------------------------------- ;Jump Light Punch [State -1, Jump Light Punch] type = ChangeState value = 600 triggerall = command = "x" trigger1 = statetype = A trigger1 = ctrl ;--------------------------------------------------------------------------- ;Jump Medium Punch [State -1, Jump Medium Punch] type = ChangeState value = 610 triggerall = command = "y" trigger1 = statetype = A trigger1 = ctrl trigger2 = (stateno = 600) && movecontact trigger3 = (stateno = 630) && movecontact trigger4 = (stateno = 660) && movecontact ;--------------------------------------------------------------------------- ;Jump Strong Punch [State -1, Jump Strong Punch] type = ChangeState value = 620 triggerall = command = "z" trigger1 = statetype = A trigger1 = ctrl trigger2 = (stateno = 600) && movecontact trigger3 = (stateno = 610) && movecontact trigger4 = (stateno = 630) && movecontact trigger5 = (stateno = 640) && movecontact trigger6 = (stateno = 650) && movecontact ;--------------------------------------------------------------------------- ;Jump Light Kick [State -1, Jump Light Kick] type = ChangeState value = 630 triggerall = command = "a" trigger1 = statetype = A trigger1 = ctrl trigger2 = (stateno = 600) && movecontact ;--------------------------------------------------------------------------- ;Jump Medium Kick [State -1, Jump Medium Kick] type = ChangeState value = 640 triggerall = command = "b" trigger1 = statetype = A trigger1 = ctrl trigger2 = (stateno = 600) && movecontact trigger3 = (stateno = 610) && movecontact trigger4 = (stateno = 630) && movecontact trigger5 = (stateno = 660) && movecontact ;--------------------------------------------------------------------------- [State -1, Jump Strong Kick] type = ChangeState value = 650 triggerall = command = "c" trigger1 = statetype = A trigger1 = ctrl trigger2 = (stateno = 600) && movecontact trigger3 = (stateno = 610) && movecontact trigger4 = (stateno = 630) && movecontact trigger5 = (stateno = 640) && movecontact ;----------------------[ LIE DOWN RECOVERY ROLL]---------------------------------- [State -1,Lie Down Forward Recovery Roll] type = ChangeState value = 730 triggerall = Var(59) != 2 triggerall = command = "holdfwd" triggerall = time = 1 trigger1 = stateno = 5120 trigger1 = alive = 1 ;--------------------------------------------------------------------------- [State -1, Lie Down Backward Recovery Roll] type = ChangeState value = 740 triggerall = Var(59) != 2 triggerall = command = "holdback" triggerall = time = 1 trigger1 = stateno = 5120 trigger1 = alive = 1
Back
Top