diff --git a/config.py b/config.py index 41d074c..4ef9ee0 100644 --- a/config.py +++ b/config.py @@ -1,9 +1,11 @@ #!/usr/bin/python +# The lenght of one game cycle in milliseconds +ticklenght = 0.1 # The amount of points a Tamagotchi loses per tick decayaspeed = 1 # Controls if Tamagotchi stats are shown in absolute vlaues or precentage (Possible values: True/False) -show_pct = False +show_pct = True # When new Tamagotchis are created their stats will be be created randomly between these. min_stat = 100 max_stat = 200 diff --git a/config.pyc b/config.pyc index 7a3f02c..024e5cf 100644 Binary files a/config.pyc and b/config.pyc differ diff --git a/tamagotchi.py b/tamagotchi.py index c248336..c18830c 100644 --- a/tamagotchi.py +++ b/tamagotchi.py @@ -3,10 +3,10 @@ class Tamagotchi: status = '' name = '' - hunger = 0 - happiness = 0 - hygiene = 0 - sleep = 0 + hunger = [] + happiness = [] + hygiene = [] + sleep = [] dead = False decayspeed = 0 potential = 0 @@ -38,78 +38,57 @@ class Tamagotchi: self.status = 'Working' tamagotchi.status = 'Bathing' - def update_sleep(self): - if self.status is 'Sleeping': - if self.sleep[0] >= self.sleep[1]: + def update_stat(self,stat,recovering): + if recovering: + if stat[0] >= stat[1]: + self.status = 'Idle' + if stat[0] >= stat[1] - self.recovery: + stat[0] = stat[1] self.status = 'Idle' - if self.sleep[0] >= self.sleep[1] - self.recovery: - self.sleep[0] = self.sleep[1] else: - self.sleep[0] += self.recovery + stat[0] += self.recovery else: - if self.sleep[0] <= 0 + self.decayspeed: - self.sleep[0] = 0 - self.status = 'Sleeping' + if stat[0] <= 0 + self.decayspeed: + stat[0] = 0 else: - self.sleep[0] -= self.decayspeed + stat[0] -= self.decayspeed - def update_hunger(self): - if self.status is 'Eating': - if self.hunger[0] >= self.hunger[1]: - self.status = 'Idle' - if self.hunger[0] >= self.hunger[1] - self.recovery: - self.hunger[0] = self.hunger[1] - else: - self.hunger[0] += self.recovery - else: - if self.hunger[0] <= 0 + self.decayspeed: - self.hunger[0] = 0 + def update_status(self): + if not self.dead: + if self.hunger[0] <= 0: self.status = 'Dead' self.dead = True - else: - self.hunger[0] -= self.decayspeed - - def update_hygiene(self): - if self.status is 'Bathing': - if self.hygiene[0] >= self.hygiene[1]: - self.status = 'Idle' - if self.hygiene[0] >= self.hygiene[1] - self.recovery: - self.hygiene[0] = self.hygiene[1] - else: - self.hygiene[0] += self.recovery - else: - if self.hygiene[0] <= 0 + self.decayspeed: - self.hygiene[0] = 0 - else: - self.hygiene[0] -= self.decayspeed - - def update_happiness(self): - if self.status is 'Playing': - if self.happiness[0] >= self.happiness[1]: - self.status = 'Idle' - if self.happiness[0] >= self.happiness[1] -self.recovery: - self.happiness[0] = self.happiness[1] - else: - self.happiness[0] += self.recovery - else: - if self.happiness[0] <= 0 + self.decayspeed: - self.happiness[0] = 0 - else: - self.happiness[0] -= self.decayspeed - - def step(self): - if not self.dead: + if self.sleep[0] <= 0: + self.status = 'Sleeping' if self.status is 'Working': if self.power <= 0: self.status = 'Idle' self.power = self.potential else: self.power -= 1 + + def step(self): + self.update_status() + + if self.status is 'Eating': + self.update_stat(self.hunger,True) else: - self.update_hunger() - self.update_sleep() - self.update_hygiene() - self.update_happiness() + self.update_stat(self.hunger,False) + + if self.status is 'Sleeping': + self.update_stat(self.sleep,True) + else: + self.update_stat(self.sleep,False) + + if self.status is 'Bathing': + self.update_stat(self.hygiene,True) + else: + self.update_stat(self.hygiene,False) + + if self.status is 'Playing': + self.update_stat(self.happiness,True) + else: + self.update_stat(self.happiness,False) def is_dead(self): if self.dead: diff --git a/tamagotchi.pyc b/tamagotchi.pyc index 414be85..538ac18 100644 Binary files a/tamagotchi.pyc and b/tamagotchi.pyc differ diff --git a/test.py b/test.py index 123db72..fda71a8 100644 --- a/test.py +++ b/test.py @@ -37,5 +37,5 @@ while True: if key == ord('q'): break elif key < 0: - time.sleep(0.1) + time.sleep(ticklenght) curses.endwin()