commit
a12876480e
@ -1,29 +0,0 @@
|
||||
framework:
|
||||
messenger:
|
||||
failure_transport: failed
|
||||
|
||||
transports:
|
||||
# https://symfony.com/doc/current/messenger.html#transport-configuration
|
||||
async:
|
||||
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
|
||||
options:
|
||||
use_notify: true
|
||||
check_delayed_interval: 60000
|
||||
retry_strategy:
|
||||
max_retries: 3
|
||||
multiplier: 2
|
||||
failed: 'doctrine://default?queue_name=failed'
|
||||
# sync: 'sync://'
|
||||
|
||||
default_bus: messenger.bus.default
|
||||
|
||||
buses:
|
||||
messenger.bus.default: []
|
||||
|
||||
routing:
|
||||
Symfony\Component\Mailer\Messenger\SendEmailMessage: async
|
||||
Symfony\Component\Notifier\Message\ChatMessage: async
|
||||
Symfony\Component\Notifier\Message\SmsMessage: async
|
||||
|
||||
# Route your messages to the transports
|
||||
# 'App\Message\YourMessage': async
|
@ -0,0 +1,248 @@
|
||||
body {
|
||||
background-color: #314e57;
|
||||
font-family: 'Georgia', serif;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3rem;
|
||||
margin-bottom: 30px;
|
||||
text-shadow: 2px 2px 4px #000;
|
||||
color: #f8b435;
|
||||
}
|
||||
|
||||
.emoji-container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 30px;
|
||||
margin-bottom: 10rem;
|
||||
}
|
||||
|
||||
.emoji-card {
|
||||
background: #f2e6c9;
|
||||
width: 180px;
|
||||
height: 220px;
|
||||
border: 4px solid #000;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 0 20px rgba(0,0,0,0.5);
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
font-family: 'Georgia', serif;
|
||||
position: relative;
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.emoji-card:hover {
|
||||
transform: translateY(-8px) scale(1.03);
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
/* Animation brillance pour rareté légendaire */
|
||||
@keyframes shine {
|
||||
0% { background-position: 0px; }
|
||||
100% { background-position: 177px; }
|
||||
}
|
||||
|
||||
.emoji-card.gold {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.emoji-card.gold::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 1%;
|
||||
width: 98%;
|
||||
height: 100%;
|
||||
background: linear-gradient(
|
||||
120deg,
|
||||
rgba(255, 255, 255, 0) 0%,
|
||||
rgba(255, 255, 255, 0.5) 50%,
|
||||
rgba(255, 255, 255, 0) 100%
|
||||
);
|
||||
animation: shine 5s infinite;
|
||||
pointer-events: none;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.emoji-card > * {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/*---------------------------*/
|
||||
|
||||
.emoji-card.gray { border-color: gray; }
|
||||
|
||||
@keyframes auraGlow {
|
||||
0% { box-shadow: 0 0 10px 0 rgba(0,0,0,0.3); }
|
||||
50% { box-shadow: 0 0 25px 8px currentColor; }
|
||||
100% { box-shadow: 0 0 10px 0 rgba(0,0,0,0.3); }
|
||||
}
|
||||
|
||||
/* Applique une animation d'aura par rareté */
|
||||
.emoji-card.green {
|
||||
color: darkgreen;
|
||||
animation: auraGlow 3s infinite ease-in-out;
|
||||
}
|
||||
|
||||
.emoji-card.purple {
|
||||
color: purple;
|
||||
animation: auraGlow 3s infinite ease-in-out;
|
||||
}
|
||||
|
||||
.emoji-card.red {
|
||||
color: darkred;
|
||||
animation: auraGlow 3s infinite ease-in-out;
|
||||
}
|
||||
|
||||
.emoji-card.gold {
|
||||
color: goldenrod;
|
||||
animation: auraGlow 3s infinite ease-in-out;
|
||||
}
|
||||
|
||||
|
||||
/* Couleurs des noms selon rareté */
|
||||
.emoji-name.green { color: darkgreen; }
|
||||
.emoji-name.purple { color: purple; }
|
||||
.emoji-name.red { color: darkred; }
|
||||
.emoji-name.gold { color: goldenrod; }
|
||||
.emoji-name.gray { color: gray; }
|
||||
|
||||
.emoji-card .emoji {
|
||||
font-size: 50px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.emoji-name {
|
||||
font-weight: bold;
|
||||
font-size: 1.2rem;
|
||||
margin-top: 5px;
|
||||
color: purple;
|
||||
}
|
||||
|
||||
.emoji-level {
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
color: #3c2f2f;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.action-buttons {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 60px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.btn {
|
||||
background: #f2e6c9;
|
||||
border: 3px solid #000;
|
||||
padding: 10px 25px;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
transition: transform 0.2s ease;
|
||||
box-shadow: 3px 3px 0 #000;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
transform: scale(1.05);
|
||||
background-color: #e5d6b8;
|
||||
}
|
||||
|
||||
.detail-icon {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
right: 10px;
|
||||
cursor: pointer;
|
||||
font-size: 18px;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.popup {
|
||||
position: absolute;
|
||||
top: 110%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background: #fff8e1;
|
||||
color: #000;
|
||||
padding: 10px;
|
||||
border: 2px solid #000;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 0 10px rgba(0,0,0,0.3);
|
||||
display: none;
|
||||
z-index: 10;
|
||||
width: 180px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* Filtre et Tri*/
|
||||
.filter-bar {
|
||||
margin-bottom: 30px;
|
||||
color: #f8f5e0;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.filter-bar select {
|
||||
margin: 0 10px;
|
||||
padding: 5px 10px;
|
||||
border-radius: 6px;
|
||||
border: 2px solid #000;
|
||||
background: #f2e6c9;
|
||||
font-family: 'Georgia', serif;
|
||||
}
|
||||
|
||||
/* Champs de Recherche */
|
||||
.filter-bar input[type="text"] {
|
||||
padding: 5px 10px;
|
||||
border-radius: 6px;
|
||||
border: 2px solid #000;
|
||||
background: #f2e6c9;
|
||||
font-family: 'Georgia', serif;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/* Style séléction créature pour combat / accouplement */
|
||||
|
||||
/* Etat séléctionné */
|
||||
.emoji-card.selected {
|
||||
outline: 4px solid #f8b435;
|
||||
outline-offset: -4px;
|
||||
box-shadow: 0 0 30px 10px rgba(248, 180, 53, 0.6);
|
||||
}
|
||||
|
||||
#selection-status {
|
||||
font-size: 1.1rem;
|
||||
margin-bottom: 20px;
|
||||
font-weight: bold;
|
||||
color: #f9e8c0;
|
||||
}
|
||||
|
||||
.selection-visual {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 15px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.creature-tag {
|
||||
padding: 8px 15px;
|
||||
background: #f2e6c9;
|
||||
border: 2px solid #000;
|
||||
border-radius: 8px;
|
||||
font-weight: bold;
|
||||
font-size: 1.1rem;
|
||||
box-shadow: 2px 2px 0 #000;
|
||||
}
|
||||
|
||||
.vs-text {
|
||||
font-size: 1.5rem;
|
||||
font-weight: bold;
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
|
||||
class HomeController extends AbstractController
|
||||
{
|
||||
#[Route('/', name: 'home')]
|
||||
public function index(): Response
|
||||
{
|
||||
$emojis = [
|
||||
[
|
||||
'id' => 1,
|
||||
'nom' => 'Bob',
|
||||
'code' => '😊',
|
||||
'force' => 12.5,
|
||||
'robustesse' => 9.3,
|
||||
'intelligence' => 7.8,
|
||||
'vitesse' => 10.0,
|
||||
'nbCombatGagne' => 3,
|
||||
'rarete' => 2, // épique
|
||||
],
|
||||
[
|
||||
'id' => 2,
|
||||
'nom' => 'John',
|
||||
'code' => '😭',
|
||||
'force' => 5.1,
|
||||
'robustesse' => 4.2,
|
||||
'intelligence' => 3.3,
|
||||
'vitesse' => 6.0,
|
||||
'nbCombatGagne' => 1,
|
||||
'rarete' => 1, // commun
|
||||
],
|
||||
[
|
||||
'id' => 3,
|
||||
'nom' => 'Rodolph',
|
||||
'code' => '😁',
|
||||
'force' => 20.0,
|
||||
'robustesse' => 15.0,
|
||||
'intelligence' => 18.0,
|
||||
'vitesse' => 17.0,
|
||||
'nbCombatGagne' => 10,
|
||||
'rarete' => 4, // légendaire
|
||||
]
|
||||
];
|
||||
|
||||
// Ajout de la couleur selon la rareté
|
||||
foreach ($emojis as &$emoji) {
|
||||
|
||||
$emoji['color'] = match ($emoji['rarete']) {
|
||||
1 => 'green', // commun
|
||||
2 => 'purple', // épique
|
||||
3 => 'red', // mythique
|
||||
4 => 'gold', // légendaire
|
||||
default => 'gray'
|
||||
};
|
||||
}
|
||||
|
||||
return $this->render('home/index.html.twig', [
|
||||
'emojis' => $emojis,
|
||||
]);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue