Skip to content

Commit 5a01cfb

Browse files
committed
Обновление: добавлена случайная вариативность времени вращения и направления для невыигрышных рулеток в компоненте CustomRouletteGroupList
1 parent d8d2493 commit 5a01cfb

File tree

1 file changed

+38
-22
lines changed

1 file changed

+38
-22
lines changed

src/components/OBS_Components/MikuMonday/components/CustomRouletteGroupList/CustomRouletteGroupList.tsx

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,28 +73,44 @@ const CustomRouletteGroupList = forwardRef<
7373
return (
7474
<div ref={ref} className={styles.container}>
7575
{pointer}
76-
{groups.map((group, index) => (
77-
<div
78-
key={index}
79-
className={`${styles.rouletteWrapper} ${
80-
group.isReversed ? styles.reversed : ""
81-
}`}
82-
style={{
83-
opacity: rouletteOpacities[index] ?? 1,
84-
transition: "opacity 2s ease-out",
85-
}}
86-
onTransitionEnd={() => handleTransitionEnd(index)}
87-
>
88-
<CustomRoulette
89-
prizes={group.prizes}
90-
prizeIndex={group.prizeIndex}
91-
isReversed={group.isReversed}
92-
start={rouletteStart}
93-
spinningTime={group.hasWinner ? 23 : 20}
94-
onComplete={() => handleRouletteComplete(index)}
95-
/>
96-
</div>
97-
))}
76+
{groups.map((group, index) => {
77+
// Для невыигрышных рулеток добавляем случайную вариативность
78+
const getSpinningTime = () => {
79+
if (group.hasWinner) return 23;
80+
// Разное время для каждой невыигрышной рулетки (18-22 сек)
81+
return 18 + ((index * 1.7) % 4);
82+
};
83+
84+
// Случайное направление для невыигрышных рулеток
85+
const getDirection = () => {
86+
if (group.hasWinner) return group.isReversed;
87+
// Чередуем направления + добавляем вариативность по индексу
88+
return index % 2 === 0 ? !group.isReversed : group.isReversed;
89+
};
90+
91+
return (
92+
<div
93+
key={index}
94+
className={`${styles.rouletteWrapper} ${
95+
getDirection() ? styles.reversed : ""
96+
}`}
97+
style={{
98+
opacity: rouletteOpacities[index] ?? 1,
99+
transition: "opacity 2s ease-out",
100+
}}
101+
onTransitionEnd={() => handleTransitionEnd(index)}
102+
>
103+
<CustomRoulette
104+
prizes={group.prizes}
105+
prizeIndex={group.prizeIndex}
106+
isReversed={getDirection()}
107+
start={rouletteStart}
108+
spinningTime={getSpinningTime()}
109+
onComplete={() => handleRouletteComplete(index)}
110+
/>
111+
</div>
112+
);
113+
})}
98114
</div>
99115
);
100116
}

0 commit comments

Comments
 (0)