abstracted update functions for stats

This commit is contained in:
luxick
2015-07-26 22:52:29 +02:00
parent 9ebccff1a0
commit ebd649e7a8
5 changed files with 45 additions and 64 deletions

View File

@@ -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

Binary file not shown.

View File

@@ -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:

Binary file not shown.

View File

@@ -37,5 +37,5 @@ while True:
if key == ord('q'):
break
elif key < 0:
time.sleep(0.1)
time.sleep(ticklenght)
curses.endwin()