You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.7 KiB
67 lines
1.7 KiB
from flask import Flask, render_template, jsonify, request
|
|
|
|
app = Flask(__name__)
|
|
|
|
@app.route('/')
|
|
def index():
|
|
return render_template('index.html')
|
|
|
|
@app.route('/results', methods=['POST'])
|
|
def results():
|
|
combinations = calculate_combinations(request.get_json())
|
|
return jsonify(combinations)
|
|
|
|
|
|
# Data Methods
|
|
def calculate_combinations(equipment, do_print=False):
|
|
# name, defense, resistance
|
|
eq_headware = equipment["head"]
|
|
eq_chestware = equipment["chest"]
|
|
eq_legwear = equipment["legs"]
|
|
|
|
# Create a list of all possible eq combinations
|
|
results = []
|
|
for hw in eq_headware:
|
|
for cw in eq_chestware:
|
|
for lw in eq_legwear:
|
|
result = {}
|
|
result["eq"] = [hw[0], cw[0], lw[0]]
|
|
result["def"] = hw[1] + cw[1] + lw[1]
|
|
result["res"] = hw[2] + cw[2] + lw[2]
|
|
results.append(result)
|
|
|
|
# Sort the combinations by combined total of def anf res
|
|
results.sort(key=lambda i: i["def"] + i["res"])
|
|
|
|
if do_print:
|
|
for result in results:
|
|
print("{} ({} def {} res) -".format(result["def"] + result["res"], result["def"], result["res"]))
|
|
for eq in result["eq"]:
|
|
print("\t{}".format(eq))
|
|
|
|
return results
|
|
|
|
|
|
"""
|
|
eq_headware = [
|
|
["Ljosalfar Hood", 98, 510],
|
|
["Kobold Hood", 0, 614],
|
|
["Northern Cowl", 584, 130],
|
|
["High Fomorian Hood", 487, 112]
|
|
]
|
|
|
|
eq_chestware = [
|
|
["Ljosalfar Robe", 121, 528],
|
|
["High Fomorian Garb", 544, 0],
|
|
["Darkest Garb", 514, 169],
|
|
["Northern Garb", 535, 119],
|
|
["Northern Robe", 486, 108]
|
|
]
|
|
|
|
eq_legwear = [
|
|
["Northern Boots", 636, 142],
|
|
["Terra Boots", 129, 369],
|
|
["High Fomorian Boots", 516, 0],
|
|
["Ljosalfar Boots", 280, 280]
|
|
]
|
|
"""
|