diff --git a/cards.js b/cards.js index 0e35946..8faadc5 100644 --- a/cards.js +++ b/cards.js @@ -2848,7 +2848,7 @@ module.exports = { name: 'Щит', cost: 3, type: 'spell', - faction: 'neutral', + faction: 'defense', text: 'Даёт +10 брони игроку.', art: 'shield', spellEffect: 'add_armor_10', @@ -2861,9 +2861,9 @@ module.exports = { attack: 0, health: 3, type: 'minion', - faction: 'neutral', + faction: 'defense', text: 'Поглощает первый урон каждого хода.', - art: 'energy', + art: 'shield', shieldEffect: 'absorb_first_damage', bio: 'Щит, который поглощает первый удар.', }, @@ -2873,9 +2873,9 @@ module.exports = { attack: 2, health: 5, type: 'minion', - faction: 'rebellion', + faction: 'defense', text: 'Пока на поле джедай — броня восстанавливается на +2 за ход.', - art: 'barrier', + art: 'shield', fieldEffect: 'armor_regen_2_if_jedi', bio: 'Защита джедаев восстанавливается.', }, @@ -2885,9 +2885,9 @@ module.exports = { attack: 1, health: 4, type: 'minion', - faction: 'neutral', + faction: 'defense', text: 'Мех-юниты имеют удвоенную броню.', - art: 'droid', + art: 'shield', aura: 'double_armor_mechs', bio: 'Усиленная защита для механических существ.', }, @@ -2897,9 +2897,9 @@ module.exports = { attack: 0, health: 6, type: 'minion', - faction: 'empire', + faction: 'defense', text: 'Даёт +15 брони. Каждые 2 хода +5 брони. Урон по герою -50%.', - art: 'generator', + art: 'shield', battlecry: 'add_armor_15', fieldEffect: 'armor_regen_5_every_2_turns', damageReduction: 0.5, diff --git a/public/game.js b/public/game.js index 5501344..f5e8fb0 100644 --- a/public/game.js +++ b/public/game.js @@ -1035,6 +1035,7 @@ k2so: 'r2d2', chirrut: 'jediorder', baze: 'stormtrooper', poe: 'xwing', hux: 'stormtrooper', rose: 'galrep', lightsaber: 'saberjedi', force: 'saberjedi', blaster: 'tie', hyperspace: 'xwing', fear: 'sith', hope: 'galrep', + shield: 'jediorder', barrier: 'jediorder', energy: 'jediorder', generator: 'jediorder', }; function getCardArt(meta) { // Проверяем наличие кастомных иконок в папке extraicons diff --git a/public/styles.css b/public/styles.css index 71b932d..e90f87c 100644 --- a/public/styles.css +++ b/public/styles.css @@ -21,6 +21,8 @@ --empire-dark: #8b1530; --neutral: #8b7355; --neutral-dark: #5c4a38; + --defense: #6b46c1; + --defense-dark: #4c1d95; --font-display: 'Orbitron', sans-serif; --font-body: 'Rajdhani', sans-serif; } @@ -621,11 +623,25 @@ html, body { transition: all 0.2s; flex-shrink: 0; margin-left: 0.5rem; + display: flex; + align-items: center; + justify-content: center; } .btn-instructions:hover, .btn-settings:hover { background: rgba(212,168,75,0.2); transform: scale(1.08); } +/* Иконки внутри кнопок не должны перехватывать клики */ +.btn-instructions svg, +.btn-instructions i[data-lucide], +.btn-settings svg, +.btn-settings i[data-lucide], +.btn-instructions-lobby svg, +.btn-instructions-lobby i[data-lucide], +.btn-settings-lobby svg, +.btn-settings-lobby i[data-lucide] { + pointer-events: none; +} /* Board – Star Wars style (trench/hangar, space) */ .board { @@ -896,6 +912,11 @@ html, body { border-color: #8b6914; box-shadow: 0 8px 24px rgba(0,0,0,0.5), 0 0 20px rgba(139,105,20,0.15), inset 0 1px 0 rgba(255,255,255,0.1); } +.card.faction-defense { + background: linear-gradient(165deg, #4a2d6a 0%, #2d1a4a 45%, #1a0f2d 100%); + border-color: var(--defense); + box-shadow: 0 8px 24px rgba(0,0,0,0.5), 0 0 20px rgba(107,70,193,0.25), inset 0 1px 0 rgba(255,255,255,0.12); +} .card-wrap.playable:not(.disabled) .card { border-color: var(--amber-bright); @@ -938,6 +959,11 @@ html, body { color: #d4a84b; text-shadow: 0 0 20px rgba(212,168,75,0.6); } +.card.faction-defense .card-art { + background: linear-gradient(180deg, rgba(107,70,193,0.3) 0%, rgba(26,15,45,0.95) 100%); + color: #8b5cf6; + text-shadow: 0 0 20px rgba(139,92,246,0.7); +} .card-art .card-art-swg { font-size: 1.5em; } .card-art .card-art-fallback { font-size: 1.1rem; opacity: 0.9; } .card-art .card-art-image {