scoreboard
This commit is contained in:
parent
be427f2271
commit
4722b4507d
@ -41,8 +41,8 @@ do not allow vbox actions for finished instances
|
||||
|
||||
|
||||
*SERVER*
|
||||
* std game mode
|
||||
* time control
|
||||
|
||||
* modify time controls to be optional
|
||||
|
||||
* eth adapter
|
||||
* pay for rerolls
|
||||
|
||||
@ -5,13 +5,15 @@ const { INFO } = require('./../constants');
|
||||
const { convertItem } = require('../utils');
|
||||
const shapes = require('./shapes');
|
||||
|
||||
const ScoreBoard = require('./scoreboard');
|
||||
|
||||
function InfoComponent(args) {
|
||||
const {
|
||||
info,
|
||||
itemInfo,
|
||||
|
||||
combiner,
|
||||
player,
|
||||
instance,
|
||||
} = args;
|
||||
|
||||
function Info() {
|
||||
@ -152,12 +154,13 @@ function InfoComponent(args) {
|
||||
);
|
||||
}
|
||||
|
||||
// const beginningHdr = instance.phase === 'Lobby'
|
||||
// ? <h2>game beginning...</h2>
|
||||
// : null;
|
||||
const scoreboard = instance.phase === 'Lobby' || info
|
||||
? null
|
||||
: <ScoreBoard />;
|
||||
|
||||
return (
|
||||
<div class='info' >
|
||||
{scoreboard}
|
||||
<Info />
|
||||
<Combos />
|
||||
</div>
|
||||
|
||||
@ -5,12 +5,13 @@ const Vbox = require('./vbox.component');
|
||||
const InfoContainer = require('./info.container');
|
||||
const InstanceConstructsContainer = require('./instance.constructs');
|
||||
const EquipmentContainer = require('./instance.equip');
|
||||
const ScoreBoard = require('./scoreboard');
|
||||
|
||||
const actions = require('../actions');
|
||||
|
||||
const addState = connect(
|
||||
function receiveState(state) {
|
||||
const { ws, instance, nav } = state;
|
||||
const { instance, nav } = state;
|
||||
return { instance, nav };
|
||||
},
|
||||
|
||||
@ -34,57 +35,15 @@ function Instance(args) {
|
||||
} = args;
|
||||
|
||||
if (!instance) return false;
|
||||
|
||||
function playerRound(id) {
|
||||
if (!instance.rounds.length) return null;
|
||||
return instance.rounds[instance.rounds.length - 1].find(r => r.player_ids.includes(id));
|
||||
}
|
||||
|
||||
function playerText(p) {
|
||||
const round = playerRound(p.id);
|
||||
if (!round) {
|
||||
return p.ready
|
||||
? 'ready'
|
||||
: '';
|
||||
}
|
||||
|
||||
if (round.finished) return 'finished';
|
||||
if (round.game_id) return 'in game';
|
||||
|
||||
return p.ready
|
||||
? 'ready'
|
||||
: '';
|
||||
}
|
||||
|
||||
function ScoreBoard() {
|
||||
if (instance.phase === 'InProgress') return null;
|
||||
|
||||
const players = instance.players.map((p, i) => {
|
||||
const pText = playerText(p);
|
||||
return (
|
||||
<tr key={i}
|
||||
class={p.ready ? 'ready' : ''}>
|
||||
<td>{p.name}</td>
|
||||
<td>{p.wins} / {p.losses}</td>
|
||||
<td>{pText}</td>
|
||||
</tr>
|
||||
);
|
||||
});
|
||||
|
||||
return (
|
||||
<table class="scoreboard" >
|
||||
<tbody>
|
||||
{players}
|
||||
</tbody>
|
||||
</table>
|
||||
);
|
||||
}
|
||||
|
||||
const instanceClasses = `instance ${nav === 'constructs' ? 'constructs-visible' : ''}`;
|
||||
|
||||
const lobbyInfo = (instance.phase === 'Lobby')
|
||||
? <ScoreBoard />
|
||||
: null;
|
||||
|
||||
return (
|
||||
<main class={instanceClasses} onMouseOver={() => setInfo(null)} >
|
||||
<ScoreBoard />
|
||||
{lobbyInfo}
|
||||
<Vbox />
|
||||
<InfoContainer />
|
||||
<EquipmentContainer />
|
||||
|
||||
34
client/src/components/scoreboard.jsx
Normal file
34
client/src/components/scoreboard.jsx
Normal file
@ -0,0 +1,34 @@
|
||||
const preact = require('preact');
|
||||
const { connect } = require('preact-redux');
|
||||
|
||||
const addState = connect(
|
||||
function receiveState(state) {
|
||||
const { instance } = state;
|
||||
return { instance };
|
||||
},
|
||||
);
|
||||
|
||||
function ScoreBoard(args) {
|
||||
const {
|
||||
instance,
|
||||
} = args;
|
||||
|
||||
const players = instance.players.map((p, i) =>
|
||||
<tr key={i}
|
||||
class={p.ready ? 'ready' : ''}>
|
||||
<td>{p.name}</td>
|
||||
<td>{p.wins} / {p.losses}</td>
|
||||
<td>{p.ready ? 'ready' : ''}</td>
|
||||
</tr>
|
||||
);
|
||||
|
||||
return (
|
||||
<table class="scoreboard" >
|
||||
<tbody>
|
||||
{players}
|
||||
</tbody>
|
||||
</table>
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = addState(ScoreBoard);
|
||||
Loading…
x
Reference in New Issue
Block a user