import pygame from colors import * from dimensions import * from sprites import * class Plant(pygame.sprite.Sprite): def __init__(self, field, species): super(Plant, self).__init__() self.species = species if self.species == "wheat": self.growth_speed = 1.5 self.humidity_needed = 2 self.img0 = wheat_img_0 self.img1 = wheat_img_1 self.img2 = wheat_img_2 self.img3 = wheat_img_3 elif self.species == "potato": self.growth_speed = 1 self.humidity_needed = 1 self.img0 = potato_img_0 self.img1 = potato_img_1 self.img2 = potato_img_2 self.img3 = potato_img_3 elif self.species == "strawberry": self.growth_speed = 0.8 self.humidity_needed = 1 self.img0 = strawberry_img_0 self.img1 = strawberry_img_1 self.img2 = strawberry_img_2 self.img3 = strawberry_img_3 self.surf = self.img0 self.position = field.position self.field = field self.rect = self.surf.get_rect( topleft=((MARGIN + WIDTH) * self.position[0] + MARGIN, (MARGIN + HEIGHT) * self.position[1] + MARGIN)) self.growth = 0 self.is_healthy = True field.planted = True self.tickscount = 0 self.ticks = 0 def dtree(self): if self.field.hydration == 4: if self.is_healthy == 1: if self.field.tractor_there == 0: if self.ticks == 0: return 0 elif self.ticks == 1: return 1 elif self.field.tractor_there == 1: return 0 elif self.is_healthy == 0: return 0 elif self.field.hydration == 2: if self.species == "sorrel": if self.ticks == 1: if self.is_healthy == 1: return 1 elif self.is_healthy == 0: return 0 elif self.ticks == 0: return 0 elif self.species == "potato": return 0 elif self.species == "wheat": return 0 elif self.species == "strawberry": return 0 elif self.field.hydration == 1: if self.species == "potato": return 0 elif self.species == "strawberry": if self.ticks == 1: return -1 elif self.ticks == 0: return 0 elif self.species == "wheat": return 0 elif self.species == "sorrel": if self.is_healthy == 0: return 0 elif self.is_healthy == 1: if self.field.tractor_there == 0: if self.ticks == 0: return 0 elif self.ticks == 1: return 1 elif self.field.tractor_there == 1: return 0 elif self.field.hydration == 3: if self.ticks == 1: if self.field.tractor_there == 0: if self.is_healthy == 1: if self.species == "potato": if self.field.fertility == 1: return 1 elif self.field.fertility == 0: return 0 elif self.species == "strawberry": return 1 elif self.species == "sorrel": return 1 elif self.species == "wheat": return 1 elif self.is_healthy == 0: return 0 elif self.field.tractor_there == 1: return 0 elif self.ticks == 0: return 0 elif self.field.hydration == 5: if self.field.tractor_there == 1: return 0 elif self.field.tractor_there == 0: if self.is_healthy == 0: return 0 elif self.is_healthy == 1: if self.ticks == 1: return 1 elif self.ticks == 0: return 0 elif self.field.hydration == 0: if self.ticks == 0: return 0 elif self.ticks == 1: return -1 def update(self): if self.growth == 0: self.surf = self.img0 if self.growth == 1: self.surf = self.img1 if self.growth == 2: self.surf = self.img2 if self.growth == 3: self.surf = self.img3 def grow(self): if self.dtree() == 1: self.growth += 1 self.ticks = 0 elif self.dtree() == -1: self.growth -= 1 self.ticks = 0 if self.growth > 4: self.growth = 4 if self.growth < 0: self.growth = 0 self.update() def tick(self): self.tickscount += 1 if self.tickscount >= 25: self.tickscount = 0 self.ticks = 1