From 377f69859bf0dd00e886fec310d56cf99391867d Mon Sep 17 00:00:00 2001 From: ScrawnyRonnie Date: Fri, 22 Mar 2024 12:37:25 -0400 Subject: [PATCH] Vehicles --- api/db.js | 2 +- app/statFunctions.js | 171 ++++++++++++----------------------- app/views/Avatar.svelte | 30 +++++- app/views/Leaderboard.svelte | 1 + 4 files changed, 89 insertions(+), 115 deletions(-) diff --git a/api/db.js b/api/db.js index 91ee713..8b9de04 100644 --- a/api/db.js +++ b/api/db.js @@ -399,7 +399,7 @@ export async function get_top_kills_byDate() { ' killer_id, DATE(timestamp) AS kill_date, ROW_NUMBER() OVER (PARTITION BY killer_id ORDER BY COUNT(*) DESC)::int AS row_num' + ' FROM killactivity GROUP BY killer_id, DATE(timestamp)) SELECT rk.kill_count, rk.killer_id,' + " TO_CHAR(rk.kill_date, 'FMMon DD, YYYY') AS f_kill_date, rk.row_num, av.name, av.faction_id FROM RankedKills rk" + - ' JOIN avatar av ON rk.killer_id = av.id WHERE rk.row_num = 1 ORDER BY rk.kill_count DESC LIMIT 30') + ' JOIN avatar av ON rk.killer_id = av.id WHERE rk.row_num = 1 ORDER BY rk.kill_count DESC LIMIT 50') return kills.rows; } catch (e) { if (e.code) diff --git a/app/statFunctions.js b/app/statFunctions.js index 4eb119b..d81ae76 100644 --- a/app/statFunctions.js +++ b/app/statFunctions.js @@ -107,89 +107,20 @@ } export const weaponNames = [ -{ id: 2, name: '12mm_chaingun type weapon' }, -{ id: 8, name: '15mm_chaingun type weapon' }, -{ id: 12, name: '20mm_cannon type weapon' }, -{ id: 13, name: '20mm_cannon_deliverer type weapon' }, -{ id: 14, name: '20mm_cannon_dropship type weapon' }, -{ id: 15, name: '20mm_cannon_dropship_l type weapon' }, -{ id: 23, name: '75mm_cannon type weapon' }, -{ id: 24, name: '75mm_lightning type weapon' }, -{ id: 32, name: 'ace type weapon' }, -{ id: 33, name: 'ace_deployable type weapon' }, -{ id: 39, name: 'advanced_ace type weapon' }, -{ id: 40, name: 'advanced_missile_launcher_t type weapon' }, { id: 55, name: 'Spear' }, { id: 56, name: 'Stinger' }, { id: 57, name: 'Eraser' }, -{ id: 63, name: 'apc_ballgun_l type weapon' }, -{ id: 64, name: 'apc_ballgun_r type weapon' }, -{ id: 69, name: 'apc_weapon_systema type weapon' }, -{ id: 70, name: 'apc_weapon_systemb type weapon' }, -{ id: 71, name: 'apc_weapon_systemc type weapon' }, -{ id: 72, name: 'apc_weapon_systemc_nc type weapon' }, -{ id: 73, name: 'apc_weapon_systemc_tr type weapon' }, -{ id: 74, name: 'apc_weapon_systemc_vs type weapon' }, -{ id: 75, name: 'apc_weapon_systemd type weapon' }, -{ id: 76, name: 'apc_weapon_systemd_nc type weapon' }, -{ id: 77, name: 'apc_weapon_systemd_tr type weapon' }, -{ id: 78, name: 'apc_weapon_systemd_vs type weapon' }, -{ id: 85, name: 'aphelion_immolation_cannon type weapon' }, -{ id: 88, name: 'aphelion_laser type weapon' }, -{ id: 90, name: 'aphelion_laser_left type weapon' }, -{ id: 92, name: 'aphelion_laser_right type weapon' }, -{ id: 98, name: 'aphelion_plasma_rocket_pod type weapon' }, -{ id: 100, name: 'aphelion_ppa type weapon' }, -{ id: 102, name: 'aphelion_ppa_left type weapon' }, -{ id: 104, name: 'aphelion_ppa_right type weapon' }, -{ id: 105, name: 'aphelion_starfire type weapon' }, -{ id: 107, name: 'aphelion_starfire_left type weapon' }, -{ id: 109, name: 'aphelion_starfire_right type weapon' }, -{ id: 119, name: 'aurora_weapon_systema type weapon' }, -{ id: 120, name: 'aurora_weapon_systemb type weapon' }, -{ id: 136, name: 'battlewagon_weapon_systema type weapon' }, -{ id: 137, name: 'battlewagon_weapon_systemb type weapon' }, -{ id: 138, name: 'battlewagon_weapon_systemc type weapon' }, -{ id: 139, name: 'battlewagon_weapon_systemd type weapon' }, { id: 140, name: 'Beamer' }, { id: 146, name: 'Bolt Driver' }, +{ id: 148, name: 'Boomer' }, { id: 175, name: 'Knife (TR)' }, { id: 177, name: 'chaingun_p type weapon' }, -{ id: 185, name: 'colossus_burster type weapon' }, -{ id: 187, name: 'colossus_burster_left type weapon' }, -{ id: 189, name: 'colossus_burster_right type weapon' }, -{ id: 190, name: 'colossus_chaingun type weapon' }, -{ id: 192, name: 'colossus_chaingun_left type weapon' }, -{ id: 194, name: 'colossus_chaingun_right type weapon' }, -{ id: 196, name: 'colossus_cluster_bomb_pod type weapon' }, -{ id: 198, name: 'colossus_dual_100mm_cannons type weapon' }, -{ id: 204, name: 'colossus_tank_cannon type weapon' }, -{ id: 206, name: 'colossus_tank_cannon_left type weapon' }, -{ id: 208, name: 'colossus_tank_cannon_right type weapon' }, { id: 233, name: 'Cycler' }, -{ id: 234, name: 'cycler_v2 type weapon' }, -{ id: 235, name: 'cycler_v3 type weapon' }, -{ id: 236, name: 'cycler_v4 type weapon' }, -{ id: 262, name: 'dropship_rear_turret type weapon' }, -{ id: 274, name: 'energy_gun type weapon' }, -{ id: 276, name: 'energy_gun_nc type weapon' }, -{ id: 278, name: 'energy_gun_tr type weapon' }, -{ id: 280, name: 'energy_gun_vs type weapon' }, -{ id: 298, name: 'flail_weapon type weapon' }, { id: 299, name: 'Dragon' }, { id: 304, name: 'Sweeper' }, -{ id: 306, name: 'flux_cannon_thresher type weapon' }, -{ id: 309, name: 'fluxpod type weapon' }, { id: 324, name: 'Knife (VS)' }, { id: 334, name: 'Frag Grenade' }, -{ id: 336, name: 'fury_weapon_systema type weapon' }, -{ id: 339, name: 'galaxy_gunship_cannon type weapon' }, -{ id: 340, name: 'galaxy_gunship_gun type weapon' }, -{ id: 342, name: 'galaxy_gunship_tailgun type weapon' }, { id: 345, name: 'Gauss' }, -{ id: 346, name: 'gauss_cannon type weapon' }, -{ id: 371, name: 'grenade_launcher_marauder type weapon' }, -{ id: 394, name: 'heavy_rail_beam_magrider type weapon' }, { id: 396, name: 'Heavy Scout Rifle' }, { id: 398, name: 'hellfire type weapon' }, { id: 406, name: 'Phoenix' }, @@ -198,73 +129,89 @@ export const weaponNames = [ { id: 421, name: 'katana type weapon' }, { id: 425, name: 'Lancer' }, { id: 429, name: 'Lasher' }, -{ id: 433, name: 'liberator_25mm_cannon type weapon' }, -{ id: 435, name: 'liberator_bomb_bay type weapon' }, -{ id: 440, name: 'iberator_weapon_system type weapon' }, -{ id: 445, name: 'lightgunship_weapon_system type weapon' }, -{ id: 448, name: 'lightning_weapon_system type weapon' }, { id: 462, name: 'Maelstrom' }, { id: 468, name: 'Knife (NC)' }, -{ id: 534, name: 'mediumtransport_weapon_systemA type weapon' }, -{ id: 535, name: 'mediumtransport_weapon_systemB type weapon' }, { id: 556, name: 'Mini-Chaingun' }, { id: 587, name: 'Falcon MAX' }, { id: 588, name: 'Scattercannon MAX' }, { id: 589, name: 'Sparrow MAX' }, { id: 599, name: 'Scorpion' }, -{ id: 628, name: 'particle_beam_magrider type weapon' }, -{ id: 629, name: 'pellet_gun type weapon' }, -{ id: 636, name: 'peregrine_dual_machine_gun type weapon' }, -{ id: 638, name: 'peregrine_dual_machine_gun_left type weapon' }, -{ id: 640, name: 'peregrine_dual_machine_gun_right type weapon' }, -{ id: 641, name: 'peregrine_dual_rocket_pods type weapon' }, -{ id: 644, name: 'peregrine_mechhammer type weapon' }, -{ id: 646, name: 'peregrine_mechhammer_left type weapon' }, -{ id: 648, name: 'peregrine_mechhammer_right type weapon' }, -{ id: 652, name: 'peregrine_particle_cannon type weapon' }, -{ id: 658, name: 'peregrine_sparrow type weapon' }, -{ id: 660, name: 'peregrine_sparrow_left type weapon' }, -{ id: 662, name: 'peregrine_sparrow_right type weapon' }, -{ id: 666, name: 'phalanx_avcombo type weapon' }, -{ id: 668, name: 'phalanx_flakcombo type weapon' }, -{ id: 670, name: 'phalanx_sgl_hevgatcan type weapon' }, -{ id: 672, name: 'phantasm_12mm_machinegun type weapon' }, { id: 673, name: 'Decimator' }, { id: 680, name: 'Plasma Grenade' }, -{ id: 699, name: 'prowler_weapon_systemA type weapon' }, -{ id: 700, name: 'prowler_weapon_systemB type weapon' }, { id: 701, name: 'Pulsar' }, -{ id: 705, name: 'pulsed_particle_accelerator type weapon' }, { id: 706, name: 'Punisher' }, -{ id: 709, name: 'quadassault_weapon_system type weapon' }, { id: 714, name: 'Jackhammer' }, { id: 716, name: 'Radiator' }, { id: 730, name: 'Repeater' }, { id: 737, name: 'Rocklet Rifle' }, -{ id: 740, name: 'rotarychaingun_mosquito type weapon' }, -{ id: 743, name: 'router_telepad type weapon' }, { id: 747, name: 'scythe type weapon' }, { id: 761, name: 'six_shooter type weapon' }, -{ id: 788, name: 'skyguard_weapon_system type weapon' }, { id: 817, name: 'Spiker' }, -{ id: 822, name: 'spitfire_aa_weapon type weapon' }, -{ id: 827, name: 'spitfire_weapon type weapon' }, { id: 838, name: 'Striker' }, { id: 845, name: 'Suppressor' }, { id: 864, name: 'Thumper' }, -{ id: 866, name: 'thunderer_weapon_systema type weapon' }, -{ id: 867, name: 'thunderer_weapon_systemb type weapon' }, { id: 888, name: 'Burster MAX' }, { id: 889, name: 'Dual Cycler MAX' }, { id: 890, name: 'Pounder MAX' }, -{ id: 927, name: 'vanguard_weapon_system type weapon' }, -{ id: 945, name: 'vanu_sentry_turret_weapon type weapon' }, { id: 968, name: 'Comet MAX' }, { id: 969, name: 'Quasar MAX' }, { id: 970, name: 'Starfire MAX' }, -{ id: 987, name: 'vulture_bomb_bay type weapon' }, -{ id: 990, name: 'vulture_nose_weapon_system type weapon' }, -{ id: 992, name: 'vulture_tail_cannon type weapon' }, -{ id: 1002, name: 'wasp_weapon_system type weapon' }, -{ id: 1003, name: 'winchester type weapon' } +{ id: 1003, name: 'winchester type weapon' }, +{ id: 46, name: 'AMS' }, +{ id: 60, name: 'ANT' }, +{ id: 62, name: 'BIG BUS' }, +{ id: 66, name: 'Vindicator' }, +{ id: 67, name: 'Juggernaut' }, +{ id: 68, name: 'Leviathan' }, +{ id: 79, name: 'Aphelion' }, +{ id: 83, name: 'Eclipse' }, +{ id: 84, name: 'Aphelion' }, +{ id: 118, name: 'Aurora' }, +{ id: 135, name: 'Battlewagon?' }, +{ id: 179, name: 'Colossus' }, +{ id: 199, name: 'Invader' }, +{ id: 200, name: 'Colossus' }, +{ id: 239, name: 'Deliverer' }, +{ id: 259, name: 'Dropship?' }, +{ id: 294, name: 'Flail' }, +{ id: 335, name: 'Fury' }, +{ id: 338, name: 'Galaxy Gunship' }, +{ id: 353, name: 'BFR' }, +{ id: 432, name: 'Liberator' }, +{ id: 441, name: 'Light Gunship?' }, +{ id: 446, name: 'Lightning' }, +{ id: 459, name: 'Lodestar' }, +{ id: 470, name: 'Magrider' }, +{ id: 480, name: 'Manned Turret' }, +{ id: 532, name: 'Medium Transport?' }, +{ id: 572, name: 'Mosquito' }, +{ id: 632, name: 'Peregrine' }, +{ id: 642, name: 'Eagle' }, +{ id: 643, name: 'Peregrine' }, +{ id: 671, name: 'Phantasm' }, +{ id: 685, name: 'Manned Field Turret' }, +{ id: 686, name: 'Osprey' }, +{ id: 687, name: 'Avenger' }, +{ id: 688, name: 'Orion' }, +{ id: 697, name: 'Prowler' }, +{ id: 707, name: 'Basilisk' }, +{ id: 710, name: 'Wraith' }, +{ id: 741, name: 'Router' }, +{ id: 759, name: 'Shuttle' }, +{ id: 784, name: 'Skyguard' }, +{ id: 819, name: 'Cerebus Turret' }, +{ id: 825, name: 'Shadow Turret' }, +{ id: 826, name: 'Spitfire Turret' }, +{ id: 847, name: 'Switchblade' }, +{ id: 849, name: 'Trap' }, +{ id: 860, name: 'Testobject?' }, +{ id: 862, name: 'Three Man Heavy Buggy?' }, +{ id: 865, name: 'Thunderer' }, +{ id: 896, name: 'Two Man Buggy?' }, +{ id: 898, name: 'Two Man Heavy Buggy?' }, +{ id: 900, name: 'Two Man Hover Buggy?' }, +{ id: 923, name: 'Vanguard' }, +{ id: 943, name: 'Sentry Turret' }, +{ id: 986, name: 'Vulture' }, +{ id: 997, name: 'Wasp' } ] \ No newline at end of file diff --git a/app/views/Avatar.svelte b/app/views/Avatar.svelte index 255898b..97ff65d 100644 --- a/app/views/Avatar.svelte +++ b/app/views/Avatar.svelte @@ -14,9 +14,11 @@ export let params; let iWeapons = []; + let vehicles = []; let alert; let avatar = {}; let iWeaponsKillsSum + let vehicleKillsSum let kdByDate = []; let url = params.id || avatar.id let face; @@ -58,7 +60,7 @@ async function get_iWeaponStats() { try { - const ids = [55, 56, 57, 140, 146, 175, 233, 299, 304, 324, 334, 345, 396, 406, + const ids = [55, 56, 57, 140, 146, 148, 175, 233, 299, 304, 324, 334, 345, 396, 406, 407, 411, 425, 429, 462, 468, 556, 587, 588, 589, 599, 673, 680, 701, 706, 714, 716, 730, 737, 817, 838, 845, 864, 888, 889, 890, 968, 969, 970]; const resp = await axios.get(weaponstatsUrl); @@ -92,6 +94,16 @@ iWeapons = filteredWeapons; iWeaponsKillsSum = iWeapons.reduce((total, weapon) => total + weapon.kills, 0); + + const vIds = [46, 60, 62, 66, 67, 68, 79, 83, 84, 118, 135, 179, 199, 200, 239, 259, 294, 335, 338, + 353, 432, 441, 446, 459, 470, 480, 532, 572, 632, 642, 643, 671, 685, 686, 687, 688, 697, + 707, 710, 741, 759, 784, 819, 825, 826, 847, 849, 860, 862, 865, 896, 898, 900, 923, 943, 986, 997]; + const filteredVehicles = stats.weapons.filter(weapon => { + return vIds.includes(weapon.weapon_id); + }); + + vehicles = filteredVehicles; + vehicleKillsSum = vehicles.reduce((total, weapon) => total + weapon.kills, 0); // Reset alert message if needed alert.message(""); } catch (e) { @@ -163,7 +175,21 @@ {/each} -
+Kills by Vehicle - Total: {vehicleKillsSum} + + + + + + + {#each vehicles as veh} + + + + + {/each} + +
VehicleKills
{getWeaponName(veh.weapon_id)}{veh.kills}
Daily Stats diff --git a/app/views/Leaderboard.svelte b/app/views/Leaderboard.svelte index 2b4460e..0dff3e0 100644 --- a/app/views/Leaderboard.svelte +++ b/app/views/Leaderboard.svelte @@ -167,6 +167,7 @@
+ Top 50 Characters Most Daily Kills
#