@@ -2,13 +2,17 @@ import { useState } from 'react';
22import { useNavigate } from 'react-router' ;
33import { Button } from '@/components/Button' ;
44import { Card } from '@/components/Card' ;
5+ import { useMountEffect } from '@/hooks/useMountEffect' ;
6+ import { usePopup } from '@/hooks/usePopup' ;
57import { useSocket } from '@/stores/socket' ;
68
79export const LobbyForestPage = ( ) => {
810 const navigate = useNavigate ( ) ;
911 const socket = useSocket ( ) ;
1012 const [ loading , setLoading ] = useState ( false ) ;
1113 const [ error , setError ] = useState < string | null > ( null ) ;
14+ const [ debuffLevel , setDebuffLevel ] = useState ( 0 ) ;
15+ const popup = usePopup ( ) ;
1216
1317 const handleEnterForest = async ( ) => {
1418 setLoading ( true ) ;
@@ -27,27 +31,40 @@ export const LobbyForestPage = () => {
2731 }
2832 } ;
2933
34+ useMountEffect ( ( ) => {
35+ socket . emitWithAck ( 'forest:lobby' ) . then ( ( res ) => {
36+ if ( res . error ) {
37+ popup . info ( { message : res . error } ) ;
38+ } else {
39+ setDebuffLevel ( res . debuffLevel ?? 0 ) ;
40+ }
41+ } ) ;
42+ } ) ;
43+
3044 return (
3145 < div className = "h-full overflow-hidden flex flex-col" >
3246 < Card header = "Лес" className = "m-4" >
33- < div className = "flex flex-col gap-4" >
34- < p className = "text-sm" >
35- Лес - это PvE режим, где ты можешь собирать ресурсы и сражаться с монстрами.
36- </ p >
47+ < div className = "flex flex-col gap-2" >
48+ < div className = "flex flex-col" >
49+ < p className = "text-sm" >
50+ Лес - это PvE режим, где ты можешь собирать ресурсы и сражаться с монстрами.
51+ </ p >
52+
53+ { debuffLevel ? < p className = "text-sm text-red-500" > Ты ослаблен после смерти</ p > : null }
54+ </ div >
3755
3856 < div className = "border-2 border-dashed p-2" >
39- < h5 className = "mb-2 " > Правила:</ h5 >
57+ < h5 className = "mb-1 text-sm " > Правила:</ h5 >
4058 < ul className = "text-xs list-disc list-inside" >
4159 < li > Здоровье сохраняется между боями</ li >
42- < li > Максимальное время: 15 минут</ li >
4360 < li > Чем глубже ты пробираешься в лес - тем опаснее</ li >
4461 < li > При смерти - дебафф на 1 час</ li >
4562 < li > Любой выбор может обернуться неожиданным последствием</ li >
4663 </ ul >
4764 </ div >
4865
4966 < div className = "border-2 border-dashed p-2" >
50- < h5 className = "mb-2 " > Награды:</ h5 >
67+ < h5 className = "mb-1 text-sm " > Награды:</ h5 >
5168 < ul className = "text-xs list-disc list-inside" >
5269 < li > 🐺 Волк - кожа</ li >
5370 < li > 🌳 Дерево - доски</ li >
0 commit comments