def get(self, request): context = self.data.dump() slots = Data.get_slots() print("slots" + str(slots)) iter = ['a', 'b', 'c'] load = False context.update({'slots': self.slots_str()}) req = request.GET select = 0 if req: select = int(req.get('s', 0)) if req.get('load', True) == 'True' and select in range(3): slots = Data.get_slots() slot = slots[iter[select]] if slot[1] != 0: slot = str(iter[select]) print("open slot : " + slot) print("HERE ") self.data.load(slot) load = True elif req.get('move', True): if req['move'] == 'up': if int(req['s']) > 0: select = select - 1 else: select = 2 elif req['move'] == 'down': if select < 2: select = select + 1 else: select = 0 context.update({'select': select}) if load == False: a = '?load=True&s=' + str(select) else: a = '/worldmap' controls = { 'up': '?load=False&move=up&s=' + str(select), 'right': '', 'down': '?load=False&move=down&s=' + str(select), 'left': '', 'A': a, 'B': '/', 'start': '', 'select': '', } context.update({'controls': controls}) return render(request, 'options/load_game.html', context)
def slots_str(self): slots = Data.get_slots() iter = ['a', 'b', 'c'] slots_str = [] for i in iter: if slots[i][1] != 0: slots_str.append(str(slots[i][0] + '/' + slots[i][1])) else: slots_str.append("Free") return (slots_str)
class SaveGame(View): data = Data() def slots_str(self): slots = Data.get_slots() iter = ['a', 'b', 'c'] slots_str = [] for i in iter: if slots[i][1] != 0: slots_str.append(str(slots[i][0] + '/' + slots[i][1])) else: slots_str.append("Free") return (slots_str) def get(self, request): context = self.data.dump() iter = ['a', 'b', 'c'] context.update({'slots': self.slots_str()}) req = request.GET select = 0 if req: select = int(req.get('s', 0)) if req.get('save', True) == 'True' and int(req.get('s', 0)) in range(3): self.data.hard_save(iter[int(req.get('s', 0))]) context.update({'slots': self.slots_str()}) elif req.get('move', True): if req['move'] == 'up': if int(req['s']) > 0: select = select - 1 else: select = 2 elif req['move'] == 'down': if select < 2: select = select + 1 else: select = 0 context.update({'select': select}) controls = { 'up': '?save=False&move=up&s=' + str(select), 'right': '', 'down': '?save=False&move=down&s=' + str(select), 'left': '', 'A': '?save=True&s=' + str(select), 'B': '/options', 'start': '', 'select': '', } context.update({'controls': controls}) return render(request, 'options/save_game.html', context)
class Battle(View): data = Data() def _throw_result(self, strengh, rating): prob = 50 - (rating * 10) + (strengh * 5) if prob < 1: prob = 1 elif prob > 90: prob = 90 return prob def get(self, request, id): req = request.GET controls = { 'up': '', 'right': '', 'down': '', 'left': '', 'A': '?move=throw', 'B': '/worldmap', 'start': '', 'select': '', } context = self.data.dump() context.update({'movie': self.data.get_movie(id)}) proba = self._throw_result(len(context['capture_movies']), float(context['movie']['imdbRating'])) context.update({'proba': proba}) if req: if req['move'] and req['move'] == 'throw': if context['balls'] > 0: self.data.decrease_balls() if random.randrange(101) <= proba: self.data.capture_movie(id) controls.update({'A': ''}) context.update({'event': 'You Did It !! '}) else: context.update({'event': 'Looser !! '}) else: context.update( {'event': 'Stop throw pebbles to this poor Moviemon'}) context.update({'controls': controls}) return render(request, 'battle/index.html', context)
class MovieDex(View): data = Data() def get(self, request): context = self.data.dump() req = request.GET select = 1 if req: if req.get('move', False): if req['move'] == 'up': if int(req['s']) > 1: select = int(req['s']) - 1 else: select = len(context['capture_movies']) elif req['move'] == 'down': if int(req['s']) < len(context['capture_movies']): select = int(req['s']) + 1 else: select = 1 context.update({'select': select}) context.update( {'columns': str(int(len(context['capture_movies'] / 3)))}) a = '' if (len(context['capture_movies']) > 0): a = context['capture_movies'][context['select'] - 1] controls = { 'up': '?move=up&s=' + str(context['select']), 'right': '?move=down&s=' + str(context['select']), 'down': '?move=down&s=' + str(context['select']), 'left': '?move=up&s=' + str(context['select']), 'A': '/moviedex/' + a, 'B': '', 'start': '', 'select': '/worldmap', } context.update({'controls': controls}) return render(request, 'moviedex/index.html', context)
class Detail(View): data = Data() def get(self, request, id): req = request.GET controls = { 'up': '', 'right': '', 'down': '', 'left': '', 'A': '', 'B': '/moviedex', 'start': '', 'select': '' } context = {} context.update({'controls': controls}) context.update({'movie': self.data.get_movie(id)}) return render(request, 'detail/index.html', context)
class WorldMap(View): data = Data() def get(self, request): req = request.GET event = {} controls = { 'up': '?move=up', 'right': '?move=right', 'down': '?move=down', 'left': '?move=left', 'A': '', 'B': '', 'start': '/options', 'select': '/moviedex', } if random.randrange(101) > 80: event.update({'moviemon': self.data.get_random_movie()}) controls['A'] = '/battle/' + event['moviemon'] if 'move' in req: if 'moviemon' not in event: self.data.increase_balls(random.randrange(1, 3)) self.data.move(req['move']) return redirect( '/worldmap') #pour eviter le move lors de refresh TODO if 'new' in req: self.data.clean_data_for_new_game() return redirect( '/worldmap') #pour eviter le move lors de refresh TODO context = self.data.dump() context.update({'event': event}) context.update( {'size': (range(context['size'][0]), range(context['size'][0]))}) context.update({'controls': controls}) return render(request, 'worldmap/index.html', context)
class Detail(View): data = Data() def get(self, request, id): context = self.data.dump() try: req = request.GET controls = { 'up': '', 'right': '', 'down': '', 'left': '', 'A': '', 'B': '/moviedex', 'start': '', 'select': '' } context = {} context.update({'controls': controls}) context.update({'movie': self.data.get_movie(id)}) except: raise Http404('Sorry the film #{} was not found'.format(id)) return render(request, 'detail/index.html', context)