instance list
This commit is contained in:
+2
-2
@@ -10,8 +10,8 @@
|
||||
<meta name="author" content="ntr@smokestack.io">
|
||||
<link rel="manifest" href="manifest.webmanifest">
|
||||
<link rel="stylesheet" href="./node_modules/izitoast/dist/css/iziToast.min.css"></script>
|
||||
<link href="https://fonts.googleapis.com/css?family=Jura" rel="stylesheet">
|
||||
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
|
||||
<!-- <link href="https://fonts.googleapis.com/css?family=Jura" rel="stylesheet"> -->
|
||||
<!-- <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> -->
|
||||
<link rel="stylesheet" href="assets/styles/normalize.css">
|
||||
<link rel="stylesheet" href="assets/styles/skeleton.css">
|
||||
</head>
|
||||
|
||||
@@ -7,6 +7,7 @@ export const setInstances = value => ({ type: 'SET_INSTANCES', value });
|
||||
export const setNav = value => ({ type: 'SET_NAV', value });
|
||||
export const setShowNav = value => ({ type: 'SET_SHOW_NAV', value });
|
||||
export const setInstance = value => ({ type: 'SET_INSTANCE', value });
|
||||
export const setInstanceList = value => ({ type: 'SET_INSTANCE_LIST', value });
|
||||
export const setPing = value => ({ type: 'SET_PING', value });
|
||||
export const setPlayer = value => ({ type: 'SET_PLAYER', value });
|
||||
export const setGame = value => ({ type: 'SET_GAME', value });
|
||||
|
||||
@@ -9,7 +9,7 @@ const idSort = stringSort('id');
|
||||
|
||||
const addState = connect(
|
||||
function receiveState(state) {
|
||||
const { ws, constructs, team, instances, account } = state;
|
||||
const { ws, constructs, team, instanceList, account } = state;
|
||||
|
||||
function sendInstanceJoin(instance) {
|
||||
if (team.length) {
|
||||
@@ -33,7 +33,7 @@ const addState = connect(
|
||||
sendInstanceJoin,
|
||||
sendInstanceState,
|
||||
sendInstanceList,
|
||||
instances,
|
||||
instanceList,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -55,14 +55,14 @@ function List(args) {
|
||||
sendInstanceState,
|
||||
sendInstanceJoin,
|
||||
sendInstanceList,
|
||||
instances,
|
||||
instanceList,
|
||||
navToTeam,
|
||||
} = args;
|
||||
|
||||
function instanceList() {
|
||||
if (!instances) return <div>...</div>;
|
||||
function listElements() {
|
||||
if (!instanceList) return <div>...</div>;
|
||||
|
||||
const instancePanels = instances.map(instance => {
|
||||
const instancePanels = instanceList.map(instance => {
|
||||
const player = instance.players.find(p => p.id === account.id);
|
||||
const scoreText = player
|
||||
? `${player.score.wins} : ${player.score.losses}`
|
||||
@@ -110,11 +110,7 @@ function List(args) {
|
||||
const constructPanels = constructs
|
||||
.filter(c => team.includes(c.id))
|
||||
.sort(idSort)
|
||||
.map(construct => {
|
||||
const colour = team.indexOf(construct.id);
|
||||
const selected = colour > -1;
|
||||
|
||||
return (
|
||||
.map(construct =>
|
||||
<div
|
||||
key={construct.id}
|
||||
className="menu-construct" >
|
||||
@@ -122,7 +118,6 @@ function List(args) {
|
||||
<h2>{construct.name}</h2>
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
const header = (
|
||||
<div className="top">
|
||||
@@ -141,7 +136,7 @@ function List(args) {
|
||||
<div className="construct-list">
|
||||
{constructPanels}
|
||||
</div>
|
||||
{instanceList()}
|
||||
{listElements()}
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ const addState = connect(
|
||||
account,
|
||||
instances,
|
||||
team,
|
||||
constructs,
|
||||
// constructs,
|
||||
game,
|
||||
} = state;
|
||||
|
||||
@@ -25,14 +25,18 @@ const addState = connect(
|
||||
return ws.sendAccountInstances();
|
||||
}
|
||||
|
||||
function sendInstanceList() {
|
||||
return ws.sendInstanceList();
|
||||
}
|
||||
|
||||
return {
|
||||
account,
|
||||
instances,
|
||||
team,
|
||||
constructs,
|
||||
game,
|
||||
sendInstanceState,
|
||||
sendAccountInstances,
|
||||
sendInstanceList,
|
||||
};
|
||||
},
|
||||
function receiveDispatch(dispatch) {
|
||||
@@ -77,9 +81,9 @@ function Nav(args) {
|
||||
account,
|
||||
sendInstanceState,
|
||||
sendAccountInstances,
|
||||
sendInstanceList,
|
||||
|
||||
team,
|
||||
constructs,
|
||||
instances,
|
||||
game,
|
||||
|
||||
@@ -90,7 +94,10 @@ function Nav(args) {
|
||||
} = args;
|
||||
|
||||
function navTo(p) {
|
||||
if (p === 'list') sendAccountInstances();
|
||||
if (p === 'list') {
|
||||
sendInstanceList();
|
||||
sendAccountInstances();
|
||||
}
|
||||
return setNav(p);
|
||||
}
|
||||
|
||||
@@ -104,14 +111,6 @@ function Nav(args) {
|
||||
<button key={i.id} onClick={() => joinInstance(i)} >{i.name}</button>
|
||||
));
|
||||
|
||||
const teamElements = team.map((c, i) => {
|
||||
if (c) {
|
||||
const construct = constructs.find(f => f.id === c);
|
||||
return <button key={c} onClick={() => navTo('team')}>{construct.name}</button>;
|
||||
}
|
||||
return <button key={i} onClick={() => navTo('team')}>+</button>;
|
||||
});
|
||||
|
||||
const haxSection = process.env.NODE_ENV === 'development'
|
||||
? (
|
||||
<Fragment>
|
||||
@@ -121,13 +120,12 @@ function Nav(args) {
|
||||
</Fragment>)
|
||||
: null;
|
||||
|
||||
const canJoin = team.some(c => !c);
|
||||
|
||||
return (
|
||||
<nav onClick={hideNav} >
|
||||
<h2>Team</h2>
|
||||
{teamElements}
|
||||
<h2>Instances</h2>
|
||||
<button onClick={() => navTo('team')}>1. Select Team</button>
|
||||
<button onClick={() => navTo('list')}>2. Join</button>
|
||||
<button disabled={canJoin} onClick={() => navTo('list')}>2. Join</button>
|
||||
<hr />
|
||||
{joined}
|
||||
{haxSection}
|
||||
|
||||
@@ -27,6 +27,10 @@ function registerEvents(store) {
|
||||
store.dispatch(actions.setConstructs(constructs));
|
||||
}
|
||||
|
||||
function setInstanceList(list) {
|
||||
store.dispatch(actions.setInstanceList(list));
|
||||
}
|
||||
|
||||
function setWs(ws) {
|
||||
store.dispatch(actions.setWs(ws));
|
||||
}
|
||||
@@ -111,7 +115,7 @@ function registerEvents(store) {
|
||||
console.log('EVENT ->', 'scores', scores);
|
||||
}
|
||||
|
||||
function setInstanceList(v) {
|
||||
function setAccountInstances(v) {
|
||||
return store.dispatch(actions.setInstances(v));
|
||||
}
|
||||
|
||||
@@ -200,6 +204,7 @@ function registerEvents(store) {
|
||||
setMenu,
|
||||
setInstance,
|
||||
setInstanceList,
|
||||
setAccountInstances,
|
||||
setVbox,
|
||||
setWs,
|
||||
setGameList,
|
||||
|
||||
@@ -21,6 +21,7 @@ module.exports = {
|
||||
info: createReducer(null, 'SET_INFO'),
|
||||
instance: createReducer(null, 'SET_INSTANCE'),
|
||||
instances: createReducer([], 'SET_INSTANCES'),
|
||||
instanceList: createReducer([], 'SET_INSTANCE_LIST'),
|
||||
itemEquip: createReducer(null, 'SET_ITEM_EQUIP'),
|
||||
itemInfo: createReducer({ combos: [], items: [] }, 'SET_ITEM_INFO'),
|
||||
itemUnequip: createReducer(null, 'SET_ITEM_UNEQUIP'),
|
||||
|
||||
+18
-46
@@ -55,10 +55,6 @@ function createSocket(events) {
|
||||
send({ method: 'account_instances', params: {} });
|
||||
}
|
||||
|
||||
function sendAccountZone() {
|
||||
send({ method: 'account_zone', params: {} });
|
||||
}
|
||||
|
||||
function sendConstructSpawn(name) {
|
||||
send({ method: 'construct_spawn', params: { name } });
|
||||
}
|
||||
@@ -71,43 +67,39 @@ function createSocket(events) {
|
||||
send({ method: 'game_ready', params: { id } });
|
||||
}
|
||||
|
||||
function sendSpecForget(id, spec) {
|
||||
send({ method: 'construct_unspec', params: { id, spec } });
|
||||
}
|
||||
|
||||
function sendPlayerMmConstructsSet(constructIds) {
|
||||
send({ method: 'player_mm_constructs_set', params: { construct_ids: constructIds } });
|
||||
}
|
||||
|
||||
function sendInstanceState(instanceId) {
|
||||
send({ method: 'instance_state', params: { instance_id: instanceId } });
|
||||
}
|
||||
|
||||
function sendInstanceList() {
|
||||
send({ method: 'instance_list', params: {} });
|
||||
}
|
||||
|
||||
function sendVboxAccept(instanceId, group, index) {
|
||||
send({ method: 'player_vbox_accept', params: { instance_id: instanceId, group, index } });
|
||||
send({ method: 'vbox_accept', params: { instance_id: instanceId, group, index } });
|
||||
}
|
||||
|
||||
function sendVboxApply(instanceId, constructId, index) {
|
||||
send({ method: 'player_vbox_apply', params: { instance_id: instanceId, construct_id: constructId, index } });
|
||||
send({ method: 'vbox_apply', params: { instance_id: instanceId, construct_id: constructId, index } });
|
||||
events.setActiveItem(null);
|
||||
}
|
||||
|
||||
function sendVboxUnequip(instanceId, constructId, target) {
|
||||
send({ method: 'player_vbox_unequip', params: { instance_id: instanceId, construct_id: constructId, target } });
|
||||
send({ method: 'vbox_unequip', params: { instance_id: instanceId, construct_id: constructId, target } });
|
||||
events.clearInfo();
|
||||
}
|
||||
|
||||
function sendVboxDiscard(instanceId) {
|
||||
send({ method: 'player_vbox_discard', params: { instance_id: instanceId } });
|
||||
send({ method: 'vbox_discard', params: { instance_id: instanceId } });
|
||||
}
|
||||
|
||||
function sendVboxCombine(instanceId, indices) {
|
||||
send({ method: 'player_vbox_combine', params: { instance_id: instanceId, indices } });
|
||||
send({ method: 'vbox_combine', params: { instance_id: instanceId, indices } });
|
||||
events.clearCombiner();
|
||||
}
|
||||
|
||||
function sendVboxReclaim(instanceId, index) {
|
||||
send({ method: 'player_vbox_reclaim', params: { instance_id: instanceId, index } });
|
||||
send({ method: 'vbox_reclaim', params: { instance_id: instanceId, index } });
|
||||
}
|
||||
|
||||
function sendItemInfo() {
|
||||
@@ -129,18 +121,6 @@ function createSocket(events) {
|
||||
events.setActiveSkill(null);
|
||||
}
|
||||
|
||||
function sendZoneCreate() {
|
||||
send({ method: 'zone_create', params: {} });
|
||||
}
|
||||
|
||||
function sendZoneJoin(zoneId, nodeId, constructIds) {
|
||||
send({ method: 'zone_join', params: { zone_id: zoneId, node_id: nodeId, construct_ids: constructIds } });
|
||||
}
|
||||
|
||||
function sendZoneClose(zoneId) {
|
||||
send({ method: 'zone_close', params: { zone_id: zoneId } });
|
||||
}
|
||||
|
||||
function sendInstanceJoin(instanceId, constructs) {
|
||||
send({ method: 'instance_join', params: { instance_id: instanceId, construct_ids: constructs } });
|
||||
}
|
||||
@@ -153,11 +133,6 @@ function createSocket(events) {
|
||||
send({ method: 'instance_ready', params: { instance_id: instanceId } });
|
||||
}
|
||||
|
||||
function sendInstanceScores(instanceId) {
|
||||
send({ method: 'instance_scores', params: { instance_id: instanceId } });
|
||||
}
|
||||
|
||||
|
||||
// -------------
|
||||
// Incoming
|
||||
// -------------
|
||||
@@ -173,7 +148,7 @@ function createSocket(events) {
|
||||
|
||||
function accountInstanceList(res) {
|
||||
const [struct, playerList] = res;
|
||||
events.setInstanceList(playerList);
|
||||
events.setAccountInstances(playerList);
|
||||
}
|
||||
|
||||
function accountConstructs(response) {
|
||||
@@ -219,6 +194,11 @@ function createSocket(events) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function instanceList([, list]) {
|
||||
events.setInstanceList(list);
|
||||
return true;
|
||||
}
|
||||
|
||||
function clearInstanceStateTimeout() {
|
||||
clearTimeout(instanceStateTimeout);
|
||||
}
|
||||
@@ -246,9 +226,7 @@ function createSocket(events) {
|
||||
account_create: accountLogin,
|
||||
account_constructs: accountConstructs,
|
||||
account_instances: accountInstanceList,
|
||||
zone_create: res => console.log(res),
|
||||
zone_state: zoneState,
|
||||
zone_close: res => console.log(res),
|
||||
instance_list: instanceList,
|
||||
instance_state: instanceState,
|
||||
item_info: itemInfo,
|
||||
pong,
|
||||
@@ -340,21 +318,15 @@ function createSocket(events) {
|
||||
sendAccountCreate,
|
||||
sendAccountConstructs,
|
||||
sendAccountInstances,
|
||||
sendAccountZone,
|
||||
sendGameState,
|
||||
sendGameReady,
|
||||
sendGameSkill,
|
||||
sendGameTarget,
|
||||
sendConstructSpawn,
|
||||
sendSpecForget,
|
||||
sendZoneCreate,
|
||||
sendZoneJoin,
|
||||
sendZoneClose,
|
||||
sendInstanceJoin,
|
||||
sendInstanceList,
|
||||
sendInstanceReady,
|
||||
sendInstanceNew,
|
||||
sendInstanceScores,
|
||||
sendPlayerMmConstructsSet,
|
||||
sendInstanceState,
|
||||
sendVboxAccept,
|
||||
sendVboxApply,
|
||||
|
||||
Reference in New Issue
Block a user