void Start()
    {
        _fireplace_controller = GameObject.Find("Fireplace").GetComponent <FireplaceController>();

        _sun_controller = GameObject.Find("Sun Light").GetComponent <LightController>();

        _skybox_controller = GetComponent <SkyboxController>();

        _audio_source             = gameObject.AddComponent <AudioSource>();
        _audio_source.loop        = false;
        _audio_source.playOnAwake = false;
        _audio_source.priority    = 256; // top priority

        _audio_source_2             = gameObject.AddComponent <AudioSource>();
        _audio_source_2.loop        = false;
        _audio_source_2.playOnAwake = false;
        _audio_source_2.priority    = 256; // top priority

        _voice_stopped = false;

        if (_clips.Length > 0)
        {
            _audio_lines = new AudioLine[_clips.Length];
            for (int i = 0; i < _clips.Length; i++)
            {
                // _audio_lines[i] = new AudioLine(_clips[i]);
                _audio_lines[i] = new AudioLine
                {
                    _clip    = _clips[i],
                    _seconds = 2.5f,
                    _played  = false,
                };

                if (i == 0)
                {
                    _audio_lines[i]._seconds = 5f;
                }
            }
        }

        _current = 0;

        _is_end = false;

        _sun_controller.StartSunset();

        // StartCoroutine(WaitAndSurvive(10));
    }
Example #2
0
        protected override void DoEffect(PlayerController user)
        {
            try
            {
                IntVector2 bestRewardLocation2 = user.CurrentRoom.GetBestRewardLocation(IntVector2.One * 2, RoomHandler.RewardLocationStyle.PlayerCenter, true);
                Vector3    convertedVector     = bestRewardLocation2.ToVector3();

                FireplaceController Fireplace = null;
                if (GameManager.Instance.Dungeon.tileIndices.tilesetId == GlobalDungeonData.ValidTilesets.CASTLEGEON)
                {
                    Fireplace = FindObjectOfType <FireplaceController>();
                }
                GameObject thingToSpawn = BraveUtility.RandomElement(PossibleObjects);
                if (Fireplace != null && Fireplace.transform.position.GetAbsoluteRoom() == user.CurrentRoom)
                {
                    thingToSpawn = EasyPlaceableObjects.WaterBarrel;
                }

                if (UnityEngine.Random.value <= 0.01f)
                {
                    IntVector2 bestRewardLocation = user.CurrentRoom.GetBestRewardLocation(IntVector2.One * 2, RoomHandler.RewardLocationStyle.PlayerCenter, true);
                    Chest      brown_Chest        = GameManager.Instance.RewardManager.D_Chest;
                    brown_Chest.IsLocked  = false;
                    brown_Chest.ChestType = Chest.GeneralChestType.UNSPECIFIED;
                    Chest spawnedChest = Chest.Spawn(brown_Chest, bestRewardLocation);
                    spawnedChest.lootTable.lootTable = (UnityEngine.Random.value <= 0.5f ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable);
                    spawnedChest.RegisterChestOnMinimap(spawnedChest.GetAbsoluteParentRoom());
                }
                else
                {
                    SpawnObjectManager.SpawnObject(thingToSpawn, convertedVector, EasyVFXDatabase.BloodiedScarfPoofVFX);
                }

                if (user.PlayerHasActiveSynergy("His Grace"))
                {
                    KillRandomEnemy(user.CurrentRoom);
                }
                if (user.PlayerHasActiveSynergy("Sharpest Tool In The Shed"))
                {
                    DoRandomRoomSpawns(user.CurrentRoom);
                }
            }
            catch (Exception e)
            {
                ETGModConsole.Log(e.Message);
                ETGModConsole.Log(e.StackTrace);
            }
        }