import pandas as pd


class Mutations(object):
    def __init__(self):
        self.raw_mutations_table = {
            'Score': list(range(1, 101)),
            'Physical': [
                'No Nerve Endings',
                'Poison Susceptibility',
                'Poison Susceptibility',
                'Dark Dependency',
                'Dark Dependency',
                'Arterial Weakness',
                'Arterial Weakness',
                'Diminished Sense',
                'Energy Sensitivity',
                'Doubled Pain',
                'Heat Reaction',
                'Insanity',
                'Insanity',
                'Insanity',
                'Attraction Odor',
                'Anti-Charisma',
                'Anti-Charisma',
                'Body Structure Change',
                'Body Structure Change',
                'Fat Cell Accumulation',
                'Increased Metabolism',
                'Inhibiting Field',
                'Water Dependency',
                'Weight Decrease',
                'Vision Defect',
                'Vision Defect',
                'Light Dependency',
                'Skin Structure Change',
                'Narcolepsy',
                'Bacterial Susceptibility',
                'Phobia',
                'Phobia',
                'Phobia',
                'Poor Duel Brain',
                'Poor Respiration',
                'Actual Metamorphosis',
                'Kinetic Absorption',
                'Kinetic Absorption',
                'Sound Imitation',
                'Bodily Control',
                'Horns or Antlers',
                'Heightened Physical Attribute',
                'Heightened Physical Attribute',
                'Heightened Physical Attribute',
                'Heightened Physical Attribute',
                'Heightened Sense',
                'Heightened Sense',
                'Heightened Precision',
                'Heightened Precision',
                'Heightened Precision',
                'Heightened Precision',
                'Heightened Precision',
                'Modified Body Parts',
                'Modified Body Parts',
                'Multiplied Body Parts',
                'Multiplied Body Parts',
                'Multiplied Body Parts',
                'Oversize Body Parts',
                'New Body Parts',
                'New Body Parts',
                'Regeneration',
                'Quills / Spines',
                'Radar / Sonar',
                'Ultra vision',
                'Shorter',
                'Electrical Generation',
                'Gills',
                'Taller',
                'Photosynthetic Skin',
                'Physical Reflection',
                'Mane & Bristles',
                'Skeletal Enhancement',
                'Density Control (self)',
                'Displacement',
                'Wings',
                'Gas Bags',
                'Speed Increase',
                'Carapace',
                'Radiation Eyes',
                'Chameleon Powers',
                'Chameleon Powers',
                'Light Generation',
                'Shape change',
                'Anti-Life Leach',
                'Infra vision',
                'Heightened Balance',
                'Energy Absorption',
                'Energy Metamorphosis',
                'Gas Generation',
                'Heat Generation',
                'Hands of Power',
                'Hands of Power',
                'Dual Brain',
                'Duality',
                'Sonic Blast',
                'YOU PICK ONE',
                'YOU PICK ONE',
                'YOU PICK ONE',
                'YOU INVENT ONE',
                'YOU INVENT ONE'
            ],
            'Mental': [
                'Attack Reversal',
                'Mental Block',
                'Mental Block',
                'Seizures',
                'Seizures',
                'Fear Impulse',
                'Fear Impulse',
                'Hostility Field',
                'Mental Defenselessness',
                'Multiple Damage',
                'Energy Sensitivity',
                'Periodic Amnesia',
                'Periodic Amnesia',
                'Periodic Amnesia',
                'Unconscious Summoning',
                'Empathy',
                'Empathy',
                'Beguiling',
                'Beguiling',
                'Confusion',
                'Psychometry',
                'Directional Sense',
                'Intuition',
                'Precognition',
                'Summoning',
                'Summoning',
                'Absorption',
                'Time Suspension',
                'Reflection',
                'Devolution',
                'Genius Capability',
                'Genius Capability',
                'Genius Capability',
                'Repelling Force',
                'Mass Mind',
                'Magnetic Control',
                'Heightened Brain Talent',
                'Heightened Brain Talent',
                'Heightened Intelligence',
                'Density Control (Others)',
                'Light Manipulation',
                'Mental Blast',
                'Mental Blast',
                'Mental Blast',
                'Mental Blast',
                'Mental Shield',
                'Mental Shield',
                'Mental Control Of Body',
                'Mental Control Of Body',
                'Mental Control Of Body',
                'Mental Control Of Body',
                'Mental Control Of Body',
                'Mental Multiplier',
                'Mental Multiplier',
                'Mental Control',
                'Mental Control',
                'Mental Control',
                'Mental Paralysis',
                'Fear Generation',
                'Fear Generation',
                'Force Field Generation',
                'Illusion Generation',
                'Molecular Sense',
                'Molecular Disruption',
                'Repulsion Field',
                'Plant Control',
                'Stunning Force',
                'Telepathy',
                'Pyro/Cryokinesis',
                'Telekinesis',
                'Telekinetic Arm',
                'Telekinetic Flight',
                'Symbiotic Attachment',
                'Levitation',
                'Temporal Fugue',
                'Temporal Fugue',
                'Teleport Object',
                'Teleportation',
                'Thought Imitation',
                'The Gamma Eye',
                'The Gamma Eye',
                'Will Force',
                'Total Healing',
                'Time Manipulation',
                'Time Manipulation',
                'Weather Manipulation',
                'Weather Manipulation',
                'Time Distortion',
                'Death Field Generation',
                'Life Leach',
                'Planar Travel',
                'YOU PICK ONE',
                'YOU PICK ONE',
                'YOU PICK ONE',
                'YOU PICK ONE',
                'YOU PICK ONE',
                'YOU PICK ONE',
                'YOU PICK ONE',
                'YOU INVENT ONE',
                'YOU INVENT ONE'
            ]
        }

        self.mutations_table = pd.DataFrame(self.raw_mutations_table)

    def get_physical_mutation(self, score):
        mutation = self.mutations_table.loc[self.mutations_table['Score'] == score, 'Physical']
        return mutation.iloc[0] if not mutation.empty else None

    def get_mental_mutation(self, score):
        mutation = self.mutations_table.loc[self.mutations_table['Score'] == score, 'Mental']
        return mutation.iloc[0] if not mutation.empty else None

    def get_table_shape(self):
        return self.mutations_table.shape

    def get_table_row_count(self):
        return self.mutations_table.shape[0]

    def get_table_column_count(self):
        return self.mutations_table.shape[1]
