changed the way how data.json is called
This commit is contained in:
@@ -3,42 +3,12 @@ import json
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
# Load the data from the JSON file
|
||||
with open('static/json/data.json') as f:
|
||||
guns = json.load(f)
|
||||
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
return render_template('index.html')
|
||||
|
||||
|
||||
@app.route('/api/guns', methods=['GET'])
|
||||
def get_guns():
|
||||
updated_guns = []
|
||||
for gun in guns:
|
||||
original_damage = gun['damage']
|
||||
# Calculate RPS, DPS, DPM, avgDPS
|
||||
rps = gun['rpm'] / 60
|
||||
dps = original_damage * rps
|
||||
reload_time_min = gun['reload_time'] / 60
|
||||
dpm = (gun['mag_size'] * original_damage) / (reload_time_min + (gun['mag_size'] / gun['rpm']))
|
||||
avg_dps = dpm / 60
|
||||
total_damage = original_damage * gun['damage_multiplier']
|
||||
|
||||
# Add calculated stats to the gun data
|
||||
gun.update({
|
||||
'total_damage': total_damage,
|
||||
'rps': rps,
|
||||
'dps': dps,
|
||||
'dpm': dpm,
|
||||
'avg_dps': avg_dps
|
||||
})
|
||||
updated_guns.append(gun)
|
||||
|
||||
return jsonify(updated_guns)
|
||||
|
||||
|
||||
@app.route('/calculator')
|
||||
def calculator():
|
||||
return render_template('calculator.html')
|
||||
|
||||
+23
-3
@@ -1,8 +1,28 @@
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
fetch('/api/guns')
|
||||
fetch('/static/json/data.json') // Fetch the JSON file directly
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
populateTable(data);
|
||||
const updatedGuns = data.map(gun => {
|
||||
const original_damage = gun['damage'];
|
||||
const rps = gun['rpm'] / 60;
|
||||
const dps = original_damage * rps;
|
||||
const reload_time_min = gun['reload_time'] / 60;
|
||||
const dpm = (gun['mag_size'] * original_damage) / (reload_time_min + (gun['mag_size'] / gun['rpm']));
|
||||
const avg_dps = dpm / 60;
|
||||
const total_damage = original_damage * gun['damage_multiplier'];
|
||||
|
||||
// Add the calculated stats to the gun object
|
||||
return {
|
||||
...gun,
|
||||
total_damage: total_damage,
|
||||
rps: rps,
|
||||
dps: dps,
|
||||
dpm: dpm,
|
||||
avg_dps: avg_dps
|
||||
};
|
||||
});
|
||||
|
||||
populateTable(updatedGuns);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -13,7 +33,7 @@ function populateTable(data) {
|
||||
const row = table.insertRow();
|
||||
row.insertCell(0).innerText = gun.id;
|
||||
row.insertCell(1).innerText = gun.name;
|
||||
row.insertCell(2).innerText = gun.total_damage;
|
||||
row.insertCell(2).innerText = gun.total_damage.toFixed(2);
|
||||
row.insertCell(3).innerText = gun.rpm;
|
||||
row.insertCell(4).innerText = gun.mag_size;
|
||||
row.insertCell(5).innerText = gun.reload_time;
|
||||
|
||||
@@ -26,6 +26,22 @@
|
||||
dropdownContent.style.display = "block";
|
||||
}
|
||||
}
|
||||
|
||||
// Collapsible functionality for perks, buffs, etc.
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var coll = document.getElementsByClassName("collapsible-header");
|
||||
for (var i = 0; i < coll.length; i++) {
|
||||
coll[i].addEventListener("click", function() {
|
||||
this.classList.toggle("active");
|
||||
var content = this.nextElementSibling;
|
||||
if (content.style.display === "block") {
|
||||
content.style.display = "none";
|
||||
} else {
|
||||
content.style.display = "block";
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<header>
|
||||
|
||||
Reference in New Issue
Block a user