Make use of "Time" tab #16
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
global function pulseInit
|
global function pulseInit
|
||||||
global function GetWeaponStatsFromToneAPI
|
global function GetWeaponStatsFromToneAPI
|
||||||
global function GetMapStatsFromToneAPI
|
global function GetMapStatsFromToneAPI
|
||||||
|
global function GetGamemodeStatsFromToneAPI
|
||||||
global function getWeaponKillsFromToneAPI
|
global function getWeaponKillsFromToneAPI
|
||||||
global function getNemesisWeaponFromToneAPI
|
global function getNemesisWeaponFromToneAPI
|
||||||
global function getDWEFromToneAPI
|
global function getDWEFromToneAPI
|
||||||
@@ -17,12 +18,14 @@ global table globalToneAPIMapDeathData = {}
|
|||||||
global table globalToneAPIMapDistData = {}
|
global table globalToneAPIMapDistData = {}
|
||||||
global table globalToneAPIMapKillData = {}
|
global table globalToneAPIMapKillData = {}
|
||||||
global table globalToneAPIMapMDistData = {}
|
global table globalToneAPIMapMDistData = {}
|
||||||
|
global table globalToneAPIGamemodeData = {}
|
||||||
global table< table > globalToneAPIGamemodeMapData = {}
|
global table< table > globalToneAPIGamemodeMapData = {}
|
||||||
|
|
||||||
string prefix = "default"
|
string prefix = "default"
|
||||||
string HTTPrequestURL = "default"
|
string HTTPrequestURL = "default"
|
||||||
int weaponEntries = 0
|
int weaponEntries = 0
|
||||||
int mapEntries = 0
|
int mapEntries = 0
|
||||||
|
int gamemodeEntries = 0
|
||||||
int mapGamemodeEntries = 0
|
int mapGamemodeEntries = 0
|
||||||
|
|
||||||
void function pulseInit()
|
void function pulseInit()
|
||||||
@@ -93,6 +96,34 @@ void function GetMapStatsFromToneAPI()
|
|||||||
NSHttpRequest(getMapStats, onSuccess, onFailure)
|
NSHttpRequest(getMapStats, onSuccess, onFailure)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void function GetGamemodeStatsFromToneAPI()
|
||||||
|
{
|
||||||
|
print(prefix + "Getting gamemode data...")
|
||||||
|
gamemodeEntries = 0
|
||||||
|
HttpRequest getGamemodeStats
|
||||||
|
getGamemodeStats.method = HttpRequestMethod.GET
|
||||||
|
getGamemodeStats.url = HTTPrequestURL + "/gamemodes"
|
||||||
|
getGamemodeStats.queryParameters["player"] <- [NSGetLocalPlayerUID()]
|
||||||
|
void functionref(HttpRequestResponse) onSuccess = void function(HttpRequestResponse response)
|
||||||
|
{
|
||||||
|
print(prefix + "Gamemode data received, processing...")
|
||||||
|
table JSONForConversion = DecodeJSON(response.body)
|
||||||
|
foreach (var key, var value in JSONForConversion) {
|
||||||
|
table test = expect table(value)
|
||||||
|
globalToneAPIGamemodeData[string(key)] <- test.kills
|
||||||
|
gamemodeEntries += 1
|
||||||
|
}
|
||||||
|
print(prefix + "Gamemode data has been processed with a total of " + string(gamemodeEntries) + " entries.")
|
||||||
|
}
|
||||||
|
|
||||||
|
void functionref(HttpRequestFailure) onFailure = void function(HttpRequestFailure failure)
|
||||||
|
{
|
||||||
|
print(prefix + "Encountered an error getting gamemode data...")
|
||||||
|
}
|
||||||
|
|
||||||
|
NSHttpRequest(getGamemodeStats, onSuccess, onFailure)
|
||||||
|
}
|
||||||
|
|
||||||
void function fetchGamemodeStatsFromToneAPI(string mapName)
|
void function fetchGamemodeStatsFromToneAPI(string mapName)
|
||||||
{
|
{
|
||||||
mapGamemodeEntries = 0
|
mapGamemodeEntries = 0
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ void function OnViewStats_Open()
|
|||||||
}
|
}
|
||||||
GetWeaponStatsFromToneAPI()
|
GetWeaponStatsFromToneAPI()
|
||||||
GetMapStatsFromToneAPI()
|
GetMapStatsFromToneAPI()
|
||||||
|
GetGamemodeStatsFromToneAPI()
|
||||||
UI_SetPresentationType( ePresentationType.DEFAULT )
|
UI_SetPresentationType( ePresentationType.DEFAULT )
|
||||||
|
|
||||||
//UpdateViewStatsKillsMenu()
|
//UpdateViewStatsKillsMenu()
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ const MAX_MODE_ROWS = 8
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
var menu
|
var menu
|
||||||
|
array<ItemDisplayData> allTitans
|
||||||
|
table<string, array<string> > titanStatLoadout
|
||||||
} file
|
} file
|
||||||
|
|
||||||
void function InitViewStatsTimeMenu()
|
void function InitViewStatsTimeMenu()
|
||||||
@@ -23,21 +25,68 @@ void function OnStatsTime_Open()
|
|||||||
{
|
{
|
||||||
UI_SetPresentationType( ePresentationType.NO_MODELS )
|
UI_SetPresentationType( ePresentationType.NO_MODELS )
|
||||||
|
|
||||||
|
file.allTitans = GetVisibleItemsOfType( eItemTypes.TITAN )
|
||||||
|
var dataTable = GetDataTable( $"datatable/titan_properties.rpak" )
|
||||||
|
|
||||||
|
foreach ( titan in file.allTitans )
|
||||||
|
{
|
||||||
|
file.titanStatLoadout[ titan.ref ] <- []
|
||||||
|
|
||||||
|
int row = GetDataTableRowMatchingStringValue( dataTable, GetDataTableColumnByName( dataTable, "titanRef" ), titan.ref )
|
||||||
|
file.titanStatLoadout[ titan.ref ].append( GetDataTableString( dataTable, row, GetDataTableColumnByName( dataTable, "primary" ) ) )
|
||||||
|
file.titanStatLoadout[ titan.ref ].append( GetDataTableString( dataTable, row, GetDataTableColumnByName( dataTable, "ordnance" ) ) )
|
||||||
|
file.titanStatLoadout[ titan.ref ].append( GetDataTableString( dataTable, row, GetDataTableColumnByName( dataTable, "special" ) ) )
|
||||||
|
file.titanStatLoadout[ titan.ref ].append( GetDataTableString( dataTable, row, GetDataTableColumnByName( dataTable, "antirodeo" ) ) )
|
||||||
|
file.titanStatLoadout[ titan.ref ].append( GetDataTableString( dataTable, row, GetDataTableColumnByName( dataTable, "coreAbility" ) ) )
|
||||||
|
file.titanStatLoadout[ titan.ref ].append( GetDataTableString( dataTable, row, GetDataTableColumnByName( dataTable, "melee" ) ) )
|
||||||
|
}
|
||||||
|
|
||||||
UpdateViewStatsTimeMenu()
|
UpdateViewStatsTimeMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float function GetTitanKills( string titanName)
|
||||||
|
{
|
||||||
|
float weaponKills = 0
|
||||||
|
foreach ( weaponRef in file.titanStatLoadout[ titanName ])
|
||||||
|
{
|
||||||
|
weaponKills += float(getWeaponKillsFromToneAPI(weaponRef))
|
||||||
|
}
|
||||||
|
return weaponKills
|
||||||
|
}
|
||||||
|
|
||||||
void function UpdateViewStatsTimeMenu()
|
void function UpdateViewStatsTimeMenu()
|
||||||
{
|
{
|
||||||
entity player = GetUIPlayer()
|
entity player = GetUIPlayer()
|
||||||
if ( player == null )
|
if ( player == null )
|
||||||
return
|
return
|
||||||
|
|
||||||
|
//#########################################
|
||||||
|
float killsAsTitan = 0
|
||||||
|
float killsAsIon = GetTitanKills( "ion" )
|
||||||
|
killsAsTitan += killsAsIon
|
||||||
|
float killsAsScorch = GetTitanKills( "scorch" )
|
||||||
|
killsAsTitan += killsAsScorch
|
||||||
|
float killsAsNorthstar = GetTitanKills( "northstar" )
|
||||||
|
killsAsTitan += killsAsNorthstar
|
||||||
|
float killsAsRonin = GetTitanKills( "ronin" )
|
||||||
|
killsAsTitan += killsAsRonin
|
||||||
|
float killsAsTone = GetTitanKills( "tone" )
|
||||||
|
killsAsTitan += killsAsTone
|
||||||
|
float killsAsLegion = GetTitanKills( "legion" )
|
||||||
|
killsAsTitan += killsAsLegion
|
||||||
|
float killsAsMonarch = GetTitanKills( "vanguard" )
|
||||||
|
killsAsTitan += killsAsMonarch
|
||||||
//#########################################
|
//#########################################
|
||||||
// Time By Class Pie Chart
|
// Time By Class Pie Chart
|
||||||
//#########################################
|
//#########################################
|
||||||
|
|
||||||
float hoursAsPilot = GetPlayerStatFloat( player, "time_stats", "hours_as_pilot" )
|
var totalPilotKills = 0
|
||||||
float hoursAsTitan = GetPlayerStatFloat( player, "time_stats", "hours_as_titan" )
|
|
||||||
|
foreach (var key, var value in globalToneAPIKillData) {
|
||||||
|
totalPilotKills += value
|
||||||
|
}
|
||||||
|
float hoursAsPilot = float(totalPilotKills)
|
||||||
|
float hoursAsTitan = killsAsTitan
|
||||||
|
|
||||||
array<PieChartEntry> classes
|
array<PieChartEntry> classes
|
||||||
|
|
||||||
@@ -52,51 +101,41 @@ void function UpdateViewStatsTimeMenu()
|
|||||||
PieChartData classTimeData
|
PieChartData classTimeData
|
||||||
classTimeData.entries = classes
|
classTimeData.entries = classes
|
||||||
classTimeData.labelColor = [ 255, 255, 255, 255 ]
|
classTimeData.labelColor = [ 255, 255, 255, 255 ]
|
||||||
classTimeData.timeBased = true
|
SetPieChartData( file.menu, "ClassPieChart", "KILLS BY CLASS", classTimeData )
|
||||||
SetPieChartData( file.menu, "ClassPieChart", "#STATS_HEADER_TIME_BY_CLASS", classTimeData )
|
|
||||||
|
|
||||||
//#########################################
|
//#########################################
|
||||||
// Time By Chassis Pie Chart
|
// Time By Chassis Pie Chart
|
||||||
//#########################################
|
//#########################################
|
||||||
|
|
||||||
float hoursAsIon = GetPlayerStatFloat( player, "time_stats", "hours_as_titan_ion" )
|
|
||||||
float hoursAsScorch = GetPlayerStatFloat( player, "time_stats", "hours_as_titan_scorch" )
|
|
||||||
float hoursAsNorthstar = GetPlayerStatFloat( player, "time_stats", "hours_as_titan_northstar" )
|
|
||||||
float hoursAsRonin = GetPlayerStatFloat( player, "time_stats", "hours_as_titan_ronin" )
|
|
||||||
float hoursAsTone = GetPlayerStatFloat( player, "time_stats", "hours_as_titan_tone" )
|
|
||||||
float hoursAsLegion = GetPlayerStatFloat( player, "time_stats", "hours_as_titan_legion" )
|
|
||||||
float hoursAsMonarch = GetPlayerStatFloat( player, "time_stats", "hours_as_titan_vanguard" )
|
|
||||||
|
|
||||||
array<PieChartEntry> titans
|
array<PieChartEntry> titans
|
||||||
|
|
||||||
if ( hoursAsIon > 0 )
|
if ( killsAsIon > 0 )
|
||||||
AddPieChartEntry( titans, "#TITAN_ION", hoursAsIon, [200, 40, 40, 255] )
|
AddPieChartEntry( titans, "#TITAN_ION", killsAsIon, [200, 40, 40, 255] )
|
||||||
|
|
||||||
if ( hoursAsScorch > 0 )
|
if ( killsAsScorch > 0 )
|
||||||
AddPieChartEntry( titans, "#TITAN_SCORCH", hoursAsScorch, [223, 94, 0, 255] )
|
AddPieChartEntry( titans, "#TITAN_SCORCH", killsAsScorch, [223, 94, 0, 255] )
|
||||||
|
|
||||||
if ( hoursAsNorthstar > 0 )
|
if ( killsAsNorthstar > 0 )
|
||||||
AddPieChartEntry( titans, "#TITAN_NORTHSTAR", hoursAsNorthstar, [61, 117, 193, 255] )
|
AddPieChartEntry( titans, "#TITAN_NORTHSTAR", killsAsNorthstar, [61, 117, 193, 255] )
|
||||||
|
|
||||||
if ( hoursAsRonin > 0 )
|
if ( killsAsRonin > 0 )
|
||||||
AddPieChartEntry( titans, "#TITAN_RONIN", hoursAsRonin, [207, 191, 59, 255] )
|
AddPieChartEntry( titans, "#TITAN_RONIN", killsAsRonin, [207, 191, 59, 255] )
|
||||||
|
|
||||||
if ( hoursAsTone > 0 )
|
if ( killsAsTone > 0 )
|
||||||
AddPieChartEntry( titans, "#TITAN_TONE", hoursAsTone, [88, 172, 67, 255] )
|
AddPieChartEntry( titans, "#TITAN_TONE", killsAsTone, [88, 172, 67, 255] )
|
||||||
|
|
||||||
if ( hoursAsLegion > 0 )
|
if ( killsAsLegion > 0 )
|
||||||
AddPieChartEntry( titans, "#TITAN_LEGION", hoursAsLegion, [46, 188, 180, 255] )
|
AddPieChartEntry( titans, "#TITAN_LEGION", killsAsLegion, [46, 188, 180, 255] )
|
||||||
|
|
||||||
if ( hoursAsMonarch > 0 )
|
if ( killsAsMonarch > 0 )
|
||||||
AddPieChartEntry( titans, "#TITAN_VANGUARD", hoursAsMonarch, [151, 71, 175, 255] )
|
AddPieChartEntry( titans, "#TITAN_VANGUARD", killsAsMonarch, [151, 71, 175, 255] )
|
||||||
|
|
||||||
titans.sort( ComparePieChartEntryValues )
|
titans.sort( ComparePieChartEntryValues )
|
||||||
|
|
||||||
PieChartData chassisTimeData
|
PieChartData chassisTimeData
|
||||||
chassisTimeData.entries = titans
|
chassisTimeData.entries = titans
|
||||||
chassisTimeData.labelColor = [ 255, 255, 255, 255 ]
|
chassisTimeData.labelColor = [ 255, 255, 255, 255 ]
|
||||||
chassisTimeData.timeBased = true
|
SetPieChartData( file.menu, "ChassisPieChart", "KILLS BY TITAN", chassisTimeData )
|
||||||
SetPieChartData( file.menu, "ChassisPieChart", "#STATS_HEADER_TIME_BY_CHASSIS", chassisTimeData )
|
|
||||||
|
|
||||||
//#########################################
|
//#########################################
|
||||||
// Time By Mode Pie Chart
|
// Time By Mode Pie Chart
|
||||||
@@ -105,33 +144,40 @@ void function UpdateViewStatsTimeMenu()
|
|||||||
array<string> gameModesArray = GetPersistenceEnumAsArray( "gameModes" )
|
array<string> gameModesArray = GetPersistenceEnumAsArray( "gameModes" )
|
||||||
|
|
||||||
array<PieChartEntry> modes
|
array<PieChartEntry> modes
|
||||||
foreach ( modeName in gameModesArray )
|
int enumCount = PersistenceGetEnumCount( "gameModes" )
|
||||||
{
|
table< string, array<int> > customGamemodeList = {
|
||||||
string gameModePlaysVar = GetStatVar( "game_stats", "mode_played", modeName )
|
sns = [255, 178, 102, 255],
|
||||||
int playCount = player.GetPersistentVarAsInt( gameModePlaysVar )
|
fw = [147, 204, 57, 255],
|
||||||
if ( playCount > 0 )
|
gg = [14, 87, 132, 255]
|
||||||
AddPieChartEntry( modes, GameMode_GetName( modeName ), float( playCount ), GameMode_GetColor( modeName ) )
|
|
||||||
}
|
}
|
||||||
|
for ( int modeId = 0; modeId < enumCount; modeId++ )
|
||||||
if ( modes.len() > 0 )
|
|
||||||
{
|
{
|
||||||
modes.sort( ComparePieChartEntryValues )
|
string modeName = PersistenceGetEnumItemNameForIndex( "gameModes", modeId )
|
||||||
|
if ( modeName in globalToneAPIGamemodeData )
|
||||||
if ( modes.len() > MAX_MODE_ROWS )
|
|
||||||
{
|
{
|
||||||
float otherValue
|
float modePlayedTime = 0
|
||||||
for ( int i = MAX_MODE_ROWS-1; i < modes.len() ; i++ )
|
modePlayedTime = float(globalToneAPIGamemodeData[modeName])
|
||||||
otherValue += modes[i].numValue
|
if ( modePlayedTime > 0 ) {
|
||||||
|
AddPieChartEntry( modes, GameMode_GetName( modeName ), modePlayedTime, GetGameModeDisplayColor( modeName ) )
|
||||||
modes.resize( MAX_MODE_ROWS-1 )
|
}
|
||||||
AddPieChartEntry( modes, "#GAMEMODE_OTHER", otherValue, [127, 127, 127, 255] )
|
}
|
||||||
|
}
|
||||||
|
foreach (string key, array<int> value in customGamemodeList)
|
||||||
|
{
|
||||||
|
if ( key in globalToneAPIGamemodeData)
|
||||||
|
{
|
||||||
|
float modePlayedTime = 0
|
||||||
|
modePlayedTime = float(globalToneAPIGamemodeData[key])
|
||||||
|
if ( modePlayedTime > 0 ) {
|
||||||
|
AddPieChartEntry( modes, key, modePlayedTime, value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PieChartData modesPlayedData
|
PieChartData modesPlayedData
|
||||||
modesPlayedData.entries = modes
|
modesPlayedData.entries = modes
|
||||||
modesPlayedData.labelColor = [ 255, 255, 255, 255 ]
|
modesPlayedData.labelColor = [ 255, 255, 255, 255 ]
|
||||||
SetPieChartData( file.menu, "ModesPieChart", "#GAME_MODES_PLAYED", modesPlayedData )
|
SetPieChartData( file.menu, "ModesPieChart", "KILLS BY GAMEMODE", modesPlayedData )
|
||||||
|
|
||||||
//#########################################
|
//#########################################
|
||||||
// Time Stats
|
// Time Stats
|
||||||
|
|||||||
Reference in New Issue
Block a user