Script:Random Dungeon Generator
From Roll20 Wiki
Revision as of 11:48, 23 February 2014 by Stephen S. (Talk | contribs)
Use of Geomorphic Map Tiles
- This API script uses geomorphic map tiles. The set used for this script can be located on the Roll20 Market place: Old School Geomorphic
- Geomorphic map tiles are a design technique that defines and locates set features on edge of the tile so any tile can connect to any other tile without concern for orientation.
- These can be downloaded and modified however you choose, so long as it is for personal/private use, and is consistent with Terms of Service and Privacy Policy.
- To the right, there is an example of a modified geomorphic map tile. It is important to note the modification to the tile do not included modifications to the walls (Dynamic Lighting path information will have to be added to the code for any new wall patterns.)
- Naming of the tiles is an important factor due to the use of names in the code. Unmodified tiles in the Old School Geomorphic set includes "Geo_Type_A_0001" through "Geo_Type_A_0045." It is recommended user modified tiles be named consistent with that to keep any code modifications required consistent as well.
- New tiles can be created for this set by the user and more information on that can be found at Geomorphic Map Tiles. However, Dynamic Lighting path information will have to be added to the code for any new wall patterns.
- Geomorphic map tiles are a design technique that defines and locates set features on edge of the tile so any tile can connect to any other tile without concern for orientation.
Use of Rollable Tables
- The most challenging part is setting up the roll able table. It must be named "GeomorphicTiles" and if should only include "Geo_Type_A_0001" through "Geo_Type_A_0045" with the unmodified API code.
- Most often errors with the implementation of this script is due to errors with setting up this table.
- This is used to save users from hard coding URLs and to leverage the "choose side" feature native to Roll20.
- If you plan to modify the code by adding or removing tiles this roll able table items and names must be in parity with the "geomorphicTilesInformation" array which looks like this in the code (sample of some of the lines of code:)
var geomorphicTilesInformation = {tileName: "Geo_Type_A_0001", edge: false, corner: false, entrance: false, type: "d", rotation: 0}, {tileName: "Geo_Type_A_0002", edge: false, corner: false, entrance: false, type: "d", rotation: 0},
- This array provides information to the API needed to properly place the tile.
- The Rollable Table must be in parity with the "dynamicLightingArray" array which looks like this (sample of some of the lines of code:)
var dynamicLightingArray = [ {tileName: "Geo_Type_A_0001", path: [[0,105],[105,105],[105,0]]}, {tileName: "Geo_Type_A_0001", path: [[525,0],[525,35],[735, 35],[735,0]]},
- This array contains the path points that define the locations of walls. Tiles with identical walls can have the same points, however each tile needs points associated with it's name. For example "Geo_Type_A_0004" through "Geo_Type_A_0007" have the same walls but have different features.
Acknowledgement: Big thanks to Alex L. for his effort to write the code that works out all the math needed to rotate and place the Dynamic Lighting paths.