Compare commits
23 Commits
Author | SHA1 | Date |
---|---|---|
|
28871311b9 | ago%!(EXTRA string=1 year) |
|
cc78be691f | ago%!(EXTRA string=1 year) |
|
4c04ab8940 | ago%!(EXTRA string=1 year) |
|
5797ce4818 | ago%!(EXTRA string=1 year) |
|
65eca099b4 | ago%!(EXTRA string=1 year) |
|
7f58b08ffe | ago%!(EXTRA string=1 year) |
|
24644d91fd | ago%!(EXTRA string=1 year) |
|
54cfb1e136 | ago%!(EXTRA string=1 year) |
|
cb2c307696 | ago%!(EXTRA string=1 year) |
|
4834318b9c | ago%!(EXTRA string=1 year) |
|
bbebca1b42 | ago%!(EXTRA string=1 year) |
|
930e742938 | ago%!(EXTRA string=1 year) |
|
c97a219a0d | ago%!(EXTRA string=1 year) |
|
bf774f69f5 | ago%!(EXTRA string=1 year) |
|
e58bb9b956 | ago%!(EXTRA string=1 year) |
|
f2e3a38625 | ago%!(EXTRA string=1 year) |
|
07d15c09a1 | ago%!(EXTRA string=1 year) |
|
53cefa07f2 | ago%!(EXTRA string=1 year) |
|
608a59ebf3 | ago%!(EXTRA string=1 year) |
|
542d1dfd88 | ago%!(EXTRA string=1 year) |
|
08aa653b93 | ago%!(EXTRA string=1 year) |
|
841d225452 | ago%!(EXTRA string=1 year) |
|
c3174142c5 | ago%!(EXTRA string=1 year) |
@ -0,0 +1 @@ |
||||
/.vs/ |
@ -0,0 +1,3 @@ |
||||
[submodule "js/skama_code"] |
||||
path = js/skama_code |
||||
url = https://github.com/anulax1225/skama_code.git |
@ -0,0 +1,3 @@ |
||||
{ |
||||
"liveServer.settings.port": 5501 |
||||
} |
@ -0,0 +1,2 @@ |
||||
DO NOT USE THIS CODE OR LOOK AT IT IF YOU ARE NOT ALLOWED TO |
||||
IF YOU DO YOU CAN USE OR TEACH THE KNOWLEAGE YOU ACQUEIRED. |
@ -0,0 +1,15 @@ |
||||
# Skamcraft |
||||
|
||||
## Start |
||||
* Start with live server in VsCode to get full functionnality. |
||||
* Start with php : |
||||
``` bash |
||||
cd /.../Skamcraft |
||||
php -S 127.0.0.1:80 |
||||
``` |
||||
|
||||
## Norm |
||||
* ``` ; ``` at the end of each line. |
||||
* snack_case for functions and variables. |
||||
* UpperCamelCase for Classes. |
||||
* all in english. |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 365 B After Width: | Height: | Size: 365 B |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 343 B After Width: | Height: | Size: 343 B |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 945 B After Width: | Height: | Size: 945 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 969 KiB After Width: | Height: | Size: 969 KiB |
Before Width: | Height: | Size: 209 KiB After Width: | Height: | Size: 209 KiB |
Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 315 KiB |
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 203 KiB |
After Width: | Height: | Size: 135 B |
Before Width: | Height: | Size: 767 B After Width: | Height: | Size: 767 B |
Before Width: | Height: | Size: 579 B After Width: | Height: | Size: 579 B |
Before Width: | Height: | Size: 729 B After Width: | Height: | Size: 729 B |
Before Width: | Height: | Size: 675 B After Width: | Height: | Size: 675 B |
After Width: | Height: | Size: 545 KiB |
@ -0,0 +1,16 @@ |
||||
/* Copyright © 2023 Entreprise SkamKraft */ |
||||
|
||||
|
||||
.ext-modal[open] { |
||||
animation: myFadeIn 0.5s ease normal; |
||||
} |
||||
|
||||
@keyframes myFadeIn { |
||||
from { |
||||
bottom: 100%; |
||||
} |
||||
|
||||
to { |
||||
bottom: 0%; |
||||
} |
||||
} |
@ -0,0 +1,99 @@ |
||||
/* Copyright © 2023 Entreprise SkamCraft */ |
||||
|
||||
|
||||
|
||||
body, |
||||
html { |
||||
background-image: url("/assets/contracts/background.png"); |
||||
background-repeat: no-repeat; |
||||
background-size: 100%; |
||||
} |
||||
|
||||
/* Button for more informations about the contact */ |
||||
.btn-infos { |
||||
margin: 2px; |
||||
background-color: transparent; |
||||
border: 5px solid #0018e8; |
||||
border-radius: 10px; |
||||
} |
||||
|
||||
.btn-infos:hover { |
||||
border-color: #0018e8; |
||||
background-color: #0018e8; |
||||
|
||||
} |
||||
|
||||
.btn-accept { |
||||
margin: 2px; |
||||
background-color: transparent; |
||||
border: 5px solid #0018e8; |
||||
border-radius: 10px; |
||||
} |
||||
|
||||
.btn-accept:hover { |
||||
border-color: rgb(33, 196, 0); |
||||
background-color: rgb(33, 196, 0); |
||||
} |
||||
|
||||
|
||||
/* Ecran contenant les contrats */ |
||||
.nav-nav { |
||||
margin-bottom: 100px; |
||||
} |
||||
|
||||
.contracts { |
||||
display: grid; |
||||
justify-content: center; |
||||
grid-template-rows: 1fr 1fr; |
||||
} |
||||
|
||||
.card img { |
||||
margin-right: 50px; |
||||
} |
||||
|
||||
.card-body { |
||||
margin-right: 50px; |
||||
} |
||||
|
||||
.card { |
||||
margin-bottom: 100px; |
||||
margin-left: -400px; |
||||
display: flex; |
||||
} |
||||
|
||||
.card-button { |
||||
display: flex; |
||||
flex-direction: row; |
||||
height: 30%; |
||||
} |
||||
|
||||
.arrows { |
||||
display: flex; |
||||
justify-content: center; |
||||
|
||||
} |
||||
|
||||
/* Modal */ |
||||
|
||||
.status-onhold { |
||||
color: orange; |
||||
} |
||||
|
||||
.status-accepted { |
||||
color: greenyellow; |
||||
} |
||||
|
||||
/* Flèche changer de page */ |
||||
#leftarrow { |
||||
width: 50px; |
||||
height: 50px; |
||||
} |
||||
|
||||
#rightarrow { |
||||
width: 50px; |
||||
height: 50px; |
||||
} |
||||
|
||||
.arrows { |
||||
text-align: center; |
||||
} |
@ -1,5 +1,197 @@ |
||||
canvas { |
||||
width: 50%; |
||||
border: 2px solid black; |
||||
/* Copyright © 2023 Entreprise SkamKraft */ |
||||
|
||||
:root { |
||||
--main-back-color: rgb(143, 143, 143); |
||||
--second-back-color: black; |
||||
} |
||||
|
||||
@font-face { |
||||
font-family: M42; |
||||
src: url("/assets/fonts/m42.TTF"); |
||||
} |
||||
|
||||
* { |
||||
box-sizing: border-box; |
||||
} |
||||
|
||||
body { |
||||
background-image: url("/assets/img/background.png"); |
||||
font-family: 'M42'; |
||||
font-size: 7px; |
||||
margin: 0px; |
||||
padding: 0px; |
||||
} |
||||
|
||||
/* Main */ |
||||
.container { |
||||
color: white; |
||||
background-color: rgba(0, 0, 0, 0.726); |
||||
display: flex; |
||||
margin: 10px; |
||||
width: fit-content; |
||||
margin: auto; |
||||
margin-top: 10px; |
||||
margin-bottom: 30px; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
border: 4px solid rgba(68, 68, 68, 0.575); |
||||
} |
||||
|
||||
.max-container { |
||||
background-color: rgba(0, 0, 0, 0.726); |
||||
color: white; |
||||
display: flex; |
||||
margin: 10px; |
||||
width: 95%; |
||||
margin: auto; |
||||
margin-top: 10px; |
||||
margin-bottom: 30px; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
border: 4px solid rgba(68, 68, 68, 0.575); |
||||
} |
||||
|
||||
.con-title { |
||||
font-size: 15px; |
||||
border-bottom: 2px solid black; |
||||
} |
||||
|
||||
.btn { |
||||
padding: 10px; |
||||
font-size: 8px; |
||||
font-family: 'M42'; |
||||
color: white; |
||||
border: none; |
||||
border-radius: 10px; |
||||
} |
||||
|
||||
.btn-val { |
||||
background-color: rgba(0, 0, 255, 0.637); |
||||
} |
||||
|
||||
.btn-cancel { |
||||
background-color: rgba(255, 0, 0, 0.699); |
||||
} |
||||
|
||||
/*footer*/ |
||||
footer { |
||||
position: fixed; |
||||
width: 100%; |
||||
bottom: 0; |
||||
display: flex; |
||||
justify-content: center; |
||||
background-color: var(--second-back-color); |
||||
color: white; |
||||
} |
||||
|
||||
/*nav bar*/ |
||||
.nav-nav { |
||||
--nav-img-width: 100px; |
||||
background-color: var(--second-back-color); |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
} |
||||
|
||||
.nav-nav .nav-brand { |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
} |
||||
|
||||
.nav-nav .nav-brand img { |
||||
width: var(--nav-img-width); |
||||
} |
||||
|
||||
.nav-nav .nav-links { |
||||
--links-color: rgb(0, 0, 0); |
||||
--links-backcolor: rgb(255, 123, 71); |
||||
--links-border-color: rgb(255, 173, 118); |
||||
height: 70%; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
} |
||||
|
||||
.nav-link { |
||||
margin-right: 10px; |
||||
background-color: var(--links-backcolor); |
||||
color: var(--links-color); |
||||
border: 4px solid var(--links-border-color); |
||||
list-style: none; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
box-shadow: 3px 2px white; |
||||
} |
||||
|
||||
.stats { |
||||
color: white; |
||||
} |
||||
|
||||
/* General */ |
||||
.smooth { |
||||
padding: 5px; |
||||
padding-left: 10px; |
||||
padding-right: 10px; |
||||
border-radius: 5px; |
||||
} |
||||
|
||||
.in-big { |
||||
font-family: 'M42'; |
||||
font-size: 6px; |
||||
padding: 5px; |
||||
width: 100%; |
||||
margin-bottom: 10px; |
||||
border-radius: 5px; |
||||
border: none; |
||||
} |
||||
|
||||
.errors p { |
||||
background-color: rgba(255, 56, 56, 0.733); |
||||
border: 3px solid rgb(255, 111, 111); |
||||
padding: 10px; |
||||
color: white; |
||||
border-radius: 5px; |
||||
text-align: center; |
||||
} |
||||
|
||||
/* Modal */ |
||||
.ext-modal { |
||||
background-color: rgba(255, 255, 255, 0.767); |
||||
border-radius: 10px; |
||||
padding: 50px; |
||||
} |
||||
|
||||
.my-modal { |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
} |
||||
|
||||
.modal-title { |
||||
font-size: 15px; |
||||
margin-bottom: 40px; |
||||
} |
||||
|
||||
.show-token { |
||||
width: fit-content; |
||||
border: 2px solid black; |
||||
border-radius: 10px; |
||||
padding: 30px; |
||||
font-size: 5px; |
||||
white-space: pre-wrap; |
||||
word-break: break-word; |
||||
} |
||||
|
||||
.my-modal #timer { |
||||
text-align: center; |
||||
border: 1px solid black; |
||||
border-radius: 10px; |
||||
width: 10%; |
||||
padding: 5px; |
||||
margin-bottom: 10px; |
||||
} |
||||
|
||||
#canvas { |
||||
border-radius: 10px; |
||||
} |
@ -0,0 +1,11 @@ |
||||
/* Copyright © 2023 Entreprise SkamKraft */ |
||||
|
||||
#block-content { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
.modal-disable::backdrop { |
||||
background-color: rgba(0, 0, 0, 0.493); |
||||
} |
||||
|
Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 318 B |
@ -0,0 +1,17 @@ |
||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||
<nav class="nav-nav"> |
||||
<div class="nav-brand"> |
||||
<img src="assets/logo/logoblancnotext.png" /> |
||||
</div> |
||||
<div class="stats"></div> |
||||
<ul class="nav-links"> |
||||
<li class="nav-link smooth" id="systems-link">Systems</li> |
||||
<li class="nav-link smooth" id="login-link">Log in</li> |
||||
<li class="nav-link smooth" id="reg-link">New Agent</li> |
||||
|
||||
</ul> |
||||
</nav> |
||||
<main id="block-content"></main> |
||||
<footer> |
||||
<p>Skamcraft Sarl</p> |
||||
</footer> |
@ -0,0 +1,11 @@ |
||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||
|
||||
<div class="container smooth"> |
||||
<p class="con-title">Login</p> |
||||
<input type="text" placeholder="Agent token" id="in-token" class="in-big"> |
||||
<div class="grp-btn"> |
||||
<button class="btn btn-val" id="val">Validate</button> |
||||
<button class="btn btn-cancel" id="cancel">Cancel</button> |
||||
</div> |
||||
<div class="errors"></div> |
||||
</div> |
@ -0,0 +1,9 @@ |
||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||
|
||||
<div class="my-modal"> |
||||
<p class="modal-title">Login success</p> |
||||
<div> |
||||
<button id="ok" class="btn btn-val">Continue</button> |
||||
<button id="forget_login" class="btn btn-cancel">Forget agent</button> |
||||
</div> |
||||
</div> |
@ -0,0 +1,12 @@ |
||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||
|
||||
<div class="container smooth"> |
||||
<p class="con-title">New Agent</p> |
||||
<input type="text" placeholder="Name" id="in-name" class="in-big"> |
||||
<input type="text" placeholder="Faction" id="in-faction" class="in-big"> |
||||
<div class="grp-btn"> |
||||
<button class="btn btn-val" id="val">Validate</button> |
||||
<button class="btn btn-cancel" id="cancel">Cancel</button> |
||||
</div> |
||||
<div class="errors"></div> |
||||
</div> |
@ -0,0 +1,10 @@ |
||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||
|
||||
<div class="my-modal"> |
||||
<p class="modal-title">Login success</p> |
||||
<p class="show-token"></p> |
||||
<div> |
||||
<button id="ok" class="btn btn-val">Continue</button> |
||||
<button id="forget_reg" class="btn btn-cancel">Forget agent</button> |
||||
</div> |
||||
</div> |
@ -0,0 +1,8 @@ |
||||
<link rel="stylesheet" href="css/contract.css"> |
||||
<div class="contract-screen"> |
||||
<div class="contracts"></div> |
||||
<div class="arrows"> |
||||
<input type="image" id="leftarrow" alt="" src="/assets/contracts/leftarrow.png" /> |
||||
<input type="image" id="rightarrow" alt="" src="/assets/contracts/rightarrow.png" /> |
||||
</div> |
||||
</div> |
@ -0,0 +1,16 @@ |
||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||
|
||||
<div class="my-modal"> |
||||
<p class="modal-title">Contract</p> |
||||
<p class="contract-id"></p> |
||||
<p class="contract-faction"></p> |
||||
<p class="contract-type"></p> |
||||
<p class="contract-expiration"></p> |
||||
<p class="contract-payment-accepted"></p> |
||||
<p class="contract-payment-fulfill"></p> |
||||
<p class="contract-tradeSymbol"></p> |
||||
<p class="contract-destinationSymbol"></p> |
||||
<div> |
||||
<button class="btn btn-val btn-close">Close</button> |
||||
</div> |
||||
</div> |
@ -0,0 +1,5 @@ |
||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||
<div class="container smooth"> |
||||
<p class="con-title">Bienvenue sur SkamCraft</p> |
||||
<p class="con-content">Application client pour l'API Space Tarders.</p> |
||||
</div> |
@ -0,0 +1,5 @@ |
||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||
<div class="max-container smooth"> |
||||
<p class="con-title" id="sys-name"></p> |
||||
<canvas id="canvas"></canvas> |
||||
</div> |
@ -0,0 +1,5 @@ |
||||
<!-- Copyright © 2023 Entreprise SkamKraft --> |
||||
<div class="max-container smooth"> |
||||
<p class="con-title">Systems</p> |
||||
<canvas id="canvas"></canvas> |
||||
</div> |
@ -0,0 +1,18 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
|
||||
<head> |
||||
<title></title> |
||||
<link rel="stylesheet" href="css/style.css"> |
||||
<link rel="stylesheet" href="css/ui.css"> |
||||
<link rel="stylesheet" href="css/animation.css"> |
||||
<script src="js/lib/fabric.js"></script> |
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> |
||||
<script type="module" src="js/index.js" defer></script> |
||||
</head> |
||||
|
||||
<body> |
||||
|
||||
</body> |
||||
|
||||
</html> |
@ -1,41 +0,0 @@ |
||||
class renderer { |
||||
constructor(canvas) { |
||||
this.canvas = canvas; |
||||
this.ctx = canvas.getContext("2d"); |
||||
this.waypoints = []; |
||||
this.ships = []; |
||||
} |
||||
|
||||
drawSystem() { |
||||
const canvas = document.getElementById("canvas"); |
||||
let w = canvas.width; |
||||
let h = canvas.height;
|
||||
const ctx = canvas.getContext("2d"); |
||||
|
||||
this.waypoints.forEach(waypoint => { |
||||
switch (waypoint.type) { |
||||
case "PLANET":
|
||||
drawWaypoint(waypoint, ctx, w/2, h/2, 'green'); |
||||
break; |
||||
case "ASTEROID":
|
||||
drawWaypoint(waypoint, ctx, w/2, h/2, 'blue'); |
||||
break; |
||||
case "GAS_GIANT":
|
||||
drawWaypoint(waypoint, ctx, w/2, h/2, 'red'); |
||||
break;
|
||||
} |
||||
|
||||
}); |
||||
} |
||||
|
||||
drawShips() { |
||||
|
||||
} |
||||
|
||||
drawWaypoint(wayPoint, ctx, w, h, color) { |
||||
ctx.beginPath(); |
||||
ctx.fillStyle = color; |
||||
ctx.arc(wayPoint.x/offset.x + w, wayPoint.y/offset.y + h, 1, 0, 2 * Math.PI); |
||||
ctx.fill(); |
||||
} |
||||
} |
@ -0,0 +1,155 @@ |
||||
// Copyright © 2023 Entreprise SkamKraft
|
||||
"use strict"; |
||||
|
||||
import { SpaceTraders } from "../skama_code/api/config.js"; |
||||
|
||||
import menu_mod from "./menu_mod.js"; |
||||
import { My } from "../skama_code/api/agent.js"; |
||||
import { Contract } from "../skama_code/api/contract.js"; |
||||
import { Modal } from "../skama_code/ui/modal.js"; |
||||
|
||||
|
||||
export default (temp_engine) => { |
||||
|
||||
let modal = new Modal("contract-modal", temp_engine); |
||||
|
||||
temp_engine.after_render((temp_engine) => { |
||||
|
||||
modal.load("templates/contracts/contracts_modal.html"); |
||||
|
||||
Contract.list(10, 1, (contracts) => { |
||||
|
||||
//Evenements accepter
|
||||
temp_engine.add_event(".btn-accept", "click", (e) => { |
||||
contracts.forEach((contract) => { |
||||
if ($(e.target).attr("data-id") == contract.id) { |
||||
contract.accept(() => { |
||||
$(e.target).parent().children(".status-onhold").html("Status : accepté"); |
||||
$(e.target).parent().children(".status-onhold").attr("class", 'status-accepted'); |
||||
$(e.target).html("Contract accepted") |
||||
}); |
||||
} |
||||
}); |
||||
}); |
||||
//Evenement infos
|
||||
temp_engine.add_event(".btn-infos", "click", (e) => { |
||||
contracts.forEach((contract) => { |
||||
const id_contract = $(e.target).attr("data-id"); |
||||
$(".contract-id").text("ID : " + contract.id); |
||||
$(".contract-faction").text("Faction : " + contract.faction); |
||||
$(".contract-type").text("Type : " + contract.type); |
||||
$(".contract-expiration").text("Expiration : " + contract.expiration); |
||||
$(".contract-payment-accepted").text("Payment : " + contract.paymentAccepted + " $"); |
||||
$(".contract-payment-fulfill").text("Payment fulfill : " + contract.paymentFulfill + " $"); |
||||
$(".contract-tradeSymbol").text("Trade Symbol : " + contract.tradeSymbol); |
||||
$(".contract-destinationSymbol").text("Destination : " + contract.destination); |
||||
modal.show(); |
||||
}); |
||||
}); |
||||
//Evenement flèche droite
|
||||
temp_engine.add_event("#rightarrow", "click", (e) => { |
||||
if (contracts.lenght > 2) { |
||||
console.log("arrah") |
||||
} |
||||
else { |
||||
console.log("1 seul") |
||||
} |
||||
|
||||
|
||||
let slideIndex = 1; |
||||
showSlides(slideIndex); |
||||
|
||||
function plusSlides(n) { |
||||
showSlides(slideIndex += n); |
||||
} |
||||
|
||||
function currentSlide(n) { |
||||
showSlides(slideIndex = n); |
||||
} |
||||
|
||||
function showSlides(n) { |
||||
let i; |
||||
let slides = document.getElementsByClassName("contracts"); |
||||
if (n > slides.length) { slideIndex = 1 } |
||||
if (n < 1) { slideIndex = slides.length } |
||||
for (i = 0; i < slides.length; i++) { |
||||
slides[i].style.display = "none"; |
||||
} |
||||
slides[slideIndex - 1].style.display = "block"; |
||||
} |
||||
}); |
||||
|
||||
contracts.forEach(contract => { |
||||
let img |
||||
let status |
||||
let card |
||||
|
||||
if (contract.type = "PROCUREMENT") { |
||||
img = "/assets/contracts/procurement.png" |
||||
} |
||||
else if (contract.type = "TRANSPORT") { |
||||
img = "/assets/contracts/transportation.png" |
||||
} |
||||
else { |
||||
img = "/assets/contracts/shuttle.png" |
||||
} |
||||
|
||||
if (contract.accepted) { |
||||
status = "accepted" |
||||
card = |
||||
`
|
||||
<div class="card" style="width: 20rem;"> |
||||
<img src="${img}" class="card-img-top" alt=""> |
||||
<div class="card-body"> |
||||
<h5 style="color:white" class="card-title">${contract.faction}</h5> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p class="card-text status-accepted">Status : ${status}</p> |
||||
<p></p> |
||||
</div> |
||||
<div class="card-button"> |
||||
<button data-id="${contract.id}" type="button" class="btn btn-primary btn-infos" data-bs-toggle="modal" data-bs-target="#exampleModal">Infos</button> |
||||
<button data-id="${contract.id}" class="btn-modify btn btn-primary btn-accept" data-toggle="modal" data-target="#Modify" >Contract accepted</button> |
||||
</div> |
||||
</div> |
||||
` |
||||
} |
||||
|
||||
else { |
||||
status = "on hold" |
||||
card = |
||||
`
|
||||
<div class="card" style="width: 20rem;"> |
||||
<img src="${img}" class="card-img-top" alt=""> |
||||
<div class="card-body">
|
||||
<h5 style="color:white" class="card-title">${contract.faction}</h5> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p style="color:white" class="card-text">${contract.deadline}</p> |
||||
<p class="card-text status-onhold">Status : ${status}</p> |
||||
<p></p> |
||||
</div> |
||||
<div class="card-button"> |
||||
<button type="button" class="btn btn-primary btn-infos" data-bs-toggle="modal" data-bs-target="#exampleModal">Infos</button> |
||||
<button data-id="${contract.id}" class="btn-modify btn btn-primary btn-accept" data-toggle="modal" data-target="#Modify" >Accepter</button> |
||||
</div> |
||||
</div> |
||||
` |
||||
} |
||||
$('.contracts').append(card); |
||||
$('.contracts').append(card); |
||||
}); |
||||
|
||||
}) |
||||
temp_engine.add_event(".btn-close", "click", () => { |
||||
modal.close(); |
||||
}); |
||||
menu_mod(temp_engine); |
||||
}); |
||||
temp_engine.render("templates/contracts/contracts.html") |
||||
} |
@ -0,0 +1,9 @@ |
||||
import menu_mod from "./menu_mod.js"; |
||||
|
||||
export default function home(temp_engine) { |
||||
temp_engine.after_render(menu_mod); |
||||
temp_engine.render("templates/home.html"); |
||||
} |
||||
|
||||
|
||||
|
@ -0,0 +1,52 @@ |
||||
import { Modal } from "../skama_code/ui/modal.js"; |
||||
import { Auth } from "../skama_code/auth/auth.js"; |
||||
import { My } from "../skama_code/api/agent.js"; |
||||
import home from "./home.js"; |
||||
import menu_mod from "./menu_mod.js"; |
||||
|
||||
export default function login(temp_engine) { |
||||
let auth = new Auth(true); |
||||
let modal = new Modal("login-modal", temp_engine); |
||||
|
||||
modal.add_class("ext-modal"); |
||||
temp_engine.after_render((temp_engine) => { |
||||
modal.load("templates/auth/login_modal.html"); |
||||
|
||||
temp_engine.add_event("#ok", "click", () => { |
||||
home(temp_engine); |
||||
}); |
||||
|
||||
temp_engine.add_event("#forget_login", "click", () => { |
||||
My.agent = null; |
||||
auth.unload_token(); |
||||
modal.close(); |
||||
render_login(); |
||||
}); |
||||
|
||||
temp_engine.add_event("#val", "click", () => { |
||||
let token = $("#in-token").val(); |
||||
auth.login(token); |
||||
}); |
||||
|
||||
temp_engine.add_event("#cancel", "click", () => { |
||||
$("#in-token").val(""); |
||||
}); |
||||
menu_mod(temp_engine); |
||||
}); |
||||
|
||||
temp_engine.render(`templates/auth/login.html`); |
||||
|
||||
auth.done((agent) => { |
||||
modal.show(); |
||||
My.agent = agent; |
||||
}).fail((errs) => { |
||||
$(".errors").html(""); |
||||
errs.forEach(err => { |
||||
$(".errors").append(` |
||||
<p>${err}</p> |
||||
`);
|
||||
}); |
||||
}); |
||||
|
||||
auth.relog(); |
||||
} |
@ -0,0 +1,50 @@ |
||||
import { My } from "../skama_code/api/agent.js"; |
||||
import login from "./login.js"; |
||||
import reg from "./reg.js"; |
||||
import home from "./home.js"; |
||||
import { systems } from "./systems.js"; |
||||
import contracts from "./contracts.js"; |
||||
|
||||
function init_menu(temp_engine) { |
||||
temp_engine.add_event("#reg-link", "click", () => { |
||||
reg(temp_engine); |
||||
}); |
||||
temp_engine.add_event("#login-link", "click", () => { |
||||
login(temp_engine); |
||||
}); |
||||
temp_engine.add_event("#systems-link", "click", () => { |
||||
systems(temp_engine); |
||||
}) |
||||
temp_engine.add_event(".nav-brand", "click", () => { |
||||
home(temp_engine); |
||||
}); |
||||
//Contarcts
|
||||
temp_engine.add_event("#contracts-link", "click", () => { |
||||
contracts(temp_engine); |
||||
}) |
||||
} |
||||
|
||||
function loged_links() { |
||||
$(".nav-links").prepend(` |
||||
<li class="nav-link smooth" id="contracts-link">Contracts</li> |
||||
<li class="nav-link smooth" id="ships-link">Ships</li> |
||||
`);
|
||||
} |
||||
|
||||
function show_stats() { |
||||
$(".stats").html(` |
||||
<p>Agent name : ${My.agent.name}</p> |
||||
<p>Credits : ${My.agent.credits}</p> |
||||
<p>Ships : ${My.agent.ships_cpt}</p> |
||||
<p>Faction : ${My.agent.faction}</p> |
||||
<p>HQ : ${My.agent.hq}</p> |
||||
`);
|
||||
} |
||||
|
||||
export default function menu_mod(temp_engine) { |
||||
init_menu(temp_engine); |
||||
if (My.agent) { |
||||
show_stats(); |
||||
loged_links(); |
||||
} |
||||
} |
@ -0,0 +1,66 @@ |
||||
import { Modal } from "../skama_code/ui/modal.js"; |
||||
import { Auth } from "../skama_code/auth/auth.js"; |
||||
import { My } from "../skama_code/api/agent.js"; |
||||
import home from "./home.js"; |
||||
import menu_mod from "./menu_mod.js"; |
||||
|
||||
export default function reg(temp_engine) { |
||||
let active = false; |
||||
let auth = new Auth(true); |
||||
let modal = new Modal("reg-modal", temp_engine); |
||||
|
||||
function render_reg() { |
||||
temp_engine.render(`templates/auth/reg.html`); |
||||
} |
||||
|
||||
temp_engine.after_render((temp_engine) => { |
||||
menu_mod(temp_engine); |
||||
modal.load("templates/auth/reg_modal.html") |
||||
modal.add_class("ext-modal"); |
||||
|
||||
temp_engine.add_event("#ok", "click", () => { |
||||
home(temp_engine); |
||||
}); |
||||
|
||||
temp_engine.add_event("#forget_reg", "click", () => { |
||||
My.agent = null; |
||||
auth.unload_token(); |
||||
modal.close(); |
||||
render_reg(); |
||||
}); |
||||
|
||||
temp_engine.add_event("#val", "click", () => { |
||||
if (!active) { |
||||
active = true; |
||||
let name = $("#in-name").val(); |
||||
let faction = $("#in-faction").val(); |
||||
auth.register({ |
||||
name: name, |
||||
faction: faction |
||||
}); |
||||
} |
||||
}); |
||||
|
||||
temp_engine.add_event("#cancel", "click", () => { |
||||
$("#in-name").val(""); |
||||
$("#in-faction").val(""); |
||||
}); |
||||
}); |
||||
|
||||
render_reg(); |
||||
|
||||
auth.done((agent) => { |
||||
$(".show-token").text(agent.token); |
||||
modal.show(); |
||||
My.agent = agent; |
||||
active = false; |
||||
}).fail((errs) => { |
||||
$(".errors").html(""); |
||||
errs.forEach(err => { |
||||
$(".errors").append(` |
||||
<p>${err}</p> |
||||
`);
|
||||
}); |
||||
active = false; |
||||
}); |
||||
} |
@ -0,0 +1,100 @@ |
||||
import { SystemBuilder } from "../skama_code/api/system.js"; |
||||
import { Position } from "../skama_code/commun/position.js"; |
||||
import menu_mod from "./menu_mod.js" |
||||
|
||||
let canvas;
|
||||
let last_target; |
||||
|
||||
let offset = { |
||||
x: 2, |
||||
y: 2 |
||||
}; |
||||
let max = 100; |
||||
let w = (window.innerWidth/10)*9; |
||||
let h = (window.innerHeight/4)*3; |
||||
|
||||
function animate() { |
||||
canvas.renderAll(); |
||||
setTimeout(animate, 1000); |
||||
} |
||||
|
||||
function draw_planet(planet) { |
||||
let shadow = new fabric.Shadow({ |
||||
color: "white", |
||||
blur: 5, |
||||
offsetX: 0, |
||||
offsetY: 0, |
||||
}); |
||||
|
||||
fabric.Image.fromURL('/assets/planets/planetproto.png', function(img_planet) { |
||||
//FABRICJS
|
||||
img_planet.set({ |
||||
selectable: false, |
||||
shadow: shadow, |
||||
left: planet.position.x/offset.x + w/2, |
||||
top: planet.position.y/offset.y+ h/2, |
||||
name: planet.name, |
||||
type: planet.type |
||||
}); |
||||
canvas.add(img_planet); |
||||
}); |
||||
} |
||||
|
||||
function offsetOrbit(planet) { |
||||
if (planet.orbits) { |
||||
console.log("Orbits"); |
||||
let x = Math.floor(Math.random() * max - Math.random() * max); |
||||
let y = Math.floor(Math.random() * max - Math.random() * max); |
||||
planet.position.move(new Position(x, y)); |
||||
} |
||||
} |
||||
|
||||
export default function system(system, temp_engine) { |
||||
temp_engine.after_render((temp_engine) => { |
||||
$("#sys-name").text(system); |
||||
menu_mod(temp_engine); |
||||
canvas = new fabric.Canvas("canvas",{ |
||||
width: w, |
||||
height: h, |
||||
backgroundColor:"rgb(7, 18, 41)", |
||||
renderOnAddRemove: false, |
||||
hoverCursor :'pointer' |
||||
}); |
||||
SystemBuilder.get(system, (system) => { |
||||
system.list_all((planets) => { |
||||
planets.forEach(planet => { |
||||
offsetOrbit(planet); |
||||
draw_planet(planet); |
||||
}); |
||||
animate(); |
||||
}, (err) => { |
||||
console.log(err); |
||||
}); |
||||
}); |
||||
canvas.on('mouse:up', (e) => { |
||||
if(e.target.shadow.color == "red"){ |
||||
e.target.shadow.color = "white" |
||||
} |
||||
else{ |
||||
e.target.shadow.color = "red" |
||||
} |
||||
if (last_target) last_target.shadow.color = "white"; |
||||
last_target = e.target; |
||||
canvas.renderAll(); |
||||
}); |
||||
$(window).on("resize", () => { |
||||
canvas.setWidth((window.innerWidth/10)*9); |
||||
canvas.setHeight((window.innerHeight/4)*3); |
||||
canvas.renderAll(); |
||||
}); |
||||
canvas.on("mouse:wheel", (opt) => { |
||||
let scale = 1.1; |
||||
if (opt.e.deltaY < 0) { |
||||
canvas.zoomToPoint(new fabric.Point(canvas.width / 2, canvas.height / 2), canvas.getZoom() * scale); |
||||
} else if (opt.e.deltaY > 0) { |
||||
canvas.zoomToPoint(new fabric.Point(canvas.width / 2, canvas.height / 2), canvas.getZoom() / scale); |
||||
} |
||||
}); |
||||
}); |
||||
temp_engine.render("templates/systems/system.html"); |
||||
} |
@ -0,0 +1,80 @@ |
||||
import { SystemBuilder } from "../skama_code/api/system.js"; |
||||
import menu_mod from "./menu_mod.js" |
||||
import system from "./system.js" |
||||
|
||||
let canvas;
|
||||
let last_target; |
||||
|
||||
let offset = { |
||||
x: 2, |
||||
y: 2 |
||||
}; |
||||
let max = 100; |
||||
let w = (window.innerWidth/10)*9; |
||||
let h = (window.innerHeight/4)*3; |
||||
|
||||
function animate() { |
||||
canvas.renderAll(); |
||||
setTimeout(animate, 1000); |
||||
} |
||||
|
||||
function draw_system(system) { |
||||
let shadow = new fabric.Shadow({ |
||||
color: "white", |
||||
blur: 5, |
||||
offsetX: 0, |
||||
offsetY: 0, |
||||
}); |
||||
|
||||
fabric.Image.fromURL('/assets/systems/galaxie1.png', function(img_planet) { |
||||
|
||||
img_planet.set({ |
||||
selectable: false, |
||||
scaleX: 0.05, |
||||
scaleY: 0.05, |
||||
shadow: shadow, |
||||
left: system.position.x/offset.x + w/2, |
||||
top: system.position.y/offset.y+ h/2, |
||||
name: system.name, |
||||
type: system.type |
||||
}); |
||||
canvas.add(img_planet); |
||||
}); |
||||
} |
||||
|
||||
export function systems(temp_engine) { |
||||
temp_engine.after_render((temp_engine) => { |
||||
menu_mod(temp_engine); |
||||
canvas = new fabric.Canvas("canvas",{ |
||||
width: w, |
||||
height: h, |
||||
backgroundColor:"rgb(7, 18, 41)", |
||||
renderOnAddRemove: false, |
||||
hoverCursor :'pointer' |
||||
}); |
||||
SystemBuilder.list_all((systems) => { |
||||
systems.forEach(system => { |
||||
draw_system(system); |
||||
}); |
||||
animate(); |
||||
}); |
||||
canvas.on('mouse:up', (e) => { |
||||
if (e.target) system(e.target.name, temp_engine); |
||||
}); |
||||
$(window).on("resize", () => { |
||||
canvas.setWidth((window.innerWidth/10)*9); |
||||
canvas.setHeight((window.innerHeight/4)*3); |
||||
canvas.renderAll(); |
||||
}); |
||||
canvas.on("mouse:wheel", (opt) => { |
||||
console.log(opt.e.clientX); |
||||
let scale = 1.1; |
||||
if (opt.e.deltaY < 0) { |
||||
canvas.zoomToPoint(new fabric.Point(opt.e.clientX / canvas.getZoom(), opt.e.clienY / canvas.getZoom()), canvas.getZoom() * scale); |
||||
} else if (opt.e.deltaY > 0) { |
||||
canvas.zoomToPoint(new fabric.Point(canvas.width / 2, canvas.height / 2), canvas.getZoom() / scale); |
||||
} |
||||
}); |
||||
}); |
||||
temp_engine.render("templates/systems/systems.html"); |
||||
} |
@ -0,0 +1,9 @@ |
||||
// Copyright © 2023 Entreprise SkamKraft
|
||||
'use strict'; |
||||
import { TemplateEngine } from "./skama_code/ui/templeting_engine.js"; |
||||
import home from "./controllers/home.js"; |
||||
|
||||
let temp_engine = new TemplateEngine("html"); |
||||
home(temp_engine); |
||||
|
||||
|
@ -1,85 +0,0 @@ |
||||
let token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudGlmaWVyIjoiQU5OTk5VTEFYMTIyNSIsInZlcnNpb24iOiJ2Mi4xLjEiLCJyZXNldF9kYXRlIjoiMjAyMy0xMS0wNCIsImlhdCI6MTcwMDIyNDU5MSwic3ViIjoiYWdlbnQtdG9rZW4ifQ.r05mWtD5FjC4s6Td-ycmHdzL7C2s75lz3q7OBmWeCqUUZ1ejPsRGQRWJDPmIh1kAqO4D9FFs3GCTPZUn1KsnQ-xmDvsIi_mqC1gJV-Q0irI7gwfsGXbfLaVCXo-Q98C_QWRh-O_xkrbhJkCcvnwdEhZm7FnZ3PL4XXKrG0XNa98JrnmG0qlz0cv8V9Q0sSIwXZbvA9BrhuV8PK7_YzPc6LZuNqgPeKiX_B-tSIHHl6Sr1EzuydnczmuS-xKQnbhmcqnpaCXzQmJr7tA8KLgu70KqpPCvA8AI6PLmBlvPWtZ20RdzezqlBh6S9SrBzQ9R0zr_9RyJxq28ws2jnHpVPw"; |
||||
let offset = { |
||||
x: 10, |
||||
y: 10 |
||||
}; |
||||
|
||||
function initGame() { |
||||
const settings = { |
||||
async: true, |
||||
crossDomain: true, |
||||
url: 'https://api.spacetraders.io/v2/register', |
||||
method: 'POST', |
||||
headers: { |
||||
'Content-Type': 'application/json', |
||||
Accept: 'application/json' |
||||
}, |
||||
processData: false, |
||||
data: '{\n "faction": "COSMIC",\n "symbol": "ANNNNulax1225",\n "email": ""\n}' |
||||
}; |
||||
|
||||
$.ajax(settings).done(function (response) { |
||||
console.log(response); |
||||
}); |
||||
} |
||||
|
||||
function getAgent() { |
||||
const settings = { |
||||
async: true, |
||||
crossDomain: true, |
||||
url: 'https://api.spacetraders.io/v2/my/agent', |
||||
method: 'GET', |
||||
headers: { |
||||
Accept: 'application/json', |
||||
Authorization: `Bearer ${token}` |
||||
} |
||||
}; |
||||
$.ajax(settings).done(function (reponse) { |
||||
$('.main-window').prepend(` |
||||
<article class="agent-card"> |
||||
<p class="account">${reponse.data.accountId}</p> |
||||
<p class="symbol">${reponse.data.symbol}</p> |
||||
<p class="headquarters">${reponse.data.headquarters}</p> |
||||
<p class="credits">${reponse.data.credits}</p> |
||||
<p class="startingFaction">${reponse.data.startingFaction}</p> |
||||
<p class="shipCount">${reponse.data.shipCount}</p> |
||||
</article> |
||||
`);
|
||||
let metaSystem = reponse.data.headquarters.split("-"); |
||||
getSystem(metaSystem[0] + "-" + metaSystem[1]); |
||||
}); |
||||
} |
||||
|
||||
function getWayPoint(wayPoint) { |
||||
const settings = { |
||||
async: true, |
||||
crossDomain: true, |
||||
url: `https://api.spacetraders.io/v2/systems/systemSymbol/waypoints/waypointSymbol`, |
||||
method: 'GET', |
||||
headers: { |
||||
Accept: 'application/json' |
||||
} |
||||
}; |
||||
|
||||
$.ajax(settings).done(function (response) { |
||||
console.log(response); |
||||
}); |
||||
}; |
||||
|
||||
function getSystem(system) { |
||||
const settings = { |
||||
async: true, |
||||
crossDomain: true, |
||||
url: `https://api.spacetraders.io/v2/systems/${system}`, |
||||
method: 'GET', |
||||
headers: { |
||||
Accept: 'application/json' |
||||
} |
||||
}; |
||||
|
||||
$.ajax(settings).done(function (response) { |
||||
drawSystem(response.data.waypoints); |
||||
}); |
||||
} |
||||
|
||||
getAgent(); |
@ -0,0 +1 @@ |
||||
Subproject commit 7f516288452f67f345be6b2eb8f4eb1137a7dd43 |
@ -0,0 +1,105 @@ |
||||
// Copyright © 2023 Entreprise SkamKraft
|
||||
'use strict'; |
||||
|
||||
import { Timer } from "../skama_code/ui/timer.js"; |
||||
import { Modal } from "../skama_code/ui/modal.js"; |
||||
import { TemplateEngine } from "../skama_code/ui/templeting_engine.js"; |
||||
import { Initialzer } from "../skama_code/commun/initialzer.js "; |
||||
import { AgentBuilder } from "../skama_code/api/agent.js"; |
||||
import { Auth } from "../skama_code/auth/auth.js"; |
||||
import { PlanetBuilder } from "../skama_code/api/planet.js"; |
||||
|
||||
let temp_path = "html"; |
||||
let token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudGlmaWVyIjoiSEFSRElDSyIsInZlcnNpb24iOiJ2Mi4xLjQiLCJyZXNldF9kYXRlIjoiMjAyMy0xMi0wMiIsImlhdCI6MTcwMjY2Mjc2Mywic3ViIjoiYWdlbnQtdG9rZW4ifQ.PrvaOz3W79acq6RoxryMW53PRRz824_AM0VGLwfXCOsGCOCAIY-rn6-bZTOnLAtp4xPSDqEk4c38oWYAWW59p0iMDDLpur6ONnjT0RjjsQS9zr5BByfBpP36CT23IZSSzk3XxGrFolHJAyU3K1liYfNbsPuNTXlkHGNHq6yMqH4ZQUPFsXEsCkg9cUynkdLw3C39SvWhtJ89oblj_8tQp2k8dxhZemepuXtiI51eFMpv8A0WRAi7pVYo_ajJujY9QDLYn_m5hDZWTlQMIstjPaDl99p2IMweIMO2Q2G-0lKiWQ4sl6VW5tuVrz1HLYU6kyMjFQWNn6kFDE7LWMTrfw"; |
||||
|
||||
let tests = { |
||||
timer: function() { |
||||
let timer = new Timer(1, 0.1666, "m"); |
||||
timer.on("step", (time) => { |
||||
console.log(time); |
||||
}) |
||||
timer.on("end", () => { |
||||
console.log("pattes fini"); |
||||
}); |
||||
timer.start(); |
||||
}, |
||||
render_template: function() { |
||||
let UI = new TemplateEngine(temp_path); |
||||
let initer = new Initialzer(UI); |
||||
|
||||
UI.render("templates/home.html"); |
||||
UI.frag_load("#test", "templates/login.html"); |
||||
|
||||
$(document).ready(() => { |
||||
initer.init_menu_link("#contracts-link", "contracts.html"); |
||||
initer.init_menu_link("#ships-link", "ships.html"); |
||||
initer.init_menu_link("#systems-link", "systems.html"); |
||||
initer.init_menu_link("#signup-link", "register.html"); |
||||
initer.init_menu_link("#signin-link", "login.html"); |
||||
initer.init_menu_link(".nav-brand", "home.html"); |
||||
}); |
||||
}, |
||||
authentication: function() { |
||||
let auth = new Auth(true); |
||||
auth.done((agent) => { |
||||
console.log(agent); |
||||
}).fail((errs) => { |
||||
errs.forEach(err => { |
||||
console.log(err); |
||||
}); |
||||
}); |
||||
auth.login(token); |
||||
auth.relog(); |
||||
|
||||
//auth.register({
|
||||
// symbol: "lkdsjfsjdlfjlk",
|
||||
// faction: "COSMIC"
|
||||
//});
|
||||
}, |
||||
modal: function() { |
||||
|
||||
let template_engine = new TemplateEngine(temp_path); |
||||
|
||||
let timer = new Timer(60, 1, "s"); |
||||
timer.on("step", (time) => { |
||||
$("#timer").html(` |
||||
<p>${time}</p> |
||||
`);
|
||||
}); |
||||
template_engine.render("templates/login.html"); |
||||
|
||||
let modal = new Modal("test-modal", template_engine); |
||||
modal.add_class("ext-modal") |
||||
|
||||
modal.load("templates/test_modal.html"); |
||||
|
||||
template_engine.add_event("#valid", "click", () => { |
||||
modal.show(); |
||||
timer.start(); |
||||
}); |
||||
|
||||
template_engine.add_event("#ok", "click", () => { |
||||
modal.close(); |
||||
timer.stop(); |
||||
}); |
||||
}, |
||||
get_planet: function() { |
||||
PlanetBuilder.get("X1-TT23-FF1E", (planet) => { |
||||
console.log(planet); |
||||
}, (err) => { |
||||
console.log(err); |
||||
}); |
||||
}, |
||||
get_all_planets: function() { |
||||
PlanetBuilder.list_all("X1-AG10", (planets) => { |
||||
console.log(planets); |
||||
}); |
||||
}, |
||||
get_all_agents: function() { |
||||
AgentBuilder.list_all((agents) => { |
||||
console.log(agents); |
||||
}); |
||||
} |
||||
} |
||||
|
||||
export default tests; |
@ -1,19 +0,0 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
<link rel="stylesheet" href="../css/style.css"> |
||||
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script> |
||||
<script src="../js/main.js"></script> |
||||
<title>Space traders</title> |
||||
</head> |
||||
<body> |
||||
<main class="main-window"> |
||||
<input id="token" type="text"> |
||||
<br> |
||||
<canvas id="canvas"></canvas> |
||||
</main> |
||||
</body> |
||||
</html> |
@ -1 +0,0 @@ |
||||
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudGlmaWVyIjoiQU5OTk5VTEFYMTIyNSIsInZlcnNpb24iOiJ2Mi4xLjEiLCJyZXNldF9kYXRlIjoiMjAyMy0xMS0wNCIsImlhdCI6MTcwMDIyNDU5MSwic3ViIjoiYWdlbnQtdG9rZW4ifQ.r05mWtD5FjC4s6Td-ycmHdzL7C2s75lz3q7OBmWeCqUUZ1ejPsRGQRWJDPmIh1kAqO4D9FFs3GCTPZUn1KsnQ-xmDvsIi_mqC1gJV-Q0irI7gwfsGXbfLaVCXo-Q98C_QWRh-O_xkrbhJkCcvnwdEhZm7FnZ3PL4XXKrG0XNa98JrnmG0qlz0cv8V9Q0sSIwXZbvA9BrhuV8PK7_YzPc6LZuNqgPeKiX_B-tSIHHl6Sr1EzuydnczmuS-xKQnbhmcqnpaCXzQmJr7tA8KLgu70KqpPCvA8AI6PLmBlvPWtZ20RdzezqlBh6S9SrBzQ9R0zr_9RyJxq28ws2jnHpVPw |