This commit is contained in:
ntr
2019-03-28 16:57:58 +11:00
parent 4e1b1dd2cb
commit 170a5a06ab
12 changed files with 223 additions and 473 deletions
+2 -2
View File
@@ -13,8 +13,8 @@ export const setInstance = value => ({ type: SET_INSTANCE, value });
export const SET_GAME = 'SET_GAME';
export const setGame = value => ({ type: SET_GAME, value });
export const SET_ACTIVE_ITEM = 'SET_ACTIVE_ITEM';
export const setActiveItem = value => ({ type: SET_ACTIVE_ITEM, value });
export const SET_COMBINER = 'SET_COMBINER';
export const setCombiner = value => ({ type: SET_COMBINER, value });
export const SET_ACTIVE_INCOMING = 'SET_ACTIVE_INCOMING';
export const setActiveIncoming = value => ({ type: SET_ACTIVE_INCOMING, value });
@@ -1,53 +1,22 @@
const preact = require('preact');
const key = require('keymaster');
// const key = require('keymaster');
function convertVar(v) {
return v || '';
}
const VboxContainer = require('./vbox.container');
function Vbox(vbox) {
if (!vbox) return false;
const free = [];
for (let i = 0 ; i < vbox.free[0].length; i++) {
free.push([vbox.free[0][i], vbox.free[1][i], vbox.free[2][i]]);
}
const rows = free.map((row, i) => (
<tr key={i}>
<td>{convertVar(row[0])}</td>
<td>{convertVar(row[1])}</td>
<td>{convertVar(row[2])}</td>
</tr>
));
return (
<div className="four columns">
<span>vBox</span>
<table className="vbox-table">
<tbody>
{rows}
</tbody>
</table>
{JSON.stringify(vbox)}
</div>
);
}
function InstanceComponent(props) {
function InstanceComponent(args) {
const {
// account,
instance,
account,
sendInstanceReady,
quit,
} = props;
sendInstanceReady,
} = args;
if (!instance) return <div>...</div>;
return (
<section>
<div className="row">
<div className="six columns">
<div className="three columns">
<button
className="instance-btn instance-ui-btn glow-btn"
onClick={quit}>
@@ -55,6 +24,9 @@ function InstanceComponent(props) {
</button>
</div>
<div className="six columns">
<h4>next game against: mmmmmashy</h4>
</div>
<div className="three columns">
<button
className="instance-btn instance-ui-btn green-btn u-pull-right"
onClick={() => sendInstanceReady()}>
@@ -63,13 +35,10 @@ function InstanceComponent(props) {
</div>
</div>
<div className="row">
{Vbox(instance.vbox)}
<div className="four columns">
<VboxContainer />
<div className="three columns">
{JSON.stringify(instance.cryps)}
</div>
<div className="four columns">
ready btn
</div>
</div>
</section>
);
@@ -6,19 +6,20 @@ const Instance = require('./instance.component');
const addState = connect(
function receiveState(state) {
const { ws, instance, account } = state;
const { ws, instance, account, combiner } = state;
function sendInstanceReady() {
return ws.sendInstanceReady(instance.id);
return ws.sendInstanceReady(instance.instance);
}
return { instance, account, sendInstanceReady };
},
function receiveDispatch(dispatch, { instance }) {
function receiveDispatch(dispatch, { instance, combiner }) {
function quit() {
dispatch(actions.setInstance(null));
}
return { quit };
}
@@ -3,7 +3,7 @@ const preact = require('preact');
function renderLogin({ account, submitLogin, submitRegister }) {
if (account) return (
<div>
<div className="header-status">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" className="ping-svg">
<path d="M0,50l50,-50v100l50,-50" className="ping-path"/>
<path d="M0,50l50,-50v100l50,-50" className="ping-path"/>
@@ -0,0 +1,86 @@
const preact = require('preact');
// const key = require('keymaster');
function convertVar(v) {
return v || '';
}
function Vbox(args) {
const {
instance,
combiner,
sendVboxDiscard,
sendVboxReclaim,
sendVboxCombine,
} = args;
const { vbox } = instance;
if (!instance.vbox) return false;
const free = [];
for (let i = 0 ; i < vbox.free[0].length; i++) {
free.push([vbox.free[0][i], vbox.free[1][i], vbox.free[2][i]]);
}
const freeRows = free.map((row, i) => (
<tr key={i}>
<td>{convertVar(row[0])}</td>
<td>{convertVar(row[1])}</td>
<td>{convertVar(row[2])}</td>
</tr>
));
const boundRows = [
<tr key={0} >
<td>{convertVar(vbox.bound[0])}</td>
<td>{convertVar(vbox.bound[1])}</td>
<td>{convertVar(vbox.bound[2])}</td>
</tr>,
<tr key={1}>
<td>{convertVar(vbox.bound[3])}</td>
<td>{convertVar(vbox.bound[4])}</td>
<td>{convertVar(vbox.bound[5])}</td>
</tr>,
<tr key={2}>
<td>{convertVar(vbox.bound[6])}</td>
<td>{convertVar(vbox.bound[7])}</td>
<td>{convertVar(vbox.bound[8])}</td>
</tr>,
];
return (
<div className="three columns">
<span>vBox</span>
<button
className="instance-btn instance-ui-btn vbox-btn"
onClick={() => sendVboxDiscard()}>
Reroll
</button>
<table className="vbox-table">
<tbody>
{freeRows}
</tbody>
</table>
<span>INVENTORY</span>
<button
className="instance-btn instance-ui-btn vbox-btn"
onClick={() => sendVboxReclaim()}>
reclaim
</button>
<table className="vbox-table">
<tbody>
{boundRows}
</tbody>
</table>
<span>iCombinator</span>
<button
className="instance-btn instance-ui-btn vbox-btn"
onClick={() => sendVboxCombine()}>
combine
</button>
{JSON.stringify(vbox)}
</div>
);
}
module.exports = Vbox;
@@ -0,0 +1,48 @@
const { connect } = require('preact-redux');
const actions = require('../actions');
const Vbox = require('./vbox.component');
const addState = connect(
function receiveState(state) {
const { ws, instance, combiner } = state;
function sendVboxDiscard() {
return ws.sendVboxDiscard(instance.instance);
}
function sendVboxCombine() {
return console.log('combine', combiner);
return ws.sendVboxDiscard(instance.instance);
}
function sendVboxReclaim(v) {
return console.log('reclaim', v);
return ws.sendVboxDiscard(instance.instance);
}
return {
instance,
combiner,
sendVboxDiscard,
sendVboxReclaim,
sendVboxCombine,
};
},
function receiveDispatch(dispatch, { combiner }) {
function addToCombiner(v) {
combiner.push(v);
if (combiner.length > 3) {
dispatch(actions.setCombiner([v]));
}
dispatch(actions.setCombiner(combiner));
}
return { addToCombiner };
}
);
module.exports = addState(Vbox);
+2 -2
View File
@@ -43,8 +43,8 @@ function registerEvents(store) {
return store.dispatch(actions.setInstances(v));
}
function setPlayer(player) {
console.log('EVENT ->', 'player', player);
function setPlayer(v) {
return store.dispatch(actions.setInstance(v));
}
function setZone(zone) {
+1 -3
View File
@@ -7,7 +7,6 @@ const { createStore, combineReducers } = require('redux');
const reducers = require('./reducers');
const actions = require('./actions');
// const setupKeys = require('./keyboard');
// const fizzyText = require('../lib/fizzy-text');
const createSocket = require('./socket');
const registerEvents = require('./events');
@@ -18,6 +17,7 @@ const Body = require('./components/body.component');
const store = createStore(
combineReducers({
account: reducers.accountReducer,
combiner: reducers.combinerReducer,
game: reducers.gameReducer,
cryps: reducers.crypsReducer,
instances: reducers.instancesReducer,
@@ -56,6 +56,4 @@ document.fonts.load('10pt "Jura"').then(() => {
// eslint-disable-next-line
preact.render(<Main />, document.body);
// fizzyText('cryps.gg');
});
+11
View File
@@ -40,6 +40,16 @@ function instanceReducer(state = defaultInstance, action) {
}
}
const defaultCombiner = [];
function combinerReducer(state = defaultCombiner, action) {
switch (action.type) {
case actions.SET_COMBINER:
return action.value;
default:
return state;
}
}
const defaultGame = null;
function gameReducer(state = defaultGame, action) {
switch (action.type) {
@@ -62,6 +72,7 @@ function wsReducer(state = defaultWs, action) {
module.exports = {
accountReducer,
combinerReducer,
crypsReducer,
gameReducer,
instancesReducer,