IEnumerator EmitNextFrame(PlayerPacks packs, int packToExclude) { yield return new WaitForEndOfFrame(); var bossObj = (GameObject) Instantiate(BossPrefab, transform.position.plusX((Random.value - 0.5f) * 8), transform.rotation); bossObj.transform.parent = transform.parent; var boss = bossObj.GetComponent<Boss>(); boss.PlayerRigidbody = playerRigidbody; boss.AngelBoost = angelBoost; boss.TargetX = TargetX; boss.TargetY = TargetY; boss.AimingTarget = AimingTarget; var currentPlayerY = playerRigidbody.transform.position.y; var allowedIndexes = new int[packs.Packs.Length]; var allowedIndexCount = 0; for (int i = 0; i < packs.Packs.Length; i++) { if (i != packToExclude && packs.Packs[i].MinHeight <= currentPlayerY) { allowedIndexes[allowedIndexCount] = i; allowedIndexCount++; } } var randomIndex = allowedIndexes[Mathf.FloorToInt(Random.value * allowedIndexCount)]; var pack = packs.Packs[randomIndex]; boss.PlayerPacks = packs; boss.PlayerPackIndex = randomIndex; boss.BulletPrefab = pack.BulletPrefab; bossObj.transform.FindChild("Sprite").GetComponent<SpriteRenderer>().sprite = pack.CharacterSprite; bossObj.transform.FindChild("WeaponRoot/Weapon").GetComponent<SpriteRenderer>().sprite = pack.WeaponSprite; }
void Start() { bossEmitter = FindObjectOfType<BossEmitter>(); targetRigidbody = GetComponent<Rigidbody2D>(); playerPacks = GetComponent<PlayerPacks>(); GetComponent<Player>().OnExploded += explosion => { if (!playerHasFirstExploded) { AngelsUntilNextBoost = AngelsToKillPerBoost; playerHasFirstExploded = true; } }; FindObjectOfType<GameOver>().OnGameOver += () => { CurrentHeighest = 0; playerHasFirstExploded = false; HasAngelBoost = false; BossExistsAlready = false; var allBosses = FindObjectsOfType<Boss>(); for (int i = 0; i < allBosses.Length; i++) { allBosses[i].DieSilently = true; allBosses[i].GetComponent<DieOnContact>().Die(); } }; }
public void EmitBoss(PlayerPacks packs, int packToExclude) { if (this) StartCoroutine(EmitNextFrame(packs, packToExclude)); }
void Start() { packs = FindObjectOfType<PlayerPacks>(); text = GetComponentInChildren<Text>(); }