def METHOD_NAME(self):
    """Calculcate your fitness."""
    if self.fitness is not None:
        raise Exception(
            "You are calculating the fitness of agent {}, ".format(self.id)
            + "but they already have a fitness"  # noqa
        )
    said_blue = self.infos(type=Meme)[0].contents == "blue"
    proportion = float(
        max(
            self.network.nodes(type=RogersEnvironment)[0].infos(),
            key=attrgetter("id"),
        ).contents
    )
    self.proportion = proportion
    is_blue = proportion > 0.5
    if said_blue is is_blue:
        self.score = 1
    else:
        self.score = 0
    is_asocial = self.infos(type=LearningGene)[0].contents == "asocial"
    e = 2
    b = 1
    c = 0.3 * b
    baseline = c + 0.0001
    self.fitness = (baseline + self.score * b - is_asocial * c) ** e