import { SETTINGS } from '../App.js'; import * as ScorebarActions from '../actions/board/scorebar.actions'; import * as MessageActions from '../actions/board/message.actions'; import TroggleCtrl from './troggle.controller'; import MessageCtrl from './message.controller'; import MuncherCtrl from './muncher.controller'; import GridCtrl from './grid.controller'; const level = 0; let dispatch; const BoardCtrl = { setDispatch: (d) => { dispatch = d; GridCtrl.setDispatch(d); MuncherCtrl.setDispatch(d); }, munch() { const index = MuncherCtrl.getY() * SETTINGS.GRID_WIDTH + MuncherCtrl.getX(); if (GridCtrl.getValues()[index].valid) { GridCtrl.hideValue(index); if (GridCtrl.isCompleted() === true) { dispatch(MessageActions.exclaim()); } } else { dispatch(MessageActions.show(`Uh oh - ${GridCtrl.getValues()[index].value} is not a match.`)); } }, keyListener(e) { if (e.keyCode === 32 && GridCtrl.isCompleted() === true) { this.nextLevel(); dispatch(MessageActions.hide()); } else if (e.keyCode === 32 && MessageCtrl.isShowing() === true) { dispatch(MessageActions.hide()); } else if (e.keyCode === 32 && MessageCtrl.isShowing() === false) { this.munch(); } else if (MessageCtrl.isShowing() === false) { MuncherCtrl.move(e); } }, nextLevel() { GridCtrl.generateValues(level); // TroggleCtrl.clearAll(this.props.dispatch); // TroggleCtrl.createTroggles(this.props.dispatch); }, // if (troggles[i].x === muncher.x && troggles[i].y === muncher.y) { // this.props.dispatch(MessageActions.show("You've been eaten by a troggle!")); // this.props.dispatch(ScorebarActions.munchFailed()); // TroggleCtrl.frozen = true; // ReactDOM.findDOMNode(this.refs.message).focus(); // } }; export default BoardCtrl;