Update readme with URL
This commit is contained in:
parent
4916f77a1d
commit
2681090f5e
4
README.md
Normal file
4
README.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# OrnaRPG Tools
|
||||||
|
|
||||||
|
Equipment combination toolkit
|
||||||
|
https://orna.atr0phy.net
|
@ -1,70 +0,0 @@
|
|||||||
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=True):
|
|
||||||
# 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:
|
|
||||||
print('Headware: {}'.format(hw))
|
|
||||||
for cw in eq_chestware:
|
|
||||||
print('Chestware: {}'.format(cw))
|
|
||||||
for lw in eq_legwear:
|
|
||||||
print('legware: {}'.format(lw))
|
|
||||||
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]
|
|
||||||
]
|
|
||||||
"""
|
|
@ -24,13 +24,13 @@
|
|||||||
</nav>
|
</nav>
|
||||||
<div class="uk-container">
|
<div class="uk-container">
|
||||||
<div id="help-container" class="uk-padding-large uk-text-center uk-text-muted uk-margin-large-left uk-margin-large-right">
|
<div id="help-container" class="uk-padding-large uk-text-center uk-text-muted uk-margin-large-left uk-margin-large-right">
|
||||||
<div>Use the three tabs to input your options for each equipment slot (head/chest/leg). Click the calculate button to populate a table with possible combinations. Click on the column headers to sort results. Use the green + to input additional items.</div>
|
<div>Use the three tabs to input your options for each equipment slot (head/chest/leg). Click the calculate button to populate a table with possible combinations. Click on the column headers to sort results.<br/><br/><strong>Ctrl+Enter</strong> adds a new row to existing table, or use the green <strong>+</strong> to input additional items.</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="equipment-container" class="uk-padding-large">
|
<div id="equipment-container" class="uk-padding-large">
|
||||||
<ul class="uk-flex-center" uk-tab>
|
<ul class="uk-flex-center" uk-tab>
|
||||||
<li class="uk-active"><a href="">Head</a></li>
|
<li class="uk-active" tbl="head-table"><a href="">Head</a></li>
|
||||||
<li><a href="">Chest</a></li>
|
<li tbl="chest-table"><a href="">Chest</a></li>
|
||||||
<li><a href="">Leg</a></li>
|
<li tbl="leg-table"><a href="">Leg</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="uk-switcher">
|
<ul class="uk-switcher">
|
||||||
{% for slot in ["Head", "Chest", "Leg"] %}
|
{% for slot in ["Head", "Chest", "Leg"] %}
|
||||||
@ -50,9 +50,9 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>1</td>
|
<td>1</td>
|
||||||
<td><input type="text" class="uk-input"/></td>
|
<td><input type="text" class="uk-input" autocomplete="off"/></td>
|
||||||
<td><input type="text" class="uk-input"/></td>
|
<td><input type="text" class="uk-input" autocomplete="off"/></td>
|
||||||
<td><input type="text" class="uk-input"/></td>
|
<td><input type="text" class="uk-input" autocomplete="off"/></td>
|
||||||
<td><a class="uk-icon-button del-row-button" uk-icon="icon:minus-circle;ratio:1"></a></td>
|
<td><a class="uk-icon-button del-row-button" uk-icon="icon:minus-circle;ratio:1"></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -97,7 +97,7 @@
|
|||||||
</body>
|
</body>
|
||||||
<script>
|
<script>
|
||||||
// Support adding rows to the equipment tables
|
// Support adding rows to the equipment tables
|
||||||
function addEquipmentTableRow() {
|
function addEquipmentTableRow(findByQuery=false) {
|
||||||
let input_element = document.createElement("input");
|
let input_element = document.createElement("input");
|
||||||
input_element.className="uk-input";
|
input_element.className="uk-input";
|
||||||
input_element.type = "text";
|
input_element.type = "text";
|
||||||
@ -108,7 +108,8 @@
|
|||||||
delete_button.setAttribute("uk-icon", "icon:minus-circle;ratio:1");
|
delete_button.setAttribute("uk-icon", "icon:minus-circle;ratio:1");
|
||||||
delete_button.addEventListener("click", deleteEquipmentTableRow, false);
|
delete_button.addEventListener("click", deleteEquipmentTableRow, false);
|
||||||
|
|
||||||
let tbody = this.parentElement.previousElementSibling.children[2];
|
// If called manually, find specific table, otherwise determine based on event element
|
||||||
|
let tbody = findByQuery ? document.querySelector(findByQuery) : this.parentElement.previousElementSibling.children[2];
|
||||||
let new_row = tbody.insertRow(-1);
|
let new_row = tbody.insertRow(-1);
|
||||||
|
|
||||||
// Append all of the child cells needed
|
// Append all of the child cells needed
|
||||||
@ -117,6 +118,11 @@
|
|||||||
new_row.insertCell(0).appendChild(input_element.cloneNode());
|
new_row.insertCell(0).appendChild(input_element.cloneNode());
|
||||||
new_row.insertCell(0).appendChild(input_element.cloneNode());
|
new_row.insertCell(0).appendChild(input_element.cloneNode());
|
||||||
new_row.insertCell(0).appendChild(document.createTextNode(tbody.children.length))
|
new_row.insertCell(0).appendChild(document.createTextNode(tbody.children.length))
|
||||||
|
|
||||||
|
if(findByQuery) {
|
||||||
|
// If this was a hotkey, then focus the new field
|
||||||
|
new_row.children[1].firstChild.focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Support deleting rows from the equipment table
|
// Support deleting rows from the equipment table
|
||||||
@ -224,6 +230,7 @@
|
|||||||
let input_element = document.createElement("input");
|
let input_element = document.createElement("input");
|
||||||
input_element.className="uk-input";
|
input_element.className="uk-input";
|
||||||
input_element.type = "text";
|
input_element.type = "text";
|
||||||
|
input_element.autocomplete = "off";
|
||||||
|
|
||||||
// Create the delete button
|
// Create the delete button
|
||||||
let delete_button = document.createElement("a");
|
let delete_button = document.createElement("a");
|
||||||
@ -271,6 +278,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function listenForHotkeys(e) {
|
||||||
|
if(e.ctrlKey && e.which == 13) {
|
||||||
|
// Determine the active tab
|
||||||
|
let tbl_id = "table#" + document.querySelector(".uk-active").getAttribute("tbl") + " > tbody";
|
||||||
|
addEquipmentTableRow(tbl_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Add event listeners to our table buttons
|
// Add event listeners to our table buttons
|
||||||
const add_row_buttons = document.querySelectorAll("a.add-row-button");
|
const add_row_buttons = document.querySelectorAll("a.add-row-button");
|
||||||
for(let button of add_row_buttons) {
|
for(let button of add_row_buttons) {
|
||||||
@ -288,6 +303,9 @@
|
|||||||
// Enable sorting for our results table
|
// Enable sorting for our results table
|
||||||
var table_sort = new Tablesort(document.querySelector("table#results-table"), {descending: true});
|
var table_sort = new Tablesort(document.querySelector("table#results-table"), {descending: true});
|
||||||
|
|
||||||
|
// Configure keyboard hotkeys
|
||||||
|
document.onkeyup = listenForHotkeys;
|
||||||
|
|
||||||
// Load any existing data from LocalStorage
|
// Load any existing data from LocalStorage
|
||||||
loadExistingData();
|
loadExistingData();
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user