private static void CollectCollectable(IGolfBallState collector, ICollectable collectable) { collector.Score++; var spot = SystemUtils.Find <ICollectableSpot>(collectable.CollectableSpot); collectable.Enabled = false; spot.Enabled = true; spot.CooldownTimestamp = Time.time; CollectableEffectBoltEvent.Post(GlobalTargets.Everyone, ReliabilityModes.Unreliable); }
private void UpdateCooldownTimestamp(IGolfBallState golfBall) { if (golfBall.Velocity > 0) { golfBall.CooldownTimestamp = float.PositiveInfinity; } else if (golfBall.CooldownTimestamp > BoltNetwork.Time) { golfBall.CooldownTimestamp = BoltNetwork.Time; } }
private void UpdateCooldownRatio(IGolfBallState golfBall) => golfBall.CooldownRatio = 1 - Mathf.Clamp01((BoltNetwork.Time - golfBall.CooldownTimestamp) / GlobalSettings.GolfBallCooldown);
private void UpdateReadyToMove(IGolfBallState golfBall) => golfBall.ReadyToMove = BoltNetwork.Time > golfBall.CooldownTimestamp + GlobalSettings.GolfBallCooldown;