cosimotaiuti commited on
Commit
476f102
·
verified ·
1 Parent(s): 2a6d2b0

Upload 23 files

Browse files
__pycache__/app.cpython-313.pyc ADDED
Binary file (2.3 kB). View file
 
__pycache__/app.cpython-38.pyc ADDED
Binary file (1.72 kB). View file
 
front_edits/.DS_Store ADDED
Binary file (8.2 kB). View file
 
front_edits/CSS/game-style.css ADDED
@@ -0,0 +1,550 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Layout */
2
+ body {
3
+ margin: 0;
4
+ font-family: Arial, sans-serif;
5
+ display: flex;
6
+ background-color: #220a0a;
7
+ height: 100vh;
8
+ position: relative;
9
+ overflow: hidden;
10
+ }
11
+
12
+ #gameContainer {
13
+ display: flex;
14
+ width: 100%;
15
+ height: 100vh;
16
+ overflow: auto;
17
+ position: relative;
18
+ z-index: 1;
19
+ align-items: center;
20
+ }
21
+
22
+ #mapSection {
23
+ flex: 1;
24
+ min-width: 600px;
25
+ width: fit-content;
26
+ position: relative;
27
+ display: flex;
28
+ flex-direction: column;
29
+ justify-content: center;
30
+ align-items: center;
31
+ overflow: auto;
32
+ z-index: 2;
33
+ padding: 20px;
34
+ }
35
+
36
+ /* We'll place the P5 canvas in here */
37
+ .map-wrapper {
38
+ margin: 20px;
39
+ transform-origin: center center;
40
+ min-width: min-content;
41
+ }
42
+
43
+ #chatSection {
44
+ width: 100%;
45
+ height: 100%;
46
+ display: flex;
47
+ flex-direction: column;
48
+ background: #000000;
49
+ border-radius: 38px;
50
+ overflow: hidden;
51
+ }
52
+
53
+ #chatHistory {
54
+ flex: 1;
55
+ overflow-y: auto;
56
+ padding: 16px;
57
+ background: #f8f8fa;
58
+ }
59
+
60
+ /* Style moderne pour la barre de scroll */
61
+ #chatHistory::-webkit-scrollbar {
62
+ width: 6px;
63
+ }
64
+
65
+ #chatHistory::-webkit-scrollbar-track {
66
+ background: transparent;
67
+ }
68
+
69
+ #chatHistory::-webkit-scrollbar-thumb {
70
+ background: #d1d1d6;
71
+ border-radius: 3px;
72
+ }
73
+
74
+ #chatControls {
75
+ padding: 16px;
76
+ background: #ffffff;
77
+ display: flex;
78
+ gap: 12px;
79
+ border-top: 1px solid #f1f1f5;
80
+ }
81
+
82
+ .chat-message {
83
+ padding: 12px 16px;
84
+ margin: 6px 0;
85
+ border-radius: 20px;
86
+ max-width: 75%;
87
+ font-size: 0.95em;
88
+ line-height: 1.4;
89
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
90
+ transition: background-color 0.3s ease;
91
+ }
92
+
93
+ .user-message {
94
+ background: #007aff;
95
+ color: white;
96
+ margin-left: auto;
97
+ border-radius: 20px 20px 4px 20px;
98
+ }
99
+
100
+ .assistant-message {
101
+ color: white;
102
+ margin-right: auto;
103
+ border-radius: 20px 20px 20px 4px;
104
+ }
105
+
106
+ input {
107
+ flex: 1;
108
+ padding: 12px 16px;
109
+ border: none;
110
+ border-radius: 20px;
111
+ font-family: inherit;
112
+ font-size: 0.95em;
113
+ background: #f1f1f5;
114
+ transition: background 0.2s;
115
+ }
116
+
117
+ input:focus {
118
+ outline: none;
119
+ background: #e5e5ea;
120
+ }
121
+
122
+ input::placeholder {
123
+ color: #8e8e93;
124
+ }
125
+
126
+ button {
127
+ padding: 8px;
128
+ width: 40px;
129
+ height: 40px;
130
+ background: #007aff;
131
+ color: white;
132
+ border: none;
133
+ border-radius: 20px;
134
+ cursor: pointer;
135
+ display: flex;
136
+ align-items: center;
137
+ justify-content: center;
138
+ transition: transform 0.2s, background 0.2s;
139
+ }
140
+
141
+ button:hover {
142
+ background: #0056b3;
143
+ transform: scale(1.05);
144
+ }
145
+
146
+ /* Style moderne pour l'indicateur de chargement */
147
+ .loading-dots {
148
+ display: inline-flex;
149
+ gap: 4px;
150
+ padding: 8px 12px;
151
+ background: #f1f1f5;
152
+ border-radius: 16px;
153
+ }
154
+
155
+ .dot {
156
+ width: 6px;
157
+ height: 6px;
158
+ background: #8e8e93;
159
+ border-radius: 50%;
160
+ animation: bounce 1.4s infinite ease-in-out;
161
+ }
162
+
163
+ .dot:nth-child(1) {
164
+ animation-delay: -0.32s;
165
+ }
166
+
167
+ .dot:nth-child(2) {
168
+ animation-delay: -0.16s;
169
+ }
170
+
171
+ @keyframes bounce {
172
+ 0%,
173
+ 80%,
174
+ 100% {
175
+ transform: scale(0);
176
+ }
177
+
178
+ 40% {
179
+ transform: scale(1);
180
+ }
181
+ }
182
+
183
+ /* Modal for API key (if needed) */
184
+ #apiKeyModal {
185
+ display: none;
186
+ position: fixed;
187
+ top: 0;
188
+ left: 0;
189
+ width: 100%;
190
+ height: 100%;
191
+ background: rgba(0, 0, 0, 0.5);
192
+ justify-content: center;
193
+ align-items: center;
194
+ }
195
+
196
+ .modal-content {
197
+ background: white;
198
+ padding: 20px;
199
+ border-radius: 8px;
200
+ width: 300px;
201
+ }
202
+
203
+ #apiKey {
204
+ width: 100%;
205
+ margin: 10px 0;
206
+ padding: 8px;
207
+ }
208
+
209
+ /* Modifier les styles du chat et du mockup */
210
+ .phone-mockup {
211
+ position: relative;
212
+ width: 400px;
213
+ height: 800px;
214
+ background: url("/static/assets/img/phone.png") no-repeat center;
215
+ background-size: contain;
216
+ display: flex;
217
+ justify-content: center;
218
+ align-items: center;
219
+ margin: auto;
220
+ padding: 35px 0;
221
+ flex-shrink: 0;
222
+ z-index: 2;
223
+ }
224
+
225
+ .phone-screen {
226
+ width: 90%;
227
+ height: 96.5%;
228
+ position: relative;
229
+ overflow: hidden;
230
+ margin: 0;
231
+ border-radius: 40px;
232
+ display: flex;
233
+ flex-direction: column;
234
+ }
235
+
236
+ /* Update media queries for better responsiveness */
237
+ @media (max-height: 900px) {
238
+ .phone-mockup {
239
+ width: 350px;
240
+ height: 700px;
241
+ }
242
+ }
243
+
244
+ @media (max-height: 700px) {
245
+ .phone-mockup {
246
+ width: 300px;
247
+ height: 600px;
248
+ }
249
+ }
250
+
251
+ @media (max-width: 1200px) {
252
+ #mapSection {
253
+ flex: none;
254
+ width: fit-content;
255
+ }
256
+ }
257
+
258
+ @media (max-width: 900px) {
259
+ #mapSection {
260
+ flex: none;
261
+ width: fit-content;
262
+ }
263
+ .phone-mockup {
264
+ min-width: 280px;
265
+ }
266
+ }
267
+
268
+ /* Ajouter les nouveaux styles pour l'en-tête du chat */
269
+ #chatHeader {
270
+ padding: 16px;
271
+ justify-content: center;
272
+ background: #ffffff;
273
+ border-bottom: 1px solid #f1f1f5;
274
+ display: flex;
275
+ align-items: center;
276
+ gap: 12px;
277
+ }
278
+
279
+ .profile-picture {
280
+ width: 40px;
281
+ height: 40px;
282
+ border-radius: 50%;
283
+ background: #f1f1f5;
284
+ display: flex;
285
+ align-items: center;
286
+ justify-content: center;
287
+ }
288
+
289
+ .chat-name {
290
+ font-size: 1.1em;
291
+ font-weight: 600;
292
+ color: #000000;
293
+ }
294
+
295
+ /* LED Bar */
296
+ .led-bar {
297
+ position: fixed;
298
+ top: 0;
299
+ left: 0;
300
+ width: 100%;
301
+ height: 2px;
302
+ background: linear-gradient(
303
+ 90deg,
304
+ transparent 0%,
305
+ rgba(255, 0, 0, 0.4) 20%,
306
+ rgba(255, 0, 0, 0.8) 35%,
307
+ rgba(255, 50, 50, 1) 50%,
308
+ rgba(255, 0, 0, 0.8) 65%,
309
+ rgba(255, 0, 0, 0.4) 80%,
310
+ transparent 100%
311
+ );
312
+ z-index: 100;
313
+ animation: ledFlicker 4s infinite, ledPulse 10s infinite;
314
+ box-shadow: 0 0 20px rgba(255, 0, 0, 0.7), 0 0 35px rgba(255, 0, 0, 0.5),
315
+ 0 0 50px rgba(255, 0, 0, 0.4), 0 0 70px rgba(155, 0, 0, 0.3);
316
+ filter: blur(0.6px);
317
+ }
318
+
319
+ .light-beam {
320
+ position: absolute;
321
+ top: 0;
322
+ left: 0;
323
+ width: 100%;
324
+ height: 250px;
325
+ background: linear-gradient(
326
+ 180deg,
327
+ rgba(255, 0, 0, 0.3) 0%,
328
+ rgba(255, 0, 0, 0.2) 20%,
329
+ rgba(255, 0, 0, 0.15) 30%,
330
+ rgba(155, 0, 0, 0.08) 60%,
331
+ transparent 100%
332
+ );
333
+ animation: beamFlicker 4s infinite;
334
+ pointer-events: none;
335
+ filter: blur(2px);
336
+ }
337
+
338
+ @keyframes ledFlicker {
339
+ 0% {
340
+ opacity: 1;
341
+ }
342
+
343
+ 95% {
344
+ opacity: 1;
345
+ }
346
+
347
+ 96% {
348
+ opacity: 0.3;
349
+ }
350
+
351
+ 97% {
352
+ opacity: 1;
353
+ }
354
+
355
+ 98% {
356
+ opacity: 0.2;
357
+ }
358
+
359
+ 99% {
360
+ opacity: 0.9;
361
+ }
362
+
363
+ 100% {
364
+ opacity: 1;
365
+ }
366
+ }
367
+
368
+ @keyframes ledPulse {
369
+ 0% {
370
+ filter: brightness(1) blur(0.6px);
371
+ }
372
+
373
+ 50% {
374
+ filter: brightness(1.3) blur(0.4px);
375
+ }
376
+
377
+ 100% {
378
+ filter: brightness(1) blur(0.6px);
379
+ }
380
+ }
381
+
382
+ @keyframes beamFlicker {
383
+ 0% {
384
+ opacity: 0.7;
385
+ }
386
+
387
+ 95% {
388
+ opacity: 0.7;
389
+ }
390
+
391
+ 96% {
392
+ opacity: 0.2;
393
+ }
394
+
395
+ 97% {
396
+ opacity: 0.7;
397
+ }
398
+
399
+ 98% {
400
+ opacity: 0.1;
401
+ }
402
+
403
+ 99% {
404
+ opacity: 0.6;
405
+ }
406
+
407
+ 100% {
408
+ opacity: 0.7;
409
+ }
410
+ }
411
+
412
+ /* Background Elements */
413
+ .background-elements {
414
+ position: fixed;
415
+ top: 0;
416
+ left: 0;
417
+ width: 100%;
418
+ height: 100%;
419
+ pointer-events: none;
420
+ z-index: 1;
421
+ }
422
+
423
+ .blood {
424
+ position: absolute;
425
+ top: 94%;
426
+ opacity: 0.6;
427
+ transform: rotate(20deg);
428
+ right: 10%;
429
+ }
430
+
431
+ .blood-top-left {
432
+ top: 0;
433
+ left: 0;
434
+ width: 300px;
435
+ }
436
+
437
+ .blood-top-right {
438
+ top: 0;
439
+ right: 0;
440
+ width: 200px;
441
+ transform: rotate(20deg);
442
+ }
443
+
444
+ .splatter {
445
+ bottom: 20%;
446
+ left: 10%;
447
+ width: 200px;
448
+ }
449
+
450
+ .blood-bottom-right {
451
+ bottom: 0;
452
+ right: 0;
453
+ position: absolute;
454
+ top: 90%;
455
+ left: 90%;
456
+ width: 200px;
457
+ }
458
+
459
+ /* Sound button styles */
460
+ .sound-button {
461
+ position: fixed;
462
+ bottom: 20px;
463
+ left: 20px;
464
+ width: 100px;
465
+ height: 100px;
466
+ cursor: pointer;
467
+ z-index: 1000;
468
+ transition: transform 0.2s ease;
469
+ }
470
+
471
+ .sound-button:hover {
472
+ transform: scale(1.1);
473
+ }
474
+
475
+ .sound-button img {
476
+ width: 100%;
477
+ height: 100%;
478
+ object-fit: contain;
479
+ }
480
+
481
+ /* Update button styles */
482
+ button {
483
+ padding: 8px;
484
+ width: 40px;
485
+ height: 40px;
486
+ background: #007aff;
487
+ color: white;
488
+ border: none;
489
+ border-radius: 10px;
490
+ cursor: pointer;
491
+ display: flex;
492
+ align-items: center;
493
+ justify-content: center;
494
+ transition: transform 0.2s, background 0.2s;
495
+ }
496
+
497
+ button img {
498
+ width: 15px;
499
+ height: 15px;
500
+ color: #ffffff;
501
+ }
502
+
503
+ /* Update input styles */
504
+ input {
505
+ border-radius: 10px;
506
+ }
507
+
508
+ @keyframes lightShake {
509
+ 0% {
510
+ transform: translateX(0);
511
+ }
512
+ 25% {
513
+ transform: translateX(2px);
514
+ }
515
+ 50% {
516
+ transform: translateX(-2px);
517
+ }
518
+ 75% {
519
+ transform: translateX(2px);
520
+ }
521
+ 100% {
522
+ transform: translateX(0);
523
+ }
524
+ }
525
+
526
+ @keyframes heavyShake {
527
+ 0% {
528
+ transform: translateX(0);
529
+ }
530
+ 25% {
531
+ transform: translateX(4px);
532
+ }
533
+ 50% {
534
+ transform: translateX(-4px);
535
+ }
536
+ 75% {
537
+ transform: translateX(4px);
538
+ }
539
+ 100% {
540
+ transform: translateX(0);
541
+ }
542
+ }
543
+
544
+ .light-shake {
545
+ animation: lightShake 0.5s ease-in-out infinite;
546
+ }
547
+
548
+ .heavy-shake {
549
+ animation: heavyShake 0.5s ease-in-out infinite;
550
+ }
front_edits/CSS/how-to-play.css ADDED
@@ -0,0 +1,429 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Styles généraux pour toutes les pages How to Play */
2
+ .content {
3
+ color: #fff;
4
+ text-align: center;
5
+ max-width: 1200px;
6
+ margin: 0 auto;
7
+ padding: 20px;
8
+ display: flex;
9
+ flex-direction: column;
10
+ align-items: center;
11
+ margin-top: 20px;
12
+ }
13
+
14
+ .content h1 {
15
+ font-family: "HorrorBrush", cursive;
16
+ font-size: 64px;
17
+ color: #9b0000;
18
+ position: relative;
19
+ margin-bottom: 30px;
20
+ letter-spacing: 4px;
21
+ }
22
+
23
+ /* Styles pour la première page */
24
+ .game-description p {
25
+ font-size: 2.5rem;
26
+ margin-bottom: 2rem;
27
+ color: #fff;
28
+ }
29
+
30
+ .gf-image {
31
+ width: 400px;
32
+ height: auto;
33
+ margin-top: 50px;
34
+ }
35
+
36
+ /* Styles pour la deuxième page */
37
+ .objects-container {
38
+ display: flex;
39
+ justify-content: center;
40
+ gap: 50px;
41
+ margin: 50px 0 30px 0;
42
+ width: 100%;
43
+ }
44
+
45
+ .object-type {
46
+ display: flex;
47
+ flex-direction: column;
48
+ align-items: center;
49
+ width: 300px;
50
+ }
51
+
52
+ .object-title {
53
+ font-family: "HorrorBrush", cursive;
54
+ font-size: 2.5rem;
55
+ color: #fff;
56
+ margin-bottom: 10px;
57
+ }
58
+
59
+ .sub-text {
60
+ font-size: 2rem;
61
+ color: #ffffff;
62
+ margin-bottom: 20px;
63
+ }
64
+
65
+ .image-container {
66
+ width: 100%;
67
+ display: flex;
68
+ justify-content: center;
69
+ }
70
+
71
+ /* Styles pour les images tutorielles */
72
+ .tutorial-image {
73
+ width: 250px;
74
+ height: 250px;
75
+ object-fit: contain;
76
+ }
77
+
78
+ /* Styles de navigation */
79
+ .navigation-buttons {
80
+ display: flex;
81
+ justify-content: center;
82
+ align-items: center;
83
+ gap: 50px;
84
+ margin-top: 30px;
85
+ width: 100%;
86
+ height: auto;
87
+ }
88
+
89
+ .navigation-buttons .back-button,
90
+ .navigation-buttons .next-button {
91
+ display: inline-block;
92
+ font-family: "HorrorBrush", cursive;
93
+ font-size: 36px;
94
+ color: #fff;
95
+ text-decoration: none;
96
+ transition: all 0.3s ease;
97
+ letter-spacing: 4px;
98
+ text-transform: uppercase;
99
+ background-color: rgba(155, 0, 0, 0.3);
100
+ padding: 10px 30px;
101
+ border: 2px solid #9b0000;
102
+ border-radius: 5px;
103
+ line-height: 1;
104
+ margin: 0;
105
+ }
106
+
107
+ .navigation-buttons .back-button {
108
+ position: static;
109
+ transform: none;
110
+ bottom: auto;
111
+ left: auto;
112
+ }
113
+
114
+ .navigation-buttons .next-button:hover,
115
+ .navigation-buttons .back-button:hover {
116
+ color: #9b0000;
117
+ background-color: rgba(155, 0, 0, 0.1);
118
+ box-shadow: 0 0 15px rgba(155, 0, 0, 0.5);
119
+ }
120
+
121
+ /* Style spécifique pour le bouton Back to Menu */
122
+ .back-to-menu {
123
+ position: absolute;
124
+ bottom: 40px;
125
+ left: 50%;
126
+ transform: translateX(-50%);
127
+ }
128
+
129
+ /* Styles pour la deuxième page */
130
+ .object-type.green .object-title {
131
+ color: #20bb43;
132
+ }
133
+
134
+ .object-type.red .object-title {
135
+ color: #d25658;
136
+ }
137
+
138
+ .object-type.white .object-title {
139
+ color: white;
140
+ }
141
+
142
+ /* Media Queries pour la responsivité */
143
+ @media screen and (max-width: 1200px) {
144
+ .content {
145
+ max-width: 95%;
146
+ padding: 15px;
147
+ }
148
+ }
149
+
150
+ @media screen and (max-width: 900px) {
151
+ .objects-container {
152
+ flex-direction: column;
153
+ align-items: center;
154
+ gap: 40px;
155
+ margin: 50px 0 30px 0;
156
+ }
157
+
158
+ .object-type {
159
+ width: 100%;
160
+ max-width: 400px;
161
+ }
162
+
163
+ .tutorial-image {
164
+ width: 200px;
165
+ height: 200px;
166
+ }
167
+
168
+ .content h1 {
169
+ font-size: 48px;
170
+ }
171
+
172
+ .object-title {
173
+ font-size: 2rem;
174
+ }
175
+
176
+ .sub-text {
177
+ font-size: 1.5rem;
178
+ }
179
+ }
180
+
181
+ @media screen and (max-width: 600px) {
182
+ .gf-image {
183
+ width: 90%;
184
+ max-width: 300px;
185
+ }
186
+
187
+ .content h1 {
188
+ font-size: 36px;
189
+ }
190
+
191
+ .game-description p {
192
+ font-size: 1.8rem;
193
+ }
194
+
195
+ .navigation-buttons {
196
+ flex-direction: column;
197
+ gap: 20px;
198
+ }
199
+
200
+ .navigation-buttons .back-button,
201
+ .navigation-buttons .next-button {
202
+ font-size: 28px;
203
+ padding: 8px 20px;
204
+ }
205
+
206
+ .object-title {
207
+ font-size: 1.8rem;
208
+ }
209
+
210
+ .sub-text {
211
+ font-size: 1.2rem;
212
+ }
213
+
214
+ .tutorial-image {
215
+ width: 180px;
216
+ height: 180px;
217
+ }
218
+ }
219
+
220
+ @media screen and (max-width: 400px) {
221
+ .content h1 {
222
+ font-size: 32px;
223
+ }
224
+
225
+ .game-description p {
226
+ font-size: 1.5rem;
227
+ }
228
+
229
+ .navigation-buttons .back-button,
230
+ .navigation-buttons .next-button {
231
+ font-size: 24px;
232
+ padding: 6px 16px;
233
+ }
234
+ }
235
+
236
+ @media screen and (max-height: 800px) {
237
+ .content {
238
+ margin-top: 10px;
239
+ }
240
+
241
+ .content h1 {
242
+ font-size: 48px;
243
+ margin-bottom: 20px;
244
+ }
245
+
246
+ .game-description p {
247
+ font-size: 2rem;
248
+ margin-bottom: 1.5rem;
249
+ }
250
+
251
+ .gf-image {
252
+ width: 300px;
253
+ margin-top: 30px;
254
+ }
255
+
256
+ .objects-container {
257
+ margin: 50px 0 20px 0;
258
+ }
259
+
260
+ .object-type {
261
+ width: 250px;
262
+ }
263
+
264
+ .tutorial-image {
265
+ width: 200px;
266
+ height: 200px;
267
+ }
268
+ }
269
+
270
+ @media screen and (max-height: 600px) {
271
+ .content {
272
+ margin-top: 5px;
273
+ }
274
+
275
+ .content h1 {
276
+ font-size: 36px;
277
+ margin-bottom: 15px;
278
+ }
279
+
280
+ .game-description p {
281
+ font-size: 1.8rem;
282
+ margin-bottom: 1rem;
283
+ }
284
+
285
+ .gf-image {
286
+ width: 250px;
287
+ margin-top: 20px;
288
+ }
289
+
290
+ .objects-container {
291
+ margin: 30px 0 15px 0;
292
+ }
293
+
294
+ .object-type {
295
+ width: 200px;
296
+ }
297
+
298
+ .tutorial-image {
299
+ width: 180px;
300
+ height: 180px;
301
+ }
302
+
303
+ .navigation-buttons {
304
+ margin-top: 30px;
305
+ }
306
+
307
+ .navigation-buttons .back-button,
308
+ .navigation-buttons .next-button {
309
+ font-size: 28px;
310
+ padding: 8px 20px;
311
+ }
312
+ }
313
+
314
+ @media screen and (max-height: 500px) {
315
+ .content h1 {
316
+ font-size: 32px;
317
+ margin-bottom: 10px;
318
+ }
319
+
320
+ .game-description p {
321
+ font-size: 1.5rem;
322
+ }
323
+
324
+ .gf-image {
325
+ width: 200px;
326
+ margin-top: 15px;
327
+ }
328
+
329
+ .objects-container {
330
+ margin: 20px 0 10px 0;
331
+ }
332
+
333
+ .object-type {
334
+ width: 180px;
335
+ }
336
+
337
+ .tutorial-image {
338
+ width: 130px;
339
+ height: 130px;
340
+ }
341
+
342
+ .navigation-buttons {
343
+ margin-top: 20px;
344
+ }
345
+
346
+ .navigation-buttons .back-button,
347
+ .navigation-buttons .next-button {
348
+ font-size: 24px;
349
+ padding: 6px 16px;
350
+ }
351
+ }
352
+
353
+ /* Styles pour la page 3 */
354
+ .main-description {
355
+ font-size: 2.5rem;
356
+ color: #fff;
357
+ font-family: "HorrorBrush", cursive;
358
+ }
359
+
360
+ .object-type.yellow .object-title {
361
+ color: #ffd700;
362
+ }
363
+
364
+ /* Ajustement pour deux objets au lieu de trois */
365
+ .objects-container.two-items {
366
+ justify-content: center;
367
+ gap: 100px; /* Plus d'espace entre deux éléments */
368
+ }
369
+
370
+ /* Media queries pour la page 3 */
371
+ @media screen and (max-width: 900px) {
372
+ .main-description {
373
+ font-size: 2rem;
374
+ margin: 20px 0;
375
+ }
376
+ }
377
+
378
+ @media screen and (max-width: 600px) {
379
+ .main-description {
380
+ font-size: 1.8rem;
381
+ margin: 15px 0;
382
+ }
383
+ }
384
+
385
+ @media screen and (max-height: 600px) {
386
+ .main-description {
387
+ font-size: 1.8rem;
388
+ margin: 10px 0;
389
+ }
390
+ }
391
+
392
+ /* Styles pour la page 4 */
393
+ .video-container {
394
+ margin-top: 20px;
395
+ width: 100%;
396
+ display: flex;
397
+ justify-content: center;
398
+ }
399
+
400
+ .tutorial-video {
401
+ max-width: 200px;
402
+ width: 100%;
403
+ border-radius: 30px;
404
+ }
405
+
406
+ /* Media queries pour la page 4 */
407
+ @media screen and (max-width: 900px) {
408
+ .tutorial-video {
409
+ max-width: 350px;
410
+ }
411
+ }
412
+
413
+ @media screen and (max-width: 600px) {
414
+ .tutorial-video {
415
+ max-width: 300px;
416
+ }
417
+ }
418
+
419
+ @media screen and (max-height: 800px) {
420
+ .video-container {
421
+ margin: 30px 0;
422
+ }
423
+ }
424
+
425
+ @media screen and (max-height: 600px) {
426
+ .video-container {
427
+ margin: 20px 0;
428
+ }
429
+ }
front_edits/CSS/index-style.css ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: "HorrorBrush";
3
+ src: url("/static/assets/fonts/horrorbrush.ttf") format("truetype");
4
+ }
5
+
6
+ * {
7
+ margin: 0;
8
+ padding: 0;
9
+ box-sizing: border-box;
10
+ }
11
+
12
+ body {
13
+ background-color: #000000;
14
+ min-height: 100vh;
15
+ display: flex;
16
+ flex-direction: column;
17
+ align-items: center;
18
+ position: relative;
19
+ overflow: hidden;
20
+ }
21
+
22
+ .background-elements {
23
+ position: absolute;
24
+ width: 100%;
25
+ height: 100%;
26
+ pointer-events: none;
27
+ }
28
+
29
+ .blood {
30
+ position: absolute;
31
+ }
32
+
33
+ .blood-top-left {
34
+ top: 0;
35
+ left: 0;
36
+ width: 350px;
37
+ opacity: 50%;
38
+ }
39
+
40
+ .blood-bottom-right {
41
+ bottom: 0;
42
+ right: 0;
43
+ width: 250px;
44
+ position: absolute;
45
+ bottom: -120px;
46
+ right: -50px;
47
+ opacity: 40%;
48
+ }
49
+
50
+ .blood-top-right {
51
+ position: absolute;
52
+ top: 0;
53
+ right: 0;
54
+ width: 250px;
55
+ margin: 20px 20px 0px 0px;
56
+ transform: rotate(30deg);
57
+ }
58
+
59
+ .splatter {
60
+ position: absolute;
61
+ opacity: 60%;
62
+ bottom: 240px;
63
+ left: 30%;
64
+ transform: translateX(-50%);
65
+ transform: rotate(20deg);
66
+ width: 400px;
67
+ }
68
+
69
+ main {
70
+ display: flex;
71
+ flex-direction: column;
72
+ align-items: center;
73
+ gap: 100px;
74
+ z-index: 1;
75
+ }
76
+
77
+ .logo {
78
+ position: absolute;
79
+ top: 40px;
80
+ left: 50%;
81
+ transform: translateX(-50%);
82
+ animation: flicker 4s linear infinite;
83
+ }
84
+
85
+ .logo img {
86
+ width: 230px;
87
+ height: auto;
88
+ }
89
+
90
+ .menu {
91
+ display: flex;
92
+ margin-top: 250px;
93
+ flex-direction: column;
94
+ gap: 30px;
95
+ align-items: center;
96
+ position: relative;
97
+ }
98
+
99
+ .menu::after {
100
+ content: "";
101
+ position: absolute;
102
+ width: 800px;
103
+ height: 800px;
104
+ background: radial-gradient(
105
+ circle,
106
+ rgba(155, 0, 0, 0.35) 0%,
107
+ rgba(0, 0, 0, 0) 70%
108
+ );
109
+ z-index: -1;
110
+ top: 50%;
111
+ left: 50%;
112
+ transform: translate(-50%, -50%);
113
+ }
114
+
115
+ .menu-item {
116
+ font-family: "HorrorBrush", cursive;
117
+ font-size: 48px;
118
+ color: #fff;
119
+ text-decoration: none;
120
+ transition: color 0.3s ease;
121
+ letter-spacing: 4px;
122
+ text-transform: uppercase;
123
+ }
124
+
125
+ .new-game {
126
+ color: #9b0000;
127
+ }
128
+
129
+ .menu-item:hover {
130
+ color: #9b0000;
131
+ }
132
+
133
+ .how-to-play:hover {
134
+ color: #9b0000;
135
+ }
136
+
137
+ .level-maker:hover {
138
+ color: #9b0000;
139
+ }
140
+
141
+ @keyframes flicker {
142
+ 0% {
143
+ opacity: 1;
144
+ }
145
+ 5% {
146
+ opacity: 0.9;
147
+ }
148
+ 10% {
149
+ opacity: 1;
150
+ }
151
+ 15% {
152
+ opacity: 0.4;
153
+ }
154
+ 16% {
155
+ opacity: 1;
156
+ }
157
+ 17% {
158
+ opacity: 0.4;
159
+ }
160
+ 18% {
161
+ opacity: 1;
162
+ }
163
+ 35% {
164
+ opacity: 1;
165
+ }
166
+ 36% {
167
+ opacity: 0.3;
168
+ }
169
+ 37% {
170
+ opacity: 1;
171
+ }
172
+ 38% {
173
+ opacity: 0.5;
174
+ }
175
+ 39% {
176
+ opacity: 1;
177
+ }
178
+ 50% {
179
+ opacity: 1;
180
+ }
181
+ 51% {
182
+ opacity: 0.7;
183
+ }
184
+ 52% {
185
+ opacity: 1;
186
+ }
187
+ 53% {
188
+ opacity: 0.4;
189
+ }
190
+ 54% {
191
+ opacity: 1;
192
+ }
193
+ 85% {
194
+ opacity: 1;
195
+ }
196
+ 86% {
197
+ opacity: 0.6;
198
+ }
199
+ 87% {
200
+ opacity: 1;
201
+ }
202
+ 88% {
203
+ opacity: 0.4;
204
+ }
205
+ 89% {
206
+ opacity: 1;
207
+ }
208
+ 100% {
209
+ opacity: 1;
210
+ }
211
+ }
212
+
213
+ .led-bar {
214
+ position: fixed;
215
+ top: 0;
216
+ left: 0;
217
+ width: 100%;
218
+ height: 2px;
219
+ background: linear-gradient(
220
+ 90deg,
221
+ transparent 0%,
222
+ rgba(255, 0, 0, 0.4) 20%,
223
+ rgba(255, 0, 0, 0.8) 35%,
224
+ rgba(255, 50, 50, 1) 50%,
225
+ rgba(255, 0, 0, 0.8) 65%,
226
+ rgba(255, 0, 0, 0.4) 80%,
227
+ transparent 100%
228
+ );
229
+ z-index: 100;
230
+ animation: ledFlicker 4s infinite, ledPulse 10s infinite;
231
+ box-shadow: 0 0 20px rgba(255, 0, 0, 0.7), 0 0 35px rgba(255, 0, 0, 0.5),
232
+ 0 0 50px rgba(255, 0, 0, 0.4), 0 0 70px rgba(155, 0, 0, 0.3);
233
+ filter: blur(0.6px);
234
+ }
235
+
236
+ .light-beam {
237
+ position: absolute;
238
+ top: 0;
239
+ left: 0;
240
+ width: 100%;
241
+ height: 250px;
242
+ background: linear-gradient(
243
+ 180deg,
244
+ rgba(255, 0, 0, 0.3) 0%,
245
+ rgba(255, 0, 0, 0.2) 20%,
246
+ rgba(255, 0, 0, 0.15) 30%,
247
+ rgba(155, 0, 0, 0.08) 60%,
248
+ transparent 100%
249
+ );
250
+ animation: beamFlicker 4s infinite;
251
+ pointer-events: none;
252
+ filter: blur(2px);
253
+ }
254
+
255
+ @keyframes ledFlicker {
256
+ 0% {
257
+ opacity: 1;
258
+ }
259
+ 95% {
260
+ opacity: 1;
261
+ }
262
+ 96% {
263
+ opacity: 0.3;
264
+ }
265
+ 97% {
266
+ opacity: 1;
267
+ }
268
+ 98% {
269
+ opacity: 0.2;
270
+ }
271
+ 99% {
272
+ opacity: 0.9;
273
+ }
274
+ 100% {
275
+ opacity: 1;
276
+ }
277
+ }
278
+
279
+ @keyframes ledPulse {
280
+ 0% {
281
+ filter: brightness(1) blur(0.6px);
282
+ }
283
+ 50% {
284
+ filter: brightness(1.3) blur(0.4px);
285
+ }
286
+ 100% {
287
+ filter: brightness(1) blur(0.6px);
288
+ }
289
+ }
290
+
291
+ @keyframes beamFlicker {
292
+ 0% {
293
+ opacity: 0.7;
294
+ }
295
+ 95% {
296
+ opacity: 0.7;
297
+ }
298
+ 96% {
299
+ opacity: 0.2;
300
+ }
301
+ 97% {
302
+ opacity: 0.7;
303
+ }
304
+ 98% {
305
+ opacity: 0.1;
306
+ }
307
+ 99% {
308
+ opacity: 0.6;
309
+ }
310
+ 100% {
311
+ opacity: 0.7;
312
+ }
313
+ }
314
+
315
+ /* How to Play Page Styles */
316
+ .content {
317
+ color: #fff;
318
+ text-align: center;
319
+ max-width: 800px;
320
+ margin: 0 auto;
321
+ padding: 20px;
322
+ display: flex;
323
+ flex-direction: column;
324
+ align-items: center;
325
+ margin-top: 0px;
326
+ }
327
+
328
+ .content h1 {
329
+ font-family: "HorrorBrush", cursive;
330
+ font-size: 64px;
331
+ color: #9b0000;
332
+ position: relative;
333
+ margin-bottom: 30px;
334
+ letter-spacing: 4px;
335
+ }
336
+
337
+ .game-description p {
338
+ font-size: 2.5rem;
339
+ margin-bottom: 2rem;
340
+ color: #fff;
341
+ }
342
+
343
+ .back-button {
344
+ font-family: "HorrorBrush", cursive;
345
+ font-size: 36px;
346
+ color: #fff;
347
+ text-decoration: none;
348
+ transition: color 0.3s ease;
349
+ letter-spacing: 4px;
350
+ text-transform: uppercase;
351
+ position: absolute;
352
+ bottom: 40px;
353
+ left: 50%;
354
+ transform: translateX(-50%);
355
+ }
356
+
357
+ .back-button:hover {
358
+ color: #9b0000;
359
+ }
360
+
361
+ .character {
362
+ position: absolute;
363
+ bottom: -30px;
364
+ left: 50%;
365
+ transform: translateX(-50%);
366
+ z-index: 2;
367
+ animation: characterFlicker 6s infinite;
368
+ }
369
+
370
+ .character img {
371
+ width: 550px;
372
+ height: auto;
373
+ }
374
+
375
+ @keyframes characterFlicker {
376
+ 0% {
377
+ opacity: 1;
378
+ filter: brightness(1);
379
+ }
380
+ 42% {
381
+ opacity: 1;
382
+ filter: brightness(1);
383
+ }
384
+ 43% {
385
+ opacity: 0.8;
386
+ filter: brightness(1.2);
387
+ }
388
+ 44% {
389
+ opacity: 1;
390
+ filter: brightness(1);
391
+ }
392
+ 45% {
393
+ opacity: 0.6;
394
+ filter: brightness(1.3);
395
+ }
396
+ 46% {
397
+ opacity: 1;
398
+ filter: brightness(1);
399
+ }
400
+ 47% {
401
+ opacity: 0.2;
402
+ filter: brightness(1.5);
403
+ }
404
+ 48% {
405
+ opacity: 1;
406
+ filter: brightness(1);
407
+ }
408
+ 49% {
409
+ opacity: 0.4;
410
+ filter: brightness(1.2);
411
+ }
412
+ 50% {
413
+ opacity: 1;
414
+ filter: brightness(1);
415
+ }
416
+ 80% {
417
+ opacity: 1;
418
+ filter: brightness(1);
419
+ }
420
+ 81% {
421
+ opacity: 0.5;
422
+ filter: brightness(1.3);
423
+ }
424
+ 82% {
425
+ opacity: 1;
426
+ filter: brightness(1);
427
+ }
428
+ 100% {
429
+ opacity: 1;
430
+ filter: brightness(1);
431
+ }
432
+ }
433
+
434
+ /* Modifier les styles pour le bouton son */
435
+ .sound-button {
436
+ position: fixed;
437
+ bottom: 20px;
438
+ left: 20px;
439
+ width: 100px;
440
+ height: 100px;
441
+ cursor: pointer;
442
+ z-index: 1000;
443
+ transition: transform 0.2s ease;
444
+ }
445
+
446
+ .sound-button:hover {
447
+ transform: scale(1.1);
448
+ }
449
+
450
+ .sound-button img {
451
+ width: 100%;
452
+ height: 100%;
453
+ object-fit: contain;
454
+ }
455
+
456
+ .gf-image {
457
+ width: 400px;
458
+ height: auto;
459
+ margin-top: 50px;
460
+ }
461
+
462
+ .next-button {
463
+ font-family: "HorrorBrush", cursive;
464
+ font-size: 36px;
465
+ color: #fff;
466
+ text-decoration: none;
467
+ transition: all 0.3s ease;
468
+ letter-spacing: 4px;
469
+ text-transform: uppercase;
470
+ display: block;
471
+ margin-top: 50px;
472
+ background-color: rgba(155, 0, 0, 0.3);
473
+ padding: 10px 30px;
474
+ border: 2px solid #9b0000;
475
+ border-radius: 5px;
476
+ }
477
+
478
+ .next-button:hover {
479
+ color: #9b0000;
480
+ background-color: rgba(155, 0, 0, 0.1);
481
+ box-shadow: 0 0 15px rgba(155, 0, 0, 0.5);
482
+ }
front_edits/How to play/.DS_Store ADDED
Binary file (6.15 kB). View file
 
front_edits/How to play/how-to-play-2.html ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fr">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Through Their Eyes - How to Play</title>
7
+ <link rel="stylesheet" href="assets/css/index-style.css" />
8
+ <link rel="stylesheet" href="assets/css/how-to-play.css" />
9
+ </head>
10
+ <body>
11
+ <div class="led-bar">
12
+ <div class="light-beam"></div>
13
+ </div>
14
+
15
+ <div class="background-elements">
16
+ <img src="assets/img/blood-2.png" alt="" class="blood blood-top-left" />
17
+ <img src="assets/img/help.png" alt="" class="blood blood-top-right" />
18
+ <img src="assets/img/splatter.png" alt="" class="blood splatter" />
19
+ <img src="assets/img/hand.png" alt="" class="blood blood-bottom-right" />
20
+ </div>
21
+
22
+ <main>
23
+ <div class="content">
24
+ <h1>How to Play</h1>
25
+ <div class="objects-container">
26
+ <div class="object-type green">
27
+ <div class="image-container">
28
+ <img
29
+ src="assets/img/how_to_play/CoffeeTableUsable_1.png"
30
+ alt="Green object example"
31
+ class="tutorial-image"
32
+ />
33
+ </div>
34
+ <p class="object-title">Green objects</p>
35
+ <p class="sub-text">can be searched</p>
36
+ </div>
37
+
38
+ <div class="object-type red">
39
+ <div class="image-container">
40
+ <img
41
+ src="assets/img/how_to_play/TVUnused_1.png"
42
+ alt="Red object example"
43
+ class="tutorial-image"
44
+ />
45
+ </div>
46
+ <p class="object-title">Red objects</p>
47
+ <p class="sub-text">require an item</p>
48
+ </div>
49
+
50
+ <div class="object-type white">
51
+ <div class="image-container">
52
+ <img
53
+ src="assets/img/how_to_play/Untitled_Artwork.png"
54
+ alt="White object example"
55
+ class="tutorial-image"
56
+ />
57
+ </div>
58
+ <p class="object-title">White objects</p>
59
+ <p class="sub-text">do nothing</p>
60
+ </div>
61
+ </div>
62
+
63
+ <div class="navigation-buttons">
64
+ <a href="how-to-play.html" class="back-button">Back</a>
65
+ <a href="how-to-play-3.html" class="next-button">Next 2/4</a>
66
+ </div>
67
+ </div>
68
+ </main>
69
+
70
+ <script type="module" src="/src/main.js"></script>
71
+ </body>
72
+ </html>
front_edits/How to play/how-to-play-3.html ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fr">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Through Their Eyes - How to Play</title>
7
+ <link rel="stylesheet" href="assets/css/index-style.css" />
8
+ <link rel="stylesheet" href="assets/css/how-to-play.css" />
9
+ </head>
10
+ <body>
11
+ <div class="led-bar">
12
+ <div class="light-beam"></div>
13
+ </div>
14
+
15
+ <div class="background-elements">
16
+ <img src="assets/img/blood-2.png" alt="" class="blood blood-top-left" />
17
+ <img src="assets/img/help.png" alt="" class="blood blood-top-right" />
18
+ <img src="assets/img/splatter.png" alt="" class="blood splatter" />
19
+ <img src="assets/img/hand.png" alt="" class="blood blood-bottom-right" />
20
+ </div>
21
+
22
+ <main>
23
+ <div class="content">
24
+ <h1>How to Play</h1>
25
+ <p class="main-description">
26
+ Make sure the murderous ghost clown doesn't see you
27
+ </p>
28
+
29
+ <div class="objects-container">
30
+ <div class="object-type red">
31
+ <div class="image-container">
32
+ <img
33
+ src="assets/img/how_to_play/monster.png"
34
+ alt="Monster warning"
35
+ class="tutorial-image"
36
+ />
37
+ </div>
38
+ <p class="object-title">Don't let him see</p>
39
+ <p class="sub-text">or catch your girlfriend</p>
40
+ </div>
41
+
42
+ <div class="object-type yellow">
43
+ <div class="image-container">
44
+ <img
45
+ src="assets/img/how_to_play/bed.png"
46
+ alt="Hiding spot example"
47
+ class="tutorial-image"
48
+ />
49
+ </div>
50
+ <p class="object-title">Yellow objects</p>
51
+ <p class="sub-text">are hiding spots</p>
52
+ </div>
53
+ </div>
54
+
55
+ <div class="navigation-buttons">
56
+ <a href="how-to-play-2.html" class="back-button">Back</a>
57
+ <a href="how-to-play-4.html" class="next-button">Next 3/4</a>
58
+ </div>
59
+ </div>
60
+ </main>
61
+
62
+ <script type="module" src="/src/main.js"></script>
63
+ </body>
64
+ </html>
front_edits/How to play/how-to-play-4.html ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fr">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Through Their Eyes - How to Play</title>
7
+ <link rel="stylesheet" href="assets/css/index-style.css" />
8
+ <link rel="stylesheet" href="assets/css/how-to-play.css" />
9
+ </head>
10
+ <body>
11
+ <div class="led-bar">
12
+ <div class="light-beam"></div>
13
+ </div>
14
+
15
+ <div class="background-elements">
16
+ <img src="assets/img/blood-2.png" alt="" class="blood blood-top-left" />
17
+ <img src="assets/img/help.png" alt="" class="blood blood-top-right" />
18
+ <img src="assets/img/splatter.png" alt="" class="blood splatter" />
19
+ <img src="assets/img/hand.png" alt="" class="blood blood-bottom-right" />
20
+ </div>
21
+
22
+ <main>
23
+ <div class="content">
24
+ <h1>How to Play</h1>
25
+ <p class="main-description">
26
+ You can only communicate by texting. Keep her calm and focused.
27
+ </p>
28
+
29
+ <div class="video-container">
30
+ <img
31
+ src="assets/img/how_to_play/video.gif"
32
+ alt="Communication example"
33
+ class="tutorial-video"
34
+ />
35
+ </div>
36
+
37
+ <div class="navigation-buttons">
38
+ <a href="./" class="next-button">Back to Menu</a>
39
+ </div>
40
+ </div>
41
+ </main>
42
+
43
+ <script type="module" src="/src/main.js"></script>
44
+ </body>
45
+ </html>
front_edits/How to play/how-to-play.html ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fr">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Through Their Eyes - How to Play</title>
7
+ <link rel="stylesheet" href="assets/css/index-style.css" />
8
+ <link rel="stylesheet" href="assets/css/how-to-play.css" />
9
+ </head>
10
+ <body>
11
+ <div class="led-bar">
12
+ <div class="light-beam"></div>
13
+ </div>
14
+
15
+ <div class="background-elements">
16
+ <img src="assets/img/blood-2.png" alt="" class="blood blood-top-left" />
17
+ <img src="assets/img/help.png" alt="" class="blood blood-top-right" />
18
+ <img src="assets/img/splatter.png" alt="" class="blood splatter" />
19
+ <img src="assets/img/hand.png" alt="" class="blood blood-bottom-right" />
20
+ </div>
21
+
22
+ <main>
23
+ <div class="content">
24
+ <h1>How to Play</h1>
25
+ <div class="game-description">
26
+ <p>Your girlfriend is trapped in your apartment</p>
27
+ <img
28
+ src="assets/img/gf.png"
29
+ alt="Trapped girlfriend"
30
+ class="gf-image"
31
+ />
32
+ </div>
33
+ <div class="navigation-buttons">
34
+ <a href="./" class="back-button back-to-menu">Back to Menu</a>
35
+ <a href="how-to-play-2.html" class="next-button">Next 1/4</a>
36
+ </div>
37
+ </div>
38
+ </main>
39
+
40
+ <script type="module" src="/src/main.js"></script>
41
+ </body>
42
+ </html>
front_edits/Img/.DS_Store ADDED
Binary file (10.2 kB). View file
 
front_edits/Img/how_to_play/CoffeeTableUsable_1.png ADDED
front_edits/Img/how_to_play/TVUnused_1.png ADDED
front_edits/Img/how_to_play/Untitled_Artwork.png ADDED
front_edits/Img/how_to_play/bed.png ADDED
front_edits/Img/how_to_play/monster.png ADDED
front_edits/Img/how_to_play/video.gif ADDED
front_edits/Img/profil_pictures/.DS_Store ADDED
Binary file (6.15 kB). View file
 
front_edits/Img/profil_pictures/bit_stress.webp ADDED
front_edits/Img/profil_pictures/no_stress.webp ADDED
front_edits/Img/profil_pictures/very_stress.webp ADDED
front_edits/index.html ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fr">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Through Their Eyes</title>
7
+ <link rel="stylesheet" href="./assets/css/index-style.css" />
8
+ </head>
9
+ <body>
10
+ <div class="led-bar">
11
+ <div class="light-beam"></div>
12
+ </div>
13
+ <div class="background-elements">
14
+ <img src="assets/img/blood-2.png" alt="" class="blood blood-top-left" />
15
+ <img src="assets/img/help.png" alt="" class="blood blood-top-right" />
16
+ <img src="assets/img/splatter.png" alt="" class="blood splatter" />
17
+ <img src="assets/img/hand.png" alt="" class="blood blood-bottom-right" />
18
+ </div>
19
+
20
+ <main>
21
+ <div class="logo">
22
+ <img src="assets/img/logo.png" alt="Through Their Eyes" />
23
+ </div>
24
+
25
+ <nav class="menu">
26
+ <a href="game/index.html" class="menu-item new-game">NEW GAME</a>
27
+ <a href="how-to-play.html" class="menu-item how-to-play">HOW TO PLAY</a>
28
+ </nav>
29
+ <div class="character">
30
+ <img src="assets/img/perso.png" alt="Character" />
31
+ </div>
32
+ </main>
33
+
34
+ <div class="sound-button" onclick="toggleSound()">
35
+ <img
36
+ src="/static/assets/img/sondon.png"
37
+ alt="Sound control"
38
+ id="soundIcon"
39
+ />
40
+ </div>
41
+
42
+ <audio id="bgMusic" loop>
43
+ <source src="/static/assets/sounds/music.mp3" type="audio/mp3" />
44
+ </audio>
45
+
46
+ <script>
47
+ // Définir isSoundOn comme true par défaut
48
+ let isSoundOn = true; // Toujours commencer avec le son activé
49
+ const soundIcon = document.getElementById("soundIcon");
50
+ const bgMusic = document.getElementById("bgMusic");
51
+
52
+ window.addEventListener("DOMContentLoaded", () => {
53
+ // Vérifier si c'est la première visite
54
+ if (localStorage.getItem("isSoundOn") === null) {
55
+ // Première visite : initialiser avec le son activé
56
+ localStorage.setItem("isSoundOn", "true");
57
+ } else {
58
+ // Visites suivantes : récupérer l'état précédent
59
+ isSoundOn = localStorage.getItem("isSoundOn") === "true";
60
+ }
61
+
62
+ // Mettre à jour l'icône
63
+ updateSoundIcon();
64
+
65
+ try {
66
+ bgMusic.currentTime = 10;
67
+ // Jouer la musique si le son est activé
68
+ if (isSoundOn) {
69
+ bgMusic.play().catch((error) => {
70
+ console.log("Autoplay prevented:", error);
71
+ isSoundOn = false;
72
+ localStorage.setItem("isSoundOn", "false");
73
+ updateSoundIcon();
74
+ });
75
+ }
76
+ } catch (error) {
77
+ console.error("Error playing audio:", error);
78
+ }
79
+ });
80
+
81
+ function toggleSound() {
82
+ isSoundOn = !isSoundOn;
83
+ localStorage.setItem("isSoundOn", isSoundOn.toString());
84
+
85
+ if (isSoundOn) {
86
+ if (bgMusic.currentTime < 10) {
87
+ bgMusic.currentTime = 10;
88
+ }
89
+ bgMusic.play();
90
+ } else {
91
+ bgMusic.pause();
92
+ }
93
+ updateSoundIcon();
94
+ }
95
+
96
+ function updateSoundIcon() {
97
+ soundIcon.src = isSoundOn
98
+ ? "/static/assets/img/sondon.png"
99
+ : "/static/assets/img/soundoff.png";
100
+ }
101
+ </script>
102
+ </body>
103
+ </html>