Ejemplo n.º 1
0
    void GenerateRoom(DunGen.Room roomBase)
    {
        // pick a room template from the floor;
        var roomTemplateKey = tpd.RollMap(env.roomTemplateChances);
        var roomTemplate    = JSONResource.Get <RoomTemplate>(roomTemplateKey);
        var roomGenerator   = new RoomGenerator(env, roomTemplate, roomBase);

        env.rooms.Add(roomGenerator.CreateRoom());
    }
Ejemplo n.º 2
0
    void GenerateInteractible(Tile tile)
    {
        var interactibleTemplateKey = tpd.RollMap(env.interactibleChances);
        var interactibleTemplate    = JSONResource.Get <InteractionTemplate>(interactibleTemplateKey);
        var interactibleGenerator   = new InteractionGenerator(interactibleTemplate);
        var interactible            = interactibleGenerator.Generate();
        var randomTile = room.RandomOpenTile();

        interactible.position = randomTile.position;

        InteractibleStore.Save(interactible);
        randomTile.Occupy(Constants.interactibleContentKey, interactible.id);
    }
Ejemplo n.º 3
0
    void GenerateMob(Tile tile)
    {
        var mobTemplateKey = tpd.RollMap(env.mobChances);

        var mobTemplate  = JSONResource.Get <MobTemplate>(mobTemplateKey);
        var mobGenerator = new MobGenerator(mobTemplate);
        var mob          = mobGenerator.Generate();
        var randomTile   = room.RandomOpenTile();

        mob.position = randomTile.position;

        MobStore.Save(mob);
        randomTile.Occupy(Constants.mobContentKey, mob.id);
    }
Ejemplo n.º 4
0
    public void Enter()
    {
        var interactionTemplateKey = sim.currentEnvironment.enterInteractionTemplateKey;
        var interactionTemplate    = JSONResource.Get <InteractionTemplate>(interactionTemplateKey);

        if (interactionTemplate == null)
        {
            return;
        }

        var interaction = InteractionGenerator.Generate(interactionTemplate);

        sim.SetInteraction(interaction);
        var interactionProcessor = new InteractionProcessor(sim);

        interactionProcessor.Start();
    }