public void CheckIfVulcanHitSelfTank(UpdateEvent e, VulcanStreamHitNode vulcan, [JoinAll] CameraShakerNode cameraShaker, [JoinAll] SingleNode <GameCameraShakerSettingsComponent> settings) { if (this.ValidateShakeOnVulcanImpact(vulcan, cameraShaker, settings) && !vulcan.Entity.HasComponent <VulcanImpactCameraShakerInstanceComponent>()) { vulcan.Entity.AddComponent(new VulcanImpactCameraShakerInstanceComponent(vulcan.impactCameraShakerConfig.FadeOutTime)); } }
public void ShakeOnDiscreteImpact(ImpactEvent evt, SingleNode <ImpactCameraShakerConfigComponent> weapon, SelfTankNode tank, [JoinAll] CameraShakerNode cameraShaker, [JoinAll] SingleNode <GameCameraShakerSettingsComponent> settings, [JoinAll] SingleNode <MainHUDComponent> hud) { cameraShaker.cameraShaker.ShakeByDiscreteImpact(settings.component, weapon.component, evt.Force.normalized, evt.WeakeningCoeff); hud.component.battleHudRoot.ShakeHUDOnImpact(settings.component, weapon.component); }
private bool ValidateShakeOnVulcanImpact(VulcanStreamHitNode vulcan, CameraShakerNode cameraShaker, SingleNode <GameCameraShakerSettingsComponent> settings) { StreamHitComponent streamHit = vulcan.streamHit; return(settings.component.Enabled ? ((streamHit.TankHit != null) ? streamHit.TankHit.Entity.HasComponent <SelfTankComponent>() : false) : false); }
public void UpdateVulcanImpactCameraShakeInstance(UpdateEvent e, VulcanImpactShakerNode vulcan, [JoinAll] CameraShakerNode cameraShaker, [JoinAll] SingleNode <GameCameraShakerSettingsComponent> settings) { if (vulcan.vulcanImpactCameraShakerInstance.ImpactDataChanged) { vulcan.vulcanImpactCameraShakerInstance.CameraShakeInstance = cameraShaker.cameraShaker.UpdateImpactShakeInstance(settings.component, vulcan.vulcanImpactCameraShakerInstance.CameraShakeInstance, vulcan.impactCameraShakerConfig, vulcan.vulcanImpactCameraShakerInstance.ImpactDirection.normalized, vulcan.vulcanImpactCameraShakerInstance.WeakeningCoeff); vulcan.vulcanImpactCameraShakerInstance.ImpactDataChanged = false; } }
public void CheckIfVulcanHitSelfTank(NodeAddedEvent e, [Combine] VulcanStreamHitNode vulcan, CameraShakerNode cameraShaker, SingleNode <GameCameraShakerSettingsComponent> settings) { if (this.ValidateShakeOnVulcanImpact(vulcan, cameraShaker, settings)) { if (!vulcan.Entity.HasComponent <VulcanImpactCameraShakerInstanceComponent>()) { vulcan.Entity.AddComponent(new VulcanImpactCameraShakerInstanceComponent(vulcan.impactCameraShakerConfig.FadeOutTime)); } else { vulcan.Entity.GetComponent <VulcanImpactCameraShakerInstanceComponent>().Init(vulcan.impactCameraShakerConfig.FadeOutTime); } } }
public void ShakeOnVulcanShooting(NodeAddedEvent evt, VulcanShootingNode weapon, [Context, JoinByTank] SelfTankNode tank, CameraShakerNode cameraShaker, SingleNode <GameCameraShakerSettingsComponent> settings) { CameraShakeInstance instance = cameraShaker.cameraShaker.StartShake(settings.component, weapon.kickbackCameraShakerConfig); if (instance != null) { weapon.Entity.AddComponent(new VulcanShootingCameraShakerInstanceComponent(instance, weapon.kickbackCameraShakerConfig.FadeOutTime)); } }
public void ShakeOnShot(SelfShotEvent e, NotVulcanKickbackNode weapon, [JoinByTank] SelfTankNode tank, [JoinAll] CameraShakerNode cameraShaker, [JoinAll] SingleNode <GameCameraShakerSettingsComponent> settings, [JoinAll] SingleNode <MainHUDComponent> hud) { cameraShaker.cameraShaker.ShakeOnce(settings.component, weapon.kickbackCameraShakerConfig, weapon.weaponCooldown.CooldownIntervalSec); hud.component.battleHudRoot.ShakeHUDOnShot(settings.component, weapon.kickbackCameraShakerConfig); }