Esempio n. 1
0
    def __init__(self, *args):
        BasePanel.__init__(self, *args)
        speed_page = Page(self.notebook)
        flags_page = Page(self.notebook)

        self.notebook.InsertPage(1, speed_page, 'Speed and Transition')
        self.notebook.InsertPage(2, flags_page, 'Flags')

        self.ean_type = self.add_single_selection_entry(
            self.entry_page,
            'EAN Type',
            majorDimension=4,
            choices=Animation.description_choices())

        self.animation_flags = self.add_multiple_selection_entry(
            self.entry_page,
            'Animation Flags',
            choices=[('Animation Options #1', [
                'Unknown (0x1)', 'Specific per EAN Type', "Unknown (0x4)",
                'Unknown (0x8)'
            ], True),
                     ('Animation Options #2', [
                         'Unknown (0x1)', 'Continue From Last Entry',
                         "Unknown (0x4)", 'Unknown (0x8)'
                     ], True),
                     ('Animation Options #3', [
                         'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                         'Unknown (0x8)'
                     ], True),
                     ('Animation Options #4', [
                         'Follow on X Axis', 'Follow on Y Axis',
                         "Follow on Z Axis", 'Unknown (0x8)'
                     ], True)])

        self.play_face_animation_from_skill = self.add_single_selection_entry(
            flags_page,
            'Play Face Animation from Skill / Chara EAN',
            choices={
                'No': 0x0,
                'Yes': 0x1
            })

        self.ean_index = self.add_num_entry(self.entry_page, 'EAN Index')
        self.frame_start = self.add_num_entry(self.entry_page, 'Frame Start')
        self.frame_end = self.add_num_entry(self.entry_page, 'Frame End')
        self.frame_loop_start = self.add_num_entry(self.entry_page,
                                                   'Frame Loop Start')
        self.u_16 = self.add_hex_entry(self.unknown_page, 'U_16', max=0xFFFF)
        self.speed = self.add_float_entry(speed_page, 'Speed')
        self.animation_transition_start_frame = self.add_float_entry(
            speed_page, 'Animation Transition\nStart Frame')
        self.animation_transition_frame_step = self.add_float_entry(
            speed_page, 'Animation Transition\nFrame Step')
Esempio n. 2
0
    def __init__(self, *args):
        BasePanel.__init__(self, *args)
        matrix_page = Page(self.notebook)
        self.notebook.InsertPage(1, matrix_page, 'Matrix')

        self.movement_flags = self.add_multiple_selection_entry(
            self.entry_page,
            'Movement Flags',
            orient=wx.VERTICAL,
            cols=2,
            choices=[('', [
                None, 'Teleport to random opponents(?)', None,
                'Orientation Follows Direction'
            ], True),
                     ('', [
                         "Teleport Z Direction Reletive to Opponent's", None,
                         'Up', 'Down'
                     ], True), ('', [None, None, None,
                                     'No Orientation'], True),
                     ('', [
                         'Automatic in direction',
                         'Automatic towards opponent', 'Manual', 'Teleport'
                     ], True)])
        self.u_0a = self.add_hex_entry(self.unknown_page, 'U_0A')
        self.x_axis_movement = self.add_float_entry(matrix_page,
                                                    'X Axis Movement')
        self.y_axis_movement = self.add_float_entry(matrix_page,
                                                    'Y Axis Movement')
        self.z_axis_movement = self.add_float_entry(matrix_page,
                                                    'Z Axis Movement')
        self.x_axis_drag = self.add_float_entry(matrix_page, 'X Axis Drag')
        self.y_axis_drag = self.add_float_entry(matrix_page, 'Y Axis Drag')
        self.z_axis_drag = self.add_float_entry(matrix_page, 'Z Axis Drag')
Esempio n. 3
0
    def __init__(self, *args):

        BasePanel.__init__(self, *args)
        bone_page = Page(self.notebook)
        self.notebook.InsertPage(1, bone_page, 'Bone')

        self.throw_flags = self.add_multiple_selection_entry(
            self.entry_page,
            'Throw Flags',
            majorDimension=2,
            choices=
            [('Throw Options #1', [
                'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                'Unknown (0x8)'
            ], True),
             ('Throw Options #2', [
                 'Move Victim to User',
                 'Move Victim to User (Direction reletive to Animation)',
                 "Unknown (0x4)", 'Unknown (0x8)'
             ], True),
             ('Jump to BAC entry', [
                 'Unknown (0x1)', 'When duration is finished', "Unknown (0x4)",
                 'When ground is reached'
             ], True),
             ('Direction, orientation and connection', [
                 'Direction fixed to animation, Bone Connection Enabled (User Only)',
                 'Direction fixed to animation, Bone Connection Disabled (User Only)',
                 "Victim keeps offset, Bone Connection Enabled (User Only)",
                 'Victim keeps offset, Bone Connection Disabled (User Only) '
             ], True)])

        self.u_0a = self.add_hex_entry(self.unknown_page, 'U_0A')
        self.bone_user_connects_to_victim_from = self.add_single_selection_entry(
            bone_page,
            'Bone User Connects\nto Victim From',
            majorDimension=5,
            choices=BONE_TYPES)
        self.bone_victim_connects_to_user_from = self.add_single_selection_entry(
            bone_page,
            'Bone Victim Connects\nto User From',
            majorDimension=5,
            choices=BONE_TYPES)
        self.bac_entry = self.add_num_entry(self.entry_page, 'BAC Entry')
        self.u_12 = self.add_hex_entry(self.unknown_page, 'U_12')
        self.victim_displacement_x = self.add_float_entry(
            bone_page, 'Victim\nDisplacement X')
        self.victim_displacement_y = self.add_float_entry(
            bone_page, 'Victim\nDisplacement Y')
        self.victim_displacement_z = self.add_float_entry(
            bone_page, 'Victim\nDisplacement Z')
Esempio n. 4
0
    def __init__(self, *args):

        BasePanel.__init__(self, *args)
        bone_link_page = Page(self.notebook)
        self.notebook.InsertPage(1, bone_link_page, 'Bone Link')

        # UNLEASHED: the showKnown buttons don't work, the value set does not save
        self.homing_movement_type = self.add_unknown_hex_entry(
            self.entry_page,
            'Type',
            showKnown=False,
            knownValues=HomingMovement.description)
        self.properties = self.add_multiple_selection_entry(
            self.entry_page,
            'Properties',
            choices=[
                ('Options #2', [
                    'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                    'Unknown (0x8)'
                ], True),
                ('Conditions', [
                    'Unknown (0x1)', 'Enable Float Parameter', "Unknown (0x4)",
                    'Enable Bone Link'
                ], True),
            ])

        self.u_20 = self.add_single_selection_entry(bone_link_page,
                                                    'User Bone',
                                                    majorDimension=5,
                                                    choices=BONE_TYPES)
        self.u_24 = self.add_single_selection_entry(bone_link_page,
                                                    'Target Bone',
                                                    majorDimension=5,
                                                    choices=BONE_TYPES)

        self.speed_modifier = self.add_float_entry(
            self.entry_page, 'Speed Modifier / Frame Duration')
        self.frame_threshold = self.add_num_entry(self.entry_page,
                                                  'Frame Threshold')
        self.horizontal_direction_modifier = self.add_float_entry(
            self.entry_page, 'Horizontal Direction\nModifier')
        self.vertical_direction_modifier = self.add_float_entry(
            self.entry_page, 'Vertical Direction\nModifier')
        self.z_direction_modifier = self.add_float_entry(
            self.entry_page, 'Z Direction\nModifier')

        self.u_28 = self.add_hex_entry(self.unknown_page, 'U_28')
        self.u_2c = self.add_hex_entry(self.unknown_page, 'U_2C')
Esempio n. 5
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.parent = parent
        self.item = None
        self.entry = None

        self.notebook = wx.Notebook(self)
        self.entry_page = Page(self.notebook)
        self.notebook.AddPage(self.entry_page, 'Entry')

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.notebook, 1, wx.ALL | wx.EXPAND, 10)

        self.flags = self.add_hex_entry(self.entry_page, 'Flags')
        self.Bind(wx.EVT_TEXT, self.save_entry)

        self.SetSizer(sizer)
        self.SetAutoLayout(1)
Esempio n. 6
0
    def __init__(self, *args):
        BasePanel.__init__(self, *args)
        eepk_page = Page(self.notebook)

        self.notebook.InsertPage(1, eepk_page, 'Spawn/Bone')
        self.eepk_type = self.add_single_selection_entry(self.entry_page, 'EEPK Type', majorDimension=3,
                                                         choices=Effect.description_choices())

        self.bone_link = self.add_single_selection_entry(eepk_page, 'Bone Link', majorDimension=5, choices=BONE_TYPES)

        self.skill_id = self.add_num_entry(self.entry_page, 'Skill Id')
        self.use_skill_id = self.add_single_selection_entry(self.entry_page, 'Use Skill Id', choices={
            'Yes': 0x0,
            'No': 0xffff
        })

        self.effect_id = self.add_num_entry(self.entry_page, 'Effect Id')
        self.position_x = self.add_float_entry(eepk_page, 'Position X')
        self.position_y = self.add_float_entry(eepk_page, 'Position Y')
        self.position_z = self.add_float_entry(eepk_page, 'Position Z')
        self.rotation_x = self.add_float_entry(eepk_page, 'Rotation X')
        self.rotation_y = self.add_float_entry(eepk_page, 'Rotation Y')
        self.rotation_z = self.add_float_entry(eepk_page, 'Rotation Z')
        self.on_off_switch = self.add_unknown_hex_entry(
            self.entry_page, 'On/Off switch', knownValues={
                0x0: 'On',
                0x1: 'Off',
                0x2: 'On',
                0x3: 'Off',
                0x4: 'On (Spawn on target)',
                0x8: 'On (Loop)',
                0x9: 'Off',
                0x10: 'On (Show only to user)',
                0x14: 'On (Spawn on target)',
                0x15: 'Off (used with 0x14)'
            })
Esempio n. 7
0
    def __init__(self, *args):
        BasePanel.__init__(self, *args)
        ean_page = Page(self.notebook)
        info_page = Page(self.notebook)
        interpolation_page = Page(self.notebook)
        self.notebook.InsertPage(1, ean_page, 'EAN/Bone')
        self.notebook.InsertPage(2, info_page, 'Offsets')
        self.notebook.InsertPage(3, interpolation_page, 'Interpolation')

        self.ean_type = self.add_single_selection_entry(
            ean_page,
            'EAN Type',
            majorDimension=3,
            choices=Camera.description_choices())

        self.bone_to_focus_on = self.add_single_selection_entry(
            ean_page, 'Bone to Focus On', majorDimension=5, choices=BONE_TYPES)
        self.ean_index = self.add_num_entry(ean_page, 'EAN Index')
        self.frame_start = self.add_num_entry(self.entry_page, 'Frame Start')
        self.u_10 = self.add_hex_entry(self.unknown_page, 'U_10', max=0xFFFF)

        self.x_position = self.add_float_entry(info_page, 'X Position')
        self.y_position = self.add_float_entry(info_page, 'Y Position')
        self.z_position = self.add_float_entry(info_page, 'Z Position')
        self.x_rotation = self.add_float_entry(info_page, 'X Rotation')
        self.y_rotation = self.add_float_entry(info_page, 'Y Rotation')
        self.z_rotation = self.add_float_entry(info_page, 'Z Rotation')
        self.x_z_disposition = self.add_float_entry(info_page,
                                                    'X/Z Disposition')
        self.y_z_disposition = self.add_float_entry(info_page,
                                                    'Y/Z Disposition')
        self.zoom = self.add_float_entry(info_page, 'Zoom')

        self.x_position_duration = self.add_num_entry(interpolation_page,
                                                      'X Position Duration')
        self.y_position_duration = self.add_num_entry(interpolation_page,
                                                      'Y Position Duration')
        self.z_position_duration = self.add_num_entry(interpolation_page,
                                                      'Z Position Duration')

        self.x_rotation_duration = self.add_num_entry(interpolation_page,
                                                      'X Rotation Duration')
        self.y_rotation_duration = self.add_num_entry(interpolation_page,
                                                      'Y Rotation Duration')
        self.z_rotation_duration = self.add_num_entry(interpolation_page,
                                                      'Z Rotation Duration')

        self.zoom_duration = self.add_num_entry(interpolation_page,
                                                'Zoom Duration')
        self.displacement_xz_duration = self.add_num_entry(
            interpolation_page, 'Displacement X/Z Duration')
        self.displacement_yz_duration = self.add_num_entry(
            interpolation_page, 'Displacement Y/Z Duration')
        self.duration_all = self.add_num_entry(interpolation_page,
                                               'Duration ALL')
        self.camera_flags = self.add_multiple_selection_entry(
            self.entry_page,
            'Camera Flags',
            choices=[('ECC Options', None, True),
                     ('View', [
                         'Disable Photo Mode', 'Snap to View', "Move to View",
                         'Unknown (0x8)'
                     ], True),
                     ('Conditons', [
                         'Unknown (0x1)', 'Unknown (0x2)',
                         "Only play on Knockback", 'Enable offset changes'
                     ], True),
                     ('Camera Playback', [
                         'Force all players to watch', 'Unknown (0x2)',
                         'Play relative to target', 'Force character cam.ean'
                     ], True)])
Esempio n. 8
0
    def __init__(self, *args):
        BasePanel.__init__(self, *args)

        damage_page = Page(self.notebook)
        matrix_page = Page(self.notebook)
        self.notebook.InsertPage(1, damage_page, 'BDM/Damage')
        self.notebook.InsertPage(2, matrix_page, 'Matrix')
        self.bdm_entry = self.add_num_entry(damage_page, 'BDM Entry')
        self.hitbox_flags = self.add_multiple_selection_entry(
            self.entry_page,
            'Hitbox Flags',
            orient=wx.VERTICAL,
            cols=2,
            majorDimension=2,
            choices=[('Impact Type', {
                'Continuous / None': 0x0,
                'Unknown (0x1)': 0x1,
                'Single': 0x2,
                'Unknown (0x4)': 0x4,
            }, False),
                     ('Damage Type', {
                         'Health': 0x0,
                         'No impact (0x1)': 0x1,
                         'No damage': 0x2,
                         'Ki': 0x4,
                         'No impact (0x8)': 0x8
                     }, False),
                     ('Hitbox Spawn Source', {
                         'User': 0x0,
                         'Unknown (0x1)': 0x1,
                         'Unknown (0x2)': 0x2,
                         'Unknown (0x4)': 0x4,
                         'Target': 0x8
                     }, False), ('Unknown', None, True)])

        self.hitbox_properties_1 = self.add_multiple_selection_entry(
            self.entry_page,
            'Hitbox Properties 1',
            majorDimension=2,
            choices=[('Hitbox Options #1', [
                'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                'Unknown (0x8)'
            ], True),
                     ('Hitbox Options #2', [
                         'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                         'Unknown (0x8)'
                     ], True),
                     ('Hitbox Options #3', [
                         'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                         'Unknown (0x8)'
                     ], True),
                     ('Hitbox Options #4', [
                         'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                         'Unknown (0x8)'
                     ], True)])

        self.hitbox_properties_2 = self.add_multiple_selection_entry(
            self.entry_page,
            'Hitbox Properties 2',
            majorDimension=2,
            choices=[
                ('Hitbox Options #2', [
                    'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                    'Unknown (0x8)'
                ], True),
                ('Hitbox Options #1', {
                    'None': 0x0,
                    'Unknown (0x1)': 0x1,
                    'Unknown (0x2)': 0x2,
                    "Treat Hitbox as a Sphere": 0x4,
                    'Unknown (0x7)': 0x7
                }, False),
            ])

        self.damage = self.add_num_entry(damage_page, 'Damage')
        self.damage_when_blocked = self.add_num_entry(damage_page,
                                                      'Damage When Blocked')
        self.stamina_taken_when_blocked = self.add_num_entry(
            damage_page, 'Stamina Taken When Blocked', True)
        self.matrix_flags = self.add_multiple_selection_entry(
            matrix_page,
            'Matrix Flags',
            choices=[('Matrix Options #1', [
                'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                'Unknown (0x8)'
            ], True),
                     ('Matrix Options #2', [
                         'Enable Scale and Rotation', 'Unknown (0x2)',
                         "Unknown (0x4)", 'Unknown (0x8)'
                     ], True)])
        self.bdm_type = self.add_single_selection_entry(
            damage_page, 'BDM Type', choices=Hitbox.description_choices())

        self.f_18 = self.add_float_entry(self.unknown_page, 'F_18')
        self.position_x = self.add_float_entry(matrix_page, 'Position X')
        self.position_y = self.add_float_entry(matrix_page, 'Position Y')
        self.position_z = self.add_float_entry(matrix_page, 'Position Z')
        self.size_x = self.add_float_entry(matrix_page, 'Size X')
        self.size_y = self.add_float_entry(matrix_page, 'Size Y')
        self.size_z = self.add_float_entry(matrix_page, 'Size Z')
        self.rotation_x = self.add_float_entry(matrix_page, 'Rotation X')
        self.rotation_y = self.add_float_entry(matrix_page, 'Rotation Y')
        self.rotation_z = self.add_float_entry(matrix_page, 'Rotation Z')
    def __init__(self, *args):
        BasePanel.__init__(self, *args)
        bsa_page = Page(self.notebook)
        spawn_page = Page(self.notebook)

        self.notebook.InsertPage(1, bsa_page, 'Bone')
        self.notebook.InsertPage(2, spawn_page, 'Spawn')

        # UNLEASHED: skill type includes extra props
        self.skill_bsa_flags = self.add_multiple_selection_entry(
            self.entry_page,
            'Skill/BSA Flags',
            majorDimension=2,
            choices=[('Skill/BSA Options #1', {
                'None': 0x0,
                'Terminate Previous Projectile': 0x1,
                "Unknown (0x2)": 0x2,
                "Unknown (0x4)": 0x4,
                "Unknown (0x8)": 0x8
            }, False), ('Skill/BSA Options #2', None, True),
                     ('Skill Type', {
                         'CMN': 0x0,
                         'Awoken': 0x3,
                         'Super': 0x5,
                         'Ultimate': 0x6,
                         'Evasive': 0x7,
                         'Blast': 0x8
                     }, False)])
        self.skill_id = self.add_num_entry(self.entry_page, 'Skill Id')
        self.use_cmn_bsa = self.add_single_selection_entry(self.entry_page,
                                                           'Use CMN BSA',
                                                           choices={
                                                               'No': 0x0,
                                                               'Yes': 0xffff
                                                           })
        self.bsa_id = self.add_num_entry(self.entry_page, 'BSA ID')
        self.bone_to_spawn_from = self.add_single_selection_entry(
            bsa_page,
            'Bone to Spawn From',
            majorDimension=5,
            choices=BONE_TYPES)

        self.spawn_source = self.add_multiple_selection_entry(
            spawn_page,
            'Spawn Source',
            cols=1,
            majorDimension=3,
            choices=[('Spawn', {
                'Spawn source': 0x0,
                'Unknown (0x1)': 0x1,
                'Unknown (0x2)': 0x2,
                'User direction': 0x3
            }, False), (None, None, False),
                     ('Location', {
                         'User': 0x0,
                         'Spawn source (Target) (0x1)': 0x1,
                         'Unknown (0x2)': 0x2,
                         'Unknown (0x3)': 0x3,
                         'User direction (Target)': 0x4,
                         'Target (0x5)': 0x5,
                         'Unknown (0x6)': 0x6,
                         'Map (0x7)': 0x7,
                     }, False)])
        self.position_x = self.add_float_entry(spawn_page, 'Position X')
        self.position_y = self.add_float_entry(spawn_page, 'Position Y')
        self.position_z = self.add_float_entry(spawn_page, 'Position Z')
        self.rotation_x = self.add_float_entry(spawn_page, 'Rotation X')
        self.rotation_y = self.add_float_entry(spawn_page, 'Rotation Y')
        self.rotation_z = self.add_float_entry(spawn_page, 'Rotation Z')

        # self.spawn_properties = self.add_multiple_selection_entry(spawn_page, 'Spawn Properties', cols=1, choices=[
        #     ('Duplicate', {
        #         'None': 0x0,
        #         'One per player': 0x1,
        #         'Unknown (0x2)': 0x2
        #     }, False),
        #     ('Looping', {
        #         'Disable': 0x0,
        #         'Unknown (0x7)': 0x7,
        #         'Enable': 0x8
        #     }, False)
        # ])
        self.projectile_health = self.add_num_entry(self.entry_page,
                                                    'Projectile Health',
                                                    max=0xFFFFFFFF)
        self.projectile_flags = self.add_multiple_selection_entry(
            spawn_page,
            'Projectile Flags',
            majorDimension=2,
            choices=[('Projectile Options #1', [
                'Unknown (0x1)', 'Unknown (0x2)', "Unknown (0x4)",
                'Unknown (0x8)'
            ], True),
                     ('Marking', {
                         'None': 0x0,
                         'Dupilcate Projectile For Every Opponent': 0x1,
                         'Unknown (0x2)': 0x2,
                         'Mark Projectile with Random ID': 0x4,
                         'Mark Projectile Unique ID (Roster)': 0x8,
                         'Mark Projectile Unique ID (CaC)': 0xC
                     }, False),
                     ('Conditions', [
                         'Announce to BCM', 'Unknown (0x2)', "Unknown (0x4)",
                         'Enable Loop'
                     ], True)])
        self.unique_id = self.add_num_entry(spawn_page,
                                            'Unique ID',
                                            max=0xFFFF)
        self.u_38 = self.add_hex_entry(self.unknown_page, 'U_38')
        self.u_3c = self.add_hex_entry(self.unknown_page, 'U_3C')