public override void OnEvent(WeaponFired evnt) { base.OnEvent(evnt); //TODO: Spawn a muzzle flash. ResetShootTimer(); }
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); }
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(); } }
/// <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; }
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); }
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(); } }
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(); } } }
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(); } } }); }
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; } } }