コード例 #1
0
ファイル: LevelGenerator.cs プロジェクト: bdsowers/cutiequest
    private IEnumerator Start()
    {
        mDungeonGenerator = new RandomDungeonGenerator();

        TextAsset roomSetData = Resources.Load <TextAsset>("RoomSets/" + CurrentDungeonFloorData().roomSet);

        mRoomset = new RoomSet();
        mRoomset.LoadFromTextAsset(roomSetData);

        mDungeon = mDungeonGenerator.GenerateDungeon(mRoomset, DungeonGenerationData());

        mKillableMap = GetComponent <KillableMap>();
        mKillableMap.SetupWithDungeon(mDungeon);

        mCollisionMap = GetComponent <CollisionMap>();
        mCollisionMap.SetupWithSize(mDungeon.width, mDungeon.height);
        GenerateEnvironmentFromDungeon(mDungeon);

        PlaceAvatar();

        // Provide some time after the avatar is generated for any of its setup (ie: quirk setup)
        // to impact dungeon generation
        yield return(null);

        // Special handling for the 'difficulty boost' effect
        DifficultyBoost db = GameObject.FindObjectOfType <DifficultyBoost>();

        if (db != null)
        {
            db.ApplyQuirks();
            yield return(null);
        }

        yield return(null);

        if (!IsPresetRoom())
        {
            PlaceDeadEndInterests();
        }

        PlaceTraps();
        PlaceEnemies();

        if (!IsPresetRoom())
        {
            PlaceHearts();
            PlaceExit();
            QuirkSpecificSpawns();
        }

        if (Game.instance.currentDungeonFloor == 5)
        {
            Game.instance.soundManager.PlayRandomMusicInCategory("BossMusic");
        }
        else if (Game.instance.quirkRegistry.IsQuirkActive <GothQuirk>())
        {
            Game.instance.soundManager.PlayRandomMusicInCategory("GothMusic");
        }
        else if (Game.instance.quirkRegistry.IsQuirkActive <OldTimeyQuirk>())
        {
            Game.instance.soundManager.PlayRandomMusicInCategory("OldTimey");
        }
        else if (Game.instance.quirkRegistry.IsQuirkActive <Cowfolk>())
        {
            Game.instance.soundManager.PlayRandomMusicInCategory("Cowboy");
        }
        else
        {
            Game.instance.soundManager.PlayRandomMusicInCategory("DungeonMusic");
        }

        Game.instance.playerData.MarkDirty();

        yield break;
    }