def __init__(self, status=0, border=NODE_BORDER, animate=ANIMATE_NODES, size=NODE_SIZE): self.status = status self.size = size self.surface = pygame.Surface((self.size, self.size)) self.width = self.surface.get_width() self.height = self.surface.get_height() self.rect = pygame.Rect(0, 0, self.width, self.height) self.border = border self.animate = animate self.colour = colour_lookup(self.status) self.desired_colour = colour_lookup(self.status) self.colour_shift_max_step = 10
def draw(self, no_anim=False): if self.animate: if self.colour != self.desired_colour: self.shift_overall_colour() if no_anim: self.colour = colour_lookup(self.status) self.surface.fill(self.colour) if self.border: pygame.draw.rect(self.surface, GRID_COLOUR, self.rect, 1) return self.surface
def convert_dead(self): self.status = 4 if self.animate: self.desired_colour = colour_lookup(self.status) else: self.colour = colour_lookup(self.status)
def convert_recovered(self): self.status = 3 if self.animate: self.desired_colour = colour_lookup(self.status) else: self.colour = colour_lookup(self.status)
def convert_infected(self): self.status = 1 if self.animate: self.desired_colour = colour_lookup(self.status) else: self.colour = colour_lookup(self.status)
def convert_healthy(self): self.status = 0 if self.animate: self.desired_colour = colour_lookup(self.status) else: self.colour = colour_lookup(self.status)