public void CreateExplosionOnEachTarget(HitEvent evt, WeaponNode weapon)
        {
            HitExplosionGraphicsComponent hitExplosionGraphics = weapon.hitExplosionGraphics;
            Vector3 fireDirectionWorld = new MuzzleVisualAccessor(weapon.muzzlePoint).GetFireDirectionWorld();

            foreach (HitTarget target in evt.Targets)
            {
                ExplosionEvent eventInstance = new ExplosionEvent {
                    ExplosionOffset = -fireDirectionWorld * hitExplosionGraphics.ExplosionOffset,
                    HitDirection    = target.HitDirection,
                    Asset           = hitExplosionGraphics.ExplosionAsset,
                    Duration        = hitExplosionGraphics.ExplosionDuration,
                    Target          = target
                };
                base.ScheduleEvent(eventInstance, target.Entity);
            }
            if (evt.StaticHit != null)
            {
                Vector3 position = evt.StaticHit.Position - (fireDirectionWorld * hitExplosionGraphics.ExplosionOffset);
                this.DrawExplosionEffect(position, evt.StaticHit.Normal, hitExplosionGraphics.ExplosionAsset, hitExplosionGraphics.ExplosionDuration, weapon);
            }
        }
        public void CreateExplosionEffect(ExplosionEvent evt, TankNode tank)
        {
            Vector3 position = tank.tankVisualRoot.transform.TransformPoint(evt.Target.LocalHitPoint) + evt.ExplosionOffset;

            this.DrawExplosionEffect(position, evt.ExplosionOffset, evt.Asset, evt.Duration, tank);
        }