/// <summary> /// Gets called whenever a sponge is fully charged to change the wet-state. /// </summary> /// <param name="rechargeSponge"></param> public override void OnEvent(RechargeSponge rechargeSponge) { //Get the player-state. var playerState = rechargeSponge.Player.GetState <IPlayer>(); //Get the sponge and change the wet-state to true. playerState.Weapons[ConvertWeaponNameToId("Sponge")].IsWet = true; rechargeSponge.Player.gameObject.GetComponent <Player>().hud.RefreshWeaponDisplay(); }
private void OnTriggerStay(Collider other) { if (_filled) { wetProgressSlider.value = 100; wetProgressText.text = "100%"; _error = true; } if (!_hasDrySpongeInHand) { _error = true; } if (_error) { return; } _currentProgress += deltaTime * 140 / 5; wetProgressSlider.value = (int)_currentProgress; wetProgressText.text = (int)_currentProgress + "%"; if (_currentProgress >= 100) { RechargeSponge rechargeSponge = RechargeSponge.Create(GlobalTargets.OnlyServer, ReliabilityModes.ReliableOrdered); rechargeSponge.Player = _player; rechargeSponge.Send(); _filled = true; var playerSoundForOthers = PlaySoundForEveryone.Create(GlobalTargets.Everyone, ReliabilityModes.Unreliable); playerSoundForOthers.Position = transform.position; playerSoundForOthers.SoundName = "Tap-Water"; playerSoundForOthers.State = false; playerSoundForOthers.Send(); } else { var playerSoundForOthers = PlaySoundForEveryone.Create(GlobalTargets.Everyone, ReliabilityModes.Unreliable); playerSoundForOthers.Position = transform.position; playerSoundForOthers.SoundName = "Tap-Water"; playerSoundForOthers.State = true; playerSoundForOthers.Send(); } }