Fixed splashscreen and changed the way results are handled by front and back
This commit is contained in:
@@ -2,6 +2,8 @@ package be.naaturel.unluckiest.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Entity(name = "Score")
|
||||
public class ScoreEntity {
|
||||
|
||||
@@ -13,6 +15,6 @@ public class ScoreEntity {
|
||||
public String owner;
|
||||
|
||||
@Column
|
||||
public int value;
|
||||
public float value;
|
||||
|
||||
}
|
||||
@@ -3,9 +3,9 @@ package be.naaturel.unluckiest.models;
|
||||
public class Score {
|
||||
|
||||
private String owner;
|
||||
private int value;
|
||||
private float value;
|
||||
|
||||
public Score(String owner, int value){
|
||||
public Score(String owner, float value){
|
||||
this.owner = owner;
|
||||
this.value = value;
|
||||
}
|
||||
@@ -14,7 +14,7 @@ public class Score {
|
||||
return this.owner;
|
||||
}
|
||||
|
||||
public int getValue(){
|
||||
public float getValue(){
|
||||
return this.value;
|
||||
}
|
||||
|
||||
|
||||
4
front/.svelte-kit/ambient.d.ts
vendored
4
front/.svelte-kit/ambient.d.ts
vendored
@@ -42,7 +42,7 @@ declare module '$env/static/private' {
|
||||
export const DB_USER: string;
|
||||
export const DriverData: string;
|
||||
export const EDITOR: string;
|
||||
export const EFC_10388: string;
|
||||
export const EFC_9904: string;
|
||||
export const ffmpeg: string;
|
||||
export const FPS_BROWSER_APP_PROFILE_STRING: string;
|
||||
export const FPS_BROWSER_USER_PROFILE_STRING: string;
|
||||
@@ -150,7 +150,7 @@ declare module '$env/dynamic/private' {
|
||||
DB_USER: string;
|
||||
DriverData: string;
|
||||
EDITOR: string;
|
||||
EFC_10388: string;
|
||||
EFC_9904: string;
|
||||
ffmpeg: string;
|
||||
FPS_BROWSER_APP_PROFILE_STRING: string;
|
||||
FPS_BROWSER_USER_PROFILE_STRING: string;
|
||||
|
||||
@@ -18,10 +18,10 @@ export const options = {
|
||||
root,
|
||||
service_worker: false,
|
||||
templates: {
|
||||
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<title>Unluckiest</title>\n\n\t\t<link rel=\"stylesheet\"\n\t\t\t href=\"https://fonts.googleapis.com/css?family=Afacad+Flux\">\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tfont-family: 'Afacad Flux', serif;\n\t\t\t\tfont-size: 48px;\n\t\t\t}\n\t\t</style>\n\n\t\t<meta charset=\"utf-8\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\n\t\t<link rel=\"stylesheet\" href=\"" + assets + "/style/app.css\" />\n\t\t<link rel=\"stylesheet\" href=\"" + assets + "/style/menu2.css\" />\n\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\n\t\t<script src=\"https://code.jquery.com/jquery-3.6.0.min.js\"></script>\n\t\t<script src=\"https://code.jquery.com/ui/1.12.1/jquery-ui.min.js\"></script>\n\n\t\t" + head + "\n\t</head>\n\n\t<body data-sveltekit-preload-data=\"hover\">\n\n\t\t<div style=\"display: contents\">" + body + "</div>\n\n\t</body>\n</html>\n",
|
||||
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<title>Unluckiest</title>\n\n\t\t<link rel=\"stylesheet\"\n\t\t\t href=\"https://fonts.googleapis.com/css?family=Afacad+Flux\">\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tfont-family: 'Afacad Flux', serif;\n\t\t\t\tfont-size: 48px;\n\t\t\t}\n\t\t</style>\n\n\t\t<meta charset=\"utf-8\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\" />\n\n\t\t<link rel=\"stylesheet\" href=\"" + assets + "/style/app.css\" />\n\t\t<link rel=\"stylesheet\" href=\"" + assets + "/style/menu2.css\" />\n\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\n\t\t<script src=\"https://code.jquery.com/jquery-3.6.0.min.js\"></script>\n\t\t<script src=\"https://code.jquery.com/ui/1.12.1/jquery-ui.min.js\"></script>\n\n\t\t" + head + "\n\t</head>\n\n\t<body data-sveltekit-preload-data=\"hover\">\n\n\t\t<div style=\"display: contents\">" + body + "</div>\n\n\t</body>\n</html>\n",
|
||||
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
|
||||
},
|
||||
version_hash: "1y8hue"
|
||||
version_hash: "w4m36h"
|
||||
};
|
||||
|
||||
export async function get_hooks() {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</style>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||||
|
||||
<link rel="stylesheet" href="%sveltekit.assets%/style/app.css" />
|
||||
<link rel="stylesheet" href="%sveltekit.assets%/style/menu2.css" />
|
||||
|
||||
1
front/src/lib/assets/plain_arrow_left.svg
Normal file
1
front/src/lib/assets/plain_arrow_left.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"/></svg>
|
||||
|
After Width: | Height: | Size: 385 B |
1
front/src/lib/assets/plain_arrow_right.svg
Normal file
1
front/src/lib/assets/plain_arrow_right.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"/></svg>
|
||||
|
After Width: | Height: | Size: 387 B |
@@ -11,13 +11,33 @@
|
||||
{/if}
|
||||
|
||||
{#each scores as score, i}
|
||||
{#if i <= 100}
|
||||
<li class="item">
|
||||
<div class="name"> {score.owner} </div><div class="score"> {score.value} pts.</div>
|
||||
<div class="position">{i+1}</div>
|
||||
<div class="name"> {score.owner} </div>
|
||||
<div class="score"> {score.value}%</div>
|
||||
</li>
|
||||
{/if}
|
||||
{/each}
|
||||
|
||||
</ul>
|
||||
<!--
|
||||
{#if scores.length > 10}
|
||||
<div class="paging">
|
||||
|
||||
<svg class="paging-arrow" xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 256 512" fill="#fcdcab" width="50" height="50">
|
||||
<path d="M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"/>
|
||||
</svg>
|
||||
|
||||
<svg class="paging-arrow" xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 256 512" fill="#fcdcab" width="50" height="50">
|
||||
<path d="M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"/>
|
||||
</svg>
|
||||
|
||||
</div>
|
||||
{/if}
|
||||
-->
|
||||
<style>
|
||||
|
||||
.leaderboard
|
||||
@@ -47,37 +67,49 @@
|
||||
border: 3px solid #4b0611;
|
||||
border-radius: 10px;
|
||||
box-shadow: 5px 5px #4b0611;
|
||||
text-align: left;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
div.item
|
||||
{
|
||||
width: 55vw;
|
||||
}
|
||||
|
||||
.item:hover
|
||||
{
|
||||
background-color: #dd3328;
|
||||
transform: scale(1.075);
|
||||
}
|
||||
|
||||
.name, .score
|
||||
.position, .name, .score
|
||||
{
|
||||
color: #4b0611;
|
||||
flex-basis: 0;
|
||||
}
|
||||
|
||||
.name, .score
|
||||
{
|
||||
margin-left: 3vh;
|
||||
padding-left: 10px;
|
||||
margin-right: 2vw;
|
||||
border-left: 1px solid #A1674A;
|
||||
}
|
||||
|
||||
.position
|
||||
{
|
||||
flex-grow: 5;
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
.name
|
||||
{
|
||||
flex-grow: 100;
|
||||
border-right: 1px solid #A1674A;
|
||||
}
|
||||
|
||||
.score
|
||||
{
|
||||
flex-grow: 20;
|
||||
flex-grow: 10;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.paging-arrow:hover
|
||||
{
|
||||
transform: scale(1.5);
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -1,10 +1,10 @@
|
||||
<script>
|
||||
import logo from '$lib/assets/logo.png'
|
||||
import logo from '$lib/assets/logo.svg'
|
||||
|
||||
</script>
|
||||
|
||||
<div class="splash" >
|
||||
<img class="logo" src={logo} alt="De Charybde en Scylla">
|
||||
<img class="footer-logo" src={logo} alt="Splashscreen">
|
||||
</div>
|
||||
|
||||
<style>
|
||||
@@ -22,7 +22,7 @@
|
||||
animation: fadeout 2.5s forwards;
|
||||
}
|
||||
|
||||
.logo
|
||||
.footer-logo
|
||||
{
|
||||
width: auto;
|
||||
height: 25%;
|
||||
|
||||
@@ -5,7 +5,7 @@ import {getLeaderboard, submitScore} from "./requests";
|
||||
let scores : Score[] = []
|
||||
|
||||
function sort(scores : Score[]){
|
||||
if(scores.length >= 2) scores.sort((s1 : Score, s2 : Score) => s1.value - s2.value)
|
||||
if(scores.length >= 2) scores.sort((s1 : Score, s2 : Score) => s2.value - s1.value)
|
||||
return scores;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import leaderboard from '$lib/assets/leaderboard.svg';
|
||||
import dice from '$lib/assets/dice.svg';
|
||||
import about from '$lib/assets/about.svg';
|
||||
import logo from '$lib/assets/logo2.png'
|
||||
import logo from '$lib/assets/logo.svg'
|
||||
import arrow from '$lib/assets/arrow.svg'
|
||||
|
||||
import {onMount} from "svelte";
|
||||
@@ -57,15 +57,13 @@
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<slot></slot>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
|
||||
<img src="{logo}"
|
||||
height="175px"
|
||||
width="auto"
|
||||
alt="Logo">
|
||||
<img class="footer-logo" src="{logo}" alt="Logo">
|
||||
|
||||
<!--<a href="https://github.com/naaturel">
|
||||
<img
|
||||
|
||||
@@ -12,9 +12,7 @@
|
||||
async function roll() {
|
||||
|
||||
toggleLoading();
|
||||
|
||||
result = Math.floor(Math.random() * (range + 1));
|
||||
|
||||
result = getRandomNumber();
|
||||
await new Promise(r => setTimeout(r, 3000));
|
||||
|
||||
toggleLoading();
|
||||
@@ -23,6 +21,12 @@
|
||||
await scoreStore.add(playerName, result)
|
||||
}
|
||||
|
||||
function getRandomNumber(){
|
||||
let unit = Math.floor(Math.random() * (range + 1));
|
||||
let dec = Math.floor(Math.random() * (range));
|
||||
return unit + (dec/100);
|
||||
}
|
||||
|
||||
function toggleLoading(){
|
||||
window.$(".loader").toggleClass("disabled");
|
||||
window.$(".player").toggleClass("disabled");
|
||||
@@ -70,6 +74,7 @@
|
||||
|
||||
.name
|
||||
{
|
||||
min-width: 210px;
|
||||
width: 22vmax;
|
||||
height: 5vh;
|
||||
background-color: #fcdcab;
|
||||
@@ -99,6 +104,10 @@
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
.name::placeholder
|
||||
{
|
||||
}
|
||||
|
||||
@keyframes rotate {
|
||||
to{transform: rotate(360deg)}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
*
|
||||
{
|
||||
color: #F5F5F5;
|
||||
@@ -18,11 +24,25 @@
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
/* For debugging purposes
|
||||
* {
|
||||
outline: 1px solid #2600ff;
|
||||
}
|
||||
*/
|
||||
h1
|
||||
{
|
||||
font-size: calc(var(--font-size, 1vw) * 2.15);
|
||||
}
|
||||
|
||||
html, body
|
||||
{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
html
|
||||
{
|
||||
background-image: url("../images/background.png");
|
||||
@@ -42,8 +62,6 @@ body
|
||||
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
height: 98vh;
|
||||
}
|
||||
|
||||
.container
|
||||
@@ -125,13 +143,18 @@ footer
|
||||
align-items: center;
|
||||
|
||||
position: absolute;
|
||||
bottom: 0.25vh;
|
||||
margin-bottom: 0.25vh;
|
||||
bottom: 0;
|
||||
|
||||
width: 100vw;
|
||||
height: fit-content;
|
||||
height: 10vh;
|
||||
}
|
||||
|
||||
footer a {
|
||||
margin-right: 2vh;
|
||||
}
|
||||
|
||||
.footer-logo {
|
||||
height: 100%;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user