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
@@ -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);