Skip to content

Commit 05c47bc

Browse files
authored
Update index.html
1 parent 0930a00 commit 05c47bc

1 file changed

Lines changed: 43 additions & 67 deletions

File tree

index.html

Lines changed: 43 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,22 @@
3030
.filter-btn.active { background: rgba(242, 169, 0, 0.1); }
3131

3232
.trader-header { display: flex; align-items: center; gap: 25px; background: linear-gradient(90deg, rgba(26,26,26,1) 0%, rgba(26,26,26,0) 100%); padding: 15px; border-left: 5px solid var(--primary); margin: 2.5rem 0 1.5rem 0; cursor: pointer; }
33-
.trader-portrait { width: 120px; height: 120px; border: 2px solid var(--primary); object-fit: cover; object-position: center top; background: #222; }
33+
34+
.trader-portrait {
35+
width: 120px;
36+
height: 120px;
37+
border: 2px solid var(--primary);
38+
object-fit: cover;
39+
object-position: center top; /* Исправляет положение лица доктора */
40+
background: #222;
41+
}
42+
3443
.trader-info h2 { color: var(--primary); margin: 0; text-transform: uppercase; font-size: 1.6rem; }
3544

3645
.quest-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; margin-bottom: 3rem; }
37-
.quest-card { background: var(--card-bg); border: 1px solid var(--border); padding: 1rem; display: flex; flex-direction: column; min-height: 380px; transition: 0.2s; }
46+
.quest-card { background: var(--card-bg); border: 1px solid var(--border); padding: 1rem; display: flex; flex-direction: column; min-height: 400px; transition: 0.2s; }
3847
.q-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.8rem; border-bottom: 1px solid var(--border); padding-bottom: 0.5rem; }
48+
3949
.q-title { color: var(--primary); font-weight: bold; text-transform: uppercase; font-size: 0.9rem; }
4050
.q-title-clickable { color: var(--primary); font-weight: bold; text-transform: uppercase; font-size: 0.9rem; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(242, 169, 0, 0.3); }
4151

@@ -65,9 +75,21 @@
6575
.modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.95); backdrop-filter: blur(8px); }
6676
.modal-content { background: var(--card-bg); margin: 5% auto; padding: 25px; border: 1px solid var(--primary); width: 90%; max-width: 1100px; position: relative; overflow-y: auto; max-height: 85vh; }
6777
.close-modal { position: absolute; right: 20px; top: 15px; color: var(--primary); font-size: 2.5rem; cursor: pointer; }
78+
6879
.location-pics { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 15px; margin-top: 25px; }
69-
.location-img { width: 100%; display: block; border: 1px solid var(--border); background: #111; }
70-
.location-img img { width: 100%; display: block; }
80+
.location-img { width: 100%; display: block; border: 1px solid var(--border); background: #111; overflow: hidden; }
81+
82+
/* Убирает лишнюю полоску снизу на фото */
83+
.location-img img {
84+
width: 100%;
85+
height: 250px;
86+
display: block;
87+
object-fit: cover;
88+
}
89+
90+
.pic-box { display: flex; flex-direction: column; gap: 5px; }
91+
.pic-label { font-size: 0.65rem; color: var(--primary); text-transform: uppercase; letter-spacing: 1px; }
92+
7193
#modalTraderLoc { font-style: italic; border-left: 2px solid var(--primary); padding-left: 15px; margin: 15px 0; color: #fff; line-height: 1.6; }
7294
</style>
7395
</head>
@@ -118,17 +140,8 @@ <h1>VOSTOK-HELP</h1>
118140
<div class="quest-card" id="q_4"><div class="q-header"><span class="q-title">Coffee Reserve</span><span class="diff diff-easy">EASY</span></div><div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Кофе</li><li>Кофейный фильтр</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Карта</li></ul></div><button class="status-btn" onclick="toggleQ('q_4')">ВЫПОЛНЕНО</button></div>
119141

120142
<div class="quest-card" id="q_5">
121-
<div class="q-header">
122-
<span class="q-title">Sweaty Business</span>
123-
<span class="diff diff-inter">INTER</span>
124-
</div>
125-
<div>
126-
<span class="section-label">Требуется:</span>
127-
<ul class="needs-list">
128-
<li>Дезодорант</li>
129-
<li>Влажные салфетки</li>
130-
</ul>
131-
<span class="section-label">Награда:</span>
143+
<div class="q-header"><span class="q-title">Sweaty Business</span><span class="diff diff-inter">INTER</span></div>
144+
<div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Дезодорант</li><li>Влажные салфетки</li></ul><span class="section-label">Награда:</span>
132145
<ul class="rewards">
133146
<li>Рыбацкий жилет</li>
134147
<li>Удочка</li>
@@ -158,42 +171,16 @@ <h1>VOSTOK-HELP</h1>
158171
<div class="trader-info"><h2>Доктор</h2><p>Локация: School (Школа)</p></div>
159172
</div>
160173
<div class="quest-grid">
161-
<div class="quest-card" id="q_11">
162-
<div class="q-header" onclick="openQuestHelp('Nasty Draft', 'Бывший учитель ОБЖ латает щели в окнах школы, чтобы спасти пациентов клиники от холода.', null, null)">
163-
<span class="q-title-clickable">Nasty Draft</span>
164-
<span class="diff diff-easy">EASY</span>
165-
</div>
166-
<div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Армированный скотч</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Салфетки</li></ul></div>
167-
<button class="status-btn" onclick="toggleQ('q_11')">ВЫПОЛНЕНО</button>
168-
</div>
169-
<div class="quest-card" id="q_12">
170-
<div class="q-header" onclick="openQuestHelp('Steady Hands', 'Доктору нужно унять дрожь в руках перед операциями. Секрет от Снабженца.', null, null)">
171-
<span class="q-title-clickable">Steady Hands</span>
172-
<span class="diff diff-easy">EASY</span>
173-
</div>
174-
<div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Сигары</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Термоодеяло</li></ul></div>
175-
<button class="status-btn" onclick="toggleQ('q_12')">ВЫПОЛНЕНО</button>
176-
</div>
177-
<div class="quest-card" id="q_13">
178-
<div class="q-header" onclick="openQuestHelp('Bookworm', 'Доктор коротает время между пациентами за чтением любой литературы.', null, null)">
179-
<span class="q-title-clickable">Bookworm</span>
180-
<span class="diff diff-easy">EASY</span>
181-
</div>
182-
<div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Книга (Детская)</li><li>Книга (Кулинарная)</li><li>Книга (О рыбалке)</li><li>Книга (Религиозная)</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Медицинский шкаф</li></ul></div>
183-
<button class="status-btn" onclick="toggleQ('q_13')">ВЫПОЛНЕНО</button>
184-
</div>
185-
<div class="quest-card" id="q_14">
186-
<div class="q-header" onclick="openQuestHelp('Dice Master', 'Доктор подозревает Снабженца в мошенничестве и хочет свой набор для игры.', null, null)">
187-
<span class="q-title-clickable">Dice Master</span>
188-
<span class="diff diff-easy">EASY</span>
189-
</div>
190-
<div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Настольная игра</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Шкафчик</li><li>Тележка</li></ul></div>
191-
<button class="status-btn" onclick="toggleQ('q_14')">ВЫПОЛНЕНО</button>
192-
</div>
174+
<div class="quest-card" id="q_11"><div class="q-header"><span class="q-title">Nasty Draft</span><span class="diff diff-easy">EASY</span></div><div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Армированный скотч</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Салфетки</li></ul></div><button class="status-btn" onclick="toggleQ('q_11')">ВЫПОЛНЕНО</button></div>
175+
<div class="quest-card" id="q_12"><div class="q-header"><span class="q-title">Steady Hands</span><span class="diff diff-easy">EASY</span></div><div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Сигары</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Термоодеяло</li></ul></div><button class="status-btn" onclick="toggleQ('q_12')">ВЫПОЛНЕНО</button></div>
176+
<div class="quest-card" id="q_13"><div class="q-header"><span class="q-title">Bookworm</span><span class="diff diff-easy">EASY</span></div><div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Книга (Детская)</li><li>Книга (Кулинарная)</li><li>Книга (О рыбалке)</li><li>Книга (Религиозная)</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Медицинский шкаф</li></ul></div><button class="status-btn" onclick="toggleQ('q_13')">ВЫПОЛНЕНО</button></div>
177+
<div class="quest-card" id="q_14"><div class="q-header"><span class="q-title">Dice Master</span><span class="diff diff-easy">EASY</span></div><div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Настольная игра</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Шкафчик</li><li>Тележка</li></ul></div><button class="status-btn" onclick="toggleQ('q_14')">ВЫПОЛНЕНО</button></div>
178+
193179
<div class="quest-card" id="q_15"><div class="q-header"><span class="q-title">Night Surgery</span><span class="diff diff-inter">INTER</span></div><div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Налобный фонарь</li><li>Батарейки</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Энергетик</li></ul></div><button class="status-btn" onclick="toggleQ('q_15')">ВЫПОЛНЕНО</button></div>
194180
<div class="quest-card" id="q_16"><div class="q-header"><span class="q-title">Infections</span><span class="diff diff-inter">INTER</span></div><div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Антисептик</li><li>Антибиотики</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Бинт</li><li>Тряпки</li><li>Обезболивающее</li></ul></div><button class="status-btn" onclick="toggleQ('q_16')">ВЫПОЛНЕНО</button></div>
195181
<div class="quest-card" id="q_17"><div class="q-header"><span class="q-title">Hypovolemia</span><span class="diff diff-inter">INTER</span></div><div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Физраствор (3 шт.)</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Гидрозатвор</li></ul></div><button class="status-btn" onclick="toggleQ('q_17')">ВЫПОЛНЕНО</button></div>
196182
<div class="quest-card" id="q_18"><div class="q-header"><span class="q-title">Mouth Organ</span><span class="diff diff-hard">HARD</span></div><div><span class="section-label">Требуется:</span><ul class="needs-list"><li>Губная гармошка</li></ul><span class="section-label">Награда:</span><ul class="rewards"><li>Аптечка (3 шт.)</li></ul></div><button class="status-btn" onclick="toggleQ('q_18')">ВЫПОЛНЕНО</button></div>
183+
197184
<div class="quest-card" id="q_19">
198185
<div class="q-header" onclick="openQuestHelp('Patient Report', 'Нужно забрать отчет из школьного спортзала. Там был пункт экстренной помощи.', 'gymn-cor.jpg', 'gymn.jpg')">
199186
<span class="q-title-clickable">Patient Report</span>
@@ -213,7 +200,7 @@ <h1>VOSTOK-HELP</h1>
213200
const config = [{l:'label1',c:'imgCont1',s:img1,t:"ЗДАНИЕ:"},{l:'label2',c:'imgCont2',s:img2,t:"КОРИДОР:"},{l:'label3',c:'imgCont3',s:img3,t:"КАБИНЕТ:"}];
214201
config.forEach(item => {
215202
const box = document.getElementById(item.l).parentElement;
216-
if(item.s) { box.style.display = 'flex'; document.getElementById(item.l).innerText = item.t; document.getElementById(item.c).innerHTML = `<img src="${item.s}" class="location-img">`; }
203+
if(item.s) { box.style.display = 'flex'; document.getElementById(item.l).innerText = item.t; document.getElementById(item.c).innerHTML = `<img src="${item.s}">`; }
217204
else { box.style.display = 'none'; }
218205
});
219206
document.getElementById('traderModal').style.display = 'block';
@@ -245,32 +232,24 @@ <h1>VOSTOK-HELP</h1>
245232
}
246233

247234
function changeCount(btn, val) {
248-
const li = btn.closest('li');
249-
const span = li.querySelector('.count-val');
250-
const target = parseInt(li.dataset.target);
235+
const li = btn.closest('li'); const span = li.querySelector('.count-val'); const target = parseInt(li.dataset.target);
251236
let current = Math.max(0, Math.min(target, parseInt(span.innerText) + val));
252-
253237
span.innerText = current;
254238
localStorage.setItem(li.closest('.quest-card').id + '_count', current);
255-
256-
if(current === target) li.classList.add('item-found');
257-
else li.classList.remove('item-found');
239+
if(current === target) li.classList.add('item-found'); else li.classList.remove('item-found');
258240
}
259241

260242
function setupChecklist() {
261243
document.querySelectorAll('.needs-list li').forEach((li, index) => {
262244
const qId = li.closest('.quest-card').id;
263-
264245
if(li.classList.contains('has-counter')) {
265246
const saved = localStorage.getItem(qId + '_count') || 0;
266-
const target = parseInt(li.dataset.target);
267247
li.querySelector('.count-val').innerText = saved;
268-
if(parseInt(saved) === target) li.classList.add('item-found');
269-
248+
if(parseInt(saved) === parseInt(li.dataset.target)) li.classList.add('item-found');
270249
li.onclick = function(e) {
271250
if (e.target.tagName === 'BUTTON') return;
272-
const isDone = this.classList.contains('item-found');
273-
const newVal = isDone ? 0 : target;
251+
const target = parseInt(this.dataset.target);
252+
const newVal = this.classList.contains('item-found') ? 0 : target;
274253
this.querySelector('.count-val').innerText = newVal;
275254
localStorage.setItem(qId + '_count', newVal);
276255
this.classList.toggle('item-found');
@@ -289,12 +268,9 @@ <h1>VOSTOK-HELP</h1>
289268
function updateStats() {
290269
const total = document.querySelectorAll('.quest-card').length;
291270
const done = document.querySelectorAll('.quest-card.completed').length;
292-
const tEl = document.getElementById('total-q');
293-
const dEl = document.getElementById('done-q');
294-
const lEl = document.getElementById('left-q');
295-
if(tEl) tEl.innerText = total;
296-
if(dEl) dEl.innerText = done;
297-
if(lEl) lEl.innerText = total - done;
271+
document.getElementById('total-q').innerText = total;
272+
document.getElementById('done-q').innerText = done;
273+
document.getElementById('left-q').innerText = total - done;
298274
}
299275

300276
function initApp() {

0 commit comments

Comments
 (0)