1
0

Minor tweaks to UI gameplay

Signed-off-by: James Ketrenos <james_eikona@ketrenos.com>
This commit is contained in:
James Ketrenos 2022-03-14 15:36:56 -07:00
parent 32ba1c03b1
commit 2182d9b0c1
8 changed files with 82 additions and 22 deletions

View File

@ -57,11 +57,18 @@ body {
} }
.Table .WarningDialog .Warning { .Table .WarningDialog .Warning {
display: flex;
flex-direction: column;
padding: 0.25rem;
}
.Table .WarningDialog .Warning > div {
display: flex; display: flex;
padding: 1rem; padding: 1rem;
} }
.Table .PlayersStatus { .Table .PlayersStatus {
z-index: 5000; z-index: 5000;
} }

View File

@ -304,7 +304,10 @@ const Table = () => {
</Paper> </Paper>
</div> } </div> }
{ warning && <div className="WarningDialog"> { warning && <div className="WarningDialog">
<Paper className="Warning">{ warning }</Paper> <Paper className="Warning">
<div>{ warning }</div>
<Button onClick={() => { setWarning("")}}>dismiss</Button>
</Paper>
</div> } </div> }
{ state === 'normal' && <SelectPlayer/> } { state === 'normal' && <SelectPlayer/> }
{ color && state === 'game-order' && <GameOrder/> } { color && state === 'game-order' && <GameOrder/> }

View File

@ -162,13 +162,13 @@
.Board .Option .Tile-Shape, .Board .Option .Tile-Shape,
.Board .Option .Corner-Shape, .Board .Option .Corner-Shape,
.Board .Option .Road-Shape { .Board .Option .Road-Shape {
background-color: rgba(255, 255, 255, 0.5) !important; /* background-color: rgba(255, 255, 255, 0.5) !important;*/
} }
.Board .Option .Tile-Shape:hover, .Board .Option .Tile-Shape:hover,
.Board .Option .Corner-Shape:hover, .Board .Option .Corner-Shape:hover,
.Board .Option .Road-Shape :hover{ .Board .Option .Road-Shape :hover{
background-color: rgba(255, 255, 255, 0.75) !important; /* background-color: rgba(255, 255, 255, 0.75) !important; */
} }
.Robber .Pip-Shape { .Robber .Pip-Shape {
@ -217,19 +217,19 @@
} }
.Road[data-longest="5"] { .Road[data-longest="5"] {
filter: drop-shadow(0px 0px 5px black); filter: brightness(110%) drop-shadow(0px 0px 5px black);
} }
.Road[data-longest="6"] { .Road[data-longest="6"] {
filter: drop-shadow(0px 0px 6px black); filter: brightness(120%) drop-shadow(0px 0px 6px black);
} }
.Road[data-longest="7"] { .Road[data-longest="7"] {
filter: drop-shadow(0px 0px 7px black); filter: brightness(130%) drop-shadow(0px 0px 7px black);
} }
.Road[data-longest="8"] { .Road[data-longest="8"] {
filter: drop-shadow(0px 0px 8px black); filter: brightness(140%) drop-shadow(0px 0px 8px black);
} }
.Road[data-longest="9"] { .Road[data-longest="9"] {
filter: drop-shadow(0px 0px 9px black); filter: brightness(150%) drop-shadow(0px 0px 9px black);
} }
.Road[data-longest="10"], .Road[data-longest="10"],
.Road[data-longest="11"], .Road[data-longest="11"],
@ -237,7 +237,7 @@
.Road[data-longest="13"], .Road[data-longest="13"],
.Road[data-longest="14"], .Road[data-longest="14"],
.Road[data-longest="15"] { .Road[data-longest="15"] {
filter: drop-shadow(0px 0px 10px black); filter: brightness(160%) drop-shadow(0px 0px 10px black);
} }
.Board .Selected { .Board .Selected {
@ -264,3 +264,40 @@
[data-color='B'] > .Road-Shape { [data-color='B'] > .Road-Shape {
background-color: rgba(0, 0, 255, 1); background-color: rgba(0, 0, 255, 1);
} }
/*
@keyframes blink {
from {
filter: brightness(90%);
opacity: 1;
}
50% {
filter: brightness(150%);
}
to {
filter: brightness(150%);
opacity: 0.5;
}
}
*/
.Board .Option:hover {
filter: brightness(100%) drop-shadow(0 0 2px black);
opacity: 1;
/*
animation-play-state: paused;
*/
}
.Board .Option {
filter: brightness(200%) drop-shadow(0 0 3px rgba(255, 0, 255, 1));
opacity: 1;
/*
transition-timing-function: ease-in-out;
animation-duration: 0.5s;
animation-name: blink;
animation-iteration-count: infinite;
animation-direction: alternate;
*/
}

View File

@ -54,6 +54,8 @@ const Board = () => {
'placements', 'turn', 'state', 'color', 'longestRoadLength' 'placements', 'turn', 'state', 'color', 'longestRoadLength'
], []); ], []);
console.log(`board - render ws is ${!ws ? 'NULL' : (ws.readyState === ws.OPEN ? 'OPEN' : '!OPEN')}`);
const onWsMessage = (event) => { const onWsMessage = (event) => {
const data = JSON.parse(event.data); const data = JSON.parse(event.data);
switch (data.type) { switch (data.type) {
@ -608,6 +610,7 @@ const Board = () => {
return; return;
} }
el.classList.add('Option'); el.classList.add('Option');
el.setAttribute('data-color', turn.color);
}); });
} }
if (turn.limits['corners']) { if (turn.limits['corners']) {
@ -617,6 +620,7 @@ const Board = () => {
return; return;
} }
el.classList.add('Option'); el.classList.add('Option');
el.setAttribute('data-color', turn.color);
}); });
} }
if (turn.limits['tiles']) { if (turn.limits['tiles']) {

View File

@ -95,7 +95,7 @@ const Hand = ({buildActive, setBuildActive, setCardActive}) => {
if (B.played) { if (B.played) {
return +1; return +1;
} }
return 0; return B.turn - A.turn; /* Put playable cards on top */
}).map(card => <Development }).map(card => <Development
onClick={() => cardClicked(card)} onClick={() => cardClicked(card)}
card={card} card={card}

View File

@ -18,6 +18,10 @@ const Player = ({ player, onClick, reverse, color,
? <Resource label={true} type={'progress-back'} ? <Resource label={true} type={'progress-back'}
count={player.unplayed} disabled/> count={player.unplayed} disabled/>
: undefined; : undefined;
const resourceCards = player.resources
? <Resource label={true} type={'resource-back'}
count={player.resources} disabled/>
: undefined;
const armyCards = player.army const armyCards = player.army
? <Resource label={true} type={'army-1'} count={player.army} disabled/> ? <Resource label={true} type={'army-1'} count={player.army} disabled/>
: undefined; : undefined;
@ -64,8 +68,10 @@ const Player = ({ player, onClick, reverse, color,
{ longestRoadPlacard } { longestRoadPlacard }
{ !largestArmyPlacard && armyCards } { !largestArmyPlacard && armyCards }
{ developmentCards } { developmentCards }
{ resourceCards }
</> } </> }
{ reverse && <> { reverse && <>
{ resourceCards }
{ developmentCards } { developmentCards }
{ !largestArmyPlacard && armyCards } { !largestArmyPlacard && armyCards }
{ longestRoadPlacard } { longestRoadPlacard }

View File

@ -101,6 +101,8 @@ const Winner = () => {
Throughout the game, the robber stole <b>{winner.robberStole}</b> resources: Throughout the game, the robber stole <b>{winner.robberStole}</b> resources:
<div>{stolen}</div> <div>{stolen}</div>
</div>; </div>;
} else {
robber = <div>The robber never stole any resources from anyone!</div>;
} }
const averageSeconds = Math.floor(winner.totalTime / turnCount / 1000), const averageSeconds = Math.floor(winner.totalTime / turnCount / 1000),

View File

@ -2054,14 +2054,15 @@ const buyDevelopment = (game, session) => {
card.turn = game.turns; card.turn = game.turns;
player.development.push(card); player.development.push(card);
sendUpdateToPlayer(game, session, {
private: session.player
});
sendUpdateToPlayers(game, { sendUpdateToPlayers(game, {
chat: game.chat, chat: game.chat,
activities: game.activities, activities: game.activities,
players: getFilteredPlayers(game) players: getFilteredPlayers(game)
}); });
sendUpdateToPlayer(game, session, {
private: session.player
});
} }
const playCard = (game, session, card) => { const playCard = (game, session, card) => {