Ejemplo n.º 1
0
 def _get_base_mana(player: Player):
     char_class = CharacterClass(player.char_class)
     base_stats = BASE_STATS[char_class]
     if 'base_mana' in base_stats:
         base_stat = base_stats['base_mana']
         return base_stat[player.level]
     else:
         return 0
Ejemplo n.º 2
0
    def _parse_packet(self):
        # omit first 6 bytes, cause 01-02 = packet size, 03-04 = opcode (0x1ED), 05-06 - unknown null-bytes
        tmp_buf = BytesIO(self.packet[6:])

        result = dict()

        result['name'] = CharacterCreate._parse_account_name(tmp_buf)

        char_data = unpack('<9B', tmp_buf.read(9))
        result['race'] = CharacterRace(char_data[0]).value
        result['char_class'] = CharacterClass(char_data[1]).value
        result['gender'] = CharacterGender(char_data[2]).value

        features = char_data[3:8]
        result['skin'] = features[0]
        result['face'] = features[1]
        result['hair_style'] = features[2]
        result['hair_color'] = features[3]
        result['facial_hair'] = features[4]

        return result
Ejemplo n.º 3
0
    def _set_player_power(self):
        char_class = CharacterClass(self.player.char_class)

        mana_classes = [
            CharacterClass.HUNTER, CharacterClass.WARLOCK,
            CharacterClass.SHAMAN, CharacterClass.MAGE, CharacterClass.PRIEST,
            CharacterClass.DRUID, CharacterClass.PALADIN
        ]

        rage_classes = [CharacterClass.WARRIOR]

        energy_classes = [CharacterClass.ROGUE]

        if char_class in mana_classes:
            self.SPAWN_FIELDS.append(UnitField.POWER1)
            self.SPAWN_FIELDS.append(UnitField.MAXPOWER1)

        elif char_class in rage_classes:
            self.SPAWN_FIELDS.append(UnitField.POWER2)
            self.SPAWN_FIELDS.append(UnitField.MAXPOWER2)

        elif char_class in energy_classes:
            self.SPAWN_FIELDS.append(UnitField.POWER4)
            self.SPAWN_FIELDS.append(UnitField.MAXPOWER4)
Ejemplo n.º 4
0
    def _set_power_type(player: Player):
        mana_classes = [
            CharacterClass.HUNTER, CharacterClass.WARLOCK,
            CharacterClass.SHAMAN, CharacterClass.MAGE, CharacterClass.PRIEST,
            CharacterClass.DRUID, CharacterClass.PALADIN
        ]

        rage_classes = [CharacterClass.WARRIOR]

        energy_classes = [CharacterClass.ROGUE]

        char_class = CharacterClass(player.char_class)

        if char_class in mana_classes:
            return UnitPower.MANA.value

        elif char_class in rage_classes:
            return UnitPower.RAGE.value

        elif char_class in energy_classes:
            return UnitPower.ENERGY.value

        else:
            return UnitPower.MANA.value
Ejemplo n.º 5
0
 def _get_base_attribute(attribute, player: Player):
     race = CharacterRace(player.race)
     char_class = CharacterClass(player.char_class)
     mod = BASE_STATS_MOD[race][attribute]
     base_stat = BASE_STATS[char_class][attribute]
     return base_stat[player.level] - abs(mod * player.level)