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')
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))
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)
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)
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')
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))
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))
def all_towns(): player = current_player() return render_template('views/all_towns_view.html', towns = Town.query.all(), user=current_user(), player=player)
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)
def house(): player = current_player() if not player: return redirect('rts') return render_template('views/house_view.html', player=player, user=player.user)