LXP2.1 - MetalSonic - Subaction - SpecialN

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 |

Stats

IASA: None
Hitboxes active: 1-57
Hitbox set 0 hits: 1
Subaction Index: 0x51

Hitboxes

Move staling reduces damage up to 45%. Move staling also reduces final knockback, shieldstun and hitlag because damage is used in their formulas.

Frames:1-56

Set ID Dmg BKB KBG Angle Effect Sound Clang Shieldstun Hitlag Targets
0 1 14 80 80 361 Electric MagicZap false 8 7

Scripts

Main

  1. if ((LongtermAccessFloat (0x5f) Equal scalar(1)))
    1. FloatVariableSet { variable: LongtermAccessFloat (0x5f), value: 2 }
    2. CreateInterrupt { interrupt_id: None, action: SpecialN, requirement: (CharacterExists) }
  2. Subroutine(0x277dc)
  3. loop Infinite times:
    1. FloatVariableSet { variable: LongtermAccessFloat (0x5a), value: InternalConstantInt(CurrentFrame) }
    2. FloatVariableAdd { variable: LongtermAccessFloat (0x5a), value: 5 }
    3. if ((LongtermAccessFloat (0x5a) GreaterThanOrEqual scalar(21)))
      1. DeleteAllHitBoxes
      2. if ((LongtermAccessFloat (0x5a) GreaterThanOrEqual scalar(45)))
        1. UnknownEvent { namespace: 0x0, code: 0x6, unk1: 0x0, arguments: [] }
    4. SetOrAddVelocity(SetOrAddVelocity { x_vel: 0.0, y_vel: 0.16, x_set: true, y_set: true })
    5. SyncWait(1.0)
  4. LedgeGrabEnable(EnableInFront)

GFX

  1. Subroutine(0x2940c)
  2. if (HasAFloorBelowThePlayer scalar(14.001))
    1. IfStatementAnd (not(HasAFloorBelowThePlayer scalar(12)))
    2. ExternalGraphicEffect(ExternalGraphicEffect { file: 0, graphic: 86, bone: 0, x_offset: 0.0, y_offset: -12.5, z_offset: 0.0, x_rotation: 0.0, y_rotation: 0.0, z_rotation: 0.0, scale: 0.4, randomize: Some(ExternalGraphicEffectRandomize { random_x_offset: 0.0, random_y_offset: 0.0, random_z_offset: 0.0, random_x_rotation: 0.0, random_y_rotation: 0.0, random_z_rotation: 0.0 }), terminate_with_animation: false })
  3. if (HasAFloorBelowThePlayer scalar(12.001))
    1. IfStatementAnd (not(HasAFloorBelowThePlayer scalar(10)))
    2. ExternalGraphicEffect(ExternalGraphicEffect { file: 0, graphic: 86, bone: 0, x_offset: 0.0, y_offset: -10.5, z_offset: 0.0, x_rotation: 0.0, y_rotation: 0.0, z_rotation: 0.0, scale: 0.5, randomize: Some(ExternalGraphicEffectRandomize { random_x_offset: 0.0, random_y_offset: 0.0, random_z_offset: 0.0, random_x_rotation: 0.0, random_y_rotation: 0.0, random_z_rotation: 0.0 }), terminate_with_animation: false })
  4. if (HasAFloorBelowThePlayer scalar(10.001))
    1. IfStatementAnd (not(HasAFloorBelowThePlayer scalar(8)))
    2. ExternalGraphicEffect(ExternalGraphicEffect { file: 0, graphic: 86, bone: 0, x_offset: 0.0, y_offset: -8.5, z_offset: 0.0, x_rotation: 0.0, y_rotation: 0.0, z_rotation: 0.0, scale: 0.6, randomize: Some(ExternalGraphicEffectRandomize { random_x_offset: 0.0, random_y_offset: 0.0, random_z_offset: 0.0, random_x_rotation: 0.0, random_y_rotation: 0.0, random_z_rotation: 0.0 }), terminate_with_animation: false })
  5. if (HasAFloorBelowThePlayer scalar(8.001))
    1. IfStatementAnd (not(HasAFloorBelowThePlayer scalar(6)))
    2. ExternalGraphicEffect(ExternalGraphicEffect { file: 0, graphic: 86, bone: 0, x_offset: 0.0, y_offset: -6.5, z_offset: 0.0, x_rotation: 0.0, y_rotation: 0.0, z_rotation: 0.0, scale: 0.7, randomize: Some(ExternalGraphicEffectRandomize { random_x_offset: 0.0, random_y_offset: 0.0, random_z_offset: 0.0, random_x_rotation: 0.0, random_y_rotation: 0.0, random_z_rotation: 0.0 }), terminate_with_animation: false })
  6. if (HasAFloorBelowThePlayer scalar(6.001))
    1. IfStatementAnd (not(HasAFloorBelowThePlayer scalar(4)))
    2. ExternalGraphicEffect(ExternalGraphicEffect { file: 0, graphic: 86, bone: 0, x_offset: 0.0, y_offset: -4.5, z_offset: 0.0, x_rotation: 0.0, y_rotation: 0.0, z_rotation: 0.0, scale: 0.8, randomize: Some(ExternalGraphicEffectRandomize { random_x_offset: 0.0, random_y_offset: 0.0, random_z_offset: 0.0, random_x_rotation: 0.0, random_y_rotation: 0.0, random_z_rotation: 0.0 }), terminate_with_animation: false })
  7. if (HasAFloorBelowThePlayer scalar(4.001))
    1. IfStatementAnd (not(HasAFloorBelowThePlayer scalar(2.5)))
    2. ExternalGraphicEffect(ExternalGraphicEffect { file: 0, graphic: 86, bone: 0, x_offset: 0.0, y_offset: -3.5, z_offset: 0.0, x_rotation: 0.0, y_rotation: 0.0, z_rotation: 0.0, scale: 0.9, randomize: Some(ExternalGraphicEffectRandomize { random_x_offset: 0.0, random_y_offset: 0.0, random_z_offset: 0.0, random_x_rotation: 0.0, random_y_rotation: 0.0, random_z_rotation: 0.0 }), terminate_with_animation: false })
  8. if (HasAFloorBelowThePlayer scalar(2.501))
    1. ExternalGraphicEffect(ExternalGraphicEffect { file: 0, graphic: 86, bone: 0, x_offset: 0.0, y_offset: -1.0, z_offset: 0.0, x_rotation: 0.0, y_rotation: 0.0, z_rotation: 0.0, scale: 1.0, randomize: Some(ExternalGraphicEffectRandomize { random_x_offset: 0.0, random_y_offset: 0.0, random_z_offset: 0.0, random_x_rotation: 0.0, random_y_rotation: 0.0, random_z_rotation: 0.0 }), terminate_with_animation: false })
  9. loop 4 times:
    1. UnknownEvent { namespace: 0x11, code: 0x1, unk1: 0x0, arguments: [Value(129), Value(24), Scalar(-1.0), Scalar(1.0), Scalar(0.0), Scalar(0.0), Scalar(0.0), Scalar(90.0), Variable(Variable { memory_type: LongtermAccess, data_type: Float, address: 93 }), Bool(false)] }
    2. SyncWait(2.0)

SFX

  1. SoundEffect1(123)
  2. SoundEffect1(172)
  3. SoundEffect1(173)

Other

  1. loop Infinite times:
    1. if ((LongtermAccessFloat (0x5e) GreaterThanOrEqual scalar(25)))
      1. FlashEffectOverlay { red: 240, green: 8, blue: 8, alpha: 240 }
      2. FloatVariableSet { variable: LongtermAccessFloat (0x59), value: 3 }
      3. SyncWait(3.0)
    2. else
      1. if ((LongtermAccessFloat (0x5e) GreaterThanOrEqual scalar(20)))
        1. FlashEffectOverlay { red: 240, green: 8, blue: 8, alpha: 160 }
        2. FloatVariableSet { variable: LongtermAccessFloat (0x59), value: 4 }
        3. SyncWait(4.0)
      2. else
        1. if ((LongtermAccessFloat (0x5e) GreaterThanOrEqual scalar(15)))
          1. FlashEffectOverlay { red: 240, green: 8, blue: 8, alpha: 128 }
          2. FloatVariableSet { variable: LongtermAccessFloat (0x59), value: 6 }
          3. SyncWait(6.0)
        2. else
          1. FlashEffectOverlay { red: 240, green: 8, blue: 8, alpha: 96 }
          2. FloatVariableSet { variable: LongtermAccessFloat (0x59), value: 7 }
          3. SyncWait(7.0)
    3. RemoveFlashEffect
    4. SyncWait(2.0)