@@ -829,6 +829,7 @@ public AllStats CreateFiles(ProcessedData processedData, bool createJsonFile = t
829829
830830 allStats . bombsiteStats = GetBombsiteStats ( processedData ) ;
831831 allStats . hostageStats = GetHostageStats ( processedData ) ;
832+ allStats . rescueZoneStats = GetRescueZoneStats ( ) ;
832833
833834 string [ ] nadeTypes = { "Flash" , "Smoke" , "HE" , "Incendiary" , "Decoy" } ;
834835 var nadeGroups = GetNadeGroups ( processedData , nadeTypes ) ;
@@ -1340,6 +1341,9 @@ public List<bombsiteStats> GetBombsiteStats(ProcessedData processedData)
13401341 {
13411342 List < bombsiteStats > bombsiteStats = new List < bombsiteStats > ( ) ;
13421343
1344+ var bombsiteATrigger = dp . triggers . Where ( x => x . Index == dp . bombsiteAIndex ) . FirstOrDefault ( ) ;
1345+ var bombsiteBTrigger = dp . triggers . Where ( x => x . Index == dp . bombsiteBIndex ) . FirstOrDefault ( ) ;
1346+
13431347 List < char > bombsitePlants = new List < char > ( processedData . BombsitePlantValues . Select ( x => x . Bombsite ) ) ;
13441348 List < char > bombsiteExplosions = new List < char > ( processedData . BombsiteExplodeValues . Select ( x => x . Bombsite ) ) ;
13451349 List < char > bombsiteDefuses = new List < char > ( processedData . BombsiteDefuseValues . Select ( x => x . Bombsite ) ) ;
@@ -1352,8 +1356,32 @@ public List<bombsiteStats> GetBombsiteStats(ProcessedData processedData)
13521356 int explosionsB = bombsiteExplosions . Where ( b => b . ToString ( ) . Equals ( "B" ) ) . Count ( ) ;
13531357 int defusesB = bombsiteDefuses . Where ( b => b . ToString ( ) . Equals ( "B" ) ) . Count ( ) ;
13541358
1355- bombsiteStats . Add ( new bombsiteStats ( ) { Bombsite = 'A' , Plants = plantsA , Explosions = explosionsA , Defuses = defusesA } ) ;
1356- bombsiteStats . Add ( new bombsiteStats ( ) { Bombsite = 'B' , Plants = plantsB , Explosions = explosionsB , Defuses = defusesB } ) ;
1359+ bombsiteStats . Add ( new bombsiteStats ( )
1360+ {
1361+ Bombsite = 'A' ,
1362+ Plants = plantsA ,
1363+ Explosions = explosionsA ,
1364+ Defuses = defusesA ,
1365+ XPositionMin = bombsiteATrigger ? . Min . X ,
1366+ YPositionMin = bombsiteATrigger ? . Min . Y ,
1367+ ZPositionMin = bombsiteATrigger ? . Min . Z ,
1368+ XPositionMax = bombsiteATrigger ? . Max . X ,
1369+ YPositionMax = bombsiteATrigger ? . Max . Y ,
1370+ ZPositionMax = bombsiteATrigger ? . Max . Z ,
1371+ } ) ;
1372+ bombsiteStats . Add ( new bombsiteStats ( )
1373+ {
1374+ Bombsite = 'B' ,
1375+ Plants = plantsB ,
1376+ Explosions = explosionsB ,
1377+ Defuses = defusesB ,
1378+ XPositionMin = bombsiteBTrigger ? . Min . X ,
1379+ YPositionMin = bombsiteBTrigger ? . Min . Y ,
1380+ ZPositionMin = bombsiteBTrigger ? . Min . Z ,
1381+ XPositionMax = bombsiteBTrigger ? . Max . X ,
1382+ YPositionMax = bombsiteBTrigger ? . Max . Y ,
1383+ ZPositionMax = bombsiteBTrigger ? . Max . Z ,
1384+ } ) ;
13571385
13581386 return bombsiteStats ;
13591387 }
@@ -1365,21 +1393,50 @@ public List<hostageStats> GetHostageStats(ProcessedData processedData)
13651393 List < char > hostagePickedUps = new List < char > ( processedData . HostagePickedUpValues . Select ( x => x . Hostage ) ) ;
13661394 List < char > hostageRescues = new List < char > ( processedData . HostageRescueValues . Select ( x => x . Hostage ) ) ;
13671395
1368- var hostageIndexA = processedData . HostageRescueValues . Where ( r => r . Hostage == 'A' ) . FirstOrDefault ( ) ? . HostageIndex ;
1369- var hostageIndexB = processedData . HostageRescueValues . Where ( r => r . Hostage == 'B' ) . FirstOrDefault ( ) ? . HostageIndex ;
1370-
13711396 int pickedUpsA = hostagePickedUps . Where ( b => b . ToString ( ) . Equals ( "A" ) ) . Count ( ) ;
13721397 int pickedUpsB = hostagePickedUps . Where ( b => b . ToString ( ) . Equals ( "B" ) ) . Count ( ) ;
13731398
13741399 int rescuesA = hostageRescues . Where ( b => b . ToString ( ) . Equals ( "A" ) ) . Count ( ) ;
13751400 int rescuesB = hostageRescues . Where ( b => b . ToString ( ) . Equals ( "B" ) ) . Count ( ) ;
13761401
1377- hostageStats . Add ( new hostageStats ( ) { Hostage = 'A' , HostageIndex = hostageIndexA , PickedUps = pickedUpsA , Rescues = rescuesA } ) ;
1378- hostageStats . Add ( new hostageStats ( ) { Hostage = 'B' , HostageIndex = hostageIndexB , PickedUps = pickedUpsB , Rescues = rescuesB } ) ;
1402+ hostageStats . Add ( new hostageStats ( )
1403+ {
1404+ Hostage = 'A' ,
1405+ HostageIndex = dp . hostageAIndex ,
1406+ PickedUps = pickedUpsA ,
1407+ Rescues = rescuesA ,
1408+ } ) ;
1409+ hostageStats . Add ( new hostageStats ( )
1410+ {
1411+ Hostage = 'B' ,
1412+ HostageIndex = dp . hostageBIndex ,
1413+ PickedUps = pickedUpsB ,
1414+ Rescues = rescuesB ,
1415+ } ) ;
13791416
13801417 return hostageStats ;
13811418 }
13821419
1420+ public List < rescueZoneStats > GetRescueZoneStats ( )
1421+ {
1422+ List < rescueZoneStats > rescueZoneStats = new List < rescueZoneStats > ( ) ;
1423+
1424+ var rescueZoneTrigger = dp . triggers . FirstOrDefault ( ) ; // assume only one rescue zone, (int)data["site"] in GameEventHandler.cs does not line up with newResource.Entity.ID at SendTableParser.FindByName("CBaseTrigger").OnNewEntity
1425+
1426+ rescueZoneStats . Add ( new rescueZoneStats ( )
1427+ {
1428+ rescueZoneIndex = dp . rescueZoneIndex , // doesn't line up with the trigger Entity ID
1429+ XPositionMin = rescueZoneTrigger ? . Min . X ,
1430+ YPositionMin = rescueZoneTrigger ? . Min . Y ,
1431+ ZPositionMin = rescueZoneTrigger ? . Min . Z ,
1432+ XPositionMax = rescueZoneTrigger ? . Max . X ,
1433+ YPositionMax = rescueZoneTrigger ? . Max . Y ,
1434+ ZPositionMax = rescueZoneTrigger ? . Max . Z ,
1435+ } ) ;
1436+
1437+ return rescueZoneStats ;
1438+ }
1439+
13831440 public List < IEnumerable < NadeEventArgs > > GetNadeGroups ( ProcessedData processedData , string [ ] nadeTypes )
13841441 {
13851442 var flashes = processedData . GrenadeValues . Where ( f => f . NadeType . ToString ( ) . Equals ( nadeTypes [ 0 ] ) ) ;
0 commit comments