void OnTriggerEnter(Collider col) { if (col.tag == "Player" && !_isDead) { _isDead = true; EventAggregator.SendMessage(new HitPlayerMessage()); EventAggregator.SendMessage(new EarnMoneyMessage { Money = Money }); EventAggregator.SendMessage(new PlaySoundMessage { Clip = PlayerHitSound }); } }
private void UpdateRocket() { if (!CanFireRocket() || !_isPlayerInput) { return; } EventAggregator.SendMessage(new PlaySoundMessage { Clip = RocketSound }); Player.IsRocketFiring = true; _rocketStart = Time.fixedTime; Player.RemainingRockets--; }
private void OnTriggerEnter(Collider col) { if (!_isDeleted) { EventAggregator.SendMessage(new EarnMoneyMessage { Money = Money }); EventAggregator.SendMessage(new PlaySoundMessage { Clip = Sound }); Destroy(gameObject); _isDeleted = true; } }
public void Break(Vector3 position, float distance) { IsBroken = true; var direction = position - transform.position; rigidbody2D.AddForceAtPosition(direction.normalized * Force * -1, position); SpawnParticles(); ChangeSkin(); EventAggregator.SendMessage(new ObjectBrokenMessage { Points = Points }); }
public void Handle(HitPlayerMessage message) { if (Health > 0) { Health--; } if (Health <= 0) { EventAggregator.SendMessage(new PlayerDiedMessage()); var feet = GameObject.FindGameObjectWithTag("PlayerFeet"); if (feet != null) { Destroy(feet); } } }
private void OnTriggerEnter(Collider col) { // don't interact with a dead player if (col.tag != "PlayerFeet") { return; } var player = col.transform.parent; // platforms only work if you "fall" into them if (player.collider.rigidbody.velocity.y < 0) { // play jump sound EventAggregator.SendMessage(new PlaySoundMessage { Clip = JumpSound }); // push player up var boostLevel = PlayerContext.Get(UpgradeType.Jump); player.collider.rigidbody.velocity = new Vector3(player.collider.rigidbody.velocity.x, Boost + boostLevel, 0); // send message to give player money EventAggregator.SendMessage(new EarnMoneyMessage { Money = Money }); // spawn particle effects Enumerable.Range(0, 10).Each(x => { var c = (GameObject)Instantiate(Coin); c.transform.position = transform.position - new Vector3(UnityEngine.Random.Range(-1, 1), 0, 0); c.rigidbody.AddForce(UnityEngine.Random.Range(-150, 150), UnityEngine.Random.Range(200, 350), 0); }); // destroy the platform Destroy(gameObject); } }
void Bomb() { IsDead = true; // Spawn Shrapnel Enumerable.Range(0, ShrapnelCount).Each(x => { var s = (GameObject)Instantiate(Resources.Load("Objects/Shrapnel")); s.transform.position = transform.position; }); // Destroy anything within kill radius FindObjectsOfType <BreakableObject>().Each(x => { var distance = Vector3.Distance(x.transform.position, transform.position); if (distance <= KillRadius) { x.Break(transform.position, distance); } }); EventAggregator.SendMessage(new TurnOffSpawnersMessage()); }
public void LaunchParachute() { EventAggregator.SendMessage(new LaunchParachuteMessage()); }
public void LaunchRocket() { EventAggregator.SendMessage(new LaunchRocketMessage()); }