public override void Update(float frameTime) { base.Update(frameTime); if (!RuleStarted) { return; } if (Elapsed > _endAfter) { ForceEndSelf(); return; } _timeUntilLeak -= frameTime; if (_timeUntilLeak > 0f) { return; } _timeUntilLeak += LeakCooldown; if (!_foundTile || _targetGrid == default || EntityManager.Deleted(_targetGrid) || !_atmosphere.IsSimulatedGrid(_targetGrid)) { ForceEndSelf(); return; } var environment = _atmosphere.GetTileMixture(_targetGrid, null, _targetTile, true); environment?.AdjustMoles(_leakGas, LeakCooldown * _molesPerSecond); }