public void PlayImpact(NetStructs.DetonationResult InteractionResult) { DetonationResult res = Convert(InteractionResult); foreach (ImpactType impact in Impacts) { if (impact.Detonations.Contains(DetonationResult.Any) || impact.Detonations.Contains(res)) { foreach (ParticleSystem system in impact.ParticlesToPlay) { system.Play(); } break; } } }
private DetonationResult Convert(NetStructs.DetonationResult result) { switch (result) { case NetStructs.DetonationResult.DtDetResBuildingHitLarge: case NetStructs.DetonationResult.DtDetResBuildingHitMedium: case NetStructs.DetonationResult.DtDetResBuildingHitSmall: { return(DetonationResult.BuildingImpact); } case NetStructs.DetonationResult.DtDetResAirBurst: case NetStructs.DetonationResult.DtDetResAirHit: { return(DetonationResult.AirHit); } case NetStructs.DetonationResult.DtDetResDirtBlastLarge: case NetStructs.DetonationResult.DtDetResDirtBlastMedium: case NetStructs.DetonationResult.DtDetResDirtBlastSmall: case NetStructs.DetonationResult.DtDetResGroundImpact: case NetStructs.DetonationResult.DtDetResGroundProximate: { return(DetonationResult.GroundImpact); } case NetStructs.DetonationResult.DtDetResEntityImpact: { return(DetonationResult.EntityImpact); } default: { return((DetonationResult)(int.MinValue)); } } }