operative.json added
This commit is contained in:
+21
-30
@@ -1,5 +1,5 @@
|
||||
let selectedWeapon = null; // Store the selected weapon's data
|
||||
let weapons = []; // This will be populated by the fetched JSON data
|
||||
let weapons = [];
|
||||
|
||||
// Function to fetch weapons data from JSON
|
||||
function fetchWeaponsData() {
|
||||
@@ -131,52 +131,43 @@ function applyModifiers() {
|
||||
let rpmModifier = {additive: 0, multiplicative: 1};
|
||||
let reloadTimeModifier = {additive: 0, multiplicative: 1};
|
||||
|
||||
// Apply operative buffs if selected
|
||||
if (selectedOperative) {
|
||||
selectedOperative.buffs.forEach(buff => {
|
||||
if (buff.affectedWeapons === '' || buff.affectedWeapons.includes(selectedWeapon.guntype.toUpperCase())) {
|
||||
applyBuff(buff, rpmModifier, reloadTimeModifier, damageModifier);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Collect checked modifier values
|
||||
document.querySelectorAll('#modifiers input:checked').forEach(mod => {
|
||||
const modType = mod.dataset.type;
|
||||
const modValue = parseFloat(mod.value);
|
||||
|
||||
// Handle multi-buff modifiers (like Bloxy Cola or Firefight)
|
||||
// Handle multi-buff modifiers
|
||||
if (mod.dataset.buffs) {
|
||||
const buffs = JSON.parse(mod.dataset.buffs); // Parse buffs data from the data-buffs attribute
|
||||
buffs.forEach(buff => {
|
||||
// Apply each buff
|
||||
applyBuff(buff, rpmModifier, reloadTimeModifier, damageModifier);
|
||||
});
|
||||
const buffs = JSON.parse(mod.dataset.buffs);
|
||||
buffs.forEach(buff => applyBuff(buff, rpmModifier, reloadTimeModifier, damageModifier));
|
||||
} else {
|
||||
// Handle single-buff modifiers
|
||||
const singleBuff = {
|
||||
type: modType === 'multiplicative' ? 'multiplicative' : 'additive', // Use the proper modifier type
|
||||
buffType: modType,
|
||||
value: modValue
|
||||
};
|
||||
|
||||
if (mod.id.includes('damage')) {
|
||||
singleBuff.type = 'damage'; // This mod applies to damage
|
||||
} else if (mod.id.includes('rpm')) {
|
||||
singleBuff.type = 'rpm'; // This mod applies to RPM
|
||||
} else if (mod.id.includes('reload')) {
|
||||
singleBuff.type = 'reloadTime'; // This mod applies to reload time
|
||||
}
|
||||
|
||||
// Apply the single buff
|
||||
const singleBuff = {type: modType, value: modValue};
|
||||
applyBuff(singleBuff, rpmModifier, reloadTimeModifier, damageModifier);
|
||||
}
|
||||
});
|
||||
|
||||
// Apply the damage modifiers
|
||||
let damage = baseDamage * damageModifier.multiplicative; // First apply multiplicative modifiers
|
||||
damage += damageModifier.additive; // Then apply percentage-based additive modifiers
|
||||
// Apply damage modifiers
|
||||
let damage = baseDamage * damageModifier.multiplicative;
|
||||
damage += damageModifier.additive;
|
||||
|
||||
// Apply the RPM modifiers
|
||||
// Apply RPM modifiers
|
||||
let rpm = baseRpm * rpmModifier.multiplicative;
|
||||
rpm = rpm + (rpm * rpmModifier.additive);
|
||||
|
||||
// Apply the reload time modifiers
|
||||
// Apply reload time modifiers
|
||||
let reloadTime = baseReloadTime * reloadTimeModifier.multiplicative;
|
||||
reloadTime = reloadTime + (reloadTime * reloadTimeModifier.additive);
|
||||
|
||||
// Recalculate DPS and DPM with the modified stats
|
||||
// Recalculate DPS and DPM with modified stats
|
||||
calculateDPSAndDPM(damage, rpm, selectedWeapon.mag_size, reloadTime);
|
||||
|
||||
// Update the displayed weapon stats with the modified values
|
||||
@@ -184,7 +175,6 @@ function applyModifiers() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Helper function to apply individual buffs
|
||||
function applyBuff(buff, rpmModifier, reloadTimeModifier, damageModifier = null) {
|
||||
const {type, buffType, value} = buff;
|
||||
@@ -236,3 +226,4 @@ function updateModifiedWeaponStats(damage, rpm, reloadTime) {
|
||||
// Call the fetch function to load the data and populate the dropdown on page load
|
||||
fetchWeaponsData();
|
||||
fetchModifiers();
|
||||
fetchOperativesData();
|
||||
+14
-14
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"operatives": [
|
||||
{
|
||||
"id": "Classic-Guard",
|
||||
"id": 1,
|
||||
"name": "Guard",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -14,7 +14,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-Scout",
|
||||
"id": 2,
|
||||
"name": "Scout",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -27,7 +27,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-RCU",
|
||||
"id": 3,
|
||||
"name": "RCU",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -40,7 +40,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-Viper",
|
||||
"id": 4,
|
||||
"name": "Viper",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -53,7 +53,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-SD-Sergeant",
|
||||
"id": 5,
|
||||
"name": "SD Sergeant",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -66,7 +66,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-ISD",
|
||||
"id": 6,
|
||||
"name": "ISD",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -79,7 +79,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-TRU",
|
||||
"id": 7,
|
||||
"name": "TRU",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -92,7 +92,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-SD-Captain",
|
||||
"id": 8,
|
||||
"name": "SD Captain",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -105,7 +105,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-Vanguard",
|
||||
"id": 9,
|
||||
"name": "Vanguard",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -139,7 +139,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-Demolitionist",
|
||||
"id": 10,
|
||||
"name": "Demolitionist",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -152,7 +152,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-Juggernaut",
|
||||
"id": 11,
|
||||
"name": "Juggernaut",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -165,7 +165,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-Mercenary",
|
||||
"id": 12,
|
||||
"name": "Mercenary",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -195,7 +195,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-CRT",
|
||||
"id": 13,
|
||||
"name": "CRT",
|
||||
"buffs": [
|
||||
{
|
||||
@@ -208,7 +208,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Classic-Anarchist",
|
||||
"id": 14,
|
||||
"name": "Anarchist",
|
||||
"buffs": [
|
||||
{
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/x-icon" href="/static/img/TRL_Logo_Custom.jpg">
|
||||
@@ -68,6 +67,7 @@
|
||||
<!-- Modifier Checkboxes -->
|
||||
<div id="modifiers"></div>
|
||||
|
||||
|
||||
<script src="{{ url_for('static', filename='filterWeapons.js') }}"></script>
|
||||
</main>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user