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()); }
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); }
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); }
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(); }