예제 #1
0
def submit_kill(idd):
    idd = int(idd)
    if "user" not in session:
        return redirect(url_for('root'))
    typ = request.form["timefordeath"]
    if typ == "kill":
        userID = db.getUserID(session["user"])
        targetID = db.getTarget(userID, idd, True)
    else:
        targetID = db.getUserID(session["user"])
        userID = db.getTarget(targetID, idd, False)
    current = datetime.now()
    date = str(current.year) + "-" + str(current.month) + "-" + str(
        current.day)
    time = str(current.hour) + ":" + str(current.minute) + ":" + str(
        current.second)
    confirmed = db.killTarget(userID, targetID, idd, time, date)
    if confirmed:
        n = len(db.getPlayersAlive(idd))
        if n == 1 and db.getGameType(idd) == "Assassins - Last Man Standing":
            flash("The winner of the game has been determined!")
            return endgame(idd)
        else:
            flash("Kill was confirmed.")
    elif typ == "kill":
        flash(
            "Kill was submitted; please wait for your target to confirm your kill."
        )
    else:
        flash(
            "Death was submitted; please wait for your killer to confirm your death."
        )
    return redirect(url_for("game", idd=idd))
예제 #2
0
def game(idd):
    idd = int(idd)
    if "user" not in session:
        return redirect(url_for('root'))
    if db.getMaxPlayers(idd) == -1:
        flash("Game is invalid.")
        return redirect(url_for("profile"))
    gamee = db.getGameInfo(idd)
    gamee["adminname"] = db.getName(db.getUsername(gamee["managerID"]))
    gamee["targetID"] = db.getTarget(db.getUserID(session["user"]), idd, True)
    playerIDs, players = db.getPlayers(idd)
    gamee["players"] = zip(playerIDs, players)
    gamee["playersAlive"] = db.getPlayersAlive(idd)
    gamee["playerAlive"] = db.getUserID(
        session["user"]) in gamee["playersAlive"]
    gamee['submitted'] = db.getSubmitted(db.getUserID(session["user"]), idd)
    print gamee["players"]
    if gamee["targetID"] >= 0:
        gamee["targetname"] = db.getName(db.getUsername(gamee["targetID"]))
    if gamee["type"] == 0:
        gamee["type"] = "Assassins - Rapid Fire"
    else:
        gamee["type"] = "Assassins - Last Man Standing"
    managing = idd in db.getGamesID(db.getUserID(session["user"]))
    p, playing = db.getPlaying(db.getUserID(session["user"]))
    play = idd in playing
    feed = db.getFeed(idd)
    return render_template("game.html",
                           game=gamee,
                           admin=managing,
                           playing=play,
                           feed=feed,
                           loggedin=True)
예제 #3
0
def leavegame(idd):
    if "user" not in session:
        return redirect(url_for("root"))
    idd = int(idd)
    db.leaveGame(db.getUserID(session["user"]), idd)
    flash("You successfully left the game.")
    return redirect(url_for("profile"))
예제 #4
0
def checkkey():
    if "user" not in session:
        return redirect(url_for('root'))
    key = request.form["key"]
    game = db.checkKey(key)
    if game == "doesn't exist":
        flash("The key you entered is invalid. Please try again.")
        return redirect(url_for("fndgame"))
    elif game not in db.getGamesID(db.getUserID(session["user"])):
        p0, p1 = db.getPlayers(game)
        if len(p0) == db.getMaxPlayers(game):
            flash(
                "The game you're trying to join already has its max number of players."
            )
            return redirect(url_for("fndgame"))
        if db.getUserID(session["user"]) in p0:
            flash("You've already joined this game!")
            return redirect(url_for("game", idd=game))
        db.joinGame(game, db.getUserID(session["user"]))
        flash("Joined game " + str(game))
        return redirect(url_for("game", idd=game))
    flash("You can't join a game you're managing.")
    return redirect(url_for("fndgame"))
예제 #5
0
def profileWithID(idd):
    if "user" not in session:
        return redirect(url_for("root"))
    idd = int(idd)
    person = idd == db.getUserID(session["user"])
    if person:
        return redirect(url_for("profile"))
    username = db.getUsername(idd)
    name = db.getName(username)
    games = db.getGames(idd)
    gameIDs = db.getGamesID(idd)
    playing, p = db.getPlaying(idd)
    finished = db.getFinishedGames()
    extension = db.getExtension(idd)
    totalkills = db.getTotalKills()
    gamesplayed = db.getNumGamesPlayed()
    recordkills = db.getRecordKills()
    if idd in totalkills:
        totalkills = totalkills[idd]
    else:
        totalkills = 0
    if idd in gamesplayed:
        gamesplayed = gamesplayed[idd]
        avgkills = db.getAverageKills(idd)
    else:
        gamesplayed = 0
        avgkills = "N/A"
    if idd in recordkills:
        recordkills = recordkills[idd]
    else:
        recordkills = "N/A"
    gameswon = db.getNumGamesWon(idd)
    avgplace = db.averagePlacing(idd)
    return render_template("profile.html",
                           avgplace=avgplace,
                           gameswon=gameswon,
                           totalkills=totalkills,
                           gamesplayed=gamesplayed,
                           avgkills=avgkills,
                           recordkills=recordkills,
                           username=username,
                           userID=idd,
                           name=name,
                           games=zip(games, gameIDs),
                           playing=zip(playing, p),
                           finished=finished,
                           extension=extension,
                           is_own=False,
                           loggedin=True)
예제 #6
0
def profile():
    if "user" not in session:
        return redirect(url_for('root'))
    username = session['user']
    print username
    userID = db.getUserID(username)
    name = db.getName(username)
    games = db.getGames(userID)
    gameIDs = db.getGamesID(userID)
    playing, p = db.getPlaying(userID)
    finished = db.getFinishedGames()
    extension = db.getExtension(userID)
    totalkills = db.getTotalKills()
    gamesplayed = db.getNumGamesPlayed()
    recordkills = db.getRecordKills()
    if userID in totalkills:
        totalkills = totalkills[userID]
    else:
        totalkills = 0
    if userID in gamesplayed:
        gamesplayed = gamesplayed[userID]
        avgkills = db.getAverageKills(userID)
    else:
        gamesplayed = 0
        avgkills = "N/A"
    if userID in recordkills:
        recordkills = recordkills[userID]
    else:
        recordkills = "N/A"
    gameswon = db.getNumGamesWon(userID)
    avgplace = db.averagePlacing(userID)
    return render_template("profile.html",
                           avgplace=avgplace,
                           gameswon=gameswon,
                           totalkills=totalkills,
                           gamesplayed=gamesplayed,
                           avgkills=avgkills,
                           recordkills=recordkills,
                           username=username,
                           userID=userID,
                           name=name,
                           games=zip(games, gameIDs),
                           playing=zip(playing, p),
                           finished=finished,
                           extension=extension,
                           is_own=True,
                           loggedin=True)
예제 #7
0
def create_game():
    if "user" not in session:
        return redirect(url_for('root'))
    username = session['user']
    gameMode = request.form['gameMode']
    startDate = request.form['startDate']
    endDate = request.form['endDate']
    if startDate > endDate:
        flash("Start date must be before end date.")
        return redirect(url_for("mkgame"))
    adminID = db.getUserID(username)
    joinKey = generateKey()
    title = request.form['title']
    description = request.form['description']
    if gameMode == "Assassins - Rapid Fire":
        typ = 0
    elif gameMode == "Assassins - Last Man Standing":
        typ = 1
    gameID = db.crGame(adminID, joinKey, gameMode, startDate, endDate, title,
                       description)
    session['game'] = gameID
    session["gameType"] = typ
    return render_template("rules.html", gameType=typ, loggedin=True)
예제 #8
0
def upload():
    if "user" not in session:
        return redirect(url_for("root"))
    if 'file' not in request.files:
        flash('No file part')
        return redirect(url_for(profile))
    file = request.files['file']
    print(file)
    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        userID = db.getUserID(session["user"])
        newname = str(userID)
        file.save(path.join(my_app.config['UPLOAD_FOLDER'], filename))
        extension = filename.split(".")
        extension = str(extension[1])
        source = PFP_FOLDER + "/" + filename
        destination = PFP_FOLDER + "/" + newname + "." + extension
        rename(source, destination)
        db.setExtension(userID, extension)
        flash("Profile picture updated.")
        return redirect(url_for('profile'))
    else:
        flash("File incompatible.")
        return redirect(url_for('profile'))