Beispiel #1
0
def index():
    players = Player.query.all()
    players.sort(key = lambda x: len(x.towns.all()), reverse=True)
    if current_player():
        return render_template('views/index.html', user=current_user(), player=current_player(), players=players)
    user = User.query.filter_by(id=session['user_id']).first()
    if user:
        generate_player_for_user(user)
        return redirect('rts')
    return redirect('auth')
Beispiel #2
0
def send_attack():
    id = int(request.form['townid'])
    if not 'destination' in request.form:
        return redirect('rts/town/' + str(id))
    player = current_player()
    if not player:
        return redirect("rts/")

    destination = int(request.form['destination'])
    cavalry_amount = int(request.form['amount_of_cavalry'])
    knight_amount = int(request.form['amount_of_knights'])
    pikemen_amount = int(request.form['amount_of_pikemen'])
    doges_amount = int(request.form['amount_of_doges'])
    town = Town.query.filter_by(id=id).first()
    destination = Town.query.filter_by(id=destination).first()
    if town.player.id != player.id:
        return redirect("rts/")

    if town.remove_units(knight_amount, cavalry_amount, pikemen_amount,
                         doges_amount):
        attack = Attack(town.player, destination, town, knight_amount,
                        cavalry_amount, pikemen_amount, doges_amount)
        db.session.add(attack)
        db.session.commit()
    return redirect('rts/town/' + str(id))
Beispiel #3
0
def incomingattackview():
    player = current_player()
    if not player:
        return redirect("rts")
    attacks = Attack.query.all()
    attacks = list(filter(lambda x: x.destination.player.id == player.id, attacks))
    return render_template("views/incoming_attacks_view.html",user = player.user, player = player, attacks = attacks)
Beispiel #4
0
def townview(town_id):
    player = current_player()
    town = Town.query.filter_by(id=int(town_id)).first()
    if town.player == player:
        return render_template("views/town_view.html", current_town = town, user=current_user(), towns=Town.query.all(), player=player)
    else:
        return render_template("views/town_preview.html", current_town = town, user=current_user(), player=player)
Beispiel #5
0
def create_player():
    if current_player():
        return "", 500
    user = User.query.filter_by(id=session['user_id']).first()
    if user:
        generate_player_for_user(user)
        return redirect('rts')
    return redirect('auth')
Beispiel #6
0
def upgrade_building():
    player = current_player()
    if not player:
        return redirect("rts/")

    building = request.form['building-name']
    id = int(request.form['townid'])
    town = Town.query.filter_by(id=id).first()
    if town.player.id != player.id:
        return redirect("rts/")

    town.add_upgrade(building)
    db.session.add(town)
    db.session.commit()
    password = bcrypt.generate_password_hash("password")

    return redirect('rts/town/' + str(id))
Beispiel #7
0
def create_unit():
    player = current_player()
    if not player:
        return redirect("rts/")
    cavalry_amount = int(request.form['amount_of_cavalry'])
    knight_amount = int(request.form['amount_of_knights'])
    pikemen_amount = int(request.form['amount_of_pikemen'])
    doges_amount = int(request.form["amount_of_doges"])
    id = int(request.form['townid'])
    town = Town.query.filter_by(id=id).first()
    if town.player.id != player.id:
        return redirect("rts/")

    town.add_units(knight_amount, cavalry_amount, pikemen_amount, doges_amount)
    db.session.add(town)
    db.session.commit()
    return redirect('rts/town/' + str(id))
Beispiel #8
0
def all_towns():
    player = current_player()
    return render_template('views/all_towns_view.html', towns = Town.query.all(), user=current_user(), player=player)
Beispiel #9
0
def attackview():
    player = current_player()
    if not player:
        return redirect("rts")
    attacks = Attack.query.filter(Attack.player_id == player.id).all()
    return render_template("views/attack_view.html",user = player.user, player = player, attacks = attacks)
Beispiel #10
0
def house():
    player = current_player()
    if not player:
        return redirect('rts')
    return render_template('views/house_view.html', player=player, user=player.user)