├── src ├── index.css ├── styles │ ├── components │ │ ├── _play.scss │ │ ├── _abilityScores.scss │ │ ├── _npc.scss │ │ ├── _navs.scss │ │ ├── _monsterTracker.scss │ │ ├── _createRaces.scss │ │ └── _diceRoller.scss │ └── base │ │ ├── _settings.scss │ │ └── _base.scss ├── actions │ ├── play.js │ ├── reference.js │ ├── monster.js │ └── combat.js ├── media-store │ ├── electric.svg │ ├── stairs.svg │ ├── hamburger-menu.svg │ ├── table.svg │ ├── big-egg.svg │ ├── shield.svg │ ├── open-folder.svg │ ├── soda-can.svg │ ├── paper-plane.svg │ ├── join.svg │ ├── up-card.svg │ ├── water-drop.svg │ ├── quick-slash.svg │ ├── triforce.svg │ ├── rank-1.svg │ ├── trample.svg │ ├── cube.svg │ ├── obelisk.svg │ ├── virtual-marker.svg │ ├── spawn-node.svg │ ├── chess-rook.svg │ ├── claw.svg │ ├── pounce.svg │ ├── south-africa-flag.svg │ ├── diamonds.svg │ ├── power-lightning.svg │ ├── crush.svg │ ├── medical-pack.svg │ ├── tablet.svg │ ├── sailboat.svg │ ├── flamer.svg │ ├── piano-keys.svg │ ├── trigger-hurt.svg │ ├── egg-pod.svg │ ├── seven-pointed-star.svg │ ├── barracks-tent.svg │ ├── fall-down.svg │ ├── greek-temple.svg │ ├── paper-tray.svg │ ├── porcelain-vase.svg │ ├── rank-2.svg │ ├── health-normal.svg │ ├── medical-pack-alt.svg │ ├── play-button.svg │ ├── upgrade.svg │ ├── fallout-shelter.svg │ ├── hearts.svg │ ├── smartphone.svg │ ├── antarctica.svg │ ├── clubs.svg │ ├── egypt.svg │ ├── house.svg │ ├── uruguay.svg │ ├── telescopic-baton.svg │ ├── chess-pawn.svg │ ├── striking-diamonds.svg │ ├── brick-wall.svg │ ├── bottom-right-3d-arrow.svg │ ├── lucifer-cannon.svg │ ├── private.svg │ ├── smash-arrows.svg │ ├── arena.svg │ ├── level-two.svg │ ├── nodular.svg │ ├── factory.svg │ ├── barefoot.svg │ ├── battery-pack-alt.svg │ ├── doubled.svg │ ├── electric-whip.svg │ ├── hospital-cross.svg │ ├── stack.svg │ ├── usb-key.svg │ ├── circular-saw.svg │ ├── direction-signs.svg │ ├── focused-lightning.svg │ ├── unplugged.svg │ ├── valley.svg │ ├── coffin.svg │ ├── helmet.svg │ ├── latvia.svg │ ├── pc.svg │ ├── ladder.svg │ ├── lightning-trio.svg │ ├── hasty-grave.svg │ ├── railway.svg │ ├── shield-disabled.svg │ ├── tesla.svg │ ├── chess-queen.svg │ ├── cooking-pot.svg │ ├── ermine.svg │ ├── fire.svg │ ├── health-decrease.svg │ ├── health-increase.svg │ ├── spades.svg │ ├── whiplash.svg │ ├── pie-chart.svg │ ├── rank-3.svg │ ├── rough-wound.svg │ ├── broken-heart.svg │ ├── kevlar.svg │ ├── poison.svg │ ├── resize.svg │ ├── rifle.svg │ ├── balkenkreuz.svg │ ├── cigarette.svg │ ├── bolivia.svg │ ├── submarine.svg │ ├── bridge.svg │ ├── iron-cross.svg │ ├── level-two-advanced.svg │ ├── pause-button.svg │ ├── shotgun.svg │ ├── thrown-spear.svg │ ├── trash-can.svg │ ├── australia.svg │ ├── cambodia.svg │ ├── heat-haze.svg │ ├── white-tower.svg │ ├── drop.svg │ ├── weight-crush.svg │ ├── metal-plate.svg │ ├── dungeon-light.svg │ ├── egyptian-pyramids.svg │ ├── hot-surface.svg │ ├── ice-pop.svg │ ├── road.svg │ ├── solid-leaf.svg │ ├── checkbox-tree.svg │ ├── clover-spiked.svg │ ├── suicide.svg │ ├── acoustic-megaphone.svg │ ├── colombia.svg │ ├── bed-lamp.svg │ ├── brazil-flag.svg │ ├── broken-wall.svg │ ├── chess-knight.svg │ ├── triple-scratches.svg │ ├── anvil.svg │ ├── battery-pack.svg │ ├── entry-door.svg │ ├── exit-door.svg │ ├── power-button.svg │ ├── wrench.svg │ ├── laser-burst.svg │ ├── pin.svg │ ├── thrust-bend.svg │ ├── spine-arrow.svg │ ├── whirlpool-shuriken.svg │ ├── divided-square.svg │ ├── eternal-love.svg │ ├── h2o.svg │ ├── inverted-dice-1.svg │ ├── tower-flag.svg │ ├── turret.svg │ ├── dress.svg │ ├── life-buoy.svg │ ├── moebius-triangle.svg │ ├── private-first-class.svg │ ├── black-sea.svg │ ├── film-strip.svg │ ├── i-beam.svg │ ├── overkill.svg │ ├── spikes-init.svg │ ├── sri-lanka.svg │ ├── acid.svg │ ├── gavel.svg │ ├── africa.svg │ ├── damaged-house.svg │ ├── heavy-lightning.svg │ ├── sickle.svg │ ├── star-shuriken.svg │ ├── crenulated-shield.svg │ ├── cut-diamond.svg │ ├── edge-crack.svg │ ├── fast-arrow.svg │ ├── pulse.svg │ ├── trident.svg │ ├── charm.svg │ ├── locked-fortress.svg │ ├── round-star.svg │ ├── scalpel.svg │ ├── paper-arrow.svg │ ├── papers.svg │ ├── sword-altar.svg │ ├── zeppelin.svg │ ├── inverted-dice-2.svg │ ├── led.svg │ ├── omega.svg │ ├── concentration-orb.svg │ ├── panzerfaust.svg │ ├── pistol-gun.svg │ ├── siren.svg │ ├── sprint.svg │ ├── tron-arrow.svg │ ├── wooden-fence.svg │ ├── bolter-gun.svg │ ├── chained-arrow-heads.svg │ ├── chess-bishop.svg │ ├── double-face-mask.svg │ ├── guillotine.svg │ ├── jet-pack.svg │ ├── crossed-slashes.svg │ ├── podium-winner.svg │ ├── shiny-entrance.svg │ ├── south-africa.svg │ ├── corporal.svg │ ├── energy-sword.svg │ ├── hedjet-white-crown.svg │ ├── podium-second.svg │ ├── sharp-shuriken.svg │ ├── stars-stack.svg │ ├── yin-yang.svg │ ├── backward-time.svg │ ├── spanner.svg │ ├── striking-splinter.svg │ ├── belgium.svg │ ├── box-trap.svg │ ├── imbricated-arrows.svg │ ├── planet-core.svg │ ├── static-guard.svg │ ├── striking-arrows.svg │ ├── union-jack.svg │ ├── alligator-clip.svg │ ├── bookshelf.svg │ ├── ent-mouth.svg │ ├── poison-cloud.svg │ ├── slicing-arrow.svg │ ├── thermometer-scale.svg │ ├── crosshair.svg │ ├── folded-paper.svg │ ├── laser-gun.svg │ ├── podium-third.svg │ ├── cardboard-box.svg │ ├── cracked-shield.svg │ ├── f1-car.svg │ ├── stahlhelm.svg │ ├── airtight-hatch.svg │ ├── amethyst.svg │ ├── divert.svg │ ├── joystick.svg │ ├── rock.svg │ ├── sly.svg │ ├── south-america.svg │ ├── stone-bridge.svg │ ├── talk.svg │ ├── flake.svg │ ├── lips.svg │ ├── mirror-mirror.svg │ ├── pillow.svg │ ├── scythe.svg │ ├── shard-sword.svg │ ├── lob-arrow.svg │ ├── tap.svg │ ├── cracked-disc.svg │ ├── crucifix.svg │ ├── falling-rocks.svg │ ├── level-four.svg │ ├── defensive-wall.svg │ ├── film-projector.svg │ ├── moon.svg │ ├── select.svg │ ├── hill-conquest.svg │ ├── return-arrow.svg │ ├── spiked-tail.svg │ ├── black-flag.svg │ ├── closed-doors.svg │ ├── level-three.svg │ ├── metal-bar.svg │ ├── sand-snake.svg │ ├── allied-star.svg │ ├── lift.svg │ ├── demolish.svg │ ├── swirled-shell.svg │ ├── banging-gavel.svg │ ├── hourglass.svg │ ├── scalpel-strike.svg │ ├── shoulder-armor.svg │ ├── smoking-pipe.svg │ ├── boot-prints.svg │ ├── caltrops.svg │ ├── candlebright.svg │ ├── croc-sword.svg │ ├── help.svg │ ├── inverted-dice-3.svg │ ├── switzerland.svg │ ├── broken-pottery.svg │ ├── cancel.svg │ ├── hemp.svg │ ├── kimono.svg │ ├── snorkel.svg │ ├── back-forth.svg │ ├── checked-shield.svg │ ├── feathered-wing.svg │ ├── fuji.svg │ ├── halt.svg │ ├── lightning-helix.svg │ ├── thorny-tentacle.svg │ ├── walkie-talkie.svg │ ├── wavy-itinerary.svg │ ├── wooden-sign.svg │ ├── flat-hammer.svg │ ├── id-card.svg │ ├── joint.svg │ ├── stone-block.svg │ ├── fire-axe.svg │ ├── painted-pottery.svg │ ├── sea-creature.svg │ ├── spinning-ribbons.svg │ ├── stiletto.svg │ ├── wide-arrow-dunk.svg │ ├── capitol.svg │ ├── detour.svg │ ├── evil-hand.svg │ ├── peaks.svg │ ├── target-laser.svg │ ├── clout.svg │ ├── info.svg │ ├── padlock.svg │ ├── wind-slap.svg │ ├── arc-triomphe.svg │ ├── grim-reaper.svg │ ├── italia.svg │ ├── stone-throne.svg │ ├── stone-tower.svg │ ├── air-zigzag.svg │ ├── bus.svg │ ├── high-shot.svg │ ├── hills.svg │ ├── mexico.svg │ ├── orb-direction.svg │ ├── trousers.svg │ ├── warlock-eye.svg │ ├── floating-crystal.svg │ ├── screen-impact.svg │ ├── solar-power.svg │ ├── blast.svg │ ├── drill.svg │ ├── evil-eyes.svg │ ├── sound-waves.svg │ ├── thunder-struck.svg │ ├── anvil-impact.svg │ ├── click.svg │ └── hell-crosses.svg ├── selectors │ └── monsters.js ├── components │ ├── utils.js │ ├── create │ │ └── createItem.js │ ├── play │ │ └── generators.js │ └── header.js ├── reducers │ ├── rolls.js │ ├── combatEntities.js │ ├── customMonsters.js │ └── players.js ├── App.test.js ├── index.js ├── data │ └── parser.js └── App.js ├── public ├── favicon.ico ├── media │ ├── Temple.svg │ └── Human.svg └── manifest.json └── .gitignore /src/index.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jerazost/DM_Tools/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /src/styles/components/_play.scss: -------------------------------------------------------------------------------- 1 | @import 'diceRoller'; 2 | @import 'monsterTracker'; 3 | @import 'npc'; -------------------------------------------------------------------------------- /src/styles/components/_abilityScores.scss: -------------------------------------------------------------------------------- 1 | .abilityScores{ 2 | margin: $m-size 0; 3 | display:flex; 4 | flex-direction: row; 5 | } -------------------------------------------------------------------------------- /src/styles/components/_npc.scss: -------------------------------------------------------------------------------- 1 | .NPCGenerator { 2 | padding: $l-size; 3 | } 4 | .NPCGenerator__Card { 5 | padding: $m-size; 6 | } 7 | -------------------------------------------------------------------------------- /src/actions/play.js: -------------------------------------------------------------------------------- 1 | export const updateDiceRolls = rolls => { 2 | return ({ 3 | type: 'UPDATE_DICE_ROLL_LIST', 4 | rolls 5 | }); 6 | } -------------------------------------------------------------------------------- /src/actions/reference.js: -------------------------------------------------------------------------------- 1 | export const updateReference = reference => { 2 | return ({ 3 | type: 'UPDATE_REFERENCE', 4 | reference 5 | }); 6 | } -------------------------------------------------------------------------------- /src/media-store/electric.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/stairs.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/hamburger-menu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/big-egg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/selectors/monsters.js: -------------------------------------------------------------------------------- 1 | export default (monsters, {text}) => { 2 | return monsters.filter(monster => { 3 | const textMatch = monster.name.toLowerCase().includes(text); 4 | return textMatch; 5 | }); 6 | } -------------------------------------------------------------------------------- /src/media-store/shield.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/open-folder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/soda-can.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/paper-plane.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/join.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/up-card.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/water-drop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/components/utils.js: -------------------------------------------------------------------------------- 1 | export const capFirst = (string) => { 2 | return string.charAt(0).toUpperCase() + string.slice(1); 3 | } 4 | export const lowFirst = (string) => { 5 | return string.charAt(0).toLowerCase() + string.slice(1); 6 | } -------------------------------------------------------------------------------- /src/media-store/quick-slash.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/triforce.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/reducers/rolls.js: -------------------------------------------------------------------------------- 1 | const rolls= []; 2 | 3 | export default (state = rolls, action) => { 4 | switch (action.type) { 5 | case 'UPDATE_DICE_ROLL_LIST': 6 | return [...action.rolls]; 7 | default: 8 | return state; 9 | } 10 | } -------------------------------------------------------------------------------- /src/media-store/rank-1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/trample.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | }); 9 | -------------------------------------------------------------------------------- /src/media-store/cube.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/obelisk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/virtual-marker.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/spawn-node.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/chess-rook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/claw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/pounce.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/south-africa-flag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/diamonds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/power-lightning.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/crush.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/medical-pack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/tablet.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import registerServiceWorker from './registerServiceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | registerServiceWorker(); 9 | -------------------------------------------------------------------------------- /src/media-store/sailboat.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/flamer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/media/Temple.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/piano-keys.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/trigger-hurt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/egg-pod.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/seven-pointed-star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/barracks-tent.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/fall-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/greek-temple.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/paper-tray.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/porcelain-vase.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/rank-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/health-normal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/medical-pack-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/play-button.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/upgrade.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/create/createItem.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | class CreateItemForm extends React.Component { 4 | constructor (props) { 5 | super(props); 6 | this.state = {} 7 | } 8 | render() { 9 | return ( 10 |
Create Item!
11 | ) 12 | } 13 | } 14 | 15 | export default CreateItemForm; -------------------------------------------------------------------------------- /src/media-store/fallout-shelter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/hearts.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/smartphone.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/antarctica.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/clubs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/egypt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/house.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/uruguay.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/telescopic-baton.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/chess-pawn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/striking-diamonds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/brick-wall.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/bottom-right-3d-arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/lucifer-cannon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/private.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/smash-arrows.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/arena.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/level-two.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/nodular.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/data/parser.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const names = fs.readFileSync('./names', 'utf-8'); 3 | const list = names.split('\n').join(' ').split('\t'); 4 | 5 | fs.writeFile("names.json", JSON.stringify(list), 'utf8', function (err) { 6 | if (err) { 7 | return console.log(err); 8 | } 9 | 10 | console.log("The file was saved!"); 11 | }); -------------------------------------------------------------------------------- /src/media-store/factory.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/barefoot.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/battery-pack-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/doubled.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/electric-whip.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/hospital-cross.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/stack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/usb-key.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/circular-saw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/direction-signs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/focused-lightning.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/unplugged.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/valley.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/styles/components/_navs.scss: -------------------------------------------------------------------------------- 1 | .navs { 2 | display: flex; 3 | justify-content: center; 4 | } 5 | 6 | .nav { 7 | padding: $s-size $l-size; 8 | text-align: center; 9 | font-size: $m-size; 10 | text-decoration: none; 11 | color: white; 12 | } 13 | 14 | .nav:hover { 15 | background: lighten($background, 10%); 16 | color: $light-text; 17 | cursor: pointer; 18 | } -------------------------------------------------------------------------------- /src/media-store/coffin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/helmet.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/latvia.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/pc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | -------------------------------------------------------------------------------- /src/media-store/ladder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/lightning-trio.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/styles/base/_settings.scss: -------------------------------------------------------------------------------- 1 | //Colors 2 | $background: #454545; 3 | $light-background: #ececeb; 4 | $paper: #FDF1DC; 5 | $dark-accent: #8A716A; 6 | $light-accent: #C03221; 7 | 8 | $green: #273C2C; 9 | 10 | $light-text: #ecf0f1; 11 | $dark-text: #2c3e50; 12 | 13 | //Sizes 14 | $s-size: 1.2rem; 15 | $m-size: 1.6rem; 16 | $l-size: 3.2rem; 17 | $xl-size: 4.8rem; 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/reducers/combatEntities.js: -------------------------------------------------------------------------------- 1 | export default (state = [], action) => { 2 | switch (action.type) { 3 | case "ADD_COMBAT_ENTITY": 4 | return [...state, action.entity]; 5 | case "REMOVE_COMBAT_ENTITY": 6 | return state.filter(entity => entity.uid !== action.uid); 7 | case "UPDATE_ALL_ENTITIES": 8 | return [...action.entityList]; 9 | default: 10 | return state; 11 | } 12 | } -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /src/media-store/hasty-grave.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/railway.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/shield-disabled.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/tesla.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/chess-queen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/cooking-pot.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/ermine.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/fire.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/health-decrease.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/health-increase.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/spades.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/whiplash.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/pie-chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/rank-3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/rough-wound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/broken-heart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/kevlar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/poison.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/resize.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/rifle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/styles/base/_base.scss: -------------------------------------------------------------------------------- 1 | @import 'settings'; 2 | @import 'styles/normalize.css'; 3 | 4 | html { 5 | font-size: 62.5%; 6 | } 7 | body { 8 | padding: 0; 9 | margin: 0; 10 | font-family: Helvetica, Arial, sans-serif; 11 | background: $light-background; 12 | } 13 | button { 14 | cursor: pointer; 15 | } 16 | input:focus, 17 | select:focus, 18 | textarea:focus, 19 | button:focus { 20 | outline: none; 21 | } -------------------------------------------------------------------------------- /src/media-store/balkenkreuz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/cigarette.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/bolivia.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/submarine.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/bridge.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/iron-cross.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/level-two-advanced.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/pause-button.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/shotgun.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/thrown-spear.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/trash-can.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/australia.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/cambodia.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/heat-haze.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/white-tower.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/drop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/weight-crush.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/metal-plate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/reducers/customMonsters.js: -------------------------------------------------------------------------------- 1 | const customMonstersFromStorage = JSON.parse(window.localStorage.getItem('monsters')) || []; 2 | 3 | export default (state = customMonstersFromStorage, action) => { 4 | switch(action.type){ 5 | case 'ADD_CUSTOM_MONSTER': 6 | return [...state, ...action.monster]; 7 | case 'REMOVE_CUSTOM_MONSTER': 8 | return state.filter(m => m.uuid !== action.uuid); 9 | default: 10 | return state; 11 | } 12 | }; -------------------------------------------------------------------------------- /src/media-store/dungeon-light.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/egyptian-pyramids.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/hot-surface.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/ice-pop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/road.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/solid-leaf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/reducers/players.js: -------------------------------------------------------------------------------- 1 | const savedPlayersFromStorage = window.localStorage.getItem('players') || []; 2 | 3 | export default (state = savedPlayersFromStorage, action) => { 4 | switch(action.type){ 5 | case 'ADD_PLAYER': 6 | return [...state, ...action.player]; 7 | case 'REMOVE_PLAYER': 8 | return state.filter(p => p.uuid !== action.uuid); 9 | default: 10 | return new Error('Wrong action type in customMonsters reducer'); 11 | } 12 | }; -------------------------------------------------------------------------------- /src/media-store/checkbox-tree.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/clover-spiked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/suicide.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/acoustic-megaphone.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/colombia.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/bed-lamp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/brazil-flag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/broken-wall.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/chess-knight.svg: -------------------------------------------------------------------------------- 1 | id="defs4976" /> -------------------------------------------------------------------------------- /src/media-store/triple-scratches.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './App.css'; 3 | import AppRouter from './AppRouter'; 4 | import configureStore from './store/configureStore'; 5 | import {Provider} from 'react-redux'; 6 | 7 | const store = configureStore(); 8 | 9 | store.subscribe(() => { 10 | console.log(store.getState().reference) 11 | }); 12 | 13 | const App = () => ( 14 | 15 | 16 | 17 | ) 18 | 19 | export default App; -------------------------------------------------------------------------------- /src/media-store/anvil.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/battery-pack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/entry-door.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/exit-door.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/power-button.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/wrench.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/laser-burst.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/pin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/thrust-bend.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/spine-arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/whirlpool-shuriken.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/divided-square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/eternal-love.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/h2o.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/inverted-dice-1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/tower-flag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/turret.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/dress.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/life-buoy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/moebius-triangle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/private-first-class.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/actions/monster.js: -------------------------------------------------------------------------------- 1 | export const editMonster = (monster) => { 2 | return ({ 3 | type: 'EDIT_MONSTER', 4 | monster 5 | 6 | }); 7 | } 8 | 9 | export const addCustomMonster = (monster) => { 10 | let monsters = JSON.parse(window.localStorage.getItem('monsters') || "[]"); 11 | monsters = [...monsters, monster]; 12 | console.log(monsters); 13 | window.localStorage.setItem('monsters', JSON.stringify(monsters)); 14 | return ({ 15 | type: 'ADD_CUSTOM_MONSTER', 16 | monster 17 | }); 18 | } -------------------------------------------------------------------------------- /src/media-store/black-sea.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/film-strip.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/i-beam.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/overkill.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/spikes-init.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/sri-lanka.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/play/generators.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import NPCGenerator from './npcGenerator'; 3 | import BuildingGenerator from './buildingGenerator'; 4 | 5 | class Generators extends React.Component { 6 | render() { 7 | return ( 8 |
9 |
10 | 11 | 12 |
13 |
14 | ) 15 | } 16 | } 17 | 18 | export default Generators; -------------------------------------------------------------------------------- /src/media-store/acid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/gavel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/africa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/damaged-house.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/heavy-lightning.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/sickle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/star-shuriken.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/crenulated-shield.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/cut-diamond.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/edge-crack.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/fast-arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/pulse.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/trident.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/charm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/locked-fortress.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/round-star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/scalpel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/paper-arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/papers.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/sword-altar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/zeppelin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/header.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {NavLink} from 'react-router-dom'; 3 | 4 | const Header = () => ( 5 |
6 |

Dungeon Tools

7 |
8 | Reference 9 | Play 10 | Create 11 |
12 |
13 | ); 14 | 15 | export default Header; -------------------------------------------------------------------------------- /src/media-store/inverted-dice-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/led.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/omega.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/concentration-orb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/panzerfaust.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/pistol-gun.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/siren.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/sprint.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/tron-arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/wooden-fence.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/bolter-gun.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/chained-arrow-heads.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/chess-bishop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/double-face-mask.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/guillotine.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/jet-pack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/crossed-slashes.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/podium-winner.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/shiny-entrance.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/south-africa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/corporal.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/energy-sword.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/hedjet-white-crown.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/podium-second.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/sharp-shuriken.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/stars-stack.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/yin-yang.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/backward-time.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/spanner.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/striking-splinter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/belgium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/box-trap.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/imbricated-arrows.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/planet-core.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/static-guard.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/striking-arrows.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/union-jack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/alligator-clip.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/bookshelf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/ent-mouth.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/poison-cloud.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/slicing-arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/thermometer-scale.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/crosshair.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/folded-paper.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/laser-gun.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/podium-third.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/cardboard-box.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/cracked-shield.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/f1-car.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/stahlhelm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/airtight-hatch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/amethyst.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/divert.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/joystick.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/rock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/sly.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/south-america.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/stone-bridge.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/talk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/flake.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/lips.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/mirror-mirror.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/pillow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/scythe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/shard-sword.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/lob-arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/tap.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/cracked-disc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/crucifix.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/falling-rocks.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/level-four.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/defensive-wall.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/film-projector.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/moon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/select.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/hill-conquest.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/return-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/spiked-tail.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/black-flag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/closed-doors.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/level-three.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/metal-bar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/sand-snake.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/allied-star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/lift.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/actions/combat.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | export const addCombatEntity = (entity) => { 4 | entity.hp = entity.hit_points; 5 | return ({ 6 | type: 'ADD_COMBAT_ENTITY', 7 | entity 8 | }); 9 | } 10 | 11 | export const removeCombatEntity = (uid) => { 12 | return ({ 13 | type: 'REMOVE_COMBAT_ENTITY', 14 | uid 15 | }); 16 | } 17 | 18 | export const updateCombatEntity = (uid, entity) => { 19 | return ({ 20 | type: 'UPDATE_COMBAT_ENTITY', 21 | uid, entity 22 | }) 23 | } 24 | export const updateAllEntities = (entityList) => { 25 | return ({ 26 | type: "UPDATE_ALL_ENTITIES", 27 | entityList 28 | }) 29 | 30 | } -------------------------------------------------------------------------------- /src/media-store/demolish.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/swirled-shell.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/banging-gavel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/hourglass.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/scalpel-strike.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/shoulder-armor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/smoking-pipe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/boot-prints.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/caltrops.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/candlebright.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/croc-sword.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/help.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/inverted-dice-3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/switzerland.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/media/Human.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/broken-pottery.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/cancel.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/hemp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/kimono.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/snorkel.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/back-forth.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/checked-shield.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/feathered-wing.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/fuji.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/styles/components/_monsterTracker.scss: -------------------------------------------------------------------------------- 1 | .tracker { 2 | padding: $s-size; 3 | padding-right: $l-size; 4 | } 5 | .monsterTracker { 6 | padding: $s-size; 7 | display: flex; 8 | flex-wrap: wrap; 9 | } 10 | .monsterTracker__Card { 11 | button { 12 | float: right; 13 | } 14 | } 15 | .monsterTracker__Card__ToggleView { 16 | display: none; 17 | } 18 | .monsterTracker__Card:hover { 19 | .monsterTracker__Card__ToggleView { 20 | display:block; 21 | } 22 | } 23 | 24 | .monsterTracker__Card__HP { 25 | display: flex; 26 | padding: $m-size; 27 | justify-content: space-around; 28 | h1 { 29 | text-align: center; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/media-store/halt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/lightning-helix.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/thorny-tentacle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/walkie-talkie.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/wavy-itinerary.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/wooden-sign.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/flat-hammer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/id-card.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/joint.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/stone-block.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/styles/components/_createRaces.scss: -------------------------------------------------------------------------------- 1 | .races{ 2 | display: flex; 3 | flex-wrap: wrap; 4 | width: 55%; 5 | height: 45%; 6 | } 7 | .races__raceCard { 8 | h2 { 9 | display: inline; 10 | } 11 | flex-grow: 1; 12 | } 13 | .races__raceCard--preview { 14 | width: 20rem; 15 | height: 8rem; 16 | } 17 | .races__raceCard--full { 18 | padding-top: $l-size; 19 | h1 { 20 | font-size: 5rem; 21 | display: inline; 22 | } 23 | } 24 | .races__raceCard--preview:hover { 25 | box-shadow: 0 0 2.5em darken($paper, 30%); 26 | cursor: pointer; 27 | } 28 | .races__raceCard__icon { 29 | width: 6rem; 30 | margin-right: 2rem; 31 | filter: invert(80%); 32 | } -------------------------------------------------------------------------------- /src/media-store/fire-axe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/painted-pottery.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/sea-creature.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/spinning-ribbons.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/stiletto.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/wide-arrow-dunk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/capitol.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/detour.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/evil-hand.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/peaks.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/target-laser.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/clout.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/info.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/padlock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/wind-slap.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/arc-triomphe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/grim-reaper.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/italia.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/stone-throne.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/stone-tower.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/air-zigzag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/media-store/bus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/high-shot.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/hills.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/mexico.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/orb-direction.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/trousers.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/warlock-eye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/floating-crystal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/screen-impact.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/solar-power.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/styles/components/_diceRoller.scss: -------------------------------------------------------------------------------- 1 | .dice { 2 | padding: $s-size; 3 | position: fixed; 4 | right: 0px; 5 | bottom: 0px; 6 | z-index: 1; 7 | } 8 | .diceRoller { 9 | display: flex; 10 | justify-content: flex-start; 11 | } 12 | 13 | .diceRoller__buttons { 14 | display: flex; 15 | flex-direction: column; 16 | button { 17 | padding: $m-size; 18 | width: 6rem; 19 | } 20 | } 21 | 22 | .diceRoller__history { 23 | background: $background; 24 | width: 15rem; 25 | p { 26 | color: white; 27 | font-size: $m-size; 28 | text-align: center; 29 | margin: 0; 30 | padding: $s-size; 31 | } 32 | p:last-child { 33 | background: lighten($background, 20%); 34 | } 35 | } -------------------------------------------------------------------------------- /src/media-store/blast.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/media-store/drill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/evil-eyes.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/sound-waves.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/thunder-struck.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/anvil-impact.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/click.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/media-store/hell-crosses.svg: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------