[hideprofile]
И В КОНЦЕ ОНИ ВСЕ УМРУТ
4.02.1980 | Остров Мак | @Antonin Dolohov @Janus Thickey @Molly Weasley @Pandora Lovegood
[html]<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Карточки персонажей | Магическая битва</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}body {
background-color: #1a1a1a;
color: #4a3436;
line-height: 1.6;
padding: 20px;
}.table-wrapper {
max-width: 1100px;
margin: 0 auto;
border: 2px solid #4a3436;
border-radius: 14px;
padding: 4px;
background-color: #4a3436;
}.container-global {
max-width: 1080px;
margin: 0 auto;
background-color: #dbd4cd;
border-radius: 12px;
overflow: visible;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
border: 1px solid #4a3436;
padding-bottom: 24px;
}.players-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
padding: 30px 24px 20px 24px;
background-color: #dbd4cd;
}.character-card {
background-color: #f5f0eb;
border-radius: 18px;
border: 2px solid #4a3436;
padding: 14px 12px 16px;
display: flex;
flex-direction: column;
gap: 10px;
transition: transform 0.2s, box-shadow 0.2s;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
position: relative;
overflow: visible;
max-width: 200px;
margin: 0 auto;
width: 100%;
}.character-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 20px rgba(0, 0, 0, 0.2);
border-color: #caa954;
}.character-title {
font-size: 16px;
font-weight: bold;
color: #4a3436;
text-align: center;
background: #e8dfd7;
padding: 6px 4px;
border-radius: 40px;
border: 1px solid #caa954;
}.image-container {
display: flex;
justify-content: center;
align-items: center;
width: 120px;
height: 120px;
margin: 0 auto;
background-color: #dbd4cd;
border-radius: 16px;
border: 1px solid #4a3436;
}.character-image {
width: 106px;
height: 106px;
object-fit: cover;
border-radius: 14px;
border: 1px solid #caa954;
}.stat-row {
font-size: 11px;
font-weight: 600;
display: flex;
justify-content: space-between;
color: #4a3436;
background: #e3d8cf;
padding: 2px 8px;
border-radius: 20px;
}.items-grid {
display: flex;
justify-content: center;
gap: 10px;
margin: 4px 0 0;
flex-wrap: wrap;
}.item-slot {
position: relative;
width: 48px;
height: 48px;
flex-shrink: 0;
cursor: pointer;
background-color: #dbd4cd;
border-radius: 12px;
border: 2px solid #4a3436;
transition: all 0.15s;
overflow: visible;
display: flex;
align-items: center;
justify-content: center;
}.item-slot:hover {
border-color: #caa954;
transform: scale(1.02);
}.item-slot.active {
border-color: #caa954;
box-shadow: 0 0 0 2px #caa954;
}.item-image {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
border-radius: 10px;
}.item-tooltip {
visibility: hidden;
opacity: 0;
background-color: #4a3436;
color: #fef3e2;
text-align: center;
border-radius: 12px;
padding: 6px 12px;
position: absolute;
z-index: 9999;
bottom: 100%;
left: 50%;
transform: translateX(-50%);
margin-bottom: 8px;
white-space: nowrap;
font-size: 11px;
font-weight: 500;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
transition: opacity 0.2s, visibility 0.2s;
pointer-events: none;
border: 1px solid #caa954;
}.item-tooltip::after {
content: '';
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
border-width: 5px;
border-style: solid;
border-color: #4a3436 transparent transparent transparent;
}.item-slot:hover .item-tooltip {
visibility: visible;
opacity: 1;
}.item-description {
background-color: #e3d8cf;
border-radius: 8px;
padding: 8px 10px;
margin-top: 4px;
min-height: 150px;
max-height: 150px;
height: 150px;
font-size: 11px;
line-height: 1.5;
color: #2c2420;
border: 1px solid #4a3436;
font-weight: 500;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: #caa954 #e3d8cf;
transition: all 0.2s;
}.item-description::-webkit-scrollbar {
width: 5px;
}.item-description::-webkit-scrollbar-track {
background: #e3d8cf;
border-radius: 8px;
}.item-description::-webkit-scrollbar-thumb {
background: #caa954;
border-radius: 3px;
}.item-description::-webkit-scrollbar-thumb:hover {
background: #a87f2c;
}.item-description.empty {
color: #8a7a6e;
font-style: italic;
display: flex;
align-items: center;
justify-content: center;
}@media (max-width: 860px) {
.players-grid {
grid-template-columns: repeat(2, 1fr);
gap: 16px;
padding: 20px 16px;
}
}@media (max-width: 550px) {
.players-grid {
grid-template-columns: 1fr;
gap: 20px;
}
.character-card {
max-width: 260px;
}
}
</style>
</head>
<body>
<div class="table-wrapper">
<div class="container-global">
<div class="players-grid">
<!-- КАЙДЕН -->
<div class="character-card" data-max-hp="20" data-current-hp="20">
<div class="character-title">Кайден</div>
<div class="image-container">
<img src="https://upforme.ru/uploads/0008/e1/93/3/42523.png" alt="Кайден" class="character-image">
</div>
<div class="stat-row">
<span>❤ ЗДОРОВЬЕ</span>
<span class="hp-values-display">16 / 16</span>
</div>
<div class="stat-row">
<span>⚡ Усталость</span>
<span>0 / 4</span>
</div>
<div class="items-grid">
<div class="item-slot" data-description="Старший дракончик из братьев и сестёр.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/531197.png" class="item-image" alt="предмет">
<span class="item-tooltip">Старший</span>
</div>
<div class="item-slot" data-description="Всегда получает на 1 единицу меньше урона извне.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/637084.png" class="item-image" alt="предмет">
<span class="item-tooltip">Крепкая чешуя</span>
</div>
<div class="item-slot" data-description="В свой ход дракон может отдать 2 единицы своего здоровья другому, восстановив ему 2 здоровья. Использовать можно 1 раз в каждой локации.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/554234.png" class="item-image" alt="предмет">
<span class="item-tooltip">Поддержка</span>
</div>
</div>
<div class="item-description empty">Нажмите на предмет для описания</div>
</div>
<!-- НЕССИ -->
<div class="character-card" data-max-hp="20" data-current-hp="20">
<div class="character-title">Несси</div>
<div class="image-container">
<img src="https://upforme.ru/uploads/0008/e1/93/3/466939.png" alt="Несси" class="character-image">
</div>
<div class="stat-row">
<span>❤ ЗДОРОВЬЕ</span>
<span class="hp-values-display">16 / 16</span>
</div>
<div class="stat-row">
<span>⚡ Усталость</span>
<span>0 / 4</span>
</div>
<div class="items-grid">
<div class="item-slot" data-description="Старший дракончик из братьев и сестёр.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/531197.png" class="item-image" alt="предмет">
<span class="item-tooltip">Старший</span>
</div>
<div class="item-slot" data-description="Всегда получает на 1 единицу меньше урона извне.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/637084.png" class="item-image" alt="предмет">
<span class="item-tooltip">Крепкая чешуя</span>
</div>
<div class="item-slot" data-description="В момент, когда силы уже на исходе, вы находите скрытый резерв. Позволяет сбросить всю накопленную усталость (до 0) один раз за игру. Используется в любой момент (по желанию игрока).">
<img src="https://upforme.ru/uploads/0008/e1/93/3/541543.png" class="item-image" alt="предмет">
<span class="item-tooltip">Второе дыхание</span>
</div>
</div>
<div class="item-description empty">Нажмите на предмет для описания</div>
</div>
<!-- УЛЬФРИН -->
<div class="character-card" data-max-hp="20" data-current-hp="20">
<div class="character-title">Ульфрин</div>
<div class="image-container">
<img src="https://upforme.ru/uploads/0008/e1/93/3/790906.png" alt="Ульфрин" class="character-image">
</div>
<div class="stat-row">
<span>❤ ЗДОРОВЬЕ</span>
<span class="hp-values-display">12 / 12</span>
</div>
<div class="stat-row">
<span>⚡ Усталость</span>
<span>0 / 6</span>
</div>
<div class="items-grid">
<div class="item-slot" data-description="Средний дракончик из братьев и сестёр.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/507474.png" class="item-image" alt="предмет">
<span class="item-tooltip">Средний</span>
</div>
<div class="item-slot" data-description="Ваша способность раскроется в процессе игры.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/687535.png" class="item-image" alt="предмет">
<span class="item-tooltip">Зов крови</span>
</div>
<div class="item-slot" data-description="Если союзник провалил бросок кубика и должен получить урон, игрок может прикрыть его. Игрок бросает 1d6, где: 4-6: он принимает половину урона на себя. 1-3: они оба получают половину общего урона. Если урон нельзя разделить (например 1, то забирает весь урон себе). Использовать можно 1 раз в каждой локации. Можно защитить игрока только от влияния локации.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/137474.png" class="item-image" alt="Прикрыть крылом">
<span class="item-tooltip">Прикрыть крылом</span>
</div>
</div>
<div class="item-description empty">Нажмите на предмет для описания</div>
</div><!-- ЯРА -->
<div class="character-card" data-max-hp="20" data-current-hp="20">
<div class="character-title">Яра</div>
<div class="image-container">
<img src="https://upforme.ru/uploads/0008/e1/93/3/639256.png" alt="Яра" class="character-image">
</div>
<div class="stat-row">
<span>❤ ЗДОРОВЬЕ</span>
<span class="hp-values-display">8 / 8</span>
</div>
<div class="stat-row">
<span>⚡ Усталость</span>
<span>10 / 10</span>
</div>
<div class="items-grid">
<div class="item-slot" data-description="Младший дракончик из братьев и сестёр.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/323799.png" class="item-image" alt="предмет">
<span class="item-tooltip">Младший</span>
</div>
<div class="item-slot" data-description="Вы можете один раз за квест проигнорировать требование броска 1d6 или 1d10 (на влияние от локации) и значение автоматически будет считать максимальным на кубике.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/764865.png" class="item-image" alt="предмет">
<span class="item-tooltip">Везунчик</span>
</div>
<div class="item-slot" data-description="Когда ваше здоровье опускается до 0, вы не умираете и восстанавливаете половину от своего здоровья.">
<img src="https://upforme.ru/uploads/0008/e1/93/3/961500.png" class="item-image" alt="предмет">
<span class="item-tooltip">Смерть проходит мимо</span>
</div>
<div class="item-description empty">Нажмите на предмет для описания</div>
</div>
</div>
</div>
</div><script>
// Простой и надежный способ - вешаем обработчик на каждую карточку
document.querySelectorAll('.character-card').forEach(card => {
const descriptionBlock = card.querySelector('.item-description');
const slots = card.querySelectorAll('.item-slot');
slots.forEach(slot => {
slot.addEventListener('click', function(e) {
e.stopPropagation();
// Получаем описание
const description = this.getAttribute('data-description') || 'Описание отсутствует';
// Обновляем блок описания
if (descriptionBlock) {
descriptionBlock.textContent = description;
descriptionBlock.classList.remove('empty');
}
// Убираем активный класс у всех слотов в этой карточке
slots.forEach(s => s.classList.remove('active'));
// Добавляем активный класс текущему слоту
this.classList.add('active');
console.log('Нажат предмет:', this.querySelector('.item-tooltip')?.textContent || 'без названия');
console.log('Описание:', description.substring(0, 50) + '...');
});
});
});// Синхронизация здоровья
function syncPlayersHp() {
const cards = document.querySelectorAll('.character-card');
cards.forEach(card => {
const maxHp = parseInt(card.getAttribute('data-max-hp')) || 20;
let currHp = parseInt(card.getAttribute('data-current-hp'));
if (isNaN(currHp)) currHp = maxHp;
const valuesSpan = card.querySelector('.hp-values-display');
if (valuesSpan) valuesSpan.textContent = currHp + ' / ' + maxHp;
});
}window.addEventListener('DOMContentLoaded', () => {
syncPlayersHp();
console.log('Страница загружена. Нажмите на любой предмет для отображения описания.');
});
</script>
</body>
</html>[/html]Важно! Обязательно ознакомьтесь.Сроки и условия отписи:
● для игроков круг длится 3 дня (с 22:00 Мск и до этого же часа);
● на отпись ГМа даются 2 дня (с 22:00 Мск и до этого же часа);
● рекомендация к размеру постов - не более 3000 символов, но за превышение размера карательных мер нет;
● кол-во постов внутри круга не ограничено;
● если вам будет необходимо сделать какие-либо броски кубиков, то это будет указано в ГМном посте;
● по любым вопросам пишите в этой теме. В ней же вы можете координировать свои действия.
Отредактировано Game Master (Вчера 21:58:13)


















![de other side [crossover]](https://i.imgur.com/BQboz9c.png)
























