--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const Arena = ({ x, y }) =>
+ <Region name="arena" x={x} y={y}>
+ <Room x={2} y={0}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="door" />
+ <Cell x={0} y={2} bottom="door" left="solid" />
+ <Cell x={1} y={2} bottom="solid" right="door" />
+ </Room>
+ <Room x={4} y={0}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="solid" top="solid" />
+ </Room>
+ <Room x={4} y={1}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={2}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={8} y={0}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} left="door" right="solid" />
+ <Cell x={0} y={2} bottom="door" left="solid" right="solid" />
+ </Room>
+ <Room x={9} y={0}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={2} y={3}>
+ <Cell x={0} y={0} bottom="door" left="solid" top="door" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={7} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="door" />
+ <Cell x={2} y={0} bottom="door" right="door" top="solid" />
+ </Room>
+ <Room type="teleporter" x={10} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room type="save" x={1} y={4}>
+ <Cell x={0} y={0} bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={2} y={4}>
+ <Cell bottom="solid" left="door" right="door" top="door" />
+ </Room>
+ <Room x={3} y={4}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" right="door" />
+ <Cell x={0} y={2} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room x={4} y={4}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={8} y={4}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={9} y={4}>
+ <Cell x={0} y={0} left="solid" top="door" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} bottom="solid" left="solid" />
+ <Cell x={1} y={2} bottom="solid" right="door" />
+ </Room>
+ <Room x={4} y={5}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={8} y={5}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={0} y={6}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={1} y={6}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={6}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={8} y={6}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={11} y={6}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={12} y={6}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ </Region>;
+
+Arena.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default Arena;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const CastleCorridor = ({ x, y }) =>
+ <Region name="castle-corridor" x={x} y={y}>
+ <Room x={0} y={6}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} bottom="solid" left="solid" />
+ <Cell x={1} y={2} bottom="solid" right="door" />
+ </Room>
+ <Room type="teleporter" x={2} y={7}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={4}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} left="solid" />
+ <Cell x={1} y={2} right="solid" />
+ <Cell x={0} y={3} bottom="door" left="door" />
+ <Cell x={1} y={3} bottom="solid" right="solid" />
+ </Room>
+ <Room x={2} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="door" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="door" top="solid" />
+ <Cell x={4} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={7} y={8}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room type="transition left" x={6} y={9}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="save" x={9} y={9}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={9} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={12} y={3}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="door" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} left="solid" />
+ <Cell x={1} y={2} right="solid" />
+ <Cell x={0} y={3} left="solid" />
+ <Cell x={1} y={3} right="solid" />
+ <Cell x={0} y={4} left="solid" />
+ <Cell x={1} y={4} right="solid" />
+ <Cell x={0} y={5} bottom="solid" left="door" />
+ <Cell x={1} y={5} bottom="solid" right="door" />
+ </Room>
+ <Room type="transition left" x={12} y={2}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={13} y={2}>
+ <Cell bottom="door" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={14} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="secret" x={15} y={9}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={16} y={8}>
+ <Cell x={0} y={0} left="door" right="door" top="door" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room type="save" x={17} y={8}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={17} y={9}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="door" />
+ <Cell x={4} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={22} y={9}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={20} y={7}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="door" left="solid" right="solid" />
+ </Room>
+ <Room x={21} y={7}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={22} y={7}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={16} y={3}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" right="solid" />
+ <Cell x={0} y={2} left="solid" right="solid" />
+ <Cell x={0} y={3} left="solid" right="solid" />
+ <Cell x={0} y={4} bottom="door" left="solid" right="solid" />
+ </Room>
+ <Room x={17} y={3}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={18} y={2}>
+ <Cell x={0} y={0} left="solid" top="door" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" />
+ <Cell x={2} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room x={18} y={1}>
+ <Cell bottom="door" left="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={19} y={1}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={21} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={21} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="solid" />
+ <Cell x={4} y={0} bottom="solid" top="solid" />
+ <Cell x={5} y={0} bottom="solid" top="solid" />
+ <Cell x={6} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={24} y={1}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" />
+ <Cell x={2} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room x={27} y={1}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={27} y={2}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={28} y={1}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="door" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} bottom="solid" left="door" />
+ <Cell x={1} y={2} bottom="solid" right="door" />
+ </Room>
+ <Room type="transition left" x={28} y={0}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={29} y={0}>
+ <Cell bottom="door" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={30} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="solid" />
+ <Cell x={4} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={35} y={2}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room type="transition right" x={36} y={2}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={36} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={39} y={3}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room type="save" x={40} y={3}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={40} y={4}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={42} y={4}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={37} y={4}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room x={39} y={5}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={34} y={5}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={33} y={5}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ </Region>;
+
+CastleCorridor.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default CastleCorridor;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+const hasCorner = (a, b) =>
+ (hasWall(a) && hasWall(b)) || a === 'door' || b == 'door';
+
+const hasWall = side => side && side !== 'open';
+
+const wallType = side => side || 'open';
+
+const Cell = ({ bottom, left, right, top, x, y }) =>
+ <g className="cell" transform={`translate(${x || 0}, ${y || 0})`}>
+ <rect className="background" x="-0.03125" y="-0.03125" width="1.03125" height="1.03125" />
+ {hasWall(top) ?
+ <line className={`wall ${wallType(top)}`} x1="-0.03125" y1="0" x2="1.03125" y2="0" />
+ : null}
+ {hasWall(right) ?
+ <line className={`wall ${wallType(right)}`} x1="1" y1="-0.03125" x2="1" y2="1.03125" />
+ : null}
+ {hasWall(bottom) ?
+ <line className={`wall ${wallType(bottom)}`} x1="-0.03125" y1="1" x2="1.03125" y2="1" />
+ : null}
+ {hasWall(left) ?
+ <line className={`wall ${wallType(left)}`} x1="0" y1="-0.03125" x2="0" y2="1.03125" />
+ : null}
+ {hasCorner(top, left) ?
+ <rect className="corner" x="-0.0625" y="-0.0625" width="0.125" height="0.125" />
+ : null}
+ {hasCorner(top, right) ?
+ <rect className="corner" x="0.9375" y="-0.0625" width="0.125" height="0.125" />
+ : null}
+ {hasCorner(bottom, left) ?
+ <rect className="corner" x="-0.0625" y="0.9375" width="0.125" height="0.125" />
+ : null}
+ {hasCorner(bottom, right) ?
+ <rect className="corner" x="0.9375" y="0.9375" width="0.125" height="0.125" />
+ : null}
+ </g>;
+
+Cell.propTypes = {
+ bottom: PropTypes.string,
+ left: PropTypes.string,
+ right: PropTypes.string,
+ top: PropTypes.string,
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default Cell;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const Chapel = ({ x, y }) =>
+ <Region name="chapel" x={x} y={y}>
+ <Room x={3} y={0}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} top="solid" />
+ <Cell x={3} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} />
+ <Cell x={3} y={1} right="solid" />
+ <Cell x={0} y={2} left="solid" />
+ <Cell x={1} y={2} />
+ <Cell x={2} y={2} />
+ <Cell x={3} y={2} right="solid" />
+ <Cell x={0} y={3} bottom="solid" left="solid" />
+ <Cell x={1} y={3} bottom="door" />
+ <Cell x={2} y={3} bottom="door" />
+ <Cell x={3} y={3} bottom="solid" right="solid" />
+ </Room>
+ <Room x={3} y={4}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="door" />
+ <Cell x={2} y={0} bottom="solid" top="door" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition left" x={2} y={4}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={7} y={2}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" />
+ <Cell x={1} y={1} bottom="door" />
+ <Cell x={2} y={1} bottom="solid" right="solid" />
+ </Room>
+ <Room x={7} y={4}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} top="door" />
+ <Cell x={2} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} right="solid" />
+ <Cell x={1} y={2} bottom="solid" left="solid" />
+ <Cell x={2} y={2} bottom="door" right="solid" />
+ </Room>
+ <Room type="secret" x={7} y={6}>
+ <Cell bottom="door" left="solid" right="solid" top="solid" />
+ </Room>
+ <Room type="teleporter" x={2} y={5}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={2} y={6}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={5}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="door" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} bottom="solid" left="door" />
+ <Cell x={1} y={2} bottom="solid" right="door" />
+ </Room>
+ <Room x={5} y={5}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} left="door" />
+ <Cell x={1} y={2} right="door" />
+ <Cell x={0} y={3} bottom="solid" left="door" />
+ <Cell x={1} y={3} bottom="solid" right="door" />
+ </Room>
+ <Room x={7} y={7}>
+ <Cell bottom="solid" left="door" right="solid" top="door" />
+ </Room>
+ <Room x={7} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={9} y={7}>
+ <Cell x={0} y={0} left="door" right="solid" top="door" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="solid" />
+ </Room>
+ <Room type="save" x={8} y={7}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={2} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={1} y={7}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={0} y={7}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room x={1} y={8}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room type="transition right" x={2} y={9}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ </Region>;
+
+Chapel.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default Chapel;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const ClockTower = ({ x, y }) =>
+ <Region name="clock-tower" x={x} y={y}>
+ <Room x={2} y={0}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={0}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={0}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="solid" />
+ </Room>
+ <Room type="save" x={6} y={0}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={3} y={1}>
+ <Cell x={0} y={0} bottom="door" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition left" x={0} y={2}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={1} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={2}>
+ <Cell bottom="solid" left="door" right="door" top="door" />
+ </Room>
+ <Room x={4} y={2}>
+ <Cell x={0} y={0} left="door" right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="solid" />
+ </Room>
+ <Room x={5} y={2}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="door" left="solid" right="solid" />
+ </Room>
+ <Room x={6} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={8} y={2}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={3}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room x={4} y={4}>
+ <Cell x={0} y={0} left="door" right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="solid" />
+ </Room>
+ <Room x={5} y={4}>
+ <Cell x={0} y={0} left="solid" right="solid" top="door" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room x={2} y={5}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room x={3} y={5}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={5}>
+ <Cell x={0} y={0} left="door" right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room type="secret" x={1} y={6}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={6}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={6}>
+ <Cell bottom="door" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={6}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="save" x={7} y={6}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={1} y={7}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={2} y={7}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room x={3} y={7}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="door" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={7}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room x={1} y={7}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={1} y={8}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room x={3} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="solid" top="solid" />
+ </Room>
+ <Room x={7} y={8}>
+ <Cell x={0} y={0} left="door" right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="solid" />
+ </Room>
+ <Room x={2} y={9}>
+ <Cell x={0} y={0} left="door" right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="solid" />
+ </Room>
+ <Room x={6} y={9}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room x={1} y={10}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition left" x={4} y={10}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={10}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="teleporter" x={7} y={10}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ </Region>;
+
+ClockTower.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default ClockTower;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const DanceHall = ({ x, y }) =>
+ <Region name="dance-hall" x={x} y={y}>
+ <Room x={3} y={0}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="door" right="door" />
+ </Room>
+ <Room x={2} y={1}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={1}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={2} y={2}>
+ <Cell x={0} y={0} bottom="door" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="door" />
+ <Cell x={3} y={0} bottom="solid" right="solid" top="solid" />
+ </Room>
+ <Room type="secret" x={1} y={3}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={2} y={3}>
+ <Cell bottom="solid" left="door" right="door" top="door" />
+ </Room>
+ <Room x={3} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={3}>
+ <Cell bottom="door" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="save" x={6} y={3}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room type="secret" x={9} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="door" right="solid" top="solid" />
+ </Room>
+ <Room x={0} y={4}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="door" left="solid" right="door" />
+ </Room>
+ <Room x={1} y={4}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="teleporter" x={1} y={5}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={2} y={4}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room x={3} y={4}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="door" left="door" />
+ <Cell x={1} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room x={5} y={4}>
+ <Cell x={0} y={0} left="door" right="door" top="door" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room x={6} y={4}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="solid" />
+ <Cell x={4} y={0} bottom="solid" right="door" top="door" />
+ </Room>
+ <Room type="transition right" x={11} y={4}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={5}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={9} y={5}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={6}>
+ <Cell x={0} y={0} left="solid" right="door" top="door" />
+ <Cell x={0} y={1} bottom="door" left="solid" right="solid" />
+ </Room>
+ <Room x={4} y={6}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={6}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={7}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={8} y={6}>
+ <Cell x={0} y={0} left="door" right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="solid" />
+ </Room>
+ <Room x={3} y={8}>
+ <Cell bottom="solid" left="solid" right="door" top="door" />
+ </Room>
+ <Room x={3} y={9}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={9}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={8}>
+ <Cell x={0} y={0} left="door" right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room type="save" x={7} y={9}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ </Region>;
+
+DanceHall.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default DanceHall;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const FloatingGarden = ({ x, y }) =>
+ <Region name="floating-garden" x={x} y={y}>
+ <Room x={20} y={22}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="door" left="solid" />
+ <Cell x={1} y={1} bottom="door" />
+ <Cell x={2} y={1} bottom="solid" right="solid" />
+ </Room>
+ <Room x={23} y={22}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="door" left="door" />
+ <Cell x={1} y={1} bottom="door" />
+ <Cell x={2} y={1} bottom="solid" right="solid" />
+ </Room>
+ <Room x={20} y={24}>
+ <Cell x={0} y={0} left="solid" top="door" />
+ <Cell x={1} y={0} top="door" />
+ <Cell x={2} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" />
+ <Cell x={2} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room x={23} y={24}>
+ <Cell x={0} y={0} left="door" top="door" />
+ <Cell x={1} y={0} top="door" />
+ <Cell x={2} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" />
+ <Cell x={2} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room type="transition left" x={19} y={25}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="save" x={26} y={25}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={0} y={4}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} top="solid" />
+ <Cell x={3} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} />
+ <Cell x={3} y={1} right="solid" />
+ <Cell x={0} y={2} left="door" />
+ <Cell x={1} y={2} />
+ <Cell x={2} y={2} />
+ <Cell x={3} y={2} right="door" />
+ <Cell x={0} y={3} bottom="solid" left="solid" />
+ <Cell x={1} y={3} bottom="solid" />
+ <Cell x={2} y={3} bottom="solid" />
+ <Cell x={3} y={3} bottom="solid" right="solid" />
+ </Room>
+ <Room x={7} y={2}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="door" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} right="door" />
+ <Cell x={0} y={2} bottom="solid" left="solid" />
+ <Cell x={1} y={2} bottom="solid" />
+ <Cell x={2} y={2} bottom="solid" right="solid" />
+ </Room>
+ <Room x={14} y={0}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="door" top="solid" />
+ <Cell x={1} y={1} bottom="solid" left="door" />
+ <Cell x={2} y={1} bottom="door" right="solid" />
+ </Room>
+ <Room type="save" x={14} y={1}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={14} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={16} y={2}>
+ <Cell bottom="solid" left="door" right="solid" top="door" />
+ </Room>
+ <Room x={23} y={0}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={30} y={0}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="door" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} right="door" />
+ <Cell x={0} y={2} bottom="solid" left="solid" />
+ <Cell x={1} y={2} bottom="solid" />
+ <Cell x={2} y={2} bottom="solid" right="solid" />
+ </Room>
+ <Room type="transition left" x={37} y={4}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={38} y={3}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="door" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} right="door" />
+ <Cell x={0} y={2} bottom="solid" left="solid" />
+ <Cell x={1} y={2} bottom="solid" />
+ <Cell x={2} y={2} bottom="solid" right="solid" />
+ </Room>
+ <Room x={43} y={7}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="door" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} right="door" />
+ <Cell x={0} y={2} bottom="solid" left="solid" />
+ <Cell x={1} y={2} bottom="solid" />
+ <Cell x={2} y={2} bottom="solid" right="solid" />
+ </Room>
+ </Region>;
+
+FloatingGarden.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default FloatingGarden;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const ForbiddenArea = ({ x, y }) =>
+ <Region name="forbidden-area" x={x} y={y}>
+ <Room type="transition left" x={0} y={2}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={1} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={1}>
+ <Cell x={0} y={0} left="solid" right="solid" top="door" />
+ <Cell x={0} y={1} left="door" right="door" bottom="solid" />
+ </Room>
+ <Room x={5} y={0}>
+ <Cell bottom="door" left="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={6} y={0}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="solid" />
+ <Cell x={4} y={0} bottom="door" right="solid" top="solid" />
+ </Room>
+ <Room x={10} y={3}>
+ <Cell x={0} y={0} left="solid" top="door" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" />
+ <Cell x={2} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room type="secret" x={9} y={4}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={13} y={4}>
+ <Cell bottom="door" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={13} y={5}>
+ <Cell x={0} y={0} left="solid" right="solid" top="door" />
+ <Cell x={0} y={1} left="door" right="solid" bottom="solid" />
+ </Room>
+ <Room x={5} y={6}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="solid" />
+ <Cell x={4} y={0} bottom="solid" top="solid" />
+ <Cell x={5} y={0} bottom="solid" top="solid" />
+ <Cell x={6} y={0} bottom="solid" top="solid" />
+ <Cell x={7} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={5}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" right="door" bottom="solid" />
+ </Room>
+ <Room x={5} y={5}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ </Region>;
+
+ForbiddenArea.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default ForbiddenArea;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const InnerQuarters = ({ x, y }) =>
+ <Region name="inner-quarters" x={x} y={y}>
+ <Room x={6} y={0}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} right="solid" />
+ <Cell x={0} y={2} left="solid" />
+ <Cell x={1} y={2} />
+ <Cell x={2} y={2} right="solid" />
+ <Cell x={0} y={3} left="solid" />
+ <Cell x={1} y={3} />
+ <Cell x={2} y={3} right="solid" />
+ <Cell x={0} y={4} bottom="solid" left="solid" />
+ <Cell x={1} y={4} bottom="solid" />
+ <Cell x={2} y={4} bottom="door" right="solid" />
+ </Room>
+ <Room x={0} y={4}>
+ <Cell x={0} y={0} bottom="door" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="solid" top="solid" />
+ </Room>
+ <Room x={0} y={5}>
+ <Cell x={0} y={0} left="solid" top="door" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="door" />
+ <Cell x={0} y={2} bottom="solid" left="solid" />
+ <Cell x={1} y={2} bottom="solid" right="solid" />
+ </Room>
+ <Room x={2} y={6}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="save" x={3} y={5}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={5}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} left="door" right="door" />
+ <Cell x={0} y={2} left="solid" right="solid" />
+ <Cell x={0} y={3} bottom="door" left="door" right="solid" />
+ </Room>
+ <Room x={5} y={5}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={5}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={6}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={6} y={6}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={8} y={5}>
+ <Cell x={0} y={0} left="door" top="door" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" right="solid" />
+ </Room>
+ <Room x={10} y={5}>
+ <Cell x={0} y={0} left="door" right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" right="solid" />
+ <Cell x={0} y={2} bottom="door" left="door" right="solid" />
+ </Room>
+ <Room type="teleporter" x={5} y={7}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={7}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="door" top="solid" />
+ <Cell x={4} y={0} bottom="solid" top="solid" />
+ <Cell x={5} y={0} bottom="door" right="door" top="door" />
+ </Room>
+ <Room x={11} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={13} y={8}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="transition left" x={2} y={9}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={8}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="solid" />
+ </Room>
+ <Room type="secret" x={4} y={9}>
+ <Cell bottom="solid" left="solid" right="door" top="door" />
+ </Room>
+ <Room type="secret" x={5} y={9}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room type="transition left" x={7} y={9}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={8} y={9}>
+ <Cell bottom="solid" left="door" right="solid" top="door" />
+ </Room>
+ <Room x={9} y={9}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="solid" top="door" />
+ </Room>
+ </Region>;
+
+InnerQuarters.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default InnerQuarters;
--- /dev/null
+import React from 'react';
+
+import Arena from './Arena';
+import CastleCorridor from './CastleCorridor';
+import Chapel from './Chapel';
+import ClockTower from './ClockTower';
+import DanceHall from './DanceHall';
+import FloatingGarden from './FloatingGarden';
+import ForbiddenArea from './ForbiddenArea';
+import InnerQuarters from './InnerQuarters';
+import Study from './Study';
+import TopFloor from './TopFloor';
+import UndergroundCemetery from './UndergroundCemetery';
+import UndergroundReservoir from './UndergroundReservoir';
+
+const Map = () =>
+ <svg
+ viewBox="0 0 55 43"
+ xmlns="http://www.w3.org/2000/svg"
+ >
+ <style>{`
+ .background {
+ fill: #0000a0;
+ }
+ .region:hover .default .background {
+ fill: #0000e0;
+ }
+ .save .background {
+ fill: #f80000;
+ }
+ .secret .background {
+ fill: #ff8040;
+ }
+ .teleporter .background {
+ fill: #f8f800;
+ }
+ .transition .background {
+ fill: #800080;
+ }
+ .corner {
+ fill: #f8f8f8;
+ }
+ .wall {
+ stroke: #f8f8f8;
+ stroke-linecap: butt;
+ stroke-width: 0.125;
+ }
+ .wall.door {
+ stroke: #008888;
+ }
+ `}</style>
+ <rect width="100%" height="100%" fill="#280078" />
+ <CastleCorridor x={1} y={18} />
+ <Chapel x={43} y={18} />
+ <Study x={44} y={29} />
+ <DanceHall x={2} y={11} />
+ <InnerQuarters x={14} y={6} />
+ <FloatingGarden x={6} y={1} />
+ <ClockTower x={37} y={8} />
+ <UndergroundReservoir x={6} y={27} />
+ <UndergroundCemetery x={21} y={40} />
+ <Arena x={1} y={34} />
+ <ForbiddenArea x={36} y={34} />
+ <TopFloor x={28} y={4} />
+ </svg>;
+
+export default Map;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+const Region = ({ children, name, x, y }) =>
+ <g
+ className={`region ${name || ''}`}
+ transform={x || y ? `translate(${x || 0}, ${y || 0})` : undefined}
+ >
+ {children}
+ </g>;
+
+Region.propTypes = {
+ children: PropTypes.node,
+ name: PropTypes.string,
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default Region;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+const Room = ({ children, type, x, y }) =>
+ <g
+ className={`room ${type || 'default'}`}
+ transform={x || y ? `translate(${x || 0}, ${y || 0})` : undefined}
+ >
+ {children}
+ </g>;
+
+Room.propTypes = {
+ children: PropTypes.node,
+ type: PropTypes.string,
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default Room;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const Study = ({ x, y }) =>
+ <Region name="study" x={x} y={y}>
+ <Room type="transition left" x={3} y={0}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={0}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="door" left="solid" right="solid" />
+ </Room>
+ <Room x={5} y={0}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="door" right="door" top="solid" />
+ </Room>
+ <Room x={5} y={1}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={7} y={0}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="solid" />
+ </Room>
+ <Room x={8} y={0}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={8} y={1}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="door" right="solid" top="solid" />
+ </Room>
+ <Room x={8} y={2}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} right="solid" top="door" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" right="solid" />
+ </Room>
+ <Room x={3} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="door" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="solid" />
+ <Cell x={4} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={1} y={2}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" />
+ <Cell x={1} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room type="secret" x={0} y={2}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="solid" />
+ <Cell x={4} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={1} y={4}>
+ <Cell x={0} y={0} left="door" top="door" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" right="solid" />
+ </Room>
+ <Room type="save" x={0} y={4}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition left" x={0} y={5}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={4}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={3} y={5}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={4}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={5}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={4}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room x={7} y={4}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={7} y={5}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={8} y={4}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" right="solid" />
+ </Room>
+ </Region>;
+
+Study.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default Study;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const TopFloor = ({ x, y }) =>
+ <Region name="top-floor" x={x} y={y}>
+ <Room x={0} y={0}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={1} y={0}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={0} y={0}>
+ <Cell x={2} y={0} left="door" top="solid" />
+ <Cell x={3} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={1} bottom="solid" top="solid" />
+ <Cell x={2} y={1} bottom="door" />
+ <Cell x={3} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room x={4} y={1}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="door" left="solid" right="door" />
+ </Room>
+ <Room x={5} y={1}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={5} y={2}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={0} y={2}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} top="door" />
+ <Cell x={3} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} />
+ <Cell x={3} y={1} right="solid" />
+ <Cell x={0} y={2} left="solid" />
+ <Cell x={1} y={2} />
+ <Cell x={2} y={2} />
+ <Cell x={3} y={2} right="door" />
+ <Cell x={0} y={3} bottom="solid" left="solid" />
+ <Cell x={1} y={3} bottom="door" />
+ <Cell x={2} y={3} bottom="solid" />
+ <Cell x={3} y={3} bottom="solid" right="door" />
+ </Room>
+ <Room x={4} y={3}>
+ <Cell x={0} y={0} left="solid" right="door" top="door" />
+ <Cell x={0} y={1} bottom="door" left="door" right="door" />
+ </Room>
+ <Room type="save" x={5} y={3}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={5} y={4}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={8} y={4}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={5}>
+ <Cell x={0} y={0} left="door" top="door" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" />
+ <Cell x={1} y={1} bottom="door" right="solid" />
+ </Room>
+ <Room type="secret" x={0} y={6}>
+ <Cell bottom="door" left="solid" right="solid" top="solid" />
+ </Room>
+ <Room x={1} y={6}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="door" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room type="secret" x={3} y={6}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={0} y={7}>
+ <Cell x={0} y={0} left="solid" top="door" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" />
+ <Cell x={1} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room x={2} y={7}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={4} y={7}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="door" />
+ </Room>
+ <Room x={6} y={7}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" right="door" />
+ <Cell x={0} y={2} bottom="solid" right="door" left="door" />
+ </Room>
+ <Room x={7} y={7}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={2} y={8}>
+ <Cell x={0} y={0} bottom="door" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="solid" top="solid" />
+ </Room>
+ <Room x={4} y={8}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room type="teleporter" x={7} y={8}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={2} y={9}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="door" />
+ <Cell x={1} y={0} bottom="door" right="door" top="solid" />
+ </Room>
+ <Room x={7} y={9}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room type="transition left" x={1} y={10}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={2} y={10}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="door" />
+ </Room>
+ <Room type="transition right" x={4} y={10}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ </Region>;
+
+TopFloor.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default TopFloor;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const UndergroundCemetery = ({ x, y }) =>
+ <Region name="underground-cemetery" x={x} y={y}>
+ <Room x={2} y={0}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={6} y={0}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room type="save" x={7} y={0}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={8} y={0}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="door" bottom="solid" />
+ <Cell x={1} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room x={10} y={0}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={11} y={0}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room x={12} y={0}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="solid" top="solid" />
+ </Room>
+ <Room type="transition left" x={0} y={1}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={2} y={1}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={7} y={1}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={10} y={1}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={12} y={1}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={16} y={1}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ </Region>;
+
+UndergroundCemetery.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default UndergroundCemetery;
--- /dev/null
+import PropTypes from 'prop-types';
+import React from 'react';
+
+import Cell from './Cell';
+import Region from './Region';
+import Room from './Room';
+
+const UndergroundReservoir = ({ x, y }) =>
+ <Region name="underground-reservoir" x={x} y={y}>
+ <Room x={0} y={2}>
+ <Cell x={0} y={0} left="solid" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room type="transition right" x={1} y={2}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={1} y={3}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="solid" />
+ <Cell x={4} y={0} bottom="solid" top="solid" />
+ <Cell x={5} y={0} bottom="solid" top="solid" />
+ <Cell x={6} y={0} bottom="solid" top="solid" />
+ <Cell x={7} y={0} bottom="solid" top="door" />
+ <Cell x={8} y={0} bottom="solid" top="solid" />
+ <Cell x={9} y={0} bottom="door" right="solid" top="solid" />
+ </Room>
+ <Room x={7} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="solid" top="solid" />
+ <Cell x={1} y={0} bottom="door" right="solid" top="solid" />
+ </Room>
+ <Room x={9} y={5}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={10} y={4}>
+ <Cell x={0} y={0} left="solid" top="door" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="door" />
+ <Cell x={1} y={1} bottom="solid" right="solid" />
+ </Room>
+ <Room x={12} y={4}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" right="solid" />
+ <Cell x={0} y={2} left="solid" right="solid" />
+ <Cell x={0} y={3} left="solid" right="door" />
+ <Cell x={0} y={4} left="door" right="solid" />
+ <Cell x={0} y={5} left="solid" right="solid" />
+ <Cell x={0} y={6} bottom="door" left="solid" right="door" />
+ </Room>
+ <Room type="save" x={13} y={7}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={11} y={8}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={13} y={10}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={12} y={11}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="door" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" top="solid" />
+ <Cell x={3} y={0} bottom="solid" top="solid" />
+ <Cell x={4} y={0} bottom="solid" top="solid" />
+ <Cell x={5} y={0} bottom="solid" top="solid" />
+ <Cell x={6} y={0} bottom="solid" top="solid" />
+ <Cell x={7} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={11} y={11}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" right="solid" />
+ <Cell x={0} y={2} left="solid" right="solid" />
+ <Cell x={0} y={3} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room x={10} y={11}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={9} y={11}>
+ <Cell x={0} y={0} left="door" right="door" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room x={10} y={12}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room type="transition left" x={8} y={11}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="secret" x={10} y={14}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={12} y={14}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={13} y={4}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} top="solid" />
+ <Cell x={3} y={0} top="solid" />
+ <Cell x={4} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="solid" left="solid" />
+ <Cell x={1} y={1} bottom="solid" />
+ <Cell x={2} y={1} bottom="solid" />
+ <Cell x={3} y={1} bottom="solid" />
+ <Cell x={4} y={1} bottom="solid" right="door" />
+ </Room>
+ <Room x={18} y={5}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="solid" top="door" />
+ </Room>
+ <Room x={18} y={2}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} top="solid" />
+ <Cell x={2} y={0} top="solid" />
+ <Cell x={3} y={0} top="solid" />
+ <Cell x={4} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} />
+ <Cell x={3} y={1} />
+ <Cell x={4} y={1} right="solid" />
+ <Cell x={0} y={2} bottom="solid" left="solid" />
+ <Cell x={1} y={2} bottom="door" />
+ <Cell x={2} y={2} bottom="solid" />
+ <Cell x={3} y={2} bottom="solid" />
+ <Cell x={4} y={2} bottom="solid" right="solid" />
+ </Room>
+ <Room type="transition left" x={17} y={2}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={20} y={5}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={21} y={5}>
+ <Cell x={0} y={0} left="door" right="solid" top="solid" />
+ <Cell x={0} y={1} left="solid" right="door" />
+ <Cell x={0} y={2} left="solid" right="solid" />
+ <Cell x={0} y={3} bottom="solid" left="door" right="door" />
+ </Room>
+ <Room x={22} y={6}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room type="save" x={22} y={8}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={19} y={8}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={23} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={25} y={1}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="solid" top="solid" />
+ <Cell x={0} y={1} left="door" />
+ <Cell x={1} y={1} right="door" />
+ <Cell x={0} y={2} left="solid" />
+ <Cell x={1} y={2} right="solid" />
+ <Cell x={0} y={3} bottom="solid" left="solid" />
+ <Cell x={1} y={3} bottom="door" right="solid" />
+ </Room>
+ <Room x={27} y={2}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={28} y={2}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} top="door" />
+ <Cell x={2} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} />
+ <Cell x={2} y={1} right="solid" />
+ <Cell x={0} y={2} bottom="door" left="solid" />
+ <Cell x={1} y={2} bottom="solid" />
+ <Cell x={2} y={2} bottom="door" right="solid" />
+ </Room>
+ <Room x={29} y={0}>
+ <Cell x={0} y={0} left="solid" right="solid" top="solid" />
+ <Cell x={0} y={1} bottom="door" left="solid" right="solid" />
+ </Room>
+ <Room x={31} y={2}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="solid" top="solid" />
+ </Room>
+ <Room x={30} y={5}>
+ <Cell x={0} y={0} left="solid" right="solid" top="door" />
+ <Cell x={0} y={1} bottom="solid" left="solid" right="door" />
+ </Room>
+ <Room type="secret" x={31} y={6}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={27} y={5}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" right="solid" top="door" />
+ </Room>
+ <Room x={25} y={5}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} right="door" top="door" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} left="solid" />
+ <Cell x={1} y={2} right="door" />
+ <Cell x={0} y={3} left="solid" />
+ <Cell x={1} y={3} right="solid" />
+ <Cell x={0} y={4} bottom="solid" left="door" />
+ <Cell x={1} y={4} bottom="door" right="door" />
+ </Room>
+ <Room x={24} y={5}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={27} y={7}>
+ <Cell bottom="solid" left="door" right="solid" top="solid" />
+ </Room>
+ <Room x={27} y={9}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room type="transition right" x={28} y={9}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={22} y={9}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="door" top="solid" />
+ </Room>
+ <Room x={20} y={9}>
+ <Cell x={0} y={0} left="door" top="solid" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} left="door" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} bottom="solid" left="door" />
+ <Cell x={1} y={2} bottom="solid" right="door" />
+ </Room>
+ <Room x={22} y={11}>
+ <Cell x={0} y={0} bottom="solid" left="door" top="solid" />
+ <Cell x={1} y={0} bottom="solid" top="solid" />
+ <Cell x={2} y={0} bottom="solid" right="solid" top="solid" />
+ </Room>
+ <Room type="teleporter" x={19} y={9}>
+ <Cell bottom="solid" left="solid" right="door" top="solid" />
+ </Room>
+ <Room x={19} y={10}>
+ <Cell bottom="solid" left="door" right="door" top="solid" />
+ </Room>
+ <Room x={17} y={8}>
+ <Cell x={0} y={0} left="solid" top="solid" />
+ <Cell x={1} y={0} right="door" top="solid" />
+ <Cell x={0} y={1} left="solid" />
+ <Cell x={1} y={1} right="solid" />
+ <Cell x={0} y={2} bottom="solid" left="door" />
+ <Cell x={1} y={2} bottom="solid" right="door" />
+ </Room>
+ </Region>;
+
+UndergroundReservoir.propTypes = {
+ x: PropTypes.number,
+ y: PropTypes.number,
+};
+
+export default UndergroundReservoir;
import Header from './Header';
import AosFront from '../pages/AosFront';
import AosSeed from '../pages/AosSeed';
+import Tracker from '../pages/AosTracker';
import User from '../pages/User';
import AosBaseRomProvider from '../../helpers/AosBaseRomContext';
import UserContext from '../../helpers/UserContext';
<Header doLogout={doLogout} />
<Routes>
<Route path="h/:hash" element={<AosSeed />} />
+ <Route path="tracker" element={<Tracker />} />
<Route path="users/:id" element={<User />} />
<Route path="*" element={<AosFront />} />
</Routes>
--- /dev/null
+import React from 'react';
+import { Container } from 'react-bootstrap';
+
+import Map from '../aos-tracker/Map';
+
+const AosTracker = () => {
+ React.useEffect(() => {
+ window.document.title = 'Aos Tracker';
+ }, []);
+
+ return <Container fluid>
+ <Map />
+ </Container>;
+};
+
+export default AosTracker;