diff --git a/app.py b/app.py index c8f40ad..1933f12 100644 --- a/app.py +++ b/app.py @@ -3,53 +3,64 @@ import sqlite3 app = Flask(__name__) -DATABASE = 'static/data/monsters.db' +DATABASE = "static/data/monsters.db" + def connect_db(): return sqlite3.connect(DATABASE) + @app.before_request def before_request(): g.db = connect_db() + @app.teardown_request def teardown_request(exception): - if hasattr(g, 'db'): + if hasattr(g, "db"): g.db.close() + @app.route("/") def show_index(): return render_template("index.html") -@app.route('/get_families') + +@app.route("/get_families") def get_families(): cursor = g.db.cursor() - cursor.execute('SELECT DISTINCT name FROM families') + cursor.execute("SELECT DISTINCT name FROM families") families = [row[0] for row in cursor.fetchall()] return jsonify(families) -@app.route('/get_monsters') + +@app.route("/get_monsters") def get_monsters(): - selected_family = request.args.get('family') + selected_family = request.args.get("family") cursor = g.db.cursor() if selected_family: - cursor.execute(''' + cursor.execute( + """ SELECT name FROM monsters WHERE family_id = (SELECT id FROM families WHERE name = ?) - ''', (selected_family,)) + """, + (selected_family,), + ) else: - cursor.execute('SELECT DISTINCT name FROM monsters') + cursor.execute("SELECT DISTINCT name FROM monsters") monsters = [row[0] for row in cursor.fetchall()] return jsonify(monsters) -@app.route('/monster/') + +@app.route("/monster/") def monster_info(monster_name): cursor = g.db.cursor() # Retrieve monster information from the database based on name - cursor.execute(''' + cursor.execute( + """ SELECT monsters.id, monsters.name, families.name AS family, monsters.in_story, monsters.agl, monsters.int, monsters.maxlvl, monsters.atk, monsters.mp, @@ -59,7 +70,9 @@ def monster_info(monster_name): JOIN families ON monsters.family_id = families.id WHERE monsters.name = ? - ''', (monster_name,)) + """, + (monster_name,), + ) monster_info = cursor.fetchone() @@ -67,59 +80,38 @@ def monster_info(monster_name): abort(404) # Retrieve skills for the monster - cursor.execute('SELECT skill FROM skills WHERE monster_id = ?', (monster_info[0],)) + cursor.execute("SELECT skill FROM skills WHERE monster_id = ?", (monster_info[0],)) skills = [row[0] for row in cursor.fetchall()] # Retrieve spawn locations for the monster - cursor.execute('SELECT map, description FROM spawn_locations WHERE monster_id = ?', (monster_info[0],)) - spawn_locations = [{'map': row[0], 'description': row[1]} for row in cursor.fetchall()] + cursor.execute( + "SELECT map, description FROM spawn_locations WHERE monster_id = ?", + (monster_info[0],), + ) + spawn_locations = [ + {"map": row[0], "description": row[1]} for row in cursor.fetchall() + ] - return render_template('monsters.html', monster={ - 'id': monster_info[0], - 'name': monster_info[1], - 'family': monster_info[2], - 'in_story': 'Yes' if monster_info[3] else 'No', - 'agl': monster_info[4], - 'int': monster_info[5], - 'maxlvl': monster_info[6], - 'atk': monster_info[7], - 'mp': monster_info[8], - 'exp': monster_info[9], - 'hp': monster_info[10], - 'def': monster_info[11], - 'skills': skills, - 'spawn_locations': spawn_locations - }) - -# Add a route for the breeding page -@app.route('/breeding') -def breeding(): - # Pass any necessary data to the breeding template (e.g., breeding_data) - return render_template('breeding.html') + return render_template( + "monsters.html", + monster={ + "id": monster_info[0], + "name": monster_info[1], + "family": monster_info[2], + "in_story": "Yes" if monster_info[3] else "No", + "agl": monster_info[4], + "int": monster_info[5], + "maxlvl": monster_info[6], + "atk": monster_info[7], + "mp": monster_info[8], + "exp": monster_info[9], + "hp": monster_info[10], + "def": monster_info[11], + "skills": skills, + "spawn_locations": spawn_locations, + }, + ) -# Add this function to handle breeding logic -def breed_monsters(parent1, parent2): - # Implement your breeding logic here - # For now, let's assume the result is a string - result = f"{parent1} x {parent2} => Offspring Monster" - return result -# Add this route for breeding -@app.route('/breed', methods=['GET']) -def breed(): - # Get parent monsters from query parameters - parent1 = request.args.get('parent1') - parent2 = request.args.get('parent2') - - # Validate input (you may want to add more validation) - if not parent1 or not parent2: - return jsonify({'error': 'Invalid input'}) - - # Call the breeding function - result = breed_monsters(parent1, parent2) - - # Return the breeding result as JSON - return jsonify({'result': result}) - -if __name__ == '__main__': +if __name__ == "__main__": app.run(debug=True) diff --git a/static/js/breeding.js b/static/js/breeding.js deleted file mode 100644 index 2d3f093..0000000 --- a/static/js/breeding.js +++ /dev/null @@ -1,19 +0,0 @@ -// static/js/breeding.js - -function breed() { - var parent1 = document.getElementById("parent1").value; - var parent2 = document.getElementById("parent2").value; - - // Make an AJAX request to your Flask route for breeding logic - // You can use fetch or another library for AJAX requests - - // For demonstration purposes, we'll assume you have a Flask route named /breed - fetch(`/breed?parent1=${parent1}&parent2=${parent2}`) - .then(response => response.json()) - .then(data => { - // Display the breeding result in the breedingResult div - var breedingResultDiv = document.getElementById("breedingResult"); - breedingResultDiv.innerHTML = `

Breeding Result: ${data.result}

`; - }) - .catch(error => console.error('Error:', error)); -} diff --git a/templates/breeding.html b/templates/breeding.html deleted file mode 100644 index 1318db2..0000000 --- a/templates/breeding.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - Dragon Warrior Monsters 2 - Breeding - - - -

Breeding Guide

- -
-

Breeding Options

- -
- - -
- -
- - -
- - - - -
-
- - - -