package PhysicsProjectile import public Projectile import public PhysicsEntity public abstract class OnExpireEvent abstract function onExpire(PhysicsProjectile projectile) public class PhysicsProjectile extends Projectile use PhysicsModule OnExpireEvent oe construct( vec3 pos, real radius, player owner, angle xyAngle, string fxpath, OnExpireEvent onEvent ) super(pos, radius, owner, xyAngle, fxpath) setXYAngle(xyAngle) oe = onEvent gravity = defaultGravity override function update() physicsUpdate(this) setXYAngle(pos.angleTo2d(pos+vel)) setZAngle(getSlopeAngle(pos.z, pos.z + vel.z, 2)) super.update() ondestroy if oe != null oe.onExpire(this) destroy oe