"Simulation controls"
global NUMBER_OF_WALKS = 100
global MAX_STEPS_PER_WALK = Int(floor(20 * 60 / 0.0000027))
# twenty minutes in experiment

"Solvent Diffusion Step Sizes (microns per 2.7 microseconds)"
STEP_SIZE_DICT = Dict("water" => 0.1, "enz" => 0.005, "ppd" => 0.001)
const WATER_STEP_SIZE = 0.1
const ENZ_STEP_SIZE = 0.005
const PPD_STEP_SIZE = 0.001

"Sensor/Walls Coordinates"
const WALL_Y = 0.0
const SENSOR_WIDTH = 25.0
const SENSOR_SPACING = 25.0
const SENSOR_SPAWN_LEFT_X = 0.0
const SENSOR_SPAWN_RIGHT_X = SENSOR_SPAWN_LEFT_X + SENSOR_WIDTH
const SENSOR_SECOND_LEFT_X = SENSOR_SPAWN_RIGHT_X + SENSOR_SPACING
const SENSOR_SECOND_RIGHT_X = SENSOR_SECOND_LEFT_X + SENSOR_WIDTH
const SENSOR_THIRD_LEFT_X = SENSOR_SECOND_RIGHT_X + SENSOR_SPACING
const SENSOR_THIRD_RIGHT_X = SENSOR_THIRD_LEFT_X + SENSOR_WIDTH
const SENSOR_FOURTH_LEFT_X = SENSOR_THIRD_RIGHT_X + SENSOR_SPACING
const SENSOR_FOURTH_RIGHT_X = SENSOR_FOURTH_LEFT_X + SENSOR_WIDTH

"PPD Layer Dimensions (for spawn)"
const PPD_MAX_Y = 0.15
const PPD_MIN_Y = 0.0
const PPD_LEFT_X = 0.0
const PPD_RIGHT_X = 25.0

"Enzyme Layer Dimensions (for spawn, other sensors are standardized)"
const ENZYME_MAX_Y = 3.0
const ENZYME_SPACING = 21.0
const ENZYME_WIDTH = 29.0
const ENZYME_LEFT_X = -2.0
const ENZYME_RIGHT_X = ENZYME_LEFT_X + ENZYME_WIDTH
const ZONE_ONE_RIGHT_X = ENZYME_RIGHT_X + 0.5 * ENZYME_SPACING
const ZONE_TWO_RIGHT_X = ZONE_ONE_RIGHT_X + ENZYME_SPACING + ENZYME_WIDTH
const ZONE_THREE_RIGHT_X = ZONE_TWO_RIGHT_X + ENZYME_SPACING + ENZYME_WIDTH

"Spawn inside main enzyme layer"
const BORDER_CORRECTION = 0.001
const SPAWN_LEFT_X = ENZYME_LEFT_X + BORDER_CORRECTION
const SPAWN_RIGHT_X = ENZYME_RIGHT_X - BORDER_CORRECTION
const SPAWN_ENZYME_MAX_Y = ENZYME_MAX_Y - BORDER_CORRECTION
const SPAWN_LENGTH = SPAWN_RIGHT_X - SPAWN_LEFT_X + 2 * SPAWN_ENZYME_MAX_Y

"Enzyme-Water Corners"
const CORNER_CUT_IN_ENZ = ENZ_STEP_SIZE * sqrt(2) / 2
const CORNER_CUT_IN_WATER = WATER_STEP_SIZE * sqrt(2) / 2
# test set: locationbools here
const WATER_TO_ENZ_NORTHEAST = [ENZYME_RIGHT_X - CORNER_CUT_IN_ENZ, ENZYME_MAX_Y - CORNER_CUT_IN_ENZ]
const WATER_TO_ENZ_NORTHWEST = [ENZYME_LEFT_X + CORNER_CUT_IN_ENZ, ENZYME_MAX_Y - CORNER_CUT_IN_ENZ]
const ENZ_TO_WATER_NORTHEAST = [ENZYME_RIGHT_X + CORNER_CUT_IN_WATER, ENZYME_MAX_Y + CORNER_CUT_IN_WATER]
const ENZ_TO_WATER_NORTHWEST = [ENZYME_LEFT_X - CORNER_CUT_IN_WATER, ENZYME_MAX_Y + CORNER_CUT_IN_WATER]

"PPD-Enzyme Corners"
const CORNER_CUT_IN_PPD = PPD_STEP_SIZE * sqrt(2) / 2
const ENZ_TO_PPD_NORTHEAST = [PPD_RIGHT_X - CORNER_CUT_IN_PPD, PPD_MAX_Y - CORNER_CUT_IN_PPD]
const ENZ_TO_PPD_NORTHWEST = [PPD_LEFT_X + CORNER_CUT_IN_PPD, PPD_MAX_Y - CORNER_CUT_IN_PPD]
const PPD_TO_ENZ_NORTHEAST = [PPD_RIGHT_X + CORNER_CUT_IN_ENZ, PPD_MAX_Y + CORNER_CUT_IN_ENZ]
const PPD_TO_ENZ_NORTHWEST = [PPD_LEFT_X - CORNER_CUT_IN_ENZ, PPD_MAX_Y + CORNER_CUT_IN_ENZ]

"Escape Bound Limits"
const ESCAPE_X = 4 * SENSOR_WIDTH + 4 * SENSOR_SPACING
const ESCAPE_Y = ESCAPE_X

"Safe Bound Limits"
const MARGIN_OF_COLLISION = 2 * WATER_STEP_SIZE
const SAFE_MIN_Y = ENZYME_MAX_Y + MARGIN_OF_COLLISION
const SAFE_MAX_Y = ESCAPE_Y - MARGIN_OF_COLLISION
const SAFE_MAX_X = ESCAPE_X - MARGIN_OF_COLLISION
