'One character code for attack type
If attack is good then character is uppecased, otherwise lowercased
Type codes:
Bug: \'B\'
Dark: \'K\'
Dragon: \'D\'
Electric: \'E\'
Fairy: \'Y\'
Fighting: \'T\'
Fire: \'F\'
Flying: \'L\'
Ghost: \'H\'
Grass: \'A\'
Ground: \'G\'
Ice: \'I\'
Normal: \'N\'
Poison: \'P\'
Psychic: \'C\'
Rock: \'R\'
Steel: \'S\'
Water: \'W\'
it\'s an effective way to represent type with one character
if first char is unique - use it, in other case suitable substitute used'

def attack_char(self, attack):

    char = attack.type.as_one_char.upper()
    if (attack.rate_in_type < self.good_attack_threshold):
        char = char.lower()
    return char
