コード例 #1
0
 public void DisplayWeaponFireFrame(WeaponFireFrame frame)
 {
     for (int i = 0; i < frame.WeaponFires.Count; i++)
     {
         var weaponFire = frame.WeaponFires[i];
         var position   = (weaponFire.ShooterPosition / PlaybackScale) - Map.Offset;
         WeaponGraphicsManager.Instance.CreateWeaponFireGraphics(weaponFire, position, PlaybackMode);
     }
 }
コード例 #2
0
    public void OnWeaponFired(object sender, object e)
    {
        if (!_parser.MatchStarted)
        {
            return;
        }
        var eventArgs = (WeaponFiredEventArgs)e;
        var parser    = (DemoParser)sender;

        if (NadePlaybackManager.Instance.AddNadeFrame(parser, eventArgs))
        {
            return;
        }

        var shooter = eventArgs.Shooter;

        var weaponFire = new WeaponFire()
        {
            ShooterSteamID  = shooter.SteamID.ToString(),
            Weapon          = new PartialWeapon(eventArgs.Weapon),
            ShooterPosition = new Vector3(-shooter.Position.X, shooter.Position.Z, -shooter.Position.Y),
            ViewX           = shooter.ViewDirectionX,
            ViewY           = shooter.ViewDirectionY
        };

        WeaponFireFrame frame = null;

        if (PlaybackManager.Instance.WeaponFiredFrames.Any())
        {
            frame = PlaybackManager.Instance.WeaponFiredFrames.Last();
        }

        if (frame == null || frame.Tick != parser.CurrentTick)
        {
            frame = new WeaponFireFrame()
            {
                Tick        = parser.CurrentTick,
                WeaponFires = new List <WeaponFire>()
                {
                    weaponFire
                }
            };
            PlaybackManager.Instance.WeaponFiredFrames.Add(frame);
        }
        else
        {
            frame.WeaponFires.Add(weaponFire);
        }
    }