public override void OnEvent(WeaponFired evnt)
    {
        base.OnEvent(evnt);

        //TODO: Spawn a muzzle flash.
        ResetShootTimer();
    }
Esempio n. 2
0
 private void OnWeaponFiredCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     IncendiaryThrownCount = WeaponFired.Count(w => w.Weapon.Element == EquipmentElement.Incendiary);
     MolotovThrownCount    = WeaponFired.Count(w => w.Weapon.Element == EquipmentElement.Molotov);
     DecoyThrownCount      = WeaponFired.Count(w => w.Weapon.Element == EquipmentElement.Decoy);
     HeGrenadeThrownCount  = WeaponFired.Count(w => w.Weapon.Element == EquipmentElement.HE);
     SmokeThrownCount      = WeaponFired.Count(w => w.Weapon.Element == EquipmentElement.Smoke);
     FlashbangThrownCount  = WeaponFired.Count(w => w.Weapon.Element == EquipmentElement.Flash);
 }
Esempio n. 3
0
        private void Shoot(int spreadFactor)
        {
            var weaponFired = WeaponFired.Create(GlobalTargets.OnlyServer, ReliabilityModes.ReliableOrdered);

            weaponFired.WeaponId = weapon.Id;
            weaponFired.Entity   = weapon.Player;
            weaponFired.Send();

            var weaponSound = WeaponSound.Create(GlobalTargets.Everyone, ReliabilityModes.Unreliable);

            weaponSound.Position = transform.position;
            weaponSound.Label    = weapon.Label;
            weaponSound.Player   = player.entity;
            weaponSound.Send();

            var dir = Spread(spreadFactor);

            if (!Physics.Raycast(cameraTransform.transform.position, dir, out var hit, 100))
            {
                return;
            }

            if (hit.transform.CompareTag("Stalin"))
            {
                AudioSource soundSource = hit.transform.GetComponent <AudioSource>();
                if (!soundSource.isPlaying)
                {
                    soundSource.Play();
                }
            }

            var boltEntity = hit.transform.GetComponent <BoltEntity>();

            if (boltEntity != null && boltEntity.GetState <IPlayer>() != null)
            {
                var playerHit = PlayerHit.Create(GlobalTargets.OnlyServer);
                playerHit.Target        = boltEntity;
                playerHit.PlayerWhoShot = player.state.Username;
                playerHit.WeaponName    = weapon.Label;
                playerHit.Damage        = weapon.Damage;
                playerHit.Send();


                var applyHitIndicator = ApplyHitIndicator.Create(ReliabilityModes.Unreliable);
                applyHitIndicator.Message  = "Damage: " + weapon.Damage;
                applyHitIndicator.Position = hit.point;
                applyHitIndicator.Send();
            }
            else
            {
                var impactEffect = ImpactEffect.Create(ReliabilityModes.Unreliable);
                impactEffect.Position = hit.point;
                impactEffect.Send();
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Gets called whenever a weapon has been fired.
        /// </summary>
        /// <param name="weaponFired"></param>
        public override void OnEvent(WeaponFired weaponFired)
        {
            var weaponState = weaponFired.Entity.GetState <IPlayer>();

            weaponState.Weapons[weaponFired.WeaponId].CurrentAmmoInMagazine--;
            weaponState.Weapons[weaponFired.WeaponId].EntireAmmo--;

            if (ConvertWeaponIdToName(weaponFired.WeaponId) != "Sponge")
            {
                return;
            }

            weaponState.Weapons[weaponFired.WeaponId].IsWet      = false;
            weaponState.Weapons[weaponFired.WeaponId].IsEquipped = false;
        }
Esempio n. 5
0
        public override string ToString()
        {
            string temp = "DetectedUnitTargetted ";

            if (UnitTargetting != null)
            {
                temp += " Unit " + UnitTargetting.ToShortString();
            }
            if (WeaponFired != null)
            {
                temp += " Weapon " + WeaponFired.ToString();
            }
            temp += " at " + TargettedGameTime.ToLongTimeString();
            //targetted by wpn umit at time
            return(temp);
        }
Esempio n. 6
0
    public override void OnWeapon()
    {
        Debug.DrawRay(transform.position, transform.forward * 10f, Color.red);
        timer += Time.deltaTime;
        if (timer >= rate && Physics.SphereCast(transform.position, 1f, transform.forward, out RaycastHit hit) && isActive)
        {
            // GetComponentInParent<TowerAudio>()?.PlayWeaponSound(weaponSound);
            WeaponFired?.Invoke(this);

            timer = 0f;
            projectile pr  = pool.GetNext(projectileSpawnPoint.position, rotTransform.rotation);
            projectile prj = pool.GetNext(projectileSpawnPoint2.position, rotTransform.rotation);


            //Instantiate(projectile, projectileSpawnPoint.position, rotTransform.rotation);
            //Instantiate(projectile, projectileSpawnPoint2.position, rotTransform.rotation);
        }
    }
    public override void Fire()
    {
        if (!entity.IsOwner())
        {
            return;
        }

        if (CanFire())
        {
            GameObject projectile       = BoltNetwork.Instantiate(projectilePrefab, muzzleSpawnPos.position, Quaternion.identity);
            Projectile projectileScript = projectile.GetComponent <Projectile>();
            if (projectileScript)
            {
                projectileScript.SetData(damage, GetDirection(), owner);
            }

            WeaponFired.Create(entity).Send();
        }
    }
Esempio n. 8
0
        public void Reset(int tick)
        {
            AverageHealthDamagePerPlayer = 0;
            BombDefused           = null;
            BombDefusedCount      = 0;
            BombExploded          = null;
            BombExplodedCount     = 0;
            BombPlanted           = null;
            BombPlantedCount      = 0;
            CrouchKillCount       = 0;
            DamageArmorCount      = 0;
            DamageHealthCount     = 0;
            DecoyThrownCount      = 0;
            EntryHoldKillEvent    = null;
            EntryKillEvent        = null;
            EquipementValueTeamCt = 0;
            EquipementValueTeamT  = 0;
            FiveKillCount         = 0;
            FourKillCount         = 0;
            IncendiaryThrownCount = 0;
            JumpKillCount         = 0;
            KillCount             = 0;
            MolotovThrownCount    = 0;
            OneKillCount          = 0;
            SideTrouble           = Side.None;
            SmokeThrownCount      = 0;
            TeamTroubleName       = string.Empty;
            ThreeKillCount        = 0;
            TradeKillCount        = 0;
            Tick         = tick;
            Type         = RoundType.NORMAL;
            TwoKillCount = 0;
            WinnerName   = string.Empty;
            WinnerSide   = Side.None;

            ExplosiveGrenadesExploded.Clear();
            FlashbangsExploded.Clear();
            Kills.Clear();
            PlayersHurted.Clear();
            SmokeStarted.Clear();
            WeaponFired.Clear();
        }
        private void Shoot()
        {
            //spawn projectile
            var throwSponge = ThrowSponge.Create(GlobalTargets.Everyone, ReliabilityModes.ReliableOrdered);

            throwSponge.Position  = player.playerCamera.transform.position + player.playerCamera.transform.forward * .5f;
            throwSponge.Direction = player.playerCamera.transform.forward;
            throwSponge.Force     = weapon.Force;
            throwSponge.SpongeId  = new Guid();
            throwSponge.Player    = player.entity;
            throwSponge.Send();


            var weaponFired = WeaponFired.Create(GlobalTargets.OnlyServer, ReliabilityModes.ReliableOrdered);

            weaponFired.WeaponId = weapon.Id;
            weaponFired.Entity   = weapon.Player;
            weaponFired.Send();

            player.ChangeWeaponIndex(player.weaponSystem.FindNextWeaponIndex(player.state.ActiveWeaponIndex));
        }
 public override void OnWeapon()
 {
     Debug.DrawRay(beamStartPoint.position, transform.up * range, Color.red);
     timer += Time.deltaTime;
     if (timer >= rate)
     {
         // GetComponentInParent<TowerAudio>()?.PlayWeaponSound(weaponSound);
         WeaponFired?.Invoke(this);
         timer = 0f;
         Ray        ray = new Ray(beamStartPoint.position, transform.up);
         RaycastHit hitInfo;
         if (Physics.Raycast(ray, out hitInfo, range, layerMask, QueryTriggerInteraction.Collide))
         {
             //hitInfo.collider.GetComponent<Enemy>().TakeDamage();
             //Debug.Log(hitInfo.collider.name);
             Enemy enemy = hitInfo.collider.GetComponent <Enemy>();
             //Debug.Log(enemy == null);
             enemy?.TakeDamage();
         }
     }
 }
Esempio n. 11
0
 public void ResetStats(bool resetTeams = true)
 {
     DispatcherHelper.CheckBeginInvokeOnUI(delegate
     {
         AverageHealthDamage   = 0;
         AverageHltvRating     = 0;
         AverageEseaRws        = 0;
         AssistPerRound        = 0;
         DeathPerRound         = 0;
         KillPerRound          = 0;
         DamageHealthCount     = 0;
         DamageArmorCount      = 0;
         MvpCount              = 0;
         KillCount             = 0;
         KnifeKillCount        = 0;
         TeamKillCount         = 0;
         HeadshotCount         = 0;
         AssistCount           = 0;
         DeathCount            = 0;
         SmokeThrownCount      = 0;
         FlashbangThrownCount  = 0;
         HeadshotCount         = 0;
         DecoyThrownCount      = 0;
         MolotovThrownCount    = 0;
         IncendiaryThrownCount = 0;
         HitCount              = 0;
         WeaponFiredCount      = 0;
         AssistPerRound        = 0;
         DeathPerRound         = 0;
         OneKillCount          = 0;
         TwoKillCount          = 0;
         ThreeKillCount        = 0;
         FourKillCount         = 0;
         FiveKillCount         = 0;
         ScoreTeam1            = 0;
         ScoreTeam2            = 0;
         ScoreFirstHalfTeam1   = 0;
         ScoreFirstHalfTeam2   = 0;
         ScoreSecondHalfTeam1  = 0;
         ScoreSecondHalfTeam2  = 0;
         Rounds.Clear();
         WeaponFired.Clear();
         Kills.Clear();
         Overtimes.Clear();
         PositionPoints.Clear();
         MolotovsFireStarted.Clear();
         DecoyStarted.Clear();
         BombPlanted.Clear();
         BombDefused.Clear();
         BombExploded.Clear();
         BombPlanted.Clear();
         BombDefused.Clear();
         BombExploded.Clear();
         ClutchCount           = 0;
         ClutchLostCount       = 0;
         ClutchWonCount        = 0;
         EntryKillCount        = 0;
         MostBombPlantedPlayer = null;
         MostEntryKillPlayer   = null;
         MostHeadshotPlayer    = null;
         MostKillingWeapon     = null;
         HasCheater            = false;
         PlayersHurted.Clear();
         PlayerBlinded.Clear();
         Winner    = null;
         Surrender = null;
         if (resetTeams)
         {
             Players.Clear();
             TeamCT.Clear();
             TeamT.Clear();
         }
         else
         {
             foreach (Player playerExtended in Players)
             {
                 playerExtended.ResetStats();
             }
         }
     });
 }
Esempio n. 12
0
        private void HandleCurrentEvents()
        {
            foreach (BaseEvent baseEvent in currentTick.Events)
            {
                switch (baseEvent.Type)
                {
                case EventType.MatchStarted:
                    MatchStarted?.Invoke(this, baseEvent);
                    break;

                case EventType.RoundAnnounceMatchStarted:

                    break;

                case EventType.RoundStart:
                    RoundStart?.Invoke(this, (RoundStartEvent)baseEvent);
                    break;

                case EventType.RoundEnd:
                    RoundEnd?.Invoke(this, (RoundEndEvent)baseEvent);
                    break;

                case EventType.WinPanelMatch:
                    WinPanelMatch?.Invoke(this, baseEvent);
                    break;

                case EventType.RoundFinal:
                    break;

                case EventType.LastRoundHalf:
                    break;

                case EventType.RoundOfficiallyEnd:
                    RoundOfficiallyEnd?.Invoke(this, baseEvent);
                    break;

                case EventType.RoundMVP:
                    RoundMVP?.Invoke(this, (RoundMVPEvent)baseEvent);
                    break;

                case EventType.FreezetimeEnded:
                    FreezetimeEnded?.Invoke(this, baseEvent);
                    break;

                case EventType.PlayerKilled:
                    PlayerKilled?.Invoke(this, (PlayerKilledEvent)baseEvent);
                    break;

                case EventType.PlayerTeam:
                    PlayerTeam?.Invoke(this, (PlayerTeamEvent)baseEvent);
                    break;

                case EventType.WeaponFired:
                    WeaponFired?.Invoke(this, (WeaponFiredEvent)baseEvent);
                    break;

                case EventType.SmokeNadeStarted:
                    SmokeNadeStarted?.Invoke(this, (SmokeNadeStartedEvent)baseEvent);
                    break;

                case EventType.SmokeNadeEnded:
                    SmokeNadeEnded?.Invoke(this, (SmokeNadeEndedEvent)baseEvent);
                    break;

                case EventType.DecoyNadeStarted:
                    DecoyNadeStarted?.Invoke(this, (DecoyNadeStartedEvent)baseEvent);
                    break;

                case EventType.DecoyNadeEnded:
                    DecoyNadeEnded?.Invoke(this, (DecoyNadeEndedEvent)baseEvent);
                    break;

                case EventType.FireNadeStarted:
                    FireNadeStarted?.Invoke(this, (FireNadeStartedEvent)baseEvent);
                    break;

                case EventType.FireNadeWithOwnerStarted:
                    FireNadeWithOwnerStarted?.Invoke(this, (FireNadeWithOwnerStartedEvent)baseEvent);
                    break;

                case EventType.FireNadeEnded:
                    FireNadeEnded?.Invoke(this, (FireNadeEndedEvent)baseEvent);
                    break;

                case EventType.FlashNadeExploded:
                    FlashNadeExploded?.Invoke(this, (FlashNadeExplodedEvent)baseEvent);
                    break;

                case EventType.ExplosiveNadeExploded:
                    ExplosiveNadeExploded?.Invoke(this, (ExplosiveNadeExplodedEvent)baseEvent);
                    break;

                case EventType.NadeReachedTarget:
                    NadeReachedTarget?.Invoke(this, (NadeReachedTargetEvent)baseEvent);
                    break;

                case EventType.BombBeginPlant:
                    BombBeginPlant?.Invoke(this, (BombBeginPlantEvent)baseEvent);
                    break;

                case EventType.BombAbortPlant:
                    BombAbortPlant?.Invoke(this, (BombAbortPlantEvent)baseEvent);
                    break;

                case EventType.BombPlanted:
                    BombPlanted?.Invoke(this, (BombPlantedEvent)baseEvent);
                    break;

                case EventType.BombDefused:
                    BombDefused?.Invoke(this, (BombDefusedEvent)baseEvent);
                    break;

                case EventType.BombExploded:
                    BombExploded?.Invoke(this, (BombExplodedEvent)baseEvent);
                    break;

                case EventType.BombBeginDefuse:
                    BombBeginDefuse?.Invoke(this, (BombBeginDefuseEvent)baseEvent);
                    break;

                case EventType.BombAbortDefuse:
                    BombAbortDefuse?.Invoke(this, (BombAbortDefuseEvent)baseEvent);
                    break;

                case EventType.PlayerHurt:
                    PlayerHurt?.Invoke(this, (PlayerHurtEvent)baseEvent);
                    break;

                case EventType.Blind:
                    Blind?.Invoke(this, (BlindEvent)baseEvent);
                    break;

                case EventType.PlayerBind:
                    PlayerBind?.Invoke(this, (PlayerBindEvent)baseEvent);
                    break;

                case EventType.PlayerDisconnect:
                    PlayerDisconnect?.Invoke(this, (PlayerDisconnectEvent)baseEvent);
                    break;

                case EventType.SayText:
                    SayText?.Invoke(this, (SayTextEvent)baseEvent);
                    break;

                case EventType.SayText2:
                    SayText2?.Invoke(this, (SayText2Event)baseEvent);
                    break;

                case EventType.PlayerJump:
                    PlayerJump?.Invoke(this, (PlayerJumpEvent)baseEvent);
                    break;

                case EventType.PlayerFootstep:
                    PlayerFootstep?.Invoke(this, (PlayerFootstepEvent)baseEvent);
                    break;

                case EventType.OtherDeath:
                    OtherDeath?.Invoke(this, (OtherDeathEvent)baseEvent);
                    break;

                case EventType.EntitySpawned:
                    EntitySpawned?.Invoke(this, (EntitySpawnedEvent)baseEvent);
                    break;

                case EventType.EntityRemoved:
                    EntityRemoved?.Invoke(this, (EntityRemovedEvent)baseEvent);
                    break;

                default:
                    break;
                }
            }
        }