clan4 casual

This commit is contained in:
Lanta 2024-07-18 11:16:43 +02:00
parent 16297a8525
commit 1ed4515cfa
2 changed files with 40 additions and 21 deletions

View file

@ -33,6 +33,9 @@ $ogDescription = "Explore detailed player statistics over the past month includi
// if ($key == 'all') { // if ($key == 'all') {
// echo "Stats for $key (minimal 20 matches)"; // echo "Stats for $key (minimal 20 matches)";
// } // }
if ($key == 'clan_4_casual') {
echo "Stats for $key (minimal 4 matches)";
}
if ($key == 'Intense') { if ($key == 'Intense') {
echo "Stats for $key (minimal 8 matches)"; echo "Stats for $key (minimal 8 matches)";
} }
@ -71,6 +74,9 @@ $ogDescription = "Explore detailed player statistics over the past month includi
if ($key == 'all' && $player_data['matches'] < 20) { if ($key == 'all' && $player_data['matches'] < 20) {
continue; continue;
} }
if ($key == 'clan_4_casual' && $player_data['matches'] < 4) {
continue;
}
if ($key == 'Intense' && $player_data['matches'] < 8) { if ($key == 'Intense' && $player_data['matches'] < 8) {
continue; continue;
} }

View file

@ -149,26 +149,36 @@ foreach ($player in $all_player_matches) {
$killstats = @() $killstats = @()
$matchfiles = Get-ChildItem "$scriptroot/../data/killstats/" -File -Filter *.json $matchfiles = Get-ChildItem "$scriptroot/../data/killstats/" -File -Filter *.json
$killstats_only_full_clan_matches = @()
$guids = $matchfiles.Name | ForEach-Object { $_.Split("_")[0] }
$groupedGuids_full_clan_matches = $guids | Group-Object | Where-Object { $_.Count -eq 4 }
$last_month = (get-date).AddMonths($monthsback) $last_month = (get-date).AddMonths($monthsback)
foreach ($file in $matchfiles) { foreach ($file in $matchfiles) {
$json = get-content $file | ConvertFrom-Json $json = get-content $file | ConvertFrom-Json
if ($json.created -gt $last_month) { if ($json.created -gt $last_month) {
$killstats += $json $killstats += $json
if ($groupedGuids_full_clan_matches.Name -contains $json.matchid) {
$killstats_only_full_clan_matches += $json
}
} }
else { else {
write-output "Archiving $($file.name)" write-output "Archiving $($file.name)"
Move-Item -Path $file.FullName -Destination "$scriptroot/../data/killstats/archive" -Force Move-Item -Path $file.FullName -Destination "$scriptroot/../data/killstats/archive/" -Force
} }
} }
function Get-MatchStatsPlayer { function Get-MatchStatsPlayer {
param ( param (
[switch] $GameMode, [switch] $GameMode,
[switch] $MatchType, [switch] $MatchType,
[string] $typemodevalue, [string] $typemodevalue,
[array] $playernames, [array] $playernames,
[string] $friendlyname [string] $friendlyname,
[array] $killstats,
[string] $sortstat
) )
$MatchStatsPlayer = @() $MatchStatsPlayer = @()
foreach ($player in $playernames) { foreach ($player in $playernames) {
@ -181,8 +191,8 @@ function Get-MatchStatsPlayer {
if ($MatchType) { if ($MatchType) {
$filterProperty = 'matchType' $filterProperty = 'matchType'
} }
$alives = (($killstats | where-object { $_.stats.playername -eq $player -and $_.stats.$filterProperty -like $typemodevalue }).deathType | where-object {$_ -eq 'alive'}).count $alives = (($killstats | where-object { $_.stats.playername -eq $player -and $_.stats.$filterProperty -like $typemodevalue }).deathType | where-object { $_ -eq 'alive' }).count
$deaths = (($killstats | where-object { $_.stats.playername -eq $player -and $_.stats.$filterProperty -like $typemodevalue }).deathType | where-object {$_ -ne 'alive'}).count $deaths = (($killstats | where-object { $_.stats.playername -eq $player -and $_.stats.$filterProperty -like $typemodevalue }).deathType | where-object { $_ -ne 'alive' }).count
$kills = (($killstats.stats | where-object { $_.playername -eq $player -and $_.$filterProperty -like $typemodevalue }).kills | Measure-Object -sum).sum $kills = (($killstats.stats | where-object { $_.playername -eq $player -and $_.$filterProperty -like $typemodevalue }).kills | Measure-Object -sum).sum
$dbno = (($killstats.stats | where-object { $_.playername -eq $player -and $_.$filterProperty -like $typemodevalue }).dbno | Measure-Object -sum).sum $dbno = (($killstats.stats | where-object { $_.playername -eq $player -and $_.$filterProperty -like $typemodevalue }).dbno | Measure-Object -sum).sum
$humankills = (($killstats.stats | where-object { $_.playername -eq $player -and $_.$filterProperty -like $typemodevalue }).humankills | Measure-Object -sum).sum $humankills = (($killstats.stats | where-object { $_.playername -eq $player -and $_.$filterProperty -like $typemodevalue }).humankills | Measure-Object -sum).sum
@ -214,22 +224,24 @@ function Get-MatchStatsPlayer {
change = $change change = $change
} }
} }
return $MatchStatsPlayer | ForEach-Object { $MatchStatsPlayer_sorted = $MatchStatsPlayer | ForEach-Object {
$_ | Add-Member -NotePropertyName RandomKey -NotePropertyValue (Get-Random) -PassThru $_ | Add-Member -NotePropertyName RandomKey -NotePropertyValue (Get-Random) -PassThru
} | Sort-Object -Property RandomKey | Select-Object -Property * -ExcludeProperty RandomKey #randomize the order } | Sort-Object -Property $sortstat -Descending | Select-Object -Property * -ExcludeProperty RandomKey #randomize the order
return $MatchStatsPlayer_sorted
} }
$playerstats_event_ibr = Get-MatchStatsPlayer -GameMode -typemodevalue 'ibr' -playernames $all_player_matches.playername -friendlyname 'Intense' $playerstats_event_ibr = Get-MatchStatsPlayer -GameMode -typemodevalue 'ibr' -playernames $all_player_matches.playername -friendlyname 'Intense' -killstats $killstats -sortstat 'randomkey'
$playerstats_airoyale = Get-MatchStatsPlayer -MatchType -typemodevalue 'airoyale' -playernames $all_player_matches.playername -friendlyname 'Casual' $playerstats_airoyale = Get-MatchStatsPlayer -MatchType -typemodevalue 'airoyale' -playernames $all_player_matches.playername -friendlyname 'Casual' -killstats $killstats -sortstat 'randomkey'
$playerstats_official = Get-MatchStatsPlayer -MatchType -typemodevalue 'official' -playernames $all_player_matches.playername -friendlyname 'official' $playerstats_official = Get-MatchStatsPlayer -MatchType -typemodevalue 'official' -playernames $all_player_matches.playername -friendlyname 'official' -killstats $killstats -sortstat 'randomkey'
$playerstats_custom = Get-MatchStatsPlayer -MatchType -typemodevalue 'custom' -playernames $all_player_matches.playername -friendlyname 'custom' $playerstats_custom = Get-MatchStatsPlayer -MatchType -typemodevalue 'custom' -playernames $all_player_matches.playername -friendlyname 'custom' -killstats $killstats -sortstat 'randomkey'
$playerstats_all = Get-MatchStatsPlayer -MatchType -typemodevalue '*' -playernames $all_player_matches.playername -friendlyname 'all' $playerstats_all = Get-MatchStatsPlayer -MatchType -typemodevalue '*' -playernames $all_player_matches.playername -friendlyname 'all' -killstats $killstats -sortstat 'randomkey'
$playerstats_ranked = Get-MatchStatsPlayer -MatchType -typemodevalue 'competitive' -playernames $all_player_matches.playername -friendlyname 'Ranked' $playerstats_ranked = Get-MatchStatsPlayer -MatchType -typemodevalue 'competitive' -playernames $all_player_matches.playername -friendlyname 'Ranked' -killstats $killstats -sortstat 'randomkey'
$playerstats_airoyale_clan = Get-MatchStatsPlayer -MatchType -typemodevalue 'airoyale' -playernames $all_player_matches.playername -friendlyname 'Casual' -killstats $killstats_only_full_clan_matches -sortstat 'winratio'
$playerstats_custom = $playerstats_custom | Sort-Object winratio -Descending $playerstats_custom = $playerstats_custom | Sort-Object winratio -Descending
@ -244,13 +256,14 @@ $formattedString = "$currentDateTime - Time Zone: $currentTimezone"
# Output the formatted string # Output the formatted string
$playerstats = [PSCustomObject]@{ $playerstats = [PSCustomObject]@{
all = $playerstats_all all = $playerstats_all
Intense = $playerstats_event_ibr Intense = $playerstats_event_ibr
Casual = $playerstats_airoyale Casual = $playerstats_airoyale
official = $playerstats_official official = $playerstats_official
custom = $playerstats_custom custom = $playerstats_custom
updated = $formattedString updated = $formattedString
Ranked = $playerstats_ranked Ranked = $playerstats_ranked
clan_4_casual = $playerstats_airoyale_clan
} }
write-output "Writing file" write-output "Writing file"