instance finished flag in db
This commit is contained in:
parent
08b309de22
commit
92007a8c37
@ -646,8 +646,12 @@ table td svg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* GAME */
|
/* GAME */
|
||||||
.game-back-btn {
|
.game-btn {
|
||||||
flex: 0 0 20%;
|
flex: 0 0 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.game-btn:first-child {
|
||||||
|
margin-right: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cryp-skill-btn[disabled] {
|
.cryp-skill-btn[disabled] {
|
||||||
|
|||||||
@ -34,7 +34,7 @@ function GamePanel(props) {
|
|||||||
<main className="game">
|
<main className="game">
|
||||||
<div className="instance-hdr">
|
<div className="instance-hdr">
|
||||||
<button
|
<button
|
||||||
className="game-back-btn instance-btn instance-ui-btn left"
|
className="game-btn instance-btn instance-ui-btn left"
|
||||||
onClick={() => toggleLog(!showLog)}>
|
onClick={() => toggleLog(!showLog)}>
|
||||||
Game
|
Game
|
||||||
</button>
|
</button>
|
||||||
@ -57,20 +57,20 @@ function GamePanel(props) {
|
|||||||
const header = (
|
const header = (
|
||||||
<div className="instance-hdr">
|
<div className="instance-hdr">
|
||||||
<button
|
<button
|
||||||
className="game-back-btn instance-btn instance-ui-btn left"
|
className="game-btn instance-btn instance-ui-btn left"
|
||||||
onClick={backClick}>
|
onClick={backClick}>
|
||||||
Back
|
Back
|
||||||
</button>
|
</button>
|
||||||
|
<button
|
||||||
|
className="game-btn instance-btn instance-ui-btn left"
|
||||||
|
onClick={() => toggleLog(!showLog)}>
|
||||||
|
Log
|
||||||
|
</button>
|
||||||
<div className="spacer">
|
<div className="spacer">
|
||||||
<div> </div>
|
<div> </div>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
className="game-back-btn instance-btn instance-ui-btn left"
|
className="game-btn instance-btn instance-ui-btn right"
|
||||||
onClick={() => toggleLog(!showLog)}>
|
|
||||||
Log
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
className="game-back-btn instance-btn instance-ui-btn right"
|
|
||||||
onClick={() => sendGameReady()}>
|
onClick={() => sendGameReady()}>
|
||||||
Ready
|
Ready
|
||||||
</button>
|
</button>
|
||||||
@ -169,7 +169,7 @@ function GamePanel(props) {
|
|||||||
function OpponentTeam(team) {
|
function OpponentTeam(team) {
|
||||||
const cryps = team.cryps.map(OpponentCryp);
|
const cryps = team.cryps.map(OpponentCryp);
|
||||||
return (
|
return (
|
||||||
<div className="cryp-list" >
|
<div className="team-opponent cryp-list">
|
||||||
{cryps}
|
{cryps}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -194,9 +194,7 @@ function GamePanel(props) {
|
|||||||
<div className="selected-skills">
|
<div className="selected-skills">
|
||||||
{selectedSkills}
|
{selectedSkills}
|
||||||
</div>
|
</div>
|
||||||
<div className="team-opponent cryp-list">
|
|
||||||
{otherTeams.map(OpponentTeam)}
|
{otherTeams.map(OpponentTeam)}
|
||||||
</div>
|
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -62,6 +62,7 @@ const addState = connect(
|
|||||||
|
|
||||||
function quit() {
|
function quit() {
|
||||||
dispatch(actions.setGame(null));
|
dispatch(actions.setGame(null));
|
||||||
|
dispatch(actions.setInstance(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleLog(v) {
|
function toggleLog(v) {
|
||||||
|
|||||||
@ -22,6 +22,12 @@ exports.up = async knex => {
|
|||||||
.defaultTo(false)
|
.defaultTo(false)
|
||||||
.notNullable()
|
.notNullable()
|
||||||
.index();
|
.index();
|
||||||
|
|
||||||
|
table.boolean('finished')
|
||||||
|
.defaultTo(false)
|
||||||
|
.notNullable()
|
||||||
|
.index();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
await knex.schema.createTable('players', table => {
|
await knex.schema.createTable('players', table => {
|
||||||
|
|||||||
@ -295,6 +295,10 @@ impl Instance {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn finished(&self) -> bool {
|
||||||
|
self.phase == InstancePhase::Finished
|
||||||
|
}
|
||||||
|
|
||||||
fn bot_round_actions(&mut self) -> &mut Instance {
|
fn bot_round_actions(&mut self) -> &mut Instance {
|
||||||
for bot in self.players.iter_mut().filter(|p| p.bot) {
|
for bot in self.players.iter_mut().filter(|p| p.bot) {
|
||||||
bot.vbox.fill();
|
bot.vbox.fill();
|
||||||
@ -501,13 +505,13 @@ pub fn instance_update(tx: &mut Transaction, instance: Instance) -> Result<Insta
|
|||||||
|
|
||||||
let query = "
|
let query = "
|
||||||
UPDATE instances
|
UPDATE instances
|
||||||
SET data = $1, open = $2, updated_at = now()
|
SET data = $1, open = $2, finished = $3, updated_at = now()
|
||||||
WHERE id = $3
|
WHERE id = $4
|
||||||
RETURNING id, data;
|
RETURNING id, data;
|
||||||
";
|
";
|
||||||
|
|
||||||
let result = tx
|
let result = tx
|
||||||
.query(query, &[&instance_bytes, &instance.open, &instance.id])?;
|
.query(query, &[&instance_bytes, &instance.open, &instance.finished(), &instance.id])?;
|
||||||
|
|
||||||
result.iter().next().ok_or(err_msg("no instance row returned"))?;
|
result.iter().next().ok_or(err_msg("no instance row returned"))?;
|
||||||
|
|
||||||
@ -582,7 +586,8 @@ pub fn instances_need_upkeep(tx: &mut Transaction) -> Result<Vec<Instance>, Erro
|
|||||||
let query = "
|
let query = "
|
||||||
SELECT data, id
|
SELECT data, id
|
||||||
FROM instances
|
FROM instances
|
||||||
WHERE id != '00000000-0000-0000-0000-000000000000'
|
WHERE finished = false
|
||||||
|
AND id != '00000000-0000-0000-0000-000000000000'
|
||||||
FOR UPDATE;
|
FOR UPDATE;
|
||||||
";
|
";
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user