Ejemplo n.º 1
0
    def get_hair_key_curly_2(self, value):
        hair_type = PlayerAttributeOption.OPT_CURLY_2
        hair_shape = PlayerAttributeOption.OPT_NA
        hair_front = PlayerAttributeOption.OPT_NA
        hair_volume = PlayerAttributeOption.OPT_NA
        hair_darkness = PlayerAttributeOption.OPT_NA
        bandana_type = PlayerAttributeOption.OPT_NA

        shape_1_base = 864
        shape_val_count = 12

        shape_base_offset_by_value = {
            864: (PlayerAttributeOption.OPT_1, 0),
            876: (PlayerAttributeOption.OPT_2, 1),
            888: (PlayerAttributeOption.OPT_3, 2),
            900: (PlayerAttributeOption.OPT_4, 3),
        }

        shape_base_offset = get_base_byte_value(value, shape_val_count)

        hair_shape, shape_base_multiplier = shape_base_offset_by_value[
            shape_base_offset
        ]

        shape_base = shape_1_base + (shape_val_count * shape_base_multiplier)

        volume_by_value = {
            0: PlayerAttributeOption.OPT_1,
            1: PlayerAttributeOption.OPT_2,
        }

        volume_value = get_lowest_byte_value(value - (shape_base), 2)
        hair_volume = volume_by_value[volume_value]

        front_by_value = {
            0: PlayerAttributeOption.OPT_1,
            2: PlayerAttributeOption.OPT_2,
            4: PlayerAttributeOption.OPT_3,
            6: PlayerAttributeOption.OPT_4,
            8: PlayerAttributeOption.OPT_5,
            10: PlayerAttributeOption.OPT_6,
        }

        front_value = get_base_byte_value(value - (shape_base), 2)
        hair_front = front_by_value[front_value]

        return (
            hair_type,
            hair_shape,
            hair_front,
            hair_volume,
            hair_darkness,
            bandana_type,
        )
Ejemplo n.º 2
0
    def get_hair_key_ponytail_2(self, value):
        hair_type = PlayerAttributeOption.OPT_PONYTAIL_2
        hair_shape = PlayerAttributeOption.OPT_NA
        hair_front = PlayerAttributeOption.OPT_NA
        hair_volume = PlayerAttributeOption.OPT_NA
        hair_darkness = PlayerAttributeOption.OPT_NA
        bandana_type = PlayerAttributeOption.OPT_NA

        shape_1_base = 948
        shape_val_count = 12

        shape_base_offset_by_value = {
            948: (PlayerAttributeOption.OPT_1, 0),
            960: (PlayerAttributeOption.OPT_2, 1),
            972: (PlayerAttributeOption.OPT_3, 2),
        }

        shape_base_offset = get_base_byte_value(value, shape_val_count)

        hair_shape, shape_base_multiplier = shape_base_offset_by_value[
            shape_base_offset
        ]

        shape_base = shape_1_base + (shape_val_count * shape_base_multiplier)

        volume_by_value = {
            0: PlayerAttributeOption.OPT_1,
            1: PlayerAttributeOption.OPT_2,
            2: PlayerAttributeOption.OPT_3,
        }

        volume_value = get_lowest_byte_value(value - (shape_base), 3)
        hair_volume = volume_by_value[volume_value]

        front_by_value = {
            0: PlayerAttributeOption.OPT_1,
            3: PlayerAttributeOption.OPT_2,
            6: PlayerAttributeOption.OPT_3,
            9: PlayerAttributeOption.OPT_4,
        }

        front_value = get_base_byte_value(value - (shape_base), 3)
        hair_front = front_by_value[front_value]

        return (
            hair_type,
            hair_shape,
            hair_front,
            hair_volume,
            hair_darkness,
            bandana_type,
        )
Ejemplo n.º 3
0
    def get_hair_key_dreadlocks(self, value):
        hair_type = PlayerAttributeOption.OPT_DREADLOCKS
        hair_shape = PlayerAttributeOption.OPT_NA
        hair_front = PlayerAttributeOption.OPT_NA
        hair_volume = PlayerAttributeOption.OPT_NA
        hair_darkness = PlayerAttributeOption.OPT_NA
        bandana_type = PlayerAttributeOption.OPT_NA

        shape_1_base = 984
        shape_val_count = 8

        shape_base_offset_by_value = {
            984: (PlayerAttributeOption.OPT_1, 0),
            992: (PlayerAttributeOption.OPT_2, 1),
            1000: (PlayerAttributeOption.OPT_3, 2),
        }

        shape_base_offset = get_base_byte_value(value, shape_val_count)

        hair_shape, shape_base_multiplier = shape_base_offset_by_value[
            shape_base_offset
        ]

        shape_base = shape_1_base + (shape_val_count * shape_base_multiplier)

        volume_by_value = {
            0: PlayerAttributeOption.OPT_1,
            1: PlayerAttributeOption.OPT_2,
        }

        volume_value = get_lowest_byte_value(value - (shape_base), 2)
        hair_volume = volume_by_value[volume_value]

        front_by_value = {
            0: PlayerAttributeOption.OPT_1,
            2: PlayerAttributeOption.OPT_2,
            4: PlayerAttributeOption.OPT_3,
            6: PlayerAttributeOption.OPT_4,
        }

        front_value = get_base_byte_value(value - (shape_base), 2)
        hair_front = front_by_value[front_value]

        return (
            hair_type,
            hair_shape,
            hair_front,
            hair_volume,
            hair_darkness,
            bandana_type,
        )
Ejemplo n.º 4
0
    def get_hair_key_buzz_cut(self, value):
        darkness_by_value = {
            0: PlayerAttributeOption.OPT_1,
            1: PlayerAttributeOption.OPT_2,
            2: PlayerAttributeOption.OPT_3,
            3: PlayerAttributeOption.OPT_4,
        }

        darkness_value = get_lowest_byte_value(value, 4)
        darkness_value = darkness_by_value[darkness_value]

        front_by_value = {
            4: PlayerAttributeOption.OPT_1,
            8: PlayerAttributeOption.OPT_2,
            12: PlayerAttributeOption.OPT_3,
            16: PlayerAttributeOption.OPT_4,
            0: PlayerAttributeOption.OPT_5,
        }

        front_value = get_lowest_byte_value(value, 20)
        front_value = get_base_byte_value(front_value, 4)
        front_value = front_by_value[front_value]

        shape_by_value = {
            0: PlayerAttributeOption.OPT_1,
            20: PlayerAttributeOption.OPT_2,
            40: PlayerAttributeOption.OPT_3,
            60: PlayerAttributeOption.OPT_4,
        }

        shape_value = get_base_byte_value(value - 4, 20)
        shape_value = shape_by_value[shape_value]

        hair_type = PlayerAttributeOption.OPT_BUZZ_CUT
        hair_shape = str(shape_value)
        hair_front = str(front_value)
        hair_volume = PlayerAttributeOption.OPT_NA
        hair_darkness = str(darkness_value)
        bandana_type = PlayerAttributeOption.OPT_NA

        return (
            hair_type,
            hair_shape,
            hair_front,
            hair_volume,
            hair_darkness,
            bandana_type,
        )
 def get_sleeve_length_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 64)
     # Auto sleeve length is repeated
     if value == 192:
         value = 0
     return self.array_opts_sleeve_length[value]
Ejemplo n.º 6
0
    def get_preset_face_value(self):
        value_100, value_101 = self.get_value()
        value_100 = get_base_byte_value(value_100, 32)
        value_100 = self.array_opts_preset_face[value_100]

        face_number = value_100 + (value_101 * 8)
        return face_number
Ejemplo n.º 7
0
    def get_hair_key_pulled_back(self, value):
        hair_type = PlayerAttributeOption.OPT_PULLED_BACK
        hair_shape = PlayerAttributeOption.OPT_NA
        hair_front = PlayerAttributeOption.OPT_NA
        hair_volume = PlayerAttributeOption.OPT_NA
        hair_darkness = PlayerAttributeOption.OPT_NA
        bandana_type = PlayerAttributeOption.OPT_NA

        shape_1_base = 1008
        shape_val_count = 6

        shape_base_offset_by_value = {
            1008: (PlayerAttributeOption.OPT_1, 0),
            1014: (PlayerAttributeOption.OPT_2, 1),
            1020: (PlayerAttributeOption.OPT_3, 2),
        }

        shape_base_offset = get_base_byte_value(value, shape_val_count)

        hair_shape, shape_base_multiplier = shape_base_offset_by_value[
            shape_base_offset
        ]

        shape_base = shape_1_base + (shape_val_count * shape_base_multiplier)

        front_by_value = {
            0: PlayerAttributeOption.OPT_1,
            1: PlayerAttributeOption.OPT_2,
            2: PlayerAttributeOption.OPT_3,
            3: PlayerAttributeOption.OPT_4,
            4: PlayerAttributeOption.OPT_5,
            5: PlayerAttributeOption.OPT_6,
        }

        front_value = get_base_byte_value(value - (shape_base), 1)
        hair_front = front_by_value[front_value]

        return (
            hair_type,
            hair_shape,
            hair_front,
            hair_volume,
            hair_darkness,
            bandana_type,
        )
Ejemplo n.º 8
0
    def get_bandana_color_label(self, value):
        value = get_base_byte_value(value, 16)

        # Bandana colors are repeated
        byte_split = 127
        if value > byte_split:
            value = value - byte_split

        return self.array_opts[value]
Ejemplo n.º 9
0
    def get_value(self):
        """
        Get byte value via `get_raw_value`.

        Get base byte value (to be used to identify label)
        """
        value = self.get_raw_value()
        byte_factor = 16
        value = get_base_byte_value(value, byte_factor)
        return value
    def get_wristband_color_label(self):
        label = PlayerAttributeOption.OPT_NONE
        wristband_type = self.get_wristband_type_label()
        value = self.get_value()
        value = get_base_byte_value(value, 32)

        if wristband_type != PlayerAttributeOption.OPT_N:
            label = self.array_opts_wristband_color[value]

        return label
Ejemplo n.º 11
0
    def get_hair_key_very_short_1(self, value):
        front_by_value = {
            0: PlayerAttributeOption.OPT_1,
            1: PlayerAttributeOption.OPT_2,
            2: PlayerAttributeOption.OPT_3,
            3: PlayerAttributeOption.OPT_4,
            4: PlayerAttributeOption.OPT_5,
            5: PlayerAttributeOption.OPT_6,
        }

        front_value = get_lowest_byte_value(value, 6)
        front_value = front_by_value[front_value]

        shape_by_value = {
            84: PlayerAttributeOption.OPT_1,
            90: PlayerAttributeOption.OPT_2,
            96: PlayerAttributeOption.OPT_3,
            102: PlayerAttributeOption.OPT_4,
        }

        shape_value = get_base_byte_value(value, 6)
        shape_value = shape_by_value[shape_value]

        hair_type = PlayerAttributeOption.OPT_VERY_SHORT_1
        hair_shape = str(shape_value)
        hair_front = str(front_value)
        hair_volume = PlayerAttributeOption.OPT_NA
        hair_darkness = PlayerAttributeOption.OPT_NA
        bandana_type = PlayerAttributeOption.OPT_NA

        return (
            hair_type,
            hair_shape,
            hair_front,
            hair_volume,
            hair_darkness,
            bandana_type,
        )
Ejemplo n.º 12
0
 def get_one_on_one_stopper_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 128)
     return self.array_opts_one_on_one_stopper[value]
Ejemplo n.º 13
0
 def get_dk_style_label(self):
     value = self.get_value()
     value = get_lowest_byte_value(value, 16)
     value = get_base_byte_value(value, 4)
     return self.array_opts_dk_style[value]
Ejemplo n.º 14
0
 def get_registered_position_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 16)
     return self.array_opts_registered_position[value]
Ejemplo n.º 15
0
 def get_cap_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 128)
     return self.array_opts_cap[value]
Ejemplo n.º 16
0
 def get_long_throw_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 128)
     return self.array_opts_long_throw[value]
 def get_value(self):
     value = self.get_raw_value()
     value = get_base_byte_value(value, 8)
     return value
Ejemplo n.º 18
0
 def get_marking_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 4)
     value = get_lowest_byte_value(value, 8)
     return self.array_opts_marking[value]
Ejemplo n.º 19
0
 def get_covering_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 16)
     value = get_lowest_byte_value(value, 32)
     return self.array_opts_covering[value]
Ejemplo n.º 20
0
 def get_penalty_stopper_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 64)
     value = get_lowest_byte_value(value, 128)
     return self.array_opts_penalty_stopper[value]
Ejemplo n.º 21
0
 def get_d_line_control_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 32)
     value = get_lowest_byte_value(value, 64)
     return self.array_opts_d_line_control[value]
Ejemplo n.º 22
0
 def get_eye_color_two_label(self):
     value = self.get_value()[1]
     value = get_lowest_byte_value(value, 128)
     value = get_base_byte_value(value, 8)
     return self.array_opts_eye_color_two[value]
Ejemplo n.º 23
0
 def get_sliding_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 8)
     value = get_lowest_byte_value(value, 16)
     return self.array_opts_sliding[value]
Ejemplo n.º 24
0
 def get_neck_warmer_label(self):
     value = self.get_value()[1]
     value = get_base_byte_value(value, 128)
     return self.array_opts_neck_warmer[value]
Ejemplo n.º 25
0
 def get_outside_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 2)
     value = get_lowest_byte_value(value, 4)
     return self.array_opts_outside[value]
Ejemplo n.º 26
0
 def get_eyes_position_label(self):
     value = self.get_value()
     value = get_base_byte_value(value, 32)
     return self.array_opts_eyes_position[value]
Ejemplo n.º 27
0
 def get_rgb_r_label(self):
     value = self.get_value()
     byte_factor = 4
     rgb_r_offset = get_base_byte_value(value, byte_factor) // byte_factor
     rgb_r = self.MAX_RGB_R_VALUE - rgb_r_offset
     return str(rgb_r)
 def get_second_opt_label(cls, value):
     value = get_base_byte_value(value, 16)
     return PlayerAttributePhysicalLinkedOpts.SECOND_OPT_BY_VALUE[value]
 def get_first_opt_label(cls, value):
     value = get_base_byte_value(value, 128)
     return PlayerAttributeAbilitySpcAbilityOpts.FIRST_OPT_BY_VALUE[value]
 def get_shirt_type(self):
     value = self.get_value()
     value = get_base_byte_value(value, 128)
     return self.array_opts_shirt_type[value]