예제 #1
0
    public void AddSmokeNadeEffect(DemoParser parser, SmokeEventArgs eventArgs)
    {
        if (!NadeEffectFrames.Any(n => n.Tick == parser.CurrentTick))
        {
            NadeEffectFrames.Add(new NadeEffectFrame()
            {
                Tick        = parser.CurrentTick,
                Round       = MatchInfoManager.Instance.Rounds.Last().Number,
                NadeEffects = new List <NadeEffect>()
            });
        }

        if (eventArgs.ThrownBy == null)
        {
            return;
        }

        var nadeEffect = new NadeEffect()
        {
            Guid     = Guid.NewGuid(),
            Duration = 18,
            Thrower  = eventArgs.ThrownBy.SteamID.ToString(),
            NadeType = EquipmentElement.Smoke,
            Position = (DemoInfoHelper.SourceToUnityVector(eventArgs.Position.Copy()) / GraphicsManager.PlaybackScale) - GraphicsManager.Instance.Map.Offset
        };

        NadeEffectFrames.Last().NadeEffects.Add(nadeEffect);
    }
예제 #2
0
    private void AddNadeEffect(NadeEffect nade, int tick)
    {
        var offset = Vector3.zero;

        var nadeEffectClone = Instantiate(NadeEffectPrefab);

        nadeEffectClone.name = $"NadeEffect {nade.Guid}";

        nadeEffectClone.transform.position = nade.Position;

        var nadeGraphics = nadeEffectClone.GetComponent <NadeEffectGraphics>();

        nadeGraphics.NadeType = nade.NadeType;

        nadeGraphics.Duration = nade.Duration;

        nadeGraphics.StartTick = tick;

        _nadeEffects.Add(nade.Guid, nadeGraphics);
    }