Example #1
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value != null)
            {
                StuffType type = (StuffType)value;
                switch (type)
                {
                case StuffType.DECOY:
                    return(Properties.Resources.Adecoy);

                case StuffType.FLASHBANG:
                    return(Properties.Resources.AFlashbang);

                case StuffType.HE:
                    return(Properties.Resources.AnHE);

                case StuffType.INCENDIARY:
                    return(Properties.Resources.AnIncendiary);

                case StuffType.MOLOTOV:
                    return(Properties.Resources.AMolotov);

                case StuffType.SMOKE:
                    return(Properties.Resources.Asmoke);

                default:
                    return(Properties.Resources.Unknown);
                }
            }

            return(Properties.Resources.Unknown);
        }
Example #2
0
        public Task <List <Stuff> > GetStuffPointListAsync(Demo demo, StuffType type)
        {
            List <Stuff> stuffs = new List <Stuff>();
            Random       r      = new Random();

            for (int i = 0; i < 30; i++)
            {
                stuffs.Add(new Stuff
                {
                    RoundNumber    = r.Next(20),
                    Tick           = r.Next(10000),
                    Type           = StuffType.FLASHBANG,
                    ThrowerName    = "Player " + r.Next(1, 10),
                    FlashedPlayers = new List <Player>
                    {
                        new Player
                        {
                            Name = "Player " + r.Next(1, 10)
                        }
                    }
                });
            }

            return(Task.FromResult(stuffs));
        }
Example #3
0
 public Stuff(StuffType type, int count = 1)
 {
     this.type  = type;
     this.count = count;
 }
Example #4
0
 public Task <List <Stuff> > GetStuffPointListAsync(Demo demo, StuffType type)
 {
     throw new NotImplementedException();
 }
        public async Task <List <Stuff> > GetStuffPointListAsync(Demo demo, StuffType type)
        {
            List <Stuff> stuffs = new List <Stuff>();

            await Task.Factory.StartNew(() =>
            {
                switch (type)
                {
                case StuffType.SMOKE:
                    foreach (Round round in demo.Rounds)
                    {
                        List <WeaponFireEvent> weaponFired = round.WeaponFired.Where(e => e.Weapon.Element == EquipmentElement.Smoke).ToList();
                        weaponFired.Sort((w1, w2) => w1.ShooterSteamId.CompareTo(w2.ShooterSteamId));
                        if (weaponFired.Count == round.SmokeStarted.Count)
                        {
                            List <SmokeNadeStartedEvent> smokeList = round.SmokeStarted.ToList();
                            smokeList.Sort((s1, s2) => s1.ThrowerSteamId.CompareTo(s2.ThrowerSteamId));
                            for (int i = 0; i < smokeList.Count; i++)
                            {
                                if (smokeList[i].Point != null && smokeList[i].ThrowerSteamId == weaponFired[i].ShooterSteamId)
                                {
                                    Stuff s = new Stuff
                                    {
                                        Tick              = weaponFired[i].Tick,
                                        RoundSeconds      = (float)Math.Round((weaponFired[i].Tick - round.FreezetimeEndTick) / demo.ServerTickrate, 2),
                                        DemoSeconds       = (float)Math.Round(weaponFired[i].Tick / demo.ServerTickrate, 2),
                                        RoundNumber       = round.Number,
                                        Type              = StuffType.SMOKE,
                                        StartX            = weaponFired[i].Point.X,
                                        StartY            = weaponFired[i].Point.Y,
                                        EndX              = smokeList[i].Point.X,
                                        EndY              = smokeList[i].Point.Y,
                                        ThrowerName       = weaponFired[i].ShooterName,
                                        ThrowerSteamId    = weaponFired[i].ShooterSteamId,
                                        ShooterPosX       = weaponFired[i].ShooterPosX,
                                        ShooterPosY       = weaponFired[i].ShooterPosY,
                                        ShooterPosZ       = weaponFired[i].ShooterPosZ,
                                        ShooterAnglePitch = weaponFired[i].ShooterAnglePitch,
                                        ShooterAngleYaw   = weaponFired[i].ShooterAngleYaw
                                    };
                                    stuffs.Add(s);
                                }
                            }
                        }
                    }
                    break;

                case StuffType.FLASHBANG:
                    foreach (Round round in demo.Rounds)
                    {
                        List <WeaponFireEvent> weaponFired = round.WeaponFired.Where(e => e.Weapon.Element == EquipmentElement.Flash).ToList();
                        weaponFired.Sort((w1, w2) => w1.ShooterSteamId.CompareTo(w2.ShooterSteamId));
                        if (weaponFired.Count == round.FlashbangsExploded.Count)
                        {
                            List <FlashbangExplodedEvent> flashList = round.FlashbangsExploded.ToList();
                            flashList.Sort((s1, s2) => s1.ThrowerSteamId.CompareTo(s2.ThrowerSteamId));
                            for (int i = 0; i < flashList.Count; i++)
                            {
                                if (flashList[i].Point != null && flashList[i].ThrowerSteamId == weaponFired[i].ShooterSteamId)
                                {
                                    Stuff s = new Stuff
                                    {
                                        Tick              = weaponFired[i].Tick,
                                        RoundSeconds      = (float)Math.Round((weaponFired[i].Tick - round.FreezetimeEndTick) / demo.ServerTickrate, 2),
                                        DemoSeconds       = (float)Math.Round(weaponFired[i].Tick / demo.ServerTickrate, 2),
                                        RoundNumber       = round.Number,
                                        Type              = StuffType.FLASHBANG,
                                        StartX            = weaponFired[i].Point.X,
                                        StartY            = weaponFired[i].Point.Y,
                                        EndX              = flashList[i].Point.X,
                                        EndY              = flashList[i].Point.Y,
                                        ThrowerName       = weaponFired[i].ShooterName,
                                        ThrowerSteamId    = weaponFired[i].ShooterSteamId,
                                        ShooterPosX       = weaponFired[i].ShooterPosX,
                                        ShooterPosY       = weaponFired[i].ShooterPosY,
                                        ShooterPosZ       = weaponFired[i].ShooterPosZ,
                                        ShooterAnglePitch = weaponFired[i].ShooterAnglePitch,
                                        ShooterAngleYaw   = weaponFired[i].ShooterAngleYaw
                                    };
                                    List <Player> flashedPlayerList = flashList[i].FlashedPlayerSteamIdList.Select(
                                        steamId => demo.Players.First(p => p.SteamId == steamId)).ToList();
                                    s.FlashedPlayers = flashedPlayerList;
                                    stuffs.Add(s);
                                }
                            }
                        }
                    }
                    break;

                case StuffType.HE:
                    foreach (Round round in demo.Rounds)
                    {
                        List <WeaponFireEvent> weaponFired = round.WeaponFired.Where(e => e.Weapon.Element == EquipmentElement.HE).ToList();
                        weaponFired.Sort((w1, w2) => w1.ShooterSteamId.CompareTo(w2.ShooterSteamId));
                        if (weaponFired.Count == round.ExplosiveGrenadesExploded.Count)
                        {
                            for (int i = 0; i < round.ExplosiveGrenadesExploded.Count; i++)
                            {
                                List <ExplosiveNadeExplodedEvent> heList = round.ExplosiveGrenadesExploded.ToList();
                                heList.Sort((s1, s2) => s1.ThrowerSteamId.CompareTo(s2.ThrowerSteamId));
                                if (heList[i].Point != null && heList[i].ThrowerSteamId == weaponFired[i].ShooterSteamId)
                                {
                                    Stuff s = new Stuff
                                    {
                                        Tick              = weaponFired[i].Tick,
                                        RoundSeconds      = (float)Math.Round((weaponFired[i].Tick - round.FreezetimeEndTick) / demo.ServerTickrate, 2),
                                        DemoSeconds       = (float)Math.Round(weaponFired[i].Tick / demo.ServerTickrate, 2),
                                        RoundNumber       = round.Number,
                                        Type              = StuffType.HE,
                                        StartX            = weaponFired[i].Point.X,
                                        StartY            = weaponFired[i].Point.Y,
                                        EndX              = heList[i].Point.X,
                                        EndY              = heList[i].Point.Y,
                                        ThrowerName       = weaponFired[i].ShooterName,
                                        ThrowerSteamId    = weaponFired[i].ShooterSteamId,
                                        ShooterPosX       = weaponFired[i].ShooterPosX,
                                        ShooterPosY       = weaponFired[i].ShooterPosY,
                                        ShooterPosZ       = weaponFired[i].ShooterPosZ,
                                        ShooterAnglePitch = weaponFired[i].ShooterAnglePitch,
                                        ShooterAngleYaw   = weaponFired[i].ShooterAngleYaw
                                    };
                                    stuffs.Add(s);
                                }
                            }
                        }
                    }
                    break;

                case StuffType.MOLOTOV:
                    foreach (Round round in demo.Rounds)
                    {
                        List <WeaponFireEvent> weaponFired = round.WeaponFired.Where(e => e.Weapon.Element == EquipmentElement.Molotov).ToList();
                        weaponFired.Sort((w1, w2) => w1.ShooterSteamId.CompareTo(w2.ShooterSteamId));
                        List <MolotovFireStartedEvent> fireStartedList = demo.MolotovsFireStarted.Where(e => e.RoundNumber == round.Number).ToList();
                        fireStartedList.Sort((w1, w2) => w1.ThrowerSteamId.CompareTo(w2.ThrowerSteamId));
                        if (weaponFired.Count == fireStartedList.Count)
                        {
                            for (int i = 0; i < fireStartedList.Count; i++)
                            {
                                if (fireStartedList[i].Point != null && fireStartedList[i].ThrowerSteamId == weaponFired[i].ShooterSteamId)
                                {
                                    Stuff s = new Stuff
                                    {
                                        Tick              = weaponFired[i].Tick,
                                        RoundSeconds      = (float)Math.Round((weaponFired[i].Tick - round.FreezetimeEndTick) / demo.ServerTickrate, 2),
                                        DemoSeconds       = (float)Math.Round(weaponFired[i].Tick / demo.ServerTickrate, 2),
                                        RoundNumber       = round.Number,
                                        Type              = StuffType.MOLOTOV,
                                        StartX            = weaponFired[i].Point.X,
                                        StartY            = weaponFired[i].Point.Y,
                                        EndX              = fireStartedList[i].Point.X,
                                        EndY              = fireStartedList[i].Point.Y,
                                        ThrowerName       = weaponFired[i].ShooterName,
                                        ThrowerSteamId    = weaponFired[i].ShooterSteamId,
                                        ShooterPosX       = weaponFired[i].ShooterPosX,
                                        ShooterPosY       = weaponFired[i].ShooterPosY,
                                        ShooterPosZ       = weaponFired[i].ShooterPosZ,
                                        ShooterAnglePitch = weaponFired[i].ShooterAnglePitch,
                                        ShooterAngleYaw   = weaponFired[i].ShooterAngleYaw
                                    };
                                    stuffs.Add(s);
                                }
                            }
                        }
                    }
                    break;

                case StuffType.INCENDIARY:
                    foreach (Round round in demo.Rounds)
                    {
                        List <WeaponFireEvent> weaponFired = round.WeaponFired.Where(e => e.Weapon.Element == EquipmentElement.Incendiary).ToList();
                        weaponFired.Sort((w1, w2) => w1.ShooterSteamId.CompareTo(w2.ShooterSteamId));
                        List <MolotovFireStartedEvent> fireStartedList = demo.IncendiariesFireStarted.Where(e => e.RoundNumber == round.Number).ToList();
                        fireStartedList.Sort((w1, w2) => w1.ThrowerSteamId.CompareTo(w2.ThrowerSteamId));
                        if (weaponFired.Count == fireStartedList.Count)
                        {
                            for (int i = 0; i < fireStartedList.Count; i++)
                            {
                                if (fireStartedList[i].Point != null && fireStartedList[i].ThrowerSteamId == weaponFired[i].ShooterSteamId)
                                {
                                    Stuff s = new Stuff
                                    {
                                        Tick              = weaponFired[i].Tick,
                                        RoundSeconds      = (float)Math.Round((weaponFired[i].Tick - round.FreezetimeEndTick) / demo.ServerTickrate, 2),
                                        DemoSeconds       = (float)Math.Round(weaponFired[i].Tick / demo.ServerTickrate, 2),
                                        RoundNumber       = round.Number,
                                        Type              = StuffType.INCENDIARY,
                                        StartX            = weaponFired[i].Point.X,
                                        StartY            = weaponFired[i].Point.Y,
                                        EndX              = fireStartedList[i].Point.X,
                                        EndY              = fireStartedList[i].Point.Y,
                                        ThrowerName       = weaponFired[i].ShooterName,
                                        ThrowerSteamId    = weaponFired[i].ShooterSteamId,
                                        ShooterPosX       = weaponFired[i].ShooterPosX,
                                        ShooterPosY       = weaponFired[i].ShooterPosY,
                                        ShooterPosZ       = weaponFired[i].ShooterPosZ,
                                        ShooterAnglePitch = weaponFired[i].ShooterAnglePitch,
                                        ShooterAngleYaw   = weaponFired[i].ShooterAngleYaw
                                    };
                                    stuffs.Add(s);
                                }
                            }
                        }
                    }
                    break;

                case StuffType.DECOY:
                    foreach (Round round in demo.Rounds)
                    {
                        List <WeaponFireEvent> weaponFired = round.WeaponFired.Where(e => e.Weapon.Element == EquipmentElement.Decoy).ToList();
                        weaponFired.Sort((w1, w2) => w1.ShooterSteamId.CompareTo(w2.ShooterSteamId));
                        List <DecoyStartedEvent> decoyStartedList = demo.DecoyStarted.Where(e => e.RoundNumber == round.Number).ToList();
                        decoyStartedList.Sort((w1, w2) => w1.ThrowerSteamId.CompareTo(w2.ThrowerSteamId));
                        if (weaponFired.Count == decoyStartedList.Count)
                        {
                            for (int i = 0; i < decoyStartedList.Count; i++)
                            {
                                if (decoyStartedList[i].Point != null && decoyStartedList[i].ThrowerSteamId == weaponFired[i].ShooterSteamId)
                                {
                                    Stuff s = new Stuff
                                    {
                                        Tick              = weaponFired[i].Tick,
                                        RoundSeconds      = (float)Math.Round((weaponFired[i].Tick - round.FreezetimeEndTick) / demo.ServerTickrate, 2),
                                        DemoSeconds       = (float)Math.Round(weaponFired[i].Tick / demo.ServerTickrate, 2),
                                        RoundNumber       = round.Number,
                                        Type              = StuffType.DECOY,
                                        StartX            = weaponFired[i].Point.X,
                                        StartY            = weaponFired[i].Point.Y,
                                        EndX              = decoyStartedList[i].Point.X,
                                        EndY              = decoyStartedList[i].Point.Y,
                                        ThrowerName       = weaponFired[i].ShooterName,
                                        ThrowerSteamId    = weaponFired[i].ShooterSteamId,
                                        ShooterPosX       = weaponFired[i].ShooterPosX,
                                        ShooterPosY       = weaponFired[i].ShooterPosY,
                                        ShooterPosZ       = weaponFired[i].ShooterPosZ,
                                        ShooterAnglePitch = weaponFired[i].ShooterAnglePitch,
                                        ShooterAngleYaw   = weaponFired[i].ShooterAngleYaw
                                    };
                                    stuffs.Add(s);
                                }
                            }
                        }
                    }
                    break;
                }
            });

            return(stuffs.OrderBy(s => s.Tick).ToList());
        }
Example #6
0
 // Use this for initialization
 protected override void Start()
 {
     Type = StuffType.Default;
     base.Start();
     //DropSpeed = DropSpeedStart;
 }