class Arena: def __init__(self): self.reset = False self.quit = False self.time_inc = .1 self.time = 0 self.bal = 0 self.target = Target() self.cmd_list = ["dstab", "wait", "quit", "reset"] def inc_time(self): self.bal -= self.time_inc self.time += self.time_inc self.bal = round(self.bal, 1) self.time = round(self.time, 1) if self.target.inc_time(self.time_inc): self.target.handle_cure() def afflict(self, aff): tmp_split = aff.split(' ') print(tmp_split) while (tmp_split[0] == 'affs'): self.affliction_list() tmp_split = input("\n").split(' ') while len(tmp_split) == 1 and not tmp_split[0] in self.cmd_list: self.target.afflict(tmp_split[0]) self.affliction_list() tmp_split = input("").split(' ') if (tmp_split[0] == 'quit'): self.quit = True return if (tmp_split[0] == 'reset'): self.reset = True return if (tmp_split[0] == 'dstab' or tmp_split[0] == 'ds'): self.target.dstab(tmp_split[1], tmp_split[2]) self.bal = 2.1 elif (tmp_split[0] == 'wait'): self.bal = 1 elif (len(tmp_split) > 1): self.target.dstab(tmp_split[0], tmp_split[1]) self.bal = 2.1 else: self.target.afflict(aff) def affliction_list(self): self.target.print_afflictions() def prompt(self): self.affliction_list() next = input(str(self.time) + ": What should I do next?\n") self.afflict(next) if self.quit or self.reset: return self.target.handle_cure() def can_action(self): if self.bal <= 0: self.prompt() def fight(self): while not self.can_action(): if self.reset: self.__init__() print("reset all afflictions") continue if self.quit: return self.inc_time()