private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == bulletTag) { foreach (var sr in flashSprites) { sr.color = flashDefaultColor; LeanTween.cancel(sr.gameObject); LeanTween.color(sr.gameObject, Color.white, flashDuration).setEasePunch(); } hitPoints -= 1f; AudioManager.instance.Play("Hit"); if (hitPoints <= 0.001f) { EnemyDeathParticleManager.Explode(transform.position); AudioManager.instance.Play("Squish"); int n = Random.Range(0f, 1f) < secondTargetProb ? 2 : 1; for (int i = 0; i < n; ++i) { Spawn(i == 0 ? rank : 0); } Transform t = Instantiate(RewardPrefab); t.position = transform.position + Vector3.up * 1 * Mathf.Pow(1.25f, 1 + rank); t.GetComponent <RewardController>().SetValue(reward); ScoreManager.AddScore(reward); Destroy(gameObject); } } else if (collision.gameObject.tag == enemyTag && !consumed && rank < SpawnController.maxRank) { EnemyController e = collision.gameObject.GetComponent <EnemyController>(); if (!e.consumed && e.rank == rank) { Vector3 pos = (transform.position + e.transform.position) / 2; Fuse(pos, true); e.Fuse(pos); } } }
private void Awake() { instance = this; }