struct HealthGroup native play { deprecated("3.8", "Use Level.FindHealthGroup() instead") static clearscope HealthGroup Find(int id) { return level.FindHealthGroup(id); } readonly int id; readonly int health; readonly Array sectors; readonly Array lines; native void SetHealth(int newhealth); } enum SectorPart { SECPART_None = -1, SECPART_Floor = 0, SECPART_Ceiling = 1, SECPART_3D = 2 } struct Destructible native play { static native void DamageSector(Sector sec, Actor source, int damage, Name damagetype, SectorPart part, vector3 position, bool isradius); static native void DamageLinedef(Line def, Actor source, int damage, Name damagetype, int side, vector3 position, bool isradius); static native void GeometryLineAttack(TraceResults trace, Actor thing, int damage, Name damagetype); static native void GeometryRadiusAttack(Actor bombspot, Actor bombsource, int bombdamage, double bombdistance, Name damagetype, double fulldamagedistance); static native bool ProjectileHitLinedef(Actor projectile, Line def); static native bool ProjectileHitPlane(Actor projectile, SectorPart part); static clearscope native bool CheckLinedefVulnerable(Line def, int side, SectorPart part); static clearscope native bool CheckSectorVulnerable(Sector sec, SectorPart part); }