2021-05-10 14:37:15 +02:00
|
|
|
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
|
2021-06-03 16:12:40 +02:00
|
|
|
self.is_healthy = True
|
2021-05-10 14:37:15 +02:00
|
|
|
field.planted = True
|
2021-06-03 16:12:40 +02:00
|
|
|
self.tickscount = 0
|
|
|
|
self.ticks = 0
|
2021-05-10 14:37:15 +02:00
|
|
|
|
2021-06-03 16:12:40 +02:00
|
|
|
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):
|
2021-05-10 14:37:15 +02:00
|
|
|
if self.growth == 0:
|
|
|
|
self.surf = self.img0
|
2021-06-03 16:12:40 +02:00
|
|
|
if self.growth == 1:
|
2021-05-10 14:37:15 +02:00
|
|
|
self.surf = self.img1
|
2021-06-03 16:12:40 +02:00
|
|
|
if self.growth == 2:
|
2021-05-10 14:37:15 +02:00
|
|
|
self.surf = self.img2
|
2021-06-03 16:12:40 +02:00
|
|
|
if self.growth == 3:
|
2021-05-10 14:37:15 +02:00
|
|
|
self.surf = self.img3
|
2021-06-03 16:12:40 +02:00
|
|
|
|
|
|
|
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
|