2024-03-24 23:30:02 +01:00
|
|
|
import Stan
|
|
|
|
import Srodek
|
|
|
|
import random
|
|
|
|
|
2024-03-23 16:22:13 +01:00
|
|
|
class Roslina:
|
|
|
|
nazwa = None #[string]
|
|
|
|
stan = None #[Stan]
|
|
|
|
srodek = None #[List<Srodek>]
|
|
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
Nawodnienie (update co 30s):
|
|
|
|
- pszenica: -8
|
|
|
|
- kukurydza: -7
|
|
|
|
- ziemniak: -6
|
|
|
|
- słonecznik: -5
|
|
|
|
- borówka: -4
|
|
|
|
- winogrono: -4
|
|
|
|
|
|
|
|
Żyzność (update co 30s):
|
|
|
|
- pszenica: -7
|
|
|
|
- kukurydza: -4
|
|
|
|
- ziemniak: -5
|
|
|
|
- słonecznik: -3
|
|
|
|
- borówka: -5
|
|
|
|
- winogrono: -4
|
|
|
|
|
|
|
|
Wzrost (update co 30s):
|
|
|
|
- pszenica: +8
|
|
|
|
- kukurydza: +4
|
|
|
|
- ziemniak: +5
|
|
|
|
- słonecznik: +3
|
|
|
|
- borówka: +5
|
|
|
|
- winogrono: +4
|
2024-04-24 22:16:34 +02:00
|
|
|
|
|
|
|
Koszt (0-15):
|
|
|
|
- pszenica: 7
|
|
|
|
- kukurydza: 9
|
|
|
|
- ziemniak: 2
|
|
|
|
- słonecznik: 5
|
|
|
|
- borówka: 3
|
|
|
|
- winogrono: 4
|
|
|
|
- szuter (ścieżka): 0
|
|
|
|
- błoto: 15
|
|
|
|
|
|
|
|
|
2024-03-23 16:22:13 +01:00
|
|
|
def __init__(self, nazwa, stan, srodek):
|
|
|
|
self.nazwa = nazwa
|
|
|
|
self.stan = stan
|
|
|
|
self.srodek = srodek
|
2024-04-24 22:16:34 +02:00
|
|
|
"""
|
2024-03-23 16:22:13 +01:00
|
|
|
|
2024-04-24 22:16:34 +02:00
|
|
|
def __init__(self, nazwa):
|
|
|
|
self.nazwa = nazwa
|
|
|
|
self.stan = Stan.Stan()
|
|
|
|
if nazwa == "dirt":
|
|
|
|
self.stan.koszt = 0
|
|
|
|
self.stan.nawodnienie = 100
|
|
|
|
elif nazwa == "mud":
|
|
|
|
self.stan.koszt = 15
|
|
|
|
self.stan.nawodnienie = 100
|
|
|
|
else:
|
|
|
|
self.stan.set_random()
|
|
|
|
if nazwa == "pszenica":
|
|
|
|
self.stan.koszt = 7
|
|
|
|
elif nazwa == "kukurydza":
|
|
|
|
self.stan.koszt = 9
|
|
|
|
elif nazwa == "ziemniak":
|
|
|
|
self.stan.koszt = 2
|
|
|
|
elif nazwa == "slonecznik":
|
|
|
|
self.stan.koszt = 5
|
|
|
|
elif nazwa == "borowka":
|
|
|
|
self.stan.koszt = 3
|
|
|
|
else: # winogrono
|
|
|
|
self.stan.koszt = 4
|
|
|
|
self.srodek = None
|
2024-03-24 23:30:02 +01:00
|
|
|
|
|
|
|
|
2024-03-23 16:22:13 +01:00
|
|
|
def checkSrodek(self):
|
|
|
|
#może wykorzystać AI do porównywania zdjęć
|
2024-03-24 19:19:49 +01:00
|
|
|
|
2024-03-23 16:22:13 +01:00
|
|
|
for i in self.srodek:
|
|
|
|
for j in self.stan.akcja.srodki:
|
|
|
|
if i == j:
|
|
|
|
return i
|
|
|
|
return False
|
|
|
|
|
2024-03-24 19:19:49 +01:00
|
|
|
|
2024-03-23 16:22:13 +01:00
|
|
|
def doAkcja(self):
|
2024-03-24 19:19:49 +01:00
|
|
|
# sprawdza jaki srodek do danej akcji i jaki z nich może być użyty przy tej roślinie
|
|
|
|
# robi akcje
|
|
|
|
# aktualizuje dane o stanie i zdjęcie w zależności od wykonanej czynności (benefits w klasie akcja) -> (self.stan.akcja.benefits)
|
|
|
|
|
|
|
|
x = self.checkSrodek()
|
|
|
|
# robi akcje
|
|
|
|
setattr(self.stan, self.stan.akcja.benefits[0], self.stan.akcja.benefits[1])
|
|
|
|
return
|
2024-03-23 16:22:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
def isAkcja(self):
|
|
|
|
# sprawdza czy jakaś akcja musi być wykonana, jeżeli tak, to ją wywołuje
|
|
|
|
# sprawdza czy jeszcze coś trzeba zrobić
|
|
|
|
|
|
|
|
self.stan.checkStan()
|
|
|
|
while self.stan.akcja != None:
|
|
|
|
self.doAkcja()
|
|
|
|
self.stan.checkStan()
|
2024-03-24 23:30:02 +01:00
|
|
|
return
|
|
|
|
|
2024-04-13 01:39:39 +02:00
|
|
|
def return_stan(self):
|
|
|
|
return self.stan
|
|
|
|
|
2024-05-11 14:18:40 +02:00
|
|
|
def return_stan_for_tree(self):
|
|
|
|
return self.stan.return_stan_for_tree()
|
|
|
|
|
2024-04-13 01:39:39 +02:00
|
|
|
def get_hydrate_stats(self):
|
|
|
|
return self.stan.return_hydrate()
|
|
|
|
|
2024-03-24 23:30:02 +01:00
|
|
|
def report_status(self):
|
2024-05-12 14:59:23 +02:00
|
|
|
return f"Nazwa rosliny: {self.nazwa} "+self.stan.report_all()
|
|
|
|
|
|
|
|
def return_status_tree(self):
|
|
|
|
return self.stan.return_stan_for_tree()
|