private void Charge(ILaunchForceComponent launchForce, ITankInputComponent tankInput, IAimSliderComponent aimSlider) { aimSlider.AimSliderValue = launchForce.MinLaunchForce; if (tankInput.GetFireButton && !tankInput.Fired) { aimSlider.AimSliderValue = launchForce.CurrentLaunchForce; } }
private void Charge(ITankInputComponent input, ITransformComponent transform, ILaunchForceComponent launchForce, ITime time) { float chargeSpeed = (launchForce.MaxLaunchForce - launchForce.MinLaunchForce) / launchForce.MaxChargeTime; if (launchForce.CurrentLaunchForce >= launchForce.MaxLaunchForce && !input.Fired) { launchForce.CurrentLaunchForce = launchForce.MaxLaunchForce; Fire(transform, launchForce.CurrentLaunchForce); input.Fired = true; launchForce.CurrentLaunchForce = launchForce.MinLaunchForce; } else if (input.GetFireButtonDown) { input.Fired = false; launchForce.CurrentLaunchForce = launchForce.MinLaunchForce; } else if (input.GetFireButton && !input.Fired) { launchForce.CurrentLaunchForce += chargeSpeed * time.DeltaTime; } else if (input.GetFireButtonUp && !input.Fired) { Fire(transform, launchForce.CurrentLaunchForce); input.Fired = true; launchForce.CurrentLaunchForce = launchForce.MinLaunchForce; } }