Adding kick player support.

This commit is contained in:
2020-04-22 21:22:13 -07:00
parent 2a6a0b038e
commit 8893a50596
5 changed files with 30 additions and 75 deletions

View File

@@ -34,7 +34,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faUser, faUsers, faTractor, faWindowRestore,
faDollarSign, faTimes, faAsterisk, faExchangeAlt,
faInfoCircle, faArrowUp, faArrowDown, faAward,
faTimesCircle } from '@fortawesome/free-solid-svg-icons'
faTimesCircle, faBan } from '@fortawesome/free-solid-svg-icons'
import { GroupBox, Row, Col, Button } from '../widgets.jsx'
import SpaceNode from './SpaceNode.jsx'
@@ -48,7 +48,7 @@ import { setSelectedCard, setMessagePanelSpace, setMPDims, movePlayer,
import { buy, roll, endTurn, loan, trade, submitTradeAccept,
submitTradeDeny, submitTradeCancel, audit,
buyUncleBert, skip, endAiTurn, startGame, readyToStart,
leaveGame } from './interface.js'
leaveGame, kickPlayer } from './interface.js'
function netWorth(player) {
return ((player.assets.hay + player.assets.grain) * 2000) +
@@ -1935,7 +1935,8 @@ class Info extends React.Component {
class StartGame extends React.Component {
render() {
const { auditThreshold, downPayment, loanInterest, maxDebt, startingOtbs, startingCash, startingDebt } = this.props.game.settings;
const { name } = this.props.game;
const playerName = this.props.player.name;
const { name, host } = this.props.game;
return (
<>
<h1>Lobby</h1>
@@ -1948,6 +1949,11 @@ class StartGame extends React.Component {
{this.props.game.otherPlayers.map((p, i) => (
<li key={i}>
{p.player.name}
{playerName === host ? (
<span title="Kick Player" className="kick-player" onClick={() => kickPlayer(p.player.name)}>
<FontAwesomeIcon icon={faBan} />
</span>
): (<></>)}
</li>
))}
</ul>

View File

@@ -31,7 +31,7 @@ import { itemCard, fateCard } from 'game.js'
export { initialize, buy, roll, endTurn, loan, trade, submitTradeAccept,
submitTradeDeny, submitTradeCancel, audit, handleMessage,
nextAction, buyUncleBert, actionsFinished, skip, endAiTurn,
startGame, readyToStart, leaveGame }
startGame, readyToStart, leaveGame, kickPlayer }
let store;
let movingTimer = 0;
@@ -213,6 +213,10 @@ function leaveGame() {
sendCommand({ type: 'leave-game' });
}
function kickPlayer(name) {
sendCommand({ type: 'kick-player', name });
}
// TODO share with Board.jsx
// http://stackoverflow.com/questions/149055
function formatMoney(n) {

View File

@@ -106,6 +106,7 @@ const initialState = {
turn: 0,
oldMessages: [],
name: '',
host: '',
settings: { downPayment: 0.2,
loanInterest: 0.2,
maxDebt: 50000,