public override void OnEvent(DestroySpongeOnHit destroySpongeOnHit) { foreach (var projectile in FindObjectsOfType <SpongeProjectile>()) { if (projectile.guid != destroySpongeOnHit.SpongeId) { continue; } Destroy(projectile.gameObject); break; } }
private void FixedUpdate() { if (_grounded || !_launch) { return; } if (transform.position.y <= 0) { _grounded = true; var t = transform.position; t.y = 0.2f; transform.position = t; } var groundRay = new Ray(transform.position, _groundCheck); if (!Physics.Raycast(groundRay, out _, 0.25f, 9)) { return; } _grounded = true; var spawnSponge = SpawnSponge.Create(GlobalTargets.OnlyServer, ReliabilityModes.ReliableOrdered); spawnSponge.Position = transform.position; spawnSponge.Type = "Weapon-Sponge"; spawnSponge.Send(); var createSplash = CreateSplash.Create(GlobalTargets.Everyone, ReliabilityModes.ReliableOrdered); createSplash.Position = transform.position; createSplash.Radius = player.weaponSystem.spongeWeaponState.weapon.Radius; createSplash.Damage = player.weaponSystem.spongeWeaponState.weapon.Damage; createSplash.PlayerWhoShot = player.entity; createSplash.Send(); var destroySpongeOnHit = DestroySpongeOnHit.Create(GlobalTargets.Everyone, ReliabilityModes.ReliableOrdered); destroySpongeOnHit.SpongeId = guid; destroySpongeOnHit.Send(); }