const { connect } = require('preact-redux'); const actions = require('../actions'); const Game = require('./game'); const addState = connect( function receiveState(state) { const { ws, game, account, activeSkill, activeIncoming } = state; function selectSkillTarget(targetCrypId) { if (activeSkill) { return ws.sendGameSkill(game.id, activeSkill.crypId, targetCrypId, activeSkill.skill.skill); } return false; } // intercept self casting skills if (activeSkill && activeSkill.skill.self_targeting) { ws.sendGameSkill(game.id, activeSkill.crypId, null, activeSkill.skill.skill); } function selectIncomingTarget(crypId) { if (activeIncoming) { return ws.sendGameTarget(game.id, crypId, activeIncoming); } return false; } return { game, account, activeSkill, activeIncoming, selectSkillTarget, selectIncomingTarget }; }, function receiveDispatch(dispatch) { function setActiveSkill(crypId, skill) { dispatch(actions.setActiveSkill(crypId, skill)); } function setActiveIncoming(skillId) { dispatch(actions.setActiveIncoming(skillId)); } return { setActiveSkill, setActiveIncoming }; } ); module.exports = addState(Game);