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(); }
public void Explode() { Exploded?.Invoke(); trail.Cancel(); AddToParent(new Explosion(Position, 20, 0.25)); Destroy(); }
//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}"); } } }
// 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 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 { System.Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }
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); } } }
//实现此方法在某些情况下调用委托的调用列表 public void Accelerate(int delta) { if (carIsDead) { Exploded?.Invoke(this, new CarEventArgs("Sorry,this car is dead...")); //Exploded?.Invoke("Sorry,this car is dead..."); } else { CurrentSpeed += delta; //提醒快不能用了 if (10 == MaxSpeed - CurrentSpeed && AboutToBlow != null) { AboutToBlow(this, new CarEventArgs(" Careful buddy! Gonna blow!")); } if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("=> CurrentSpeed={0}", CurrentSpeed); } } }
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); } } }
public void Accelerate(int delta) { if (carIsDead) { Exploded?.Invoke(this, new CarEventArgs("Sorry, this CarWithEventArgs is dead...")); } else { CurrentSpeed += delta; // Also, you can do like follows using null conditional operator if (10 == (MaxSpeed - CurrentSpeed)) { AboutToBlow?.Invoke(this, new CarEventArgs("CarWithEventArgseful buddy! Gonna blow!")); } 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..."); } 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!"); } if (CurrentSpeed >= MaxSpeed) { carIsDead = true; } else { Console.WriteLine("CurrentSpeed = {0}", CurrentSpeed); } } }
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); } } }
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); }
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; }
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; }
/// <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 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}"); } } }
private void OnExploded() => Exploded?.Invoke(this, EventArgs.Empty);
protected void OnExploded(object sender, EventArgs e) { Exploded?.Invoke(sender, e); }
public void Explode() { Exploded?.Invoke(); }
static LocalVehicle() { Screen = new Screen(); HUD = new HUD(); Events.Car.PreExplode.SubscribeAll((sender, data) => { BeforeExploded?.Invoke(null, System.EventArgs.Empty); }); Events.Car.PreSplit.SubscribeAll((sender, data) => { BeforeSplit?.Invoke(null, System.EventArgs.Empty); }); Events.Car.CheckpointHit.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { var eventArgs = new CheckpointHitEventArgs(data.checkpointIndex_, data.trackT_); CheckpointPassed?.Invoke(null, eventArgs); } }); Events.Car.Death.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { var eventArgs = new DestroyedEventArgs((DestructionCause)data.causeOfDeath); Destroyed?.Invoke(null, eventArgs); } }); Events.Car.Explode.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { var eventArgs = new DestroyedEventArgs((DestructionCause)data.causeOfDeath); Exploded?.Invoke(null, eventArgs); } }); Events.RaceEnd.LocalCarHitFinish.Subscribe(data => { BeforeFinished?.Invoke(null, System.EventArgs.Empty); }); Events.Player.Finished.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>() != null) { var eventArgs = new FinishedEventArgs((RaceEndType)data.finishType_, data.finishData_); Finished?.Invoke(null, eventArgs); } }); Events.Car.Horn.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { var eventArgs = new HonkEventArgs(data.hornPercent_, new Position(data.position_.x, data.position_.y, data.position_.z)); Honked?.Invoke(null, eventArgs); } }); Events.Car.Impact.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { var eventArgs = new ImpactEventArgs(data.speed_, new Position(data.pos_.x, data.pos_.y, data.pos_.z), data.impactedCollider_.name); Collided?.Invoke(null, eventArgs); } }); Events.Car.Jump.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { Jumped?.Invoke(null, System.EventArgs.Empty); } }); Events.Car.ModeSpecial.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { SpecialModeEvent?.Invoke(null, System.EventArgs.Empty); } }); Events.Player.CarRespawn.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>() != null) { var pos = new Position(data.position_.x, data.position_.y, data.position_.z); var rot = new Rotation(data.rotation_.x, data.rotation_.y, data.rotation_.z); var eventArgs = new RespawnEventArgs(pos, rot, data.fastRespawn_); Respawned?.Invoke(null, eventArgs); } }); Events.Car.Split.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { var eventArgs = new SplitEventArgs(data.penetration, data.separationSpeed); Split?.Invoke(null, eventArgs); } }); Events.Car.TrickComplete.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { var eventArgs = new TrickCompleteEventArgs(data.cooldownAmount_, data.points_, data.wallRideMeters_, data.ceilingRideMeters_, data.grindMeters_); TrickCompleted?.Invoke(null, eventArgs); } }); Events.Car.WingsStateChange.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { if (data.open_) { WingsOpened?.Invoke(null, System.EventArgs.Empty); } else { WingsClosed?.Invoke(null, System.EventArgs.Empty); } } }); Events.Car.WingsAbilityStateChanged.SubscribeAll((sender, data) => { if (sender.GetComponent <PlayerDataLocal>()) { if (data.enabled_) { WingsEnabled?.Invoke(null, System.EventArgs.Empty); } else { WingsDisabled?.Invoke(null, System.EventArgs.Empty); } } }); }