meant to solve invisible equipment. also, revert: `prevent "asynchronous" destruction violation`; more things are off, i'll have to find root cause of process termination (as soon as i'll be able to reproduce)
unfortunately there's no reliable way due to *::Deploy not being called in certain scenarios but that should serve as good foundation for later improvement.
minor precision loss possibly due to addition being replaced with multiplication (ie. cycle + rate * interval -> ticks * rate * interval)