public void StopHitEffect(NodeRemoveEvent evt, WeaponStreamHitGraphicsNode weapon) { WeaponStreamHitGraphicsEffectComponent weaponStreamHitGraphicsEffect = weapon.weaponStreamHitGraphicsEffect; if (weaponStreamHitGraphicsEffect.HitStatic) { weaponStreamHitGraphicsEffect.HitStatic.Stop(true); } if (weaponStreamHitGraphicsEffect.HitTarget != null) { weaponStreamHitGraphicsEffect.HitTarget.Stop(true); } if (weaponStreamHitGraphicsEffect.HitStaticLight != null) { weaponStreamHitGraphicsEffect.HitStaticLight.enabled = false; } if (weaponStreamHitGraphicsEffect.HitTargetLight != null) { weaponStreamHitGraphicsEffect.HitTargetLight.enabled = false; } }
public void UpdateHitEffect(UpdateEvent evt, WeaponStreamHitGraphicsNode weapon) { WeaponStreamHitGraphicsEffectComponent weaponStreamHitGraphicsEffect = weapon.weaponStreamHitGraphicsEffect; StreamHitComponent streamHit = weapon.streamHit; if (streamHit.StaticHit != null) { weaponStreamHitGraphicsEffect.HitStatic.transform.position = streamHit.StaticHit.Position + (streamHit.StaticHit.Normal * weaponStreamHitGraphicsEffect.HitOffset); weaponStreamHitGraphicsEffect.HitStatic.transform.rotation = Quaternion.LookRotation(streamHit.StaticHit.Normal); weaponStreamHitGraphicsEffect.HitStatic.Play(true); weaponStreamHitGraphicsEffect.HitStaticLight.enabled = true; } else if ((streamHit.TankHit != null) && weapon.Entity.HasComponent <StreamHitTargetLoadedComponent>()) { UpdateWeaponStreamHitGraphicsByTargetTankEvent eventInstance = new UpdateWeaponStreamHitGraphicsByTargetTankEvent { HitTargetParticleSystem = weaponStreamHitGraphicsEffect.HitTarget, HitTargetLight = weaponStreamHitGraphicsEffect.HitTargetLight, TankHit = streamHit.TankHit, HitOffset = weaponStreamHitGraphicsEffect.HitOffset }; base.ScheduleEvent(eventInstance, streamHit.TankHit.Entity); } }