public void Explode() { Exploded?.Invoke(); trail.Cancel(); AddToParent(new Explosion(Position, 20, 0.25)); Destroy(); }
public void Accelerate(int delta) { // If the car is dead, fire Exploded event. if (carIsDead) { Exploded?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); } else { CurrentSpeed += delta; // Almost dead? if (10 == MaxSpeed - CurrentSpeed) { AboutToBlow?.Invoke(this, new CarEventArgs("Careful buddy! Gonna blow!")); } // Still OK! if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }
//Implement the Accelerate() method to invoke the delegate's //invocation list under the correct circumstances. public void Accelerate(int delta) { //if car is "dead" fire exploded event if (IsCarDead) { Exploded?.Invoke("Sorry, this car is dead!"); } else { currentSpeed += delta; //car is almost dead if (10 == MaxSpeed - currentSpeed) { AboutToBlow?.Invoke("Careful buddy! Gonna blow!"); } if (currentSpeed >= MaxSpeed) { IsCarDead = true; } else { Console.WriteLine($"CurrentSpeed: {currentSpeed}"); } } }
public void Accelerate(int delta) { if (carIsDead) { // Also, you can do like follows using null conditional operator Exploded?.Invoke(this, new CarEventArgs("Sorry, this CarWithGenericEventHandle is dead...")); } else { CurrentSpeed += delta; // Also, you can do like follows using null conditional operator if (10 == (MaxSpeed - CurrentSpeed)) { AboutToBlow?.Invoke(this, new CarEventArgs("CarWithGenericEventHandleeful buddy! Gonna blow!")); } if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }
private void OnCollisionEnter2D(Collision2D other) { if (_colliding) { return; } if (other.gameObject.CompareTag("Pickup")) { return; } if (other.otherCollider == landingGear && !other.gameObject.CompareTag("Enemy")) { return; } _colliding = true; var explosion = explosionPrefabs[Random.Range(0, explosionPrefabs.Length)]; explosion.Get <Explosion>(transform.position, Quaternion.identity); PlayExplosionAudio(); GetComponent <HelicopterController>().enabled = false; DisableChildren(); Destroy(gameObject, 2f); Exploded.Invoke(); }
// private CarEngineHandlet listofHandlers; //public void RegisterCarEngine(CarEngineHandlet methodCall) //{ // listofHandlers += methodCall; //} public void Accelerate(int delta) { if (CarIsDead) { if (Exploded != null) { //listofHandlers("car is dead"); Exploded.Invoke("Sorry car is dead"); } } else { this.CurrentSpeed += delta; if (10 == (MaxtSpeed - CurrentSpeed) && AboutToBlow != null) { AboutToBlow.Invoke("Careful"); } if (CurrentSpeed >= MaxtSpeed) { CarIsDead = true; } else { Console.WriteLine("Current speed: {0}", CurrentSpeed); } } }
public void Accelerate(int curr) { if (isDead) { Exploded?.Invoke(this, new CarEventArgs("Boom!")); } }
/// <exception cref="Exception">A delegate callback throws an exception.</exception> /// <exception cref="IOException">Произошла ошибка ввода-вывода. </exception> /// <exception cref="ArgumentNullException">Параметр <paramref name="format" /> имеет значение null. </exception> /// <exception cref="FormatException">Заданная в параметре <paramref name="format" /> спецификация формата недопустима. </exception> public void Accelerate(int delta) { // send message if engine is broken if (CarIsDead || CurrentSpeed + delta > MaxSpeed) { // using null propagation //_listOfHandlers?.Invoke ("Car engine is broken..."); // the same as: // if (_listOfHandlers != null) _listOfHandlers("Car engine is broken..."); // the same using events: Exploded?.Invoke(this, new CarEventArgs("Car engine is broken...")); } else { CurrentSpeed += delta; if (10 == (MaxSpeed - CurrentSpeed)) { //_listOfHandlers?.Invoke ("Careful buddy! Gonna blow!"); // the same using events: AboutToBlow?.Invoke(this, new CarEventArgs("Careful buddy! Gonna blow!")); } if (CurrentSpeed >= MaxSpeed) { CarIsDead = true; } else { Console.WriteLine("Current car speed - {0}", CurrentSpeed); } } }
public void Accelerate(int delta) { if (_carIsDead) { Exploded?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); } else { CurrentSpeed += delta; if (10 == MaxSpeed - CurrentSpeed) { AboutToBlow?.Invoke(this, new CarEventArgs("Careful buddy! Gonna blow!")); } if (CurrentSpeed >= MaxSpeed) { _carIsDead = true; } else { Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }
//1. Определить новый тип делегата, который будет использоваться // для отправки уведомлений вызывающему коду. //2. Объявить переменную-член этого типа делегата в классе Саг. //private CarEngineHandler listOfHandlers; //3. Создать в классе Саг вспомогательную функцию для вызывающего кода //public void RegisterWithCarEngine(CarEngineHandler methodtocall) //{ // listOfHandlers += methodtocall; //} //Удаляет функцию из списка //public void UnRegisterWithCarEngine(CarEngineHandler methodtocall) //{ // listOfHandlers -= methodtocall; //} //4. Реализовать метод Accelerate () для обращения к списку вызовов // делегата в подходящих обстоятельствах. public void Accelerate(int delta) { // Если этот автомобиль сломан, то отправить сообщение об этом, if (carIsDead) { Exploded?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); } else { CurrentSpeed += delta; // Автомобиль почти сломан? if (10 == (MaxSpeed - CurrentSpeed)) { AboutToBlow?.Invoke(this, new CarEventArgs("Careful buddy! Gonna blow!")); } if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }
// 4) Implement the Accelerate() method to invoke the delegate's // invocation list under the correct circumstances. public void Accelerate(int delta) { // If this car is "dead," send dead message. if (carIsDead) { Exploded?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); } else { CurrentSpeed += delta; // Is this car "almost dead"? if (10 == (MaxSpeed - CurrentSpeed)) { AboutToBlow?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); } if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }
/// <summary> /// Accelerate the car by an amount until max is reached, then explicit events are called /// </summary> /// <param name="delta"></param> public void AccelerateUsingExplicitEvents(int delta) { // If this car is 'dead', fire Exploded event if (CurrentSpeed >= MaxSpeed) { string message = $"Exploded {Name} Speed {CurrentSpeed}, Accelerate {delta}"; Exploded?.Invoke(message); ExplodedEvent?.Invoke(this, new CarEventArgs(message)); GenericExplodedEvent?.Invoke(this, new CarEventArgs(message)); } else { CurrentSpeed += delta; // Is this car 'almost dead'? if ((MaxSpeed - CurrentSpeed) == 10) { // fire AboutToBlow event string message = $"AboutToBlow {Name} Speed {CurrentSpeed}, Accelerate {delta}"; AboutToBlow?.Invoke(message); AboutToBlowEvent?.Invoke(this, new CarEventArgs(message)); GenericAboutToBlowEvent?.Invoke(this, new CarEventArgs(message)); } else { Console.WriteLine($"Accelerating {Name} Speed {CurrentSpeed}, Accelerate {delta}"); } } }
public void Acclerate(int delta) { //Если автомобиль сломан инициировать событие Exploded if (carIsDead) { //Сокращение кода //Exploded?.Invoke("Sorry, this car is dead..."); //Т.к. создан свой класс CarEventArgs, то вызов события меняется Exploded?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); } else { CurrentSpeed += delta; //Почти сломался? if (10 == MaxSpeed - CurrentSpeed) { AboutToBlow?.Invoke(this, new CarEventArgs("Careful buddy! Gonna Blow!")); } //Всё ещё впорядке! if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("CurrentSpeed={0}", CurrentSpeed); } } }
public void Explode() { var contactsCount = Physics.OverlapSphereNonAlloc(transform.position, _radius, _contacts); for (var i = 0; i < contactsCount; i++) { var contact = _contacts[i]; if (!contact.TryGetComponent(out Chunk chunk)) { continue; } chunk.SetSphere(transform.position, _radius, NullBlock.Instance); } Exploded?.Invoke(this, EventArgs.Empty); switch (_onExploded) { case ExplosionMode.Destroy: Destroy(gameObject); break; case ExplosionMode.Disable: gameObject.SetActive(false); break; default: throw new ArgumentOutOfRangeException(); } }
public void Accelerate(int delta) { // If this car is "dead," send dead message. carSpeedHandlers?.Invoke(CurrentSpeed); carNameHandlers?.Invoke(PetName); if (carIsDead) { listOfHandlers?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); Exploded?.Invoke(this, new CarEventArgs("BABAH!!!")); } else { CurrentSpeed += delta; // Is this car "almost dead"? if (10 == (MaxSpeed - CurrentSpeed)) { listOfHandlers?.Invoke(this, new CarEventArgs("Careful buddy! Gonna blow!")); AboutToExplode?.Invoke(this, new CarEventArgs("ABOUT TO BABAH!!!!!!")); } if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }
// Define a member variable of this delegate. //private CarEngineHandler listOfHandlers; // Add registration function for the caller. //public void RegisterWithCarEngine(CarEngineHandler methodToCall) //{ // listOfHandlers += methodToCall; //} //public void UnRegisterWithCarEngine(CarEngineHandler methoToCall) //{ // listOfHandlers -= methoToCall; //} // Implement the Accelerate() method to invoke the delegate's // invocation list under the correct circumstatnces. public void Accelerate(int delta) { // If the car is "dead", send dead message. if (carIsDead) { // Can use null conditional operator. // Must explicitly call invoke when doing so. //if(Exploded != null) //Exploded?.Invoke("Sorry, this car is dead..."); // Using EventArgs Exploded?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); } else { CurrentSpeed += delta; // Can use null conditional operator // Must explicitly call Invoke when doing so. // Is the car "almost dead"? if (10 == (MaxSpeed - CurrentSpeed))// && AboutToBlow != null) { //AboutToBlow?.Invoke("Careful buddy! Gonna blow!"); // Using EventArgs AboutToBlow?.Invoke(this, new CarEventArgs("Careful buddy! Gonna blow!")); } if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }
private void OnPlayerMoveOccured() { _countdown--; _countdownText.text = _countdown.ToString(); if (_countdown <= 0) { Exploded?.Invoke(); } }
public void Explode() { IEnumerable <HitReceiver> receivers = Physics2D.OverlapCircleAll(explosionPoint.position, explosionRadius, explosionLayer) .Where(c => c.TryGetComponent <HitReceiver>(out _)) .Select(c => c.GetComponent <HitReceiver>()); SwitchRagdoll(receivers); ApplyHit(receivers); Exploded?.Invoke(); }
public void Accelerate(int delta) { //If the car is dead, fire exploded event. if (carIsDead) { Exploded?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); } else { CurrentSpeed += delta; //Almost dead? if (10 == MaxSpeed - CurrentSpeed && AboutToBlow != null) { AboutToBlow(this, new CarEventArgs("Careful buddy! Gonna blow!")); } //Still OK if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine($"Current Speed = {CurrentSpeed}"); } } //if (listOfHandlers != null) // listOfHandlers("Sorry, this car is dead..."); ////If this car is "dead", send dead message. //if(carIsDead) //{ // listOfHandlers?.Invoke("Sorry, this car is dead...."); //} //else //{ // CurrentSpeed += delta; // //Is the car "almost dead"? // if(10 == (MaxSpeed - CurrentSpeed) && listOfHandlers != null) // { // listOfHandlers("Careful buddy! Gonna blow!"); // } // if (CurrentSpeed >= MaxSpeed) // carIsDead = true; // else // Console.WriteLine($"CurrentSpeed = {CurrentSpeed}"); //} }
/// <summary> /// What the name says, baby. /// </summary> private void Explode() { explosion.SetActive(true); smoke.SetActive(false); generatorAnimator.SetTrigger("Die"); if (Exploded != null) { Exploded.Invoke(); } // After three seconds, stop exploding. Invoke("StopExploding", 3); }
public IEnumerable <SpacialElement> Explode() { var ret = new List <SpacialElement>(); if (Lifetime.IsExpired) { return(ret); } this.Lifetime.Dispose(); var shrapnelSet = new List <Projectile>(); for (float angle = 0; angle < 360; angle += AngleIncrement) { var effectiveRange = Range; if ((angle > 200 && angle < 340) || (angle > 20 && angle < 160)) { effectiveRange = Range / 3; } var shrapnel = SpaceTime.CurrentSpaceTime.Add(new Projectile(this.Weapon, ExplosiveProjectileSpeed, angle, autoLocate: false) { Range = effectiveRange }); shrapnel.AddTag(nameof(Explosive)); shrapnel.MoveTo(this.Left, this.Top, this.ZIndex); OnProjectileAdded.Fire(shrapnel); if (ProjectilePen != null) { shrapnel.Pen = ProjectilePen; } shrapnelSet.Add(shrapnel); shrapnel.AddTag("hot"); ret.Add(shrapnel); } foreach (var shrapnel in shrapnelSet) { shrapnel.Velocity.HitDetectionExclusions.AddRange(shrapnelSet.Where(s => s != shrapnel)); } Exploded.Fire(); OnExplode.Fire(this); return(ret); }
private void OnTriggerStay(Collider other) { if (!CheckCollisionTrigger(other.gameObject.layer)) { return; } var damageTaker = other.GetComponent <IDamageTaker>(); if (damageTaker == null) { return; } damageTaker.TakeDamage(Constants.TORPEDO_DAMAGE); Exploded?.Invoke(this); }
private void Explode() { if (_isExploded) { return; } _isExploded = true; var meshRenderer = GetComponent <MeshRenderer>(); meshRenderer.enabled = false; var sphereCollider = GetComponent <SphereCollider>(); sphereCollider.enabled = false; var rigidbody = GetComponent <Rigidbody>(); rigidbody.constraints = RigidbodyConstraints.FreezeAll; var navMeshObstacle = GetComponent <NavMeshModifierVolume>(); navMeshObstacle.enabled = false; _audioSource.PlayOneShot(_audioSource.clip); var xPosDist = ExplodeInDirection(new Vector3(1, 0, 0)); var xNegDist = ExplodeInDirection(new Vector3(-1, 0, 0)); var zPosDist = ExplodeInDirection(new Vector3(0, 0, 1)); var zNegDist = ExplodeInDirection(new Vector3(0, 0, -1)); var xTotal = xPosDist + xNegDist; var zTotal = zPosDist + zNegDist; var xCenter = transform.position.x - xNegDist + xTotal / 2; var zCenter = transform.position.z - zNegDist + zTotal / 2; var xParticles = Instantiate(FireParticles, new Vector3(xCenter, transform.position.y, transform.position.z), Quaternion.identity); var zParticles = Instantiate(FireParticles, new Vector3(transform.position.x, transform.position.y, zCenter), Quaternion.identity); xParticles.transform.localScale = new Vector3(xTotal, transform.localScale.y, transform.localScale.z); zParticles.transform.localScale = new Vector3(transform.localScale.z, transform.localScale.y, zTotal); Exploded?.Invoke(this, EventArgs.Empty); }
private void Tile_Click(object sender, RoutedEventArgs e) { if (!wasLongPress) { if (!IsDismantled && IsEnabled) { if (IsMine) { state = TileState.Exploded; Render(); Exploded?.Invoke(this, null); } else { Open(); } } } wasLongPress = false; }
/// <summary> /// Взрывает и уничтожает обьект /// </summary> /// <returns></returns> private IEnumerator Explosion() { Vector3 pos = transform.position; GameObject parent = transform.parent.gameObject; transform.SetParent(null); Destroy(parent); transform.position = pos; _explodedModel.SetActive(true); Exploded?.Invoke(this.gameObject); Instantiate(_explosionPrefab, transform); yield return(new WaitForSeconds(0.5f)); _effector.enabled = false; var colliders = _explodedModel.GetComponentsInChildren <Collider2D>(); foreach (var item in colliders) { item.enabled = false; } Destroy(gameObject, 2); }
public void Accelerate(int delta) { if (carIsDead) { // if this car is dead send dead message Exploded?.Invoke(this, new CarEventArgs("Sorry, this car is dead...")); } // is this car almost dead else if (10 == MaxSpeed - CurrentSpeed) { AboutToBlow?.Invoke(this, new CarEventArgs("Careful buddy! Gonna blow!")); } else if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine($"Current Speed = { CurrentSpeed }."); } CurrentSpeed += delta; }
/* * public void RegisterWithCarEngine(CarEngineHandle methodToCall) * { * listOfHandlers += methodToCall; * } * * public void UnRegisterWithCarEngine(CarEngineHandle methodToCall) * { * listOfHandlers -= methodToCall; * } */ public void Accelerate(Int32 delta) { if (carIdDead) { Exploded?.Invoke(this, new CarEventArg("Sorry, this car is dead...")); } else { CurrentSpeed += delta; if (MaxSpeed - CurrentSpeed <= 10) { AboutToBlow?.Invoke(this, new CarEventArg("Careful buddy! Gonna blow!")); } if (CurrentSpeed > MaxSpeed) { this.carIdDead = true; } else { Console.WriteLine($"CurrentSpeed = {this.CurrentSpeed}"); } } }
public void Explode() { var shrapnelSet = new List <Projectile>(); for (float angle = 0; angle < 360; angle += AngleIncrement) { var effectiveRange = Range; if ((angle > 200 && angle < 340) || (angle > 20 && angle < 160)) { effectiveRange = Range / 3; } var shrapnel = SpaceTime.CurrentSpaceTime.Add(new Projectile(this.Weapon, this.Left, this.Top, angle) { Range = effectiveRange }); shrapnel.MoveTo(shrapnel.Left, shrapnel.Top, this.ZIndex); OnProjectileAdded.Fire(shrapnel); if (ProjectilePen != null) { shrapnel.Pen = ProjectilePen; } shrapnelSet.Add(shrapnel); shrapnel.Tags.Add("hot"); } foreach (var shrapnel in shrapnelSet) { shrapnel.Speed.HitDetectionExclusions.AddRange(shrapnelSet.Where(s => s != shrapnel)); } Exploded.Fire(); OnExplode.Fire(this); this.Lifetime.Dispose(); }
public void Accelerate(int delta) { if (carIsDead) { Exploded?.Invoke(this, new CarEventArgs("Car is dead...")); } else { CurrentSpeed += delta; if (10 >= (MaxSpeed - CurrentSpeed)) { AboutToBlow?.Invoke(this, new CarEventArgs("Careful buddy! Car is gonna blow...")); } if (CurrentSpeed > MaxSpeed) { carIsDead = true; Exploded?.Invoke(this, new CarEventArgs("Car is dead...")); } else { System.Console.WriteLine("CurrentSpeed is : {0}", CurrentSpeed); } } }
public void RemoveExploded(Exploded clientMethod) { explodedList -= clientMethod; }