def save_game(request): mooc = [ {'case': 'A', 'target': True, 'status' : 'FREE'}, {'case': 'B', 'target': False, 'status' : 'FREE'}, {'case': 'C', 'target': False, 'status' : 'FREE'}, ] if request.method == 'POST': r = request.POST['action'] if r: if r == 'A': dmanager = manager(CURRENT_GAME) data = dmanager.load() manager("{}slot{}_{}_15.mmg".format(SAVE_FOLDER, mooc[settings.CURSOR_POS]['case'], len(data['captured_moviemon']))).dump(data) elif r == 'B': settings.CURSOR_POS = 0 return redirect('/options') if r == 'bas' and settings.CURSOR_POS < 2: settings.CURSOR_POS += 1 elif r == 'haut' and settings.CURSOR_POS > 0: settings.CURSOR_POS -= 1 count = 0 save_file = os.listdir(SAVE_FOLDER) while count < 3: for elem in save_file: if 'slot' + mooc[count]['case'] == elem[:5]: info_savegame = manager(SAVE_FOLDER + elem).load() mooc[count]['status'] = str(len(info_savegame['captured_moviemon'])) + "/15" if count == settings.CURSOR_POS: mooc[count]['target'] = True else: mooc[count]['target'] = False count += 1 return render(request, 'game/save_game.html', {'slots' : mooc})
def index(request): manager('common/game_log.pickle').load_default_settings() if request.method == 'POST': r = request.POST['action'] if r: if r == 'A': # Permet de rediriger lorsque il y a changement d'url return redirect('worldmap') elif r == 'B': return redirect('/options/load_game') return render(request, 'game/index.html')
def moviedex(request): # to keep for the end filename = 'common/game_log.pickle' data = manager(filename).load() #movie_list = ["Alien", "Pacific Rim"] movie_list = data['captured_moviemon'] movies = {} i = 0 for movie in data['moviemon_db2']: #print(movie["Title"], movie_list) if movie["Title"] in movie_list: movies[i] = {"Title" : movie["Title"], "Poster" : movie["Poster"]} i += 1 #print(movies) if request.method == 'POST': r = request.POST['action'] if r: if r == 'bas' and settings.CURSOR_POS < len(movies) - 1: settings.CURSOR_POS += 1 if r == 'haut' and settings.CURSOR_POS - 1 >= 0: settings.CURSOR_POS -= 1 #if r == '' if r == 'select': settings.CURSOR_POS = 0 return redirect('worldmap') if r == 'A': #print('ok') #if len(movies) > 0: return redirect('moviedex/' + movies[settings.CURSOR_POS]['Title'].replace(' ', '_').lower()) return render(request, 'game/moviedex.html', {'movies': movies, 'pos': settings.CURSOR_POS, 'len_movies':len(movies)})
def battle(request, title=None): filename = 'common/game_log.pickle' random.seed(datetime.datetime.now()) data = manager(filename).load() movie_list = data['moviemon_db'] for movie in movie_list: if title == movie['Title'].replace(" ", "_"): movie_content = {**movie} break if data['event'] != 'catched': successrate = 50 - float(movie_content['imdbRating']) * 10 + (data['captured_moviemon_nb'] * 5) if successrate < 1: successrate = 1 if successrate > 90: successrate = 90 if request.method == 'POST': r = request.POST['action'] if r: if r == 'A': if data['movieball'] == 0: manager(filename).dump(data) return render(request, 'game/battle.html', { "event": data['event'], "message" : "No more movieballs lol !", "Movie" : movie_content, "lvl": data['captured_moviemon_nb'], 'successrate' : successrate, 'movieball':data['movieball']}) data['movieball'] -= 1 roll = random.randint(0,100) if roll < successrate: data['event'] = 'catched' data['moviemon_found'] = '' data['captured_moviemon'].append(movie_content['Title']) data['captured_moviemon_nb'] += 1 for i, moviemon in enumerate(data['moviemon_db']): if moviemon['Title'] == movie_content['Title']: data['moviemon_db'].pop(i) manager(filename).dump(data) return render(request, 'game/battle.html', { "event": data['event'], "message" : "You catched it !", "Movie" : movie_content, "lvl": data['captured_moviemon_nb'], 'successrate' : successrate, 'movieball':data['movieball']}) else: manager(filename).dump(data) return render(request, 'game/battle.html', {"message" : "You missed noob !", "Movie" : movie_content, "lvl": data['captured_moviemon_nb'], 'successrate' : successrate, 'movieball':data['movieball']}) if r == 'B': data['event'] = '' manager(filename).dump(data) return redirect('/worldmap') # for movie in movie_list: # if title == movie['Title'].replace(" ", "_"): # movie_content = {**movie} # return render(request, 'game/battle.html', {"Movie" : movie_content, 'lvl': data['captured_moviemon_nb'], 'successrate' : successrate}) return render(request, 'game/battle.html', {"Movie" : movie, "lvl": data['captured_moviemon_nb'], 'successrate' : successrate, 'movieball':data['movieball']})
def info_movie(request, current_movie=None): # Fetch movies from "DataBase" filename = 'common/game_log.pickle' data = manager(filename).load() movie_list = data['moviemon_db2'] if request.method == 'POST': r = request.POST['action'] if r: if r == 'B': return redirect('moviedex') for movie in movie_list: if current_movie == movie['Title'].lower().replace(" ", "_"): movie_content = {**movie} return render(request, 'game/info_movie.html', movie_content) return redirect('moviedex')
def worldmap(request): def event(game): return random.choice(['movieball', 'moviemon']) if game == True else '' filename = 'common/game_log.pickle' if not os.path.isfile(filename): manager(filename).load_default_settings() print("worldmap: creating file") scale = '' action = ['haut', 'bas', 'droite', 'gauche'] # replace by call class DataManager data = manager(filename).load() size = data['size'] pos = data['current_position'] if request.method == 'POST' : if data['event'] == 'moviemon': if request.POST['action'] == 'A': return redirect('battle/' + data['moviemon_found'].replace(' ', '_')) print("We are in a fight bro") data['size'] = range(size) return render(request, 'game/map.html', data) move = request.POST['action'] if any(x == request.POST['action'] for x in action): move = request.POST['action'] if move == 'haut': pos = pos - size if (pos - size) // size >= 0 else pos scale = "rotate(90deg)" elif move == 'bas': pos = pos + size if (pos + size) // size < size else pos scale = "rotate(-90deg)" elif move == 'droite': pos = pos + 1 if (pos) % size < size - 1 else pos scale = "ScaleX(-1)" elif move == 'gauche': pos = pos - 1 if pos % size != 0 else pos scale = "ScaleX(1)" if move == 'start': return redirect('/options') elif move == 'select': print('\nhello\n') settings.CURSOR_POS = 0 return redirect('/moviedex') data.update(start=True) if pos == data['current_position']: data['event'] = '' manager(filename).dump(data) data['size'] = range(size) return render(request, 'game/map.html', data) data.update( current_position=pos if pos != data else data['current_position'], x=pos % size, y=pos // size, scale=scale, event=event(data['start']) ) if len(data['captured_moviemon']) == 15: print('fin') data['event'] = '' manager(filename).dump(data) data['size'] = range(size) return render(request, 'game/map.html', data) if data['event'] == 'moviemon' and len(data['moviemon_db']): data['moviemon_found'] = manager( filename).get_random_movie(data['moviemon_db'])['Title'] elif data['event'] == 'movieball': data['movieball'] += 1 manager(filename).dump(data) data['size'] = range(size) ### if request.method == 'POST': r = request.POST['action'] if r: if r == 'select': return redirect('moviedex') ### print(data) return render(request, 'game/map.html', data)