{% extends 'public/base.html.twig' %}
{% block title %}openrpg.ru{% endblock %}
{% block public_stylesheets %}
<link rel="stylesheet" href="{{ asset('data/game-list.css') }}">
{% endblock %}
{% block body %}
<div id="tooltip" class="tooltip"></div>
<!-- ⭐ Топ игр -->
<section class="section">
<h2><i class="fa-solid fa-crown"></i> Топ приключений</h2>
<div class="cards">
<!-- Большая -->
{% if worlds|length > 0 %}
{% set world = worlds[0] %}
<div class="card-big" style="background-image:url('{{ world.background }}');" onclick="window.location.href='{{ path('public_world_view', {'id': world.id}) }}'">
<div class="card-gradient"></div>
<div class="card-info">
<h3>{{ world.name }}</h3>
<p>{{ world.description }}</p>
<div class="badges">
{% for badge in world.publicBadges %}
<div class="badge"><i class="fa-solid fa-tag"></i> {{ badge }}</div>
{% endfor %}
</div>
</div>
</div>
{% endif %}
<!-- Маленькие -->
{% if worlds|length > 1 %}
{% set world2 = worlds[1] %}
<div class="card-half" style="background-image:url('{{ world2.background }}');" onclick="window.location.href='{{ path('public_world_view', {'id': world2.id}) }}'">
<div class="card-gradient"></div>
<div class="card-info">
<h3>{{ world2.name }}</h3>
<p>{{ world2.description }}</p>
<div class="badges">
{% for badge in world2.publicBadges %}
<div class="badge"><i class="fa-solid fa-tag"></i> {{ badge }}</div>
{% endfor %}
</div>
</div>
</div>
{% endif %}
{% if worlds|length > 2 %}
{% set world3 = worlds[2] %}
<div class="card-half" style="background-image:url('{{ world3.background }}');" onclick="window.location.href='{{ path('public_world_view', {'id': world3.id}) }}'">
<div class="card-gradient"></div>
<div class="card-info">
<h3>{{ world3.name }}</h3>
<p>{{ world3.description }}</p>
<div class="badges">
{% for badge in world3.publicBadges %}
<div class="badge"><i class="fa-solid fa-tag"></i> {{ badge }}</div>
{% endfor %}
</div>
</div>
</div>
{% endif %}
</div>
</section>
<!-- 👥 Сообщество -->
<section class="section">
<h2><i class="fa-solid fa-users"></i> Игры сообщества</h2>
<div class="community-wrapper">
<div class="arrow arrow-left" onclick="scrollCommunity(-1)"><i class="fa-solid fa-chevron-left"></i></div>
<div class="community-list" id="communityList">
<script>
const commGames = [
["Город шепотов", "Загадки улиц и опасные слухи."],
["Пески отчаяния", "Путешествие через проклятую пустыню."],
["Танец масок", "Бал, где каждый скрывает тайны."],
["Дом у бездны", "Шёпоты в глубине старого дома."],
["Охотники на звёзды", "Фэнтези с космическим оттенком."],
["Кукольный театр", "Жуткие представления и живые куклы."],
["Вкус грозы", "Город, где гроза меняет судьбы."],
["Серп луны", "Культ, приносящий лунные жертвы."]
];
document.write(commGames.map(g =>
`<div class="community-card">
<h4>${g[0]}</h4>
<p>${g[1]}</p>
<div class="badges">
<div class="badge"><i class="fa-solid fa-user-group"></i> Сообщество</div>
<div class="badge"><i class="fa-solid fa-star"></i> Популярное</div>
</div>
</div>`
).join(""));
</script>
</div>
<div class="arrow arrow-right" onclick="scrollCommunity(1)"><i class="fa-solid fa-chevron-right"></i></div>
</div>
</section>
<!-- Остальные миры -->
{% if worlds|length > 3 %}
<section class="section">
<h2><i class="fa-solid fa-dice"></i> Ещё подборки</h2>
<div class="cards">
{% for world in worlds|slice(3) %}
<div class="card-half" style="background-image:url('{{ world.background }}');" onclick="window.location.href='{{ path('public_world_view', {'id': world.id}) }}'">
<div class="card-gradient"></div>
<div class="card-info">
<h3>{{ world.name }}</h3>
<p>{{ world.description }}</p>
<div class="badges">
{% for badge in world.publicBadges %}
<div class="badge"><i class="fa-solid fa-tag"></i> {{ badge }}</div>
{% endfor %}
</div>
</div>
</div>
{% endfor %}
</div>
</section>
{% endif %}
<script>
function scrollCommunity(dir) {
const list = document.getElementById("communityList");
list.scrollBy({ left: dir * (list.clientWidth * 0.7), behavior: 'smooth' });
}
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const logoElement = document.getElementById('logo');
const tooltipElement = document.getElementById('tooltip');
const tooltipMessage = "OpenRPG - это сервис для совместного прохождения ролевых игр, где истории написаны авторами, а ИИ служит их рассказчиком";
let tooltipTimeoutId;
if (logoElement && tooltipElement) {
logoElement.addEventListener('mouseenter', () => {
tooltipTimeoutId = setTimeout(() => {
tooltipElement.textContent = tooltipMessage;
tooltipElement.style.display = 'block';
tooltipElement.style.opacity = '1';
// Позиционирование подсказки строго под заголовком
const logoRect = logoElement.getBoundingClientRect();
tooltipElement.style.left = logoRect.left + 'px';
tooltipElement.style.top = (logoRect.bottom + 5) + 'px';
}, 500); // Задержка 500 мс
});
logoElement.addEventListener('mouseleave', () => {
clearTimeout(tooltipTimeoutId);
tooltipElement.style.opacity = '0';
setTimeout(() => {
tooltipElement.style.display = 'none';
}, 300); // Длительность fade-out
});
}
});
</script>
{% endblock %}