Compare commits
2 Commits
a9660577f5
...
a62659a055
Author | SHA1 | Date |
---|---|---|
Alessandre Laguierce | a62659a055 | |
Alessandre Laguierce | d53862e861 |
10
src/index.ts
10
src/index.ts
|
@ -78,6 +78,16 @@ window.onload = ((e) => {
|
||||||
clearBoard();
|
clearBoard();
|
||||||
setGameInfo();
|
setGameInfo();
|
||||||
resizeBoard();
|
resizeBoard();
|
||||||
|
const showDataButton = (<HTMLElement>document.getElementById('showData'));
|
||||||
|
showDataButton.addEventListener(
|
||||||
|
'click',
|
||||||
|
() => {
|
||||||
|
(<HTMLElement>document.getElementById('jsonData')).classList.toggle("closed");
|
||||||
|
if (showDataButton.innerText.includes("Afficher"))
|
||||||
|
showDataButton.innerText = "Cacher les données de parties";
|
||||||
|
else
|
||||||
|
showDataButton.innerText = "Afficher les données de parties";
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
export {games, Move};
|
export {games, Move};
|
|
@ -139,7 +139,7 @@ function placeMove(move: Move) {
|
||||||
const box = <HTMLElement>line.children[move.x - min_x];
|
const box = <HTMLElement>line.children[move.x - min_x];
|
||||||
box.style.border = "dotted 2px " + (inInterval(move.id, 0, 1) === 0 ? playerColors[move.id] : playerColors[2]);
|
box.style.border = "dotted 2px " + (inInterval(move.id, 0, 1) === 0 ? playerColors[move.id] : playerColors[2]);
|
||||||
setInnerTile(box, move.tile.c);
|
setInnerTile(box, move.tile.c);
|
||||||
box.style.rotate = move.tile.angle + "deg";
|
// box.style.rotate = move.tile.angle + "deg";
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeMove(move: Move) {
|
function removeMove(move: Move) {
|
||||||
|
|
|
@ -13,22 +13,20 @@
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="container-fluid bg-light header">
|
<div>
|
||||||
<h1 id="title">Carcassonne viewer</h1>
|
<h1 id="title" class="text-center">Carcassonne viewer</h1>
|
||||||
|
</div>
|
||||||
|
<div id="games">
|
||||||
|
<div id="board" class="board">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="header">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3 sidebar">
|
|
||||||
<ul class="list-group" id="games_list">
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-9">
|
|
||||||
<div id="game_container" class="row">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
<div class="row viewer_controls">
|
<div class="row viewer_controls">
|
||||||
<div class="col-lg-2"></div>
|
<div class="btn-group " role="group" aria-label="Basic example">
|
||||||
<div class="btn-group col-lg-8" role="group" aria-label="Basic example">
|
|
||||||
<button type="button" class="btn btn-secondary" id="prevGameButton">|<<<</button>
|
<button type="button" class="btn btn-secondary" id="prevGameButton">|<<<</button>
|
||||||
<button type="button" class="btn btn-secondary" id="firstMoveButton">|<<</button>
|
<button type="button" class="btn btn-secondary" id="firstMoveButton">|<<</button>
|
||||||
<button type="button" class="btn btn-secondary" id="prevMoveButton"><</button>
|
<button type="button" class="btn btn-secondary" id="prevMoveButton"><</button>
|
||||||
|
@ -36,12 +34,11 @@
|
||||||
<button type="button" class="btn btn-secondary" id="lastMoveButton">>>|</button>
|
<button type="button" class="btn btn-secondary" id="lastMoveButton">>>|</button>
|
||||||
<button type="button" class="btn btn-secondary" id="nextGameButton">>>>|</button>
|
<button type="button" class="btn btn-secondary" id="nextGameButton">>>>|</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-2"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<table class="table table-striped table-sm" style="text-align: left; width: 100%">
|
<table class="table table-striped table-sm" style="text-align: left; width: 100%">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row" style="width: 15%">Player 0</th>
|
<th scope="row">Player 0</th>
|
||||||
<td id="player0_disp">player0</td>
|
<td id="player0_disp">player0</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -65,13 +62,9 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="data">
|
||||||
<div id="games">
|
<div class="button interactable" id="showData">Afficher les données de parties</div>
|
||||||
<div id="board" class="board">
|
<div class="closed" id="jsonData">
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="jsonData">
|
|
||||||
<pre>
|
<pre>
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -494,7 +487,8 @@
|
||||||
"cause": "Victory on points for player Pierre Du Caillou"
|
"cause": "Victory on points for player Pierre Du Caillou"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
</pre>
|
</pre>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="error_box" style="display: none">
|
<div id="error_box" style="display: none">
|
||||||
|
|
|
@ -1,18 +1,43 @@
|
||||||
body {
|
body {
|
||||||
height: 100em;
|
height: 100em;
|
||||||
overflow: hidden;
|
/*overflow: hidden;*/
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background: radial-gradient(circle at top, #e5e5e5 10%, white 75%) no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
#games {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
height: 20vh;
|
display: flex;
|
||||||
overflow: hidden;
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.board {
|
.board {
|
||||||
width: 80vw;
|
width: 80vw;
|
||||||
height: 80vh;
|
height: 80vh;
|
||||||
background: black;
|
background: black;
|
||||||
|
margin: 3vh
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
width: 100%;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.viewer_controls {
|
||||||
|
margin: 0 -0.3vw 0 -0.3vw;
|
||||||
|
width: 101%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-group {
|
||||||
|
margin: 0 0 0.2vh 0;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gridTile {
|
.gridTile {
|
||||||
|
@ -42,3 +67,33 @@ body {
|
||||||
width: 20%;
|
width: 20%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
font-size: 1em;
|
||||||
|
width: fit-content;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid #ececec;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:hover {
|
||||||
|
background: #ececec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.interactable {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#jsonData {
|
||||||
|
font-size: 1em;
|
||||||
|
overflow-y: hidden;
|
||||||
|
transition: font-size 500ms cubic-bezier(1, 1, 1, 1);
|
||||||
|
margin: 0.1vw;
|
||||||
|
border: 1px solid rgba(169, 169, 169, 0.67);
|
||||||
|
padding: 0.2vw;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.closed#jsonData {
|
||||||
|
font-size: 0 !important;
|
||||||
|
}
|
Loading…
Reference in New Issue