From ddfb34a9f8213d196c66feef6b6274c742f0436b Mon Sep 17 00:00:00 2001 From: okvdai <108829133+okvdai@users.noreply.github.com> Date: Wed, 7 Jun 2023 19:15:14 +0200 Subject: [PATCH] Change to Thunderstore template For easier publishing to both platforms --- icon.png | Bin 0 -> 53440 bytes manifest.json | 7 ++ mods/ToneAPI.pulse/README.md | 80 ++++++++++++++++++ mod.json => mods/ToneAPI.pulse/mod.json | 0 .../resource/ui/menus/viewstats_maps.menu | 0 .../resource/ui/menus/viewstats_overview.menu | 0 .../resource/ui/menus/viewstats_weapons.menu | 0 .../scripts/vscripts/pulse-common-func.gnut | 6 +- .../mod}/scripts/vscripts/pulse.gnut | 2 +- .../mod}/scripts/vscripts/ui/menu_lobby.nut | 0 .../scripts/vscripts/ui/menu_stats_maps.nut | 4 +- .../vscripts/ui/menu_stats_overview.nut | 0 .../scripts/vscripts/ui/menu_stats_time.nut | 0 .../scripts/vscripts/ui/menu_stats_titans.nut | 0 .../vscripts/ui/menu_stats_utility.nut | 0 .../vscripts/ui/menu_stats_weapons.nut | 0 16 files changed, 92 insertions(+), 7 deletions(-) create mode 100644 icon.png create mode 100644 manifest.json create mode 100644 mods/ToneAPI.pulse/README.md rename mod.json => mods/ToneAPI.pulse/mod.json (100%) rename {mod => mods/ToneAPI.pulse/mod}/resource/ui/menus/viewstats_maps.menu (100%) rename {mod => mods/ToneAPI.pulse/mod}/resource/ui/menus/viewstats_overview.menu (100%) rename {mod => mods/ToneAPI.pulse/mod}/resource/ui/menus/viewstats_weapons.menu (100%) rename {mod => mods/ToneAPI.pulse/mod}/scripts/vscripts/pulse-common-func.gnut (92%) rename {mod => mods/ToneAPI.pulse/mod}/scripts/vscripts/pulse.gnut (96%) rename {mod => mods/ToneAPI.pulse/mod}/scripts/vscripts/ui/menu_lobby.nut (100%) rename {mod => mods/ToneAPI.pulse/mod}/scripts/vscripts/ui/menu_stats_maps.nut (98%) rename {mod => mods/ToneAPI.pulse/mod}/scripts/vscripts/ui/menu_stats_overview.nut (100%) rename {mod => mods/ToneAPI.pulse/mod}/scripts/vscripts/ui/menu_stats_time.nut (100%) rename {mod => mods/ToneAPI.pulse/mod}/scripts/vscripts/ui/menu_stats_titans.nut (100%) rename {mod => mods/ToneAPI.pulse/mod}/scripts/vscripts/ui/menu_stats_utility.nut (100%) rename {mod => mods/ToneAPI.pulse/mod}/scripts/vscripts/ui/menu_stats_weapons.nut (100%) diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..081973f05aeac51b824701a0bed70c1e4c98ba74 GIT binary patch literal 53440 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 P00000NkvXXu0mjf0=E#6 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..af52acd --- /dev/null +++ b/manifest.json @@ -0,0 +1,7 @@ +{ + "name": "Pulse", + "description": "Pulse is a clientside mod for Titanfall 2 letting you view killstats collected by the Tone API using the otherwise non-functional Stats tab.", + "version_number": "2.0.0", + "website_url": "https://github.com/ToneAPI/pulse", + "dependencies": [] +} \ No newline at end of file diff --git a/mods/ToneAPI.pulse/README.md b/mods/ToneAPI.pulse/README.md new file mode 100644 index 0000000..28d57de --- /dev/null +++ b/mods/ToneAPI.pulse/README.md @@ -0,0 +1,80 @@ +# Pulse + +Pulse is a clientside mod for [TF|2 + Northstar](https://github.com/R2Northstar/Northstar) letting you view killstats collected by [the Tone API](https://toneapi.github.io/ToneAPI_webclient/) using the otherwise non-functional `Stats` tab. + +## Currently, features include: +- mostly functional `Overview` tab, +- functional `Time` tab, +- Pilot weapon data displayed in `Pilot Weapons` tab, +- Titan kills displayed in `Titans` tab, +- functional `Maps` tab, +- real-time updates. + +Want to know what we have planned for future updates? See [here.](https://github.com/ToneAPI/pulse/projects?query=is%3Aopen) + +Found a bug? Make an issue on GitHub [here.](https://github.com/ToneAPI/pulse/issues/new) + +
+Features, more in-depth: + +### `Overview` +- Most Kills - shows the weapon with most accumulated kills. +- Nemesis Weapon - shows the weapon that has killed you the most. +- Most Effective - shows weapon with the highest K/D ratio. +- Kill/Death Ratio - shows the overall K/D ratio of player compared to global K/D. +- Kills as Pilot - shows general kill data for player as Pilot, visualised in the table below: + + | Name | Description | + |--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Pilots |Shows **ALL KILLS** accumulated by player as Pilot. Differentiating Pilot and Titan kills will come in a later Tone API update.| + | Titans |Non-functional, see line above.| + | AI kills |Non-functional, Tone API does not collect AI kill data.| + | Pilot melee kills |Shows only melee kills accumulated by player as Pilot.| + | Pilot executions |Shows only executions accumulated by player as Pilot.| + +- Kills as Titan - shows general kill data for player as Titan, visualised in the table below: + + | Name | Description | + |--------------------|------------------------------------------------------| + | Pilots |Shows **ALL KILLS** accumulated by player as Titan. Differentiating Pilot and Titan kills will come in a later Tone API update.| + | Titans |Non-functional, see line above.| + | Titan executions |Shows only executions accumulated by player as Titan.| + | Pilots meleed |Shows only melee kills accumulated by player as Titan.| + | Pilot roadkills |Shows only roadkills accumulated by player as Titan.| + +- Upper statbox values have been zeroed out, these don't yet work and are set to 0 to avoid confusion. + +### `Time` + +- Kills by Class shows kills by Pilot and Titan on a piechart. +- Kills by Titan shows kills by all Titan classes on a piechart. +- Kills by Gamemode shows kills on each gamemode played on a piechart. + +### `Pilot Weapons` + +- shows total accumulated kills per weapon under Total Kills. +- shows deaths with given weapon equipped under Deaths with Weapon. + +### `Titans` + +- shows total accumulated kills per Titan under Total Kills. + +### `Maps` + +- Player Map Stats - shows general data for player on chosen map, visualised in the table below: + + | Name | Description | + |-----------------------|------------------------------------------------------- | + | Kills on Map |Shows all kills accumulated by player on chosen map.| + | Deaths on Map |Shows all deaths accumulated by player on chosen map.| + | Total Shot Distance |Shows total distance of kills accumulated by player on chosen map.| + | Maximum Shot Distance |Shows highest distance kill by player on chosen map.| + +- Kills by Gamemode - piechart showing all kills (in percent) on chosen map by gamemode. +
+ +## DISCLAIMER + +The Tone API is NOT used by every server, view a list of supported servers [here.](https://tone.sleepycat.date/v2/client/servers) + +Pulse is very much a W.I.P as of right now, features may be missing/nonfunctional. diff --git a/mod.json b/mods/ToneAPI.pulse/mod.json similarity index 100% rename from mod.json rename to mods/ToneAPI.pulse/mod.json diff --git a/mod/resource/ui/menus/viewstats_maps.menu b/mods/ToneAPI.pulse/mod/resource/ui/menus/viewstats_maps.menu similarity index 100% rename from mod/resource/ui/menus/viewstats_maps.menu rename to mods/ToneAPI.pulse/mod/resource/ui/menus/viewstats_maps.menu diff --git a/mod/resource/ui/menus/viewstats_overview.menu b/mods/ToneAPI.pulse/mod/resource/ui/menus/viewstats_overview.menu similarity index 100% rename from mod/resource/ui/menus/viewstats_overview.menu rename to mods/ToneAPI.pulse/mod/resource/ui/menus/viewstats_overview.menu diff --git a/mod/resource/ui/menus/viewstats_weapons.menu b/mods/ToneAPI.pulse/mod/resource/ui/menus/viewstats_weapons.menu similarity index 100% rename from mod/resource/ui/menus/viewstats_weapons.menu rename to mods/ToneAPI.pulse/mod/resource/ui/menus/viewstats_weapons.menu diff --git a/mod/scripts/vscripts/pulse-common-func.gnut b/mods/ToneAPI.pulse/mod/scripts/vscripts/pulse-common-func.gnut similarity index 92% rename from mod/scripts/vscripts/pulse-common-func.gnut rename to mods/ToneAPI.pulse/mod/scripts/vscripts/pulse-common-func.gnut index 83d1bf0..8d9d81b 100644 --- a/mod/scripts/vscripts/pulse-common-func.gnut +++ b/mods/ToneAPI.pulse/mod/scripts/vscripts/pulse-common-func.gnut @@ -21,10 +21,8 @@ bool function pulseRequestData(string givenURL, table parameterTable, string tab table DecodedJSON = DecodeJSON(response.body) if ("map" in parameterTable) { - table map - map[expect string(parameterTable["map"])] <- DecodedJSON - pulsePrintt(tablepath) - pulseData[tablepath] <- map + string mapName = expect string(parameterTable["map"]) + pulseData[tablepath] <- {mapName = DecodedJSON} } else { pulseData[tablepath] <- DecodedJSON } diff --git a/mod/scripts/vscripts/pulse.gnut b/mods/ToneAPI.pulse/mod/scripts/vscripts/pulse.gnut similarity index 96% rename from mod/scripts/vscripts/pulse.gnut rename to mods/ToneAPI.pulse/mod/scripts/vscripts/pulse.gnut index 9a9d1d2..cd67e04 100644 --- a/mod/scripts/vscripts/pulse.gnut +++ b/mods/ToneAPI.pulse/mod/scripts/vscripts/pulse.gnut @@ -21,7 +21,7 @@ void function pulseGetData() pulseRequestData(URL + URLpath[0], {["player"] = NSGetLocalPlayerUID()}, tablepath[0]) pulseRequestData(URL + URLpath[1], {["player"] = "!" + NSGetLocalPlayerUID()}, tablepath[1]) pulseRequestData(URL + URLpath[2], {["player"] = NSGetLocalPlayerUID()}, tablepath[2]) - foreach (map in file.allMaps) + foreach (string map in file.allMaps) { pulseRequestData(URL + URLpath[3], {["player"] = NSGetLocalPlayerUID(), ["map"] = map.slice(3)}, tablepath[3]) } diff --git a/mod/scripts/vscripts/ui/menu_lobby.nut b/mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_lobby.nut similarity index 100% rename from mod/scripts/vscripts/ui/menu_lobby.nut rename to mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_lobby.nut diff --git a/mod/scripts/vscripts/ui/menu_stats_maps.nut b/mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_maps.nut similarity index 98% rename from mod/scripts/vscripts/ui/menu_stats_maps.nut rename to mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_maps.nut index 974d378..e6bef01 100644 --- a/mod/scripts/vscripts/ui/menu_stats_maps.nut +++ b/mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_maps.nut @@ -191,7 +191,7 @@ void function UpdateStatsForMap( string mapName ) for ( int modeId = 0; modeId < enumCount; modeId++ ) { string modeName = PersistenceGetEnumItemNameForIndex( "gameModes", modeId ) - if ( mapName in pulseData && modeName in pulseData[mapName] ) + if (mapName in pulseData["gamemodesSeparated"]) { float modePlayedTime = 0 modePlayedTime = float(pulseParse(mapName, "gamemodesSeparated", modeName, "kills")) @@ -202,7 +202,7 @@ void function UpdateStatsForMap( string mapName ) } foreach (string key, array value in customGamemodeList) { - if ( mapName in pulseData && key in pulseData[mapName]) + if (mapName in pulseData["gamemodesSeparated"]) { float modePlayedTime = 0 modePlayedTime = float(pulseParse(mapName, "gamemodesSeparated", key, "kills")) diff --git a/mod/scripts/vscripts/ui/menu_stats_overview.nut b/mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_overview.nut similarity index 100% rename from mod/scripts/vscripts/ui/menu_stats_overview.nut rename to mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_overview.nut diff --git a/mod/scripts/vscripts/ui/menu_stats_time.nut b/mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_time.nut similarity index 100% rename from mod/scripts/vscripts/ui/menu_stats_time.nut rename to mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_time.nut diff --git a/mod/scripts/vscripts/ui/menu_stats_titans.nut b/mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_titans.nut similarity index 100% rename from mod/scripts/vscripts/ui/menu_stats_titans.nut rename to mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_titans.nut diff --git a/mod/scripts/vscripts/ui/menu_stats_utility.nut b/mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_utility.nut similarity index 100% rename from mod/scripts/vscripts/ui/menu_stats_utility.nut rename to mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_utility.nut diff --git a/mod/scripts/vscripts/ui/menu_stats_weapons.nut b/mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_weapons.nut similarity index 100% rename from mod/scripts/vscripts/ui/menu_stats_weapons.nut rename to mods/ToneAPI.pulse/mod/scripts/vscripts/ui/menu_stats_weapons.nut