private void PublishReport() { DamagedBuildingsReport report = new DamagedBuildingsReport(); int length = damageMessages.Messages.Count; DamagedBuildingsReport.DamagedBuildings[] damagedBuildings = new DamagedBuildingsReport.DamagedBuildings[length]; for (int i = 0; i < length; i++) { BuildingDamageResult resultMessage = damageMessages.Messages[i]; damagedBuildings[i] = new DamagedBuildingsReport.DamagedBuildings() { Location = resultMessage.Location, State = (DamagedBuildingsReport.DamageState)resultMessage.Result }; } report.DamagedBuildingsLength = length; report.Buildings = damagedBuildings; EventReportsManager.Send(report); }
private IEnumerator DamagedBuildingsReportHandler(DamagedBuildingsReport dbr) { if (initialized) { yield break; } while (CopiesParent == null || !terrainFullyLoaded) { yield return(null); } DamagedBuildingsReport.DamagedBuildings[] buildings = dbr.Buildings; for (int i = 0; i < buildings.Length; i++) { switch (buildings[i].State) { case DamagedBuildingsReport.DamageState.None: break; case DamagedBuildingsReport.DamageState.PartiallyDestroyed: break; case DamagedBuildingsReport.DamageState.Destroyed: Vector3 local = CoordConverter.GeocToLocal(buildings[i].Location); StartCoroutine(DestroyBuildingAtPosition(local)); break; default: break; } } initialized = true; }